Załóżmy, że tworzę użytkownika o nazwie „fałszywy” za pomocą adduser
polecenia. Jak mogę się upewnić, że ten użytkownik NIE będzie realną opcją logowania, bez wyłączania konta. Krótko mówiąc, chcę, aby konto było dostępne za pośrednictwem su - bogus
, ale nie chcę, aby było dostępne za pośrednictwem zwykłego monitu logowania.
Rozglądając się, wydaje się, że muszę wyłączyć hasło tego użytkownika, ale robienie tego passwd -d bogus
nie pomogło. W rzeczywistości pogorszyło to sytuację, ponieważ mogłem teraz zalogować się do fałszywego bez wpisywania hasła.
Czy istnieje sposób, aby wyłączyć regularne logowanie dla danego konta?
Uwaga: Dla jasności wiem, jak usunąć użytkownika z opcji menu graficznych ekranów logowania, takich jak gdm, ale te metody po prostu ukrywają konto bez wyłączania logowania. Szukam sposobu na całkowite wyłączenie regularnego logowania, w tym tryb tekstowy.
źródło
-d
jest flagą do usunięcia hasła. Różni się to od wyłączenia (nazywane blokowaniem, patrz odpowiedź Chada).Odpowiedzi:
jest tym, czego chcesz.
To zablokuje konto użytkownika. Ale nadal będziesz w stanie
ale będziesz musiał
su - user
jako root.Alternatywnie możesz to zrobić
!
, przygotowując hasło użytkownika w/etc/shadow
(to wszystkopasswd -l
dzieje się za kulisami). Ipasswd -u
cofnę to.źródło
passwd -l
opcji, należy pamiętać, że użytkownik może zalogować się przy użyciu innego tokena uwierzytelniającego (np. Klucza SSH).--disabled-password
opcjaadduser
? Czy utworzenie użytkownika bez niego,--disabled-password
a następnie uruchomieniepasswd -l
na tym użytkowniku osiąga taki sam wynik, jak uruchomienieadduser
z nim--disabled-password
w pierwszej kolejności?Strona
passwd(1)
podręcznika użytkownika mówi opasswd -l
:Więc
wydaje mi się, że to właściwy sposób na wyłączenie konta, z którego użytkownik nie powinien już korzystać (np. dlatego, że opuścił firmę).
źródło
passwd -l
blokujessh
połączenie dla użytkownika iusermod --expiredate 1
nie!passwd -l
nie blokuje jużssh
połączeń dla użytkownika iusermod --expiredate 1 user
blokuje. Naman passwd
możesz także użyćchage -E 0 user
do zablokowania użytkownika. Po złożeniu wnioskuusermod
lubchage
jestem w staniesudo su user
usermod --expiredate 0 [LOGIN]
działa również, ustawia datę wygaśnięcia 1 stycznia 1970 r., a 1 ustawia ją na 2 stycznia 1970 r.Istnieją dwie metody, aby uniemożliwić użytkownikowi logowanie się:
/etc/passwd
passwd
polecenie za pomocą-l
przełącznikaW drugim przypadku użytkownik może zalogować się przy użyciu innego tokena uwierzytelniającego (np. Klucza SSH).
Metoda nr 1
vi /etc/passwd
Teraz jesteś w
passwd
pliku naciśnij, Insaby edytować plik.Zmień poniższy wiersz z
nologin
opcją (/bin/bash
oznacza, że użytkownik może się zalogować).do tego.
nologin
oznacza, że użytkownik nie może się zalogować.(lub za pomocą / bin / sbin / nologin)
Metoda nr 2
Aby zablokować użytkownika:
passwd -l username
Aby odblokować użytkownika:
passwd -u username
źródło
/usr/sbin/nologin
zamiast/bin/nologin
.Jego dość łatwe zadanie polega na wprowadzeniu pewnych zmian w
/etc/passwd
pliku.Po prostu musisz zmienić powłokę, która jest zazwyczaj domyślnie
/bin/bash
Tj. Możesz się zalogować, używając tej powłoki, zmień ją na/bin/nologin
lub/bin/false
. Wskazane jest, aby to zmienić,/bin/nologin
ponieważ/bin/false
jest nieaktualne.źródło
Ustaw
/bin/false
jako powłokę w/etc/passwd
źródło
/bin/false
, zapobiega się używaniu su do działania jako ten użytkownik. Dodatkowo, użycie/bin/false
nie powoduje błędu ani żadnej innej wskazówki, co poszło nie tak - w przypadkach, gdy ktoś chce zapobiec użyciu nawet su do uzyskania powłoki jako ten użytkownik, należy zmienić powłokę na taką,/sbin/nologin
która powoduje błąd.su
nadal jest możliwe dla użytkowników z/bin/false
muszli wpasswd
- wystarczy użyć opcji--shell
:su - --shell /bin/sh bogus
./usr/sbin/nologin
ma taki sam efekt jak/bin/false
, ale pokazuje również przydatny komunikat informacyjny.Gdy blokujemy użytkownika za pomocą
passwd -l user
polecenia,!!
w/etc/shadow
pliku są wyświetlane „ ” . Ale nadal możemy przełączyć się na powłokę użytkownika z konta root, ale nie możemy przełączyć się na konto użytkownika przez zwykłą powłokę logowania użytkownika.Możemy również wyłączyć konto, podając
/bin/nologin
lub wprowadzając/bin/false
do/etc/passwd
pliku. Dlatego użytkownik może nie być w stanie się zalogować.źródło
Możesz użyć polecenia
źródło