从用户主目录,当我连续运行“cd ..”时,它会带我进入带有 /$ 的提示符,当我在此处 ls 时,它会列出所有根文件夹。当我运行“sudo -s”或“sudo -i”或“sudo su”时,它会带我进入带有 /# 的提示符,当我在此处 ls 时,它会列出所有根目录。以 /$ 和 /# 访问这些根文件夹有什么区别?
答案1
在这种情况下,情况并非如此。ls
其本身是无害的。
有以下几点:
- 使用提示执行某些操作
$
将会以您的用户身份记录事件。 #
以作为提示执行某件事后sudo -i
,将会以您的用户身份记录事件。- 执行完某件事
#
后,以作为提示符sudo -u
将会把事件记录为“root”。
在多用户系统上应避免使用最后一个方法,以便将操作追溯到用户。在单用户系统上,最好复制此行为:然后您可以将操作追溯到您自己或“root”驱动的事件(例如,服务以 root 身份登录,这样您就可以看到不是您做了某事)。
sudo -i
使用和sudo -u
与其他命令相关的问题。例如rm
和dd
以及其他几个命令,系统将在不通知您即将发生不良事件的情况下执行这些命令。不良事件是指您没有预料到的事情。普通用户会收到有关权限的警告,并且命令将失败。
使用 root 用户执行的操作也会以 root 身份执行。因此,如果您将文件复制到另一个位置并忘记设置正确的权限,您的用户帐户将无法访问。我们的系统上有几个文件需要特定权限才能运行。弄乱这些文件,您就会把自己锁在外面。这些问题可以通过 grub 救援或实时会话解决,因此它只是令人烦恼,而不是永久性的。
答案2
当提示符显示 时/$
,您已以您的用户身份登录。您拥有您的用户的权限。
当提示说/#
您已以用户身份登录root
并拥有更高级别的权限,并且可以在系统上进行更多更改时。
目录仍然是相同的。
提示符末尾的不同字符是一个线索,表示:“您正在以 root 身份工作”