在shell脚本中执行单个命令而无需sudo

13

我有一个简单的shell脚本,大部分需要使用sudo运行,但是脚本中的一个Homebrew安装命令不能用sudo执行。

所以我的问题是,当使用sudo执行shell脚本时,如何以当前用户身份执行子命令,然后继续使用sudo执行脚本的其余部分。

不太实际让用户再次输入密码,因为脚本执行时间较长,需要等待5-10分钟才能提示。

2个回答

13

最简单的方法是通过脚本内使用 sudo 运行子命令。要运行的用户ID可以通过 $SUDO_USER 获取(查看 sudo env 的输出):

sudo -u $SUDO_USER ./exec_as_normal_user.sh

有没有一种方法可以在不需要另一个bash脚本文件的情况下完成这个操作?AWS在启动服务器时只允许附加一个文件。 - zeros-and-ones

0

使用以下命令实例化shell:

sudo -u $USER_NAME bash

然后通过调用以下命令来执行shell脚本:

./program.sh


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接