Por que o umask é ignorado ao carregar arquivos pelo sftp?

1

Tenha um problema estranho com permissões em arquivos enviados para um sistema remoto.

Localmente, o arquivo index2.html é chmod 664:

acoder@acoder-local ~ $ ll index2.html
-rw-rw-r-- 1 acoder acoder    29 May 17 14:46 index2.html

Após fazer o upload desse mesmo arquivo para o sistema remoto, as permissões no diretório remoto são exibidas:

-rw-r--r--. 1 acoder acoder 3657 May 17 14:43 index2.html

Primeiro, pensei que tinha uma configuração de umask incorreta no sistema remoto, mas ...

[acoder@remote public_html]$ umask
0002

Para comparação, se eu tocar em um arquivo no sistema remoto, as permissões corretas (para o dado umask) mostram:

-rw-rw-r--. 1 acoder acoder    0 May 17 14:44 index3.html

Então, como as permissões são definidas nos arquivos enviados via sftp? Por que o umask é ignorado ao colocar arquivos no sftp?

    
por a coder 17.05.2018 / 20:57

1 resposta

2

O SFTP não passa por um shell de login. É gerenciado diretamente pelo servidor SSH. Se o umask que você espera é definido por /etc/profile , ~/.profile , ~/.bashrc ou algum outro arquivo de inicialização do shell, então ele não se aplica ao SFTP.

Você pode definir uma umask através do módulo PAM pam_umask . A configuração para o servidor SSH será aplicada a ambas as sessões de shell SSH (a menos que sejam substituídas por um arquivo de inicialização do shell) e sessões SFTP.

Você também pode definir o umask para SSH especificamente editando a linha Subsystem sftp de /etc/sshd_config para passar a opção -u para sftp-server .

    
por 18.05.2018 / 13:50

Tags