1.用户及用户组存在的意义
1>用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合。
身份 acccount
授权 author
认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2>用户组存在的意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
用户就是/etc/passwd文件中的一行字符
id+用户名称 查看用户,必须要记录到文件中用户才能存在
如果用户不存在,可以在passwd中编辑添加
用户组的存在方式就是/etc/group文件中的文件中的一行字符
3.用户切换
1>用户查看
whoami ##查看当前用户
id ##查看用户id信息
id -u ##查看用户的用户id
id -g ##查看用户的主组id
id -G ##查看用户的所有组id
id -G -n ##查看用户的所有组的名称
id -n ##查看名称(与以上字符搭配进行使用)
2>用户查看
su - username
- ##切换用户的环境
username ##如果root---->commonuser 不需要后者密码
##如果commonuser—>root 需要后者密码
##如果commonuser—>commonuser 需要后者密码
注意:在做用户切换时当使用完毕,用户身份要及时退出
注意:不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境pwd错乱
4.用户涉及到系统配置文件
/etc/passwd ##用户身份信息文件
用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group 组身份文件
组名称:组密码:组id:组的附加成员
/etc/skel/. ##用户环境配置文件模板,建立用户时这里面所有文件都会复制到用户家目录
/etc/shadow ##用户认证信息文件
/home/username ##用户家目录*
5.用户及用户组的建立及删除
监控用户建立的操作:
打开一个shell,改到root用户,做监控界面,
输入watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo ===;ls -l /home” 每秒钟执行一次
再打开一个shell,进行用户及用户组的处理
1>.useradd 用户建立
useradd username ###创建用户
useradd -u id username ###指定用户的用户id,uid范围 0-65535,0表示超级用户,1-200系统预留id,201-999系统用户,1000-60000用户级用户,/etc/login.defs 记录用户建立的规则
useradd -g id username ### 指定用户主组id
useradd -G id username ### 指定用户附加组id
useradd -d dir username ###指定用户的家目录
useradd -c word username ###指定用户的说明文字
useradd -s shell username ###指定用户默认的shell
useradd -M username ##不创建用户的家目录
2>.userdel 用户删除
userdel -r username ###用户删除
###-r 删除用户系统配置文件
3>.groupadd 用户组的建立
groupadd groupname ###建立用户组
gruopadd -g groupmane ###指定用户组的组id
4>.groupdel 用户组的删除
groupdel gruopname ###删除用户组
6.用户和用户组的信息管理
usermod [ ] 用户 更改用户信息
-l 更改用户名称
-u 更改用户id
-g 更改主组id
-G 更改用户附加组的身份
-aG 添加用户附加组的身份
-c 更改用户说明
-d 更改家目录指向
-md 更改家目录指向同时更改家目录名称
-s 更改默认shell
groupmod -g 更改用户组id
7.用户认证信息
监控:watch -n 1 “tail -n 3 /etc/shadow;echo=====;passwd -S 普通用户名”
1>.用户名称
passwd -S 普通用户名 ###查看用户的密码状态
2>.用户加密字符
更改密码
passwd 用户名 ###只有root可以执行
passwd ###普通用户改密码,输入原始密码和新密码,8位以上数字字母组合
冻结认证
passwd -l 用户名 ###冻结账号认证
passwd -u 用户名 ### 解锁账号认证
passwd -d 用户名 ###用户密码删除
2>.密码使用天数
从1970年1月1日算起到今天的时间
passwd -e 用户名 ###修改默认使用时间为0
chage -d 0 用户名 ###修改默认使用时间为0,账号必须修改密码
密码最短有效期
passwd -n 1 用户名 ####1天不能改密码,普通用户
chage -m 1 用户名
密码最长有效期
passwd -x 40 用户名 ###40天内必须改密码,不然冻结
chage -M 40 用户名
密码过期警告
passwd -w 2 用户名 ###账号过期前警告时间为2天
chage -W 1 用户名
认证非活跃天数
passwd -i 2 用户名 ###账号认证最大时间超过后还能用2天
chage -I 1用户名
账号到期时间
chage -E “2020-05-11”
最行1位未启用
8、用户权力下放
在系统中普通用户是无法执行系统管理命令的,如果需要普通用户执行那么需要root用户来授权。
普通用户授权方式“sudo”,可以使普通用户使用指定的用户身份运行命令
授权方法:visudo
此命令作用是编辑 /etc/sudoers并提供语法检测(注意代码规范性,在文件的100行左右,set nu可以显示文件行数)
username hostname=(newusername)[NOPASSWD:] /command, /command1
示例:编辑visudo文件
实现localhost.localdomain主机=(用超级用户身份)免密执行useradd命令
用户名 localhost.localdomain=(root) NOPASSWD: /usr/sbin/useradd
test