vsftpd配置支持虛擬用户登錄

前言:

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。

2 thoughts on “vsftpd配置支持虛擬用户登錄”

  1. 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

Leave a Reply to 佐鼬丶 Cancel reply

Your email address will not be published. Required fields are marked *

Captcha Code