Os arquivos enviados usando o SFTP não possuem os direitos corretos

1

Eu tenho um problema estranho ao tentar enviar arquivos para um servidor usando SFTP.

Quando para a segurança máxima eu uso um usuário com um shell desativado ("/ bin / false") para fazer upload de arquivos, recebo o modo 640 para os arquivos enviados e não é isso que eu quero (arquivos locais têm o modo 664).

No entanto, quando eu habilito o shell "/ bin / bash" para o mesmo usuário, obtenho o modo correto, 664.

Não sei ao certo o que está acontecendo aqui, por que a desativação do shell altera o modo dos arquivos enviados?

Minha configuração do sshd:

Port 22
Protocol 2
AcceptEnv LANG LC_*
UsePAM yes
UseDNS no
Subsystem sftp internal-sftp
    
por obo 13.03.2018 / 11:33

2 respostas

2

Por não ter um shell válido, o umask padrão do sistema não está sendo aplicado / usado.

O que você pode fazer é colocar seus usuários em um grupo e forçar algumas coisas por meio do arquivo /etc/sshd_config , incluindo umask -

Match Group uploadusers
  ForceCommand internal-sftp -u 0002

a opção -u 0002 define um umask para o subsistema / subsistema interno-sftp e quaisquer arquivos enviados por meio dele se o usuário for membro do grupo uploadusers .

Pessoalmente, eu também chroot os usuários, para que eles possam acessar apenas seus diretórios - verifique a opção ChrootDirectory , pois ela se aplica a uma diretiva Match Group no arquivo sshd_config .

    
por 16.03.2018 / 17:35
0

A razão por trás disso é porque quando um shell está se envolvendo, um UMASK está sendo aplicado. No seu caso, é provável que (para o bash), sendo aplicado dentro de / etc / bashrc (isto está assumindo alguma versão moderna do Red Hat / Centos 7), a localização desses arquivos pode variar. Quando não estiver usando nada, verifique a configuração do UMASK em / etc / profile talvez.

    
por 13.03.2018 / 21:46