Antecedentes
Este é um problema permanente de sftp
e compartilhamento de arquivos. Isso ocorre porque as permissões resultantes são baseadas na permissão original do arquivo no lado do usuário e o argumento umask ( -u
) não está forçando essas permissões, mas apenas removendo as permissões indesejadas. Isso significa que somente se o usuário tentar carregar o arquivo com permissão 0777
, ele será aplicado e desclassificado para 0775
. Caso contrário, é apenas deixado como estava. Por exemplo, se o usuário tiver um arquivo armazenado em seu sistema de arquivos com permissão 0700
, ele também aparecerá após o upload como 0700
.
Solução
Recentemente, resolvemos esse problema no Fedora aplicando o patch que está forçando a permissão exata dos novos arquivos enviados usando -m
para sftp-server
. É baseado neste bug upstrem:
Isso está disponível na versão atual CentOS 7.2 . Do changelog:
- Add sftp option to force mode of created files (#1197989)
Solução alternativa
Não há outra solução elegante, exceto algum script de execução periódica (de cron
), que está corrigindo as permissões erradas. Seria um one-liner no bash, mas eu acho que você pode pensar em alguns. Eu posso elaborar mais sobre isso se você estiver interessado.
Ou você pode usar inotify
para "pegar" as alterações antes.
O grupo deve ser herdado do diretório pai, não é?