环境
:
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 �Civh db4-unitls
。。。
--aid
安装完成后,使用
db_load �CT �Ct 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
客户端软件访问进行验证。