Bash 不使用sudo在shell脚本中执行单个命令

Bash 不使用sudo在shell脚本中执行单个命令,bash,homebrew,sudo,Bash,Homebrew,Sudo,我有一个简单的shell脚本,它是用sudo运行的,因为大多数脚本都需要它,但是脚本中的一个命令是自制安装,不能用sudo执行 因此,我的问题是,当使用sudo执行shell脚本时,如何作为当前用户执行子命令,然后使用sudo继续脚本的其余部分 提示用户再次输入密码并不实际,因为脚本需要很长时间才能执行,并且需要等待5-10分钟才能得到提示。最简单的方法是从脚本中通过sudo运行子命令。要运行的用户id可由$SUDO_user获得(查看SUDO env的输出): 使用 sudo-u$USER\u

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

因此,我的问题是,当使用sudo执行shell脚本时,如何作为当前用户执行子命令,然后使用sudo继续脚本的其余部分


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

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


使用

sudo-u$USER\u NAME bash

并通过调用


./program.sh

有没有一种方法可以在不需要另一个bash脚本文件的情况下执行此操作?AWS在启动服务器时只允许一个文件作为附件
sudo -u $SUDO_USER ./exec_as_normal_user.sh