chmod是linux中修改文件或目录读写权限的核心命令,权限控制围绕所有者u、所属组g、其他用户o三类主体及读r、写w、执行x三种操作展开;对文件,r表示查看内容、w表示修改覆盖;对目录,r表示列出文件、w表示创建删除文件(删文件依赖目录w权限而非文件自身w权限);x权限影响访问路径,无x则无法cd进入或访问其下文件;符号模式如u+w、g-rw等适合微调,数字模式如644、755等用八进制精确设定;递归设置需谨慎使用-r,避免误用777。

在 Linux 系统中,chmod 是修改文件或目录读写权限的核心命令。关键不是“能不能改”,而是“改给谁、改成什么样”。权限控制围绕三类用户(所有者 u、所属组 g、其他用户 o)和三种操作(读 r、写 w、执行 x)展开,读写权限的调整必须明确主体和动作。
读写权限的基本含义要分清
对普通文件:读(r)表示能查看内容,写(w)表示能修改、覆盖或清空内容;对目录:读(r)表示能列出其中的文件(如 ls),写(w)表示能在该目录中创建、删除、重命名文件——注意,**删文件实际依赖的是目录的写权限,而不是文件自身的写权限**。
执行(x)权限不参与读写控制,但影响访问路径:没有目录的 x 权限,即使有 r 权限也无法进入(cd 失败)或访问其下的文件。
用符号模式快速增减读写权限
符号模式直观灵活,适合日常微调:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- chmod u+w file.txt —— 给所有者添加写权限
- chmod g-rw dir/ —— 从所属组移除读和写权限
- chmod o-w config.conf —— 去掉其他用户的写权限(常用于保护配置文件)
- chmod a=r file.txt —— 所有人仅保留读权限(覆盖原有全部权限)
- chmod ug+rw,o=r data/ —— 所有者和所属组可读可写,其他用户只读
用数字模式精确设定读写组合
数字模式用三位八进制数表示:第一位是所有者,第二位是所属组,第三位是其他用户。每位数字是 r/w/x 权限值之和(r=4, w=2, x=1):
- 644 → rw-r--r--:所有者可读写,组和其他人只读(常见于文本文件)
- 600 → rw-------:仅所有者可读写(适合私密文件,如 SSH 密钥)
- 755 → rwxr-xr-x:所有者全权,组和其他人可读可执行(常见于可执行脚本或公开目录)
- 775 → rwxrwxr-x:所有者和组可读写执行,其他人只读执行(协作开发目录常用)
例如:chmod 600 ~/.ssh/id_rsa 是保护私钥的标准操作。
对目录递归设置读写权限需谨慎
给整个目录树设权限,要用 -R 选项,但要注意它会同时作用于目录和其中所有文件:
- chmod -R 755 myproject/:让目录可进入、文件可执行(适合网站根目录)
- chmod -R 644 myproject/*.txt:只批量修改匹配的文件(避免误伤目录)
- 慎用 chmod -R 777:它赋予所有人完全控制权,是严重安全隐患,生产环境应杜绝
若只想改目录本身(不含内容),去掉 -R;若想让新文件自动继承组写权限,配合 chmod g+s dirname 设置 SGID 位更稳妥。










