需通过访达简介禁用泛化权限、终端添加allow/deny ACL规则、系统共享分配角色权限、启用SMB绑定强密码四步协同实现:先在简介中将everyone/staff设为无访问权并递归应用;再用chmod +a为指定用户添加write,append,read,execute及deny delete_child规则;接着在共享设置中仅保留授权用户并分配“只读”“可写入但不可删除”等角色权限;最后启用SMB并为每个勾选用户绑定当前系统密码。

要让Mac上某个文件夹只对指定用户可读写、禁止他人删除内容、且本地登录和网络访问权限一致,不能只点几下共享设置就完事——系统共享界面的权限只是表层开关,真正起效的是文件系统级ACL与POSIX权限的组合控制。
先禁用泛化权限并锁定基础所有权
打开访达,右键目标文件夹 → “显示简介” → 滑到最底部“共享与权限”区域。
点击右下角锁形图标,输入管理员密码解锁。
在用户列表中,逐个选中“everyone”“staff”等宽泛条目,将其权限设为“无访问权限”;【这一步必须做,否则后续ACL规则可能被覆盖】
点击齿轮图标 → “显示所有用户”,确认当前登录用户已列在其中,且权限为“读取与写入”。
勾选下方“应用到所包含的项目”,让权限递归生效——不点这个,子文件夹和文件仍保持旧权限。
用终端添加精细ACL规则(禁删但可写)
这一步解决图形界面做不到的事:允许用户新建、修改、重命名文件,但明确禁止删除操作。
打开“终端”,执行以下命令(将/路径/到/共享文件夹替换为实际路径,username替换为目标用户名):
chmod +a "username allow write,append,read,execute,file_inherit,directory_inherit" "/路径/到/共享文件夹"
再加一条deny规则,阻止该用户删除文件或子文件夹:
chmod +a "username deny delete_child" "/路径/到/共享文件夹"
验证是否生效:运行ls -le "/路径/到/共享文件夹",输出中应同时出现allow和deny条目,且不含delete或delete_child以外的deny项。
同步配置系统共享服务权限
进入“系统设置 → 通用 → 共享”,开启“文件共享”。
在“共享文件夹”下方点“+”,添加刚才设置好ACL的同一文件夹。
在右侧“用户”列表中,仅保留需要访问的账户(如designer、admin),移除其他所有条目。
为每个保留用户单独设定权限:
→ 只需查看资料的,选“只读”;
→ 需协作编辑但不许删历史文件的,选“可写入但不可删除”;
→ 管理员若需完整控制,选“读取与写入”,但注意这会绕过前面设置的deny delete_child规则。
取消勾选页面底部的“允许访客访问”——访客权限无法绑定ACL,启用即失效。
启用SMB并绑定强密码账户
在“文件共享”页面右下角点“选项…” → 勾选“使用 SMB 来共享文件夹”。
在“Windows 文件共享”列表中,只为已授权的用户打勾(不要勾选“访客”)。
为每个勾选用户输入其当前系统登录密码;【空密码或弱密码会导致SMB连接被拒绝,且不会提示具体原因】
关闭窗口时确认保存,SMB服务立即重新加载配置。
验证本地与网络访问一致性
方法一:在本机用另一用户登录(Fast User Switching),尝试进入该文件夹 → 新建文本文件 → 尝试拖拽删除 → 应允许新建,但删除时报“权限不足”。
方法二:从另一台设备(如Windows电脑)用文件资源管理器访问smb://192.168.x.x/共享名 → 用对应账户密码登录 → 执行相同操作,行为应与本地一致。
若网络端能删而本地不能删,说明SMB未正确继承ACL,需检查终端中ls -le输出是否含group:everyone deny delete_child类全局抑制规则。

















