在服务器上新建账户并赋予 root 权限

本文介绍了如何在服务器上添加一个普通权限的新用户并赋予其 root 权限。

root 用户和 root 权限

root 用户在 Linux 系统中拥有极高的管理权限,即 root 权限。以 root 用户登录并操作 Linux 系统是极其危险的,如果因手滑而运行了错误且危险的指令,有可能造成不可挽回的破坏和损失,如删除了整个根目录……因此在日常使用的场景下,不建议以 root 用户登录并操作。 我们可以创建一个拥有普通权限的普通用户,并赋予其 root 权限。这样可以在日常操作时限制其管理权限,不至因失误造成系统级破坏;当我们确实需要 root 权限执行某些操作时,只需在相应操作命令前加上 sudo 即可,不需要在 root 用户与普通用户间频繁切换。这是一个兼顾安全与效率的方式。

切换至 root 用户

以 root 用户登录服务器

1
ssh root@hostname

以 root 用户登录服务器后,命令提示符为 # 。

以普通用户登录服务器

1
ssh username@hostname

以普通用户登录服务器后,命令提示符为 $ 。

1
$ su

执行 su 命令并输入 root 用户密码后可切换至 root 用户, 此时命令提示符为 # 。

创建一个新用户

1
# adduser newuser

根据屏幕提示,输入新用户密码以及其他信息,或按 ENTER 回车键依次跳过填写可选信息。此时 newuser 没有 root 权限,若 newuser 用户使用 sudo 命令并输入其自己的账户密码后系统提示:

1
newuser is not in the sudoers file.  This incident will be reported.

为 newuser 赋予 root 权限

1
# usermod -aG sudo newuser

此命令将 newuser 加入 sudo 组,sudo 组中的成员可以使用 sudo 命令。此后,当以 newuser 用户登录服务器并需要 root 权限执行某些命令时,可以在相应命令前加 sudo 。

以 newuser 登录服务器

在确保可以 newuser 登录服务器并使用 sudo 命令前,建议保持此前 root 用户的登录。这样 newuser 在登录和使用时有任何问题都可以方便的用 root 用户解决。

在本地打开一个新的终端窗口,以 newuser 登录服务器:

1
ssh newuser@hostname

在命令前添加 sudo 以测试 root 权限:

1
$ sudo fdisk -l

该命令可查看服务系磁盘分区,需要 root 权限。以 newuser 登录服务器后,第一次使用 sudo 命令时需要输入 newuser 用户的密码。本次登录后续使用 sudo 命令时不再需要输入密码。


参考资料:

0%