Jak pod Linuxem zablokować użytkownika

Niezależnie od przyczyny, administrując serwerem Linuxowym, zachodzi czasem potrzeba by zablokować konto istniejącego użytkownika. Jest to rozwiązanie nie tak ekstremalne jak jego usunięcie, a przy tym potencjalnie mniej ryzykowne.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

Krótki wstęp

Z racji różnych możliwości logowania się na konto, jego blokada sprowadza się do zastosowania jednocześnie kilku metod:

  • Zablokowanie hasła użytkownika.
  • Unieważnienie konta użytkownika.
  • Zmiana powłoki na /sbin/nologin.

Przykładowy polecenia operują na koncie o nazwie franciszku oraz powinny być wykonywane z uprawnieniami roota.

Zablokowanie konta użytkownika

Zablokowanie konta to kwestia uruchomienia polecenia usermon -L nazwa_użytkownika lub passwd -l nazwa_użytkownika.

# usermod -L franciszku
# passwd -l franciszku

Unieważnienie konta użytkownika

Unieważnienie konta przeprowadza się stosując komendę chage -E0 nazwa_uzytkownika.

# chage -E0 franciszku

Zmiana powłoki na /sbin/nologin

Ostatni krok, czyli zmiana powłoki na /sbin/nologin to kwestia wywołania polecenia usermod -s /sbin/nologin nazwa_użytkownika.

# usermod -s /sbin/nologin franciszku

Sprawdzenie czy konto jest zablokowane

Sprawdzenie czy konto jest zablokowane wykonuje się używająć passwd --status nazwa_użytkownika. Znacznik LK w wyniku oznacza blokadę konta.

# passwd --status franciszku
franciszku LK 1969-12-31 0 99999 7 -1 (Password locked.)

Weryfikacja daty wygaśnięcia konta, czyli do kiedy jest ono ważne to polecenie chage -l nazwa_użytkownika. Istotna jest wartość dla pola Account expires.

# chage -l franciszku
Last password change                                    : Feb 15, 2018
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jan 01, 1970
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

Finalnie, sprawdzenie powłoki przypisanej do konta to wymaga komendy grep ^nazwa_użytkownika /etc/passwd. Ostatnia pozycja, czyli ścieżka do powłoki, powinna mieć wartość /sbin/nologin.

# grep ^franciszku /etc/passwd
franciszku:x:1001:1001::/home/franciszku:/sbin/nologin