1. 程式人生 > 其它 >ftp伺服器搭建-el.7

ftp伺服器搭建-el.7

1、上傳vsftpd的rpm包ftp.sh至任意路徑;

2、用root使用者執行ftp指令碼,具體如下:

[root@localhost ~]# bash ftp.sh ${ftp使用者} ${ftp密碼} ${被動模式最小埠號} ${被動模式最大埠號}
# 示例:
[root@localhost ~]# bash ftp.sh ftp 123456 60000 61000

cat ftp.sh

#!/bin/bash
ftpuser=$1
ftppasswd=$2
minport=$3
maxport=$4
file=/etc/vsftpd/vsftpd.conf

if ! rpm -q vsftpd &>/dev/null;then
    rpm -ivh vsftpd-*.rpm
fi

useradd -d /var/$ftpuser -s /bin/bash -m $ftpuser
echo "$ftppasswd" | passwd $ftpuser --stdin
setfacl -m d:u:$ftpuser:rwx /var/$ftpuser
setfacl -m d:g:$ftpuser:rwx /var/$ftpuser

cat /dev/null > /etc/vsftpd/ftpusers
echo "$ftpuser" > /etc/vsftpd/user_list
sed -i 's/^anonymous_enable=.*$/anonymous_enable=NO/' $file
sed -i 's/^listen=.*$/listen=YES/' $file
sed -i 's/^listen_ipv6=\(.*$\)/#listen_ipv6=\1/' $file

cat >> $file << EOF
userlist_deny=NO
userlist_enable=YES
local_root=/var/$ftpuser
pasv_enable=YES
pasv_min_port=$minport
pasv_max_port=$maxport
EOF

if ! systemctl status firewalld &>/dev/null; then
    systemctl stop firewalld
fi

if systemctl status vsftpd &>/dev/null; then
    systemctl restart vsftpd
else
    systemctl start vsftpd
fi
systemctl status vsftpd