Linux中的系统用户管理
用户和用户组
(1) 用户存在的意义
- 用户存在的意义 系统资源是有限的,如何合理分配系统资源? 在这个问题解决时必须要有连个资源配合
- 身份 account
- 授权 author
- 认证 auth
- 这三个被称为3A机制,3A机制组成系统中最底层的安全架构
(2)用户组存在意义
- 用户组是一个逻辑容器 对用户进行归类和统一授权
(3)用户及用户组在系统中的存在方式
- 电脑对数字敏感 id
- 人类对字符串敏感 名称 id <-------->名称 必须要记录到文件当中用户才能存在
- 用户就是/etc/passwd文件中的一行字符
- 用户组存在的方式就是/etc/group 文件中的一行字符
用户切换
(1)用户查看
whomai 查看当前用户
id 查看用户id信息
id -u 查看用户的用户id
id -g 查看用户主组id
id -G 查看用户所有的组的id
id -n 显示名称
(2)用户id范围:
0-65535
0: Linux超级用户ID
1-999: Liunx系统自用ID
1000-65535: 用户级ID
以上ID设定规则都被记录在/etc/login.defs
(3)用户切换
su - username 用户切换
- 切换用户环境
username root 登录普通用户不需要后者密码
普通用户登录root需要密码
普通用户登录普通用户需要密码
注意:在做用户切换时当使用完毕用户身份输入exit及时退出 ,不要在一个shell中反复执行su命令 ,如果在一个shell中反复执行su命令会导致环境错乱
用户涉及到的系统配置文件
/etc/passwd 用户身份信息文件
用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell /etc/group 组身份信息文件 组名称:组密码:组id:组的附加成员
/etc/skel/.* 用户环境配置文件模板
/etc/shadow 用户认证信息文件
/home/username 用户家目录
/var/spool/mail/username 用户邮箱文件
用户和用户组建立及删除
useradd username 用户建立
useradd -u id username uid 2**16=0-65535
0 表示超级用户
1-200 系统预留id
201-999 系统用户
1000-60000 用户级用户
/etc/login.defs 记录用户建立的默认规则
-g id username 主组id
-G id username 附加组id
-d dir username 指定用户家目录
-M username 建立用户时不建立家目录
-c word username 指定用户说明
-s shell username 指定用shell
用watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"监控用户建立的命令
userdel -r username 用户删除 -r 删除用户的系统配置文件
groupadd groupname 组建立
-g id groupname 指定组名称
groupdel groupname 组删除
用户和用户组的信息管理
usermod -l 更改用户名称
-u 更改用户id
-g 更改主组id
-G 更改用户附加组身份
-aG 添加用户附加组身份
-c 更改用户说明
-d 更改家目录指向
-md 更改家目录指向同时更改家目录名称
-s 更改默认shell
-L 冻结账号
-U 解锁
groupmod -g 更改用户组id
监控命令:watch -n 1 "tail -n 3 /etc/passwd /etc/group;echo =======;ls -l /home"
用户认证信息管理
/etc/shadow 文件内容说明
用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期: 账号非活跃期:账号到期时间:用户自定义(未使用)
watch -n 1 tail -n1 /etc/shadow 监控命令
1.用户名称
passwd -S westoslee 查看密码状态
2.用户加密字符
更改密码
passwd westoslee 只有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.
冻结认证
passwd -l westoslee 冻结账号认证
passwd -u westoslee 解锁账号认证
密码删除
passwd -d lee 密码使用天数
从1970-1-1算其到今天的时间
passwd -e lee 修改默认使用时间为0登陆时会被系统强制修改密码
chage -d 0 lee 账号必须改密码才能登陆系统
密码最短有效期
passwd -n 1 lee lee在1天内不能改密码
chage -m 1 lee
密码最长有效期
passwd -x 40 westoslee 40天内lee用户必须更新密码否则会被冻结
chage -M 30 westoslee 密码过期警告
passwd -w 2 westoslee 账号过期前警告时间
chage -W 1 westoslee
认证非活跃天数
passwd -i 2 westoslee 账号认证最大时间超过后还能用多久
chage -I 1 westoslee
账号认证到期时间
chage -E "2020-05-11" westoslee 到2025-5-11这天账号会被冻结
3用户权力下放
- 在系统中普通用户时无法执行系统管理命令的,如果需要普通用户执行系统管理动作,那么需要 root用户来进行授权
- 普通用户授权方式 “sudo”
- 作用: 可以使普通用户使用指定的用户身份运行命令
- 授权方法:
- visudo 此命令作用是编辑/etc/sudoers并提供语法检测
- 在文件的100行左右输入更改,代码规范性
- username hostname=(newusername) [NOPASSWD:] /command, /command1
- 在root用户下输入hostnamectl查询复制主机名称
- 之后输入visudo权力下放内容进行编辑,在文件的100行左右更改,代码规范性
- 编写完成后保存
- su到普通用户,使用编写内容里的权力命令时必须在命令前加sudo命令才可生效