Linux

Linux Web 伺服器權限 - 最佳實踐

  • March 2, 2013

在具有一個網站的私有伺服器上,/var/www 中的文件/目錄是否有任何理由不能歸 www-data 組所有?

我的理解是,只有當您在同一個盒子上執行多個網站時,才會出現具有寫入訪問權限的 www-data 的安全風險。

適用最小特權原則。只給使用者他們需要的權利,僅此而已。

在這種情況下,如果 apache 只提供頁面,則不授予使用者帳戶編輯權限。可能的風險包括:更改文件內容或上傳新文件;將可執行程式碼添加到文件等。這些風險存在,無論它是否是單個站點的倍數。如果應用程序需要編輯特定文件,請限制對該文件的權限更改。

我為我的 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 {} \;

引用自:https://serverfault.com/questions/382998