一、概述

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、如果你是复制粘贴的密码一定要注意你复制的密码是不是你自己想要设置的密码,最后自己发给自己看下,是不是自己想要的密码。

1、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)
第九个字段为:保留

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