我正在處理Debian10 with php8 fpm + apache2
,我已經創建了一個帶有群組的新用戶username:username
,並且我已經為該用戶設定了一個主目錄,位於
/home/username/www
當然,當文件在裡面時,我已經將chmod -R
所有資料夾和文件發送到www-data 之前username:username
/var/html
所以基本上我有一個小腳本試圖編寫快取資料夾,但當我將資料夾 chmod 為 username:username 時它不起作用,只有當我將資料夾 chmod 為 www-data 時它才起作用?
www-data
快取資料夾 chown 755 ,如果不擁有它,它工作正常username
是否可以允許username
擁有像這樣的寫入權限www-data
?
PS:用戶名以真實用戶名為例
答案1
A可能的username
讓控制內容的方法,同時www-data
出於安全原因具有唯讀存取權限,並且僅在需要時具有寫入存取權限:
設定
username
為所有者和www-data
群組chown -R username:www-data /home/username/www
授予擁有者完全存取權限(讀取/寫入/執行:7),授予群組唯讀存取權限(讀取/執行:5)。此處的群組
Other
沒有存取權限 (0)。chmod -R 750 /home/username/www
授予對
www-data
需要的地方的寫入存取權限:chmod -R 770 /home/username/www/path/writable/by/webserver
由網頁伺服器建立的檔案將完全歸其自身 ( www-data:www-data
) 所有,但目錄擁有者 ( username
) 仍然可以移動它們。
答案2
預設情況下,當您安裝 PHP-FPM 時,它會安裝一個以使用者身分執行的池www-data
。如果您將user
和group
in更改/etc/php/8.0/fpm/pool.d/www.conf
為正確的用戶,那麼您的腳本將以該用戶身份運行,並且www-data
不需要寫入權限。
預設情況下,您的配置有以下兩行:
user = www-data
group = www-data
將這些行替換為:
user = username
group = username
重新啟動 FPM 守護程式
service php8.0-fpm restart