Os usuários de FTP não podem ver nenhum arquivo quando estão em chroot

Os usuários de FTP não podem ver nenhum arquivo quando estão em chroot

Em um Debian Wheezy de 64 bits, crio um novo usuário para um cliente colocar arquivos em um diretório. Após a criação do usuário, retiro seu login interativo substituindo /bin/bashpor /bin/falsein /etc/passwd. Então eu o adiciono /etc/ftpchroot, para que sua sessão seja chrootada em seu diretório inicial.

Porém, assim que eu adiciono o usuário /etc/ftpchroot, quando o usuário faz login, ele não consegue ver nenhum arquivo. O usuário está em chroot, ele não pode subir. Ele pode fazer upload de arquivos, que são armazenados no diretório correto e com permissões 640 e propriedade thatuser:thatusersgroup.

Meus pensamentos até agora:

  • /etc/ftpchrootestá claramente fazendo algo e fazendo o que deveria fazer.
  • Qualquer usuário criado nessa máquina tem esse problema (tentei duas vezes com outros novos usuários)
  • Não depende do diretório. Alterar seu diretório inicial e fazer chroot para lá mostra o mesmo problema.

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

Editar 1: Algo que estou vendo agora. Efetuando login no ftpchroot, nenhuma mensagem será exibida quando o login for concluído com êxito. No entanto, o login sem ftpchroot /etc/motdé exibido após a conclusão da autenticação.

Edição 2: meio que resolvi o problema instalando o inetutils-ftpd. Trouxe a autenticação PAM e, após configurá-la, efetua login no mesmo usuário sem o problema mencionado, e ele pode fazer upload e ver seus arquivos sem problemas.

Responder1

Quando você usa o chroot, todos os binários que você deseja usar no chroot devem existir nesse chroot. No caso do ftpchroot, isso geralmente significa que o ftpd precisa ter lsrecursos dentro de seu próprio binário, em vez de depender do /bin/lssistema, caso contrário, cada usuário teria que ter seus próprios arquivos $HOME/bin/ls.

Portanto, a solução é usar um daemon ftp integrado ls(ou recompilá-lo com --ls-included, ou qualquer que seja a opção apropriada para este daemon ftp específico).

informação relacionada