Root 是谁?Root 为什么存在?
您是否曾经想过为什么 Linux 中会有一个名为 的特殊帐户root
?您知道使用此帐户的推荐最佳实践是什么吗?您是否知道哪些场景必须使用它,哪些场景不需要它?如果您对其中一个或多个问题的回答是“是” ,请继续阅读。
在这篇文章中,我们将提供有关您需要掌握的根帐户信息的参考。
什么是 root?
首先,让我们记住,类 Unix 操作系统中的目录层次结构被设计为树状结构。起点是一个用正斜杠表示的特殊目录,(/)
所有其他目录最初都从该目录分支出来。由于这类似于实际的树,因此/
称为根目录。
在下图中我们可以看到输出:
$ tree -d / | less
/
这说明了和root
树之间的类比。
虽然root账户命名的原因尚不十分清楚,但很可能是因为root是 内部唯一具有写权限的账户/
。
此外,root可以访问任何类 Unix 操作系统中的所有文件和命令,因此通常被称为超级用户。
附注:不要将根目录与 混淆,后者是 root 用户的主目录。事实上,是 的子目录。(/)
/root
/root
/
获取 root 权限
当我们谈论root(或超级用户)权限时,我们指的是此类帐户在系统上拥有的权限。这些权限包括(但不限于)修改系统和授予其他用户对其资源的某些访问权限的能力。
不计后果地使用这种权力,在最好的情况下会导致系统崩溃,在最坏的情况下会导致系统彻底崩溃。这就是为什么在访问 root 帐户的权限时,以下准则被视为最佳实践:
首先,使用root帐户运行visudo。使用该命令编辑/etc/sudoers以授予给定帐户(例如,supervisor)所需的最低超级用户权限。
例如,这可能包括创建(adduser)和修改(usermod)用户帐户的能力– 仅此而已。
接下来,以管理员身份登录并使用 sudo 执行用户管理任务。您会注意到,尝试执行需要超级用户权限的其他任务(例如,删除软件包)应该会失败。
在需要时重复上述两个步骤,完成后,使用exit命令立即返回到您的非特权帐户。
此时您应该问自己,是否有任何其他定期出现的任务需要超级用户权限?如果是,请在/etc/sudoers中为给定帐户或组授予必要的权限,并继续尽可能避免使用 root 帐户。
概括
这篇文章可以作为在类Unix操作系统中正确使用root帐户的参考。欢迎将其添加到您的书签并随时返回!
与往常一样,如果您对本文有任何疑问或建议,请使用下面的评论表给我们留言。我们期待您的回复!