我想实现一个简单的 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: 操作不允许
我只是想以某种方式提供用户的密码或询问 native 密码? 有什么想法吗?
最佳答案
我找到了解决方案,保持代码不变,命令应采用以下格式:
"osascript -e 'do shell script \"my command\" with administrator privileges'"
我之前尝试过使用它,但我必须像上面那样加上引号和单引号!
此时,苹果的 native 警报正在呈现。
关于swift - 如何以管理员权限运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361942/