在服务器上新建账户并赋予 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%