Permissões

Düvidas sobre utilização do Joomla! e gestão de conteúdo.
ljnunes
Novato
Mensagens: 42
Registrado em: 17 Jul 2008, 13:50
Localização: Belo Horizonte
Contato:

Permissões

Mensagem por ljnunes »

Olá,

tendo reparado a dificuldade de muitos usuários ao utilizar o sistema de permissões de arquivos e pastas do Linux, resolvi escrever um mini-tutorial sobre o assunto com foco no Joomla!
Espero que ajude àqueles que queiram entender melhor o funcionamento do sistema de permissões.

Então vamos lá:

O Linux mantém um conjunto de permissões no inode de cada arquivo. Sempre que há uma requisição de acesso ao arquivo, as permissões são checadas. Se o usuário não estiver apto a realizar a operação, o sistema bloqueia o acesso. Desta forma, é possível controlar quem pode acessar o arquivo e quais as operações ele pode realizar.

As permissões são definidas através de um número de três posições. Cada posição pode ter um valor de 0 a 7. Portanto, nas atribuições de permissões devemos avaliar tanto a posição quanto o valor do dígito.

As posições seguem a sequência:

Dono/Grupo do Dono/Todos os usuários

Ex.: uma permissão 644 atribuirá os seguintes valores aos respectivos usuários:

Dono----------------> 6
Grupo do Dono----> 4
Todos os usuários-> 4

São três os tipos de operações possíveis com os arquivos e pastas:

4:Permissão para Ler
2:Permissão para Gravar/Apagar
1:Permissão para Executar

Para obter a permissão final desejada para cada usuário, basta somar os números das operações permitidas.

Ou seja:

0 = Permissão negada;
1 = Permissão para Executar;
2 = Permissão para Gravar/Apagar;
3 = Permissão para Executar e Gravar/Apagar;
4 = Permissão para Ler;
5 = Permissão para Ler e Executar;
6 = Permissão para Ler e Gravar/Apagar;
7 = Permissão para Ler, Gravar/Apagar e Executar;

O Linux atribui automaticamente as permissões quando criamos um arquivo. Por padrão, o dono do arquivo é aquele que o criou.

Inicialmente, o Linux cria os arquivos com permissão 666 e os diretórios com permissão 777. Porém, logo após sua criação, o sistema subtrai um número de três posições chamado máscara de modo de criação de arquivo de usuário. Após a subtração deste valor o arquivo/diretório terá sua permissão final.

Por padrão, o valor inicial da máscara é 022, ficando assim o padrão de permissões para arquivos 644 e o padrão de permissões para diretórios 755.

Para alterar as permissões do arquivo ou pasta utilize o comando `chmod`:
Ex.: $ chmod 664 /caminho/arquivo

Para alterar o grupo de um arquivo ou pasta utilize o comando `chgrp`:
Ex.: $ chgrp grupo /caminho/arquivo

Para alterar o dono de um arquivo ou pasta utilize o comando `chown`:
Ex.: $ chown dono.grupo /caminho/arquivo

Para alterar o dono, o grupo ou as permissões de uma pasta e todas as suas subpastas e arquivos adicione o parâmetro -R aos comandos listados acima:

Ex.: $ chmod 664 -R /caminho/pasta

Ex.: $ chgrp grupo -R /caminho/pasta

Ex.: $ chown dono.grupo -R /caminho/pasta

Quando lidamos com arquivos destinados à exibição na internet, devemos levar em consideração que o Apache tem seu próprio usuário chamado "nobody" e faz parte de um grupo chamado "nogroup". Sendo assim, se estamos trabalhando em um servidor local, ao enviarmos os arquivos para a pasta de publicação, devemos também alterar o dono das pastas e arquivos para que o Apache tenha acesso a eles. Para isso, usamos o comando a seguir:

Ex.: $ sudo chown nobody.nogroup -R /caminho/pasta
Obs.: Como, na maioria das vezes a pasta de publicação pertence ao usuário "root", devemos preceder o comando com o sudo ou executá-lo como super-usuário.

Desta forma, o Apache terá acesso irrestrito ao arquivo configuration.php e aos demais arquivos do Joomla! sem que as permissões dos arquivos sejam alteradas, mantendo a integridade original das permissões do Joomla!.

As permissões também podem ser alteradas através de programas FTP ou pelo acesso direto aos arquivos via SSH, mas, este assunto foge ao escopo deste mini-tutorial.

Abraços, ljnunes.
tiago
Novato
Mensagens: 7
Registrado em: 14 Jan 2009, 17:57

Re: Permissões

Mensagem por tiago »

Ótimo tutorial. Esclareceu muitas das minhas dúvidas. Parabéns!!! 8-)
ljnunes
Novato
Mensagens: 42
Registrado em: 17 Jul 2008, 13:50
Localização: Belo Horizonte
Contato:

Re: Permissões

Mensagem por ljnunes »

Tiago,

valeu cara. Fico feliz por ter ajudado e por ver que você está usando o Linux. O Linux é, na minha opnião, o melhor sistema operacional para lidar com servidores. A criação de scripts para automatizar tarefas é uma mão na roda, além da estabilidade e segurança próprias do sistema. Depois de nos acostumarmos com estas caraterísticas é muito difícil voltar a usar outro sistema para o desenvolvimento de páginas web.

Um grande abraço, ljnunes.
Responder