Os usuários de FTP não podem ver nenhum arquivo quando chrooted

1

Em um Debian Wheezy 64bit, eu crio um novo usuário para um cliente colocar arquivos em um diretório. Depois que o usuário é criado, retiro seu login interativo substituindo /bin/bash por /bin/false in /etc/passwd . Então eu adiciono ele a /etc/ftpchroot , para que a sessão dele seja chrooted em seu diretório pessoal.

No entanto, assim que adicionar o usuário a /etc/ftpchroot , quando o usuário fizer login, ele não poderá ver nenhum arquivo. O usuário é chrooted, ele não pode atravessar para cima. Ele pode fazer upload de arquivos, que estão armazenados no diretório correto, e com 640 permissões e esse usuário: essa propriedade do grupo.

Meus pensamentos até agora:

  • /etc/ftpchroot está claramente fazendo algo e fazendo o que deve fazer.
  • Qualquer usuário criado nessa máquina tem esse problema (tentou duas vezes com outros novos usuários)
  • Não depende do diretório. Alterar seu diretório home e chrooting para lá mostra o mesmo problema.

É estranho para mim, como já fiz isso algumas vezes antes, e nunca encontrei isso. Infelizmente, procurar uma resposta no Google é difícil porque a descrição do problema é problemática.

Editar 1: algo que estou vendo agora. Ao efetuar o login enquanto estiver no ftpchroot, nenhuma mensagem será exibida quando o login for concluído com sucesso. No entanto, ao efetuar login sem ftpchroot, /etc/motd é exibido após a conclusão da autenticação.

Editar 2: Eu meio que trabalhei em torno do problema instalando inetutils-ftpd . Ele trouxe a autenticação do PAM, e depois de configurar isso, ele registra o mesmo usuário sem o problema mencionado, e ele pode fazer upload e ver seus arquivos sem nenhum problema.

    
por Dabu 06.12.2013 / 15:50

1 resposta

1

Quando você estiver usando o chroot, quaisquer binários que você queira usar dentro do chroot devem existir dentro do chroot. No caso do ftpchroot, isso geralmente significa que o ftpd precisa ter recursos de ls dentro de seu próprio binário em vez de confiar no /bin/ls do sistema, caso contrário, cada usuário teria que ter seu próprio $HOME/bin/ls .

Portanto, a solução é usar um daemon de ftp que tenha ls interno (ou compilá-lo novamente com --ls-incluído, ou qualquer que seja a opção apropriada para esse daemon de FTP específico).

    
por 06.12.2013 / 16:47

Tags