13

我有一个使用 sudo 运行的简单 shell 脚本,因为大多数脚本都需要它,但脚本中的命令之一是 Homebrew 安装,不能使用 sudo 执行。

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

再次提示用户输入他的密码并不实用,因为脚本需要很长时间才能执行,并且需要等待 5-10 分钟才能得到提示。

4

2 回答 2

13

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

sudo -u $SUDO_USER ./exec_as_normal_user.sh
于 2013-01-15T10:48:10.677 回答
0

使用实例化外壳

sudo -u $USER_NAME bash

并通过调用执行shell脚本,

./program.sh

于 2013-01-15T12:47:51.217 回答