gustavohjr
(usa Arch Linux)
Enviado em 14/07/2016 - 15:34h
Para explicar, usarei como base o sistema Linux Debian.
Antes de mais nada, precisamos entender as permissões do linux. Quando usamos o comando "ls -la" recebemos a seguinte informação (logo acima do resultado, escrevi o que cada um significa):
Permissões Links Proprietário Grupo Tamanho Data e Hora Nome
drwxr-xr-x 2 teste teste 4096 Jan 1 00:00 pasta
O primeiro caractere indica o tipo de arquivo, que podem ser os seguintes:
d = diretório
- = arquivo comum de usuário
c = arquivo de caractere
b = arquivo de bloco
l = link
Os outros caracteres são as permissões textuais do proprietário, grupo e outros.
Proprietário Grupo Outros
rwx r-x r-x
r Read (Leitura)
w Write (Escrita)
x Execution (Execução)
- Sem permissão
Essas mesmas permissões também podem ser representadas em octal, ou seja, números.
4 Read (Leitura)
2 Write (Escrita)
1 Execution (Execução)
0 Sem permissões.
Agora é simples, é só somar e ditar as permissões, exemplo:
Neste exemplo, aplicarei a permissão total para o proprietário, leitura e execução para o grupo e leitura e execução para os outros.
chmod 755 pasta/
4 + 2 + 1 = 7 (permissão de rwx para o proprietário)
4 + 0 + 1 = 5 (permissão r-x para o grupo) *coloquei o zero apenas para representar que o grupo não possui permissões de escrita.
4 + 0 + 1 = 5 (permissão r-x para os outros)
As permissões padrões para pastas é 755 e para arquivos 644. Você não precisará de permissões acima disso na pasta www do apache, a menos que for executar um arquivo.
Agora que entendemos as permissões, podemos partir para o apache. Por padrão e por questões de segurança, o apache usa um usuário e um grupo próprio, que pode variar dependendo da distribuição. No Debian o usuário e grupo padrão é o
www-data, definido através da variável de ambiente
APACHE_RUN_USER e
APACHE_RUN_GROUP no arquivo
envvars (/etc/apache2/envars). Ele e o root são os únicos usuários capazes de manipular os arquivos da pasta /var/www ou /var/www/html. Após verificar o usuário, podemos defini-lo e setar as permissões corretas.
Setando usuário e grupo da pasta /var/www:
chown -R www-data:www-data /var/www
Setando permissões 644 para files e 755 para directories:
find /var/www -type f -exec chmod 644 {} \;
find /var/www -type d -exec chmod 755 {} \;
Bem, é isso. Sei que isso é apenas um "resumão" sobre permissões, mas espero ter ajudado.