Linux权限模型如何理解_访问控制原理解析【教程】

发布时间 - 2026-01-04 00:00:00    点击率:
Linux权限模型核心是“谁以什么身份访问时被允许做什么”,依赖文件/目录上固化三元权限位(u/g/o)实时比对;ls -l的10字符中首字符为类型,后9位按3+3+3分组表示所有者、所属组、其他人的rwx权限;目录需x位才能cd进入,故644不适用于目录而应选755;chmod符号法适合增量修改,数字法适合批量重置;目录的rwx含义与文件不同:r为ls列表、w为增删改文件、x为cd进入及访问元数据;权限生效取决于访问者身份(id)、资源归属(ls -l)和创建掩码(umask)三者共同作用。

Linux 权限模型的核心不是“谁可以做什么”,而是“**谁以什么身份访问时,被允许做什么**”——它不依赖全局策略,而靠每个文件/目录上固化的一组三元权限位(u/g/o)实时比对决定放行与否。

ls -l 输出的10个字符到底在说什么

执行 ls -l file.txt 看到类似 -rw-r--r-- 这串字符,前1位是类型(-普通文件、d目录),后面9位才是权限,**严格按3+3+3分组**:

  • rw- → 所有者(u):可读可写,不可执行
  • r-- → 所属组(g):只可读
  • r-- → 其他人(o):只可读

⚠️ 容易踩的坑:chmod 644 看似“所有者读写、组和其他人只读”,但若目标是目录,644 会让组和其他人**无法 cd 进入**——因为目录需要 x(执行)位才可进入,而 4r)不含 x。正确应为 755(目录)或 644(纯文本文件)。

chmod 符号法 vs 数字法:什么时候该用哪一种

符号法(如 chmod u+x script.sh)适合**增量修改**,语义清晰、不易误操作;数字法(如 chmod 755)适合**批量重置**,但容易因记混数值含义导致越权(比如把 777 当“安全默认值”用)。

  • 数字法本质是八进制:每位 = r(4) + w(2) + x(1),例如 6 = 4+2 = rw-
  • 符号法支持 a(all)、u/g/o 精准定位,还能用 = 强制覆盖(chmod go=r file
  • 真实场景中,脚本部署常用符号法避免覆盖已有权限;初始化服务目录则倾向数字法统一收口

为什么改了文件权限,还是进不了目录?

目录的 rwx 含义和文件完全不同:

  • r → 能否 ls 列出内容(看到有哪些文件)
  • w → 能否在目录内 touch/rm/mv 文件(**删除文件的权限由目录的 w 控制,而非文件自身权限!**)
  • x → 能否 cd 进入,以及能否访问其下文件的元数据(比如 stat

典型错误:给 /var/www/html 设置了 755,但 Web 服务器用户(如 www-data)不在该目录所属组里 → 实际生效的是 others 权限段,而 others 若无 x,连 open() 都会失败,报错 Permission denied

chown 和 umask:权限的源头控制

权限不只是“改出来”的,更是“生出来”的:

  • chown user:group file 改变属主和属组,直接影响 u/g 权限段是否生效
  • umask 是创建文件/目录时的“权限屏蔽码”,比如 umask 002 表示新文件默认为 664666 & ~002),新目录为 775777 & ~002
  • 注意:umask 不影响已有文件,也不影响 root 用户创建文件的默认行为(rootumask 常为 022,更保守)

真正难啃的点从来不是命令怎么敲,而是搞清“当前访问者是谁”(id 命令查 UID/GID)、“当前资源属谁”(ls -l)、“系统创建它时用了什么掩码”(umask)——这三者缺一不可。


# linux  # html  # go  # 为什么  # var  # 做什么  # 已有  # 比对  # 的是  # 以什么  # 掩码  # 也不  # 才是  # 什么时候  # 说什么 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何正确下载安装西数主机建站助手?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何在万网开始建站?分步指南解析  如何挑选高效建站主机与优质域名?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  PHP 500报错的快速解决方法  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  JS去除重复并统计数量的实现方法  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  独立制作一个网站多少钱,建立网站需要花多少钱?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何在企业微信快速生成手机电脑官网?  bing浏览器学术搜索入口_bing学术文献检索地址  如何确保西部建站助手FTP传输的安全性?  Swift中循环语句中的转移语句 break 和 continue  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  iOS UIView常见属性方法小结  新三国志曹操传主线渭水交兵攻略  如何在阿里云购买域名并搭建网站?  香港服务器部署网站为何提示未备案?  ,网页ppt怎么弄成自己的ppt?  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何实现多对多模型关联?(Eloquent教程)  长沙企业网站制作哪家好,长沙水业集团官方网站?  Android滚轮选择时间控件使用详解  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  网站制作免费,什么网站能看正片电影?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel如何使用withoutEvents方法临时禁用模型事件  如何在IIS服务器上快速部署高效网站?  智能起名网站制作软件有哪些,制作logo的软件?  PHP正则匹配日期和时间(时间戳转换)的实例代码  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Linux系统命令中tree命令详解  如何用wdcp快速搭建高效网站?  如何快速建站并高效导出源代码?  如何在Windows 2008云服务器安全搭建网站?  C语言设计一个闪闪的圣诞树  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法