CentOS vsftpd 虚拟用户详解

今天由于需求搭建了ftp服务,这里需要注意的是centOS和linux下的redhat 是有不同之处的,亲身做过、研究过,把一些学习之处说一说,如有错误,请大家指教;
首先,搭建vsftpd 服务:安装包即可
rpm -ivh /var/ftp/CentOS/vsftpd-2.0.5-12.el5.x86_64.rpm (包的默认路径是在/media/cdrom/CentOS/ 下),安装即可
因为是建虚拟用户,直接就奔主题去了。。呵呵
1.先vi 一个文本文档,奇数行是用户名,偶数行是密码,这点大家切记
文档名字任意起,我这边写成了lonin.txt ,lonin里面写的就是咱们虚拟账户的名字和密码。,
frank
coolbar1!.0
sanguo
sanguo
2.虚拟用户需要一个数据库的转换,依赖于包db4,db4-utils,db4-devel
db4-devel-4.3.29-9.fc6
db4-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6
3.将咱们建的文档转变成数据库的形式。,,这一点很重要
db_load -T -t hash -f lonin.txt /etc/vsftpd/vsftpd_login.db 
chmod 700 /etc/vsftpd/vsftpd_login.db 这样做事禁止其他用户查看数据库里面的用户,安全性很重要
4.添加pam认证。需要安装包
pam-devel-0.99.6.2-4.el5
pam-0.99.6.2-4.el5
pam_pkcs11-0.5.3-23
同时也要编辑/etc/pam.d/vsftpd
[root@localhost ~]# cat /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
这两行放在文件头部,而且参数与linux redhat是不同的,
此后,要建立虚拟账号,useradd -d /home/ftpsite/ vritual
这时需要注意的是,此时你的虚拟账号上传的目录必须在home/ftpsite下。否侧会提示你密码不正确或者是500OPS错误
这样就ok了。。。下面要做的就是对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_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES

guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/user_conf
virtual_use_local_privs=YES

之后咱们要在/etc/vsftpd/user_conf 编辑虚拟账户的权限
那我的虚拟用户frank
local_root=/home/ftpsite/SanGuo
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
这样用frank用户登录即可
[root@localhost user_conf]# ftp 192.168.2.46
Connected to 192.168.2.46.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.2.46:root): frank
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.


这样就OK了、、、如果大家有什么疑问的,或者没有做出来效果的,可以加QQ群:140704742
谢谢

from: http://www.linuxdiyf.com/viewarticle.php?id=203796

posted on 2011-07-11 17:55  房客  阅读(1298)  评论(0编辑  收藏  举报

导航