Для начала установим пакеты:
Добавляем пользователя:
Для GNOME:
GNOME:
Для добавления не нужно монтировать накопитель.~$ sudo aptitude install libpam-usb pamusb-tools
Вместо usbkey можно нарисовать любой идентификатор для флешки.~$ sudo pamusb-conf --add-device usbkey Please select the device you wish to add. * Using "UFD 2.0 Silicon-Power16G (UFD_2.0_Silicon-Power16G_1112049600002481-0:0)" (only option) Which volume would you like to use for storing data ? * Using "/dev/sdb1 (UUID: A107-E528)" (only option) Name : usbkey Vendor : UFD 2.0 Model : Silicon-Power16G Serial : UFD_2.0_Silicon-Power16G_1112049600002481-0:0 UUID : A107-E528 Save to /etc/pamusb.conf ? [Y/n] Y Done.
Добавляем пользователя:
Проверяем правильность настроек:~$ sudo pamusb-conf --add-user olden Which device would you like to use for authentication ? * Using "usbkey" (only option) User : olden Device : usbkey Save to /etc/pamusb.conf ? [Y/n] Done.
Правим /etc/pam.d/common-auth на предмет авторизации по usb:~$ pamusb-check olden * Authentication request for user "olden" (pamusb-check) * Device "usbkey" is connected (good). * Performing one time pad verification... * Regenerating new pads... * Access granted.
Для блокировки десктопа в случае изъятия флешки в файле /etc/pamusb.conf, в секции пользователя, можно объявить соответствующие события.sed -i "s/\(.*pam_unix.so.*\)/auth\tsufficient\tpam_usb.so\n\1/" /etc/pam.d/common-auth
Для GNOME:
Для KDE:<user id="olden"> <device>usbkey</device> <agent event="lock">gnome-screensaver-command --lock</agent> <agent event="unlock">gnome-screensaver-command --deactivate</agent> </user>
Добавляем автозапуск агента pamusb-agent.<user id="olden"> <device>usbkey</device> <agent event="lock">qdbus org.kde.screensaver /ScreenSaver Lock</agent> <agent event="unlock">qdbus org.kde.screensaver /ScreenSaver SetActive false</agent> </user>
GNOME:
System > Preferences > Sessions > Startup Programs > Add > pamusb-agent > ОК > CloseKDE:
~$ cd ~/.kde/Autostart && ln -s /usr/bin/pamusb-agent pamusb-agent