Technicky, pokud není pam
je nastaven tak, aby zkontroloval váš shell pomocí pam_shells
ani jeden z nich nemůže zabránit vašemu přihlášení, pokud nejste v shellu. V mém systému jsou dokonce různé velikosti, takže mám podezření, že skutečně něco dělají. Jaký je tedy rozdíl? proč oba existují? Proč bych měl používat jedno přes druhé?
-rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false
-rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
Přijatá odpověď:
Když /sbin/nologin
je nastaven jako shell, pokud se uživatel s tímto shellem přihlásí, dostane zdvořilou zprávu, že „Tento účet momentálně není dostupný.“ Tuto zprávu lze změnit pomocí souboru /etc/nologin.txt .
/bin/false
je jen binární soubor, který se okamžitě ukončí a vrátí false, když je volán, takže když někdo, kdo má false
když se shell přihlásí, jsou okamžitě odhlášeni, když false
východy. Nastavení shellu na /bin/true
má stejný účinek, že nedovolí někomu se přihlásit, ale false
se pravděpodobně používá jako konvence nad true
protože mnohem lépe vyjadřuje koncept, že člověk nemá skořápku.
Podívejte se na nologin
manuálová stránka říká, že byla vytvořena v 4.4 BSD (začátek 90. let), takže přišla dlouho po false
byl vytvořen. Použití false
jako shell je pravděpodobně jen konvence přenesená z počátků UNIXu.
nologin
je uživatelsky přívětivější možnost s přizpůsobitelnou zprávou, která se dostane uživateli, který se pokouší přihlásit, takže byste ji teoreticky chtěli použít; ale oba nologin
a false
bude mít stejný konečný výsledek, že někdo nemá shell a není schopen vstoupit ssh.