作者:雅俊建安义琬 | 来源:互联网 | 2014-05-28 09:06
系统:centos6.41添加虚拟用户的用户及密码[root@localhostvsftpd]#vimdb_user.txt写入如下,单行用户名,双行密码virtual1abcd1234virtual2abcd12342生成用户口令认证文件用户认证文件的生成需要安装额外的软件来实现,软件名为:db4-utils[roo
系统:
centos 6.4
1>添加虚拟用户的用户及密码
[root@localhost vsftpd]# vim db_user.txt
写入如下,单行用户名,双行密码
virtual1
abcd1234
virtual2
abcd1234
2> 生成用户口令认证文件
用户认证文件的生成需要安装额外的软件来实现,软件名为:db4-utils
[root@localhost Packages]# rpm -ivh
db4-utils-4.7.25-16.el6.i686.rpm
warning: db4-utils-4.7.25-16.el6.i686.rpm: Header
V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing...
###########################################
[100%]
package db4-utils-4.7.25-16.el6.i686 is already installed
使用命令开始生成文件,文件名为:db_user.db
[root@localhost vsftpd]# db_load -T -t hash -f
db_user.txt db_user.db
3>为保证安全性可以把密码文件修改一下权限
[root@localhost vsftpd]# chmod 600 db_user.*
4> 编辑PAM认证文件,先把此文件备份一下
[root@localhost vsftpd]# cp -p
/etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
编辑文件,把里面的内容全部删除之后再写入如下两句,如果系统是64位的,就把下面的lib修改成lib64就行了,注意,一定要把里面的内容给清除,不然的话是不成功的.
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so
db=/etc/vsftpd/db_user
account required /lib/security/pam_userdb.so
db=/etc/vsftpd/db_user
5>FTP虚拟用户是需要一个系统用户的,这个用户不需要密码,也不需要登录,只提供一个登录目录.并且让这个目录对other用户拥有读写权限.
[root@localhost vsftpd]# useradd -s /sbin/nologin
code
[root@localhost vsftpd]# chmod o+rw /home/code
6>修改vsftpd主配置文件,让系统支持虚拟用户,添加如下内容
[root@localhost vsftpd]# vim vsftpd.conf
guest_enable=yes
guest_username=code
7>重启vsftpd服务器
[root@localhost vsftpd]# service vsftpd restart
关闭 vsftpd:
[确定]
为 vsftpd 启动 vsftpd:
[确定]
8>开始测试
在另一台linux下测试,首先在/home/code中写入一些内容,如
[root@localhost vsftpd]# echo "this is a test" >
/home/code/code.txt
使用另一台Linux连接
[code@root ~]$ lftp virtual1@192.168.1.102
口令:
lftp virtual1@192.168.1.102:~> ls
-rw-r--r-- 1 0
0 15 Oct 25
07:55 code.txt
9>测试成功!
注:如果你在登录之后全出现如下情况的话,那么就是你的SELinux在起作用,SELinux阻止了你的登录
lftp code@192.168.1.102:~> ls
ls: 登录失败: 500 OOPS: cannot change
directory:/home/code
我们可以直接关闭SELinux
命令:/usr/sbin/setenforce 0
也可以使用另一种方法
这样就可以了....