linux如何修改用户密码

 更新时间:2024年10月07日 10:43:50   作者:耳边私语着  
Linux系统管理员经常需要修改用户密码,确保系统安全,两种常用方法是chpasswd和passwd命令,chpasswd允许批量修改密码,但存在安全风险,因为密码以明文出现在命令历史中,建议操作后清除相关命令记录,passwd命令更安全,可为任何用户设置密码

一、概述

linux修改用户命名有两种方式

  • 1、使用chpasswd通过用户输入'用户名:密码'来更改一组用户的密码,这种为明问修改密码,查看历史命令是可以看到密码的。这种存在一定的安全风险,但是如果你修改密码之后把命令删 除就可以避免这种问题。
  • 2、使用passwd 命令,用root用户运行passwdpasswd 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)
第九个字段为:保留

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux 4.0 不再需要重启

    Linux 4.0 不再需要重启

    在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作。诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作。现在,得益于 linux 内核的最新更新 你也许可以数年间都不用重启。
    2015-03-03
  • CentOS 安装 Mongodb详解(在线和离线)

    CentOS 安装 Mongodb详解(在线和离线)

    这篇文章主要介绍了CentOS 安装 Mogodb详解(在线和离线) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux如何查看操作系统版本号

    Linux如何查看操作系统版本号

    文章介绍了在Linux主机上查看操作系统版本号的几种方法,包括使用`cat /etc/redhat-release`、`uname -a`、`rpm -qa | grep lsb`和`lsb_release -a`等命令,这些方法适用于不同的Linux发行版,如CentOS、Ubuntu等
    2024-11-11
  • linux根据进程号PID查找启动程序的全路径

    linux根据进程号PID查找启动程序的全路径

    工作环境中遇到网络不正常,检测是某服务器异常往外发送数据包,使用netstat命令查看,发现有程序。这篇文章主要介绍了linux根据进程号PID查找启动程序的全路径,需要的朋友可以参考下
    2019-08-08
  • Linux shell中的test命令用法教程

    Linux shell中的test命令用法教程

    这篇文章主要给大家介绍了Linux shell中的test命令用法的相关资料,test命令是shell环境中测试条件表达式的实用工具,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • 详解linux下安装python3环境

    详解linux下安装python3环境

    这篇文章主要介绍了详解linux下安装python环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 【Linux】Linux中常用操作命令总结

    【Linux】Linux中常用操作命令总结

    这篇文章主要介绍了【Linux】Linux中常用操作命令总结,Linux,免费开源,多用户多任务系统。本文总结了一些实用常用命令,需要的朋友可以参考下。
    2016-11-11
  • apache密码生成工具htpasswd使用详解

    apache密码生成工具htpasswd使用详解

    本文主要介绍了1、 htpasswd的作用与安装,2、 htpasswd命令详解,3、 htpasswd的实例,4、 htpasswd的应用,有需要的小伙伴参考下
    2015-01-01
  • ubuntu下的虚拟环境中安装Django的操作方法

    ubuntu下的虚拟环境中安装Django的操作方法

    这篇文章主要介绍了ubuntu下的虚拟环境中安装Django的操作方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • CentOS7.5从零安装Python3.6.6的教程详解

    CentOS7.5从零安装Python3.6.6的教程详解

    这篇文章主要介绍了CentOS7.5从零安装Python3.6.6的教程,本文通过实例图文相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10

最新评论