Encontrei a resposta em um blog . Precisamos informar ao SELinux que queremos fazer upload de arquivos via SFTP para um chroot. É somente leitura por padrão.
setsebool -P ssh_chroot_rw_homedirs on
Eu li e segui alguns perguntas e tutoriais sobre o uso de chroot
para definir o diretório inicial em sftp
. Eu tenho as permissões corretas e a propriedade do diretório chroot
. Eu consigo fazer com que novos usuários façam login, mas eles não conseguem transferir arquivos para as pastas que eles deveriam ter.
Eu quero chroot
membros do grupo sftpbackups
. No meu arquivo sshd_config
, tenho o seguinte.
Subsystem sftp internal-sftp
Match Group sftpbackups
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Primeiro, criei um usuário testuser
que não foi adicionado ao grupo sftpbackups
. O diretório inicial é /home/testuser/
e existe um subdiretório /home/testuser/backups/
que eu quero usar sobre o sftp. Posso usar o sftp para transferir arquivos para minha pasta backups
, por exemplo,
sftp> ls -l
drwxrwxrwx 2 testuser testuser 4096 Sep 25 00:09 backups
sftp> put a.txt backups
Uploading a.txt to /home/testuser/backups/a.txt
a.txt
O problema surge quando adiciono testuser
ao grupo sftpbackups
.
sftp> ls -l
drwxrwxrwx 2 1290 1291 4096 Sep 30 14:58 backups
sftp> put a.txt backups
Uploading a.txt to /backups/a.txt
remote open("/backups/a.txt"): Permission denied
Não sei por que a propriedade do diretório está mudando apenas depois que adiciono ao grupo sftpbackups
e acho que está relacionado ao motivo pelo qual não consigo transferir arquivos.
Alguma ideia de como avançar? Obrigado. O servidor é o CentOS 6.8.
Encontrei a resposta em um blog . Precisamos informar ao SELinux que queremos fazer upload de arquivos via SFTP para um chroot. É somente leitura por padrão.
setsebool -P ssh_chroot_rw_homedirs on