Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)

一、passwd命令

1.功能

  • 功能一:修改用户的密码
  • 功能二:修改用户的相关信息(/etc/shadow文件的内容)

2.命令格式

  • passwd  [--stdin]  [账号名称]
  • passwd  [参数]  账号名 

相关参数与选项

  • --stdin:可以通过来自前一个管道的数据作为密码输入,对shell脚本有帮助。但不是所有Linux发行版本都支持此参数
  • -l:Lock的意思,将/etc/shadow第二栏最前面加上感叹号(!),使使用者密码冻结,无法登陆
  • -u:与-l相反,Unlock的意思,将!号去除
  • -S:列出密码相关参数,即/etc/shadow文件内的大部分信息
  • -n:后面接天数,/etc/shadow第4栏的内容,多久不可修改密码
  • -x:后面接天数,/etc/shadow第5栏的内容,多久内必须重新修改密码
  • -w:后面接天数,/etc/shadow第6栏的内容,密码过期前的警告天数
  • -i:后面接日期,/etc/shadow第7栏的内容,密码失效日期                                                                                                                       

3.使用passwd命令修改密码的方式

  • passwd修改自己的密码时,后面自己的用户名可以加也可以不加

①root修改密码

  • 修改自己的密码:passwd  [root]
  • 修改其他用户密码:passwd  其他用户名

注意事项

  • root修改自己/其他用户的密码时,如果新密码太短、不严格时,系统不会发出警告,依然可以顺利修改密码

②非root修改密码

  • 修改自己的密码:passwd  [自己的用户名]

注意事项

  • 一般用户修改自己的密码时,如果新密码太短、设置的密码在字典里面可以找到等等,系统会发出警告,并且不让你修改。所以你需要设置严格的密码,系统才会让你修改通过

4.PAM模板(这里只是简介,后面文件有详细介绍)

  • /etc/pam.d/passwd文件密码管理机制:一般用户修改密码时,系统会有很多限制,这是为了安全性,也是为了管理。所以新的Linux发行版本使用较严格的PAM模板来管理密码,这个管理的机制就写在这个文件内
  • pam_cracklib.so:/etc/pam.d/passwd文件与密码有关的测试模板就是使用pam_cracklib.so,这个模板会检验密码相关的信息,并且替换/etc/login.defs的PASS_MIN_LEN的设置

5.演示案例

  • 案例一:dongshao修改自己的的密码
  • 这个案例中,我修改的新密都是纯数字密码安全性低,所以系统不让我修改,显示unchanged

Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)_第1张图片

  • 案例二:root修改dongshao的密码
  • root管理员不论修改谁的密码,都不需要知道原密码,直接修改并且新密码不论安全性低还是高都可以通过

Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)_第2张图片

  • 案例三:使用--stdin标准输出流进行修改密码
echo "123456" | passwd --stdin dongshao

注意事项

  • ①不是所有的Linux系统都支持此--stdin参数,Ubuntu就不支持
  • ②不建议使用这种方法修改,因为使用这种方法修改密码,此行命令会存在历史命令中,若系统被人攻击,他人可以在/用户名/.bash_history文件中找到这个密码
  • ③这个操作通常仅通过shell脚本大量建立用户账号时使用
  • 案例四:查看dongshao用户的/etc/shadow文件内的相关信息

  • 第一部分:用户名
  • 第二部分:当前用户的状态。(P/PS:有效用户,L/LK:被锁定了,不能使用)
  • 第三部分:用户密码上一次修改的时间,/etc/shadow第3字段内容
  • 第四部分:密码不可以被修改的限制天数,/etc/shadow第4字段内容
  • 第五部分:用户下一次需要修改密码的时间,/etc/shadow第5字段内容
  • 第七部分:密码过期前的警告天数,/etc/shadow第6字段内容
  • 第八部分:账号是否会失效(-1永不失效),/etc/shadow第8字段内容
  • 案例五:使用-l参数将一个账号锁定,使其失效
  • 第一步:使用root身份,将锁定dongshao账号

  • 第二步:查看-S参数查看用户的状态。第二栏显示L,代表被锁定了(Lock)

  • 第三步:查看/etc/shadow文件中dongshao的信息。可以看到dongshao第二栏密码参数前多了一个感叹号!,表示密码失效了,不能使用了

  • 第四步:使用root将dongshao解锁,/etc/shadow密码栏前面的!号消失了,状态也变为了P

Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)_第3张图片

