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".