是否有“反向sudo”?

Max*_*xim 21 shell-script

假设我有一个脚本,它将在具有 root 权限的各种机器上执行,但我想在没有 root 的情况下在该脚本中执行某些命令。

那可能吗?

Ale*_*exP 34

双方susudo能做到这一点。他们以另一个用户身份运行命令;默认情况下,“另一个用户”是 root,但它可以是任何用户。例如,

sudo -u www-data ls
Run Code Online (Sandbox Code Playgroud)

将以ls用户身份运行www-data


然而...

通常的方法是作为调用用户运行脚本并sudo用于那些需要它的命令。sudo缓存凭据,因此它最多应提示一次。

  • `sudo` 只会在有限的时间内缓存凭据;如果脚本花费足够的时间执行非 root 命令,这些缓存的凭据可能会丢失。 (7认同)

PSk*_*cik 31

sudo出口环境变量SUDO_COMMANDSUDO_GIDSUDO_UID,和SUDO_USER

您可以使用SUDO_USERSUDO_UID返回调用用户:

sudo -u "$SUDO_USER" an_unprivileged_command
Run Code Online (Sandbox Code Playgroud)