如何configurationvsftpd将虚拟用户映射到自定义本地用户?

我想这个虚拟用户使用一个定义的本地用户。 这个本地用户是组的成员apache(www数据为debian用户,我在这里使用一个centos7 )和ftp

useradd ftpuser -d /var/www -g apache -G ftp usermod -s /sbin/nologin ftpuser 

我从文件/etc/vsftpd/vsftpd.conf中更改

  • guest_username = FTP

  • guest_username =名为ftpuser

由于虚拟用户密码检查通过,但不是本地用户:

 Mar 31 23:11:29 vps263033 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown Mar 31 23:11:29 vps263033 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=xxx rhost=localhost Mar 31 23:11:29 vps263033 vsftpd: pam_userdb(vsftpd:auth): user 'xxx' granted access Mar 31 23:11:29 vps263033 vsftpd: pam_unix(vsftpd:account): could not identify user (from getpwnam(xxx)) 

为什么pam_unix失败?

谢谢你的帮助

============其他信息==============

/etc/pam.d/vsftpd的全部内容

 #%PAM-1.0 auth sufficient pam_unix.so account sufficient pam_unix.so auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login session required pam_loginuid.so 

/etc/vsftpd/vsftpd.conf的完整内容

 listen_port=21 ftpd_banner=Bienvenue ! pam_service_name=vsftpd listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES userlist_file=/etc/vsftpd/user_list userlist_enable=YES userlist_deny=YES write_enable=YES anon_upload_enable=NO anon_world_readable_only=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO guest_enable=YES guest_username=ftpuser chroot_local_user=YES max_clients=50 max_per_ip=4 user_config_dir=/etc/vsftpd/vsftpd_user_conf xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES 

我终于find了问题

我改变了/etc/pam.d/vsftpd的内容

 #%PAM-1.0 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login 

我运行这两个selinux命令:

 setsebool -P ftp_home_dir=on setsebool -P ftpd_full_access=on