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)