共享託管環境的檔案權限

共享託管環境的檔案權限

我正在嘗試設定一個共享託管環境,其中用戶可以透過 SFTP 存取一個或多個資料夾。考慮以下場景:

/var/www/包含幾個代表域的目錄。使用者可以根據ACL新增、修改或刪除目錄中的文件,因此使用者可以對和john擁有完全存取權限,但不能存取.當然,同時網頁伺服器必須能夠讀取所有目錄中的檔案。/var/www/domain1.com/var/www/domain2.org/var/www/domain3.de

我不完全理解的是如何以這樣的方式保護一切,

  • 所有使用者都被監禁/var/www/並且只能看到他們被允許查看的網域(子資料夾)
  • Apache 使用者www-data對所有資料夾僅有讀取權限
  • PHP 對某些資料夾具有寫入權限,例如使用者上傳資料夾或日誌資料夾/var/www/domain/
  • 透過 SFTP 上傳的新檔案會自動獲得正確的權限,並且使用者能夠指定 PHP 可寫入的資料夾,而其他共用主機使用者無法存取

對於 PHP,我指的是 PHP-FPM 實例,每個網域都是單獨的條目,pool.d而且使用者可以自由配置。

到目前為止,我的想法是添加一個名為 的群組sftp,並將sshd屬於該群組的用戶配置sftp為監獄/var/www/,允許對他們進行密碼身份驗證並添加ForceCommand internal-sftp.然後,我會為內部資料夾遞歸設定預設 ACL,/var/www/以便正確的使用者可以存取正確的目錄。但是我該如何設定資料夾的擁有者使用者和群組呢?我需要調整 umask 嗎?對應 PHP-FPM 池實例的適當使用者和群組是什麼?

相關內容