Como configurar o vsftpd para mapear o usuário virtual para um usuário local personalizado?

1

Eu gostaria que o usuário virtual usasse um usuário local definido. este usuário local é membro de grupos apache (www-data para usuário debian, eu uso aqui um centos7 ) e ftp

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

Eu mudo do arquivo /etc/vsftpd/vsftpd.conf

  • guest_username = ftp

para

  • guest_username = ftpuser

Como a verificação de senha do usuário virtual é aprovada, mas não o usuário local:

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))

por que o pam_unix falha?

Obrigado pela sua ajuda

============ Informações adicionais ==============

conteúdo completo de /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

conteúdo completo de /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
    
por bioinfornatics 31.03.2016 / 23:29

1 resposta

0

Eu finalmente encontrei o problema

Eu mudo o conteúdo de /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

e eu corro estes 2 comandos do selinux:

setsebool -P ftp_home_dir=on
setsebool -P ftpd_full_access=on
    
por 01.04.2016 / 01:31