如何在不需要手动输入 sudo 密码的情况下运行 bash 文件?

如何在不需要手动输入 sudo 密码的情况下运行 bash 文件?

我这样写了一个 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.localexit-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/sudoersWiki 有一个很好的例子您只需用脚本的路径替换关机命令(使用完整的绝对路径)。NOPASSWD是这里的关键关键字。它允许您以 sudo 身份运行某些操作而无需密码。因此,您只需将 jibberyboo 添加到启动项中,您就可以sudo /sbin/myscript开始运行了。

答案2

我只是在瞎猜,但尝试更改文件的权限

chmod 777 [文件路径]

相关内容