如何自动执行包含 sudo 命令的 bash 脚本?

如何自动执行包含 sudo 命令的 bash 脚本?

我在 bash 脚本中添加了一些命令,这些命令需要 root 权限。因此,我为这些命令添加了 sudo 关键字。按照常规方式,我将此脚本添加到 crontab 文件中以自动执行我的任务。

当它尝试自动运行时,有什么方法可以授予 root 访问权限?

注意:我正在使用 crontab 来自动执行我的脚本。

答案1

是的。阅读man sudoers sudoedit。您可以授予单个用户无密码访问一组命令的权限。您可以指定访问的日期范围,因此如果您的脚本仅在 03:00 到 03:15 之间运行,则您只能允许访问。

答案2

除非你需要其他脚本中的命令以非 root 用户身份运行,最简单的选项是sudo从脚本内部删除命令,然后以 root 身份运行整个脚本,方法是将其添加到 root 的 crontab 文件(sudo crontab -e)或通过用户字段中指定的系统范围/etc/crontab文件root

如果你需要以非 root 用户身份运行某些命令,那么你可以执行相同的操作,但使用以下命令放弃这些特定命令的权限sudo -u <otheruser>

相关内容