Todos os meus arquivos enviados têm permissões inutilizáveis

Todos os meus arquivos enviados têm permissões inutilizáveis

Acabei de mudar para um novo servidor e me deparei com alguns problemas estranhos de permissão.

Cada arquivo que carrego tem permissões de 600, pertence à conta do usuário e também está no mesmo grupo. Com esta permissão, o servidor não poderá fazer alterações nesses arquivos.

A pasta para a qual estou enviando (via sftp normal) tem permissões de 755.

Por que todos os novos arquivos que eu carrego aqui recebem essa permissão de 600? E como faço para alterar isso para que os arquivos adicionados tenham permissões para que possam ser modificados pelo servidor web?

Observação: Eu instalei o vsftpd que possui uma configuração para determinar o umask padrão. Fazendo login através desteFTPfunciona como esperado. No entanto, isso não resolve o problema ao fazer login viasftp.

Responder1

Minha solução básica para isso é criar um script que fique entre SSH e SFTP e altere o umask conforme o usuário efetua login:

> vim /opt/sftp-server.sh

#!/bin/bash
umask 022
/usr/libexec/openssh/sftp-server

Em seguida, edite o arquivo de configuração ssh_d (/etc/ssh/sshd_config) e edite a linha sftp SubSystem para apontar para o seu script:

Subsystem       sftp    /opt/sftp-server.sh

Certifique-se de definir as permissões corretamente em seu novo script:

> chmod 755 /opt/sftp-server.sh

Agora os arquivos enviados via SFTP devem ter as permissões 755!

http://blog.mrmason.net/2009/05/27/mudar-default-file-permissions-for-sftp/

Responder2

O sftp-server é o subsistema sftp geralmente usado com o openssh.

Após uma inspeção mais detalhada do comando:

$ /usr/lib/openssh/sftp-server -h
usage: sftp-server [-ehR] [-f log_facility] [-l log_level] [-u umask]

Portanto, podemos definir o umask padrão para conexões passando a opção -u na inicialização. Onde /etc/ssh/sshd_configo subsistema sftp está definido, encontre a linha.

Subsystem sftp /usr/lib/openssh/sftp-server

e mude para ficar assim:

Subsystem sftp /usr/lib/openssh/sftp-server -u 0022

Para permitir que os arquivos criados tenham o umask padrão 644 e os arquivos 755

Lembre-se de que esta configuração é global e afetará todos os arquivos transferidos por sftp, portanto, leve a segurança em consideração antes de implementar.

informação relacionada