在根模式下,“ls”的输出有所不同

在根模式下,“ls”的输出有所不同

当我使用命令sudo -i并输入密码,然后输入时ls,我发现我只能在终端中看到桌面文件夹和包。

但当我回到正常模式时,所有文件夹都出现了。

我不知道是什么原因导致了这个问题...有人可以帮助我吗?

答案1

sudo -i命令会为您提供一个 root 身份的 shell,并且您将处于该root用户的主目录中,而不是您自己的主目录中。由于root通常不是您正常使用的用户,因此该用户的主目录中将仅存在极少数文件,尤其是任何新用户的骨架目录结构。

答案2

这是因为当您处于 root 模式时,您处于 root 的主目录中。尝试以下操作:

pwd
sudo -i
pwd

您将看到目录发生变化

答案3

这也困扰了我太多,所以我制作了这个脚本:

params="$@";sudo -i bash -c "cd \"`pwd`\";$params"

pwd将在您需要的命令之前以您的普通用户身份运行

将其放在一个脚本文件中,该文件位于root:root rw-r--r--由 root 拥有的文件夹完整层次结构中,就像/MyScripts(创建它)一样更安全..

它的缺陷是如果你有一个参数中间有空格,比如ls -1 a "b c",就需要ls -1 a "b\ c",但这可以在你改进脚本时稍后解决:)

相关内容