我想写一个shell脚本来自动执行一系列命令。问题是有些命令必须以超级用户身份运行,而有些命令则不能以超级用户身份运行。到目前为止,我所做的事情是这样的:
#!/bin/bash
command1
sudo command2
command3
sudo command4
问题是,这意味着有人必须等到command1完成后才会被提示输入密码,然后,如果command3花费的时间足够长,那么他们将不得不等待command3完成。如果这个人能站起来走掉,然后一个小时后再回来完成,那就太好了。例如,以下脚本存在此问题:
#!/bin/bash
sleep 310
sudo echo "Hi, I'm root"
sleep 310
sudo echo "I'm still root?"
我如何才能让用户一开始就只需输入一次密码,然后就可以离开呢?
更新:
感谢您的回复。我在Mac上运行了Stephen P的脚本,得到了不同的结果:(我还添加了$HOME)
pair@abbey scratch$ ./test2.sh
uid is 501
user is pair
username is
home directory is /Users/pair
pair@abbey scratch$ sudo ./test2.sh
Password:
uid is 0
user is root
username is root
home directory is /Users/pair
https://stackoverflow.com/questions/10220019
复制相似问题