ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux 学习笔记 04 番外:用户权限典型场景实操

Linux 学习笔记 04 番外:用户权限典型场景实操 写在前面本文为《Linux 学习笔记 04一文读懂 Linux 用户与权限管理》配套番外实操篇。本篇聚焦权限模块中极易混淆的典型场景全部实验基于 CentOS 7 环境所有操作均可复现。重点梳理文件与目录权限差异、文件删除逻辑、属主权限豁免、目录 w/x 权限组合等高频易错知识点同时修正部分常见认知误区帮助理清权限背后的底层逻辑。能力有限如有错误欢迎指正不喜勿喷。目录一、核心概念回顾1.1 文件 rwx vs 目录 rwx1.2 三句口诀1.3 两条特权二、场景 1删除文件到底看谁的权限2.1 第一轮能改但删不掉2.2 第二轮改不动但能删2.3.总结三、场景 2目录只有 r 没有 x四、场景 3目录只有 w 没有 x五、场景 4综合判断 附加组实验5.1 拓展实验把 wisteria 加进 root 组再看六、场景 5区分文件的 x和目录的 x6.1 场景 5A文件只有 x能读吗能执行吗6.2 场景 5B目录只有 x能列吗能读已知文件吗一、核心概念回顾1.1 文件 rwx vs 目录 rwx权限作用在文件上作用在目录上r(4)能读文件内容cat/more/less能列出目录里的文件名lsw(2)能改文件内容vi/echo 能增/删/改名目录里的条目touch/rm/mvx(1)能执行该文件能进入目录、访问目录内文件cd1.2 三句口诀r 看名字列目录 x 进门cd 进入 / 访问目录内文件 w 增删改名必须搭配 x单独 w 无效1.3 两条特权root 几乎不受 rwx 限制——对目录的读/写/进入root 全部无视对文件读/写也无视。唯一的例外root 要执行一个文件该文件至少要有一个x位这是内核的硬性规定。目录属主不受该目录w位的限制——所以我们的目录属主必须设成 root而不是 wisteria否则改了权限还是能删。二、场景 1删除文件到底看谁的权限要证明的两件事改文件内容→ 看文件本身的 w删文件→ 看父目录的 wx跟文件本身权限一点关系都没有。2.1 第一轮能改但删不掉目标权限目录dir1755other 无 w文件file.txt646other 有 w。结论第一轮能改内容删不掉。原理改内容file.txtother 位是rw-有 w → 能写删文件dir1other 位是r-x没有 w→ 删不掉。rm 本质是在父目录里抹掉这条文件名记录改的是目录不是文件。2.2 第二轮改不动但能删目标权限目录dir1757other 有 wx文件file.txt444other 无 w。结论第二轮改不动能删。原理改内容file.txtother 位是r--没 w → 改不动删文件dir1other 位是rwx有 wx → 能删哪怕文件是只读的 444。2.3.总结一句话总结本场景改文件看文件自己的 w删文件看父目录的 wx。底层原因rm不是去擦掉文件数据而是去修改父目录的目录项把文件名从目录里摘掉。目录项属于目录所以看目录权限。思考为什么文件只读444但我还能删掉它这件事在新手看来很反直觉因为大多数人以为删文件是改文件其实它是改目录。三、场景 2目录只有 r 没有 x题目目录dir2权限644drw-r--r--里面有个note.txt。问 wisterials dir2能不能看到文件名cat dir2/note.txt能不能读到内容cd dir2能不能进去结论① 能看到名字② 读不到③ 进不去。原理目录r只负责看文件名清单x才是进门的通行证。只有 r 没有 x就是隔着门缝看见里面有人但推不开门。四、场景 3目录只有 w 没有 x题目目录dir3权限646drw-r--rw-wisteria 作为 other 有 w、但没有 x。问能否新建文件能否删已有文件结论新建、删除全失败。原理哪怕 other 位明明有w没有xw就完全不生效。要在一个目录里增删改名必须wx同时具备。这印证了口诀w 增删改名必须搭配 x。类比w是我允许你改这间屋子的摆设x是但你得先进得了屋。门都进不去谈何改摆设。五、场景 4综合判断 附加组实验题目目录dir4权限750drwxr-x---属主 root组 root内部文件data.txt权限644。用户 wisteria 不在 root 组。请判断cd dir4能进吗ls dir4能列吗cat dir4/data.txt能读吗rm dir4/data.txt能删吗结论750 rwxr-x---other 位是---wisteria 是 other → r、x、w 全没有啥也干不了。5.1 拓展实验把 wisteria 加进 root 组再看预期现象前三项只有删除。原理wisteria 进了 root 组后匹配的是dir4的组权限r-x→ 能进、能列、能读但组权限里没有w所以依旧删不掉。这一步正好再次印证删除看目录的 w。注意usermod -aG的-aappend必须加。只写usermod -G root wisteria会把 wisteria 原有的附加组清空、只剩 root可能引发别的问题。改完组必须重新登录才生效。六、场景 5区分文件的 x和目录的 x6.1 场景 5A文件只有 x能读吗能执行吗题目普通文本文件readme.txt权限001----------xwisteria 能否cat能否执行结论文件只有 x →读不了也执行不了。对普通文本文件x 位几乎毫无意义。原理cat需要 r执行一个文本文件内核发现它不是可执行二进制会交给解释器shell去读它而读又需要 r——没 r 就失败。思考如果是一个编译好的二进制 ELF只有--x能不能执行能——因为内核执行二进制是直接把文件映射进内存不走读权限这条检查。只有脚本/文本才需要 r解释器要读内容。6.2 场景 5B目录只有 x能列吗能读已知文件吗题目目录dir5权限001d---------x内部文件readme.txt权限755可读。问能否ls dir5能否cat dir5/readme.txt结论目录只有 x →列不出目录没 r但知道文件名就能读有 x 能穿过目录。原理目录x是通行证——只要你能把路径说出来就能穿过目录去够到里面的文件。而目录r是花名册——没有 r你连里面有哪些文件都不知道只能盲猜文件名。目录只有 x知道文件名就可以访问文件但 ls 看不到里面有什么。写在最后本文是博主在学习 Linux 过程中整理的个人笔记写作时查阅了大量公开资料与文献力求内容准确。若有疏漏或表述不当之处欢迎大家指正也请多多包涵如果这篇笔记对你有帮助欢迎点赞 、收藏 ⭐、关注 你的支持是我继续更新的最大动力往期文章Linux 学习笔记 04一文读懂 Linux 用户与权限管理Linux 学习笔记 03一文读懂 Linux 包管理工具Linux 学习笔记 02一文读懂 Linux 目录结构Linux 学习笔记 01一文读懂 Linux 发展简史响应式之道 —— 媒体查询、容器查询与多列布局
返回列表