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