首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编写一个shell脚本,以超级用户身份运行一些命令,而不是以超级用户身份运行一些命令,而不必看管它?

如何编写一个shell脚本,以超级用户身份运行一些命令,而不是以超级用户身份运行一些命令,而不必看管它?
EN

Stack Overflow用户
提问于 2012-04-19 08:26:29
回答 4查看 307.7K关注 0票数 58

我想写一个shell脚本来自动执行一系列命令。问题是有些命令必须以超级用户身份运行,而有些命令则不能以超级用户身份运行。到目前为止,我所做的事情是这样的:

代码语言:javascript
运行
复制
#!/bin/bash

command1
sudo command2
command3
sudo command4

问题是,这意味着有人必须等到command1完成后才会被提示输入密码,然后,如果command3花费的时间足够长,那么他们将不得不等待command3完成。如果这个人能站起来走掉,然后一个小时后再回来完成,那就太好了。例如,以下脚本存在此问题:

代码语言:javascript
运行
复制
#!/bin/bash

sleep 310
sudo echo "Hi, I'm root"
sleep 310
sudo echo "I'm still root?"

我如何才能让用户一开始就只需输入一次密码,然后就可以离开呢?

更新:

感谢您的回复。我在Mac上运行了Stephen P的脚本,得到了不同的结果:(我还添加了$HOME)

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10220019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档