问题描述
喜欢:
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,你的密码将以明文形式被读取。
你不应该这样做。
次佳解决思路
如果您从一个cron目录(/etc/cron.*
)中放置脚本,则不需要使用sudo,因为它以root用户身份运行。
如果您使用的是crontab,那么您将需要使用root的crontab。这将以root身份运行,也不需要sudo。
sudo crontab -e