为什么某些系统用户将/ usr / bin / false作为其外壳?


Answers:


73

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

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

如果您仔细查看该/etc/passwd文件,您会发现该/bin/false命令作为许多系统帐户的登录外壳。实际上,false不是外壳程序,而是不执行任何操作的命令,然后还以指示错误的状态代码结尾。结果很简单。用户登录并立即再次看到登录提示。



5
注意这只是约定;我可以安装自己的shell /random/path/foo-shell并将其设置为的默认值/etc/passwd。有没有保证。
quixotic

16

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

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

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


7

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


1
/usr/bin/passwd用于例如仅邮件帐户。用户可以使用ssh更改其密码,但不能更改其他密码。
西蒙·里希特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.