Skip to content

Dlaczego niektórzy użytkownicy systemu mają /usr/bin/false jako powłokę?

6 de lipiec de 2021
why do some system users have usr bin false as their shell 00 1024x469 1

Gdy zaczniesz zagłębiać się w system Linux, możesz znaleźć zagmatwane lub nieoczekiwane rzeczy, na przykład /usr/bin/false. Dlaczego tam jest i jaki jest jego cel? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na pytania ciekawskich czytelników.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn internetowych z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser user7326333 chce wiedzieć, dlaczego niektórzy użytkownicy systemu mają /usr/bin/false jako powłokę:

Dlaczego niektórzy użytkownicy systemu mają /usr/bin/false jako powłokę? Co to znaczy?

Dlaczego niektórzy użytkownicy systemu mają /usr/bin/false jako powłokę?

Odpowiedź

Współpracownicy SuperUser duDE, Toby Speight i bbaassssiiee mają dla nas odpowiedź. Po pierwsze, koleś:

Pomaga to uniemożliwić użytkownikom logowanie się do systemu. Czasami potrzebujesz konta użytkownika do określonego zadania. Niemniej jednak nikt nie powinien mieć możliwości interakcji z tym kontem na komputerze. Są to z jednej strony systemowe konta użytkowników. Z drugiej strony jest to konto, dla którego możliwy jest dostęp FTP lub POP3, ale bez bezpośredniego logowania do powłoki.

Jeśli przyjrzysz się bliżej plikowi /etc/passwd, zobaczysz polecenie /bin/false jako powłokę logowania dla wielu kont systemowych. W rzeczywistości false nie jest powłoką, ale poleceniem, które nic nie robi, a następnie kończy się kodem stanu, który sygnalizuje błąd. Wynik jest prosty. Użytkownik loguje się i natychmiast ponownie widzi monit logowania.

Następnie odpowiedź Toby’ego Speighta:

Ci użytkownicy istnieją, aby być właścicielami określonych plików lub procesów i nie mają być kontami logowania. Jeśli wartość pola „shell” nie jest wymieniona w /etc/shells, programy takie jak demony FTP nie pozwalają na dostęp. Dodatkowo, w przypadku programów, które nie sprawdzają /etc/shells, wykorzystują fakt, że /bin/false natychmiast zwróci i odmówi interaktywnej powłoki.

I nasza ostateczna odpowiedź od bbaassssiiee:

Niektórzy użytkownicy mają /usr/bin/false, inni mają /sbin/nologin, a nawet mogą mieć /usr/bin/passwd. Mogą to być albo użytkownicy systemu, którzy są potrzebni do izolowania uprawnień programu, albo ludzie programów, którzy używają plików haseł do uwierzytelniania.

Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange? Sprawdź pełny wątek dyskusji tutaj.

Źródło obrazu: Dokumenty OpenStack (projekt OpenStack)

Czy ten post był pomocny?