У меня есть программа, которая обращается к / dev / i2c-1. При запуске от имени root все работает нормально. Теперь я должен иметь возможность запустить это с помощью сценария PHP на сервере Apache. Программа запускается и работает нормально, но пользовательские данные www не могут получить доступ к i2c-1. Доступ запрещен! Как и предполагалось, я добавил www-data в группу 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
Эта команда изменит разрешение этого указанного каталога, чтобы разрешить чтение и запись в него пользователям в его группе.
Других решений пока нет …