Tre*_*vor -2 ls users root sudo
当我以 登录时username,为什么
sudo ls ~
Run Code Online (Sandbox Code Playgroud)
向我展示而不是的内容?我认为以 root 身份执行命令,在这种情况下将代表./home/username/rootsudo~/root
更多解释:
此外,如果我运行su命令,然后运行ls ~,我会看到/root. 所以我认为这样做相当于sudo ls ~.
再举一个例子,一些带有--user标志的命令在以sudo. 例如,将安装到 内的目录 ,而 将安装到. 请注意,不建议运行最后一个命令,我只是使用它来显示我所描述的功能。pip install --user packagename/home/usernamesudo pip install --user packagename/root
外壳~在运行前展开sudo;你可以看到这个在行动set -x:
$ set -x
$ sudo ls ~
+ sudo ls /home/skitt
Run Code Online (Sandbox Code Playgroud)
这表明实际运行的命令已经使用扩展时的当前用户扩展了主目录。
要查看目标用户的主目录,您必须推迟波浪号扩展:
sudo bash -c 'ls ~'
Run Code Online (Sandbox Code Playgroud)