二、chage命令

1.功能

  • 大部分用于修改用户在/etc/shadow文件的内容
  • 还可以设置让用户再登录系统时必须强制修改内容

2.命令格式

  • chage   [选项]   账号名

相关参数与选项

  • -l(小写的L):列出该账号的详细密码参数,比passwd -S详细
  • -d:后面接日期,修改/etc/shadow第3栏位(最近一次修改密码的日期),格式【YYYY-MM-DD】
  • -E:后面接日期,修改/etc/shadow第8栏位(账号失效日),格式【YYYY-MM-DD】
  • -I(大写的i):后面接天数,修改/etc/shadow第7栏位(密码失效日期)
  • -m:后面接天数,修改/etc/shadow第4栏位(密码最短保留天数)
  • -M:后面接天数,修改/etc/shadow第5栏位(密码多久需要进行修改)
  • -W:后面接天数,修改/etc/shadow第6栏位(密码过期前的警告天数)

3.演示案例

  • 案例一:查看dongshao用户的信息
  • 查看的信息和passwd -S查看的信息差不多相同,但是passwd -S不分类,这种方法可以分类,看起来清晰

Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)_第4张图片

  • 案例二:使用-d参数让用户登录系统时需要强制修改密码

下面这个案例的一个应用场景就是:在学校时,老师不想知道学生的密码,那么就让学生在初次上课时,先将学生的初始密码设为他们的学号,然后他们以学号作为登录时必须强制修改密码(此时他们自己设定),这样以后他们就可以使用自己的密码登录了

  • 第一步:建立一个账号,名为dongshao。并用passwd为dongshao设置一个初始密码(当然,你也可以不建立新账号,也可以对已有的账号演示下面这个案例)

  • 第二步:使用chage修改dongshao用户的上一次修改密码的时间为0,修改为0之后,代表该账号密码修改的时间为1970-01-01,所以系统会觉得此用户有问题,再次登录系统时会必须让你修改密码

  • 第三步:查看dongshao用户的信息,后面显示密码必须被修改

  • 第四步:当你以dongshao登录系统时,系统会强制让你重新修改密码。并且修改完密码之后,你会自动退出系统

Linux(入门基础):76---用户信息配置文件修改(命令:passwd、chage、usermod)_第5张图片

  • 第四步:退出系统之后,你再次登录系统时就可以使用新密码登陆了

三、usermod命令

1.功能

  • 当你使用useradd新建完一个账号之后,想要修改账号的信息,则可以直接修改/etc/passwd或/etc/shadow的字段数据就可以了
  • 还有一种修改账号数据的方法就是利用usermod命令,usermod命令与useradd命令有很多相似的功能
  • 修改/etc/passwd、/etc/shadow文件的内容

2.命令格式

  • usermod  [选项]  用户名

相关参数与选项

  • -c:后面接账号说明,修改/etc/passwd第5栏的内容
  • -d:后面接账号的家目录,修改/etc/passwd第6栏的内容
  • -e:后面接日期,修改/etc/shadow第8栏的内容,格式为【YYYY-MM-DD】
  • -f:后面接天数,修改/etc/shadow第7栏的内容
  • -g:后面接初始用户组GID,修改/etc/passwd第4栏的内容
  • -G:后面接次要用户组,修改/etc/group的内容
  • -a:与-G配合使用,可【增加次要用户组的支持】而非【设置】
  • -l:后面接账号名称,即修改账号的名称,修改/etc/passwd第1栏的内容
  • -s:更改用户使用的shell,后面接实际的shell文件,例如:/bin/bash或/bin/csh等
  • -u:修改用户UID,后面接数字,修改/etc/passwd第2栏的内容
  • -L:暂时将使用者的密码冻结,让它无法登陆,其实仅仅修改/etc/shadow密码栏,在密码栏前加个!号
  • -U:将/etc/shadow密码栏的感叹号(!)拿掉,解锁

3.演示案例

  • 案例一:修改/etc/passwd文件中dongshao的第五部分说明信息

  • 案例二:设置dongshao账号在2019-06-30失效

  • 再将其设置回去,永远不失效

 

你可能感兴趣的:(Linux(入门基础))