更改Apache/Linux配置以使自动升级更加简单

时间:2012-01-25 作者:Tom Auger

我一直在读some posts 这似乎触及到这一点(或可能解决它,但它超出了我的头脑)。Unix很可能不是我的强项。

我继承了Fedora服务器,在自动升级方面有点颠簸。

我注意到两件事:1。它会提示我输入FTP用户和密码。我希望消除这种情况,而不必对凭据进行硬编码(出于许多原因)2。由于权限原因,最近的3.3.1更新失败(早期升级没有失败)。解决方法是sudo chmod-R g+w。/*在wp主目录中,但我厌倦了每次都这样做。

一句话:一切都很顺利,但这比我想要的要多。

现在,一切似乎都在“apache”用户下运行,该用户是我的“开发人员”组的成员,该组是FTP和更改/编辑文件/文件夹的不同人员的同一组。但是这些用户创建的任何新文件/文件夹都没有设置组写入模式,因此我必须手动执行此操作。。。

有什么想法吗?因为我是个unix白痴,所以我需要一点循序渐进的步骤。

谢谢

T

3 个回复
最合适的回答,由SO网友:ZaMoose 整理而成

最简单的答案是:

只要您使用的是相当标准的RedHat/CentOS/Fedora服务器,请确保WordPress目录下的所有内容都属于apache:apache。这将阻止提示输入FTP凭据。

这样做的好处是,在几乎所有情况下,Apache都将/bin/false或/sbin/nologin设置为其shell。这可以防止任何人利用apache用户获得对您的机箱的shell访问权限。

我认为您可能会被目录从具有有效shell的用户那里继承权限所绊倒,这些shell的umask设置得很有趣。尝试将所有内容下载到apache:apache,并进行几次测试更新,看看这是否能解决99%的问题。

SO网友:Chip Bennett

简单的答案是启用suPHP 这样WordPress就可以作为自己的用户而不是apache运行。

Otto explains more here.

SO网友:Otto

这个问题的答案相当复杂。

在共享服务器(运行多个网站)上,使用PHP的setuid进程(通过任何方式)可以提供额外的用户内安全性。如果两个人可以访问一台服务器,并且他们的脚本以他们的身份运行,而不是以单个“apache”用户的身份运行,那么通过web闯入一个站点的人只能获得该用户的权限,而不是“apache”的权限,后者的权限更大(例如,apache可以查看每个人的web文件来运行它们,但“otto”看不到“bob”的文件)。

在这种情况下,WordPress将作为“otto”而不是“apache”运行。由于它以“otto”的身份运行,而WP文件由“otto”所有,因此它可以直接写入文件,不需要FTP凭据。

看,这都是关于所有权的。如果文件的所有者与WP实际运行的用户相同,那么它将使用direct方法。如果不是这样,那么就只能使用FTP方法(或其他方法),因为在升级过程中,重要的是文件所有权不会改变。如果它试图以apache用户的身份直接编写它们,那么“apache”将拥有生成的文件。这可能会对专用服务器造成安全风险。

对于专用服务器,让非apache用户拥有文件,同时让PHP在“apache”下运行是最安全的。在这种情况下,甚至只为拥有这些文件而设置一个特殊的用户可能更可取、更安全。然后,要升级的凭据可以放在wp配置文件中,即使它们以某种方式被盗,也不会构成威胁,因为这些凭据可以锁定在除了wp文件本身之外几乎没有任何访问权限的位置。如果有人闯入,他们要么以“apache”(权限有限)的身份闯入,要么以自定义WP用户的身份执行代码(权限也有限)。

这样做的目的是限制在系统中发现漏洞的用户的能力。当有人发现一个弱点时,他们将进一步受到他们所突破的进程所运行的用户权限的限制。

结束

相关推荐

APACHE_MOD_LOADED设置可以FUBAR插件吗?

我最近有一个用户报告了我的插件选项页面未加载的问题。他们会点击“设置”链接,但只得到一个空白页。在类别编辑屏幕上显示的富文本编辑器也存在问题。我不明白为什么除了他们的网站外,几乎所有其他网站的插件都加载得很好。我们禁用了除我之外的所有插件,仍然无法正确加载插件。一段时间过去了,我收到了一封来自用户的电子邮件,他通过编辑文件WP admin/includes/misc解决了这个问题(WP 3.1站点)。php正在更改。。。$got_rewrite = apache_mod_loaded(\'mod_rewr