我一直在尝试添加一个自定义脚本,以便在登录时输入 FileVault 密码后运行,该脚本将检查它是否是“特殊密码”,该脚本将在正常登录后在后台运行脚本(例如后台 SSD 删除) 。我希望以同样的方式达到最终结果TrueCrypt 允许您在配置初始加密时执行以下操作:
现在它会提示您输入外部卷密码。这是您在胁迫下可能不得不透露的密码。
到目前为止,我还没有找到可以与 OS X 一起使用的 TrueCrypt 替代方案(维护或其他方式),因此我尝试通过添加脚本/etc/passwd
并使用目录实用程序以修改登录脚本。
到目前为止,我一直无法找到这样的方法来完成此任务,尽管我在目录实用程序中找到了一个可能与用户密码相关的字段(如下图所示),但我无法找到一种方法将其链接到脚本或添加任何额外的身份验证层。
我知道您可以使用/etc/passwd
上面提到的脚本在普通 UNIX 系统上执行此操作这里。下面是一个流程图,直观地展示了我正在尝试做的事情,以防我解释得不好。
是否有可能在 OS X 系统上执行此操作?如果可以,如何执行?
答案1
FileVault(以及一般的 OS X)不会检查/etc/passwd
,因此使用它作为触发器的脚本将无法工作。
FileVault 使用 DirectoryServices,因此对输入内容的任何拦截都必须通过 Apple 的 OpenDirectory 实现(请参阅 参考资料DirectoryService
)。
如何做到这一点超出了我的能力范围,但是继续阅读https://developer.apple.com/library/mac/documentation/Networking/Conceptual/Open_Directory/openDirectoryConcepts/openDirectoryConcepts.html可能会有所启发。我认为 Apple 有某种方法可以通过 Cocoa/Obj C/Swift 访问 FileVault,您可以利用它。
当然,这一切的用处都取决于这样的假设:操作系统的封闭部分还没有后门,以至于有人甚至不会费心要求您解密文件系统。
希望这至少能为您指明一个有用的方向!