找了很久,终于找到像样一点的文章,很详细,参数方面懂英文基本能看懂,一个教程是否有用,关键在于细节。错了一点点就不能配下去了。
------------------------------------------------------------------------------------------------
1. 查看是否安装vsftp
rpm –qa|grep
vsftpd
如果出现 vsftpd-2.0.5-16.el5_5.1 说明已经安装
vsftp
安装vsftp
yum -y install vsftpd
2.
测试是否安装成功(ip 改成自己啊,不要用俺的此次登录为匿名登录 user: anonymous 密码为空
如果成功登录会有下面内容 这说明vsftpd安装成功)如果没有ftp命令,请运行yum install -y
ftp
[root@localhost ~]#service vsftpd start
为 vsftpd 启动
vsftpd:[确定]
[root@localhost ~]#ftp 127.0.0.1
Connected to127.0.0.1.
220
(vsFTPd 2.0.5)
530 Please loginwith USER and PASS.
530 Please loginwith
USER and PASS.
KERBEROS_V4 rejectedas an authentication
type
Name(127.0.0.1:root): anonymous
331 Please specifythe
password.
Password:
230 Loginsuccessful.
Remote system typeis
UNIX.
Using binary mode totransfer files.
ftp> bye
221
Goodbye.
[root@localhost ~]#
3.
修改配置文件/etc/vsftpd/vsftpd.conf
[root@localhost ~]#vi
/etc/vsftpd/vsftpd.conf
取消下面内容前面的注释或添加
anonymous_enable=YES/NO
是否允许匿名用户访问
chroot_list_enable=YES 限定用户不可以离开主目录
chroot_list_file=/etc/vsftpd/chroot_list
loca_enable=YES/NO
本地用户是否可以访问 注:如果为NO
则所有虚拟用户都将不能访问原因:虚拟用户访问在主机上其实是以本地用户访问的
pam_service_name=vsftpd
pam认证文件名在/etc/pam.d/vsftpd
guest_enable=YES
启用虚拟用户功能
guest_username=ftp 指定虚拟用户的宿主用户 –centos
里面已经有内置的ftp用户了(注:此用户在chroot_list_file=/etc/vsftpd/chroot_list文件里所指定的用户)
user_config_dir=/etc/vsftpd/vuser_conf
设置虚拟用户个人vsftp的服务配置文件
(此文件后面不能出现空格)
4. 查看是否安装
db4 db4-utils
[root@localhost ~]#rpm -qa|grep db4
运行后出现下面内容 说明已经安装可以使用db_load命令(主要是
db4-utils)
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-tcl-4.3.29-10.el5_5.2
db4-utils-4.3.29-10.el5_5.2
[root@localhost
~]#
如果没安装则要安装db4-utils
4.1安装db4-utils
[root@localhost ~]#yum -y
install db4-utils
5. 创建
chroot_list_file=/etc/vsftpd/chroot_list文件
[root@localhost ~]#vi
/etc/vsftpd/chroot_list (编辑文件把 /etc/vsftpd/vsftpd.conf
中guest_username的值写到文件中本例中为 ftp)
或者直接按下面进行操作
[root@localhost
~]#touch /etc/vsftpd/chroot_list
[root@localhost ~]# echoftp >>
/etc/vsftpd/chroot_list (此处ftp
也要是/etc/vsftpd/vsftpd.conf中的guest_username的值)
6.
创建虚拟用户目录(密码文本)
[root@localhost ~]#vi /etc/vsftpd/vftpuser.txtx
(奇数行为用户名 ,偶数行为密码)
本文中添加如下(用cat 命令查看)
[root@localhost ~]#cat
/etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz
[root@localhost
~]#
7.生成虚拟用户的db文件
[root@localhost ~]#db_load
-T -t hash -f /etc/vsftpd/vftpuser.txtx
/etc/vsftpd/vftpuser.db
8.
生成虚拟用户的认证文件
[root@localhostvsftpd]# vi
/etc/pam.d/vsftpd
#%PAM-1.0
session
optional pam_keyinit.so force
revoke
auth
required pam_listfile.so item=user
sense=denyfile=/etc/vsftpd/ftpusers
onerr=succeed
auth
required
pam_shells.so
auth
include system-auth
account
include system-auth
session
include system-auth
session
required
pam_loginuid.so
注释掉/etc/pam.d/vsftpd中所有的内容
反正已经不要本地用户的认证了
特别注意
以下区别
32位系统增加以下两句:
auth
required pam_userdb.so
db=/etc/vsftpd/vftpuser
account required
pam_userdb.so db=/etc/vsftpd/vftpuser
64位系统增加以下两句:
auth
required /lib64/security/pam_userdb.so
db=/etc/vsftpd/vftpuser
account required
/lib64/security/pam_userdb.sodb=/etc/vsftpd/vftpuser
这里我发现加了db后缀以后就不识别数据库了,51cto大大的一篇教程里面就是加了db,结果完全读不了数据库,当然也就不能认证啦。
注:db=/etc/vsftpd/vftpuser
中的vftpuser 是你生成的虚拟用户的db文件
9.
创建每个虚拟用户自己的配置文件,配置文件的路径是/etc/vsftpd/vsftpd.conf中的
user_config_dir=/etc/vsftpd/vuser_conf路径
在
/etc/vsftpd/vuser_conf/下面创建以用户名为名称的文件(名称是/etc/vsftpd/vftpuser.txtx
下面的奇数行)
[root@localhostvsftpd]# cat
/etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz
[root@localhostvsftpd]#
mkdir vuser_conf
[root@localhostvsftpd]# vi
/etc/vsftpd/vuser_conf/hope
内容如下
local_root=/var/www(虚拟用户的根目录根据实际修改)
write_enable=YES
(可写)
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
10.
给文夹权限(否则不能上传 权限可自定 本人给的是 777)
[root@localhostvsftpd]# chmod 777
/var/www/
11.
重启vsftpd
[root@localhostvsftpd]# service vsftpd
restart
到此安装配置完成 如果出现连接被 同位体重置 或其它错误
请查看SELinux的当前模式
12.
登录测试
[root@localhost vsftpd]# ftp 127.0.0.1
Connected to
127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please login with USER and
PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as
anauthentication type
Name (127.0.0.1:root): hope
331 Please
specify the password.
Password:
500 OOPS: cannot
changedirectory:/var/www
Login
failed.
ftp>
查看方法
[root@localhost vsftpd]#
getenforce
Enforcing 如果出现(Enforcing
)
关闭方法:[root@localhost vsftpd]#setenforce 0(0|1
开|关)
再次测试 登录成功
[root@localhost vsftpd]# chmod
777/var/www/
[root@localhost vsftpd]# ftp 127.0.0.1
Connected to
127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please login with USER and
PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as
anauthentication type
Name (192.168.1.107:root): hope
331 Please
specify the password.
Password:
230 Login
successful.
Remote system type is UNIX.
Using binary mode to
transfer
files.
ftp>
查看系统是多少位的命令
[root@bogon ~]#
getconf LONG_BIT
64 (64|32)