Как я вызываю Mac графический вход в систему от SSH? Есть ли способ сделать loginwindow
процесс запускает сеанс пользователя путем выполнения команды, когда удаленно зарегистрировано на пути SSH как администратор на Mac OS X?
Когда машина в окне входа в систему (никакой пользователь не в настоящее время зарегистрирован), я хочу, чтобы это открыло сессию пользователя, как будто я нажал на имя пользователя и ввел пароль.
Решения, которые не включают сценарии GUI, высоко предпочтены, но эта страница Apple KB может быть представляющей интерес для тех, кто идет тем путем.
Не знание пароля делает вещи сложными, но возможно решение: действительно ли возможно временно заменить пароль пользователя пустым местом? (И впоследствии сброс это к тому, чем это было прежде.)
Как запуск:
Во-первых, заставьте окно входа в систему отображаться. Просто выйдите из системы текущий пользователь, используйте быстрое переключение между пользователями или используйте SSH:
cd "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/" sudo ./CGSession -suspend
Или, для переключения на определенного пользователя сразу же, который, вероятно, покажет окно входа в систему (это внезапно больше не работает над моими 10,5 Leopard):
sudo ./CGSession -switchToUserID 501
Что показывают, теперь зависит немного от Установок системы, но давайте предположим, что это - значки пользователей и их имена. Для активации имени, мы должны были бы ввести первые буквы. Затем после Возврата пароль запрашивает шоу. Кроме того, можно выбрать любое имя (как путем нажатия Arrow Down) и затем нажать Option-Return, который будет запрошен и любое имя пользователя и его пароль. Я не знаю, как можно сказать, какой экран показывают, но давайте на потом сохраним это...
Так, чтобы выбрать первое (случайное) имя пользователя и нажать Option-Return, введите определенное имя пользователя, поразите Возврат и введите пароль:
sudo osascript -e 'tell app "System Events" key code 125 keystroke return using option down keystroke "the username" delay 1.0 keystroke return delay 1.0 keystroke "the password" delay 1.0 keystroke return end tell'
Вышеупомянутые шоу некоторая ошибка, которая насколько я могу сказать, не ограничивает использование:
osascript[285] : 3891612: (connectAndCheck) Untrusted apps are not allowed to connect to or launch Window Server before login. _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
С другой стороны, используйте язык определенный сценарий из "Сценария окно Login через Удаленный рабочий стол Apple" (возможно, однажды, комментарии на том сайте покажут лучшее решение):
tell process "SecurityAgent" set value of text field 1 of group 1 of window 1 to "the username" set value of text field 2 of group 1 of window 1 to "the password" end tell click button "Log In" of window 1 of application process "SecurityAgent"
Но основная проблема: этому все еще нужен пароль. Однако: очевидно, никакой пароль не необходим, когда у пользователя есть пустой пароль. На самом деле, для пустых паролей, просто нажимающих значок пользователя, все, что это необходимо. Так, при отправке использованию нажатий клавиш AppleScript приемлем, затем возможно, "все", что это оставляют выяснить:
Действительно ли возможно временно заменить пароль пользователя пустым местом, допускать запуск (или возобновление) сессия, не зная того пароля...?
Можно сделать AppleScript защищенным от ошибки? Как:
stat -f%Su /dev/console
может помочь, поскольку это уступает root
в то время как окно входа в систему отображено),(Примечание для тестирования: при использовании Демонстрации экрана кажется что установка предпочтения При управлении компьютерами: Зашифруйте пароли, и нажимает, только также сохраняет соединение, когда окно входа в систему показывают, или после того, как пользователь успешно вошел в систему. Когда использование Шифрует все сетевые данные затем, мой Mac должен восстановить соединение Демонстрации экрана каждый раз, когда вход в систему показывают, или пользователь переключается.)
выполнение команды с sudo позволяет Вам устанавливать сценарий на нечитабельный типичными пользователями. Это не прекрасно, но если Ваш администраторский пользователь уже скомпрометирован, игра закончена так или иначе!
chmod u-r scriptname
мой сценарий похож на это, он работает удаленно, когда один пользователь уже работает, для переключения на второго пользователя через SSH (протестированный на Snow Leopard 10.6.3):
#!/bin/bash
#go to login window
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID 503
osascript -e 'tell app "System Events"
keystroke "password"
delay 1.0
keystroke return
end tell'
exit