如何修改Linux系统中的用户密码?

Linux系统中,用户密码管理是系统安全的核心环节之一,无论是日常使用还是管理员维护,掌握正确的密码修改方法都至关重要,本文将详细介绍不同场景下Linux用户密码修改方式,包括普通用户自主修改、管理员修改他人密码、紧急情况下的密码重置以及批量密码处理等,帮助用户全面掌握密码管理技能。

如何改变linux用户密码

普通用户修改自己的密码

普通用户通常需要修改自己的登录密码,这一过程需要当前密码验证,确保只有账户本人能更改密码,操作步骤如下:

  1. 登录系统:首先使用当前用户名和密码登录Linux系统,可通过终端(命令行界面)或图形界面登录(图形界面下打开终端即可)。
  2. 执行passwd命令:在终端输入passwd命令,按回车键执行,系统会提示输入当前密码(输入时字符不会显示,这是Linux的安全设计)。
  3. 设置新密码:当前密码验证通过后,系统要求输入新密码,再次输入新密码进行确认。
  4. 密码复杂度检查:Linux系统默认会对新密码的复杂度进行检查(如长度、字符类型等),若密码不符合策略(如过于简单、与用户名相同等),会提示重新输入。

示例操作

$ passwd  # 执行passwd命令
Changing password for user testuser.  # 系统提示修改testuser的密码
Current password:  # 输入当前密码(不显示字符)  
New password:      # 输入新密码(不显示字符)  
Retype new password:  # 再次输入新密码  
passwd: password updated successfully  # 提示密码修改成功  

