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