必须启用系统原生访客用户并配合屏幕使用时间“仅允许这些app”限制,才能实现无密码登录下仅运行指定软件;需依次开启访客账户、设置app限额为唯一允许应用、禁用聚焦搜索等绕过路径,并可选执行终端命令强化锁定。

当你需要把Mac借给他人临时使用,又不希望对方接触你的数据、系统设置或任意软件,但又无法设置开机密码(比如设备已锁定在公共场合或演示场景),就必须让访客账户在无密码登录前提下,只打开一个指定软件(如 Safari 查资料、Keynote 做演示、或 Zoom 参会),其他所有应用全部不可见、不可启动。
启用并锁定访客账户基础环境
这一步是后续所有限制生效的前提,不启用原生访客,就不存在“无密码登录”这个入口,更谈不上软件级管控。
点击屏幕左上角苹果菜单 → “系统设置” → 左侧边栏滚动到底部,点击“用户与群组”。
点击右下角锁形图标,输入当前管理员密码解锁设置权限——【不输密码就无法勾选访客选项】。
在用户列表下方找到“访客用户”,勾选“允许访客用户登录到这台Mac”。
确认界面底部显示“访客用户的文件将在其退出后自动删除”,说明隔离机制已激活。
用屏幕使用时间强制限定仅一款软件可运行
这是实现“只许开一个App”的核心手段。macOS 的屏幕使用时间支持为访客单独设限,且能彻底隐藏未授权应用图标,连 Dock 和 Launchpad 都不会显示它们。
进入“系统设置” → “屏幕使用时间” → 点击“为访客设置使用时间限额”。
开启后,点击“App 限额” → 点击“添加新限额” → 在“应用类型”中选择“特定 App” → 点击“+”号 → 从列表中勾选你唯一允许的软件(例如 Safari)→ 点击“添加”。
将该限额的每日时长设为足够长(如 24 小时),确保不会中途中断;关键操作是:点击右侧“…”按钮 → 选择“仅允许这些 App”,此时系统会自动禁用所有其他应用,包括访达、终端、系统设置、钥匙串访问等——【一旦启用此模式,访客连 Finder 都打不开,桌面空白,Dock 只剩你允许的那个图标】。
关闭访客对系统功能的底层访问通道
即使只放行一个 App,访客仍可能通过快捷键(如 Command + Space)呼出聚焦搜索、Command + Tab 切换应用、或在 Safari 地址栏输入 file:/// 强行访问本地文件。必须堵住这些路径。
仍在“屏幕使用时间”设置中,进入“内容与隐私访问限制” → 开启该开关 → 进入“允许的 App”子项 → 明确关闭“访达”“终端”“系统设置”“钥匙串访问”“磁盘工具”“控制中心”——哪怕列表里没显示,也要手动检查是否被意外启用。
返回“内容与隐私访问限制”主页面 → 进入“允许的网站” → 选择“仅允许访问以下网站”,然后清空默认列表,只添加一个地址:https://your-allowed-app-launcher.com(如果你允许的是网页版应用);若允许的是本地 App(如 Keynote),则跳过此步,直接进入下一步。
前往“系统设置” → “键盘” → “快捷键” → “聚焦搜索” → 取消勾选“聚焦搜索”,防止访客用 Spotlight 启动任何程序。
阻止访客绕过限制的最后防线
方法一:禁用 Dock 自动显示与重置功能
打开“访达”,按下 Command + Shift + G,输入 /var/db/dslocal/nodes/Default/users/,回车 → 找到 guest 用户条目 → 右键“显示简介” → 在“共享与权限”中将访客对该文件夹的权限设为“无访问权限”。这能防止访客通过命令行重建 Dock 配置。
方法二:终端强制锁定启动行为(需管理员权限)
打开“终端”,执行:
sudo defaults write /Library/Preferences/com.apple.loginwindow HideLocalUsers -bool true
该命令隐藏所有本地账户头像,只保留访客入口,避免他人误点其他账户触发权限漏洞。
方法三:物理级防护(适用于演示/展台场景)
重启 Mac → 在登录界面长按电源键强制关机 → 再开机 → 听到启动声后立即按住 Command + R 进入恢复模式 → 打开“终端”,输入:
csrutil enable --without dtrace
再执行:
defaults write com.apple.loginwindow LoginwindowLaunchesOnlyAllowedApps -bool true
重启后,系统将严格只响应屏幕使用时间白名单中的 App 启动请求,其余一切调用均被内核拦截。











