Shell

/sbin/nologin 和 /bin/false 有什麼區別

  • January 5, 2020

從技術上講,除非pam設置為檢查您的外殼,否則pam_shells如果您不在外殼上,則這些都不能真正阻止您的登錄。在我的系統上,它們的大小甚至不同,所以我懷疑它們實際上做了一些事情。那麼有什麼區別呢?為什麼它們都存在?為什麼我要使用其中一個?

-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

/sbin/nologin設置為 shell 時,如果使用該 shell 的使用者登錄,他們會收到一條禮貌的消息,說“此帳戶目前不可用”。可以使用文件更改此消息/etc/nologin.txt

/bin/false只是一個立即退出的二進製文件,在被呼叫時返回 false,因此當擁有falseas shell 的人登錄時,他們會在false退出時立即註銷。將 shell 設置為/bin/true與不允許某人登錄具有相同的效果,但false可能被用作慣例,true因為它更能傳達人沒有 shell 的概念。

查看nologin的手冊頁,它說它是在 4.4 BSD(1990 年代初期)中創建的,所以它是在false創建之後很久才出現的。作為 shell的使用false可能只是從 UNIX 早期繼承下來的約定。

nologin是對使用者更友好的選項,向嘗試登錄的使用者提供可自定義的消息,因此理論上您會想要使用它;但是兩者都nologinfalse具有相同的最終結果,即某人沒有外殼且無法通過 ssh 進入。

引用自:https://unix.stackexchange.com/questions/10852