前言:
vsftpd有三種使用者模式:匿名使用者、本地使用者、虛擬使用者
匿名使用者就是不需要密碼就能對ftp進行訪問,本地使用者是使用/etc/passwd中記錄的系統使用者作為ftp使用者來訪問ftp服務,而虛擬使用者是專屬於vsftpd的使用者,他們對映在一個本地使用者上,便於控制許可權,比本地使用者登入更安全。
在主配置檔案中開啟虛擬使用者登入:
編輯vsftpd主配置檔案
vim /etc/vsftpd/vsftpd.conf
在檔案結尾新增如下三行:
guest_enable=YES開啟虛擬使用者登入 guest_username=ftp設定ftp(安裝vsftpd時預設建立)使用者為虛擬使用者在作業系統上的對映 user_config_dir=/etc/vsftpd/vu_conf設定用於儲存虛擬使用者個性配置檔案的目錄(目錄名隨便)
建立使用者資訊資料庫
建立並編輯用於儲存虛擬使用者賬戶名和密碼的文字檔案,檔名隨意。
vim /etc/vsftpd/vu
在其中新增虛擬使用者登入名和 密碼,登入名為奇數行號,密碼為偶數行號。
test1 #賬戶 12345678 #密碼 test2 #賬號 87654321 #密碼
生成使用者資訊資料庫檔案(其中記錄的就是虛擬使用者的賬戶名和密碼)
db_load -T -t hash -f /etc/vsftpd/vu /etc/vsftpd/vu.db
配置pam認證
編輯pam中關於ftp使用者認證的配置,pam是用於認證使用者及授權使用者訪問服務的一套東東。
vim /etc/pam.d/vsftpd
在檔案開頭新增兩條新內容:
auth sufficient pam_userdb.so db=/etc/vsftpd/vu #這個檔案其實就是我們之前建立的使用者資料庫檔案,不過注意這裡一定不要加上db,否則會登入不了的。具體原因是pam在開啟資料庫檔案時會自動在後面增加.db字尾,如果之前已經加了就找不到檔案了。 account sufficient pam_userdb.so db=/etc/vsftpd/vu
建立並編輯虛擬使用者的個性配置檔案
建立用於存放虛擬使用者個性配置檔案的目錄
mkdir /etc/vsftpd/vu_conf
建立並編輯test1使用者的個性配置檔案(檔名必須和使用者名稱相同)
vim /etc/vsftpd/vu_conf/test1
新增個性配置(若不新增則使用全域性配置,對許可權的控制請使用匿名使用者的控制選項,如anon_mkdir_write=NO,禁止此虛擬使用者建立目錄):
local_root=/ftp/test1 #設定使用者的ftp目錄,如果不設定則使用宿主賬號的ftp目錄
vsftp配置檔案中各個選項的中文註釋參考此篇文章。
建立虛擬使用者的FTP家目錄
建立test1使用者的家目錄。
mkdir -p /ftp/test1 chown -R ftp:ftp /ftp
收尾:
在確保SELinux和防火牆均已正確配置後,重啟vsftpd服務。
service vsftpd restart
最後使用ftp客戶端測試連線,推薦使用FileZilla。
等等 可以用了 我多加了個空格 不用回覆了
db_load -T -t hash -f /etc/vsftpd/vu /etc/vsftpd/vu.db
大佬這條指令好像不能用了 我去百度db_load怎麼用出現的還是用這些引數
我輸入之後直接說引數錯誤
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vmuser /etc/vsftpd/vmuser .db
usage: db_load [-nTV] [-c name=value] [-f file]
[-h home] [-P password] [-t btree | hash | recno | queue] db_file
usage: db_load -r lsn | fileid [-h home] [-P password] db_file