欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-20 09:03:35
...

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:[email protected]_ip:port
例如:lftp ftp://ftp_user1:[email protected]:21
提示:如果lftp没有安装,直接通过yum安装:yum -y install lftp

相关标签: ftp服务器