Получить AuthorizationRef через терминал - PullRequest
0 голосов
/ 12 февраля 2020

Приложение запускает привилегированную XP C, очень похожую на SwiftPrivilegedHelper . Для запуска Привилегированных задач сначала мы получаем AuthorizationRef, используя AuthorizationCreate()

AuthorizationCreate(_ rights: UnsafePointer<AuthorizationRights>?, _ environment: UnsafePointer<AuthorizationEnvironment>?, _ flags: AuthorizationFlags, _ authorization: UnsafeMutablePointer<AuthorizationRef?>?) -> OSStatus

, который запускает уведомление об аутентификации, где нам нужно ввести имя пользователя и пароль, и возвращает AuthorizationRef. После получения AuthorizationRef мы передать те же AuthorizationRef в XP C при запуске XP C через SMJobBless()

SMJobBless(_ domain: CFString!, _ executableLabel: CFString, _ auth: AuthorizationRef!, _ outError: UnsafeMutablePointer<Unmanaged<CFError>?>!) -> Bool

XP C используется для запуска привилегированных задач. Теперь я хочу запустить свое приложение в беззвучном режиме без интерфейса, используя терминал. Есть ли способ пропустить предупреждение аутентификации и получить AuthorizationRef без интерфейса через терминал, используя скрипт оболочки.

...