您想在 Ubuntu 中创建一个与 root 相同的新用户,可以使用 SSH 密钥登录,唯一的区别是用户名。(不使用 sudo)
我知道有风险,但它在我的私人网络中,经过了严格的身份验证。谢谢☺️
答案1
您实际上可以这样做,尽管我想象不出您想要这样做的任何理由。您可以创建一个与 具有相同用户 ID (UID) 的新用户root
。请注意,这实际上不是一个“新”用户,它只是同一用户的不同用户名。但是,您将能够使用此名称而不是 root 登录。
首先,创建一个新用户并将其 UID 设置为0
root 帐户的 UID:
useradd -d /fool -g root -m -N -o -u 0 -s /bin/bash fool
使用的选项是:
-d /fool
:设置该用户的$HOME
为/fool
。-g root
:设置该用户的默认组为root
。-m
:如果不存在,则创建用户的主目录。-N
:不创建与用户同名的组,只是将用户添加到指定的组中-g
。-o
:允许创建具有与另一个现有用户相同的 UID 的用户。-u 0
:设置该用户的UID为0
(与 相同root
)。-s /bin/bash
:设置用户默认登录shell为bash
。fool
:用户名将为fool
。
运行此命令后,您将能够以以下身份登录fool
:
terdon@ub20:~$ sudo -iu fool
root@ub20:~# whoami
root
root@ub20:~# cd
root@ub20:~# pwd
/fool
如您所见,我已以 身份登录fool
,但whoami
(基于 UID)将我视为root
,而cd
将带我到/fool
。我拥有用户的所有权限root
,因为我是用户root
,但我的用户名和主目录不同。现在您可以继续允许通过 ssh 进行 root 访问(风险自负)并以 而非 的身份登录fool
。root
这都是表面文章,您实际上仍以 的身份登录root
,但这似乎正是您想要的。
答案2
从安全角度来看,您想要做的事情显然还没有完成,而且强烈建议不要这样做。
不过,在 Linux 中还是有可能的不同的用户名代表同一个用户。因此,如果您想设置一个可以完全以 root 身份运行的用户名,原则上可以为 root 用户设置不同的登录名。默认以 root 身份登录是极其不明智的原因之一,就是人为错误很容易导致整个系统崩溃。