我在 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>