原文地址:http://blog.51cto.com/66332211/1957961
本文有改动。
一,使用方式
1,安装vsftp
|
1
|
sh auto_install_vsftp.sh install |
2,新建ftp用户
下面的www为auto_install_vsftp.sh中指定的ftp权限账号,下面的password改为自己想要的密码。
|
1
|
sh auto_install_vsftp.sh useradd www password |
3,创建文件夹 /data/wwwroot/www,共需创建3个文件夹,接着在data目录下:
mkdir /data
mkdir /data/wwwroot
mkdir /data/wwwroot/www
cd /data
chmod -R 777 *
3.5:
开放端口:
firewall-cmd –zone=public –add-port=21/tcp –permanent
firewall-cmd –zone=public –add-port=20/tcp –permanent
firewall-cmd –reload
4.连接到ftp可使用软件FileZilla, 点击下载FileZilla window 32bit ,点击进入FileZilla官网。注意,FileZilla有服务器端版本,也有客户端版本,不能下载错了
5. 如果连接报错220 auth tle ,请在filezalla的站点管理器里的加密选择:使用明文ftp
二,auto_install_vsftp.sh脚本内容
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/bin/sh#author: vim#qq:82996821#OS: Centos7.2#filename: auto_install_vsftp.shusers=/etc/vsftpd/vftpuser.txt #账号配置文件login=/etc/vsftpd/vftpuser.db #账号数据库文件generate_db="db_load -T -t hash -f $users $login"virtual_user_config=/etc/vsftpd/vuser_confvirtual_user_home=/data/wwwroot #ftp根目录位置guest_username=www #指定ftp权限账号#Source function library. /etc/rc.d/init.d/functionsinstall_vsftpd(){setenforce 0yum -y install db4-utilsyum -y install vsftpdsystemctl enable vsftpduseradd -s /sbin/nologin ${guest_username}mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bakcat >/etc/vsftpd/vsftpd.conf<<EOFanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESpasv_enable=YESpasv_min_port=60000pasv_max_port=61000xferlog_std_format=YESlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listpam_service_name=vsftpdguest_enable=YESguest_username=${guest_username}user_config_dir=/etc/vsftpd/vuser_confallow_writeable_chroot=YESEOFmkdir /etc/vsftpd/vuser_confmkdir /etc/vsftpd/chroot_list#i386 32位系统打开下列两行#echo 'auth required pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd#echo 'account required pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd#X64 64位系统打开下列两行echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpdecho 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpdtouch /etc/vsftpd/vftpuser.txtsystemctl restart vsftpd[ $? -eq 0 ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false#开启防火墙,21连接端口,60000-61000为被动模式数据传输端口iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPTiptables -A INPUT -p tcp --dport 60000:61000 -j ACCEPTiptables-save >/etc/sysconfig/iptables}add_user(){not_enough_parameter=56retval=0if [ "$#" -ne 2 ]; then echo "usage:`basename $0` <useradd> <user_name> <password>." exit $not_enough_parameterfiif grep -q "$1" "$users"; then passwd=$(sed -n "/$1/{n;p;}" "$users") if [ "$passwd" = "$2" ]; then echo "the user $1 already exists." exit $retval else echo "updating $1's password ... " sed -i "/$1/{n;s/$passwd/$2/;}" "$users" eval "$generate_db" exit $retval fififor i in "$1" "$2"do echo "$i" >> "$users"doneeval "$generate_db"cat >> "$virtual_user_config"/"$1" <<EOFlocal_root=$virtual_user_home/$1write_enable=YESdownload_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_umask=022EOFmkdir "$virtual_user_home"/"$1"chown $guest_username "$virtual_user_home"/"$1"echo "==========$users============"cat $users}case "$1" in 'install') install_vsftpd ;; 'useradd') add_user $2 $3 ;; *) echo "usage: $0 {install|useradd}" exit 1 ;;esac |