Linux 服务器用户账号创建与密码管理
在 Linux 服务器上拥有 sudo 管理权限时,经常需要为其他使用者创建独立账号、配置密码或 SSH 登录,以及管理用户权限。
适用范围: 本文记录常用操作,主要适用于 Ubuntu / Debian。不同发行版的用户组名称和管理命令可能略有差异。
1. 创建用户
假设需要创建用户 alice:
sudo adduser alicesudo adduser alice按照提示设置用户密码等信息。创建完成后,可以检查用户信息:
id aliceid alice也可以查询 /etc/passwd:
getent passwd alicegetent passwd alice示例输出:
alice:x:1001:1001:Alice,,,:/home/alice:/bin/bashalice:x:1001:1001:Alice,,,:/home/alice:/bin/bash其中可以看到 UID、GID、Home 目录以及默认 Shell 等信息。
2. 修改或重置用户密码
管理员不需要知道用户原来的密码,可以直接重置:
sudo passwd alicesudo passwd alice系统会要求输入两次新密码:
New password:
Retype new password:
passwd: password updated successfullyNew password:
Retype new password:
passwd: password updated successfully这也是新创建账号后设置登录密码最常用的方法。
3. 查看用户密码状态
Linux 不提供查看用户明文密码的功能,但可以查看用户当前的密码状态:
sudo passwd -S alicesudo passwd -S alice示例输出:
alice P 2026-09-23 0 99999 7 -1alice P 2026-09-23 0 99999 7 -1常见状态包括:
P:已经设置有效密码L:密码被锁定NP:没有设置密码
注意: 这里只能查看密码状态,不能查看用户实际使用的密码。
4. 查看密码过期策略
使用以下命令:
sudo chage -l alicesudo chage -l alice可以查看:
Last password change
Password expires
Password inactive
Account expires
Minimum number of days between password change
Maximum number of days between password changeLast password change
Password expires
Password inactive
Account expires
Minimum number of days between password change
Maximum number of days between password change5. 设置临时密码,并要求首次登录修改
如果是给其他人创建账号,比较合理的做法是管理员先设置一个临时密码:
sudo passwd alicesudo passwd alice然后强制用户在下次登录时修改密码:
sudo chage -d 0 alicesudo chage -d 0 alice可以再次检查密码策略:
sudo chage -l alicesudo chage -l alice6. Linux 密码保存在哪里?
Linux 用户信息主要涉及以下两个文件:
/etc/passwd
/etc/shadow/etc/passwd
/etc/shadow/etc/passwd
/etc/passwd 保存账号的基本信息,可以通过以下命令查询:
getent passwd alicegetent passwd alice/etc/shadow
真正与密码认证相关的数据通常保存在 /etc/shadow,需要 root 权限才能读取:
sudo grep '^alice:' /etc/shadowsudo grep '^alice:' /etc/shadow示例输出:
alice:$y$j9T$......:20720:0:99999:7:::alice:$y$j9T$......:20720:0:99999:7:::这里保存的是密码的哈希值,而不是明文密码。因此,即使拥有 sudo 权限,也不存在类似下面这样的命令来查看用户当前的明文密码:
show password aliceshow password alice管理员忘记用户密码时,正确做法是重置密码,而不是尝试获取原密码:
sudo passwd alicesudo passwd alice7. 配置 SSH 公钥登录
服务器账号更推荐使用 SSH Key 登录。
首先创建 .ssh 目录:
sudo mkdir -p /home/alice/.sshsudo mkdir -p /home/alice/.ssh然后创建 authorized_keys 文件:
sudo nano /home/alice/.ssh/authorized_keyssudo nano /home/alice/.ssh/authorized_keys把用户提供的公钥加入文件,例如:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... alice@examplessh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... alice@example设置正确的所有者和权限:
sudo chown -R alice:alice /home/alice/.ssh
sudo chmod 700 /home/alice/.ssh
sudo chmod 600 /home/alice/.ssh/authorized_keyssudo chown -R alice:alice /home/alice/.ssh
sudo chmod 700 /home/alice/.ssh
sudo chmod 600 /home/alice/.ssh/authorized_keys用户随后可以通过以下命令登录服务器:
ssh alice@服务器IPssh alice@服务器IP安全提示: 用户应该提供的是
.pub公钥。不要让对方把 SSH 私钥发送给管理员。
8. 给用户 sudo 权限
普通用户默认不应该拥有管理员权限。如果确实需要让 alice 获得 sudo 权限,在 Ubuntu / Debian 中可以执行:
sudo usermod -aG sudo alicesudo usermod -aG sudo alice检查用户所属组:
groups alicegroups alice添加权限后,通常需要让该用户重新登录,才能使新的组成员身份完全生效。
建议: 如果用户只需要执行少数几个管理员命令,更推荐通过
/etc/sudoers.d/精确授权,而不是直接赋予完整 sudo 权限。修改 sudoers 配置时应使用visudo检查语法。
9. 锁定与解锁用户密码
临时禁止某个用户通过密码进行认证:
sudo passwd -l alicesudo passwd -l alice重新解锁:
sudo passwd -u alicesudo passwd -u alice查看状态:
sudo passwd -S alicesudo passwd -S alice注意: 锁定密码并不一定等同于彻底禁止该账号通过所有方式登录。例如,服务器允许 SSH 公钥认证时,还需要结合 SSH 和账号配置判断用户是否仍能登录。
10. 删除用户
如果账号不再需要,可以删除:
sudo deluser alicesudo deluser alice如果同时需要删除用户的 Home 目录:
sudo deluser --remove-home alicesudo deluser --remove-home alice谨慎操作: 删除前建议先确认该用户是否仍有需要保留的数据和正在运行的服务。
常用命令速查
| 操作 | 命令 |
|---|---|
| 创建用户 | sudo adduser alice |
| 查看用户 | id alice |
| 查询用户信息 | getent passwd alice |
| 设置或重置密码 | sudo passwd alice |
| 查看密码状态 | sudo passwd -S alice |
| 查看密码过期策略 | sudo chage -l alice |
| 强制下次登录修改密码 | sudo chage -d 0 alice |
| 锁定密码 | sudo passwd -l alice |
| 解锁密码 | sudo passwd -u alice |
| Ubuntu / Debian 添加 sudo 权限 | sudo usermod -aG sudo alice |
| RHEL / Rocky / AlmaLinux 添加管理员权限 | sudo usermod -aG wheel alice |
| 查看用户所属组 | groups alice |
| 删除用户 | sudo deluser alice |
| 删除用户及 Home 目录 | sudo deluser --remove-home alice |
推荐的账号创建流程
对于多人共用的服务器,建议不要共享一个 Linux 账号,而是坚持“一人一账号”。
一个比较规范的流程是:
- 创建独立账号。
- 配置 SSH 公钥。
- 测试用户能否正常登录。
- 根据实际需要授予 sudo 权限。
- 设置合理的密码和账号策略。
如果服务器主要通过 SSH 使用,应优先考虑公钥认证,并在确认密钥登录工作正常之后,再决定是否关闭 SSH 密码认证。
这样既方便权限管理,也方便以后追踪操作、撤销权限,以及删除离职或不再使用的账号。