必须通过访达设基础权限并递归应用,再用终端执行chmod +a添加deny delete_child,delete规则,最后关闭访客共享并清理残留acl,才能实现指定用户读写、禁止删除、防绕过。

要让Mac上某个文件夹只允许特定用户读写、禁止其他人删除其中内容、同时防止本地绕过网络权限操作,必须跳过系统共享界面的简化设置,直接在文件系统层配置ACL规则。
用访达简介面板设基础权限并递归应用
这一步是后续精细控制的前提,不做则终端ACL可能被继承策略覆盖或失效。
在访达中右键目标文件夹 → “显示简介” → 滑至底部“共享与权限”区域。
点击右下角锁形图标,输入管理员密码解锁。
在用户列表中,先将【everyone】和【staff】的权限全部改为“无访问权限”——不改掉它们,后续添加的精确规则会被忽略。
点击“+”号 → 在弹出窗口中选择需要授权的具体用户(如“designer”)→ 设为“读取与写入” → 点击齿轮图标 → 选“应用到嵌入项目”,确保子文件夹和文件全部继承该权限。
用终端命令添加禁止删除的ACL规则
图形界面无法实现“可新建可修改但不可删除”,必须用chmod +a手动注入deny规则。
打开“终端”,执行以下命令(将username替换成实际用户名,/路径/到/文件夹替换成绝对路径):
chmod +a "username deny delete_child,delete" "/路径/到/文件夹"
这条命令会阻止该用户删除文件夹内任何已有项目,但不影响其新建、重命名、编辑或覆盖文件——这是协作场景下的关键安全边界。
验证是否生效:运行ls -le "/路径/到/文件夹",输出中应出现类似0: user:username deny delete_child,delete的条目,且没有其他冲突的allow delete规则。
若需对所有用户统一禁删(包括所有者),可在同一命令中把username换成group:everyone,但【这会同时禁用你自己的删除权限,不可逆】。
关闭访客访问并禁用泛化共享权限
方法一:系统设置中彻底切断入口
进入“系统设置 → 通用 → 共享” → 关闭顶部“共享”开关 → 再次开启 → 勾选“文件共享” → 点击右下角“选项…” → 取消勾选“允许访客访问” → 确保“使用 SMB 来共享文件和文件夹”已启用 → 在下方Windows文件共享列表中,只勾选已授权的账户(如designer),并确认其密码正确。
方法二:终端强制清理残留
若曾开启过访客共享,系统可能遗留隐式ACL条目。运行:chmod -a "group:everyone allow list,readattr,readextattr,readsecurity" "/路径/到/文件夹",逐条清除未授权的宽泛读取权限。
这一步做完后,访客和未明确添加的账户将完全无法看到该文件夹,连连接请求都会被SMB协议层拒绝。











