我这样写了一个 bash 文件:
#!/bin/bash
echo 1000 |sudo tee /sys/class/backlight/intel_backlight/brightness
(改变屏幕亮度)
我需要它在启动时运行,但由于它需要 sudo 密码,所以我必须手动输入密码。我该如何修改此代码,使其在运行时不需要 sudo 密码?
答案1
对于这个特定问题,您可能只需坚持echo 1000 > /sys/class/backlight/intel_backlight/brightness
(/etc/rc.local
在exit
-line 之前)。这将在启动时以 root 身份运行它,然后再加载桌面。
但总的来说(如何以 root 身份运行脚本?),事情有点棘手……
您可以直接运行sudo ./myscript
(通过编辑sudoers
),但只需允许./myscript
在没有密码的情况下运行意味着您(或以您身份运行的程序)可以编辑该文件,然后您就可以运行任何事物未经正确程序就以 root 身份登录。安全性极差。
相反,我建议:
sudo mv myscript /sbin/myscript
sudo chown root:root /sbin/myscript
sudo chmod 700 /sbin/myscript
命令ch*
现在意味着只有 root 可以读取/运行脚本。将其粘贴进去/sbin/
只是偶然的 - 您不必这样做。
现在您需要编辑/etc/sudoers
。Wiki 有一个很好的例子您只需用脚本的路径替换关机命令(使用完整的绝对路径)。NOPASSWD
是这里的关键关键字。它允许您以 sudo 身份运行某些操作而无需密码。因此,您只需将 jibberyboo 添加到启动项中,您就可以sudo /sbin/myscript
开始运行了。
答案2
我只是在瞎猜,但尝试更改文件的权限
chmod 777 [文件路径]