Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个使用 sudo 运行的简单 shell 脚本,因为大多数脚本都需要它,但脚本中的命令之一是 Homebrew 安装,不能使用 sudo 执行。
所以,我的问题是当使用 sudo 执行 shell 脚本时,我如何以当前用户身份执行子命令,然后使用 sudo 继续脚本的其余部分。
再次提示用户输入他的密码并不实用,因为脚本需要很长时间才能执行,并且需要等待 5-10 分钟才能得到提示。
sudo最简单的方法是从脚本中运行子命令。要运行的用户 id 可以通过 $SUDO_USER 获得(查看输出sudo env):
sudo
sudo env
sudo -u $SUDO_USER ./exec_as_normal_user.sh
使用实例化外壳
sudo -u $USER_NAME bash
并通过调用执行shell脚本,
./program.sh