当前位置: 首页>>技术教程>>正文


如何使用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,你的密码将以明文形式被读取。

你不应该这样做。

次佳解决思路

如果您从一个cron目录(/etc/cron.*)中放置脚本,则不需要使用sudo,因为它以root用户身份运行。

如果您使用的是crontab,那么您将需要使用root的crontab。这将以root身份运行,也不需要sudo。

sudo crontab -e

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/654.html,未经允许,请勿转载。