grupo www-data grava após sftp?

grupo www-data grava após sftp?

Eu gostaria que meu usuário apache pudesse ler e gravar arquivos, que meus usuários sftp pudessem fazer upload de arquivos que estão disponíveis (rwX) para outros usuários sftp e apache, e todos os outros leitores estão ok .

psiu: I know this question comes up a lot, and I've been reading answers and trying many many things for two days now and am now thoroughly confused. TambémEstou ciente dos riscos de segurança envolvidos em permitir o acesso de gravação de dados www ao meu site, mas não é esse o problema que estou aqui para discutir.

Aqui estão meus passos:

usermod -aG www-data tim
mkdir -p /var/www/mysite/public_html

# now upload/untar the site, etc. not shown here #

chown -R www-data:www-data /var/www/mysite
chmod -R u+rwX,go+rwX,g+s,o-w /var/www/mysite

# now make the apache virtual host and so on .. not shown here #

Os arquivos internos public_htmlsão definidos assim - o grupo escreveu:

-rw-rwSr-- 1 www-data www-data favicon.ico

Agora, faça login como minha conta "tim" usando sftp, carrego um novo arquivo na pasta public_html e vejo sua permissão:

-rw-r--r-- 1 tim      wwww-data COPYING.txt

Então eu tenhoperdidogroup WRITE, embora eu tenha pensado em adicionar g+sa pasta pai para que ela herdasse o grupo.

Aparentemente, isso não significa que também herde o grupo /mask/. Li em algum lugar (e perdi a referência) que o SFTP não respeita o umask; parece que é aí que a permissão está se perdendo, mas não sei como consertar.

editar encontrei a referência umask e tentei -http://john.parnefjord.se/node/62- pode ver que o arquivo está sendo executado no login, mas ainda assim a máscara não está definida como g+w após o upload.

Responder1

Não verifiquei muito, mas tentei 2 a 3 vezes com diferentes permissões de grupo em um servidor local.

O que recebo aqui é que todas as permissões concedidas ao arquivo no sistema local sãoexatamente as mesmas permissõesobtido pelo arquivo no servidor remoto.

Responder2

Quando um processo cria um arquivo no Unix, o processo controla quais permissões são atribuídas ao arquivo. O processo especifica um conjunto de permissões, normalmente 0666 ou 0777, na chamada do sistema de criação de arquivo. As permissões são modificadas pelo umask do processo para produzir as permissões reais para o arquivo. Sinalizadores especiais no diretório pai não fazem parte deste processo. Um processo também pode alterar as permissões de um arquivo existente por meio de outra chamada de sistema chamada chmod().

SFTP é na verdade um protocolo de sistema de arquivos remoto. Quando um cliente cria um arquivo em um servidor, ele pode informar ao servidor exatamente quais permissões conceder ao novo arquivo. O cliente também pode invocar chmod()remotamente para alterar as permissões em arquivos existentes. O servidor OpenSSH SFTP não fornece nenhum meio para o administrador do servidor restringir isso que eu saiba.

O que eu provavelmente faria é escrever um script de shell que varre a pasta e corrige as permissões de arquivo. Você pode executar o script a croncada poucos minutos. Algo como o seguinte deve começar:

#!/bin/sh
cd /var/www/mysite || exit 1
find . -type f ! -perm 0664 -exec chmod 0664 '{}' ';'

informação relacionada