linux如何修改用户密码
作者:耳边私语着
Linux系统管理员经常需要修改用户密码,确保系统安全,两种常用方法是chpasswd和passwd命令,chpasswd允许批量修改密码,但存在安全风险,因为密码以明文出现在命令历史中,建议操作后清除相关命令记录,passwd命令更安全,可为任何用户设置密码
一、概述
linux修改用户命名有两种方式
- 1、使用chpasswd通过用户输入'用户名:密码'来更改一组用户的密码,这种为明问修改密码,查看历史命令是可以看到密码的。这种存在一定的安全风险,但是如果你修改密码之后把命令删 除就可以避免这种问题。
- 2、使用
passwd
命令,用root用户运行passwd
,passwd user_name
可以设置或修改任何用户的密码,普通用户运行passwd
只能修改它自己的密码。
二、非交互式
chpasswd修改用户密码
格式:# echo 用户名:密码 | chpasswd echo "www:123465" | chpasswd 使用history查看刚才修改用户密码命令进行删除处理 history | grep chpasswd 删除指定历史命令 history -d 行号 为什么要删除修改密码的命令了 是因为 chpasswd是明文修改密码 ,如果不删除 其他用户使用root权限时就可以查看历史记录从而找到用户密码
三、交互式
使用passwd交互式修改密码,但是有一点要注意,在交互式修改密码的过程中
- 1、如果你是手动输入密码,一定要确保输入密码一致,
- 2、如果你是复制粘贴的密码一定要注意你复制的密码是不是你自己想要设置的密码,最后自己发给自己看下,是不是自己想要的密码。
passwd命令详解
[root@node2 data01]# passwd --help 用法: passwd [选项...] <帐号名称> -k, --keep-tokens 保持身份验证令牌不过期 -d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作) -l, --lock 锁定指名帐户的密码(仅限 root 用户) -u, --unlock 解锁指名账户的密码(仅限 root 用户) -e, --expire 终止指名帐户的密码(仅限 root 用户) -f, --force 强制执行操作 -x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作) -n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作) -w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作) -i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作) -S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作) --stdin 从标准输入读取令牌(只有根用户才能进行此操作)
四、实战演练
1、修改root和www用户密码
[root@node2 data01]# passwd ##修改root用户密码 Changing password for user root.. New password: ##输入新密码 Retype new password: ##再次确认新密码 passwd: all authentication tokens updated successfully. [root@node2 data01]# passwd www ##修改www用户密码 Changing password for user www. New password: ##输入新密码 Retype new password: ##再次确认新密码 passwd: all authentication tokens updated successfully.
2、锁定www用户不让修改密码
[root@node2 data01]## passwd -l www ## 注:锁定用户www不能更改密码; Locking password for user www. passwd: Success ##注:锁定成功; [[www@node2 data01]## su - www ##注:su切换到www用户; [www@node2 data01]# passwd ##注:www用户更改密码; Changing password for user www. Changing password for www (current) UNIX password: ## 注:输入www的当前密码; passwd: Authentication token manipulation error ## 注:失败,不能更改密码;
3、清除用户密码
[root@node2 ~]# passwd -d www #清除www用户密码; Removing password for user www. passwd: Success ##注:清除成功; [root@node2 ~]# passwd -S www #查询www用户密码状态; Empty password. #空密码,没有密码
五、chage密码实效管理
1、参数详解
[root@node2 data01]# chage --help 用法:chage [选项] 登录 选项: -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” -E, --expiredate 过期日期 将帐户过期时间设为“过期日期” -h, --help 显示此帮助信息并推出 -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态 -l, --list 显示帐户年龄信息 -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数” -M, --maxdays MAX_DAYS 修改密码的最大天数 -R, --root CHROOT_DIR chroot 到的目录 -W, --warndays 警告天数 将过期警告天数设为“警告天数”
2、查看用户密码过期时间
语法格式: chage -l 用户名 [root@node2 data01]# chage -l www 最近一次密码修改时间 :1月 16, 2024 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :99999 在密码过期之前警告的天数 :7 [root@node2 data01]#
3、修改www用户密码过期时间
[root@node2 data01]# chage -M 99999 www -M 密码多少天后过期
4、查看用户信息
[root@node2 data01]# grep www /etc/shadow www:$6$92t9aGSf$bMQSDnqQRVJqajBotV8GqpsD3T1LMjYP0XNRKmj21vQnMj1A3VDZAfCnhwpYUwG0QzpYopmDlYL6kCaLI/qx//:19738:0:99999:7::: gitlab-www:!!:19648:::::: [root@node2 data01]# 第一个字段为:用户名; 第二个字段为:加密的密码 第三个字段为:密码最后一次修改的时间 (chage -d) 第四个字段为:密码最小修改间隔时间 (chage -m) 第五个字段为:密码的有效期 (chage -M) 第六个字段为:密码需要变更前的警告天数 (chage -W) 第七个字段为:密码过期后的宽限天数 (chage -I) 第八个字段为:账号失效时间 (chage -E) 第九个字段为:保留
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。