使用shell脚本快速搭建ftp服务器

1、环境:centos7,bash
2、脚本使用说明:可以在执行脚本的时候带上用户名密码
例如:./script_name ftpuser_name passwd**

#!/bin/bash

#设置用户名、密码默认值
ftp_user_name=ftpuser1
password=12345678

#指定用户名密码
ftp_user_name=$1
password=$2

#卸载ftp,排除干扰
rpm -e vsftpd
rm -f /etc/vsftpd/*

#安装ftp
yum -y install vsftpd

#配置ftp
cd /etc/vsftpd/

echo -e "anonymous_enable=NO\n
local_enable=YES\n
write_enable=YES\n
local_umask=022\n
dirmessage_enable=YES\n
xferlog_enable=YES\n
connect_from_port_20=YES\n
xferlog_file=/var/log/vsftpd.log\n
xferlog_std_format=YES\n
ascii_upload_enable=YES\n
ascii_download_enable=YES\n
#chroot_local_user=YES\n
#chroot_list_enable=YES\n
#chroot_list_file=/etc/vsftpd/chroot_list\n
ls_recurse_enable=YES\n
listen=YES\n
#listen_ipv6=YES\n
pam_service_name=vsftpd\n
userlist_enable=NO\n
tcp_wrappers=YES\n
userlist_deny=NO\n
" > vsftpd.conf

#添加用户,排除干扰
userdel $ftp_user_name
rm  -rf /home/$ftp_user_name

useradd -d /home/$ftp_user_name -s /sbin/nologin $ftp_user_name

expect << EOF 
#set timeout 60 
spawn passwd $ftp_user_name
        expect {
	"新的 密码:"
		{
			send "$password\n";
			exp_continue;
		} 
        "重新输入新的 密码:"
                { 
                        send "$password\n"; 
                } 
        } 
        expect eof
EOF

echo -n $ftp_user_name  > /etc/vsftpd/user_list

#配置防火墙
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

#配置SElinux
getsebool -a | grep ftp
setsebool -P ftpd_full_access on

#启动服务
echo
echo "++++++++++++++++++++++准备启动ftp!!!!!!!!!!!!!"
systemctl start vsftpd
systemctl status vsftpd

3、手动登录ftp服务器
①ftp ftp_ip,然后依次输入用户名和密码即可登录。
例如:ftp 192.168.100.100
②lftp ftp://user_name:passwd@ftp_ip:port
例如:lftp ftp://ftp_user1:[email protected]:21
提示:如果lftp没有安装,直接通过yum安装:yum -y install lftp

猜你喜欢

转载自blog.csdn.net/CR_1997/article/details/84301926