在上一章中,我们学习了如何使用useradd添加新用户,以及使用passwd为用户设置和修改密码。但是如果不小心添加了错误的用户信息,或者需要修改用户信息,怎么办?前面说了,我们可以手动修改/etc/passwd和/etc/shadow文件来添加用户,那么手动修改文件当然也可以修改用户信息。但是今天要给大家讲解的是Linuxusermod命令修改用户信息的方法。1.修改用户命令usermodLinuxusermod命令可以用来修改用户帐号的设置。useradd[option]用户名该命令常用选项及各自含义如下:-c修改用户的描述信息,对应修改/etc/passwd文件中用户信息的第五条信息-d修改用户的home目录,对应修改/etc/passwd文件中目标用户信息的第一条信息-e修改用户的有效期,格式为“YYYY-MM-DD”,对应的第八条信息/etc/shadow文件中的用户密码信息-g修改用户的初始组,对应修改/etc/passwd文件用户信息的第四条信息(GID)-u修改用户的UID,对应修改第三条信息/etc/passwd文件用户信息(UID)的(UID)-G修改用户的附加组,实际上就是将用户添加到其他用户组中,即修改/etc/group文件;-l修改用户名;-L暂时锁定用户(Lock)-U解锁用户(Unlock),而-L对应-s修改用户的登录shell,默认为/bin/bash从上面的参数来看,对比的参数上一章讲解的useradd命令,两个命令的参数是相似的。只不过usermod命令比useradd多了两个参数-L和-U。1.比如我想锁定上一章创建的用户testuser:$usermod-Ltestuser锁定用户的本质就是让用户的密码失效,无法登录,那么我们到/etc/shadow密码文件,找到这个用户的密码数字前面多了一位!编号:2.解锁用户既然可以锁定用户,自然也可以解锁用户:$usermod-Utestuser执行命令后,我们查看/etc/shadow文件,密码位!它被取消了。3、修改用户描述$usermod-c"modifyuserdescript"testuser在修改用户描述之前,我们先看看当前的用户描述是什么:$grep"testuser"/etc/passwd执行命令后,我们看一下再下一个用户描述:用户描述修改成功。4.将用户添加到新组例如我们需要将testuser用户添加到root组:$usermod-Groottestuser2.修改用户的密码状态:chage这个命令不仅可以用来修改用户的密码状态,也可以和passwd一起使用-S命令也可以显示详细的用户密码信息。chage[options]用户名该命令常用选项及其含义如下:-m:密码最少可以修改的天数,为零时表示可以随时修改密码time,对应/etc/shadow文件中的第四个字段-M:密码保持有效的最大天数,对应/etc/shadow文件中的第五个字段-w:用户之前的天数密码过期,提前收到警告信息,对应/etc/shadow文件中第六个字段Field-E:账户到期日期,过了这一天,这个账户就不能用了。对应/etc/shadow文件中第8个字段-d:最后一次更改的日期,对应/etc/shadow文件中第3个字段-i:停滞期。如果这几天密码过期了,那么这个账号就不能用了,对应/etc/shadow文件中的第七个字段-l:列出用户的详细密码状态先查看testuser的密码信息:$chage-ltestuser每条信息含义如下:Lastpasswordchange:最后一次修改密码时间:2020-06-18Passwordexpires:密码过期时间:NeverPasswordinactive:密码过期时间:Never密码更改间隔天数:密码更改间隔最小天数:0密码更改间隔最大天数:密码更改间隔最大天数:99999密码过期前警告天数:密码过期前警告天数:71、修改密码过期时间。我可以通过以下命令修改我的密码过期时间,设置为60天后过期:$chage-M60testuser2.设置密码过期时间。$chage-i5testuser意思是密码过期后5天,密码自动过期,这个用户将无法登录系统。3、chage命令还有一个硬核功能,可以强制用户在第一次登录后先修改密码,然后用新密码重新登录系统,这样这个用户就可以使用了通常情况下。我们新建一个用户testuser2,然后设置密码创建日期为1970年1月1日:#创建用户$useraddtestuser2#设置密码123456$echo"123456"|passwd--stdintestuser2#设置密码创建日期为1970年1月1日$chage-d0testuser2执行完成后,我们使用testuser2用户登录系统,提示需要修改密码:3.删除用户命令:userdeluserdel命令使用非常简单,用于删除用户账号的相关数据。userdel[option-r]如果用户名不加-r参数,只删除用户账号,不删除用户家目录,那么用户目录就会变成没有属主和组的目录,即a垃圾文件。例如分别删除testuser和testuser2用户:#删除testuser用户,不加-r参数$userdeltestuser#删除testuser2用户,加-r参数$userdel-rtestuser2可以看到,删除testuser,不加-r参数,执行命令后,用户的主目录仍然存在。4、查看用户的UID和GID命令:idid命令比较简单,可以查询用户的UID、GID和附加组信息:id用户名例如查看eddy用户:$ideddy$uid=1009(eddy)gid=1009groups=1009执行命令后,uid(用户ID),gid(初始组ID),groups为用户所属的组。现在我把eddy这个用户添加到root组中:大家发现在用户的附加组信息中多了一个root组。今天给大家讲解一下Linux用户信息的修改、用户密码的修改以及用户的删除。下一章将继续讲解与Linux用户相关的其他操作命令。
