为什么有些系统用户有/ usr / bin / false作为他们的Shell?

一旦你开始挖掘Linux系统,你可能会发现一些混乱或意外的东西,例如/ usr / bin / false。 为什么会有它的目的? 今天的超级用户问答有一个好奇的读者的问题的答案。

今天的问答环节由我们感谢SuperUser - Stack Exchange的一个分支,这是一个社区驱动的Q&A网站分组。

问题

超级用户读者user7326333想知道为什么一些系统用户有/ usr / bin / false作为它们的shell:

为什么一些系统用户有/ usr / bin / false作为它们的shell? 这意味着什么?

为什么一些系统用户有/ usr / bin / false作为它们的shell?

答案

超级用户贡献者duDE,Toby Speight和bbaassssiee对我们有答案。 首先,duDE:

这有助于防止用户登录到系统。 有时,您需要一个特定任务的用户帐户。 然而,没有人应该能够在计算机上与此帐户交互。 这些一方面是系统用户帐户。 另一方面,这是一个可以进行FTP或POP3访问的帐户,但是没有直接的shell登录。

如果更仔细地查看/ etc / passwd文件,您会发现/ bin / false命令是许多系统帐户的登录shell。 实际上,false不是一个shell,而是一个不执行任何操作的命令,然后也以一个状态码来结束,该状态码表示错误。 结果很简单。 用户登录并再次立即看到登录提示。

其次是来自Toby Speight的答案:

这些用户存在是特定文件或进程的所有者,并不是登录帐户。 如果“shell”字段的值未在/ etc / shells中列出,则诸如FTP守护程序之类的程序不允许访问。 此外,对于不检查/ etc / shells的程序,他们利用了这样的事实,即/ bin / false将立即返回并拒绝交互式shell。

我们从bbaassssiiee的最终答案:

有些用户有/ usr / bin / false,有些用户有/ sbin / nologin,甚至有/ usr / bin / passwd。 它们可以是需要隔离程序权限的系统用户,也可以是使用密码文件进行身份验证的程序的人类用户。


有什么补充说明? 声音在评论中。 想要从其他技术精通的Stack Exchange用户阅读更多的答案? 查看完整的讨论话题在这里

图片来源: OpenStack文档(OpenStack项目)

赞 (0)
分享到:更多 ()