macOS系统权限保护需账户角色、进程行为、数据访问、网络边界四层协同设计。核心是权限明确归属、最小必要、可审计可撤销:账户分层管理,禁用root;文件与进程用POSIX+ACL+TCC+Sandbox四重控制;共享服务逐项清点关闭;通过Fort等工具实现基线审计与自动加固。
macos 系统层面的权限保护不能靠单点开关凑数,得从账户角色、进程行为、数据访问和网络边界四层协同设计。核心不是“锁得更死”,而是让每项权限都有明确归属、最小必要、可审计且可撤销。
账户权限分层:用对账户类型,比调权限更重要
管理员账户不该是日常登录入口。标准用户应为默认操作身份,仅在安装软件、修改系统设置等明确场景下临时提权(通过密码授权弹窗)。首次创建的账户默认为管理员,但建议立即新建一个标准用户作为主力工作账户,并将原账户设为纯管理用途。
- 禁用 root 用户:终端执行 sudo dsenableroot -d 彻底关闭 root 登录(非必要不启用)
- 访客账户慎用:若需临时接入,选择“仅限共享”类型,它无法保存数据、无法安装软件、无法访问其他用户目录
- 企业环境优先绑定 AD 或 Jamf:通过目录实用工具或 MDM 将域群组映射为本地管理员,避免本地账户密码硬编码或共享
文件与进程权限:控制谁能在哪执行什么
POSIX 权限 + ACL + TCC + Sandbox 四重机制并存,但彼此不自动同步。例如,一个应用获得“全盘访问”TCC 授权,并不代表它能写入 /Library;同样,chmod 755 的脚本若未签名,Gatekeeper 仍会拦截运行。
- 限制敏感路径写入:用 chmod 700 /Library/LaunchDaemons 和 chown root:wheel 防止普通用户注入启动项
- 精细 ACL 控制:对协作目录(如 ~/Projects)使用 chmod +a "group:dev allow list,read,write,add_file,add_subdirectory",而非开放“所有人”
- TCC 权限按需清理:定期检查“隐私与安全性 → 文件和文件夹”,右键移除已卸载但残留授权的应用条目
网络与服务权限:关掉不用的,加固正在用的
共享服务是 macOS 最常被忽视的攻击面。SSH、SMB、远程管理一旦开启,就成为直接面向网络的 root 级入口,其风险远高于浏览器漏洞。
- 逐项清点“系统设置 → 共享”:关闭所有未明确业务需求的服务;即使临时启用,用完立即关闭
- SSH 必须禁用密码登录:只保留公钥认证,且密钥需带 passphrase;配置 /etc/ssh/sshd_config 中 PermitRootLogin no 和 AllowUsers 白名单
- SMB 共享禁用来宾账户:在“文件共享 → 选项”中取消“允许客人存储文件”,并确保每个共享用户单独授权,不勾选“所有人”
可观测性与自动化加固:让权限策略可验证、可回滚
静态配置容易过期或冲突,真正健壮的权限策略必须自带检测与修复能力。手动检查几十项设置不可持续,需依赖工具链建立闭环。
- 用 Fort 工具做基线审计:运行 fort --audit 扫描 CIS/NIST 合规项,再用 fort --fix --yes 自动修正弱密码策略、防火墙状态、FileVault 加密等关键项
- 监控异常权限变更:配合 osquery 或内置 log stream,监听 privacyd、tccd 和 launchd 日志,捕获未经授权的 TCC 请求或 LaunchAgent 注册
- 沙盒化高风险工具:对 AI Agent、脚本引擎等动态执行环境,用 sandbox-exec -f profile.sb /path/to/tool 限定其可访问路径与 syscall 范围


















