一、創建虛擬用戶的用戶名和密碼數據庫文件
vsftpd服務的虛擬用戶數據庫是使用Berkeley DB格式的數據文件。創建該數據庫文件要用到db_load命令工具,從光盤安裝db4-utils-4.3.29-9.fc6.i386.rpm或yum進行安裝軟件包後可得到該工具。
密碼數據庫文件中奇數行爲用戶名,偶數行爲上一行中用戶所對應的密碼
# vi /etc/vsftpd/vusers.list
laya
123
test
456
二、生成vsftpd的認證文件
# cd /etc/vsftpd/
# db_load -T -t hash -f vusers.list vusers.db //若是沒有db_load命令,請安裝db4*相關rpm包。
注意:
rhel5默認只安裝db4-4.3.29-9.fc6.i386.rpm和db4-devel-4.3.29-9.fc6.i386.rpm,
要使用db_load須要將db4-utils-4.3.29-9.fc6.i386.rpm包安裝上不然會出現錯誤:找不到db_load命令。
# file vusers.db
設置認證文件只對root用戶可讀可寫
# chmod 600 /etc/vsftpd/vusers.* //下降文件權限以提升安全性
注意:每次步驟1中添加新內容,都要再次運行步驟2,不然新加用戶不生效
三、創建虛擬用戶所需的PAM認證文件
# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
注意:以上2行中最後的2個文件名vusers和第2個步驟中的數據庫名字必須一致!
四、創建虛擬用戶所要訪問的目錄並設置相應權限
# mkdir -p /var/www
# useradd -d /var/www -s /sbin/nologin virtual(用戶名) //創建映射帳號virtual
# chown virtual:virtual /var/www
# chmod 755 /var/www //更改ftp根目錄權限
# ls -lh /boot > /var/www/vutest.file //創建測試文件(可不建)
五、設置vsftpd.conf配置文件
anonymous_enable=NO
local_enable=YES //使用虛擬用戶要啓用本地用戶
anon_umask=022 //設置虛擬用戶所上傳文件的默認權限掩碼,是anon_mask而不是local_mask
chroot_local_user=YES //將全部本地用戶限制在家目錄中,NO則不限制
max_clients=300 //設置FTP服務器最大接入客戶端數爲300個
max_per_ip=10 //設置每一個IP地址最大鏈接數爲10個
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
guest_enable=YES //啓用用戶映射功能
guest_username=virtual //將映射用戶指定爲virtual
pam_service_name=vsftpd.vu //修改使用的PAM文件位置
userlist_enable=YES
tcp_wrappers=YES
六、設置主配置文件
修改vsftpd.conf主配置文件,添加用戶配置目錄支持
user_config_dir=/etc/vsftpd/vusers_dir //添加此行配置項,指定用戶配置目錄位置
爲用戶laya、test創建獨立的配置目錄及文件
使用mkdir命令創建用戶配置目錄
# mkdir /etc/vsftpd/vusers_dir
爲虛擬用戶創建單獨的配置文件,用戶配置文件名稱與用戶名相同
vi /etc/vsftpd/vusers_dir/laya
vi /etc/vsftpd/vusers_dir/test
七、每一個FTP虛擬用戶均可以獨立設置其權限
anon_world_readable_only=NO //容許匿名用戶瀏覽器整個服務器的文件系統
anon_upload_enable=YES //可上傳
anon_mkdir_write_enable=YES //可建立和刪除文件夾
anon_other_write_enable=YES //可文件更名和刪除文件
anon_max_rate=50000:限定傳輸速率爲50KB/s
注意:
vsftpd對於文件傳輸速度限制並非絕對鎖定在一個數值上,而是在80%~120%之間變化,好比設置100KB/s則實際是速度在80KB/s~120KB/s之間變化。
local_root=/var/www/test //指定test的宿主目錄
注意:請先到/var/www下面去建立test文件夾
八、從新啓動vsftpd服務
# service vsftpd restart
九、使用虛擬帳戶訪問FTP服務進行測試
因爲匿名FTP根目錄「/var/ftp/」的默認權限爲755,所以不要將該目錄的屬主改成ftp,不然匿名訪問時可能會報錯「500 OOPS:vsftd:refusing to run with writable anonymous root」,致使訪問失敗。
vsftp500錯誤簡單解決方法
cannot change directory:/home/***
ftp服務器鏈接失敗,錯誤提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解決方法:
# setsebool ftpd_disable_trans 1
# service vsftpd restart
Linux默認字符編碼爲爲utf8,如出現亂碼可設置爲GBK
手動更改配置文件的命令:
vi /etc/sysconfig/i18n
將LANG="zh_CN.UTF-8"修改成:LANG="zh_CN.GBK"
註銷從新登陸圖形界面數據庫