重启后如何用脚本写入/sys/? (须藤)

重启后如何用脚本写入/sys/? (须藤)

我正在尝试写入/sys/class/backlight/intel_backlight/brightness和读取/sys/class/backlight/intel_backlight/max_brightness我编写的脚本。问题是它需要 root,即使我chownchmod它,权限也会在重新启动后重置。

我看到一个解决方案添加类似的内容:

user ALL = NOPASSWD: /sys/class/backlight/intel_backlight/brightness

使用visudo但不起作用。我还有什么其他选择?

答案1

中的文件/sys不是磁盘上的物理文件。它们是虚拟文件,可让您访问活动内核中的信息。正如您所发现的,其实际影响是,在它们上运行chownchmod等是短暂的操作。整个文件系统视图/sys是在系统启动时由内核生成的,因此无法进行持久更改。

最简单的解决方案是运行你的脚本作为根。使用sudo是一种常见的解决方案。您需要让您的用户能够以 root 身份运行您的脚本。因此,例如,如果您的脚本安装为/usr/local/bin/configure-brightness,您可以/etc/sudoers.d/brightness使用以下内容创建:

yourusername ALL=(ALL) NOPASSWD:/usr/local/bin/configure-brightness

该文件( /etc/sudoers.d/brightness) 必须属于root并具有模式440

完成此配置后,您可以运行:

sudo /usr/local/bin/configure-brightness

...并且脚本将作为 运行root,这意味着它将能够读取/写入/sys.

相关内容