![为什么有些系统用户使用 /usr/bin/false 作为他们的 shell?](https://linux22.com/image/1523341/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%89%E4%BA%9B%E7%B3%BB%E7%BB%9F%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%20%2Fusr%2Fbin%2Ffalse%20%E4%BD%9C%E4%B8%BA%E4%BB%96%E4%BB%AC%E7%9A%84%20shell%EF%BC%9F.png)
为什么有些系统用户/usr/bin/false作为他们的外壳,那是什么意思?
答案1
这有助于防止用户登录系统。
有时您需要一个用户帐户来完成特定任务。然而,任何人都不能在计算机上与此帐户交互。一方面,这些是系统用户帐户,另一方面,这是可以进行 FTP 或 POP3 访问但不能直接进行 shell 登录的帐户。
如果你仔细查看该/etc/passwd
文件,你会发现该/bin/false
命令是许多系统帐户的登录 shell。实际上,false 不是 shell,而是一个不执行任何操作的命令,并以表示错误的状态代码结束结果很简单,用户登录后立即再次看到登录提示。
答案2
这些用户是特定文件或进程的所有者,并不旨在成为登录账户。
如果未列出“shell”字段的值,/etc/shells
则 FTP 守护程序等程序不允许访问。
此外,对于不检查的程序/etc/shells
,我们利用/bin/false
将立即返回的事实,从而拒绝交互式 shell。
答案3
有些用户有/usr/bin/false
,其他用户有/sbin/nologin
,甚至 有/usr/bin/passwd
。
他们可以是隔离程序权限所需的系统用户,也可以是使用密码文件进行身份验证的程序的人类用户。