首页 > 运维 > linux运维 > 正文

Linux修改用户密码的常见方法

P粉602998670
发布: 2025-09-03 09:14:01
原创
404人浏览过
修改Linux用户密码的核心命令是passwd。普通用户执行passwd可修改自身密码,系统会验证原密码并要求输入两次新密码;若密码符合PAM策略要求,则修改成功。root用户可使用passwd [用户名]为其他用户重置密码,无需旧密码。忘记root密码时,可通过GRUB引导时添加init=/bin/bash或rd.break enforcing=0进入救援模式,挂载根文件系统为读写后执行passwd root重置密码,若禁用SELinux需创建/.autorelabel文件以确保安全上下文正确。普通用户应设置强密码,避免使用易猜信息,密码需满足长度、复杂性、非字典词等PAM策略要求。系统管理员可使用chage -d 0 [用户名]强制用户首次登录修改密码,并通过脚本结合passwd --stdin实现批量密码设置,但需注意密码泄露风险。密码策略由/etc/pam.d/system-auth或common-password中的pam_pwquality.so模块控制,可通过调整minlen、lcredit、ucredit、dcredit、ocredit等参数自定义规则,修改前应备份配置文件以防锁定系统。

linux修改用户密码的常见方法

在Linux系统中,修改用户密码的核心工具

passwd
登录后复制
命令。无论是普通用户修改自己的密码,还是root用户为其他用户甚至自己重置密码,都离不开它。理解这个命令的用法和背后的机制,能让你在管理Linux用户账户时游刃有余。

passwd
登录后复制
命令是Linux下修改用户密码最直接且常用的方法。

要修改当前登录用户的密码,只需在终端输入:

passwd
登录后复制

系统会提示你输入当前密码,然后两次输入新密码。如果当前密码正确,且新密码符合系统的复杂性要求,密码就会被成功更改。

如果你是root用户,你可以为任何用户修改密码,无需知道该用户的旧密码。只需输入:

passwd [用户名]
登录后复制

例如,要修改用户

john
登录后复制
的密码,作为root用户,你输入
passwd john
登录后复制
,然后系统会直接提示你输入两次新密码。

忘记root密码怎么办?Linux系统救援模式下的重置策略

这大概是每个Linux管理员都可能遇到的“惊魂一刻”。我记得有一次,就是因为手滑输错了几次密码,直接把自己锁在root外面,那种感觉真是又沮丧又刺激。好在Linux提供了救援模式(或单用户模式)来解决这个问题。

大致的思路是:在系统启动时,通过修改GRUB引导参数,让系统以root权限直接进入一个shell环境,这样我们就可以在不验证密码的情况下,重置root密码。

具体步骤通常是这样:

  1. 重启系统:在系统启动时,当GRUB引导菜单出现时,迅速按下
    e
    登录后复制
    键(编辑模式)。
  2. 修改内核参数:找到以
    linux
    登录后复制
    linuxefi
    登录后复制
    开头的那一行,在行的末尾添加
    init=/bin/bash
    登录后复制
    (或者对于较新的系统,可能需要添加
    rd.break enforcing=0
    登录后复制
    )。
    • init=/bin/bash
      登录后复制
      :让系统启动后直接进入bash shell,而不是正常的init进程。
    • rd.break enforcing=0
      登录后复制
      :在系统启动的早期阶段中断,并进入一个shell。
      enforcing=0
      登录后复制
      是为了临时禁用SELinux,避免后续操作出现权限问题。
  3. 启动系统:按下
    Ctrl+x
    登录后复制
    F10
    登录后复制
    启动修改后的内核。
  4. 挂载根文件系统:如果使用的是
    rd.break
    登录后复制
    ,系统会进入一个
    switch_root
    登录后复制
    的shell。此时根文件系统通常是只读的,需要重新挂载为读写模式:
    mount -o remount,rw /sysroot
    chroot /sysroot
    登录后复制

    如果使用的是

    init=/bin/bash
    登录后复制
    ,根文件系统可能已经是读写模式,直接执行:

    mount -o remount,rw /
    登录后复制
  5. 重置密码:现在,你就可以使用
    passwd
    登录后复制
    命令来重置root用户的密码了:
    passwd root
    登录后复制

    输入两次新密码。

  6. 更新SELinux上下文(如果之前禁用了SELinux):如果你的系统启用了SELinux,并且你修改了root密码,最好创建一个
    /.autorelabel
    登录后复制
    文件,让系统在下次启动时自动重新标记文件系统:
    touch /.autorelabel
    登录后复制
  7. 退出并重启
    exit
    reboot -f
    登录后复制

    系统会正常重启,你就可以使用新密码登录root了。这个过程虽然有点技术性,但只要按部就班,成功率很高。

