在Linux上配置FTP服務器以實現用戶隔離,通常使用vsftpd(Very Secure FTP Daemon)作為示例。用戶隔離意味著每個用戶在登錄后只能訪問自己的主目錄,不能訪問其他用戶的文件或目錄。以下是配置步驟:
首先,確保你已經安裝了vsftpd。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt-get update
sudo apt-get install vsftpd
編輯vsftpd的配置文件 /etc/vsftpd.conf
:
sudo nano /etc/vsftpd.conf
在配置文件中添加或修改以下行:
# 啟用本地用戶登錄
local_enable=YES
# 啟用寫權限
write_enable=YES
# 啟用chroot jail(用戶隔離)
chroot_local_user=YES
# 如果你希望允許某些用戶不被隔離,可以使用以下配置
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list
# 允許用戶上傳文件
allow_writeable_chroot=YES
# 禁止匿名用戶登錄
anonymous_enable=NO
# 啟用被動模式
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
# 啟用日志記錄
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
# 啟用用戶列表
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
創建一個新用戶并設置其主目錄:
sudo adduser ftpuser
sudo passwd ftpuser
確保用戶的主目錄權限正確:
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
如果你希望某些用戶不被隔離,可以創建一個chroot列表文件 /etc/vsftpd.chroot_list
并添加這些用戶的用戶名:
sudo nano /etc/vsftpd.chroot_list
在文件中添加用戶名,每行一個:
ftpuser
anotheruser
保存并關閉配置文件后,重啟vsftpd服務以應用更改:
sudo systemctl restart vsftpd
如果你使用的是防火墻,確保開放FTP所需的端口:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 1024:1048/tcp
使用FTP客戶端連接到服務器,驗證用戶隔離是否生效。你應該只能訪問該用戶的主目錄。
通過以上步驟,你可以在Linux上配置一個支持用戶隔離的FTP服務器。