如何在Shell脚本中执行sudo命令?

时间:2015-02-14 22:01:23

标签: bash shell passwords sudo

我正在使用LaunchD Task Scheduler应用程序在我的Mac Mini上安排作业。我想每两个小时执行一次清除命令,所以我不必记得在终端中执行此操作。我必须使用sudo命令运行它。我希望以保护密码的方式执行此操作。

我已经找到了很多不同的方法来解决这个问题。我现在决定运行以下脚本。根据我的理解,这应该使命令不会被写入.bash_history和缓存文件中。现在我拥有脚本(和每个脚本)的文件夹的权限设置为admins&当前用户有权访问。

#!/bin/sh
export HISTIGNORE='*sudo -S*'
echo "mypassword" | sudo -S -k purge

我已经阅读了一个可以将密码放在安全文件中的过程,我想从该文件中访问密码。我想尝试这个过程,但我找不到如何做到这一点的例子。我认为使用密码引用一个安全文件可能比将密码放在每个shell脚本中更好。我还想在.bash_history中看到命令。

2 个答案:

答案 0 :(得分:0)

执行此操作的安全方法是允许用户在没有密码的情况下运行特定命令。

请参阅StackOverflow的其中一个姐妹网站的this question

答案 1 :(得分:0)

您希望脚本每2小时以root身份运行一次,这样您就不需要记住了吗?

sudo crontab -e

0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /home/lightbe/swanky_script.sh

...然后您的密码受到保护。