從主網站 (SFTP) 存取子目錄的 Chroot

從主網站 (SFTP) 存取子目錄的 Chroot

在 Debian apache2 伺服器上,我嘗試授予對 webstie 樹的子目錄的存取權限(網站主目錄:/home/網站/public_html/,僅需要特定使用者的存取權限:/home/website/public_html/boutique/modules/sftpwkmodules

所以主網站使用者可以存取所有樹(userweb)。
但我需要使用者的存取權限sfk模組到樹內的子目錄,但它不起作用。
我創建了用戶sfk模組,和組sftpwk模組
我將這些行設定為sshd_配置文件:

Match group sftpwkmodules
    ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
     ForceCommand internal-sftp
     AllowTCPForwarding no
     X11Forwarding no

但是當我連接到sftp對於該用戶,這是不允許的。在日誌中似乎有一個錯誤的致命所有權:chroot 目錄元件「/home/website/public_html/」的擁有權或模式錯誤
但我不能僅僅為了讓該使用者存取子目錄而更改所有樹的所有權。有辦法讓它發揮作用嗎?

答案1

在更改權限之前,請務必考慮您的 Web 伺服器必須至少具有檔案和目錄的讀取權限。此外,由使用者 sfkmodules 建立的任何檔案/目錄都將歸該使用者所有,並且根據您的 umask,Web 伺服器可能無法讀取該檔案/目錄。

一個需要考慮的解決方案是在 webroot 之外的使用者自己的目錄中 chroot,並使用某種方式的看門狗來檢測檔案何時被刪除並將這些檔案移到 webroot 中。這樣,您就可以控制所有權和權限。

PERL 和 cron 是您的朋友。

答案2

建立一個群組,將所需的使用者以及您想要存取的任何其他使用者新增至該群組,並分配所需的權限。這次不要使用 chroot。

下面的命令適用於 CentOS,但您已經明白了。

sudo groupadd groupname  
sudo usermod -a -G groupname admin  
sudo usermod -a -G groupname user1  
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers  

相關內容