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

use*_*333 69 user-accounts shell

为什么有些系统用户将/usr/bin/false作为他们的 shell,这是什么意思?

Leo*_*iro 78

这有助于防止用户登录系统。

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

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

  • 请注意,这只是约定;我可以将自己的 shell 安装为 `/random/path/foo-shell` 并将其设置为我在 `/etc/passwd` 中的默认值。**没有**保证。 (6认同)

Tob*_*ght 17

这些用户是特定文件或进程的所有者,而不是登录帐户。

如果未列出“shell”字段的值,/etc/shells则诸如 FTP 守护程序之类的程序不允许访问。

此外,对于不检查的程序/etc/shells,我们利用/bin/false将立即返回的事实,因此拒绝交互式 shell。


bba*_*iee 8

一些用户有/usr/bin/false,其他用户/sbin/nologin甚至有 /usr/bin/passwd

他们可以是隔离程序权限所需的系统用户,也可以是使用密码文件进行身份验证的程序的人类用户。

  • `/usr/bin/passwd` 用于例如仅邮件帐户。用户可以使用 ssh 来更改他们的密码,但除此之外别无他法。 (2认同)