
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/bash
por /bin/false
in /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/ftpchroot
está 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 ls
recursos dentro de seu próprio binário, em vez de depender do /bin/ls
sistema, 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).