/etc/shells 中的 nologin 是危险的.. 为什么?

Rob*_*rde 22 security login shell ftp

我在互联网上发现了这个,同时在 FreeBSD 中建立了一个 FTP 服务器。

将 nologin 放入 /etc/shells 可能会创建一个后门,这些帐户可以通过该后门与 FTP 一起使用。

(见:http : //osdir.com/ml/freebsd-questions/2005-12/msg02392.html

谁能解释一下这是为什么?为什么复制 nologin 并将其放入 /etc/shells 可以解决此问题?

Joa*_*uer 24

/etc/shells包含系统认为(不受限制的)shell 的二进制文件列表。这意味着任何将这些二进制文件之一配置为他们的 shell 的用户都被假定为对系统具有完全访问权限(这意味着他们可以执行任何命令,只要他们有适当的权限)。

最直接的结果是他们可以使用chsh改变他们配置的shell。

如果用户配置的 shell不在此列表中,则系统会假定他受到某种限制。在这种情况下,chsh这意味着用户无法更改该值。

其他程序可能会查询该列表并应用类似的限制。

因此,通过nologin输入/etc/shells您可以有效地说“任何具有nologin作为其外壳的用户都被视为完整的、不受限制的用户”。几乎可以肯定,nologin 这与要说的完全相反。


And*_*ase 8

ftp 不提供标准外壳,它提供了一个 ftp 接口。即使shell指向nologin,拥有帐户的用户仍然可以访问ftp界面。此外,他们仍然可以访问您提供的任何其他不需要 shell 的服务(例如,如果您有一个依赖帐户身份验证而不是 shell 访问的 http Web 界面等)。这不一定是系统的后门,而是服务的后门。