linux中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
时间: 2024-11-06 03:44:26

linux中vsftpd虚拟用户配置脚本示例的相关文章

linux中Vsftp虚拟用户配置

1.添加虚拟用户列表 创建一个虚拟用户列表文件,保存需要配置的虚拟帐号,格式为:第一行用户名,第二行密码,依次类推. # vi /etc/vsftpd/virtual_user_list ftp_www 123456 ftp_log 123456 2.生成虚拟用户口令认证文件   通过db_load命令生成认证文件.查询db_load命令是否已安装,未安装则先安装. # rpm -qa |grep db4-utils 本地CentOS未安装,直接通过yum安装即可. # yum -y insta

linux中Pure-FTPd虚拟用户管理脚本(PureDB)

<lnmp一键安装包>之前添加虚拟主机账号是保存在数据库,因此必须安装php和数据库才能正常使用,现更改为PureDB方式(不依赖php和MySQL),将用户信息保存在本地(非数据库).但是这种方式管理ftp虚拟账号需要手工敲命令,于是写这个脚本来可视化的管理账号. 功能如下(pureftpd_vhost.sh): 1.创建账号 2.更改目录 3.更改密码 4.删除账号 5.列出所有账号 6.显示某个账号详细信息 q. 退出 如下图: ps://blog.linuxeye.com/wp-con

ubuntu下vsftpd虚拟用户配置

一.业务要求 现在要求创建一个FTP账号ailanni,该账号只能登录到/www目录下,不能切换到上级目录.同时处于安全考虑还要求该账号上传的文件权限为644,即上传的文件具有可读可写权限,但是没有可执行权限. 除此之外还要求该用户不能是系统用户,即使用vsftpd的虚拟用户. 要求看起来比较简单,下面我们开始进行配置. PS:以下实验全部在ubuntu server 14.04 X64上进行.有关centos的操作可以参考这篇文章<烂泥:Vsftpd使用虚拟用户,访问FTP>. 二.vsft

Centos 6.2中vsftpd虚拟用户的配置

vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征.比如:非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高等. 之前就有弄过vsftpd,就不再介绍了! 安装: [ro

centos 6.0 vsftpd虚拟用户配置总结

如果你已经对pam有所了解,请跳过,我知道的可能还不如你多.你不感兴趣也请跳过,因为不看这个也可配置. 用户 <-> vsftpd <-> PAM模块 <-> 用户和密码数据库 vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM.大家对于PAM,也许有些陌生,但是一直在用.所谓PAM,英文是:Pluggable Authentication Modules,可拔插认证模    块(不知道这样翻译对不对).看见plug这个关键字,就知道

vsftpd 虚拟用户配置步骤_FTP服务器

yum -y install vsftpd*yum -y install db4*============================================================================先建立一个包含虚拟用户名及其口令的文本文件 , 然后在此基础上生成虚拟用户口令库文件 :#vim logins.txt 添加以下信息 ( 单数行为用户名 , 偶数行为口令 ) : 123     // 用户名 456     // 密码 :wq        //

linux中利用mysqlhotcopy备份数据脚本示例

mysqlhotcopy只是简单的缓存写入和文件复制的过程,占用资源和备份速度比mysqldump快很多很多.特别适合大的数据库,但需要注意的是:mysqlhotcopy只支持MyISAM 引擎 1.安装perl  代码如下 复制代码 #yum -y install perl perl-DBI 使用mysqlhotcopy需要安装perl支持,因为mysqlhotcopy是perl写的 2.安装DBD-mysql  代码如下 复制代码 #wget http://www.fcbu.com/upim

紧急求助:linux vsftpd虚拟用户能上传、下载文件,没有删除权限

问题描述 紧急求助:linux vsftpd虚拟用户能上传.下载文件,没有删除权限 SELinux设置为disable了,文件属主是virtural(virtual是虚拟用户所在的本地用户) 解决方案 写个脚本将文件扫描到就赋予所有权限呢 解决方案二: 把write_enable=yes前面的注释取消试试

vsftpd虚拟用户与匿名用户配合使用

前几天写过一篇有关vsftpd虚拟用户的文章,今天再来介绍有关vsftpd虚拟用户与匿名用户配合使用的案例. 要求:在公司FTP服务器上,用户ilanni对/data目录下所有的目录都具有管理员权限,即删除.新建.重命名.上传等.而匿名用户可以浏览data目录下的所有目录,其中只对tmp目录具有管理员权限. 这样可以达到只有一个管理员账号,可以对/data目录进行操作,而公司的其他员工帐号都可以浏览/data目录,并且在/data/tmp目录下可以新建自己的目录,并上传文件等权限. 有关vsft