vsftpd高级用法之虚拟用户配置

1,安装vsftpd,然后如下配置(/etc/vsftpd/vsftpd.conf)
pam_service_name=vsftpd    #设置PAM使用的名称,该名称就是/etc/pam.d/目录下vsfptd文件的文件名

userlist_enable=YES

tcp_wrappers=YES

local_root=/home/wwwroot/asobio/mgm/    #虚拟用户的家目录

guest_enable=YES    #表示是否开启vsftpd虚拟用户的功能,yes表示开启,no表示不开启。

guest_username=vsftpd    #映射到系统的系统用户

user_config_dir=/etc/vsftpd/vuser_conf     #指定每个虚拟用户账号配置目录

2,创建虚拟用户文件,把这些用户名和密码存放在一个文件中
//生成虚拟用户口令库文件,按照格式编辑口令文件。单数行为用户名,偶数行为用户口令
#vi login.txt
liyangsuper//用户名
real//口令
patterson//用户名
jef//口令
guest//用户名
guest//口令
//存盘退出
3,这个文件的虚拟用户和密码的文本文件无法被系统帐号直接调用,所以我们需要使用db_load命令生成db口令数据库文件,命令如下:
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

4,为了使服务器能够使用上述生成的数据库文件,对客户端进行身份验证,需要调用系统的PAM模块。PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。我们现在切换到/etc/pam.d/ 目录下,编辑vsfptd文件。如下图:

auth是指对用户的用户名口令进行验证。

accout是指对用户的帐户有哪些权限哪些限制进行验证。

再后面的/lib64/security/pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行。

注意该函数会根据系统的位数而所在位置不同。

如果是32bit系统,该文件所在位置是/lib/security/pam_userdb.so
如果是64bit系统,该文件所在位置是/lib64/security/pam_userdb.so
最后db=/etc/vsftpd/login则指定了验证库函数将到这个指定的数据库中调用数据进行验证。其实该文件指的是/etc/vsftpd/login.db文件。
注意:db=/etc/vsftpd/login格式是这样的,去掉.db后缀。

4,PAM配置完毕后,我们现在开始创建虚拟用户与系统用户对应的文件。切换到/etc/vsftpd/vuser_conf目录下,并创建mgm文件。注意该文件名称一定要与login.txt中的虚拟用户要对应。比如现在login.txt文件有mgm用户,那么在 /etc/vsftpd/vuser_conf目录下创建一个文件名为mgm的文件。[root@localhost vsftpd]# vim /etc/vsftpd/vuser_conf/mgm

local_root=/home/wwwroot/asobio/mgm/   #表示使用本地用户登录到ftp时的默认目录
virtual_use_local_privs=YES   #虚拟用户和本地用户有相同的权限
guest_username=vsftpd   #表示的是设置FTP对应的系统用户为vsftpd
write_enable=YES

anon_umask=022
5,以上配置完毕后,启动vsftpd服务完成.
6,登录时要区分是主动还是被动模式.
注:有时候登录后不能创建文件或目录,一个问题是SELINUX不是设置的disabled,另一个问题是先得在虚拟根目录下建一个目录,给虚拟用户使用。
另:
vsftpd安装,配置,案例与常见问题的网页:
http://os.51cto.com/art/201008/222036.htm

Published by

发表评论

电子邮件地址不会被公开。 必填项已用*标注