在 macOS 系统中,文件和文件夹的权限管理是保障系统安全与稳定运行的重要环节,通过终端命令修改权限,用户可以精确控制谁能读取、写入或执行特定文件,尤其适用于处理共享资源、修复权限错误或开发调试场景,以下是 macOS 中修改权限的常用命令及详细操作指南,涵盖基础权限概念、命令语法、实战案例及注意事项。

权限基础:理解“读、写、执行”
在 macOS 中,每个文件和文件夹都关联三类用户身份:用户(Owner)(文件创建者)、组(Group)(同组用户)、其他用户(Others)(系统其他所有用户),每类身份的权限分为三种:
- 读(r):允许查看文件内容或列出文件夹内容(权限值
4); - 写(w):允许修改文件内容或删除/添加文件夹内文件(权限值
2); - 执行(x):允许运行文件(如脚本、程序)或进入文件夹(权限值
1)。
权限组合用数字表示,755 表示“用户拥有读写执行权限(7=4+2+1),组和其他用户拥有读执行权限(5=4+1)”。
核心命令:chmod、chown 与 chgrp
chmod:修改文件/文件夹权限
chmod 是最常用的权限修改命令,支持数字模式和符号模式两种语法。
数字模式语法:

chmod [权限数字] [文件/路径]
- 示例1:为当前用户赋予
test.txt的读写权限(6),组和其他用户只读权限(4):chmod 644 test.txt
- 示例2:为文件夹
Documents设置755权限(用户可读/写/进入,组和其他用户可读/进入):chmod 755 Documents/
- 注意:文件夹的
x(执行)权限等同于“进入权限”,若无此权限,用户无法打开文件夹。
符号模式语法(更灵活,适合针对特定用户类型修改):
chmod [用户类型][+/-/权限] [文件/路径]
- 用户类型:
u(用户)、g(组)、o(其他用户)、a(所有用户); - 操作符:(添加权限)、(移除权限)、(设置精确权限)。
- 示例1:为用户添加
test.sh的执行权限:chmod u+x test.sh
- 示例2:移除组和其他用户的写权限:
chmod go-w Documents/
chown:修改文件/文件夹所有者
当文件所有者错误或需要转移所有权时,使用 chown 命令:
chown [新所有者]:[新组] [文件/路径]
- 示例1:将
test.txt的所有者改为admin用户:chown admin test.txt
- 示例2:同时修改所有者和所属组为
staff(macOS 默认组):chown admin:staff Documents/
- 注意:普通用户只能修改自己拥有的文件,若需修改系统文件(如
/usr/下的内容),需使用sudo提升权限。
chgrp:修改文件所属组
若仅需调整文件所属组(不改变所有者),可使用 chgrp:
chgrp [新组] [文件/路径]
- 示例:将
project.log的所属组改为developers:chgrp developers project.log
实战案例:修复权限问题与共享设置
案例1:修复 macOS 系统权限错误
macOS 系统文件权限损坏可能导致应用异常,可通过以下命令修复(需管理员权限):
sudo diskutil repairPermissions /
此命令会检查并修复系统关键文件的权限,适用于 macOS Sierra 及更早版本(High Sierra 及后续版本已移除原生修复工具,需通过“磁盘工具”操作)。
案例2:设置文件夹共享权限
假设需要在局域网内共享 ShareFolder,允许同组用户读写,其他用户只读:
- 设置权限为
775(用户/组:读/写/进入,其他:读/进入):chmod 775 ShareFolder/
- 确保所属组为局域网共享组(如
everyone):sudo chgrp everyone ShareFolder/
- 开启系统共享功能(“系统设置”→“通用”→“共享”→“文件共享”)。
注意事项
- 权限过高的风险:避免为普通文件设置
777(所有用户可读/写/执行),可能导致数据泄露或恶意修改。 - 系统文件谨慎修改:修改
/System、/usr等系统目录权限可能导致系统不稳定,必要时提前备份。 - 递归修改:若需修改文件夹及其所有子内容的权限,使用
-R参数(如chmod -R 755 Documents/),但需注意递归修改可能覆盖子文件原有权限。
相关问答FAQs
Q1:提示“Permission denied”时如何解决?
A:通常是因为当前用户对目标文件无操作权限,可通过 sudo 提升权限(如 sudo chmod 644 test.txt),或先用 ls -l 查看文件所有者,用 chown 将所有权转给当前用户。
Q2:如何查看文件当前权限?
A:使用 ls -l 命令可列出文件的详细权限信息,
ls -l test.txt
输出结果 -rw-r--r-- 表示:文件类型为普通文件(),用户有读写权限(rw-),组和其他用户只有读权限(r--),对应数字权限为 644。
