加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2023-07-10 13:24:32 所属栏目:Linux 来源:
导读:看一段linux中vsftpd虚拟用户配置脚本示例,希望这个例子能帮助到各位快速成功配置好自己的vsftpd服务器.每次新安装服务器后,都要进行一系列的配置,安装软件,修改配置等,为了今后更好的部署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  --Cuoxin.com 

log "建立vsftpd的宿主用户" 

db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db 

log "生成虚拟用户数据库" 

#启动vsftpd 

service vsftpd start

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章