Поиск по этому блогу

пятница, 30 декабря 2011 г.

pam_usb

Для начала установим пакеты:
~$ sudo aptitude  install libpam-usb pamusb-tools
Для добавления не нужно монтировать накопитель.
~$ 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.
Вместо usbkey можно нарисовать любой идентификатор для флешки.
Добавляем пользователя:
~$ 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.
Проверяем правильность настроек:
~$ 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/pam.d/common-auth на предмет авторизации по usb:
sed -i "s/\(.*pam_unix.so.*\)/auth\tsufficient\tpam_usb.so\n\1/" /etc/pam.d/common-auth
Для блокировки десктопа в случае изъятия флешки в файле /etc/pamusb.conf, в секции пользователя, можно объявить соответствующие события.
Для GNOME:
<user id="olden">
<device>usbkey</device>
<agent event="lock">gnome-screensaver-command --lock</agent>
<agent event="unlock">gnome-screensaver-command --deactivate</agent>
</user>
Для KDE:
<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>
Добавляем автозапуск агента pamusb-agent.
GNOME:
System > Preferences > Sessions > Startup Programs > Add > pamusb-agent > ОК > Close
KDE:
~$ cd ~/.kde/Autostart && ln -s /usr/bin/pamusb-agent pamusb-agent