因此,假设我有一个应该以 root 身份运行的 shell 脚本,但我想使用 runuser 作为运行 sudo 的用户来执行命令。我可以runuser -u tux echo penguin
。但是,如果我想获取sudo
以 root 身份在 root shell 中运行的用户的用户名,以避免将用户名硬编码到脚本中运行,该怎么办?我怎样才能做到这一点?
答案1
使用SUDO_USER
变量:
$ env | grep SUDO
$ sudo env | grep SUDO
SUDO_COMMAND=/sbin/env
SUDO_USER=terdon
SUDO_UID=1000
SUDO_GID=1000
因此,您可以检查$SUDO_USER
变量是否已设置:
if [ -n "$SUDO_USER" ]
then
# run commands related to the original invoking user
fi