Na tym forum znajdują się już dwa podobne How-to, ale uważam że każdemu coś brakuje. Jeden jest nieaktualny, natomiast drugi można było by uprościć do mniejszej ilości kroków.
Już nigdy więcej przy logowaniu i innych czynnościach wymagających autoidentyfikacji nie będzie musieli wklepywać hasła, ani przy logowaniu w terminalach, ani w graficznym menadżerze logowania, ani przy nadawaniu programom sesji sudo. Wystarczy że podłączymy PenDrive do PC, wpiszemy login użytkownika, system sam sprawdzi czy klucze z PenDrive są poprawne dla danego użytkownika, na koniec automatycznie nas zaloguje. W przypadku gdy nie podepniemy PenDrive zostaniemy jak zawsze zapytani o hasło.
Sposób ten można wykorzystać na domowym pececie, zwłaszcza gdy ktoś lubi się bawić się terminalem, a wpisanie su jest już naszym nawykiem i doprowadza nas do bólu głowy:?. Można wykorzystać go także w firmie, gdzie przy jednym komputerze pracuje kilka osób. Każdy pracownik otrzymuje pamięć Flash, przychodzi do pracy podłącza ją, a gdy wchodzi wyjmuje z PC, który automatycznie blokuje się. Może wy znajdzie lepsze zastosowania.
Przeczytaj jeszcze poniższą informację i możesz zabierać się do pracy:
UWAGA!! to how-to opisuje zmianę sposobu logowania! Jeżeli zrobisz coś nie tak, możesz utracić dostęp do systemu. Nie biorę żadnej odpowiedzialność za szkody jakie mogą powstać po wykonaniu tego how-to.
1.Przygotowanie PenDrive
Zaczniemy od stworzenia na PenDrivie odpowiedniej partycji, na której będziemy przechowywać klucze niezbędne do autoryzacji. Zalecam wykorzystać program gparted.
1. Robimy backup PenDrive. Tylko prawdziwi twardziele pomijają ten krok.
2. Uruchamiamy program gparted. W prawym górnym rogu okna, na liście rozwijanej wybieramy naszego PenDrive. W moim przypadku jest to urządzenie sdb.
3. Usuwamy wszystkie partycje.
4. Tworzymy jak najmniejszą, niesformatowaną partycje na końcu paska ("Ctrl+L").
5. Zapamiętujemy jej nazwę gdyż będzie nam potem potrzebna. W moim przypadku jest to sdb1.
6. Resztę miejsca wykorzystujemy na jeszcze jedną partycję. Formatujemy ją w systemie FAT32.
7. Po tych krokach u mnie wygląda to mniej więcej tak:
Ważne żeby partycja FAT32 była pierwsza, gdyż inaczej system Windows jej nie zobaczy.
8. Teraz klikamy "Zastosuj".
2.Instalacja libpam-usb
Zakładam że masz aktualne repozytoria. Odpalamy terminal i instalujemy 2 wymagane pakiety:
Kod: Zaznacz cały
sudo apt-get install libpam-usb pamusb-tools
Teraz skonfigurujemy plik konfiguracyjny libpam-usb za pomocą programu pamusb-conf z paczki pamusb-tools.
Zaczniemy od dodania naszego PenDrive do pliku konfiguracyjnego za pomocą komendy --add-device. Dalej wstawiamy wymyśloną nazwę dla naszego PenDrive.
Kod: Zaznacz cały
sudo pamusb-conf --add-device MyDevice
Kod: Zaznacz cały
Which volume would you like to use for storing data ?
0) /dev/sdb2 (UUID: )
1) /dev/sdb1 (UUID: )
Przy następnym zapytaniu "y".
Teraz dodamy użytkowników --add-user. Do jednego PenDrive możemy przypisać kilku użytkowników.
Ja dodam dwóch root i gregorio.
Kod: Zaznacz cały
sudo pamusb-conf --add-user root
sudo pamusb-conf --add-user gregorio
Teraz czas na test, sprawdzamy czy konfiguracja powiodła się. Oczywiście zamiast root wstawiamy naszego dodanego użytkownika.
Kod: Zaznacz cały
pamusb-check root
Kod: Zaznacz cały
* Authentication request for user "root" (pamusb-check)
* Device "MyDevice" is connected (good).
* Access granted.
Teraz edytujemy PAM aby korzystał z naszego skonfigurowanego modułu.
Kod: Zaznacz cały
sudo gedit /etc/pam.d/common-auth
Po dużym komentarzu:
Kod: Zaznacz cały
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-5, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details
Kod: Zaznacz cały
auth sufficient pam_usb.so
auth required pam_unix.so nullok_secure
Możemy to sprawdzić po przez przejście na inną konsolę CTRL+ALT+F1 i próbę logowania. Do trybu graficznego przechodzimy CTRL+ALT+F7. Gdy automatyczne logowanie się nie powiedzie cofnij się do poprzedniego punktu.
4.Konfiguracja libpam-usb - automatyczne logowanie w graficznym menadżerze logowania
Edytujemy plik /etc/pamusb.conf:
Kod: Zaznacz cały
sudo gedit /etc/pamusb.conf
Kod: Zaznacz cały
<user id="root">
<device>MyDevice</device>
</user>
Kod: Zaznacz cały
<user id="root">
<device>MyDevice</device>
<agent event="lock">gnome-screensaver-command --lock</agent>
<agent event="unlock">gnome-screensaver-command --deactivate</agent>
</user>
Kod: Zaznacz cały
<user id="root">
<device>MyDevice</device>
<agent event="lock">dcop kdesktop KScreensaverIface lock</agent>
<agent event="unlock">dcop kdesktop KScreensaverIface quit</agent>
</user>
Dla GNOME:
System->Preferencje->Sesje->Programy startowe->Dodaj
w miejscu polecenie wpisujemy pamusb-agent, reszta dowolnie.
Dla KDE:
kcontrol->Administracja->Sesje
i to na tyle:P