如何在没有sudo的情况下运行命令?

时间:2010-08-06 07:04:58

标签: linux shell

我想在crontab(在我的本地计算机上)添加一行,每五分钟运行一次。我的问题是我要使用的命令需要sudo:

sudo indexer --config /usr/local/etc/sphinx.conf --all --rotate

有没有办法在不使用sudo且不提示输入密码的情况下运行命令?

谢谢!

5 个答案:

答案 0 :(得分:3)

将它放在root

的crontab中
sudo crontab -e

你可以放

indexer --config /usr/local/etc/sphinx.conf --all --rotate

此crontab中的所有命令都将以root身份执行。如果您只是crontab -e作为当前用户,则会以用户权限执行。

答案 1 :(得分:2)

使用cmd visudo(此cmd需要root权限)将命令附加到sudoer文件列表,如下所示:

<YOUR_USER_NAME> ALL = NOPASSWD:<ABSOLUTE-PATH-TO-CMD>

照顾ABSOLUTE-PATH-TO-CMD,它可能会成为一个安全漏洞。

答案 2 :(得分:1)

将应用程序放在root的crontab中非常危险,除非该盒子能够很好地抵御黑客攻击。如果有人替换了二进制文件(包括库),那么你就走了!

更好的方法是将二进制文件访问的所有文件chown给非特权用户,并以非特权用户身份运行该作业。

应用程序使用的任何二进制文件都不应该被除root之外的任何人写入。

答案 3 :(得分:0)

以root身份运行它?还是狮身人面像用户?试着找出你需要运行哪个用户并将其添加到用户cron

答案 4 :(得分:0)

您可以配置sudo不要求密码。阅读男人sudoers如何做到这一点。搜索NOPASSWD字符串。