Este é um problema perene e foi discutido muitas vezes. Eu escrevi uma resposta curta aqui:
Basicamente, você respondeu a si mesmo usando seu último comentário. O SFTP preserva as permissões originais e trunca umask dele.
Aqui está a minha situação: Estou configurando um servidor web Ubuntu 14.04 para uma equipe compartilhar. Eu gostaria que a equipe tivesse acesso de leitura / gravação para tudo dentro de var/www/html (o mesmo que CHMOD 775 em todos os arquivos e pastas).
Meu problema é que os clientes SFTP no Mac (Transmit, Cyberduck e FileZilla) não respeitam as permissões padrão que eu configurei.
Depois de várias horas, percorri muitas etapas para atingir minha meta:
Configure as permissões da equipe:
myteam group myteam /var/www/html para myteam
Neste ponto, ls -la de /var/www retorna
drwxrwsr-x 2 marcelo myteam 4096 Jul 20 13:29 html
Defina um UMASK padrão:
/etc/ssh/sshd_config com Subsystem sftp /usr/lib/openssh/sftp-server -u 002 com base em este artigo . /etc/pam.d/sshd e /etc/pam.d/login com uma nova linha session optional pam_umask.so umask=0027 com base em esta questão
/etc/pam.d/common-session/ com uma nova linha session optional pam_umask.so e editou /etc/login.defs para alterar a linha UMASK para UMASK 002 com base em esta questão
Neste ponto, se eu fizer SSH no servidor por meio de um shell, o comando umask reportará 002 e todos os novos arquivos e pastas terão as permissões corretas. No entanto, se eu fizer SFTP no servidor via Transmit, Filezilla, Cyberduck, etc. e criar arquivos ou pastas, ele não respeitará e padronizará os arquivos para rw-r--r-- e pastas para rwxrwsr-x (as pastas estão corretas). Eu verifiquei e os clientes FTP não estão substituindo nenhuma permissão - eles estão desativados.
Este é um problema perene e foi discutido muitas vezes. Eu escrevi uma resposta curta aqui:
Basicamente, você respondeu a si mesmo usando seu último comentário. O SFTP preserva as permissões originais e trunca umask dele.