Shell
/sbin/nologin 和 /bin/false 有什麼區別
從技術上講,除非
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,因此當擁有false
as shell 的人登錄時,他們會在false
退出時立即註銷。將 shell 設置為/bin/true
與不允許某人登錄具有相同的效果,但false
可能被用作慣例,true
因為它更能傳達人沒有 shell 的概念。查看
nologin
的手冊頁,它說它是在 4.4 BSD(1990 年代初期)中創建的,所以它是在false
創建之後很久才出現的。作為 shell的使用false
可能只是從 UNIX 早期繼承下來的約定。
nologin
是對使用者更友好的選項,向嘗試登錄的使用者提供可自定義的消息,因此理論上您會想要使用它;但是兩者都nologin
將false
具有相同的最終結果,即某人沒有外殼且無法通過 ssh 進入。