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

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

为什么有些系统用户/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

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

相关内容