注意事项

  • 密码长度建议至少8位,包含大小写字母、数字和特殊字符(如!@#$%),以提高安全性。
  • 若需修改密码复杂度策略,可编辑/etc/login.defs/etc/pam.d/passwd文件(需root权限)。

管理员(root用户)修改其他用户密码

管理员(root用户或具有sudo权限的用户)可以修改任何用户的密码,无需知道原密码,这一功能常用于用户忘记密码或管理员重置用户场景。

使用root用户直接修改

若当前登录用户为root,可直接使用passwd 用户名命令,无需额外验证。

示例操作

[root@localhost ~]# passwd testuser  # 修改testuser的密码  
New password:  # 输入新密码(root用户设置密码时无复杂度检查)  
Retype new password:  # 确认新密码  
passwd: password updated successfully  

使用sudo权限修改

若当前用户不是root但具有sudo权限(如在Ubuntu系统中),可在passwd命令前加sudo,输入当前用户密码后即可修改目标用户密码。

如何改变linux用户密码

示例操作

$ sudo passwd testuser  # 使用sudo修改testuser密码  
[sudo] password for adminuser:  # 输入当前用户(adminuser)的密码  
New password:  # 输入testuser的新密码  
Retype new password:  
passwd: password updated successfully  

特殊场景下的密码重置

用户忘记密码且无法登录(需物理访问或远程 rescue 模式)

若用户忘记密码且无法通过常规方式登录(如SSH被锁定),可通过进入单用户模式或救援模式重置密码,不同发行版操作略有差异,以CentOS 7和Ubuntu 20.04为例:

CentOS 7(单用户模式)

  • 重启系统,在GRUB启动菜单中选择“CentOS Linux (x86_64) with advanced options”,按e键进入编辑模式。
  • 找到linux16linuxefi开头的行,在行尾添加rd.break,按Ctrl+X启动。
  • 系统进入紧急模式,执行以下命令:
    mount -o remount,rw /sysroot  # 重新挂载根目录为可读写  
    chroot /sysroot  # 切换到根环境  
    passwd testuser  # 重置testuser密码  
    touch /.autorelabel  # 可选:若SELinux启用,需创建此文件以重新标记文件系统  
    exit  # 退出chroot  
    reboot  # 重启系统  

Ubuntu 20.04(recovery模式)

  • 重启系统,在GRUB菜单中选择“Advanced options for Ubuntu”,进入“recovery mode”。
  • 选择“root Drop to root shell prompt”,按回车进入root终端。
  • 执行mount -o remount,rw /重新挂载根目录,然后使用passwd testuser修改密码,最后执行reboot重启。

批量修改用户密码

管理员可通过chpasswd命令批量修改用户密码,适用于大量用户场景(如服务器初始化配置),操作步骤如下:

  1. 创建密码文件:创建一个文本文件,格式为“用户名:密码”,每行一个用户,
    echo -e "user1:Passw0rd1!nuser2:Passw0rd2!nuser3:Passw0rd3!" > userpass.txt  
  2. 使用chpasswd批量修改:通过chpasswd命令读取文件并设置密码,需root权限:
    chpasswd < userpass.txt  
  3. 安全处理密码文件:密码文件包含明文密码,修改后应立即删除或加密存储:
    shred -u userpass.txt  # 安全删除文件  

注意事项:批量修改密码时,确保密码文件来源可靠,避免泄露。

Linux用户密码修改方法对比

为方便用户快速选择合适的方法,以下通过表格总结不同场景下的操作要点:

如何改变linux用户密码

方法 适用场景 命令格式 注意事项
普通用户passwd 用户自主修改自身密码 passwd 需验证当前密码,符合密码复杂度策略
root用户passwd root修改任意用户密码 passwd 用户名 无需原密码,无复杂度检查
sudo passwd 非root管理员修改他人密码 sudo passwd 用户名 需当前用户有sudo权限,输入当前用户密码
单用户/救援模式重置 用户忘记密码且无法登录 需进入系统维护模式 需物理访问或远程 rescue 权限
chpasswd批量修改 管理员批量修改多个用户密码 chpasswd < 密码文件 密码文件需明文,操作后需安全删除

相关问答FAQs

Q1:修改密码时提示“Authentication token manipulation error”,如何解决?
A:该错误通常是由于密码文件(/etc/shadow)权限异常或磁盘空间不足导致,可尝试以下步骤:

  1. 检查/etc/shadow权限,确保root用户可读写:ls -l /etc/shadow(应为-rw-r--r-- 1 root root)。
  2. 若权限异常,执行chmod 644 /etc/shadow修复(需root权限)。
  3. 检查磁盘空间:df -h,若根目录空间不足(如剩余空间小于1%),清理临时文件后重试。
  4. 若仍报错,尝试强制更新密码文件:pwconv(确保shadow文件与passwd文件同步)。

Q2:如何查看用户上次修改密码的时间及密码过期策略?
A:Linux系统通过/etc/shadow文件记录用户密码信息,可通过chage命令查看和修改:

  1. 查看用户密码信息
    chage -l testuser  # 查看testuser的密码策略和修改时间  

    输出示例:

    Last password change                                    : Oct 20, 2023  
    Password expires                                        : Jan 18, 2024  
    Password inactive                                       : never  
    Account expires                                         : never  
    Minimum number of days between password change          : 7  
    Maximum number of days between password change          : 90  
    Number of days of warning before password expires       : 7  
  2. 修改密码过期策略(如设置密码90天后过期):
    sudo chage -M 90 testuser  # -M设置最大有效期(天)  
  3. 强制用户下次登录修改密码
    sudo chage -d 0 testuser  # -d将上次修改时间设为0,用户登录后需立即改密  

通过以上方法,用户可灵活应对不同场景下的Linux密码管理需求,确保系统安全性和用户权限的合理控制。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26529.html

(0)
酷番叔酷番叔
上一篇 2025年9月20日 02:25
下一篇 2025年9月20日 02:39

相关推荐

  • Linux系统如何切换用户?操作方法有哪些?

    在Linux系统中,多用户特性允许多个用户同时或不同时访问系统资源,每个用户拥有独立的权限和环境配置,切换用户是系统管理中的常见操作,可能用于权限隔离、执行特定任务、排查问题或临时提升权限,Linux提供了多种切换用户的方式,每种方式在权限验证、环境加载和适用场景上存在差异,正确选择切换命令对系统安全和操作效率……

    2025年8月29日
    11000
  • 如何用图形界面轻松打开终端?,新手如何从图形界面打开终端?,图形界面打开终端有多简单?,怎样不用命令打开终端?,图形界面点哪里进终端?

    在Linux系统中,终端(Terminal)是与操作系统交互的核心工具,尤其对于系统管理、开发调试等任务至关重要,本文将以RHEL/CentOS 6(常被简称为Linux 6)为例,详细说明多种进入终端的方法,适用于不同使用场景,适用于已安装图形桌面(如GNOME)的环境:登录系统后,点击左上角 “Applic……

    2025年7月21日
    10000
  • Linux中如何正确删除运行中的任务?

    在Linux系统中,“任务”通常指正在运行的进程(Process)或通过终端启动的作业(Job),删除任务即终止这些进程或作业,需根据场景选择合适的方法,本文将详细讲解Linux中删除进程和作业的具体操作、命令参数及注意事项,帮助用户高效管理系统任务,Linux任务分类与基本概念在操作系统中,任务是程序执行的实……

    2025年9月16日
    10600
  • 如何轻松掌握bash提升工作效率?

    在Linux系统中开启SMTP服务器是搭建邮件服务的关键步骤,常用于网站通知、事务邮件等场景,以下是基于Postfix(Linux最常用的邮件传输代理)的详细操作流程,兼顾安全性与易用性,所有命令需以root权限执行,sudo apt update && sudo apt upgrade # D……

    2025年7月29日
    11300
  • 如何在Linux系统下使用MySQL数据库进行基础操作?

    在Linux系统下使用MySQL是许多开发者和运维人员的必备技能,本文将从安装配置、基础操作、用户管理、数据操作及备份恢复等方面详细介绍,帮助用户快速上手,安装与配置MySQL不同Linux发行版的安装命令略有差异,以Ubuntu/Debian和CentOS/RHEL为例:Ubuntu/Debian:更新包列表……

    2025年8月30日
    13200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信