限制SFTP使用者存取指定目錄

限制SFTP使用者存取指定目錄

我有一個安裝了開放 ssh 的 Ubuntu 14.04 伺服器。我想設定 sftp 以便客戶只能下載檔案。換句話說,我將文件放在它們被監禁的目錄中。我需要確保他們只能存取包含文件的目錄,而不能存取其他內容。

本來我打算使用 vsftpd,但有人告訴我 sftp 是更好的選擇。如果有一些關於我需要的文檔那就太好了。

我需要以下方面的幫助:

  1. 如何設定 sftp
  2. 如何設定使用者帳戶並將其用於 sftp
  3. 如何將帳戶設定為監獄

答案1

設定為/etc/ssh/sshd_config

Subsystem sftp internal-sftp -f AUTH -l VERBOSE
UsePAM yes
Match group sftp
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

建立群組 sftp:

groupadd sftp

建立目錄

sudo mkdir /ftpusers
sudo mkdir /ftpusers/HomeFolder

直接建立使用者並附加新的 sftp 群組:

sudo useradd -d /ftpusers/HomeFolder -m UserName -g sftp -s /bin/false
sudo passwd UserName

設定 sftp 與 ssh 一起使用的權限:

chown root:root /ftpusers/HomeFolder
chmod 755 /ftpusers/HomeFolder

重啟服務:

service ssh restart

請注意,必須為新 sftp 使用者的主資料夾指定 root 擁有者。

相關內容