
Linux chmod 命令完全指南文件权限模型、数字与符号模式、实战速查【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference本篇技术指南以本仓库 docs/chmod.md 备忘清单为核心骨架系统讲解 Linux 文件权限模型与chmodchange mode更改模式命令的完整用法从ls -l权限串的解读、r/w/x与八进制数值的对应关系到数字模式、符号模式、递归操作再到 SSH 密钥、Web 目录等真实场景的权限实践。读完本篇你可以熟练地为任意文件或目录设置精确权限并能独立排查因权限不当导致的各类运行问题。入门语法与快速示例chmod命令用于修改文件或目录的访问权限其基本语法为$ chmod [options] permissions file其中permissions既可以是数字模式如755也可以是符号模式如ux。以下四个示例覆盖了最常见的用法$ chmod 755 foo.txt $ chmod x quickref.py $ chmod u-x quickref.py $ chmod urwx,grx,o quickref.sh逐条解读chmod 755 foo.txt数字模式将权限设置为所有者rwx、组r-x、其他人r-xchmod x quickref.py省略对象默认a即所有人为所有对象追加执行权限chmod u-x quickref.py仅对所有者u移除执行权限chmod urwx,grx,o quickref.sh用精确指定三组权限o表示其他人的权限清空。递归更改文件和目录当需要同时修改目录及其内部所有内容时使用-R--recursive选项$ chmod -R 755 my_directory注意-R会把目录内的普通文件也一并设置为755。更精细的做法是结合find分别处理目录与文件详见下文「批量更改」一节。权限模型读、写、执行Linux 权限体系围绕三类对象Owner/User、Group、Other与三种基本权限读、写、执行展开。三类对象Objects缩写含义u用户user即文件所有者g组group文件所属组o其它othersa全部等价于ugo三种基本权限Permissions缩写权限数值r读read4w写write2x执行execute1-没有权限0三种权限的数值分别是4、2、1恰好是 2 的幂次因此可以任意组合相加得到 07 的唯一八进制位例如r-x4015rwx4217。这也是数字模式的核心原理。文件类型ls -l输出中权限串的第一个字符表示文件类型缩写文件类型d目录-常规文件l符号链接解读 ls -l 的权限串执行ls -l可以查看文件或目录的权限$ ls -l -rw-r--r-- 1 root root 3 Jun 29 15:35 a.log drwxr-xr-x 2 root root 2 Jun 30 18:06 dir以dir为例其权限串drwxr-xr-x从左到右可拆解为d rwx r-x r-x ┬ ─┬─ ─┬─ ─┬─ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ╰─ 4. Other5 (401) ┆ ┆ ╰────── 3. Group5 (401) ┆ ╰─────────── 2. User 7 (421) ╰─────────────── 1. File Type | directory即d表明这是目录随后每三位一组依次对应User7 rwx、Group5 r-x、Other5 r-x。权限模式速查表八种权限组合及其八进制/十进制对应关系如下是所有权限运算的基础权限描述八进制十进制---没有权限0000 (000)--x执行0011 (001)-w-写0102 (020)-wx执行和写入0113 (021)r--读1004 (400)r-x读取和执行1015 (401)rw-读和写1106 (420)rwx读取、写入和执行1117 (421)通用权限值速查表实际运维中最常用的一组权限组合命令符号表示含义400r--------仅所有者可读500r-x------避免改变600rw-------可由用户更改644rw-r--r--由用户读取和更改660rw-rw----可由用户和组更改700rwx------只有用户具有完全访问权限755rwxr-xr-x只能由用户更改775rwxrwxr-x群组共享模式777rwxrwxrwx每个人都可以做任何事其中644与755是最常用的两档普通文本/配置文件用644可执行文件与目录用755而777应尽量避免——它意味着任何用户都可修改存在安全隐患。符号模式与操作符符号模式通过操作符精确控制权限的增删操作符说明添加权限-删除权限设置权限覆盖原有值常用符号模式示例# 拒绝所有人的执行权限 $ chmod a-x chmodExampleFile.txt # 向所有人授予读取权限 $ chmod ar chmodExampleFile.txt # 使文件可由组和其他人读写 $ chmod gorw chmodExampleFile.txt # 使用户/所有者可执行 shell 脚本 $ chmod ux chmodExampleScript.sh # 允许每个人读取、写入和执行文件并打开设置的 group-ID $ chmod rwx,gs chmodExampleScript.sh最后一个示例涉及特殊权限位gssetgid对可执行文件设置后运行时会以文件所属组的身份执行对目录设置后新建文件的属组会继承目录的属组常用于团队共享目录。删除权限删除赋予文件的读写权限$ chmod o-rw example.txt为 example.txt 删除组的读/执行权限$ chmod g-rx example.txt从组中删除读/执行权限同时向 others 添加读/执行权限$ chmod g-rx, orx example.txt如果想一次性删除组和其他人的所有权限用go更为简洁$ chmod go example.txt可执行文件为脚本添加执行权限的三种常见写法$ chmod x ~/example.py $ chmod ux ~/example.py $ chmod ax ~/example.py其中chmod x未指定对象等价于chmod ax会同时为所有者、组和其他人添加执行权限若只想让自己执行用chmod ux更保守。数字模式同一种权限的三种写法数字模式是三位八进制数的组合每一位对应 u/g/o。下面的例子展示同一权限如何用不同方式表达chmod 600所有者读写$ chmod 600 example.txt $ chmod urw,g,o example.txt $ chmod arwx,u-x,g-rwx,o-rwx example.txtchmod 664所有者与组读写其他人只读$ chmod 664 example.txt $ chmod urw,grw,or example.txt $ chmod arwx,u-x,g-x,o-wx example.txtchmod 777所有人完全访问$ chmod 777 example.txt $ chmod urwx,grwx,orwx example.txt $ chmod arwx example.txtchmod 754$ chmod 754 foo.sh $ chmod urwx,grx,or foo.sh754 所有者7 (rwx) 组5 (r-x) 其他人4 (r--)是介于755与700之间的常用折中档位。实战SSH 密钥权限SSH 对密钥文件权限极为敏感权限过宽会直接导致Permissions too open错误。标准做法如下$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/id_rsa $ chmod 600 ~/.ssh/id_rsa.pub $ chmod 400 /path/to/access_key.pem要点~/.ssh目录设为700仅所有者可访问私钥id_rsa、云厂商的.pem设为600或400绝不能对组/其他人开放读取公钥id_rsa.pub与authorized_keys也建议收紧为600。本仓库的 docs/ssh.md 在讲解「通过 pem 文件连接」时同样引用了 docs/chmod.md 的「SSH 权限」一节可见该权限清单是 SSH 场景的通用最佳实践。实战Web 服务器目录权限部署 Web 站点时文件与目录的权限分工明确文件 644、目录 755并确保写入目录对 Web 进程可写$ chmod -R 644 /var/www/html/ $ chmod 644 .htaccess $ chmod 644 robots.txt $ chmod 755 /var/www/uploads/ $ find /var/www/html -type d -exec chmod 755 {} \;其中find ... -type d -exec chmod 755 {} \;会遍历/var/www/html下所有目录-type d并统一设置755{}是find对每个匹配路径的占位符\;表示-exec命令的结束。该用法与 docs/find.md 中「查找和删除/查找和替换」等-exec示例属于同一套组合技巧。实战批量更改目录结构当整个目录树中文件与目录权限混杂时用-R一刀切往往不够精细推荐分两条命令分别处理目录和文件$ chmod -R 644 /your_path $ find /path -type d -exec chmod 755 {} \; $ find /path -type f -exec chmod 644 {} \;即目录统一755需要x才能进入普通文件统一644。这是发布静态站点、同步代码目录前最常见的权限整理手法。Chmod 生成器数字与符号的自动换算原文档还内置了一个交互式「Chmod 生成器」docs/chmod.md通过勾选 9 个复选框u/g/o × r/w/x或直接输入三位八进制数字、九位符号串即可实时互相换算。其前端实现的核心逻辑如下输入校验用正则约束输入格式——数字输入必须匹配/^[0-7]{3}$/三位 07符号输入必须匹配/^([r\-]{1}[w\-]{1}[x\-]{1}){3}$/连续三组 r/w/x 组合复选框 → 八进制按r4, w2, x1的映射对每组分别累加。复选框编号 1/4/7 对应读、2/5/8 对应写、3/6/9 对应执行见源码注释r-4-1 r-4-4 r-4-7 / w-2-2 w-2-5 w-2-8 / x-1-3 x-1-6 x-1-9通过check_to_octal_and_text()将单个复选框换算为perm_num与perm_let八进制 → 符号octal_to_check_and_txt()按class_num0Owner、1Group、2Public计算偏移量offset class_num * 3把1~7分别映射为--x / -w- / -wx / r-- / r-x / rw- / rwx并同步勾选对应复选框符号 → 八进制text_to_check_and_octal()逐字符识别r/w/x并累加数值r4, w2, x1。这段 JS 恰好印证了前文的数值模型数字模式与符号模式是同一权限体系的两种等价表达理解映射关系后即使不依赖生成器也能心算任意权限。关联速查与延伸阅读docs/chmod.md本篇正文对应的原始备忘清单包含生成器交互组件docs/chown.md修改文件所有者与属组常与chmod配合使用如chown -R alice:staff后设置组权限docs/ssh.mdSSH 连接与密钥管理内含对 chmod SSH 权限的引用docs/find.mdfind ... -exec chmod批量处理目录/文件的组合用法docs/linux-command.mdLinux 常用命令速查总表chmod 属于其中「命令」分类见 README.md 的 Command 板块图标资源 assets/chmod.svg本仓库中 chmod 对应的可视化图标素材。使用前提说明以上命令基于 GNU coreutils 的 chmod 实现主流 Linux 发行版默认行为在 macOS/BSD 系统上绝大多数选项兼容但部分细节如符号链接处理存在差异跨平台脚本建议以目标系统man chmod为准。修改系统级文件或他人文件时通常需要sudo权限。【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考