1、理解系统中的用户及用户组
用户: Linux系统最底层的安全设备,属于权限问题,系统要回收权力, 系统用户即系统的使用者,对用户管理就是对文件的管理。
用户组: 用户组是用户的延伸,组的存在是为了共享用户的权力,组和用户是两个不同的机制。组分为初始组和附加组。
2.查看当前用户以及当前用户信息
(1)查看当前用户:whoami
(2)查看当前用户的系统信息
用户信息包含7列,分别是用户名,用户密码,用户uid,用户gid,用户说明,用户家目录,用户默认shell。
id-u 显示当前用户的uid
id-g 显示当前用户的gid
id-G 显示当前用户所在的所有组的id
id-n 显示名字不显示id
3.用户管理
(1)新建用户:useradd
useradd 新建一个用户
useradd -u 888 用户名 指定用户的uid为888,并新建用户
useradd -g 888 用户名 指定用户的初始组的id为888 ,该组必须存在
useradd -G 888 用户名 指定用户附加组的id为888,改组必须存在
useradd -c XXX 用户名 制定用户的用户名
useradd -d /home/westos 用户名 指定用名的家目录
useradd -s /bin/sh用户名 指定用户的默认shell
在指定过程中已经新建用户
首先使用监控命令来监控用户的建立过程:watch - n 时间间隔
watch -n 1 “tail -n 3 /etc/passwd /etc/group; ls -l /home”
注:监控界面显示了用户的信息文件、组信息文件和家目录信息。
(1)新建用户
(2)删除用户:userdel
userdel 用户名 删除用户,但不删除用户的配置文件
userdel -r用户名 删除用户同时删除用户的配置文件
注:上图中,使用userdel wes 命令虽然删除用户wes ,但没有删除wes的配置文件
(3)指定用户的id (uid)与初始组的id(gid)
useradd -u 1008 biue
useradd -g 1003 biue1
4)给用户增加一个附加组(附加组的id必须存在)
(5)指定用户的说明
useradd -c “hello westos” red
(6)指定用户的家目录
useradd -d /home/westos red
4.用户组的管理
(1)组的建立
groupadd 建立组
groupadd 组名 新建组
groupadd -g 666 组名 新建组并指定组的uid
2)组的删除:groupdel
注:建立用户组的同时也会建立它的家目录,同样删除用户组的同时也会删除它的家目录(这一点与用户的管理不一样);
用 户组不能重复建立,一定要先删除才可以建立;
5.用户信息的修改(不需要删除在重建用户,直接在原有用户上进行修改)
usermod -l 新名称 用户名 更改用户的名称
usermod -u uid 用户名 更改用户uid
usermod -g gid 用户名 更改用户的初始组id
usermod -G gid 用户名(id号) 更改用户的附加组,可以接组名,也可以接id
usermod -c “XXX” 用户名 指定用户说明文字
usermod -d /home/lee 用户名 更改用户家目录的指向(真实目录未必存在)
usermod -md /home/lee 用户名
usermod -s /bin/sh 用户名 更改用户的shell
usermod -aG id 用户名 添加用户的附加组
usermod -G “” 用户名 删除用户所有附加组的身份
(1)修改用户的用户名
usermod -l red westos
修改用户的uid
usermod -u 888 red
修改用户初始组的id
usermod -g 1012 red ##该组一定要存在
更改附加组
usermod -G 组名(或id) 用户名
附加组的作用:加到一个组才有资格,有权利。加入附加组是为了共享权力 ,与初始组不一样附加组的作用:加到一个组才有资格,有权利。加入附加组是为了共享权力 ,与初始组不一样
增加附加组
usermod -aG 组名(id) 用户名
(6)删除附加组
usermod -G “” wes
修改用户的说明
usermod -c “wewewe” red
8)修改用户的家目录指向(真实目录未必存在)
usermod -d /home/hehe wes
6.用户的切换
su - student
student 也可以切换用户,但是这种方式不加载系统环境配置
7.用户的存储方式
(1)用户信息文件: /etc/passwd,信息文件里面存储了用户的一些基本信息
包括的内容:用户名称:用户密码:uid:gid:说明:家目录:默认shell
(2)用户组信息文件: /etc/group,信息文件里面存储了用户所属组(用户组)的一些基本信息
包括的内容:组的名字:组的密码:组的id:组的成员
(3)认证信息文件: /etc/shadows,文件里面包括了一些认证信息,比如每个用户登陆时的密码
包括的内容:用户名称:密码
(4)默认开启shell的配置,用户的骨文件:/etc/skel/.*,骨文件里面存储了默认用户和系统对话工具的相关信息
(5)用户的家目录: /home/username,家目录指的是该用户建立的所属目录
8.用户信息认证
监控 watch -n 1 tail -n 3 /etc/shadow
该用户信息包含9项,
第一列 用户名称
第二列 用户密码的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现“!”,则该用户的帐号被冻结
第三列 用户密码最后一次被修改的时间,此时间的计算是从1970-1-1日起累计的总时间天数
第四列 用户密码最短有效期限(用户在这个数字天数之内不能修改密码)如果此位有设定数字,那么在此数字范围内的天数内是不能更改用户的密码的
第五列 用户密码最长有效期限,用户必须在此有效期内更新密码,如果超时会被冻结
第六列 密码警告期限,在过期前指定天数内会发送警告信息给用户
第七列 用户的非活跃天数(加的期限),此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
第八列 用户到期日,默认为空,表示帐号一定会被冻结的时间点,此时间计算是从1970-1-1开始计算的累计天数
第九列 用户自定义列,目前没有启用
用户密码的相关操作:
passwd 用户名 更改用户的密码
passwd -l 用户名 在用户密码前加入“!!”
passwd -u 用户名 解开已经上锁的用户
usermod -L 用户名 在用户密码前加入“!”
usermod -U 用户名 在密码不为空的时候使用
passwd -d 用户名 清空用户的密码
passwd -e 用户名(chage -d 0 用户名 ) ##两个命令功能类似 改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
passwd -n 1 用户名 (hage -m 1 用户名) ###两个命令的效果一样 用户在一天之内不能修改密码
passwd -x 30 用户名(chage -M 40 用户名 ) ###两个命令的效果一样 设定用户在30天之内必须修改密码
passwd -w 2 用户名 (chage -W 2 用户名) 密码过期前两天有警告输出
passwd -i 1 用户名 (chage -I 1 用户名) 密码过期后仍可登陆系统的天数
chage -E 2019-6-6 用户名 用户在这一天会被冻结 注意:此时间是从1970-1-1开始计算的累计天数
(1)更改用户密码
passwd red
(2)用户加密
passwd -l red
usermod -L red
(3)用户解密
passwd -u red
usermod -U red
4)清空用户密码
passwd -d red
(5)用户密码最后一次被更改的时间
passwd -e red
户密码最短有效期:
passwd -n 1 red
chage -m 1 red
(8)密码警告期限
passwd -w 2 red
chage -W 2 red
(9)用户非活跃天数
passwd -i 1 wes
chage -I 1 wes