一行代码转换为另一个用户并以该用户的身份运行命令



在我的本地机器上,我想成为另一个用户(假设目前我是user_c),然后作为该用户运行命令,具体来说,我想成为user_o并运行whoami

我通常用两行来做,像这样:

sudo -i -u -user_o         # Note: no password is needed to run this command
whoami

现在,如何用一行代码完成呢?

I have tried

sudo -i -u user_o && echo "$(whoami)"

却变成了user_o

我也试过这个

sudo -i -u user_o echo "$(whoami)"

但它只是打印当前用户,就像它忽略了sudo -i -u user_o命令

user_c

也runuser不工作,因为user_c不是用户root在我的情况下:

runuser -l user_o -c 'echo "$(whoami)"'
runuser: may not be used by non-root users

SOLVED

实际上没有必要使用&&来分隔"切换用户"。命令和希望作为目标用户执行的命令。

sudo -i -u user_o whoami

最新更新