3.1 用户配置文件和密码配置文件
3.2 用户组管理
3.3 用户管理
3.4 usermod命令
3.5 用户密码管理
3.6 mkpasswd命令
一、用户配置文件和密码配置文件
用户配置文件:/etc/passwd
一行代表一个用户,每一行用冒号分割为7段:
第一段:用户名
第二段:早期为用户密码,后来因为安全问题将密码保存在/etc/shadow文件里
第三段:用户的uid
第四段:用户的gid
第五段:用户的注释描述信息,没有实际作用
第六段:用户的家目录路径
第七段:用户登录的shell
密码配置文件:/etc/shadow
和/etc/passwd一一对应,每一行一个用户,用冒号分割为九段
第一段:用户名
第二段:用户密码
1.如果密码为*号,或者密码的第一位是*号,那么这个用户就是禁用状态,不可登录
2.如果为空,则此用户登录不需要密码
3.双叹号表示这个密码已经过期
4.$6$开头的,表明是用SHA-512加密
5.$1$开头的,表明是用MD5加密
6.$2$开头的,表明是用blowfish加密
7.$5$开头的,表明是用SHA-256加密
第三段:最近一次更改密码距离1970年1月1日总共多少天
第四段:表示多少天以后才可以更改密码,默认为0,不限制
第五段:表示多少天以内必须更改密码,否则密码过期,无法登陆
第六段:警告提醒,提示距离密码过期还有几天
第七段:不活动时间,表示用户没有登陆活动但账号仍能保持有效的最大天数
第八段:用户距离1970年多少天后过期
第九段:保留字段
二、用户组管理
用户组配置文件:/etc/group
用户组的配置文件分为四段:
第一段:用户组的名称
第二段:用户组的密码,实际保存在/etc/gshadow文件中
第三段:用户组的GID
第四段:用户组的成员
/etc/gshadow 用户组的密码配置文件
创建用户组:
命令格式:groupadd 选项 group_name
-g选项:指定创建的用户组的gid
修改用户组:
groupmod 选项 组名 用法和usermod类似
-g选项:改变组的ID号
-n选项:改变用户组组名
删除用户组
groupdel group_name 前提是用户组里面没有任何成员
三、用户管理
查看用户gid和uid:id命令
id命令可以查看用户的uid和gid,和附加组的gid,怎么添加附加组下面会说
-u选项:只显示用户的uid
-g选项:只显示用户的gid
-G选项:只显示用户附加组的gid
-n选项:配合-u、-g、-G选项使用,只显示用户名、所属组名、附加组名。-n只能配合任意一个选项
添加用户:useradd 命令
格式:useradd [选项] 用户名 (中括号表示这一段内容可有可无)
-u选项:指定uid。root用户的uid为0,CentOS7的普通用户的uid是从1000开始使用
-g选项:指定gid。gid必须是已经存在的
-b选项:指定用户的家目录
-s选项:指定用户登录的shell,一般不需要指定,指定不能登录的用户为/sbin/nologin
-M选项:创建用户的同时不创建家目录。一个用户没有家目录会出现很多问题,所有一般只在创建不可登录的用户时使用
删除用户:userdel
userdel [选项] user_name 删除用户
基本用法:直接删除一个用户,但是不会删除该用户的家目录
-r选项:删除用户的同时删除该用户的家目录
四、usermod命令
修改用户的属性:usermod
命令格式:usermod 选项 user_name 注:使用usermod命令至少需要一个选项
-u选项:更改用户的uid
-g选项:更改用户的gid。可以用组名也可以用gid
-d选项:更改用户的家目录,如果更改用户的家目录不存在,需要将用户原有的家目录重命名为更改的家目录。或者复制系统的家目录模板到指定的路径下。
/etc/skel/为系统的家目录配置模板
-s选项:更改用户的shell,将testuser4更改为不能登录的shell
-G选项:扩展组,给用户指定多个组,格式:usermod -G grp1,grp2,grp3...user+name
-L选项:锁定用户
注:锁定用户后,root用户可以使用su命令切换到该用户
但是该用户无法直接登录,在普通用户下也不能使用su命令登录被锁定的用户
锁定后的用户在/etc/shadow文件中的密码最前面加上了一个感叹号,此时这个用户就无法登录了
-U选项:解锁用户
五、用户密码管理
修改用户密码:passwd
passwd [username] 修改用户密码,不带username则修改当前用户密码,带username则修改username用户的密码(只有管理员可以这样操作)
-l选项:锁定用户。效果和usermod -L一样
-u选项:解锁用户。效果和usermod -U一样
-stdin选项:更改用户密码的另一种方式,可以echo password |passwd -stdin user_name
也可以passwd --stdin user_name,然后输入一个密码,此方法会以明文显示密码
六、mkpasswd命令
mkpasswd可以生成一个随机的字符串,没有该命令需安装
yum install -y expect 安装mkpasswd工具
mkpasswd[选项]生成随机密码
-l选项:指定生成的字符串长度
-s选项:指定特殊符号的数量
例子:使用一条命令生成随机字符串,保存这个字符串,使用这个字符串修改密码