Este é o processo para restringir usuários a pastas específicas sobre o sftp.
O primeiro passo é usar o serviço sftp interno no sshd, editando /etc/ssh/sshd_config
. Mude para que fique assim:
# Subsystem sftp /usr/lib/misc/sftp-server
Subsystem sftp internal-sftp
No final, adicione o seguinte, que restringirá os usuários do grupo 'sftpusers' somente à sua pasta base:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
%h
representa seu diretório inicial.
Adicione o usuário x
ao grupo sftpusers
:
useradd -G sftpusers x
Agora edite /etc/passwd
para o usuário x
para que o diretório inicial seja a pasta que eles têm permissão para acessar e também altere o shell para nologin
para impedir o acesso ao shell:
x:x:1000:1000::/project/workarea/room-x/:/sbin/nologin