我有一个简单的shell脚本,使用sudo运行,因为大多数脚本都需要它,但脚本中的一个命令是Homebrew安装,不能用sudo执行..
所以,我的问题是当用sudo执行shell脚本时如何以当前用户身份执行子命令,然后用sudo继续执行脚本的其余部分。
提示用户再次输入密码并不实用,因为脚本执行时间很长,需要等待5-10分钟才能显示提示。
答案 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