vsftpd虚拟用户配置
Vsftpd虚拟用户配置总结:
1、 安装vsftpd rpm包或者用yum安装
2、 在/etc/vsftpd/下创建vuser.txt文件,在里面填写用户名和账号,第一行账号,第二行密码,依次类推。
3、 建立访问者的口令库文件,然后修改其权限
db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
(如果系统提示找不到db_load命令,则需先安装yum –y install db4 (pam*是否需安装没经过测试)
4、 进入/etc/pam.d/中创建vsftpd.vuser
在其中添加如下信息:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser (32位系统是/lib/目录)
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser (32位系统是/lib/目录)
5、 创建虚拟用户映射的系统账号
Useradd –d /home/vsftpd –s /sbin/nologin vuser (创建系统账号,但使之不能登录系统)
#Chmod 700 /home/vsftpd
6、 先备份/etc/vsftpd/vsftpd.conf文件,然后清空内容并添加如下信息:
listen=yes
listen_port=21
#port_enable=yes
#connect_from_port_20=yes
pasv_enable=yes #使用被动传输
pasv_min_port=52000 #指定被动模式端口范围
pasv_max_port=52020
local_enable=YES #使系统账号能登录
write_enable=YES #可写
#anon_root=/var/ftp/vuser
#local_root=/
#local_umask=022
userlist_enable=yes
userlist_deny=yes
userlist_file=/etc/vsftpd/user_list
max_clients=20 #连接ftp的最大客户端
max_per_ip=20 #最多20个IP能连接ftp
guest_enable=yes #启用虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_vuser_conf #虚拟用户配置文件存放目录
guest_username=vuser #虚拟用户映射到的系统账号
pam_service_name=vsftpd.vuser #PAM认证文件
7、 创建虚拟用户配置文件存放目录
mkdir /etc/vsftpd/vsftpd_vuser_conf
8、 进入/etc/vsftpd/vsftpd_vuser_conf目录,创建与虚拟用户名相同名称的文件(虚拟用户名即vuser.txt中的用户名名),比如创建demo
9、 在demo中填写如下信息
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/usr/local/amp/apache/htdocs/demo (此路径根据虚拟用户要访问的目录对应修改)
总结:客户端根据创建的虚拟用户连接服务器,虚拟用户映射到系统账号vuser登录ftp,然后FTP根据配置文件vsftpd.conf的设置(user_config_dir=/etc/vsftpd/vsftpd_vuser_conf)找到虚拟用户配置文件的存放目录,然后根据虚拟用户的配置文件指定的目录路径(local_root=/usr/local/amp/apache/htdocs/demo)访问到指定的目录。(注:虚拟用户访问到的文件根目录属主需要改成vuser)