如何从Swift中以root权限执行shell命令

5

我是新手,正在学习Swift,并尝试创建一个非常简单的应用程序,当您按下圆形按钮时执行一个root shell命令。

我在网上找到了以下链接,它解释了如何在Swift中使用用户权限执行shell命令,但它没有说明如何使用root特权进行操作:http://practicalswift.com/2014/06/25/how-to-execute-shell-commands-from-swift/

我该怎么办?


你知道 sudo 吗?但是可能 swift 不允许使用 sudo 命令。(我没有直接使用 Swift 的经验,所以结果可能因人而异)祝好运。 - shellter
1
好问题,答案可能会比较复杂。如果我必须回答的话,我的解决方案要么使用某种形式的NSTask,要么更好(也更现代),使用利用SMJobBless的工具,它确实有Swift接口。 - Michael Dautermann
我正在考虑使用pipe.fileHandleForWriting.writeData来发送密码到sudo,但是我没有找到很多相关的文档。 - merch
1个回答

6

快速而粗略的方法:

NSAppleScript(source: "do shell script \"sudo whatever\" with administrator " +
    "privileges")!.executeAndReturnError(nil)

或者考虑使用特权助手工具,但是预计这将更加复杂。


1
好的建议,但这并没有使用NSTask,而且可能有一个很好的理由为什么要使用NSTask...或者至少类似的东西。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接