Это старая версия документа.
Содержание
Данная программа предназначена для аутентификации пользователя в ОС посредством «Flash»-накопителя в качестве ключа. Также предоставляет функционал по блокировке/разблокировке рабочего стола пользователя при отключении/подключении накопителя-ключа. Для идентификации накопителя используется информация заложенная производителем и временные данные, которые записываются на этот накопитель, так что, даже при наличии накопителя с полностью идентичными данными производителя, аутентификация пользователя не произойдет.
Установка
Функционал программы поставляется в пакетах «libpam-usb», «pamusb-tools» и их зависимостях. Установку можно произвести, например, выполнив с терминале команду
sudo apt-get install libpam-usb pamusb-tools
Настройка
Для исправной работы программы «PAM USB» требуется, что бы пользователь, аутентификацию которого будет происходить посредством накопителя-ключа, был членом группы пользователей «plugdev» (см. map pmount). Добиться этого можно, например, командой в терминале
sudo adduser $USER plugdev
для добавления текущего пользователя в группу. Если же требуется добавить другого пользователя, то «$USER» следует заменить на его имя (логин).
Указание накопителей-ключей
Далее, необходимо подключить накопитель который будет использован в качестве ключа и выполнить в терминале команду
sudo pamusb-conf --add-device $FLASH
где «$FLASH» необходимо заменить на название «Flash»-накопителя которое будет использоваться для его обозначения в настройках «PAM USB», это может быть произвольная текстовая строка из букв и цифр. Если в данный момент подключено несколько накопителей, то программа выведет сообщение вида
Please select the device you wish to add. 0) USB DISK (1234567890ABCDFE) 1) USB Flash (ABCDEF1234567890) [0-1]:
необходимо набрать номер подходящего «Flash»-накопителя и нажать Enter. Далее будет выведена информации о выбранном накопителе, подобного содержания
Which volume would you like to use for storing data ? * Using "/dev/sdh1 (UUID: 1234567890ABCDFE)" (only option) Name : MyFlash Vendor : Unknown Model : USB DISK Serial : 0987654321 UUID : 1234567890ABCDFE Save to /etc/pamusb.conf ? [Y/n]
если это подходящий накопитель, то следует ввести «y» («Yes» — подтверждение) и нажать Enter. Иначе ввести «n» и нажать Enter (или Ctrl+C) и повторить команду для другого накопителя. Информация о накопителе будет записана в файл «/etc/pamusb.conf» (см. Getting Started).
Сопоставление пользователей и накопителей-ключей
После того как добавлен накопитель-ключ, требуется указать для каких пользователей его использовать. Это производится выполнением команды в терминале
sudo pamusb-conf --add-user $USER
для указания текущего пользователя, иначе «$USER» необходимо заменить на имя пользователя для которого будет использован данный накопитель-ключ. Будет выведен список ранее добавленных в конфигурацию «PAM USB» накопителей, следует выбрать требуемый.
И если все указано верно, то на запрос «Save to /etc/pamusb.conf ?» набрать «y» и нажать Enter (иначе «n» или Ctrl+C)
Проверка
Проверить исправность аутентификации пользователя по накопителю-ключу можно командой в терминале
pamusb-check $USER --debug
для текущего пользователя, иначе необходимо заменить «$USER» на имя другого пользователя. Если все пройдет успешно, будет выведено сообщение в конце
* Access granted.
в противном случае следует проверить настройки (см. Getting Started).
Системные настройки
Программа «PAM USB» добавляет себя в стек аутентификации за счет строчки в файле «/etc/pam.d/common-auth» (см. PAM configuration guide for Debian)
… auth sufficient pam_usb.so …
В «Ubuntu» 12.10 эта строчка добавляется автоматически при установке «PAM USB». Если этой строчки нет, то следует её дописать, обязательно перед строчками
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
Параметр «sufficient» указывает, что наличия накопителя-ключа достаточно для аутентификации пользователя.
Если же «sufficient» заменить на «required» («обязательно, но не достаточно»)
auth required pam_usb.so
то войти в систему можно будет только при наличии подключенного накопителя-ключа и после ввода пароля. Другой вариант «optional» («не обязательно»)
auth optional pam_usb.so
сделает наличие накопителя-ключа необязательным условием аутентификации. Это целесообразно, если «PAM USB» планируется использовать только для блокировки/разблокировки рабочего стола.
Блокировка рабочего стола при отключении накопителя и наоборот
Удобная возможность заблокировать рабочий стол изъятием накопителя-ключа и разблокирования при повторном подключении этого накопителя реализована посредством утилиты «pamusb-agent» входящей в комплект программного пакета «PAM USB». Для начала необходимо открыть для редактирования файл «/etc/pamusb.conf», например, командой в терминале
sudo gedit /etc/pamusb.conf
где следует найти указание настроек для Вашего пользователя, которые записаны в виде
… <user id="USER"> <device>Flash</device> </user> …
где вместо «USER» написано имя Вашего пользователя. И дополнить данный фрагмент в конфигурационном файле строчками
<agent event="lock">gnome-screensaver-command -l</agent> <agent event="unlock">gnome-screensaver-command -d</agent>
до вида
… <user id="USER"> <device>Flash</device> <agent event="lock">gnome-screensaver-command -l</agent> <agent event="unlock">gnome-screensaver-command -d</agent> </user> …
Далее запустить «pamusb-agent» командой
pamusb-agent
и проверить блокировку рабочего стола подключив и отключив накопитель-ключ.
Если все в порядке, то следует добавить «pamusb-agent» в автозапуск, например, открыв настройки командой
gnome-session-properties
и добавив пункт «pamusb-agent»
Решение проблем
Иногда может возникнуть ситуация, что разблокирования рабочего стола не происходит и при выполнении в терминале команды
pamusb-check $USER --debug
появляется сообщение
… Pad checking failed …
возможное решение — удаление папки «/home/$USER/.pamusb» (см. pam_usb Mail). Однако если проблема продолжает возникать, следует проверить все настройки.