我想实现一个简单的Mac应用程序,该应用程序将以管理员权限运行一些命令。 我所做的是下面的代码
func execute(command: String) -> String {
var arguments:[String] = []
arguments.append("-c")
arguments.append(command)
let task = Process()
task.launchPath = "/bin/sh"
task.arguments = arguments
let pipe = Pipe()
task.standardOutput = pipe
task.standardError = pipe
task.launch()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
return String(data: data, encoding: .utf8)!
}
这适用于不带sudo
的命令,当我在命令开头放置sudo时,出现此错误/bin/sh: /usr/bin/sudo: Operation not permitted
我只想以某种方式提供用户密码或要求提供本机密码? 有什么想法吗?
答案 0 :(得分:0)
我找到了解决方案,将代码保持原样,并且命令应采用以下格式:
"osascript -e 'do shell script \"my command\" with administrator privileges'"
我以前尝试过使用它,但是如上所述,我不得不加上引号和单引号!
随之出现苹果的本地警报。