vsftpd não lista o conteúdo de um diretório

4

Eu configurei um servidor FTP usando vsftpd e habilitei o upload e download anônimo. O problema que tenho é que quando eu carrego um diretório ele será carregado com sucesso (eu posso vê-lo no servidor), mas da próxima vez que eu quiser verificar esse diretório, o cliente FTP mostra um diretório vazio !!

Não há nenhum erro registrado em /var/log/vsftpd.log . A pasta pub (pasta base do usuário ftp anônimo) também possui permissão de gravação. Eu testei várias opções de configuração, mas nenhuma ajudou!

As opções de configuração mais recentes que eu defini são as seguintes:

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirlist_enable=YES

Eu até desliguei o firewall uma vez para testá-lo, mas isso não mudou nada!

    
por saeedn 01.02.2012 / 11:52

6 respostas

5

Duas sugestões:

  1. O ID do usuário que executará o FTP terá permissões de "gravação" no diretório "raiz" que o vsftpd usará como seu diretório de trabalho atual? O vsftpd não quer um diretório de trabalho gravável.

  2. O arquivo vsftpd.conf pode ter uma diretiva hide_file . Dependendo da expressão regular especificada por essa diretiva, os usuários anônimos podem não ter permissão para ver nenhum arquivo.

Eu tive esse problema com o vsftpd no passado, e me lembro de ter uma configuração vsftpd.conf que causou isso, então leia esse arquivo de configuração de perto, entenda todos os parâmetros e seus valores.

    
por 01.02.2012 / 17:41
2

Eu apenas forcei meu VSFTPD a rodar apenas no modo ativo e isso parecia ter funcionado para mim. Para isso, coloque a seguinte linha no seu arquivo de configuração:

pasv_enable=NO

O que eu acabei fazendo, porém, foi habilitar o modo passivo, já que para alguns aplicativos parecia ter sido um requisito. Parece que o VSFTPD não funciona com os padrões corretamente, por isso é melhor especificar sua preferência explicitamente:

pasv_enable=YES

Também é importante levantar as configurações corretas do iptables se você estiver executando um firewall. Aqui está o meu, extraído do meu arquivo /etc/sysconfig/iptables :

# FTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:65535 -j ACCEPT
    
por 13.03.2015 / 21:06
1

Você já pensou em adicionar hide_file=NO ?

    
por 03.02.2012 / 14:37
0

Se a sua configuração está correta e não é um problema de firewall, pode ser o SELinux, no meu caso foi e a resposta foi:

setsebool -P allow_ftpd_full_access 1

Na página de manual :

If you want to allow ftp servers to login to local users and read/write all files on the system, governed by DAC, you must turn on the allow_ftpd_full_access boolean

    
por 03.10.2016 / 21:19
0

Obrigado ao usuário81029 por apontar

sudo setsebool -P allow_ftpd_full_access 1

resolve o problema com o diretório vazio do ftp após mount --bind uma pasta em / var / ftp / no SELinux

    
por 02.01.2017 / 17:58
-2

Se você tentou listar diretórios usando comandos como ls , dir isso não ajudará.

Se você usar qualquer cliente FTP da GUI, por exemplo filezilla , todos os diretórios serão mostrados.

    
por 09.05.2018 / 17:28