分类: LINUX
2013-01-17 15:27:13
vsftpd配置文件的设置:
#cat vsftpd.conf anon_mkdir_write_enable=YES #匿名用户可以创建文件夹 anon_upload_enable=NO #匿名用户不可以上传文件 anon_other_write_enable=NO #匿名用户不可以删除/重命名文件
匿名用户通过Windows资源管理器第一次登录vsftp服务器,可以创建文件夹、不可以上传文件、不可以删除/重命名文件,权限与配置文档设置一致。
修改配置文件:
#cat vsftpd.conf anon_mkdir_write_enable=YES #匿名用户可以创建文件夹 anon_upload_enable=NO #匿名用户不可以上传文件 anon_other_write_enable=YES #匿名用户现在变成可以删除/重命名文件了
重启vsftpd服务之后,新的配置未生效,匿名用户还是不可以删除/重命名文件。在Windows资源管理器上停止操作vsftp服务器上面的文件,经过2~3分钟后,新配置生效了,即匿名用户突然就可以删除/重命名文件了。但是如果匿名用户一直在Windows资源管理器上操作文件(例如不断尝试重命名文件),新配置就一直不会生效。
查看vsftp服务器后台进程:
# ps -eLf |grep vsftpd |grep -v grep root 28177 1 28177 0 1 22:41 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf nobody 28510 28177 28510 0 1 23:21 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf ftp 28512 28510 28512 0 1 23:21 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf # service vsftpd stop Shutting down vsftpd: [ OK ] # ps -eLf |grep vsftpd |grep -v grep nobody 28727 1 28727 0 1 23:54 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf ftp 28729 28727 28729 0 1 23:54 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf系统会给ftp这个用户分配一个新的进程,就算停止vsftpd服务,这个进程也不会消失,由于分配给给匿名用户的线程读取的vsftpd.conf文件是旧的配置文件,所以就出现了本文标题所示的情况。如果匿名用户一直操作文件,此线程会一直存在;如果匿名用户在2~3分钟内不操作文件,此线程就会消失。
之后匿名用户重新访问vsftp服务,系统会重新给匿名用户分配线程,读取的就是新的配置文件了。
解决方法:
可以修改/etc/init.d/vsftpd文件,当stop服务的时候,kill掉所有相关进程。