最近在研究vsftp的配置,遇到一些问题,现在记录下来与大家分享
 
1.要关掉selinux,否则会出现客户机无法下载文件的情况
方法:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
 
2.要关掉iptables,否则会出现无法连接FTP服务器的情况
方法:service iptables stop
 
3.vsftpd.conf这个配置文件中的四个匿名用户控制语句非常重要:
                   anon_upload_enable=(yes/no);(上传权限控制)
                   anon_world_readable_only=(yes/no);(下载权限控制)<?XML:NAMESPACE PREFIX = O />

                   anon_mkdir_write_enable=(yes/no);(创建权限控制)
                   anon_other_write_enable=(yes/no);(删除和重命名权限控制)
 
4.在添加上传、创建、删除和重命名权限的时候要确保上层文件夹有写权限才行。
 
5.其他控制语句详解:
####################################################################
#                 Local FTP user Settings                                      
#       有关本机用户的FTP相关设置(/etc/passwd中普通用户号)                  
####################################################################
#local_enable=YES
代表/etc/passwd中普通用户不能使用FTP服务。
 
#local_umask=022
local-umask的意义是Local User上传文件时,文件权限会使用所指定的umask加以运算
 
#chroot_local_user=YES
chroot_local_user的用途是将用户的HOME目录变为其FTP登录后的根目录,如此一来,所有Local User便不能离开起home目录。
 
#chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list
若不想利用chroot_local_user=YES把所有本地用户(Local User)都限制在其home目录,可利用chroot_list_enable=YES设定值,将某些帐号限制在home目录下,当chroot_list_enable=YES时,登录用户名字若在/etc/vsftpd.chroot_list内,则会启用chroot机制,将这个用户限制在其home目录下。

#local_max_rate=7200

local_max_rate用来限制Local user每秒的最高传输速度。其单位是bytes/sec,默认值为0,就是没有限制。
 
################################################################
#                 Anonymous用户的相关配置                                      
################################################################
#anonymous_enable=YES
anonymous_enable=YES,允许用户可用匿名(anonymous)或ftp帐号,不用密码就可登录FTP服务器,默认值是YES。

#anon_world_readable_only=YES
anon_world_readable_only=YES,用来限制匿名(anonymous)用户只能下载有开放Other可以write的文件,其默认值为YES。

#anon_upload_enable=YES
anon_upload_enable用来限制匿名(anonymous)用户可否上传文件,默认值为NO。

#anon_umask=022
anon_umask的意义是匿名(anonymous)用户上传文件时,文件权限会用所指定的umask加以运算,默认值为077。

#anon_mkdir_write_enable=YES
anon_mkdir_write_enable允不允许anonymous用户建立目录,其默认值为NO。

#anon_other_write_enable=YES
所否允许anonymous用户有write的权限,不过记得通过anon_other_write_enable的限制后,还得看打算写的目录或文件的权限允不允许anonymous用户write。

#chown_uploads=YES
#chown_username=whoever
chown_uploads用户指定anonymous帐号上传的文件是否要改变其所有者。chown_uploads默认值为NO,chown_username用来指定新的所有者。

#anon_max_rate=7200
anon_max_rate用来限制anonymous用户每秒的最高传输速度,其单位是bytes/sec,默认值是0,就是没有限制。

###############################################################
#                    Log Settings                                              
#                 有关FTP日志的相关规定                                         
###############################################################

#syslog_enable=YES
#syslog_enable=YES会将本来应记录在/var/log/vsftpd.log的信息,转而传给syslogd daemon,
#由syslogd的配置文件决定存于何位置。syslog_enable默认值为NO。

#log_ftp_protocol=YES
#log_ftp_protocol=YES会将所有FTP有关的请求和回应全部记录,其默认值为NO。

#xferlog_enable=YES
#xferlog_enable=YES会详细记录有关上传/下载的信息,其默认值为NO。

#vsftpd_log_file=/var/log/vsftpd.log
#vsftpd_log_file可用来指定vsftpd的log文件位置。

#xferlog_std_format=YES
#xferlog_std_format默认值为NO,若设定为YES,则log内容会采用标准xferlog格式(wu-ftpd日志文件所采用的格式)。

#xferlog_file=/var/log/xferlog
#xferlog_file用来指定wu-ftpd格式的log的存放位置。

#dual_log_enable=YES
#dual_log_enable默认值为NO,若设定为YES,则/var/log/xferlog和/var/log/vsftpd.log均会记录FTP相关日志。

#setproctitle_enable=YES
#setproctitle_enable默认值为NO,若设定为YES,则查看系统进程状态时,会列出ftp连接的状态。
#例如执行 ps -ef | grep vsftp 可看到谁正在连接。
#nobody 4424 ... vsftpd: 127.0.0.1: not logged in

################################################################
#                          Transfer Settings                                   
#                       传输文件的相关规定                                      
################################################################

#connect_from_port_20=YES
#connect_from_port_20=YES代表主动模式的数据连接是用端口20,其默认值为NO。

#idle_session_timeout=600
#idle_session_timeout设定FTP客户端多久未执行任何ftp指令操作,便将其断线,默认值为300秒。

#data_connection_timeout=120
#允许数据传输时idle的秒数,默认值是300秒。

#async_abor_enable=YES
#async_abor_enable的默认值为NO,必须要FTP客户端有支持async_abort的机制才可以打开。

#ascii_upload_enable=YES
#ascii_upload_enable的默认值为NO,若设为YES则用户可用ascii方式上传数据,不过若启用此参数可能会
#导致Dos***,所以采用默认值。

#ascii_download_enable=YES
#同上,ascii_download_enable默认值为NO,若设为YES则用户可用ascii方式下载数据,不过若启用此参数可能会
#导致Dos***,所以采用默认值。

#pasv_enable=NO
#pasv_enable默认值为YES,若设为NO,FTP客户端则无法使用被动模式FTP。

#pam_service_name=vsftpd
#vsftpd PAM模块的名称,起存放在/etc/pam.d/目录。

#listen=YES
#listen默认值为NO,若设定为YES,则vsftpd会用standalone方式启动。