阿喵前言
对于常常在终端(Terminal)里打交道的开发者和极客朋友们来说,sudo 命令绝对是使用频率最高的操作之一。但每次提权都要老老实实敲一遍系统密码,或者伸长手指去摸键盘右上角的 Touch ID,确实少了一丝极客该有的优雅。
今天阿喵给童鞋们安利一个硬核又好玩的 macOS 原生菜单栏小工具——Mugshot。它能让你的 Mac 瞬间拥有像 iPhone 一样的“人脸解锁”体验:只需在终端输入 sudo,摄像头扫一眼你的脸,权限瞬间解锁!
项目介绍
Mugshot 是一款原生 macOS 菜单栏应用,旨在为 Mac 的 sudo 终端提权引入本地人脸识别解锁功能。
它的诞生源于一个有趣的周末 Hackathon 项目,如今已演变成一款成熟、小巧且功能完备的开箱即用软件。应用自带引导式人脸注册、设置面板,并在每次触发提权时提供面容、Touch ID 与密码等多种验证方式。最重要的是,它经过了 Apple 官方的签名和公证,并且所有图像与人脸特征提取计算全都在本地运行,绝无任何数据离开你的 Mac。
⚠️ 阿喵的安全提醒:
作者明确声明 Mugshot 是一个偏极客玩乐性质的趣味项目,而非高安全级的防伪产品。普通 RGB 摄像头可能存在被高清打印照片欺骗的风险。不过它的 PAM 规则采用了“充分条件(Sufficient)”机制,密码永远作为底层备用方案,绝不会因为卸载应用或识别失败而导致你被锁在系统外。
截图演示


功能特色
- 真正的刷脸提权:终端输入
sudo自动唤醒摄像头,人脸比对成功秒级通过,解锁过程一气呵成。 - 100% 本地隐私防护:利用本地 YuNet 与 SFace 算法进行人脸检测与特征值映射,嵌入数据仅加密保存在本地
~/Library/Application Support/faceid中,零云端依赖,绝对私密。 - 原生签名与公证:完全遵循 macOS 规范,由 Apple 签名公证,首次打开无安全警告风险,界面纯粹优雅。
- 无痛备用机制:如果摄像头没扫到或者匹配失败,系统会自动无缝回退到原生的 Touch ID 或键盘密码输入,保障使用稳定性。
使用教程
步骤 1:下载与安装
下载软件的 .dmg 安装包,将 Mugshot 图标直接拖入“应用程序”文件夹中。
步骤 2:录入你的面部特征
- 从应用程序中启动 Mugshot,系统顶部菜单栏会出现一个可爱的小脸部图标。
- 点击图标,选择 Set Up My Face(设置我的脸)。
- 允许软件调用 Mac 摄像头的权限,跟随引导提示眨眨眼、扫一扫,几秒钟即可完成本地人脸特征注册。
步骤 3:为 sudo 启用人脸解锁
打开菜单中的“设置”,勾选 Enable Face ID for sudo(为 sudo 启用 Face ID)。因为现代 macOS 系统对 sudo 提权文件的修改极为严格,你需要完成以下两次一次性授权:
- 允许后台辅助程序:在系统弹出提示时,前往“系统设置 -> 通用 -> 登录项”,将 Mugshot 的后台辅助项目设为开启状态。
- 授予完全磁盘访问权限:macOS 将 sudo PAM 配置文件置于系统保护下,需要在“系统设置 -> 隐私与安全性 -> 完全磁盘访问权限”列表中,勾选启用 MugshotHelper。
- 返回软件重新开启开关即可。
步骤 4:体验刷脸提权
打开终端(Terminal),运行任意需要管理员权限的命令(如强制刷新测试):
Bash
sudo -k && sudo true
此时屏幕会短暂弹出识别面板,摄像头捕捉到你的面孔后瞬间完成 sudo 提权!
工作原理
由 root 权限启动的 sudo 进程在 macOS 底层由于 TCC 隐私保护机制,默认是无法直接访问摄像头的。
Mugshot 巧用了一个小型 PAM 模块,当你在终端触发 sudo 时,PAM 会把请求传递给一个运行在当前用户会话中的守护进程。该进程接管摄像头,使用 YuNet 快速定位人脸,再通过 SFace 算法将你的面部特征转换为本地向量模型,并与之前注册的特征进行对比。比对成功即输出 PAM 验证通过,整个过程高效且丝滑。
项目获取
- Mugshot 官方 GitHub 开源仓库与下载:https://github.com/Lorenzo-Coslado/macos-faceid



设置过程稍微有点复杂,需要给完全磁盘访问权限,但成功后体验很棒,识别速度很快。阿喵的教程很贴心!
这个太方便了!作为开发者,每天要 sudo 无数次,现在终于可以刷脸了,而且完全本地处理,隐私有保障。