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

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

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

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

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

有人能解释一下这是为什么吗?为什么复制一份 nologin 并将其放入 /etc/shells 中可以解决这个问题?

答案1

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

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

如果用户配置了 shell,不是在这个列表中,系统会认为他受到了某种限制。在这种情况下,chsh这意味着用户不能改变该值。

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

因此,通过输入,nologin/etc/shells实际上是在说“任何拥有nologinshell 的用户都被视为完全、不受限制的用户”。这几乎肯定与nologin 意思是说

答案2

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

相关内容