使用者對其擁有的資料夾沒有寫入權限?

使用者對其擁有的資料夾沒有寫入權限?

我正在處理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。如果您將usergroupin更改/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

相關內容