为什么具有 root 权限的用户不再在 ~ 中?

为什么具有 root 权限的用户不再在 ~ 中?

出于好奇,我想知道为什么当我以 root 身份登录时,我没有/主页/用户不再。原因是什么,/根目录到底是干什么的?

我不是高级用户。请用简单的语言回答,或者给出一个提供清晰、简单解释的链接。我使用 Ubuntu 16.04,并以 root 身份登录sudo -i。正如解释的那样这里sudo -i/根就像家一样。我想知道原因是什么;住在那里有什么好处吗?而不是在~就像 的用户一样sudo -s

答案1

用户的主目录之所以root存在/root并且不存在,/home/root是因为通常/home是指向单独分区/卷/磁盘的挂载点......(出于多种原因,例如磁盘空间,或远程......)

如果由于某种原因挂载/home失败,您仍然可以连接root并进入/root主目录来调查和修复问题

此外,对于维护、初始设置、调整大小等,您将保持连接状态,root并且应该能够卸载/重新安装/home

答案2

您没有通过运行sudo命令以 root 身份登录。您正在以 root 权限启动 shell。

如果想留在当前用户主目录,可以使用sudo -s而不是sudo -i命令。

cd ~将带您进入与不处于具有 root 权限的 shell 中时相同的目录。确实如此/home/$USER

当您使用 时sudo -i,系统会认为您以root用户身份登录。因此

cd ~ 

将带您进入根用户主目录/root

/root目录是用户的主目录root

主要区别在于,在 的情况下,像.bashrc从 使用的shell 设置文件,而在 的情况下,像从普通用户使用的shell 设置文件。/rootsudo -isudo -s

答案3

Linux 文件系统采用特定方式构建。基本二进制文件位于/bin/,引导加载程序文件位于/boot/,大多数设备文件位于/dev/,可移动媒体的挂载点位于/media/,等等...

https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

不同发行版之间的一些细节可能有所不同(例如/usr/bin/vs. /usr/local/bin/),但总的来说,几乎所有 Linux 发行版都遵循相同的目录结构。

回答你的问题:

用户的主目录位于/home/。原则上,Linux 是一个多用户操作系统。您的笔记本电脑上可能只有一个用户帐户,其主目录位于/home/<username>/,但如果您查看/home/共享 Linux 服务器,您将看到许多主目录:每个用户帐户一个。这个想法是,系统的每个用户只在自己的主目录中具有写入权限。如果您的用户名是,bob您可以读取、写入和删除 中的文件,/home/bob/但您不能触摸/home/alice/或 中的任何内容/var/log/

root但有所不同。 root是管理用户,在系统上具有写入权限(并且可以充当系统的任何用户)。 因此,root拥有特殊主目录是有道理的,/root/因为root不是普通用户。 除此之外,/root/只是一个没有特殊魔力的普通目录,尽管系统实用程序很可能(甚至很可能)依赖于/root/用户 的主目录root

当你sudo -i在终端中执行时,你将从普通用户切换到bobroot请注意,此切换仅影响你输入 的终端窗口sudo -i。对于你的文件管理器,你仍然是bob,如果你打开另一个终端窗口,你仍然bob在那里。在这种情况下,符号~是当前用户主目录的简写。对于bob ~手段/home/bob/,但对于root ~手段/root/

我希望这能为你澄清一些事情。

答案4

我看到大家都在回答什么当你以 root 身份登录时会发生这种情况(你会得到一个不在 /home 中的 ~ 目录),但没有人说为什么。 原因如下:

如果整个 /home 结构变得不可用,而您必须修复它,或者如果您需要重新分配 /home,因为它的空间不足,那么您必须以某种方式进行。您无法以在 /home 中拥有 ~ 的任何用户身份登录,因为一旦您尝试执行任何操作,您就会崩溃。因此,root 用户在其他地方拥有 ~。

相关内容