问题描述
如果我在Ubuntu中创建了一个名为root
的用户帐户,它会自动拥有root权限吗?打破系统?导致矩阵出现故障?会发生什么?
最佳解决办法
用户名必须是唯一的,因此,正如Owen Hines’ answer所述,您将无法创建此用户。但是,这里的关键点是超级用户权限(所有可能的权限)不是由用户名root
授予的,而是由UID授予的。
UID为0的用户是超级用户。
因此,如果具有UID 0的用户具有不同的名称,并且您创建了名为root
的用户,则他们将没有任何特殊状态。
我推荐你到root标签维基!
次佳解决办法
它不会让你,因为已经有一个root
用户。
但是,正如Florian Diesch在评论中所说:
Some tools will complain but you can always edit
/etc/passwd
andetc/shadow
manually to create a second user namedroot
.
第三种解决办法
首先,如其他人所述,您将UID 0的用户更改为其他内容。然后,您可以创建一个名为root且UID高于1000的普通用户。它将起作用”fine”。所有权限和核心系统函数都使用UID而不是用户名。事实上,这是加强Linux系统的良好开端。 (更好地禁用root,但在sudo之前我们曾经这样做过)。
现在将会发生什么。
大部分时间都没有。与授权或身份验证有关的所有系统调用都使用UID(我知道)。它已经有一段时间了。您的系统将照常运行。系统工具将反映新用户名,但继续正常工作。换句话说”root”在惯例中并没有一成不变。
也就是说,我确信有些工具和程序编写得很糟糕。检查$ USER环境变量的程序可能不正确。通常这些是脚本和小项目,但你可以花一些时间来追踪那个糟糕的提交,6年前在fdisk中让你头疼。
这是我过去经常做的事情。这是一个简单的步骤,属于“non-predictable用户名”的规则。然而,今天有更好的方法来实现相同的目标。