在没有sudo的shell脚本中执行单个命令

时间:2013-01-15 10:34:11

标签: bash homebrew sudo

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

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

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

2 个答案:

答案 0 :(得分:13)

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

sudo -u $SUDO_USER ./exec_as_normal_user.sh

答案 1 :(得分:0)

使用

实例化shell

sudo -u $USER_NAME bash

并通过调用

执行shell脚本

./ program.sh