下面來看一段linux中vsftpd虛擬用戶配置腳本示例,希望這個例子能幫助到各位快速成功配置好自己的vsftpd服務器.
每次新安裝服務器后,都要進行一系列的配置,安裝軟件,修改配置等,為了今后更好的部署vsftpd,特此寫了個腳本用于部署.
登錄FTP有三種方式,匿名登錄、本地用戶登錄和虛擬用戶登錄.
匿名登錄:在登錄FTP時使用默認的用戶名,一般是ftp或anonymous.
本地用戶登錄:使用系統用戶登錄,在/etc/passwd中.
虛擬用戶登錄:這是FTP專有用戶,有兩種方式實現虛擬用戶,本地數據文件和數據庫服務器。
FTP虛擬用戶是FTP服務器的專有用戶,使用虛擬用戶登錄FTP,只能訪問FTP服務器提供的資源,大大增強了系統的安全,代碼如下:
- #!/bin/bash
- #########################################
- ######### descprition ##################
- # 1.安裝vsftpd
- # 2.配置vsftpd虛擬化
- ########################################
- #init variables
- PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
- export PATH
- ff_outputdir=/tmp/liufofu
- curdate=$(date +%Y%m%d)
- curtime=$(date +%H%M%S)
- ff_logfile=${ff_outputdir}/$$.log
- #
- if [ ! -e ${ff_outputdir} ];then
- mkdir -p ${ff_outputdir}
- fi
- #處理過程中產生的日志由日志函數來進行處理記錄
- function log()
- {
- echo "`date +"%Y:%m:%d %H-%M-%S"` $1 " >> ${ff_logfile}
- }
- yum -y install vsftpd
- yum -y install db4-utils
- #生成vsftpd配置文件
- cat > /etc/vsftpd/vsftpd.conf<<EOF
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- local_umask=022
- log_ftp_protocol=YES
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_file=/var/log/xferlog
- xferlog_std_format=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
- listen=YES
- pam_service_name=vsftpd
- guest_enable=YES
- #guest_username=www
- dual_log_enable=YES
- vsftpd_log_file=/var/log/vsftpd.log
- user_config_dir=/etc/vsftpd/vuser_conf
- userlist_enable=YES
- tcp_wrappers=YES
- #listen_address=172.20.1.175
- #listen_port=21000
- virtual_use_local_privs=YES
- EOF
- log "生成vsftpd配置文件"
- #創建虛擬用戶目錄
- if [ ! -e /etc/vsftpd/vuser_conf ];then
- mkdir -p /etc/vsftpd/vuser_conf
- fi
- log "創建虛擬用戶目錄"
- #創建測試用戶的根目錄
- if [ ! -e /var/www/html/liufofu ];then
- mkdir -p /var/www/html/liufofu
- fi
- log "創建虛擬用戶目錄"
- #創建測試用戶
- cat >/etc/vsftpd/vuser_conf/liufofu<<EOF
- local_root=/var/www/html/liufofu
- write_enable=YES
- anon_world_readable_only=NO
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
- EOF
- #限制虛擬用戶的虛根
- ls -l /etc/vsftpd/vuser_conf| grep -v total | awk '{print $NF}' > /etc/vsftpd/chroot_list
- #設置虛擬用戶名和密碼
- cat >/etc/vsftpd/ftplogins.txt<<EOF
- liufofu
- liufofu
- EOF
- if [ -f /etc/vsftpd/ftplogins.txt ];then
- chmod 600 /etc/vsftpd/ftplogins.txt
- fi
- #設置vsftpd的虛擬驗證方法
- if [ $(uname -a | grep x86_64 | wc -l) -eq 1 ];then
- cat >/etc/pam.d/vsftpd<<EOF
- #%PAM-1.0
- auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd
- account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd
- EOF
- else
- cat >/etc/pam.d/vsftpd<<EOF
- #%PAM-1.0
- auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd
- account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd
- EOF
- fi
- log "設置vsftpd的虛擬驗證方法"
- #建立vsftpd的宿主用戶
- if [ $(grep vsftpd /etc/passwd) -lt 1 ];then
- useradd vsftpd -s /sbin/nologin
- usermod -a -G www vsftpd
- fi --Vevb.com
- log "建立vsftpd的宿主用戶"
- db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db
- log "生成虛擬用戶數據庫"
- #啟動vsftpd
- service vsftpd start
新聞熱點
疑難解答