ftp user e www-data

1

Eu tenho um site que deve ser completamente acessível para o Apache (www-data user) e eu tenho um usuário ftp (que tem o mesmo nome de usuário no servidor: user1) que deve ser capaz de atualizar o site.

Eu preciso que o usuário seja capaz de adicionar arquivos ao diretório do site, mas o www-data deve ter acesso total aos arquivos adicionados.

user1 é um membro do grupo www-data.

Por enquanto, quando o usuário1 envia arquivos para o servidor, o arquivo tem direitos: 644, mas eu preciso de 664.

Como eu poderia organizar isso.

Muito obrigado

    
por andrii 19.11.2011 / 22:23

1 resposta

3

A melhor maneira de corrigir isso é evitar o uso de permissões unix padrão como aplicação.

Os quatro comandos a seguir devem resolver isso:

setfacl -d -m apache:rwx -R /path/to/shared/folder
setfacl -d -m user1:rwx -R /path/to/shared/folder
setfacl -m apache:rwx -R /path/to/shared/folder
setfacl -m user1:rwx -R /path/to/shared/folder

Isso altera o comportamento do arquivo usando o POSIX ACLS para que tanto o usuário FTP quanto o apache possam alterar / remover / criar arquivos dentro desse diretório, independentemente de quem foi o autor original.

As máscaras ACL são definidas pelos bits unix padrão para o grupo. As ACLs podem dizer que um diretório é diretório, já que inevitavelmente tem um + x nele. Um arquivo normalmente não será assim mesmo se você tiver uma ACL definida como rwx dentro dela, a parte + x será mascarada pelo bit de permissão de grupo que não está sendo definido.

Outra maneira é usar suPHP, suExec ou algum outro método 'change user on execution of program'. Mas, pessoalmente, acho esses métodos menos convenientes do que isso.

    
por 20.11.2011 / 02:01

Tags