创建新用户
安全考量建议不要在 Linux 系统中直接使用 root 用户进行操作,因为即便是细微的命令错误也可能导致文件和系统受到不可逆的损坏。
最佳解决方案是创建一个拥有 sudo 权限的附加 VDS 用户。sudo 机制允许该用户在必要时以管理员 (root) 权限执行操作。
根据本教程,您也可以创建普通系统用户(不带 sudo 权限)——只需执行前三个步骤即可。
创建拥有 sudo 权限的用户
1. 使用以下命令创建一个新用户(本例中用户名为 username):
adduser username
默认情况下,创建的用户将被添加到同名组中,并为其创建家目录。
2. 在 Ubuntu / Debian 中,系统会要求您输入用户密码。密码需要输入两次。请注意,在 Linux 终端输入密码时,屏幕上不会显示字符。

在 CentOS 中,请执行以下命令设置密码:
passwd username
然后输入并确认密码。
3. 在 Ubuntu / Debian 中,系统还会要求您输入用户的附加信息(例如姓名、电话号码等)。您可以输入这些数据,也可以直接按 Enter 键留空以使用默认值。最后按 Y 键确认。

在 CentOS 中,如果您需要指定附加信息,请执行以下命令:
chfn username
至此,创建普通用户(不带 sudo 权限)的步骤已完成。
4. 要授予用户 sudo 权限,请将其添加到 sudo 组。可以使用以下命令完成。
在 Ubuntu / Debian 中:
usermod -aG sudo username
在 CentOS 中:
usermod -aG wheel username
5. 检查用户操作。为此,请切换到该账户:
su - username
系统会要求您输入用户密码(首次尝试使用 sudo 时)。之后,您可以尝试执行任何带有 sudo 权限的命令。例如,可以查看普通用户无法访问的 /root 目录内容:
sudo ls -la /root
如果显示了目录内容,说明创建的用户运行正常。
如果 root 使用 SSH 密钥进行身份验证
如果您是以 root 身份使用 SSH 密钥登录的,那么 SSH 的密码认证通常是禁用的。为了成功登录系统,您需要将本地公钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件中。由于您的公钥已经存在于 root 账户的 ~/.ssh/authorized_keys 文件中,您可以使用 cp 命令将其复制到新用户的家目录,并使用 chown 设置权限。
将整个目录复制到新用户的家目录:
cp -r ~/.ssh /home/username
将该目录的所有者设置为用户 username(同时会创建一个同名组):
chown -R username:username /home/username/.ssh
现在,您可以无需密码以新用户身份登录服务器:
ssh username@您的服务器IP
如果您需要以管理员权限执行命令,请在命令前添加 sudo,例如:
sudo 命令
首次使用 sudo 时(以及之后定期),系统会要求您输入普通用户的密码。
6. 此步骤为可选步骤,但为了提高安全性,您可以禁用超级用户 root 的远程访问权限。这样用户将始终必须通过自己的账户登录,这有助于追踪服务器上的操作,查看更改是由谁做出的等。要禁用 root 访问,请打开 /etc/ssh/sshd_config 文件:
sudo nano /etc/ssh/sshd_config
找到 PermitRootLogin 行,并将其当前值更改为:
PermitRootLogin no
保存更改并关闭编辑器(快捷键 Ctrl X -> Y -> Enter)。
之后使用以下命令重启 SSH 服务:
在 Ubuntu / Debian 中:
sudo service ssh restart
在 CentOS 中:
sudo service sshd restart
其他用户管理命令
如果您需要将用户添加到另一个组,请先创建该组:
groupadd 组名
在 Ubuntu 和 Debian 中,也可以使用 addgroup 命令创建组:
addgroup 组名
然后使用 usermod 命令将用户添加到所需的组:
usermod -G 组名 用户名
要更改用户的主组,请使用 -g 选项:
usermod -g 组名 用户名
要更改用户的家目录,请使用以下命令:
usermod -d /新目录路径 用户名
要获取用户信息,请使用以下命令:
id 用户名
结果将包含类似以下的数据:
uid=1000(username) gid=1000(username) groups=1000(username),27(sudo)
可以使用以下命令更改用户密码:
passwd 用户名
要查看所有已创建用户的列表,请使用以下命令:
cat /etc/passwd
要仅获取用户名列表而不包含附加信息,请使用:
sed 's/:.*//' /etc/passwd
要查看当前在系统中的用户列表,请使用 w 命令。
可以使用以下命令删除用户:
deluser 用户名
要删除组,请使用:
delgroup 组名