Encontramos recentemente uma solução alternativa que é assim:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
permissões de diretório:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Agora, /home
cumpre os requisitos ChrootDirectory
e não pode ser listado por usuários restritos, mas os sftponly
usuários não poderão efetuar login se seus diretórios pessoais estiverem configurados como de costume ( /home/$LOGNAME
): no ambiente chroot, seus diretórios pessoais não estão dentro, /home
mas diretamente em raiz ( /
).
solução alternativa 1
Defina as casas dos usuários restritos como elas aparecem em chroot:
root@server:~ # usermod -d /username username
caviar 1
Se algum dos usuários irrestritos ou algum script de administração usar a expansão de til do bash, como ~username
ele se expandirá para /username
agora, o que não é o que isso significa.
Além disso, o administrador que cria sftponly
usuários deve se lembrar de usar a página inicial não padrão. Resolvível com um script. Que o administrador deve se lembrar de usar.
solução alternativa 2
Essa é uma alternativa à anterior que acabamos usando:
root@server:~ # ln -s . /home/home
Isso é criar um link simbólico dentro /home
de seu próprio nome de diretório. Agora, em chroot, /home/username
aponta para o mesmo diretório que sem chroot. Para usuário restrito conectado com sftp, ele aparecerá como /username
. Este diretório é gravável para seu proprietário (usuário restrito). O usuário restrito não pode listar seus diretórios pai ou home de nenhum dos irmãos por nome.
A única coisa especial sobre um sftponly
usuário é sua participação no sftponly
grupo. Achamos mais fácil lidar com isso do que a solução alternativa 1.
ressalvas 2
- Você não pode ter o usuário chamado 'home' com um diretório inicial
/home/home
- Você precisa ter cuidado com os scripts que atravessam a
/home
hierarquia e seguem os links simbólicos.
chroot
usuários do ed possuem os seusChrootDirectory
? Eles podem acessá-lo?