我目前正在 Ubuntu 服务器 12 上设置 WordPress,一切运行正常,但在通过 WP 自动更新和上传媒体时出现问题,因为 Apache“www-data”用户没有写入目录的权限。“user1”拥有完全权限
我的所有目录都具有 0755 的权限和 644 的文件
我的目录设置如下:
/home/user1/public_html
所有 WP 文件和目录均位于“public_html”中
为了解决自动更新和上传媒体的问题,我已授予 Apache 用户对以下目录的所有权
sudo chown www-data:www-data wp-content -R
sudo chown www-data:www-data wp-includes -R
sudo chown www-data:www-data wp-admin -R
我想知道从安全角度来看这有多安全,如果不安全,最好的解决方案是什么?
这将允许我保留 user1 拥有的所有文件和目录,同时仍允许 wp 能够自动更新和上传媒体
答案1
我认为,您是否可以认为这是安全的(不安全),很大程度上取决于您的用例、您的用户和您的环境。让我这样说:如果您计划为付费客户提供网络托管,并且恰好没有处于封闭的基础设施中或处于令人难以置信的复杂系统之后网页应用防火墙或者入侵防御系统,您可能会认为这不安全。这里我指的不仅仅是可写目录,还指使用 mod_php,您似乎就是这么做的。不过,如果您只是为您的朋友和家人设置一个小型网站托管,预计每周会有大约十次点击,而且真的没有时间,那么您可能没问题(不过在这种情况下,我建议使用一些可用的共享托管商)。
更安全的替代方案在每个用户自己的用户权限下运行其 PHP 执行。最常见的示例是:
- 苏普,这种方法相当安全,但是速度却像蜗牛邮件一样慢。
- 阿帕奇 +信息技术与制造技术,设置起来相当简单,但测试并不广泛(相比之下MPM 工作者或者MPM 预分叉)就我个人而言,我不会在生产环境中使用它。
- FastCGI + PHP 环境,mod_fastcgi或者mod_fcgid。
根据您的用户/环境/...,我建议封锁你的机器。在 FastCGI 场景中,你应该使用 chroot,并且可以使用 Linux 安全增强功能进一步强化你的系统(例如1,2,3)。
但再次强调:您确实可以在这方面花费大量时间。考虑使用来自优质托管商的共享托管环境,他们会为您完成此操作,然后再将不安全的盒子放到外面。
答案2
我几乎确信我之前已经回答过这个问题,但我找不到可以链接的问题。
您不应该问如果执行 nnn 是否安全。安全性从来都不是二进制值,您几乎总是需要应用更详细的分析。您应该问的问题是,执行 nnn 是否比其他方法更安全或更不安全。
是的,更改文件的所有权以便 Apache 可以写入确实会增加出现问题的可能性,但这并不是唯一的因素。
如果您不更改所有权,更大的问题是您是否愿意付出努力来保持 Web 应用程序的更新和修补。如果您没有工具或能力仅使用 CLI 来保持其最新和修补,那么这可能是一个更大的安全问题,比您可能因更宽松的文件系统权限而遇到的问题要大得多。
我没有链接/参考,但我相信我在某处读到过,许多东西都受到了损害,因为未及时应用已知漏洞的补丁。另一方面,弱文件系统权限通常只会因 Web 应用程序中的错误/问题而发挥作用。
理想情况下,如果您对极强的偏执安全性有要求,那么您将拥有极其锁定的权限,并且应用程序非常最新,但如果必须选择一个,我通常会尝试安装所有补丁。
当然,您需要根据潜在风险以及对如何更新和维护系统的实际了解来做出决定。
答案3
编辑:删除了每个人都认为“不好”的解决方案。
保留这一行,因为每个人都无法读完前五行,所以他们选择忽略它:
这是我目前正在尝试的替代方案:
$ chown someuser:other-users somefolder
$ chmod 770 somefolder
这赋予所有者 (someuser) 和组“other-users”的所有成员(“someuser”决定授予其权限的任何人)读/写/执行权限。对文件执行 chmod 660。
答案4
因为您配置在 mod_php 下运行。您必须每 1 分钟通过 cron 更改用户。
但是,您必须针对您的问题配置在 suphp 下运行