在Debian系統下,使用vsftpd(Very Secure FTP Daemon)實現虛擬用戶需要經過以下幾個步驟:
安裝vsftpd: 在終端中輸入以下命令來安裝vsftpd:
sudo apt-get update
sudo apt-get install vsftpd
創建虛擬用戶數據庫:
使用db_load工具創建一個虛擬用戶數據庫文件。首先,創建一個文本文件,例如/etc/vsftpd/virtusers.txt
,并在其中添加虛擬用戶名和密碼,每行一個用戶,格式如下:
username1
password1
username2
password2
然后,使用db_load工具將文本文件轉換為數據庫文件:
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
創建PAM(Pluggable Authentication Modules)配置文件:
在/etc/pam.d/
目錄下創建一個名為vsftpd-virtuser
的文件,并添加以下內容:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
這將告訴PAM使用我們剛剛創建的虛擬用戶數據庫進行身份驗證。
修改vsftpd配置文件:
編輯/etc/vsftpd.conf
文件,根據需要進行以下修改:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftpuser
user_sub_token=$USER
local_root=/home/$USER
pam_service_name=vsftpd-virtuser
這些設置將禁用匿名訪問,啟用本地用戶訪問,并允許虛擬用戶登錄。guest_enable
和guest_username
選項用于設置虛擬用戶的默認主目錄和用戶名前綴。user_sub_token
和local_root
選項用于設置虛擬用戶的根目錄。
重啟vsftpd服務: 在終端中輸入以下命令以應用更改并重啟vsftpd服務:
sudo systemctl restart vsftpd
測試虛擬用戶登錄: 使用FTP客戶端(如FileZilla)嘗試使用剛剛創建的虛擬用戶名和密碼登錄到FTP服務器。如果一切正常,您應該能夠成功登錄并訪問虛擬用戶的根目錄。
注意:以上步驟適用于Debian 10(Buster)和Debian 11(Bullseye)。在其他Debian版本上,可能需要稍作調整。