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
chujowa strona poniewaz nie pomogła mi w zadani