permissao-linux

Permissões no linux, é o principal “recurso” dos sistemas baseados em Unix. Elas são usadas de diferentes formas, e com diferentes finalidades. Mas principalmente para segurança e organização de um sistema.

Através das permissões, você pode definir quem pode acessar, escrever e executar um arquivo. Tanto por grupo, quanto por usuário. Com as permissões, o linux impede que um programa mal intencionado, por exemplo, apague um arquivo que não deve, envie arquivos especiais para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema.

Vamos entender melhor, e aprender como mudar e verificar as permissões de determinado diretório ou arquivo.

Como verificar permissão

Para verificar as permissões de um arquivo ou diretório, é comum se utilizar o comando ls com o parâmetro -l, com ele descobriremos as permissões e os proprietários dos arquivos e diretórios.

ls -l /home/vinicius/tmp/

Me retornará o resultado:

total 4
-rw-r--r-- 1 vinicius vinicius    0 Nov 22 12:59 index.html
lrwxrwxrwx 1 vinicius vinicius   15 Nov 22 12:59 link -> /home/vinicius/
drwxr-xr-x 2 vinicius vinicius 4096 Nov 22 12:59 test
-rwxrwxrwx 1 vinicius vinicius    0 Nov 22 13:00 test_777

Ok? Ta achando que isso é um monte de letra solta né? Vamos entender, o que cada parte disso significa.

Diretório, link, arquivo?

Para sabermos o que é cada item, basta observarmos a primeira letra.

  • l => Significa que aquele item é um link;
  • d => Aquele item é um diretório;
  • – => Um arquivo;
  • b => arquivo de bloco;
  • c => arquivo especial de caractere;
  • p => canal;
  • s => socket;

rwx o que é isso?

Você notou que essas letras ficam se repetindo no decorrer da listagem do ls, cada um tem seu significado:

  • r => read – indica a permissão de leitura;
  • w => write – indica a permissão de escrita;
  • x => Execution – indica a permissão de execução
  • – => indica a ausência de permissão

Pronto agora já sabemos o significado de cada letra, já podemos interpretar o resultado do comando ls. Podemos dividir o resultado em 3 partes, vamos pegar a primeira linha como exemplo:

rw-|r–|r–

Cada grupo de 3 caracteres significa nesta ordem, a permissão para o dono, permissões para o grupo ao qual pertence o dono do arquivo e permissões para os outros usuários.

Lendo apenas os dados de permissão -rw-r–r–, podemos identificar que, é um arquivo, que o proprietário do arquivo tem permissão de leitura e escrita, e que os demais(grupo e outros) tem permissão apenas de leitura.

Bits da permissão

Cada letra tem seu bit correspondente, o que podemos identificar da seguinte forma:

Letras   Binário   Decimal   Significado 
000 0 Sem permissão
–x 001 1 Permissão de execução
-w- 010 2 Permissão de escrita
-wx 011 3 Permissão de escrita e execução
r– 100 4 Permissão de Leitura
r-x 101 5 Permissão de leitura e execução
rw- 110 6 Permissão de leitura e escrita
rwx 111 7 Permissão total

Mudando a permissão

Utilizando se da tabela acima podemos mudar a permissão de arquivos e diretórios com o chmod.

A sintaxe do comando chmod é:

 chmod  

Alguns exemplos:

Permissão total

chmod 777 test.txt

Permissão apenas de leitura

chmod 444 test.txt

Permissão de leitura e escrita para o dono e leitura para os outros

chmod 644 test.txt

O chmod alem de utilizar as permissões com números, também há possibilidade de utilizar a forma mais chata das letras. Onde precisamos entender que

  • u => usuário
  • g => grupo
  • O => outros
  • a => todos
  • + => adicionar permissão
  • – => remover permissão
  • = => definir a permissão

Com isso podemos utilizar o chmod da seguinte forma:

Permissão de execução para o usuário

chmod u+x test.txt

Permissão de leitura para o grupo

chmod g+r test.txt

O perigo da permissão 777

Como eu disse anteriormente, a permissão 777 é a permissão total a algo, ou seja, todo mundo pode editar, apagar, escrever. Se imagine com um arquivo com permissão 777 onde todo mundo pode edita-lo, alguém com intenções maliciosas, pode editar seu arquivo, e executa-lo, podendo lhe roubar informações preciosas, executar algo em seu sistema operacional e apagar dados. Por isso é normal se utilizar permissão 755 para diretórios e 644 para arquivos não executáveis, como arquivos php em servidores de hospedagem.

Inclusive isso é algo que alguns servidores bloqueiam com o suphp, sempre que tiver recebendo erro 403, verifique primeiro a permissão de seus arquivos e pastas, pois em 90% dos casos o problema é esse.

Você pode entender mais sobre o assunto em:

http://www.guiafoca.org/cgs/guia/intermediario/ch-perm.html
Wikipedia CHMOD

Written by vinicius