1. 程式人生 > >使用shell指令碼快速搭建ftp伺服器

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