我以root身份登录,并希望以另一个用户的身份执行具有sudo权限的Bash脚本。
这是/home/me/sudo.bash中的测试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我在这里做错什么了?
发布于 2018-11-27 08:48:38
这是预期的,$(whoami)将返回" root ",因为由于第二个sudo,它作为根用户运行。
另外,$USER将返回" root“,因为sudo总是将该变量设置给目标用户(同样,该变量是第二个sudo上的根)。
如果您想知道哪个用户调用了sudo (在第二个sudo中是"me“),那么查看$SUDO_USER变量,sudo将这个变量设置为调用它的用户。
请参阅苏多_用户和用户手册页的“环境”部分。
https://askubuntu.com/questions/1096408
复制相似问题