我是根据网站上的一个教程自己做了一遍的。有不对地方欢迎指正交流!

[root@bys ~]# rpm -qa|grep vsftpd    查询软件是否安装
vsftpd-2.0.5-16.el5_4.1
[root@bys ~]# ps -eaf|grep vsftpd    查询VSFTP相关的进程   我这个是配置好后已经有客户机登陆进入时查看的,呵呵
root      2430     1  0 01:23 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
nobody    2766  2430  0 01:52 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
ftp       2768  2766  0 01:52 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      2780  2685  0 01:57 pts/0    00:00:00 grep vsftpd
[root@bys ~]# netstat -an|grep :21   查询21端口监听      
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN     
tcp        0      0 192.168.0.5:21              192.168.0.202:4002          FIN_WAIT2  
[root@bys ~]# netstat -an|grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN     
tcp        0      0 192.168.0.5:21              192.168.0.202:4376          ESTABLISHED

vsftpd安装好以后,开启服务后,默认就是可以匿名登陆的。现在我们需要设置匿名登陆用户可以在route/upload文件夹中上传文件及新建目录
[root@bys pub]# cd /etc/vsftpd    
[root@bys vsftpd]# ls            查看/etc/vsftpd 中文件
ftpusers   vsftpd.conf    最后一个脚本vsftpd_conf_migrate.sh是vsftpd操作的一些变量和设置
user_list  vsftpd_conf_migrate.sh
[root@bys vsftpd]# more ftpusers     用户控制文件,在这个文件里面的用户,默认是不可以使用vsftpd服务的
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@bys vsftpd]# more user_list   默认功能和第一个一样,但是通过配置,我们可以让只有在第二个文件里的用户才能使用vsftpd服务,这样新加入的用户就不会自动拥有vsftp的使用权,这样可以让vsftpd服务器更加安全
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in t
his file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /e
tc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@bys ftp]# ls     默认登陆进入FTP后的根目录是/var/ftp/    默认只有pub文件夹  可以手动添加目录
network  pub  route  switch
[root@bys ftp]# cd route
[root@bys route]# mkdir upload
[root@bys route]# ls
upload
[root@bys route]# pwd
/var/ftp/route
[root@bys route]# ll
婊璁?8
drwxr-xr-x 2 root root 4096 07-12 00:50 upload
[root@bys route]# cd /etc/vsftpd
[root@bys vsftpd]# more vsftpd.conf        配置文件里面的注释我给删了。看着方便
anonymous_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


[root@bys vsftpd]# pwd
/etc/vsftpd
[root@bys vsftpd]# cd /var/ftp
[root@bys ftp]# ls
network  pub  route  switch
[root@bys ftp]# cd pub
[root@bys pub]# ls
1  q  q.txt  vsftpd.conf  vsftpd.txt

[root@bys pub]# cd ..
[root@bys ftp]# cd route
[root@bys route]# ls
upload
[root@bys route]# ll    查看目录权限
婊璁?8
drwxr-xr-x 2 root root 4096 07-12 00:50 upload


第一步:设置upload目录写入权限
[root@bys route]# chown ftp upload/      先修改upload目录权限分配ftp用户所有,目录权限是755
[root@bys route]# ll
婊璁?8
drwxr-xr-x 2 ftp root 4096 07-12 00:50 upload
[root@bys route]# cd /etc/vsftpd
[root@bys vsftpd]# ls
ftpusers   vsftpd.conf
user_list  vsftpd_conf_migrate.sh
 

第二步  修改配置文件中相应选项
[root@bys vsftpd]# vi vsftpd.conf
anonymous_enable=YES         是否允许匿名用户登陆
write_enable=YES
local_umask=022
anon_upload_enable=YES       把#号去掉,启用这一条配置,允许上传
anon_mkdir_write_enable=YES  把#号去掉,启用这一条配置,允许写入(新建目录)
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
"vsftpd.conf" 30L, 710C written


第三步:修改selinux ,使支持上传
[root@bys vsftpd]# getsebool -a|grep ftp    getsebool -a 是显示所有的selinux的布尔值 查询FTP相关的      
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off
[root@bys vsftpd]# setsebool -P allow_ftpd_anon_write on   设置布尔值
[root@bys vsftpd]# getsebool -a|grep ftp
allow_ftpd_anon_write --> on
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off
[root@bys vsftpd]# ls -Zd /var/ftp/route/upload
drwxr-xr-x  ftp root root:object_r:public_content_t   /var/ftp/route/upload
[root@bys vsftpd]# chcon -t public_content_rw_t /var/ftp/route/upload    修改

[root@bys vsftpd]# ls -Zd /var/ftp/route/upload
drwxr-xr-x  ftp root root:object_r:public_content_rw_t /var/ftp/route/upload
[root@bys vsftpd]# reboot   重启服务器

Broadcast message from root (pts/1) (Tue Jul 12 01:20:51 2011):

The system is going down for reboot NOW!
[root@bys vsftpd]# Last login: Tue Jul 12 01:01:15 2011 from 192.168.0.202
[root@bys ~]# iptables -F   清空防火墙规则后客户机(WIN系统)登陆测试
[root@bys ~]#
 

匿名用户可以上传文件以及新建目录,但是不可以删除文件及更改目录名称。