gpt4 book ai didi

linux - 以 root 身份执行的脚本中的 su 命令似乎不一致

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:48 63 4
gpt4 key购买 nike

我试图了解如何在具有 root 权限的脚本中从我的用户帐户运行命令。我已经有了这个测试脚本,但输出让我感到困惑。

~$cat test.sh

输出:

#!/usr/bin/bash
su -c "whoami" user
su -c "echo $HOME" user

~$ sudo ./test.sh

输出:

user
/root

为什么第一个“su”命令似乎以“用户”身份运行,但第二个命令似乎以“root”身份运行?

最佳答案

双引号扩展 shell 变量。尝试一下

echo su -c "echo $HOME" user

看看我的意思。它是运行扩展 $HOME 脚本的 shell,它以 root 身份运行(来自 sudo ./test.sh)。所以最终运行的是 su -c 'echo/root' user

你想要

su -c 'echo $HOME' user

这里我们将未展开的 echo $HOME 传递给 su -c

关于linux - 以 root 身份执行的脚本中的 su 命令似乎不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515494/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com