linux中的用户管理
一、 用户及用户组存在的意义
系统资源是有限的,如何合理分配系统资源?在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
电脑对数字敏感 id
人类对字符串敏感 名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd
文件中的一行字符
用户组存在的方式就是/etc/group
文件中的一行字符
查看用户
[root@localhost Desktop] cat /etc/passwd
实验查看用户组
[root@localhost Desktop] cat /etc/group
三、用户id范围:
用户范围在0-65535
-u id username ##查看用户id
uid 2**16=0-65535 ##用户id范围
0: | Linux超级用户ID |
---|---|
1-999: | Liunx系统自用ID |
1000-65535: | 用户级ID |
以上ID设定规则都被记录在/etc/login.defs
四、用户切换
1、使用方法
su -username ##切换到另一个用户的使用
2、切换规则
su - username #切换用户环境(切换到其环境)
username ##如果root ----> commonuser #不需要后者密码
commonuser ----> root #需要密码
#commonuser ----> commonuser #需要密码
注意:在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱
五、查看用户某个具体信息的方式
*whomai ##查看当前用户
*id ##查看用户id信息
-u ##查看用户的用户id
-g ##查看用户主组id
-G ##查看用户所有的组的id
-n ##显示名称
显示全部
查看某个特别id
六、用户涉及到的系统配置文件
1、查看系统用户身份信息
/etc/passwd ##用户身份信息文件
依次为 用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
2、查看组的身份信息
/etc/group ##组身份信息文件
依次为 组名称:组密码:组id:组的附加成员**
3、用户环境配置文件
/etc/skel/.* ##用户环境配置文件模板
/etc/shadow ##用户认证信息文件
4、用户家目录
/home/username ##用户家目录
/var/spool/mail/username ##用户邮箱文件
查看家目录里有哪些普通用户
七、用户和用户组建立及删除
一、用户的建立和删除
1、用户的建立
useradd username | 建立用户 |
---|---|
-u id username | 建立用户id(应该在1000-60000)之间 |
-g id username | 主组id |
-G id username | 附加组id |
-d dir username | 指定用户家目录 |
-M username | 建立用户时不建立家目录 |
-c word username | 指定用户说明 |
-s shell username | 指定用shell |
2、用户的删除
userdel -r username | 用户删除 -r 删除用户的系统配置文件 |
---|
二、组的建立和删除
1、组的建立
groupadd groupname | 组建立 |
---|---|
-g id groupname | 指定组的id |
2、组的删除
groupdel groupname | 组删除 |
---|
三、监控实验
实验建立监控并且分别建立u为1001,主组为1002,附加组为1003的用户
1、建立监控命令
方便查看用户和组的变化
1、 watch -n 1 "tail -n4 /etc/passwd /etc/group;echo =======;ls -l /home" ##每秒刷新一次、监控系统用户和组的最后4行,查看家目录里面的用户
2、 useradd username ##用户建立
3、 userdel -r username ##用户及其文件全部删除
监控界面
2、建立id为1001的用户kkk
[root@localhost Desktop] useradd -u 1002 kkk
然后需要去除用户kkk方便看其他效果
[root@localhost Desktop] userdel -r kkk
3、建立主组g为1002的用户组kkk
先建立1002的组
[root@localhost Desktop] groupadd -g 1002 kkk
再建立g为1002的用户组kkk(将新建立的用户加入到1002的组里面)
[root@localhost Desktop] useradd -g 1002 kkk
其他用户也可以将主组加入到1002,但是其他用户的id不会重复
将上面的用户全部删除
3、添加附加组为1003的用户kkk
先建立1003组
[root@localhost Desktop] groupadd -g 1003 ppp
再生成附加组为1003的用户kkk
[root@localhost Desktop] useradd -G 1003 KKK
删除所有用户和组的信息
八、用户和用户组的信息管理
1、用户的管理
usermod | 作用 |
---|---|
-l | 更改用户名称 |
-u | 更改用户id |
-g | 更改主组id |
-G | 更改用户附加组身份 |
-aG | 添加用户附加组身份 |
-c | 更改用户说明 |
-d | 更改家目录指向 |
-md | 更改家目录指向同时更改家目录名称 |
-s | 更改默认shell |
-L | 冻结账号 |
-U | 解锁 |
2、用户组的管理
groupmod -g | 更改用户组id |
---|
3、实验
更改用户名称,更改用户,更改主组,更改用户附加组身份,添加用户附加组身份。
1 usermod -l kk1 kkk 将用户kk1的名称更改为kkk
2 usermod -u 1002 kk1 将用户kk1的uid改为1002
3 groupmod -g 1003 ppp 将ppp组的id改为1003
4 usermod -G 1001 kk1 将用户kk1的附加组该改到1001
5 usermod -aG 1004 kk1 将用户kk1的附加组增加1001
九、用户认证信息管理
1、查看用户认证信息管理
/etc/shadow 文件内容说明
依次为: 用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)
[root@localhost Desktop] watch -n 1 tail -10 /etc/shadow
2、用户名称
passwd -S westos ##查看密码状态
3、修改用户加密字符
passwd lee ##修改密码、只有root可以执行 “echo 123 | passwd --stdin lee”
passwd ##普通用户改密码
//
Changing password for user lee.
Current password: #输入原始密码
New password : ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.
//
4、冻结认证
passwd -l lee ##冻结账号认证
passwd -u lee ##解锁账号认证
passwd -d lee ##密码删除
5、密码使用天数
从1970-1-1算其到今天的时间
passwd -e lee ##修改默认使用时间为0
chage -d 0 lee ##账号必须改密码才能登陆系统
6、密码最短有效期
passwd -n 1 lee ##lee在1天内不能改密码
chage -m 1 lee
7、密码最长有效期
passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
8、密码过期警告
passwd -w 2 lee ##账号过期前警告时间
chage -W 1 lee
9、认证非活跃天数
passwd -i 2 lee ##账号认证最大时间超过后还能用多久
chage -I 1 lee
10、账号认证到期时间
chage -E "2020-05-11" ##到2020-5-11这天账号会被冻结
十、sudo权力下放
root用户设置权力下放的文件地址为/etc/sudoers
1、首先切换到westos普通用户,尝试建立用户test
发现下放权力执行也不行
2、在root用户设置下放的用户权力和权限
用户westos 可以免密进行用户的添加和删除
用户westos2 用自己的密码可以对用户添加和删除
3、切换到westos
不用密码成功添加新用户
4、切换到westos2
使用密码后iou可以添加和删除新账户