制作一个以第二个用户身份运行的 shell 脚本

制作一个以第二个用户身份运行的 shell 脚本

我正在制作一个脚本,我希望以某个用户身份运行两个服务。该脚本应切换到用户,然后运行一个程序,执行该程序后,应开始运行第二个程序。

答案1

sudo命令可以被告知以特定用户身份运行:

 -u user, --user=user
             Run the command as a user other than the default target user
             (usually root).  The user may be either a user name or a
             numeric user ID (UID) prefixed with the ‘#’ character (e.g.
             #0 for UID 0).

因此,在您的脚本中,您可以用来sudo -u USERNAME运行这两个服务:

sudo -u foo command1
sudo -u foo command2

然而,这意味着脚本本身需要以 root 身份运行。否则,sudo将要求用户输入密码foo

答案2

sudo -u username -s -- "program1 && program2"

或者

sudo -u username bash -c 'program1 && program2'

相关内容