普通用户如何安全地修改自己的密码?有哪些注意事项?

其实,普通用户改密码这事儿,看似简单,里头也有些小门道。我个人经验是,别图省事儿用生日、电话号码之类的,真不安全。系统对密码强度的要求,往往是通过PAM(Pluggable Authentication Modules)模块来定义的。

当普通用户执行

passwd
登录后复制
命令时,系统会检查新密码是否符合以下要求:

  • 长度要求:通常有最小长度限制,比如8个字符。
  • 复杂性要求:可能要求包含大小写字母、数字和特殊字符。
  • 历史记录检查:有些系统会禁止使用最近用过的密码。
  • 字典检查:避免使用常见的单词或短语。

注意事项:

  1. 选择强密码:这真的是老生常谈,但却是最关键的。一个强密码应该是足够长(至少12-16位),包含多种字符类型,并且是随机的,不易被猜测或字典攻击。
  2. 避免重复使用:不要在不同系统或服务中使用相同的密码。
  3. 定期更换:虽然有些观点认为频繁更换密码会降低安全性(因为用户可能倾向于选择简单、容易记住的密码),但在高安全要求的环境中,定期更换密码仍然是一个好习惯。你可以使用
    chage -l [用户名]
    登录后复制
    命令查看自己的密码过期信息。
  4. 私密性:不要将密码告诉任何人,也不要写在容易被发现的地方。

系统会通过提示来引导你设置一个符合要求的密码。如果你的密码不符合要求,系统会给出错误信息,你需要重新输入。

图改改
图改改

在线修改图片文字

图改改 455
查看详情 图改改

作为系统管理员,批量修改用户密码或强制用户首次登录修改密码的技巧

管着几十上百号用户的系统,挨个儿改密码那简直是噩梦。我以前就写过小脚本,批量给新入职的同事设个临时密码,然后强制他们第一次登录就改掉,省心又安全。

1. 强制用户首次登录修改密码: 这是个非常实用的功能,特别是在创建新用户或重置用户密码后。你可以使用

chage
登录后复制
命令来实现:

chage -d 0 [用户名]
登录后复制

这里的

-d 0
登录后复制
表示将用户的密码最后修改日期设置为
1970年1月1日
登录后复制
,这会使得系统认为该用户的密码已经过期。用户下次登录时,系统就会强制他修改密码。

2. 批量修改用户密码: 如果你需要为多个用户设置相同的临时密码(或者在特定场景下需要批量重置),可以通过脚本配合

passwd --stdin
登录后复制
命令来实现。
passwd --stdin
登录后复制
允许你通过标准输入提供密码,而不是交互式地输入。

例如,为

user1
登录后复制
user2
登录后复制
user3
登录后复制
设置临时密码
TempPass123
登录后复制

echo "TempPass123" | passwd --stdin user1
echo "TempPass123" | passwd --stdin user2
echo "TempPass123" | passwd --stdin user3
登录后复制

为了更安全,你可以结合

chage -d 0
登录后复制
,强制这些用户在第一次登录时修改这个临时密码。

一个简单的批量脚本示例:

#!/bin/bash

USERS=("user1" "user2" "user3")
TEMP_PASS="TempPass123!" # 确保临时密码也足够复杂

