如何使用sudo命令运行cron作业
是否可以运行需要sudo命令的cron作业?
喜欢:
sudo rm somefile
我不会深入了解这是多么糟糕的主意; 简单地说,在crontab中运行sudo
需要将密码以明文存储在某处。
这是个坏主意。
以下是通过cron运行管理任务的首选方法。 因为你真的不需要在crontab中编写sudo
,如果你正在修改root的crontab。
使用root的crontab
运行以下命令:
sudo crontab -e
这打开了root
的crontab。 sudo
不必在此上下文中运行您的命令,因为它无论如何都将以root
身份调用。
因此,您只需将以下内容附加到root的crontab即可。
@hourly rm somefile
现在,如果你绝对想要不安全并冒险使用密码,以下内容将从你自己的crontab运行你的命令,并在sudo
提示时自动输入你的密码。
同样, 不建议这样做 。
在您自己的crontab中,像这样编写命令:
@hourly echo "password" | sudo -S rm somefile
这里明显的缺点是,如果有人访问您的crontab,您的密码将以纯文本forms读取。
你不应该这样做。
如果您从其中一个cron目录( /etc/cron.*
)中放入脚本,那么您不需要使用sudo,因为它以root身份运行。
如果您使用的是crontab,那么您将需要使用root的crontab。 这将以root身份运行,也不需要sudo。
sudo crontab -e
在终端中运行以下命令
sudo visudo
在文件末尾添加以下行:
vidyadhar ALL= NOPASSWD: /bin/rm
在上面的示例中,vidyadhar是用户名,如果您通过vidyadhar运行rm命令,它将不会要求输入密码。