У меня есть программа, которая обращается к /dev/i2c-1. При запуске от имени root он отлично работает. Теперь я должен иметь возможность запускать это, используя PHP-скрипт на сервере Apache. Программа запускается и запускается нормально, но пользовательские данные www не могут получить доступ к i2c-1. Доступ запрещен! Как было предложено, я добавил www-данные в группу i2c, "adduser www-data i2c", но это не помогло. Я использую командную строку Debian Linux на одном встроенном устройстве платы. Как я могу это сделать, сохраняя хотя бы минимальную безопасность?
gI2c1File = open("/dev/i2c-1", O_RDWR);
if (gI2c1File < 0) {
file_logError("Error opening i2c-1 interface", strerror(errno));
return 0;
}
Просто добавить пользователя apache в группу недостаточно; вы также должны подтвердить, что групповое разрешение в каталоге '/dev/i2c-1' позволяет читать и писать (или любую другую задачу, которую вы хотите выполнить на нем).
В качестве пользователя root вы должны выполнить следующую команду:
chmod g+rw /dev/i2c-1
Эта команда изменит разрешение этого указанного каталога, чтобы разрешить чтение и запись пользователям в своей группе.