2 нояб. 2010 г.

Автоматический вход в гостей Linux/Unix

Начиная с версии 3.2, VirtualBox поставляется с модулем PAM, который позволяет выполнять автоматический вход в системы поддерживающие данный механизм аутентификации.
Сам pam_vbox.so не выполняет проверку аутентификации в госте, а применяется для передачи учетных данных другим модулям PAM, таких как pam_unix.so или pam_unix2.so. Поэтому он должен находится вначале списка аутентификации PAM.
Замечание
Модуль pam_vbox.so поддерживает только тип auth. Прочие типы, такие как account, session или password не поддерживаются.
Модуль pam_vbox.so поставляется в составе гостевых дополнений, но по умолчанию не устанавливается и не активируется. Для его использования, необходимо скопировать файл /opt/VBoxGuestAdditions-<номер версии virtualbox>/lib/VBoxGuestAdditions/pam_vbox.so в каталог модулей безопасности, обычно это /lib/security/.

Например, в гостевой системе Ubuntu необходимо выполнить следующее:
  1. Скопировать файл pam_vbox.so в каталог /lib/security/

  2. Добавить строку "auth requisite pam_vbox.so" в начало файла /etc/pam.d/gdm. Также, если существует файл /etc/pam.d/common-auth, вы также должны добавить эту строку в него.

  3. При использовании теневой базы паролей (не знаю как правильно перевести, if authentication against the shadow database using pam_unix.so or pam_unix2.so is desired), необходимо использовать аргумент try_first_pass для передачи данных аутентификации от модуля VirtualBox в модуль аутентификации теневой базы. Для Ubuntu, его нужно добавить в файле /etc/pam.d/common-auth, в конеце строки содержащей pam_unix.so. Этот аргумент указывает модулю PAM использовать уже полученный мандат (credentials already present in the stack), который предоставляет PAM модуль от VirtualBox.
Чтобы упростить настройку, Вы можете вставить параметр debug после оператора pam_vbox.so, что приведет к выводу отладочных сообщений в журнал syslog.
Внимание!
Ошибки в файлах настроек PAM может превести к невозможности входа в систему!

Приведу мои настройки в гостевой системе ubuntu 10.10. Первая строка в файле /etc/pam.d/gdm
auth requisite pam_vbox.so debug
Часть содержимого файла /etc/pam.d/common-auth
auth requisite pam_vbox.so debug
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
Запускаем ВМ и устанавливаем параметры автологина:
VBoxManage startvm "Имя ВМ" && VBoxManage controlvm "Имя ВМ" setcredentials "пользователь" "пароль" "имяхоста"
где, "имя ВМ" - название гостевой системы, "пользователь" это имя учетной записи пользователя в госте, "пароль" - пароль пользователя гостя, а "имяхоста" - доменное имя гостевой системы, можно получить командой hostname.
Данный метод можно использовать для систем без графической среды (в gnome есть более удобный способ). У меня не получилось полностью автоматизировать процесс, поэтому при появлении запроса на ввод login: вы вводите любое имя(или символ).

Комментариев нет:

Архив блога