什么时候应该在我的网络服务器文件上使用“apache:apache”或“nobody:nobody”?

时间:2009-12-04 23:15:33

标签: security apache chown

背景:我记得在我的旧工作地点,网络服务器管理员如何总是让我更改httpd可访问的文件上传目录,以便他们归apache所有:apache或nobody:nobody

他说这是出于安全原因。

问题:您能否告诉我这具有什么特别的安全隐患?还有一种方法可以让apache像无人一样运行:没人,并且还有安全隐患吗?

TIA

2 个答案:

答案 0 :(得分:2)

有一个正当的理由,假设httpd(Apache)由root拥有并且也属于组root,并且在代码本身中发现了一个漏洞,例如,恶意用户请求了URL这比预期的要长,httpd会出现故障。现在,该漏洞已发现root访问权,这意味着它可以控制系统,因此恶意用户最终会抓住控制权并在盒子上造成破坏。

这就是为什么httpd守护程序的所有权在nobody:nobody或apache:apache下运行的原因。它实际上是一种预防性措施,可确保漏洞/漏洞不会暴露根访问。想象一下如果发生这种情况会对安全产生影响。

幸运的是,现在,根据Linux发行版,BSD变体(OpenBSD / FreeBSD / NetBSD)或商业Unix变体,httpd守护程序在具有最少权限的用户组下运行。此外,可以肯定地说,许多Apache代码已经过充分测试并且稳定。所有域中大约49%的服务器都在运行Apache。微软的IIS运行在29%的域中。这是根据网络调查网站here

在另一个背景下,它表明让一个程序运行在最低权限下将被视为“安全”,并减少任何可能的漏洞利用漏洞。

答案 1 :(得分:1)

这是这个问题的错误网站。通常,您希望源代码由与Apache相同的用户拥有。如果出现Apache或服务器端脚本中的安全漏洞,攻击者可能会恶意修改您的网站文件而无需升级权限。

正如你所说,一个例外是文件上传目录。在这种情况下,您希望Apache对该目录进行更改。