开源中文网

您的位置: 首页 > Linux应用 > vsFTP > 正文

linux中vsftpd虚拟用户配置脚本示例

来源: 网络整理  作者: 佚名

下面来看一段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
log "建立vsftpd的宿主用户"

db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db
log "生成虚拟用户数据库"
#启动vsftpd
service vsftpd start

Tags:示例 脚本 用户
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明