PAM USB – модуль для предоставляющий возможность аутентификации пользователя в ОС посредством «Flash»-накопителя в качестве ключа. Также он предоставляет функционал по блокированию/разблокированию рабочего стола пользователя при отключении/подключении накопителя-ключа. Для идентификации накопителя используется информация заложенная производителем и временные данные, которые записываются на этот накопитель, так что, даже при наличии накопителя с полностью идентичными данными производителя, аутентификация пользователя не произойдет.
Установка
Функционал программы поставляется в пакетах libpam-usb, pamusb-tools и их зависимостях. Установку можно произвести, например, выполнив с терминале команду:
Настройка
Для исправной работы PAM USB требуется, что бы пользователь, аутентификацию которого будет происходить посредством накопителя-ключа, был членом группы пользователей «plugdev». Добиться этого можно, например, командой в терминале:
для добавления текущего пользователя в группу. Если же требуется добавить другого пользователя, то $USER следует заменить на его имя (логин).
Указание накопителей-ключей
Далее, необходимо подключить накопитель который будет использован в качестве ключа и выполнить в терминале команду:
где $FLASH необходимо заменить на название «Flash»-накопителя которое будет использоваться для его обозначения в настройках «PAM USB», это может быть произвольная текстовая строка из букв и цифр. Если в данный момент подключено несколько накопителей, то программа выведет сообщение вида:
необходимо набрать номер подходящего «Flash»-накопителя и нажать Enter. Далее будет выведена информации о выбранном накопителе, подобного содержания:
если это подходящий накопитель, то следует ввести «y» («Yes» — подтверждение) и нажать Enter. Иначе ввести «n» и нажать Enter (или Ctrl+C) и повторить команду для другого накопителя. Информация о накопителе будет записана в файл /etc/pamusb.conf.
Сопоставление пользователей и накопителей-ключей
После того как добавлен накопитель-ключ, требуется указать для каких пользователей его использовать. Это производится выполнением команды в терминале:
для указания текущего пользователя, иначе $USER необходимо заменить на имя пользователя для которого будет использован данный накопитель-ключ. Будет выведен список ранее добавленных в конфигурацию PAM USB накопителей, следует выбрать требуемый.
Проверка
Проверить исправность аутентификации пользователя по накопителю-ключу можно командой в терминале:
для текущего пользователя, иначе необходимо заменить $USER на имя другого пользователя. Если все пройдет успешно, будет выведено сообщение в конце:
в противном случае следует проверить настройки.
Системные настройки
Модуль PAM USB добавляет себя в стек аутентификации за счет строчки в файле /etc/pam.d/common-auth:
В Ubuntu 12.10 эта строчка добавляется автоматически при установке PAM USB. Если этой строчки нет, то следует её дописать, обязательно перед строчками:
то войти в систему можно будет только при наличии подключенного накопителя-ключа и после ввода пароля. Другой вариант «optional» («не обязательно»):
сделает наличие накопителя-ключа необязательным условием аутентификации. Это целесообразно, если PAM USB планируется использовать только для блокирования/разблокирования рабочего стола.
Блокирование рабочего стола при отключении накопителя и наоборот
Удобная возможность заблокировать рабочий стол изъятием накопителя-ключа и разблокирования при повторном подключении этого накопителя реализована посредством утилиты «pamusb-agent» входящей в комплект программного пакета PAM USB. Для начала необходимо открыть для редактирования файл /etc/pamusb.conf любым текстовым редактором, например:
где следует найти указание настроек для Вашего пользователя, которые записаны в виде:
где вместо «USER» написано имя Вашего пользователя. И дополнить данный фрагмент в конфигурационном файле строчками:
до вида:
Далее запустить «pamusb-agent» командой:
и проверить блокировку рабочего стола подключив и отключив накопитель-ключ.
Если все в порядке, то следует добавить «pamusb-agent» в автозапуск, открыв из скиска программ Автоматически запускаемые приложения или выполнив команду:
и добавив пункт «pamusb-agent».
Решение проблем
Иногда может возникнуть ситуация, что разблокирования рабочего стола не происходит и при выполнении в терминале команды:
появляется сообщение
Возможное решение — удаление папки /home/$USER/.pamusb. Однако если проблема продолжает возникать, следует проверить все настройки.Если при выполнении команды:
появляется сообщение:
и при этом диск примонтирован в «Nautilus», то, вероятно, проблема в том, что ОС монтирует диск раньше «PAM USB» и как результат, «PAM USB» не может его примонтирован еще раз. Возможное решение — пожертвовать автомонтированием в пользу «PAM USB». Отключить автомонтирование для оболочек рабочего стола «Gnome» и «Unity» можно командой (см. ):
P.S. Для пользователей windows как всегда существует готовое решение - программа .
Установка
Функционал программы поставляется в пакетах libpam-usb, pamusb-tools и их зависимостях. Установку можно произвести, например, выполнив с терминале команду:
Код:
sudo apt install libpam-usb pamusb-tools
Для исправной работы PAM USB требуется, что бы пользователь, аутентификацию которого будет происходить посредством накопителя-ключа, был членом группы пользователей «plugdev». Добиться этого можно, например, командой в терминале:
Код:
sudo adduser $USER plugdev
Указание накопителей-ключей
Далее, необходимо подключить накопитель который будет использован в качестве ключа и выполнить в терминале команду:
Код:
sudo pamusb-conf --add-device $FLASH
Код:
Please select the device you wish to add.
0) USB DISK (1234567890ABCDFE)
1) USB Flash (ABCDEF1234567890)
[0-1]:
Код:
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]
Сопоставление пользователей и накопителей-ключей
После того как добавлен накопитель-ключ, требуется указать для каких пользователей его использовать. Это производится выполнением команды в терминале:
Код:
sudo pamusb-conf --add-user $USER
Если все указано верно, то на запрос «Save to /etc/pamusb.conf ?» набрать «y» и нажать Enter (иначе «n» или Ctrl+C)Для одного пользователя может использоваться только один ключ-накопитель, однако один накопитель может быть ключом для нескольких пользователей.
Проверка
Проверить исправность аутентификации пользователя по накопителю-ключу можно командой в терминале:
Код:
pamusb-check $USER --debug
Код:
* Access granted.
Системные настройки
Модуль PAM USB добавляет себя в стек аутентификации за счет строчки в файле /etc/pam.d/common-auth:
Код:
auth sufficient pam_usb.so
Код:
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» («обязательно, но не достаточно»):Это может быть не приемлемо если Ваш пользователь является администратором в ОС, т.к. при подключенном накопителе-ключе запроса пароля не будет и возможно выполнение вредоносного кода с правами корневого пользователя «root».
Код:
auth required pam_usb.so
Код:
auth optional pam_usb.so
Блокирование рабочего стола при отключении накопителя и наоборот
Удобная возможность заблокировать рабочий стол изъятием накопителя-ключа и разблокирования при повторном подключении этого накопителя реализована посредством утилиты «pamusb-agent» входящей в комплект программного пакета PAM USB. Для начала необходимо открыть для редактирования файл /etc/pamusb.conf любым текстовым редактором, например:
Код:
sudo gedit /etc/pamusb.conf
Код:
…
<user id="USER">
<device>Flash</device>
</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» в автозапуск, открыв из скиска программ Автоматически запускаемые приложения или выполнив команду:
Код:
gnome-session-properties
Решение проблем
Иногда может возникнуть ситуация, что разблокирования рабочего стола не происходит и при выполнении в терминале команды:
Код:
pamusb-check $USER --debug
Код:
Pad checking failed
Код:
pamusb-check $USER --debug
Код:
… Device is already mounted …
Код:
gsettings set org.gnome.desktop.media-handling automount false