在 shell 脚本中途退出 sudo

在 shell 脚本中途退出 sudo

我有一个 shell 脚本,其中大多数命令需要在 sudo 下运行;但是,最后几个命令需要以当前用户身份运行。有没有办法可以退出 sudo 并切换到当前登录的用户?

如果我从命令行运行所有这些,我可以执行以下操作:

sudo su
[su commands]
exit
[user commands]

但是,exit将会在该命令处停止脚本。

答案1

您是否考虑过修改脚本以将其sudo作为需要以 root 身份运行的命令的前缀?sudo内置的凭证缓存机制意味着您只需要回答一次密码提示,除非 shell 脚本运行很长时间。

答案2

不要使用sudo susu - <user>,因为使用此命令会打开子 shell。这样效果不太好。

请使用 sudo "su commands"例如sudo "ls /home"

如果你真的想使用sudo su,你可以通过输入例如来使用它

sudo su -c "ls /tmp"

如果有多个命令,请使用以下方式分隔;

sudo su -c "ls /tmp/; whoami"

相关内容