Eu tenho uma configuração VSFTPD na qual os usuários fazem chroot em seus diretórios pessoais. Coisas padrão. Mas isso exige que todos os seus diretórios pessoais não sejam graváveis para eles (para evitar problemas de segurança). Não tem problema, se eles quiserem fazer upload de arquivos, podem carregá-los em uma pasta gravável.dentro deseu chroot.
Mas agora eles precisam mudar para essa pasta todas as vezes para fazer o upload. Se eu usar a opção local_root no arquivo de configuração do VSFTPD para mover o local de login padrão para essa pasta gravável, entãoquetorna-se seu chroot, e voltamos à estaca zero: não pode ser gravável.
Minha pergunta é: como posso mover o local padrão em que o VSFTPD coloca os usuários para um diretório gravável dentro de sua prisão chroot, sem tornar o próprio diretório chroot gravável?
Responder1
Só existe uma maneira de fazer isso com vsftpd e os caminhos devem ser definidos no arquivo passwd do sistema. Os caminhos não podem ser definidos no arquivo vsftpd.conf.
No arquivo /etc/vsftpd.conf, defina as duas opções a seguir:
chroot_local_user=SIM
passwd_chroot_enable=SIM
Você também deve alterar o diretório inicial unix do usuário para indicar onde o chroot jail está enraizado. A raiz do chroot jail estará localizada no caminho à esquerda do /./
caminho do diretório inicial. ou seja /ftphome/./home/user/
, definiria o chroot jail /ftphome/
e dentro do jail o diretório do usuário seria home/user
. Você pode fazer isso executando:
sudo usermod -d /ftphome/./home/user/ user
Obviamente, o diretório chroot e os diretórios de usuário internos devem ser configurados de acordo com a preparação normal do chroot.