Novo usuário local não pode logar no vsftpd

2

Estou um pouco confuso com este e realmente posso usar alguma ajuda.

Temos uma caixa do CentOS 6 rodando o VSFTPD como uma caixa de depósito para nossos clientes. Cada cliente recebe um usuário local e é chrooted para seu diretório inicial. As conexões são feitas com SSL explícito.

Configuração de VSFTPD da seguinte forma:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
check_shell=NO

Até agora, adicionamos três usuários, cada um da mesma maneira.

useradd -s /sbin/nologin username
passwd username

Os dois primeiros usuários funcionam perfeitamente. O terceiro recebe uma mensagem Login Incorrect do VSFTPD.

Eu alterei a senha do terceiro usuário para test apenas para verificar se não havia erro de digitação na conexão, mas obtive a mesma coisa.

A mensagem em /var/log/secure para a terceira tentativa do usuário é

pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=user3 rhost=127.0.0.1  user=user3

Alguém tem alguma sugestão.

EDIT: Em resposta aos comentários

O status do SELinux está desativado

A saída de ls -lZd em cada diretório é

Usuário de trabalho: drwx------ user1 user1 ? .

Utilizador não funcional: drwxr-xr-x user2 user2 ? .

Portanto, há uma diferença óbvia nas permissões, mas o usuário em funcionamento é menos permissivo?

    
por fullybaked 14.01.2014 / 16:06

3 respostas

4

Eu acho que o problema é que você usou useradd

não adduser

nome de usuário do sudo adduser

Por favor, verifique este link

    
por 10.04.2015 / 05:50
2

O PAM não permite que você autorize o usuário se o shell dele não estiver listado em /etc/shells .

Altere o shell do usuário para um nologin correto:

# chsh -s $(command -v nologin) user3

E verifique se ele está listado em /etc/shells :

# grep "$(command -v nologin)" /etc/shells || echo "$(command -v nologin)" >> /etc/shells
    
por 04.09.2014 / 10:25
1

Tome cuidado para criar o usuário com / sbin / nologin porque um erro de digitação como / bin / nologin faz a diferença

    
por 07.08.2014 / 20:12

Tags