每次新安装服务器后,都要进行一系列的配置,安装软件,修改配置等,为了今后更好的部署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 log "建立vsftpd的宿主用户" db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db log "生成虚拟用户数据库" #启动vsftpd service vsftpd start |
时间: 2024-11-06 03:44:26