centos7 安装vsftpd的shell脚本

v1.0
vim vsftpd_install.sh
#!/bin/bash
ftpPath=/home/woa/tomcat/webapps/webdav/CloudSystem
userName=wang
passwd=123456
 
yum install -y epel-release
yum install -y pam* db4*
yum install -y vsftpd
cat << EOF > /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=NO
xferlog_file=/etc/vsftpd/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES
idle_session_timeout=600
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/virtualuser_conf
allow_writeable_chroot=YES
EOF
 
mkdir -p /etc/vsftpd/virtualuser_conf
cat << EOF > /etc/vsftpd/virtualuser_conf/$userName
local_root=$ftpPath
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF
 
echo "$userName" > /etc/vsftpd/virtualuser_passwd.txt
echo "$passwd"   >> /etc/vsftpd/virtualuser_passwd.txt
 
db_load -T -t hash -f /etc/vsftpd/virtualuser_passwd.txt /etc/vsftpd/virtualuser_passwd.db
 
echo "auth required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd" > /etc/pam.d/vsftpd
echo "account required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd" >> /etc/pam.d/vsftpd
 
[ ! -d $ftpPath ] && mkdir -p $ftpPath
chown -R root:ftp $ftpPath
chmod -R 777 $ftpPath
 
systemctl start vsftpd
systemctl enable vsftpd
 
 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 

vsFTP服务部署

后台采集服务通过vsftp方式,将采集的文件上传到文件服务器,故还需要部署一个vsftp服务,vsftp目录对应到文件存储目录

l 安装依赖环境

安装vsftp前,需要先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)

执行下列命令安装

yum install pam*

yum install db4*yum install epel-release

安装vsftp服务

安装vsftp服务,执行下列命令

yum install vsftpd

设置vsftp为开启启动,执行下列命令

chkconfig vsftpd on

配置vsftp服务

进入vsftp配置文件目录,配置vsftpd.conf

cd /etc/vsftpd/

vi vsftpd.conf

 

将下列信息填入vsftpd.conf

pasv_enable=YES     #开启被动模式

pasv_max_port=10030

pasv_min_port=10020  

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

xferlog_enable=NO

xferlog_file=/etc/vsftpd/vsftpd.log

xferlog_std_format=YES

connect_from_port_20=YES

idle_session_timeout=600

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/virtualuser_conf

allow_writeable_chroot=YES

 

 

 

*重要参数说明:

anonymous_enable=NO 不允许匿名访问

local_enable=YES 本地用户可以访问,如果设置成NO的话,ftp这个系统本地用户没法进行访问了,所有的ftp客户端当然也没法进行上传下载了。

write_enable=YES #可写(可上传)

xferlog_enable=YES

xferlog_file=/etc/vsftpd/vsftpd.log

xferlog_std_format=YES

3项由于设置log日志,记得在/etc/vsftpd/下新建一个vsftpd.log文件。

guest_enable=YES  #启用虚拟用户

guest_username=ftp  #虚拟用户借用的系统本地用户名

user_config_dir=/etc/vsftpd/virtualuser_conf  #虚拟用户的配置文件路径,所以别忘了在/etc/vsftpd/目录下新建一个virtualuser_conf文件夹

创建vsftp用户

配置文件修改完成后,需要设置虚拟用户

比如要添加一个叫weixin用户,ftp客户端就使用该用户名(密码后面设置)进行上传下载,在/etc/vsftpd/virtualuser_conf新建一个名叫weixin的文件

cd /etc/vsftpd/virtualuser_conf

vi weixin

 

文件里面的内容为:

local_root=/home/tomcat/webapps/webdav/CloudSystem

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

 

*参数说明:

local_root=/home/ftpuser  #该虚拟用户上传下载的根目录

write_enable=YES  #可写(可上传)

anon_umask=022  #掩码

 

接下来在/etc/vsftpd/目录新建一个记录所有客户端用户(虚拟用户)的用户名密码的文本文档:

cd /etc/vsftpd

vi virtualuser_passwd.txt

里面的内容为:

weixin

123456

奇数行是用户名,偶数行是密码,支持创建多个

   

接着,生成虚拟用户认证的db文件

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

 

随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句再增加以下两句

auth required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd

account required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd

配置vsftp目录权限

设置服务器上的目录权限

因为这里设置的上传下载的根目录为

/home/tomcat/webapps/hdwebdav/CloudSystem,所以这个文件夹的权限很重要,开始新建的时候它是root:root,属于root用户,属于root组,后来改成了root:ftp,即改成了ftp组,因为客户端进行上传下载是借助服务器上的ftp用户,ftp用户是属于ftp组的。所需需要将这个目录改成ftp

执行下列命令

chown -R root:ftp /home/tomcat/webapps/webdav/CloudSystem

chmod 777 /home/tomcat/webapps/webdav/CloudSystem -R

配置完成后,可以开启ftp服务

servicevsftpdstart

 
 
 
原文地址:https://www.cnblogs.com/szy2018/p/12574103.html