Как программно сделать переключение пользователя на macosx - PullRequest
2 голосов
/ 21 декабря 2010

Я работаю над плагином агента безопасности в Mac OS X и хотел бы, чтобы пользователь мог переключать пользователя (так же, как кнопка «переключить пользователя», которая отображается при блокировке учетной записи).

После некоторых исследований я нашел этот поток со следующим решением из командной строки:

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

Запуск этой командной строки работает хорошо, когда пользователь вошел в систему.Тем не менее, в контексте плагина Security Agent: «Агент безопасности работает с ограниченными разрешениями, поэтому пользователь должен физически присутствовать, используя графический интерфейс пользователя, для аутентификации. Элементы графического интерфейса пользователя использовать нельзячерез интерфейс командной строки, такой как приложение терминала или удаленный сеанс защищенной оболочки (ssh) "

Таким образом, вызов командной строки не выполняется.Есть ли какое-либо другое решение для имитации пользователя коммутатора, например, отправка события Apple?Я не нашел другого решения.

Заранее спасибо за любую идею.С наилучшими пожеланиями

1 Ответ

0 голосов
/ 28 марта 2011

Попробуйте создать LaunchAgent, который будет работать для каждого пользователя. В подключаемом модуле Security Agent подключитесь к агенту для текущего пользователя консоли (например, с помощью сокетов BSD) и скажите ему, чтобы он запускал команду CGSession.

...