【问题标题】:is it possible to maintain an authorization reference indefinately (cocoa)是否可以无限期地维护授权参考(可可)
【发布时间】:2026-02-13 02:05:01
【问题描述】:

我正在使用 AuthorizationExecuteWithPrivileges 以提升的权限运行 shell 脚本。一段时间后,我需要再次重新授权才能使其正常工作。有没有办法在授权上设置自定义(非常长)超时,以便我只能获得一次应用程序的密码对话框,并且能够在没有任何提示的情况下执行脚本,直到我关闭应用程序?

【问题讨论】:

    标签: objective-c cocoa authorization


    【解决方案1】:

    授权到期是为了提高安全性。所以我觉得尝试颠覆它不好。

    也就是说,一种方法是首先将您的脚本转换为经过良好审核的小型 C 程序,然后使用以标准方式获得的授权将 setuid 位添加到二进制文件中。 (同样,作为一项安全功能,大多数 UNIX 禁止 shell 脚本使用 setuid 位,因为它们太危险了。)

    然后,即使您关闭应用程序并重新启动它,您甚至都无需进行身份验证。

    【讨论】: