Primeiro, você terá que tornar /LD o diretório inicial de test_user . Você disse que não tem o comando usermod ; em seguida, use vipw , ou se isso não estiver disponível, apenas certifique-se de que o usuário não esteja logado e edite /etc/passwd diretamente.
Em seguida, verifique a página do manual vsftpd.conf e leia as descrições das opções chroot_local_user , chroot_list_enable e chroot_list_file .
Se desejar que todas as conexões FTP dos usuários (ou a maioria delas) sejam restritas aos seus diretórios home, você pode definir chroot_local_user como YES e usar o arquivo /etc/vsftpd.chroot_list (ou qualquer arquivo especificado pela opção chroot_list_file ) para especificar exceções.
Se somente test_user precisar ser restrito, deixe chroot_local_user como NÃO e, em vez disso, defina chroot_list_enable como YES e, em seguida, adicione test_user a /etc/vsftpd.chroot_list file (ou qualquer arquivo especificado por chroot_list_file opção). Você pode criar o arquivo se ele ainda não existir.
Como resultado dessas ações, quando test_user fizer login em uma conexão FTP, eles verão o diretório /LD como o diretório raiz ( / ). Como resultado, será impossível para eles navegar fora da árvore de diretórios /LD , pois, para a conexão FTP, o resto do sistema de arquivos simplesmente não existirá. O usuário ainda pode acessar qualquer subdiretório de /LD ; se isso não for desejável, use as permissões do sistema de arquivos para bloquear isso.
Primeiro, identifique o (s) usuário (s) e / ou grupo (s) que precisam acessar os subdiretórios de / LD. Idealmente, todos os usuários de subdiretórios de / LD shoud pertencem a um único grupo (vamos chamá-lo de LDsub ) e test_user não deve fazer parte desse grupo. O test_user deve estar sozinho em outro grupo (vamos chamá-lo LDftp , por exemplo). Os membros do grupo LDsub podem ou não ser membros do grupo LDftp , dependendo se precisam ou não de acesso de gravação ao próprio diretório /LD .
Se você não tiver os comandos usermod ou groupmod , poderá editar as associações de grupos por meio de vigr ou apenas editando /etc/group .
Agora, você pode usar o comando chown para definir a propriedade do diretório /LD e chmod para definir as permissões:
chown root:LDftp /LD
chmod 775 /LD #this will be drwxrwxr-x
Agora, test_user terá acesso de gravação ao diretório /LD por meio da associação ao grupo, mas eles não serão os proprietários do diretório, portanto, não poderão alterar suas permissões. As permissões "everyone r-x" permitirão que os membros do grupo LDsub passem por este diretório para acessar seus subdiretórios conforme permitido por suas permissões.
Os subdiretórios de / LD podem ser de propriedade de qualquer pessoa, conforme necessário, desde que não seja o test_user . O grupo desses subdiretórios deve ser definido como LDsub e permissões da seguinte forma:
chgrp LDsub /LD/subdirectory # or chown <not_test_user>:LDsub /LD/subdirectory
chmod 770 /LD/subdirectory # this will be drwxrwx---
Esteja ciente de que se test_user tiver acesso de gravação a /LD , isso significa necessariamente que eles podem renomear qualquer subdiretório, criar novos e excluir quaisquer subdiretórios vazios .
Se os seus requisitos forem mais complexos, pode ser mais fácil verificar se o suporte da ACL está habilitado no sistema de arquivos e usar as ACLs para especificar o (s) usuário (s) e / ou grupo (s) permitido (s) -diretórios de / LD. Veja as páginas de manual dos comandos getfacl e setfacl , e / ou esta página da web para detalhes.
Como alternativa, você pode considerar mover os subdiretórios de /LD para outro local e usar links simbólicos para fazer com que os caminhos de diretório funcionem como antes.
mv /LD/subdirectory /elsewhere/subdirectory
ln -s /elsewhere/subdirectory /LD/subdirectory
Para qualquer usuário diferente de test_user em uma sessão FTP, esses links simbólicos serão utilizáveis como de costume. Mas como a sessão FTP de test_user será chrooted para /LD , para eles esses links simbólicos aparecerão como links quebrados inutilizáveis. Se test_user tiver acesso de gravação a /LD , eles poderão excluir os links "quebrados".