我正在制作一个脚本,我希望以某个用户身份运行两个服务。该脚本应切换到用户,然后运行一个程序,执行该程序后,应开始运行第二个程序。
答案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'