我正在尝试写入/sys/class/backlight/intel_backlight/brightness
和读取/sys/class/backlight/intel_backlight/max_brightness
我编写的脚本。问题是它需要 root,即使我chown
或chmod
它,权限也会在重新启动后重置。
我看到一个解决方案添加类似的内容:
user ALL = NOPASSWD: /sys/class/backlight/intel_backlight/brightness
使用visudo
但不起作用。我还有什么其他选择?
答案1
中的文件/sys
不是磁盘上的物理文件。它们是虚拟文件,可让您访问活动内核中的信息。正如您所发现的,其实际影响是,在它们上运行chown
、chmod
等是短暂的操作。整个文件系统视图/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
.