vsftp部署
一键安装脚本,直接在Centos服务器上一键安装vsftpd服务并开通ftp账户
#/bin/bash ###脚本使用说明 #bash 脚本名称 ftp账户 ftp密码 虚拟用户 #sh -x install-vsftpd.sh xiaowu xiaowu666 www ##01vsftpd用户 user=$1 pass=$2 codeuser=$3 ##02安装和配置文件如下 /usr/bin/yum install vsftpd -y cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak echo " " > /etc/vsftpd/vsftpd.conf cat << EOF >/etc/vsftpd/vsftpd.conf anonymous_enable=NO
allow_writeable_chroot=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES xferlog_file=/var/log/xferlog listen=YES
pasv_enable=YES
use_localtime=YES listen_port=2038 pasv_min_port=2037 pasv_max_port=2039 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES check_shell=YES chroot_local_user=YES guest_enable=YES guest_username=$codeuser virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/extra EOF #03判断code用户是否存在,不存在创建 /usr/bin/id $3 >/dev/null if [ $? -eq 1 ];then $(useradd ${codeuser} -s /sbin/nologin -M) sed -i "s#/home/$codeuser#/data/www#g" /etc/passwd else echo "user have exsited" sed -i "s#/home/$codeuser#/data/www#g" /etc/passwd fi ##04创建用户权限 [ ! -d /etc/vsftpd/extra ]&&mkdir /etc/vsftpd/extra -p cat << EOF >/etc/vsftpd/extra/$1 local_root=/data/www/$1
allow_writeable_chroot=YES
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES idle_session_timeout=600 data_connection_timeout=120 max_clients=3 max_per_ip=3 local_max_rate=500000 EOF ##05添加用户信息 cat <<EOF >/etc/vsftpd/vsftpd_login $user $pass EOF ##06加密生成密码文件 /usr/bin/db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db ##07将密码文件写入pam.d认证文件中 cat <<EOF >/etc/pam.d/vsftpd auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login EOF
mkdir -p /data/www/$1
touch /var/log/xferlog
chown -R ${3}.${3} /data/www
chown -R ${3}.${3} /var/log/xferlog
##08启动
vsftpd systemctl restart vsftpd
摘自: