在一个拥有一个网站的私有服务器上,是否有任何理由使/ var / www中的文件/目录不能被www-data归为组?
我的理解是,具有写权限的www-data存在的安全风险只有在多个网站运行在同一个框中时才会产生。
最小特权原则适用。 只给予用户他们需要的权利,而不再需要。
在这种情况下,如果apache只提供页面,给用户acct无权编辑。 可能的风险包括:更改文件内容或上传新文件; 将可执行代码添加到文件等等。无论是单个网站还是多个网站,都存在这些风险。 如果应用程序需要编辑特定文件,则将权限更改限制为该文件。
我为我的WordPress网站写了一个简单的脚本。 这个脚本使Apache只能写入需要写入的内容。 webroot下的其他所有内容都是只读的。 我认为这是向更安全的网站迈出的一步,应该实行。
#!/bin/bash PATH=/bin:/usr/bin WEBROOT="/var/www/www.example.com" UPLOADS="${WEBROOT}/wp-content/uploads" chown -R nobody:nogroup ${WEBROOT} find ${WEBROOT} -type d -exec chmod 0555 {} \; find ${WEBROOT} -type f -exec chmod 0444 {} \; chown nobody:www-data ${WEBROOT}/sitemap.xml ${WEBROOT}/sitemap.xml.gz chmod 0464 ${WEBROOT}/sitemap.xml ${WEBROOT}/sitemap.xml.gz chown -R nobody:www-data ${UPLOADS} find ${UPLOADS} -type d -exec chmod 2575 {} \; find ${UPLOADS} -type f -exec chmod 0464 {} \;
即使你只有一个网站,攻击apache用户也会让黑客更改/var/www下的文件,如果该文件夹是由apache用户写的。
我不明白为什么不。 如果有一个网站,这应该是好的。 但是请注意,您可能希望将只读文件授予某些文件。 (如果他们需要写访问权限,请join白名单:))