2 系统底层控制及优化
2.1 用户和用户组的意义
用户存在的意义:1)合理控制和利用系统资源
? 2)帮助用户组织和管理文件,并为用户提供安全性保护
3A机制,3A机制组成系统中最底层的安全架构。
1.身份account 2.授权author 3.认证 auth
用户组存在的意义:用户组是一个逻辑容器,对用户进行归类和统一授权
####2.2 用户及用户组在系统中的存在方式
id — 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符
用户组就是/etc/group文件中的一行字符
2.3 用户切换
1)用户查看
whoami #查看当前用户
id #查看用户id信息(用户id,用户组id,附加组id)
-u #查看用户的用户id
-g #查看用户主组id
-G #查看用户所有的组的id
-n #显示名称
用户id范围:0-65535
0: #linux超级用户ID
1-999: #linux系统自用ID
1000-65535: #用户级ID
#以上ID设定规则都被记录在/etc/login.defs
2)用户切换
su - username
- #切换用户环境
username #root 到 普通用户 不需要后者密码
#普通用户 到 root 需要密码
#普通用户 到 普通用户 需要密码
注意:在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱
2.4 用户涉及到的系统配置文件
/etc/passwd #用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group #组身份信息文件
#组名称:组密码:组id:组的附加成员
/etc/skel/.* #用户环境配置文件模板
/etc/shadow #用户认证信息文件
/home/username #用户家目录
/var/spool/mail/username #用户邮箱文件
2.5 用户和用户组建立及删除
#监控用户建立命令(-n 设置间隔时间 这里是1s)
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo ====;ls -l /home"
useradd username #用户建立
-u id username #uid 0-65535
#0 表示超级用户
#1-200 系统预留id
#201-999 系统用户
#1000-65535 用户级用户
-g id username #主组id
-G id username #附加组id
-d dir username #指定用户家目录
-M username #建立用户时不建立家目录
-c word username #指定用户说明
-s shell username #指定用shell
userdel -r username #用户删除,-r 删除用户的系统配置文件
groupadd groupname #组建立
-g id #指定组名称
groupdel groupname #组删除
2.6 用户和用户组的信息管理
usermod
-l #更改用户名称
-u #更改用户id
-g #更改主组id
-G #更改用户附加组身份
-aG #添加用户附加组身份
-c #更改用户说明
-d #更改家目录指向
-md #更改家目录指向同时更改家目录名称
-s #更改默认shell
-L #冻结账号
-U #解锁
groupmod -g #更改用户组id
2.7 用户认证信息管理
/etc/shadow 文件内容说明
#用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号到期时间:用户自定义(未使用)
1.用户名称
passwd -S lee #查看密码状态
2.用户加密字符
#更改密码
passwd lee #只有root用户可以执行"echo 123|passwd --stdin lee"
passwd #普通用户修改密码
#冻结认证
passwd -l lee #冻结账号认证
passwd -u lee #解锁账号认证
#密码删除
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 lee #40天内lee用户必须更新密码否则会被冻结
chage -M 40 lee
#密码过期警告
passwd -w 2 lee #账号过期前警告时间
chage -W 1 lee
#认证非活跃天数
passwd -i 2 lee #账号认证最大时间超过后还能用过久
chage -I 1 lee
#账号认证到期时间
chage -E "2020-05-11" #到期2020-05-11这天会被冻结
2.8 用户权利下放
root用户给普通用户授权
普通用户授权方式:sudo
作用:可以使普通用户使用指定的用户身份运行命令
授权方法:
visudo #此命令作用时编辑/etc/sudoers并提供语法检测
![img](file:///C:\Users\38069\AppData\Roaming\Tencent\Users\380693433\QQ\WinTemp\RichOle\6QS@SLKV@{KW 27E0U[JPA.png)
2.9 Linux系统中的权限管理
#权限查看
ls -l file #查看文件权限
ls -ld dir #查看目录权限
权限的读取
文件的属性被叫做文件的元数据
一种元数据用1个byte来记录内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXEQPQiv-1645968448964)(file:///C:\Users\38069\AppData\Roaming\Tencent\Users\380693433\QQ\WinTemp\RichOle\UC1W8R4LT67FS4G@V7YAW}C.png)]
[1] 文件类型
普通文件 d 目录 l 软连接 b 块设备 c 字符设备 s socket套接字 p 管道 |
[2]用户权限
u g o
[3]系统的selinux开启
[4]对于文件:文件内容被系统记录的次数(硬链接个数)
对于目录:目录中子目录的个数
[5]文件拥有者
[6]文件拥有者的组
[7]对于文件:文件内容大小
对于目录:目录中子文件的元数据大小
[8]文件内容被修改的时间
[9]文件名称
2.10 普通权限的类型及作用
1.用户对文件的身份
u: #user 文件的拥有者 第5列
g:#group 文件的拥有者 第6列
o:#other 既不是拥有者也不是拥有组成员的其他用户的通称
2.权限位
ugo
3.用户身份匹配
user>group>other
4.权限类型
-#权限未开启
r#可读,对于文件:可以读取文件内容 对于目录:可以ls列出目录中的文件
w#可写,对于文件:可以更改文件内容 对于目录:可以在目录中新建或者删除文件
x#可执行,对于文件:可以用文件名称调用文件内记录的程序 对于目录:可以进入目录
2.11 设定普通权限的方法
chmod #设定文件权限
chmod #复制权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b5oLAVed-1645968448966)([外链图片转存失败,源站可能有防盗le:///C:\Users\38069\AppData\Roaimg-cB7ine\Tengent\Us-rs\38093433\QQ\WinTemp\RichOle\56UNNOT[QHZB`3S571)RXVB3.pnge://C:%5CUsers%5C38069%5CAppData%5CRoaming%5CTencent%5CUsers%5C380693433%5CQQ%5CWinTemp%5CRichOle%5C1UNNOT%5BQHZB%603S4787RXVB3.png%29#pic_center)]
#####2.12 文件用户用户组管理
chown username file #更改文件拥有者
chgrep groupname file #更改文件拥有组
chown username:groupname file #同时更改文件的拥有者和拥有组
chown|chgrep -R user|group dir #更改目录本身及目录中内容的拥有者或者拥有组
2.13 特殊权限
|