for user in "${USERS[@]}"; do
    echo "正在为用户 $user 设置临时密码并强制首次登录修改..."
    echo -e "$TEMP_PASS\n$TEMP_PASS" | passwd --stdin "$user"
    chage -d 0 "$user"
    if [ $? -eq 0 ]; then
        echo "用户 $user 密码设置成功,并已强制首次登录修改。"
    else
        echo "用户 $user 密码设置失败,请检查!"
    fi
done
登录后复制

注意: 使用

passwd --stdin
登录后复制
时,密码会出现在命令历史记录中(如果不是通过脚本执行),这存在安全风险。在实际生产环境中,请谨慎使用,并确保及时清理历史记录或使用更安全的密码管理工具。

为什么我的新密码不符合要求?Linux密码策略(PAM)的常见问题与调整

刚接触Linux那会儿,最头疼的就是密码总是“不合格”。系统老是抱怨我密码太简单,但又不说具体哪里不行,真是让人抓狂。后来才搞明白,是PAM模块在作祟。

Linux系统中的密码策略是由PAM(Pluggable Authentication Modules)框架控制的。具体来说,是PAM配置文件中的

pam_pwquality.so
登录后复制
(或旧版本中的
pam_cracklib.so
登录后复制
)模块在起作用。这些模块定义了密码的最小长度、所需字符类型(大小写字母、数字、特殊字符)的数量、密码历史检查等规则。

常见问题:

  • 密码太短
    minlen
    登录后复制
    参数控制最小长度。
  • 缺乏特定字符
    lcredit
    登录后复制
    (小写字母)、
    ucredit
    登录后复制
    (大写字母)、
    dcredit
    登录后复制
    (数字)、
    ocredit
    登录后复制
    (其他字符/特殊字符)这些参数控制所需字符的“信用”值。负值表示必须包含,正值表示包含会增加密码强度。
  • 与用户名或旧密码相似
    difok
    登录后复制
    reject_username
    登录后复制
    等参数会阻止这种行为。

查看和调整密码策略: 密码策略的配置文件通常位于

/etc/pam.d/
登录后复制
目录下,其中
system-auth
登录后复制
passwd
登录后复制
是两个关键文件,它们通常通过软链接指向实际的配置文件(如CentOS/RHEL中的
/etc/pam.d/system-auth
登录后复制
,Debian/Ubuntu中的
/etc/pam.d/common-password
登录后复制
)。

你可以通过查看这些文件来了解当前的密码策略。例如:

grep -E 'minlen|lcredit|ucredit|dcredit|ocredit|difok|reject_username' /etc/pam.d/system-auth
登录后复制

或者在Debian/Ubuntu上:

grep -E 'minlen|lcredit|ucredit|dcredit|ocredit|difok|reject_username' /etc/pam.d/common-password
登录后复制

你会看到类似这样的行(以

pam_pwquality.so
登录后复制
为例):

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
登录后复制

这表示:

  • minlen=8
    登录后复制
    :密码最小长度为8。
  • lcredit=-1
    登录后复制
    :必须包含至少一个小写字母。
  • ucredit=-1
    登录后复制
    :必须包含至少一个大写字母。
  • dcredit=-1
    登录后复制
    :必须包含至少一个数字。
  • ocredit=-1
    登录后复制
    :必须包含至少一个特殊字符。

调整策略: 如果你需要修改这些策略(例如,降低复杂性要求以提高用户体验,或提高复杂性以增强安全性),你可以编辑这些PAM配置文件。但请务必小心! 错误的PAM配置可能导致用户无法登录系统,甚至root用户也无法登录。在修改前,务必备份相关文件。

例如,如果你想将最小长度改为6,并移除特殊字符的要求,你可以将

minlen=8
登录后复制
改为
minlen=6
登录后复制
,并将
ocredit=-1
登录后复制
移除或改为
ocredit=0
登录后复制

在调整密码策略时,需要在安全性和可用性之间找到一个平衡点。过于复杂的密码要求会让用户感到沮丧,可能导致他们将密码写下来或使用容易猜测的模式。而过于简单的密码则会带来安全隐患。

以上就是Linux修改用户密码的常见方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号