天天看點

CentOS6.X部署Vsftpd服務腳本

entOS6.X部署Vsftpd服務腳本

Vsftpd部署腳本

    腳本已經在CentOS 6.X x86_64的系統上測試過了!

#!/bin/bash

# CentOS 6.X x86_64

rpm -q vsftpd

if [ $? -eq 0 ];then

    echo "vsftpd已經安裝,請執行該指令rpm -e vsftpd解除安裝vsftpd"

    exit 1

fi

if [ -d "/etc/vsftpd" ];then

    mv /etc/vsftpd{,.$(date +%Y%m%d%H%M)}

yum install -y vsftpd db4 db4-devel

mv /etc/vsftpd/vsftpd.conf{,.$(date +%Y%m%d%H%M)}

# 生成vsftpd配置檔案

cat << 'EOF' >> /etc/vsftpd/vsftpd.conf

listen=YES

listen_port=21

local_enable=YES

write_enable=NO

anonymous_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/ftp

ftpd_banner=welcome vsftp!

pam_service_name=vsftpd.pam

vsftpd_log_file=/var/log/vsftpd.log

dual_log_enable=YES

xferlog_enable=YES

local_root=/var/ftp

EOF

# 生成vsftpd的認證檔案

cat << 'EOF' >> /etc/pam.d/vsftpd.pam

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

# 生成vsftpd虛拟使用者的賬号和密碼

USER=ftpuser

PASS=$(echo $RANDOM | md5sum | head -c 20)

echo -e "$USER\n$PASS" > /etc/vsftpd/logins.txt

mkdir /etc/vsftpd/ftp

# 為生成的使用者添加一個獨立的配置檔案

cat << 'EOF' >> /etc/vsftpd/ftp/${USER}

write_enable=YES

anon_world_readable_only=NO

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_upload_enable=YES

anon_umask=022

file_open_mode=0777

local_root=/tmp

# 每次填加新的虛拟使用者後執行的指令

# /etc/vsftpd/logins.txt是記錄虛拟使用者的賬号和密碼

# 添加新的虛拟使用者在檔案末尾追加賬号和密碼就可以了,奇數是使用者,偶數是密碼

echo "db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db" > /etc/vsftpd/cmd

chmod u+x /etc/vsftpd/cmd

/etc/vsftpd/cmd

chkconfig vsftpd on

/etc/init.d/vsftpd start

echo "####################################"

echo "Config Files: /etc/vsftpd/vsftpd.conf"

echo "Pam Files: /etc/pam.d/vsftpd.pam"

echo "Db Files: /etc/vsftpd/vsftpd_login.db"

echo "User/Password Files: /etc/vsftpd/logins.txt"

echo "Create User/Password Db Files Command: bash /etc/vsftpd/cmd"

echo "User/Password: $USER/$PASS"

echo "Vsftpd Install OK!"

使用方法

運作腳本:

1

[root@iZ2583c3psrZ ~]# bash vsftpd.sh

添加虛拟使用者: 

2

3

4

[root@iZ2583c3psrZ ~]# vim /etc/vsftpd/logins.txt

#奇數行是使用者名,偶數行是密碼

testftp

test2016!^&

将logins.txt的使用者生成為虛拟使用者