第八篇:权限管理体系
权限管理基础知识点
权限管理概述
Linux通过rwx3种权限控制系统与保护系统,组成9位权限
Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系
rwx三种权限
权限 | 含义 |
r | read 是否可读 |
w | write 是否可写 |
x | execute 是否可执行(一般是命令、脚本) |
用户三种关系
Linux下面任何一个文件/目录与用户的关系有三种
文件/目录与用户的关系 | 含义 |
所有者(个人) | 这个文件或目录属于某个用户(所有者) |
用户组(家庭) | 这个文件或目录属于某个用户组(家庭) |
其他人(陌生人) | 这个文件或目录不属于某个用户和用户组 |
9位权限
如何知晓文件或目录的所有者情况
linux权限计算
人们为了方便的使用权限,于是给每个权限字母设置了一个对应的数字,通过数字表示对应的权限
权限 | 含义 | 权限对应的数字 |
r | read 是否可读 | 4 |
w | write 是否可写 | 2 |
x | execute 是否可执行(一般是命令、脚本) | 1 |
- | 没有权限 | 0 |
# 案例 -rw-r--r-- 420400400(644)
修改权限
命令 | 说明 |
chmod | change mode 使用数字或字母形式修改权限 |
chown | change owner 修改文件的所有者、用户组 |
# 已有环境 /yuan/yuan.txt # 案例:修改yuan.txt文件的权限为755(掌握) # chomd基于数字形式的权限设置 [root@yuan ~]# cd /yuan/ [root@yuan yuan]# chmod 755 yuan.txt [root@yuan yuan]# ll 总用量 0 -rwxr-xr-x 1 root root 0 9月 13 18:09 yuan.txt # chomd基于字符形式的权限设置(了解) [root@yuan yuan]# chmod u+rwx,g+rx,o+rx yuan.txt [root@yuan yuan]# ll 总用量 0 -rwxr-xr-x 1 root root 0 9月 13 18:09 yuan.txt # 案例:给/yuan/yuan.txt 增加执行权限(所有位置) [root@yuan yuan]# # chmod u+x,g+x,o+x yuan.txt [root@yuan yuan]# # chmod ugo+x yuan.txt [root@yuan yuan]# # chmod a+x yuan.txt [root@yuan yuan]# chmod +x yuan.txt [root@yuan yuan]# ll 总用量 0 ---x--x--x 1 root root 0 9月 13 18:09 yuan.txt # 案例:将/yuan/yuan.txt文件的所有者、用户组改为yuan用户 [root@yuan yuan]# chown yuan.yuan yuan.txt [root@yuan yuan]# ll 总用量 0 ---x--x--x 1 yuan yuan 0 9月 13 18:09 yuan.txt
系统默认权限(了解)
# Linux系统通过umask命令控制文件和目录的默认权限 #一般情况下,文件的最大权限是666,目录的最大权限是777 # 目录默认权限 777 - 022 ---------- 755 # 文件默认权限 666 - 022 ---------- 644 # 减去umask的值,文件如果减去的值中某一位是奇数,该位加一 666 - 021 ---------- 645 646
Linux权限控制与系统安全(了解)
- 通过权限控制让系统安全:
- 网站搭建:服务器权限设置
- 最小化原则:既要保证网站可以正常访问,也要保证网站安全
- 推荐的网站权限配置:
- 文件:644 root root
- 目录:755 root root
- 网站在运行的时候需要的用户:
- 不推荐root用户
- 推荐创建虚拟用户www/nginx
3个特殊权限(知晓即可,未来工作中不会用)
3种特殊权限 | 判断 | ||
set uid == suid |
u的位置上有个s或S 对应的数字:4 |
运行这个命令的时候相当于是这个命令的所有者的权限 | /bin/passwd |
sticky(粘滞位) |
o的位置上有个t 对应的数字:1 |
对于包含sticky权限的目录,每个用户都可以在目录下面创建内容,但是每个用户只能管理自己的文件 | /tmp/ |
set gid == guid |
g的位置上面有个s或S 对应的数字:2 |
运行这个命令的时候相当于是这个命令的用户组的权限 | /bin/ssh-agent |
权限与文件、目录
概述⭐⭐⭐⭐⭐
权限 | 文件 | 目录 |
r | 是否可以读取文件(r) | 是否可以查看目录内容,需要x权限配合(rx) |
w | 是否可以修改文件,需要r权限配合(rw) | 是否可以在目录中创建、删除、重命名文件,需要x权限配合(wx) |
x | 是否可以执行文件(命令、脚本),需要r权限配合(rx) | 是否可以进入目录,是否可以访问目录下文件属性 |
测试文件权限
通过root用户修改权限,yuan用户测试权限
# 环境准备 [root@yuan ~]# mkdir -p /yuan-mode/ [root@yuan ~]# echo 'hostname whoami' >/yuan-mode/yuan.sh [root@yuan ~]# chown yuan.yuan /yuan-mode/yuan.sh [root@yuan ~]# chmod 000 /yuan-mode/yuan.sh [root@yuan ~]# cd /yuan-mode/ [root@yuan yuan-mode]# ll yuan.sh ---------- 1 yuan yuan 16 9月 13 19:48 yuan.sh
测试文件的r权限
- root修改r权限:chmod u=r yuan.sh
- yuan查看
测试文件的w权限
- root修改w权限:chmod u=w yuan.sh
- yuan查看
总结:
对于文件来说只有w权限不够,需要有r权限配合
如果文件只有w,只能通过追加方式写入,如果vi/vim写入会清空文件原有内容
测试文件的x权限
- root修改x权限:chmod u=x yuan.sh
- yuan查看
# 总结 对于文件的x权限不能单独使用,需要配合r权限使用
测试目录权限
通过root用户修改权限,yuan用户测试权限
# 环境准备 [root@yuan ~]# mkdir -p /yuan-mode/yuandir/ [root@yuan ~]# touch /yuan-mode/yuandir/yuan{00..05}.txt [root@yuan ~]# chown -R yuan.yuan /yuan-mode/yuandir/ chown -R 命令用于递归更改指定文件或目录及其所有子文件和子目录的所有者/所属组 [root@yuan ~]# ll -d /yuan-mode/yuandir/ drwxr-xr-x 2 yuan yuan 114 9月 14 09:11 /yuan-mode/yuandir/ [root@yuan ~]# ll /yuan-mode/yuandir/ 总用量 0 -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan00.txt -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan01.txt -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan02.txt -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan03.txt -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan04.txt -rw-r--r-- 1 yuan yuan 0 9月 14 09:11 yuan05.txt
测试目录的r权限
root修改r权限:chmod u=r yuandir/
# 总结 目录的r权限查看目录下内容,如果r权限下的属性信息无法查看提示"?",目录的r权限需要x权限配合 对于目录的x权限表示是否能够进入目录权限,是否能够查看与修改目录下的文件的属性信息
测试目录的w权限
# 总结 目录的w权限表示在目录下面创建、删除、重命名文件 对于目录的x权限表示是否能够进入目录权限,是否能够查看与修改目录下文件的属性信息 实际应用:如果要给某个目录拥有“写”的权限,则授予目录rwx即可
Permission denied 故障排查⭐⭐⭐⭐
日常操作 | 需要的权限 |
查看文件的内容 | 文件要有r权限 |
编辑或修改文件内容 | 文件要有rw权限 |
执行脚本/命令 | 文件要有rx权限 |
查看目录内容 | 目录要有rx权限 |
创建文件、删除文件 | 文件所在目录要有rwx权限 |
重命名 | 文件所在目录要有rwx权限 |
Linux特殊属性 ⭐⭐⭐⭐⭐
- 目的:预防重要文件或命令被修改
- lsattr 查看这种特殊属性属性
- chattr 修改这种特殊属性
- a属性 append 只能追加
- i属性 immutable 不朽的,无法毁灭的(无法修改)
chattr +a /yuan/a.txt # 去掉这个属性则-a chattr +i /yuan/a.txt # 去掉这个属性则-i
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现