如何以管理员权限运行命令

时间:2019-05-29 13:37:32

标签: swift macos command-line

我想实现一个简单的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

我只想以某种方式提供用户密码或要求提供本机密码? 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,将代码保持原样,并且命令应采用以下格式:

"osascript -e 'do shell script \"my command\" with administrator privileges'"

我以前尝试过使用它,但是如上所述,我不得不加上引号和单引号!

随之出现苹果的本地警报。