以 root 身份执行 sudo Bash 脚本

以 root 身份执行 sudo Bash 脚本

我以 root 身份登录,并想以另一个用户身份执行具有 sudo 权限的 Bash 脚本。

这是测试 Bash 脚本/home/me/sudo.bash

mkdir -p /etc/test # Creating an /etc directory to test permissions
echo "test $(whoami) $USER $HOME" > /etc/test/a.txt

我当前拥有的命令(从 root 运行,为我运行):

sudo --non-interactive --login --set-home --user=me \
sudo --non-interactive bash /home/me/sudo.bash

内容/etc/test/a.txt

test root root /home/me

我的预期是:

test me me /home/me

我在这里做错了什么?

答案1

这是预期的,它将$(whoami)返回“root”,因为它由于第二个而以 root 身份运行sudo

此外,$USER将返回“root”,因为sudo始终将该变量设置为目标用户(再次,在第二个 sudo 上是 root。)

如果您有兴趣知道哪个用户调用了sudo,在第二个情况下是“我” sudo,那么请查看$SUDO_USER变量,该变量sudo设置为调用它的用户。

SUDO_USER 和 USER在手册页的“环境”部分中sudo

相关内容