当前位置: 首页 > Linux

Linux用户管理的useradd和passwd命令详解

时间:2023-04-06 20:56:13 Linux

在上一章中,我们了解了Linux用户的各个配置文件的内容和作用,通过手动修改用户配置文件的方式来手动添加用户。但是在实际工作过程中,我们并不是通过手动修改配置来添加用户,而是通过用户管理的各种命令来管理用户。1、添加用户命令:useradd在Linux系统中,可以使用useradd命令创建新用户。该命令的基本格式如下:useradd[option]username-D查看默认参数。该命令常用选项及其含义如下:u:UID,指定用户的UID。在上一章我们了解到普通用户的UID范围在500-60000之间d:主机目录c:用户描述,对应/etc/passwd文件中的第5部分,输入一个通俗易懂的用户描述就够了g:组名,指定用户所属的组G:组名,指定用户所属的附加组s:手动指定用户的登录shell,我们在上一章中了解到,默认是/bin/bashe:指定用户的到期日期,格式为“YYYY-MM-DD”执行这条命令后,我们在系统中创建了一个名为testuser的用户。我们查看/etc/passwd文件,发现已经有一个新添加的用户信息:如果要使用这个用户登录,我们给这个用户设置一个密码就可以了:$passwdtestuser一般情况下,我们在新建用户的时候不需要手动指定任何参数内容,因为linux的默认值就可以满足我们的要求。useradd命令在添加用户时主要参考两个默认值文件,即/etc/default/useradd和/etc/login.defs。我们在上一章中介绍了这两个文件。这里我们只简单回顾一下/etc/default/useradd:$useradd-DGR0UP=100:这个选项用来建立用户的默认组,即在添加每个创建用户时,用户的初始组就是用户组其GID为100。但CentOS不是这样的,而是在添加用户时,会自动创建一个与用户初始组同名的组。也就是说,这个选项不会生效。Linux中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个与用户初始组同名的用户组;另一种是公共用户组机制,系统使用GID100用户组作为所有新创建用户的初始组。目前我们使用私有用户组机制。HOME=/home:指用户家目录的默认位置。新创建的testuser用户的家目录为/home/testuser/INACTIVE=-1:账号是否过期,在/etc/shadow文件字段中的第七位。这里的默认值为-1,永不过期。EXPIRE=:表示密码过期时间,是/etc/shadow文件的第八个字段。默认值为空,表示所有新创建的用户都没有过期时间,永久有效。SHELL=/bin/bash:表示所有新建用户的默认shell为/bin/bashbashrc等文件,这些文件是自动从/etc/skel目录中复制过来的。CREATE_MAIL_SPOOL=yes:指为新用户创建邮箱,默认为创建。也就是说,对于所有的新用户,系统都会新建一个邮箱,放在/var/spool/mail/目录下,与用户名相同。testuser的邮箱位于/var/spool/mail/testuser。因此,我们可以理解useradd命令创建用户的系统内部流程应该是这样的:1.系统首先读取/etc/login.defs和/etc/default/useradd,根据定义的规则添加用户在这两个配置文件中。即在/etc/passwd、/etc/group、/etc/shadow、/etc/gshadow文件中添加用户数据2、然后系统会自动在/etc/default/useradd设置的目录下创建host目录文件,最后将/etc/skel目录下的所有文件复制到该目录下。此时,创建了一个新用户。2、修改用户密码命令:passwd在上面解释user命令的时候,我们其实已经用到了passwd命令。接下来,我们将详细解释这个命令。该命令的基本格式如下:passwd[option]username该命令常用选项及其含义如下:d:删除密码信息w:密码过期前的天数,对应每一行/etc/shadow文件中第6个字段S:显示密码信息,即/etc/shadow文件中用户密码的内容,只对root用户可用l:停止使用该账户,即invalidate密码,只对root用户可用u:解锁用户,上面的l参数只对应root用户x:设置用户密码的有效期,对应密码中每一行的第五个字段/etc/shadowfilen:设置用户修改密码后多长时间不能再次修改密码,对应于/etc/shadow文件中每行password的第四个字段1。例如设置新的密码添加用户testuser:$passwdtestuser$Newpassword:#Enterthepassword,这里不会明文显示$Retypenewpassword:#EnteragainPassword$passwd:allauthenticationtokensupdatedsuccessfully.#提示修改密码成功2.显示用户的密码信息:$passwd-Stestuser#注意这里的参数S大写testuserPS2020-06-170999997-1(Passwordset,SHA512crypt.)#用户名:密码:设置时间:密码修改间隔(0):密码有效期(99999):警告时间(7):密码不过期(-1)这里的密码修改间隔,密码有效期,警告时间,而密码宽限期实际上来自于配置文件/etc/shadow.conf的设置。这里显示密码加密方式为SHA512,从CentOS6.3开始加密方式由MD5加密更新为SHA512。3、锁定用户$passwd-ltestuser锁定用户后,我们查看用户的密码信息,发现信息最后提示的是Passwordlocked.,很明显说明密码已经被锁定了。系统锁定用户的处理方法是什么?我们查看/etc/shadow文件:$grep"testuser"/etc/shadow请仔细看,密码前面加了!!它只是使密码无效。4、解锁用户既然可以锁定用户,那么也可以解锁用户:$passwd-utestuser执行解锁用户的命令后,用户状态会恢复正常。今天给大家讲解一下Linux用户管理的两个最基本的命令,一个是添加用户,一个是修改用户密码。下一章继续讲解Linux用户管理的其他命令。