如何建立sftp使用者僅存取特定目錄?

如何建立sftp使用者僅存取特定目錄?

我想為 sftp 建立對特定資料夾具有有限存取權限的用戶

我的資料夾結構如下所示:

/var/www/site1/files/

/var/www/site2/files/

/var/www/site3/files/

我想創建 sftp user1 來/var/www/site1/files/僅訪問以使用 filezila 上傳網站文件,並且無法查看任何其他資料夾

對於具有有限存取權限的 user2 也是如此/var/www/site2/files/

對於具有有限存取權限的 user3/var/www/site3/files/

答案1

你已經基本了解這件事了。
最好的方法是這樣做:

  1. /home透過在下列位置附加以下行,將 3 個目錄中的每一個目錄掛載到目錄中/etc/fstab

    /var/www/site1/files/ /home/site1/htdocs/ bind 0 0
    /var/www/site2/files/ /home/site2/htdocs/ bind 0 0
    /var/www/site3/files/ /home/site3/htdocs/ bind 0 0
    
  2. 用於mount -a立即啟動安裝。

  3. 確保您已將使用者 site1、site2、site3 新增至同一組(例如 sftpusers 或 sftponly)。您可以使用以下命令將使用者新增至群組:

    usermod -aG sftponly site1
    usermod -aG sftponly site2
    usermod -aG sftponly site3
    
  4. /home/{site1,site2,site3}使用以下命令為相應使用者建立主目錄:

    usermod -d /home/site1 site1
    usermod -d /home/site2 site2
    usermod -d /home/site3 site3
    
  5. 在您的 中加入以下內容/etc/ssh/sshd_config

    Match group sftponly
          ChrootDirectory %h
          X11Forwarding no
          AllowTcpForwarding no
    
  6. 最後使用以下命令重新啟動 ssh 服務:

    service ssh restart
    

這篇關於數位海洋的文章了解詳情。

答案2

關注後克里希納·查利斯的回答您可能需要調整所有權和權限。

例如,對於使用者 site1:

chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly

相關內容