我以 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
我在这里做错了什么?
这是预期的,$(whoami)
它将返回“root”,因为由于第二个sudo
.
此外,$USER
将返回“root”,因为sudo
始终将该变量设置为目标用户(在第二个 sudo 上也是 root。)
如果您想知道哪个用户调用了sudo
,在第二个的情况下哪个是“我” sudo
,然后查看$SUDO_USER
变量,该变量sudo
设置为调用它的用户。
请参阅手册页的“环境”部分中的SUDO_USER 和 USERsudo
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句