转自:http://litvip.com/2011/02/19/109

一.前提

你已经安装了vsftpd,如果没有安装,请执行yum -y install vsftpd

二.我们的目标是创建符合如下条件的2个ftp用户

用户名       密码     权限          用户目录

testuser1 pass1 只读权限 /home/vsftpd/testuser1

testuser2 pass2 读写权限 /home/vsftpd/testuser2

用户信息我们将保持到文件里,关于和MySql或者LDAP的联动教程,将在今后的博客中更新。

三.配置步骤

1.首先我们创建用于用户的数据库

1
2
3
4
5
6
7
8
9
[root@rhel5 ~]# vi /tmp/userinfo.txt
testuser1
pass1
testuser2
pass2
[root@rhel5 ~]# yum install db4-utils
[root@rhel5 ~]# db_load -T -t hash -f /tmp/userinfo.txt /etc/vsftpd/vsftpd_login.db
[root@rhel5 ~]# rm -f /tmp/userinfo.txt
[root@rhel5 ~]# chmod 600 /etc/vsftpd_login.db

2.配置PAM文件vsftpd.vu

1
2
3
[root@rhel5 ~]# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db

3.创建虚拟用主目录/home/vsftpd,并创建属于testuser1,testuser2各自的目录。

1
2
[root@rhel5 ~]# useradd -d /home/vsftpd -s /bin/false vsftpd
[root@rhel5 ~]# mkdir /var/ftpvirtual/{testuser1,testuser2}

4.设置vsftpd主文件/etc/vsftpd/vsftpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@rhel5 ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
  
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
  
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/virtual_user_conf
pam_service_name=vsftpd.vu

5.创建并配置各个用户的属性文件

1
2
3
4
5
6
7
8
9
10
11
12
[root@rhel5 ~]# mkdir /etc/vsftpd/virtual_user_conf
[root@rhel5 ~]# touch /etc/vsftpd/virtual_user_conf/testuser1
[root@rhel5 ~]# vi /etc/vsftpd/virtual_user_conf/testuser1
local_root=/home/vsftpd/testuser1
[root@rhel5 ~]# touch /etc/vsftpd/virtual_user_conf/testuser2
[root@rhel5 ~]# vi /etc/vsftpd/virtual_user_conf/testuser2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/testuser2

6.重启vsftpd

1
[root@rhel5 ~]# /etc/init.d/vsftpd restart

7.大功告成,测试你的用户吧。

注:如果登陆不成功

1.再检查一遍你的设置

2.确认防火墙

3.确认selinux