Apache-2.2
apache 文件根目錄的最佳權限/所有權
我需要一些幫助來設置 apache 文件根目錄的正確權限或所有權。這是我需要的:
- 不同的網站儲存在
/var/www/html/<site>
- 兩個使用者應該通過 ssh 更新/管理網站
- 所有權應該不同於 apache 使用者(出於安全考慮)
我怎樣才能做到這一點?目前所有文件都是世界可寫的,這不好。伺服器執行 CentOS 5.5
謝謝
創建一個新組
groupadd webadmin
將您的使用者添加到組中
usermod -a -G webadmin user1 usermod -a -G webadmin user2
更改站點目錄的所有權
chown root:webadmin /var/www/html/
更改站點目錄的權限
chmod 2775 /var/www/html/ -R
現在任何人都可以讀取文件(包括 apache 使用者),但只有 root 和 webadmin 可以修改它們的內容。
我更喜歡使用 -o acl 掛載分區。這允許您使用 setfacl 命令對文件和文件夾設置細粒度權限,而不是僅指定 user-group-other 權限。
因此,將 acl 放入 /etc/fstab 中的分區行,或使用 mount -o remount,acl /mnt/xy 重新掛載,然後將 Web 目錄的所有權授予nobody:nobody。chmod 到 770,並使用 setfacl 僅對需要它的文件夾授予寫入權限,例如。授予 www-data(或您的網路伺服器執行的使用者)對上傳文件夾的寫入權限,並授予您自己的使用者對整個目錄的寫入權限。
mkdir dir chown nobody:nobody dir setfacl -m u:www-data:r-x,d:u:www-data:r-x dir setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload setfacl -m u:youruser:rwx,d:u:youruser:rwx dir
現在,除了您的網路伺服器和您自己的使用者之外,沒有人可以讀取您的文件。您可以寫入文件夾中的每個文件,而網路伺服器只能寫入上傳文件夾。