在Mac上需依次启用文件共享、为不同用户分配“只读”“读与写”“可写入但不可删除”权限、通过访达简介面板设置ACL禁用删除操作、必要时用chmod +a命令配置高级ACL规则。

在Mac上为同一文件夹向不同用户分配差异化的访问权限,是团队协作中保障数据安全与操作自由的关键动作。比如设计师只能查看设计稿、开发人员可修改但不能删源码、项目经理能新增文件却无法删除他人成果——这些需求必须通过系统级权限组合实现,单靠“读写”二选一远远不够。
启用系统级文件共享服务
这是多用户权限生效的前提,不开启共享,后续所有ACL或chmod设置都仅对本机当前账户有效,其他用户根本看不到该文件夹。
点击屏幕左上角苹果图标→选择“系统设置”→在边栏依次点击“通用”→“共享”→勾选“文件共享”复选框。
在“共享文件夹”区域下方点击“+”按钮→浏览并选中目标文件夹(例如/Users/Shared/DesignAssets)→点击“添加”。
若跳过此步直接改权限,其他用户登录后连该路径都找不到,更别说访问控制了。
为每位用户分配独立操作权限
系统共享设置页提供的权限粒度最实用:只读、读与写、可写入但不可删除——三者逻辑互斥且不可叠加,必须逐个指定。
在“文件共享”设置页滚动至“用户”部分→点击右下角“+”按钮→在弹出窗口中依次添加已有本地账户,如“designer”、“developer”、“pm”。
回到用户列表,在“designer”右侧权限下拉菜单中选择【只读】;在“developer”右侧选择【读与写】;在“pm”右侧选择【可写入但不可删除】。
这个“可写入但不可删除”权限会自动禁用子项的删除和重命名操作,但允许新建、编辑、保存——它不是chmod能模拟出来的,必须通过共享服务界面设定才真正生效。
用访达简介面板强化文件夹自身ACL
系统共享设置只管“网络可见性”和“基础操作边界”,但若有人通过本地终端或访达直接访问该路径,仍可能绕过限制。此时需在文件夹本体上叠加ACL规则,堵住本地直连漏洞。
在访达中右键点击已加入共享列表的目标文件夹→选择“显示简介”。
滚动到底部“共享与权限”区域→点击右下角锁形图标→输入管理员密码解锁。
点击“+”按钮→在弹出窗口中选择“高级”→点击“用户”或“群组”→输入用户名(如developer)→点击“好”。
在新添加的用户条目右侧下拉菜单中,不要选“读与写”,而要选“自定义”→点击右侧“详细信息”按钮→勾选“读取属性”“读取扩展属性”“列出内容”“搜索”“读取数据”“写入数据”“追加数据”,但【务必取消勾选‘删除’和‘删除子目录及文件’】。
这一步补的是共享服务没覆盖的底层行为:即使developer用sudo su切换身份,也无法rm -rf该文件夹下的任何东西。
用终端命令配置高级ACL规则(可选)
方法一和方法二适用于大多数场景,但如果需要批量部署、脚本化管理,或要为“staff”群组统一设限,则必须用终端指令精确注入ACL条目。
打开终端→执行:chmod +a "group:staff:allow list,search,readattr,readextattr,readsecurity,writeattr,writeextattr,add_file,add_subdirectory,delete_child" /Users/Shared/DesignAssets
这条命令让staff群组成员可在该文件夹内新建文件和子目录、修改属性、读取元数据,但不赋予删除父目录或重命名自身的能力。
若之后发现某用户意外获得过高权限,运行ls -le /Users/Shared/DesignAssets可完整列出所有ACL规则,再用chmod -E /路径清除全部扩展权限从头配置。

















