在Linux系统中修改服务器密码是一项常见且重要的操作,无论是出于安全考虑还是用户需求,掌握正确的方法都至关重要,本文将详细介绍在不同Linux发行版和场景下修改密码的步骤、注意事项以及相关技巧,帮助您顺利完成操作。

通过命令行修改当前用户密码
对于大多数Linux发行版,如Ubuntu、CentOS、Debian等,普通用户可以通过passwd命令直接修改自己的密码,操作步骤如下:
-
登录服务器:首先通过SSH或其他方式登录到Linux服务器,确保您拥有当前用户的操作权限。
-
执行passwd命令:在终端中输入
passwd命令,按回车键执行,系统会提示您输入当前密码(这是为了验证身份),然后要求输入新密码两次(确保输入无误)。示例过程:
(图片来源网络,侵删)$ passwd Changing password for user username. Current password: New password: Retype new password: passwd: password updated successfully- 密码复杂度要求:部分系统会强制要求密码包含大小写字母、数字和特殊字符,且长度不少于8位,如果密码不符合要求,系统会提示重新输入。
- 密码提示:输入密码时,终端不会显示任何字符(即不显示星号或点),这是正常的安全设计。
通过命令行修改其他用户密码(需root权限)
如果您是root用户或具有sudo权限的管理员,可以修改其他用户的密码,操作步骤与修改当前用户密码类似,只需在passwd命令后加上目标用户名。
-
切换到root用户(可选):如果当前用户不是root,可以通过
sudo su -命令切换到root用户(需输入当前用户密码)。 -
执行passwd命令:输入
passwd username(将username替换为目标用户名),按回车键后系统会提示输入新密码两次。示例过程(root用户操作):
(图片来源网络,侵删)# passwd testuser Changing password for user testuser. New password: Retype new password: passwd: password updated successfully
通过SSH密钥认证修改密码
如果服务器仅允许SSH密钥认证(禁用密码登录),您需要先通过密钥登录,然后再执行passwd命令修改密码,具体步骤如下:
- 通过SSH密钥登录:使用
ssh -i /path/to/private_key username@server_ip命令登录服务器。 - 修改密码:登录成功后,执行
passwd命令(修改当前用户密码)或passwd username(修改其他用户密码,需root权限)。
通过单用户模式修改密码(忘记密码时)
如果忘记root密码或无法正常登录,可以通过单用户模式(或恢复模式)重置密码,不同发行版的操作略有差异:
CentOS/RHEL系统
- 重启服务器,在GRUB引导界面按
e键进入编辑模式。 - 找到以
linux或linux16开头的行,在行末添加rd.break,按Ctrl+X启动。 - 系统会进入紧急模式,执行以下命令:
mount -o remount,rw /sysroot chroot /sysroot passwd - 输入新密码两次,完成后执行
touch /.autorelabel(可选,用于修复SELinux上下文),然后执行exit和reboot重启服务器。
Ubuntu/Debian系统
- 重启服务器,在GRUB引导界面选择高级选项,进入恢复模式。
- 选择“root”选项进入root shell。
- 执行
passwd username修改密码(username为目标用户)。 - 输入新密码两次后,执行
reboot重启。
批量修改用户密码(企业级场景)
对于需要批量修改多个用户密码的场景,可以通过脚本实现,以下是使用chpasswd命令的示例:
- 创建密码文件:创建一个文本文件,格式为
username:password,每行一个用户。echo "user1:newpass1" > passwords.txt echo "user2:newpass2" >> passwords.txt - 执行批量修改:使用
chpasswd命令读取文件并更新密码。chpasswd < passwords.txt - 安全处理:密码文件包含明文密码,修改后应立即删除或加密存储。
修改密码的注意事项
- 密码强度:确保密码足够复杂,避免使用生日、姓名等容易被猜测的信息。
- 权限控制:普通用户只能修改自己的密码,root用户可以修改所有用户密码。
- 备份与通知:批量修改密码后,建议通知相关用户并确认密码是否生效。
- 日志记录:修改密码的操作会被记录在系统日志中(如
/var/log/secure或/var/log/auth.log),管理员可以定期检查日志。
常见问题与解决方案
-
提示“Authentication token manipulation error”
可能原因是磁盘空间不足或密码文件损坏,可通过df -h检查磁盘空间,或尝试修复文件系统。 -
修改密码后仍无法登录
检查SSH配置是否允许密码登录(/etc/ssh/sshd_config中PasswordAuthentication应为yes),并重启SSH服务(systemctl restart sshd)。
相关问答FAQs
问题1:如何查看Linux系统中所有用户的密码信息?
解答:出于安全考虑,Linux系统不会直接存储明文密码,而是存储加密后的密码哈希值(位于/etc/shadow文件),普通用户无法查看该文件,只有root用户可以访问,若需查看用户密码状态(如是否过期),可以使用chage -l username命令。
问题2:如何禁止特定用户修改密码?
解答:root用户可以通过修改/etc/passwd文件中用户的密码字段为或来禁止其修改密码,锁定用户testuser的密码:
sudo usermod -L testuser # 加锁,密码字段变为!!
解锁命令为:
sudo usermod -U testuser # 解锁,恢复密码字段
还可以通过passwd -l username和passwd -u username命令实现加锁和解锁。
