环境:CentOS 5.4
安装:cd /media
Rpm -ivh vsftpd-xx-xx-xx 安装完成
启动服务:service vsftpd start
创建测试文件:cd /var/ftp/pub
Vi test并编辑内容“这是一个测试文件”
匿名测试:ifconfig查看服务器ip地址,然后输入“ftp 服务器ip地址”
提示输入用户名ftp(anonymous)
注:这个时候你有可能进不去,并报告550错误。这个时候你可以看下selinux排除故障。由于selinux设置是否是强制,如果是,则将其改为:警告或者禁用就可以了。
Cd pub 进入pub目录
Ls查看test文件是否存在
进入vsftpd.conf配置文件修改,将anon_upload_enable=YES和anon_mkdir_dictionry_enable前面的“#”去掉,测试从pub目录上传和创建文件、目录等。
这个时候向pub目录中上传文件、创建文件有可能还是不行。别着急,linux下就是这样的,权限设置比较细。我们在来看下pub目录的权限是什么。进入/var/ftp目录后,使用“ll”命令查看,这时你会发现他的权限是755,所以就明白为什么不能上传文件、下载文件了吧。你需要赋予pub目录,777权限才行。哈!这下好办了,直接用chmod 777 pub给pub目录赋权限。然后在测试,ok上传成功。在试试看创建文件,也ok。好了到这一步,匿名测试部分基本上已经ok了。其他在细节方面的东西,这里就不做测试了。下面看本地用户测试部分。
本地测试:
在做本地测试前首先要吧匿名登录禁用掉,及进入vsftpd.conf配置文件将anonymous_enable=YES,中的”YES”改为”NO”。然后保存推出,并重启服务,service vsftpd restart。好了,现在可以测试了。在浏览器中输入ftp://服务器ip地址,现在你会发现提示你输入用户名和密码才可以登录进去。那么我们以系统中jsp用户为例,输入jsp和jsp的密码。Ok可以进去,好了现在创建一个文件看看。你会发现也可以创建文件夹,不仅可以创建文夹件,还可以删除 、重命名等等。(注意:是文件夹,而非文件。并且默认也可以上传和下载)那么这时候问题来了,问什么不可以创建文件呢?好,我们就带着这个问题看看究竟是怎么回事。
我们首先进入/home目录,ls下看看有哪些目录。可以看到jsp在这里,其实这就是jsp用户存储文件的地方。我们在来看看他是什么权限,ll下。大家可以看到他是755,因为这个文件夹得属主就是jsp,他自然可以创建、删除、上传、下载。另外在看下配置文件里是怎么写的。可以看到write_enable=YES这一项,他就是控制创建文件的。因为它前面没有“#”号,自然是生效的,所以可以创建文件。
虚拟用户:
虚拟用户的测试比较麻烦点。首先和大家屡一下思路:
1、 创建虚拟用户口令库文件
2、 生成vsftpd的认证文件
3、 建立虚拟用户所需的PAM配置文件
4、 建立虚拟用户要访问的目录并设置相应的权限
5、 修改配置文件
6、 重启vsftpd服务
那么下面我们就根据上面所叙述的六个步骤来讲一讲虚拟用户的测试。首先我们来创建用户口令文件库。
1、在/home目录下vi logins.txt
然后输入mike
12345
John
45678(说明:奇数行为用户名,偶数行为密码)
2、由于建立vsftpd认证文件过程中需要用到db_load工具,所以我们首先安装db4-unitls工具。安装过程如下
Cd /media 中找到rpm报所在的目录
Rpm –ivh db4-unitls。。。 --aid
安装完成后,使用db_load –T –t hash -f /home/logins.txt /etc/vsftpd/vsftpd_login.db命令来生成认证文件。执行完成后,通过cat /etc/vsftpd/vsftpd_login.db来验证看生成效果。
然后给vsftpd_login.db文件赋权,chmod 600 /etc/vsftpd/vsftpd_login.db只允许root有读和写的权限。
3、下面就该创建虚拟用户所需的pam配置文件
Vi /etc/vsftpd/vsftpd.vu
Auth requirted /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
Account requirted /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
保存退出。
4、建立虚拟用户及要访问的目录并设置权限
Useradd -d /home/ftpsite virtual
Chmod 700 /home/ftpsite
5、修改vsftpd.conf文件
在文件中添加下面三项:
Guest_enable=YES
Guest_username=virtual
Pam_serivce_name=vsftpd.vu
6、最后service vsftpd restart
7、通过浏览器或者ftp客户端软件访问进行验证。