Как запустить команду с правами администратора - PullRequest
0 голосов
/ 29 мая 2019

Я хочу реализовать простое приложение для 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 голосов
/ 30 мая 2019

Я нашел решение, оставьте код как есть, и команда должна быть в следующем формате:

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

Я пытался использовать его раньше, но мне пришлось ставить кавычки и одинарные кавычки, как указано выше!

При этом появляется нативное предупреждение о яблоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...