将vsftpd服务转交由xinetd管理监听:
root@test#vi /etc/vsftpd/vsftpd.conf
listen=YES  ==>listen=NO 或者注释掉 #listen=YES
root@test#cd /etc/xinetd.d/
root@test#cp krb5-telnet vsftpd
root@test#vi vsftpd
service ftp    /*此处跟/etc/services中定义的一样*/
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/vsftpd /*这里是vsftpd服务的程序*/
        log_on_failure  += USERID
        disable         = yes
}
root@test#service xinetd restart
这样vsftpd就有xinetd来监听ftp端口,而在有请求的时候,由xinetd来打开vsftpd服务来应答请求。
一般由xinetd来管理的服务多时连接暂时的,不连续请求的,而且对相应速度不是有很高要求的服务,比如http服务就不适合用xinetd来代监听服务请求。


虚拟用户:
root@test#yum install vsftpd
root@test#cd /etc/vsftpd/
root@test#cat >> /etc/vsftpd/vsftpd.conf << EOF
anon_upload_enable=YES
guest_enable=YES
guest_username=virtual
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
EOF
root@test#vi users
user1
pass1
user2
pass2
root@test#rpm -vih db4-utils-version.rpm
root@test#db_load -T -t hash -f users vusers.db
root@test#mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak
root@test#vi /etc/pam.d/vsftps
auth       required     pam_userdb.so db=/etc/vsftpd/vusers
account  required     pam_userdb.so db=/etc/vsftpd/vusers
root@test#useradd -d virtual
root@test#service vsftpd restart
root@test#lftp localhost -u user1,pass1

单个用户配置文件:
root@test#echo "user_config_dir=/etc/vsftpd/users_config" >> /etc/vsftpd/vsftpd.conf
root@test#touch /etc/vsftpd/users_config/user1
root@test#echo "anon_upload_enable=NO" >>/etc/vsftpd/users_config/user1
这样虽然主配置文件中anon_upload_enable=YES,但是user1还要匹配自己的用户配置,而是拒绝的。

vsftpd中匿名用户的访问权限控制的非常好,一般使用中,匿名用户的权限多需要被一点点的增大,而由于本地用户的访问权限过高,而更多地去限制本地用户。
继续补充中。。。。。。