Eu tenho alguns usuários no meu servidor Ubuntu com vsftpd
instalado.
O servidor é usado como servidor web e possui um diretório sftp compartilhado que é acessado por clientes públicos (dando a eles o usuário e a senha).
Devido a essa arquitetura, meu objetivo era restringir o usuário do cliente público a acessar apenas seu diretório home e restringir o acesso às outras diretorias. Eu fiz isso usando o ChrootDirectory da seguinte forma:
/home/public_sftp/
/home/public_sftp
é de propriedade do root /home/public_sftp
, existem dois diretórios de propriedade de public_sftp: www-data Altere o /etc/ssh/sshd_config
e adicione no final
Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 73
Isso funciona perfeitamente, exceto por um script que preciso executar de outro servidor usando o usuário www-data. Ao almoçar esse script que irá se conectar ao servidor sftp com o usuário www-data, estou recebendo:
Write failed: Broken pipe
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
O diretório home do meu usuário www-data é /var/www/
e o rsync scrypt está tentando gravar em um subdiretório de /var/www
.