【发布时间】:2026-02-13 02:05:01
【问题描述】:
我正在使用 AuthorizationExecuteWithPrivileges 以提升的权限运行 shell 脚本。一段时间后,我需要再次重新授权才能使其正常工作。有没有办法在授权上设置自定义(非常长)超时,以便我只能获得一次应用程序的密码对话框,并且能够在没有任何提示的情况下执行脚本,直到我关闭应用程序?
【问题讨论】:
标签: objective-c cocoa authorization
我正在使用 AuthorizationExecuteWithPrivileges 以提升的权限运行 shell 脚本。一段时间后,我需要再次重新授权才能使其正常工作。有没有办法在授权上设置自定义(非常长)超时,以便我只能获得一次应用程序的密码对话框,并且能够在没有任何提示的情况下执行脚本,直到我关闭应用程序?
【问题讨论】:
标签: objective-c cocoa authorization
授权到期是为了提高安全性。所以我觉得尝试颠覆它不好。
也就是说,一种方法是首先将您的脚本转换为经过良好审核的小型 C 程序,然后使用以标准方式获得的授权将 setuid 位添加到二进制文件中。 (同样,作为一项安全功能,大多数 UNIX 禁止 shell 脚本使用 setuid 位,因为它们太危险了。)
然后,即使您关闭应用程序并重新启动它,您甚至都无需进行身份验证。
【讨论】: