vsftp好久没用了 刚才一不小心在老大的引诱下,搞了一下
作为一个公共ftp,需要提供匿名用户的访问.要求匿名用户可以访问,查看,下载,但是不能下载.然后又需要一个管理员用户来管理
拿171试了一下,因为171上面的正是vsftp,发现了几个问题
1. 匿名用户,在vsftp.conf设置了anonymous_enable=YES后,还需要在虚拟目录下面加配置文件:ftp
这里需要注意的是 文件名称应该是ftp 不是anonymous,俺刚开始就自作聪明的建立了一个anonymous...文件为空也可以,不然会提示:
500 OOPS: reading non-root config file
2. 500 OOPS: vsftpd: refusing to run with writable anonymous root 问题
查了一些资料,据说这是因为ftp用户的家目录的权限不对
也就是ftp的家目录(vsftp.conf里面的anon_root的那个) 不能是全权限(777),据说是vsftp的安全性的体现..
还有就是不能是ftp:ftp 而且连属主用户或者用户组都不能,比如ftp:root 或者 root:ftp都不可以.
3.我的解决办法
在/var/ftp下面建立一个文件夹pub
设置权限:
chmod +777 pub
匿名用户:
anon_root=/var/ftp
test用户:
local_root=/var/ftp
这样,匿名用户和test用户都可以访问同一个目录/var/ftp 但是,如果要上传的话 只有用test通过pub来上传....
4. 老大的解决办法
在/var/ftp下面建立一个文件夹pub
新建用户vsftp
设置权限:
chmod +775 pub
chown vsftp:root /var/ftp
匿名用户:
anon_root=/var/ftp/pub
test用户:
local_root=/var/ftp
但是,单单这样还不行,还得在vsftpd里面设置:
把
guest_username=ftp
改成:
guest_username=vsftp
这样的情况下,匿名用户访问的是 /var/ftp/pub 可以查看和下载
test用户访问的是 /var/ftp 具有管理权限
但是这样的就有一个问题:
只有把guest_username改成不是ftp的,就可以了,这个是什么原因呢?
还有就是anon_root指定的目录,为什么不能属于ftp?
而改成vsftp就可以了?.
|