如何在 Debian Linux 中允许用户 www-data 访问 i2c


How to allow i2c access by user www-data in Debian Linux?

我有一个访问/dev/i2c-1 的程序。当以根用户身份运行时,它可以正常工作。现在,我必须能够在Apache服务器上使用PHP脚本来运行它。程序启动并运行正常,但用户 www-data 无法访问 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

命令将更改此指定目录的权限,以允许其组中的用户读取和写入该目录。