1、實驗環境
操做系統: CentOS 7linux
2、安裝數據庫
關閉SELINUX:vim
vim /etc/selinux/config SELINUX=disable
臨時關閉:ide
setenforce 0
3、安裝vsftpd服務:工具
1.使用安裝yum安裝vsftp:測試
yum -y install vsftp
2.備份vsftp主配置文件:ui
cp /etc/vsftpd/vsftpd.conf{,.bak}
4、配置虛擬用戶訪問vsftp服務:操作系統
1.建立虛擬用戶密碼文件:rest
user1 password1 user2 password2
2.生成虛擬用戶數據庫:code
yum -y install libdb-utils db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db chmod 700 /etc/vsftpd/vir_user.db
3.配置驗證文件:
修改前先配置文件
cp /etc/pam.d/vsftpd{,.bak}
將auth及account的全部配置行均註釋掉,添加以下兩行
vim /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vir_user account required pam_userdb.so db=/etc/vsftpd/vir_user
4.增長一個系統用戶:
mkdir /ftproot useradd -d /ftproot -s /sbin/nologin virftp chown -R virftp:virftp /ftproot
5.配置vsftp主配置文件:
vim /etc/vsftpd/vsftpd.conf
#禁止匿名用戶登陸
anonymous_enable=NO #容許本地用戶登陸 local_enable=YES #啓用虛擬帳戶 guest_enable=YES #把虛擬帳戶映射到系統帳戶virftp guest_username=virftp #使用虛擬用戶驗證(PAM驗證) pam_service_name=vsftpd #設置存放各虛擬用戶配置文件的目錄(此目錄下與虛擬用戶名相同的文件爲他的配置文件) user_config_dir=/etc/vsftpd/vsftpd_viruser #啓用chroot時,虛擬用戶根目錄容許寫入 allow_writeable_chroot=YES
建立‘虛擬用戶配置文件’的存放目錄
mkdir /etc/vsftpd/vsftpd_viruser/
建立和配置虛擬用戶各自的配置文件,文件名稱是‘虛擬用戶名
vim /etc/vsftpd/vsftpd_viruser/user1 #容許寫入 write_enable=YES #容許瀏覽FTP目錄和下載 anon_world_readable_only=NO #容許虛擬用戶上傳文件 anon_upload_enable=YES #容許虛擬用戶建立目錄 anon_mkdir_write_enable=YES #容許虛擬用戶執行其餘操做(如更名、刪除) anon_other_write_enable=YES #上傳文件的掩碼,如022時,上傳目錄權限爲755,文件權限爲644 anon_umask=022 #指定虛擬用戶的虛擬目錄(虛擬用戶登陸後的主目錄) local_root=/ftproot/admin/
建立虛擬用戶的根目錄,要保證虛擬用戶映射的系統用戶,對這個根目錄有讀寫權限
mkdir -p /ftproot/admin/ chown -R virftp.virftp /ftproot/admin/
裏面內容所有註銷掉
vim /etc/vsftpd/ftpusers
5、測試配置結果:
1.重啓vsftpd服務
systemctl restart vsftpd systemctl enable vsftpd
2.關閉防火牆:
setenforce 0 systemctl stop firewalld
3.利用FileZilla工具鏈接測試
6、各配置文件說明:
/etc/vsftpd/vsftpd.conf :vsftpd的主配置文件 /etc/vsftpd/vir_user :虛擬用戶的帳號密碼文件 /etc/vsftpd/vsftpd_viruser/user1 :虛擬用戶‘user1’的配置文件 /etc/pam.d/vsftpd :啓用虛擬用戶驗證功能的配置文件