目录
###1 .用户存在的意义 ###
1)系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
身份 account
授权 author
认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2)用户组存在的意义
用户组是一个逻辑容器
对用户进行归类和统一授权
### 2.用户及用户组在在系统中的存在方式 ###
电脑对数字敏感 id
人类对字符串敏感 名称
id <-------->名称 必须要记录到文件当中才能存在
用户就是/etc/passwd/文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行字符
###3.用户切换###
1)用户查看
*whoami ##查看当前用户
*id ##查看用户id信息
( uid --用户id gid--组id groups--用户所有组的组id)
-u ##查看用户的用户id
-g ##查看用户主组id
-G ##查看用户所有的组的id
-n ##显示名称 (此参数不能独立使用,要配合上面三个参数使用)
例:id -Gn westos 表示用查看用户所有组的id及名称
用户id范围:
0-65535
0: ##Linux超级用户id
1-999: ##linux系统自用id
1000-65535: ##用户级id
##以上id设定规则都被记录在/etc/ login.defs
2)用户切换
- 用户切换的方式
- 图形切换(log out)
gonme-session-quit --force 登出
su - username
su ##只切换了用户身份,没有切换用户环境
su - ##切换用户环境
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/mai/username ##用户邮箱目录
###5.用户和用户组建立及删除###
监控用户建立的命令
watch -n 1 “tail -n 4/etc/passwd /etc/group;=======;ls -l /home”
=======表示打印字符
ctrl +c 退出监控用户模式
useradd username ##用户建立
-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 ##指定用户组id
-M username ##建立用户时不建立家目录
-c word username ##指定用户说明
-s shell username ##指定用shell
userdel -r username ##用户删除 -r 删除用户的系统配置文件(不加-r,用户的家目录存在,未删除)
groupadd groupname ##组建立
-g id groupname ##指定组名称
groupdel groupname ##组删除
###6.用户和用户组信息管理###
usermod
-l ##更改用户名称
-u ##更改用户id
-g ##更改主组id
-G ##更改用户附加组身份
-aG ##添加用户附加组身份
-c ##更改用户说明
例:-c “更改内容” 删除用户说明-c “ ”即可
-d ##更改家目录指向
家目录名称不变
例:usermod -d /home/haha westoslee
-md ##更改家目录指向同时更改加目录名称
-s ##更改默认shell
-L ##冻结账号
-u ##解锁
groupmod -g ##更改用户组id
###7.用户认证信息管理###
#
#/etc/shadow 文件内容说明
#
用户名称:用户密码的加密字符;用户密码最后一次被修改的时间;密码最短有效期;密码最长有效期;密码过期前警告期;账号非活跃期;账号到期时间;用户自定义(未使用)
#
#1.用户名称
pass -S lee ##查看密码状态
#2.用户加密字符
#更改密码)’
passwd lee ##只有root可以执行“echo 123 | passwd --stdin lee”
passwd ##普通用户改密码
Changing password for user lee.
Current password: #输入原始密码
New passwd: ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
Passwd:all authentication tokens updated successfully.
#冻结认证)
passwd -l lee ##冻结账号认证
passwd -u lee ##解锁账号认证
#密码删除)
passwd -d lee
#密码使用天数
*从1970-1-1算其到今天的时间
passwd -e lee ##修改默认使用时间为0
passwd -d 0 lee ##账号必须改密码才能登陆系统
#密码最短有效期
passwd -n 1 lee ##lee在一天内不能修改密码
chage -m 1 lee
#密码最长有效期
passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
#密码过期警告
passwd -w 2 lee ##账号过期前警告时间
chage -w 1 lee
#认证非活跃天数
passwd -i 2 lee ##账号认证最大时间超过后还能用多久
chage --i 1lee
#账号认证到期时间
chage -E “2020 -05-11” ##到2020-5-11这天账号会被冻结
#未启用功能
###8.用户权力下放###
#
#在系统中普通用户时无法执行系统管理命令的
#如果需要普通用户执行系统管理动作那么需要
#root用户来进行授权
普通用户授权方式”sudo”
作用:
可以使普通用户使用指定的用户身份运行命令
授权方法:
visudo ##此命令作用是编辑/etc/sudoers并提供语法检测
在文件100行左右 ##代码规范性
username hostname=(newusername)
【NOPASSWD:】/command, /command1
#lee用户在Linux.westos.com主机=(超级用户身份) 执行user add命令
lee linux.westos.com=(root) /usr/sbin/useradd
#westos用户 在Linux.westos.com 使用超户 免密 执行useradd和useradal
Westos linux.westos.com =(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
测试:
su -lee
Sudo useradd westostest ##在lee第一次使用sudo命令时需要输入lee密码
exit #退出lee
su -westos
sudo userdel -r westostest ##westos可以免密执行userdel命令