【发布时间】:2018-01-13 01:07:24
【问题描述】:
我正在使用 Xcode 创建一个应用程序,我需要使用用户密码来执行 root 任务。我的问题是,如果没有创建一个使用像shell("echo",prompt("Enter Password"),"| sudo -S do_root_thing") 这样非常不安全的sudo 的管道(shell 和提示符是预定义的)。我知道有些程序会显示如下警告消息:
有没有一种安全的方法来做这样的事情?
【问题讨论】:
我正在使用 Xcode 创建一个应用程序,我需要使用用户密码来执行 root 任务。我的问题是,如果没有创建一个使用像shell("echo",prompt("Enter Password"),"| sudo -S do_root_thing") 这样非常不安全的sudo 的管道(shell 和提示符是预定义的)。我知道有些程序会显示如下警告消息:
有没有一种安全的方法来做这样的事情?
【问题讨论】:
您应该创建一个特权帮助工具,使用SMJobBless 安装它,并通过 XPC 与其通信。
帮助您入门的一个很好的例子是EvenBetterAuthorizationSample.
如果您想要一个更简单的基于 Swift 的解决方案,我已经创建了一个名为 CSAuthSample 的库,它试图尽可能易于使用,同时还提供了一些附加功能。 免责声明:我是这个库的作者。
【讨论】: