quais configurações chmod e owner: group são melhores para um aplicativo da web?

4

estamos configurando uma aplicação web PHP no CentOS e temos todos os nossos arquivos atualmente em / var / www / html / project /

O Apache é configurado para ser executado como apache: apache e tem acesso ao diretório acima. Neste momento, nossos arquivos e diretórios têm os seguintes direitos:

owner = root group = apache

DIRETÓRIOS: drwxr-x --- apache raiz

ARQUIVOS: -rw-r ----- apache raiz

Esta é uma configuração segura? Ou é melhor usar um novo usuário? "project" para ser o dono de todos os arquivos e diretórios?

    
por solsol 10.02.2010 / 00:16

2 respostas

5

É uma prática recomendada ter o proprietário como a conta de usuário limitada usada para fazer upload / gerenciar os arquivos no servidor. O grupo é frequentemente a conta em que o php está sendo executado, portanto, nesse caso, o apache estaria correto. As outras permissões devem ser definidas como nada, como estão. Você está perto da perfeição.

Se você tiver uma situação em que várias contas possam estar modificando / editando os arquivos, você poderá criar um script cron que faça chover a dir de maneira recursiva a cada hora, para manter a propriedade correta. A mesma técnica funciona para manter as permissões corretas também.

Além disso, você pode querer modificar o umask da conta de usuário limitada que tem propriedade para estar alinhada com o seu esquema de permissão.

    
por 10.02.2010 / 00:37
2

Você definitivamente está jogando pelo seguro.

Suas configurações impedirão que você crie pastas adicionais em seus DIRETÓRIOS, caso seja necessário sob demanda via apache.

Sugiro que você use as seguintes permissões:

DIRECTORIES: drwxrwx--- root apache
FILES: -rw-rw---- root apache

Adicione seus desenvolvedores ao grupo apache para que eles continuem escrevendo para esses arquivos, caso eles façam login via ssh ou ftp.

Você pode ter permissões de arquivos liberadas se puder confiar em quais usuários as executam. Se seu código é sólido, você pode permitir que o grupo apache faça mais com permissões.

Editar: Em geral, dê o apache:

rwx if it needs to create folders
rw if it needs to create files
r if everything is static

No final, tudo se resume a dar apenas as permissões necessárias. Torne-os o mais conservadores possível e abra-os ao desenvolver seu aplicativo, se necessário.

Uma pequena coisa sobre grupos. Você verá alguns exemplos que mostram isso (essas também são configurações corretas):

DIRECTORIES: drwxrwxrw- root somegroup
FILES: -rw-rw-r-- root somegroup

Essas permissões são necessárias para que um aplicativo da web seja executado porque o usuário do apache não faz parte das permissões grupo . Nesse caso, o apache é considerado todos , por isso você precisa definir permissões para permitir que todos interajam com o seu site. Um por todos eu não quero dizer todos no mundo (ou seja, anônimos). Quero dizer, todo mundo que é atualmente um usuário em seu servidor (procure em / etc / passwd para obter uma lista).

    
por 10.02.2010 / 01:01