虚拟用户 1) 创建虚拟用户数据库 # 使用txt文件 生成 .db 文件 db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db chmod 600 /etc/vsftpd/vusers.db # 其中 vusers.list 奇数行写用户名,偶数行写密码,可定义多个用户和密码。 # 如果db_load 命令不存在, 则 yum provides *db_load 找到相应的包 并且安装。 vuser用户映射到ftpuser 所以 他们的子目录必须在 ftpuser家目录下面。 usert8,usert9 读写权限 /var/ftp/software usert8,usert9 读 /var/ftp Step 2) 创建 PAM 文件,让他使用上述数据库 ## 创建文件 /etc/pam.d/vsftpd.vu ###注意文件名,需要与后面保持一致,请在本页搜索vsftpd.vu ## 在vsftpd.conf 里面 pam_service_name=vsftpd.vu # vsftpd.vu是文件 ## 如果是配置系统用户登陆,则 pam_service_name=vsftpd #vsftpd是服务名 ## 上述二种模式,是冲突的。 pam_service_name= 只能配置为其中一项。 cat > /etc/pam.d/vsftpd.vu <<'EOF' auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers EOF auth required pam_userdb.so db=/etc/vsftpd_login account required pam_userdb.so db=/etc/vsftpd_login Step 3) Set up the location of the files for the virtual users. 虚拟用户需要映射到一个系统用户上。因此创建一个新的系统用户,指定家目录为ftp目录。 useradd -d /var/ftp -s /sbin/nologin ftpuser chown -R ftpuser:ftpuser /var/ftp Step 4) 修改 vsftpd.conf ## global setting listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 pasv_min_port=30000 pasv_max_port=30999 #anon_upload_enable=NO #anon_mkdir_write_enable=NO #anon_other_write_enable=NO ## virtaul user & PAM bridge pam_service_name=vsftpd.vu guest_enable=YES guest_username=ftpuser virtual_use_local_privs=YES ## security & chroot isolation chroot_local_user=YES allow_writeable_chroot=YES step 5)测试 记得chown chmod 为 ftpuser 用户,注意写权限。 ##################### 系统用户模式。 强烈建议把 guest_enable=NO 否则,多种mode的配置项 混合在一起 user_list #可以是黑名单,也可以是白名单。取决于userlist_enable , userlist_deny的组合情况 32 ## local user block 33 pam_service_name=vsftpd 34 # this line is conflict with virtual user 35 chroot_local_user=YES 36 local_enable=YES 37 userlist_enable=YES 38 userlist_deny=NO 39 check_shell=NO 40 #local_umask=022 41 #local_root= 42 #local_max_rate 43 44 45 ## userlist_enable default NO 46 ## userlist_deny default YES 47 48 # userlist_enable # userlist_deny # Behavior of user_list /etc/vsftp/user_list 49 # YES YES # blacklist/deny list, user in the file are blocked 50 # YES NO # whitelist/allow list, only user list-in can login 51 # NO(default) ANY # The file is ignored