是否可以编写一个 shell 脚本,其中包含 root 命令,并执行它而无需通过终端输入 root 密码。
答案1
您可以通过编辑 sudoer 文件来执行此操作。
打开终端(ctrl++ alt)T
输入以下命令
sudo visudo
文件打开后输入以下命令
username ALL=(ALL) NOPASSWD: /path/to/command
将用户名替换为你自己的用户名
您可以通过运行来找到命令的路径
which command
有关编辑 sudoer 文件的更多信息,请访问本网站。
答案2
是的。
有些人可能会建议将脚本标记为 setUID 并归 root 所有。我不建议这样做。相反,将脚本将在其 ID 下运行的用户放入 sudoers 组,并配置 sudo 以允许该用户以 root 身份运行特定所需的命令,而无需该用户输入密码。这提供了可听性并使事情保持良好的控制。
有关 sudo 及其配置的更多信息,请参见在此处找到。