/bin/false 和 /sbin/nologin 作为 nologin 用户的 shell 有什么不同

有时,我们可能需要一个带有密码的用户帐户来与系统进行身份验证,但不需要具有该用户名的交互式 shell。
这有助于防止使用该用户帐户使用该密码登录系统。
在这些场景中,我们可以将用户的 shell 设置为 /sbin/nologin 或者 /bin/false 。
如果用户尝试登录系统,nologin shell 会关闭用户的连接。

这种情况的一个例子可能是邮件服务器,其中需要一个用户帐户来存储邮件和密码,以便用户向邮件客户端进行身份验证并检索他们的邮件;但是,如果分配了 /sbin/nologin shell,则用户无法使用该帐户登录系统。

由于两个命令都返回非零值,因此没有太大区别。
最初, /bin/false 是为一般命令创建的,因为它总是返回非零值。
然后,在创建 /sbin/nologin 之前,它似乎被用作 nologin 用户的 shell。

另一方面, /sbin/nologin 已为 nologin 用户的 shell 创建,它具有在 /etc/nologin.txt 中提供消息的功能。
建议对 nologin 用户的 shell 使用 /sbin/nologin,因为它包含在 /etc/shells 中。

$ man -k nologin
nologin(5)               - disallow logins
nologin(8)               - politely refuse a login
pam_nologin(8)           - No Login PAM module
$ man -k false
...
false(1)                 - Return false value
日期:2020-09-17 00:12:59 来源:oir作者:oir