sábado, 28 de setembro de 2013

Entendendo as permissões de arquivos no Linux

Nesse tutorial entenderemos as permissões de arquivos mais usadas. Percebo que a maioria dos iniciantes tem muita dificuldade com permissionamento de arquivos. Mostrarei de forma clara e objetiva que não é um bicho de sete cabeças entender as permissões no Linux.

Ao listar um arquivo com o comando:

$ ls -l arquivo.extensão

Ele mostrará:
Tipo  Dono   Grupo  Outros  Arquivo 
-     ---    ---    ---     arquivo.extensão

Onde:
  • r - Significa permissão de leitura (read);
  • w - Significa permissão de gravação (write);
  • x - Significa permissão de execução (execution);
  • - - Significa permissão desabilitada.

Ou seja, para melhor entendimento, o primeiro dígito determina o tipo de arquivo, os três seguintes a permissão do dono do arquivo, os três do meio a permissão do grupo que o arquivo pertence e os últimos a permissão de outros usuários. A regra para as permissão sempre será:
  • --- - Nenhuma permissão;
  • r-- - Permissão de leitura;
  • r-x - Leitura e execução;
  • rw- - Leitura e gravação;
  • rwx - Leitura, gravação e execução.
As permissões para melhor entendimento se tratando das numéricas são:
Permissão   Binário   Decimal
---         000       0
--x         001       1
-w-         010       2
-wx         011       3
 r--        100       4
 r-x        101       5
 rw-        110       6 
 rwx        111       7

ComandoNúmeroPermissãoStatus
chmod000---------Nenhuma
chmod400r--------Leitura apenas para o dono
chmod444r--r--r--Leitura para o dono, grupo e outros
chmod600rw-------Leitura e gravação apenas para o dono
chmod620-rw--w----Leitura e gravação para o dono, gravação para o grupo
chmod640-rw-r-----Leitura e gravação para o dono, e leitura para o grupo
chmod644rw-r--r--Leitura e execução para o dono, leitura para o grupo e leitura para outros
chmod645-rw-r--r-xLeitura e gravação para o dono, leitura para o grupo e leitura e execução para outros
chmod646-rw-r--rw-Leitura e gravação para o dono, leitura para o grupo e leitura e gravação para outros
chmod650-rw-r-x---Leitura e gravação para o dono e leitura e execução para o grupo
chmod660-rw-rw----Leitura e gravação para o dono e leitura e gravação para o grupo
chmod661-rw-rw---xLeitura e gravação para o dono, leitura e gravação para o grupo e execução para outros
chmod662-rw-rw--w-Leitura e gravação para o dono, leitura e gravação para o grupo e gravação para outros
chmod663-rw-rw--w-xLeitura e gravação para o dono, leitura e gravação para o grupo e leitura e execução para outros
chmod664-rw-rw-r--Leitura e gravação para o dono, leitura e gravação para o grupo e leitura para outros
chmod700-rwx------Leitura gravação e execução para o dono e nada para os demais
chmod770-rwxrwx---Leitura e gravação e execução para o dono, leitura gravação e execução para o grupo e nada para outros
chmod777-rwxrwxrwxPermissão total para dono, grupo e outros


Podemos também dar permissão através de letras, eu particularmente por questão de padronização dou por números, mas para maior entendimentos, por letras ficaria assim:
U    Usuário
G    Grupo
O    Outros
+    Adicionar permissão
-    Remover permissão
=    Igualdade

Exemplos:

$ chmod u+w arquivo.extensão

O "u" indica o usuário, o sinal de adição (+) indica que está sendo adicionada a permissão e "w" indica que a permissão que está sendo dada é de gravação.

$ chmod g+rw arquivo.extensão

Leitura e execução para o grupo.

$ chmod u+rwx arquivo.extensão

Aqui estamos dando permissão total para o dono do arquivo.

Aconselho os leitores desse texto criarem arquivos de teste com o comando "touch teste.txt" e testar todas as permissões para melhor entendimento. Aprender permissão não é apenas decorar e sim exercitar sempre. Em 90% das configurações, a maior atenção precisa ser dada nas permissões, por isso devemos estar sempre atentos com ela.



Usando chmod com o método numérico

Usar o chmod com valores numéricos é uma tarefa bastante prática. Em vez de usar letras como símbolos para cada permissão, usam-se números. Se determinada permissão é habilitada, atribui-se valor 1, caso contrário, atribui-se o valor 0. Sendo assim, a string de permissões r-xr----- na forma numérica fica sendo 101100000. Essa combinação de 1 e 0 é um número binário. Mas temos ainda que acrescentar a forma decimal (ou seja, números de 0 a 9). Para isso, observe a tabela abaixo:


Permissão Binário Decimal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Se você não conhece o sistema binário deve estar se perguntando o que esse "monte" de 0 e 1 tem a ver com os números de 0 a 7. Como o sistema binário somente trabalha com os números 0 e 1 (decimal trabalha com os números de 0 a 9, ou seja, é o sistema de numeração que utilizamos no nosso cotidiano), ele precisa de uma sequência para representar os valores. Sendo assim, na tabela acima, a coluna Binário mostra como são os valores binários dos números de 0 a 7 do sistema decimal.
Chegou a hora então de relacionar a explicação do parágrafo acima com a coluna Permissão. Para exemplificar, vamos utilizar a permissão rw-, cujo valor em binário é 110, que por sua vez, em decimal corresponde ao número 6. Então, em vez de usar rw- ou 110 para criar a permissão, simplesmente usa-se o número 6. Repare que, com o método numérico, usamos somente um dígito para representar uma permissão, em vez de três. Assim sendo, a string de permissões r--r--r-- pode ser representa por 444, pois r-- em decimal é igual a quatro. Observe o exemplo abaixo:
chmod 600 notas.txt

Permissões rw------- no arquivo notas.txt com o comando chmod 600
Acima, estão sendo dadas as permissões rw------- ao arquivo notas.txt, pois 6 equivale a rw- e 0 equivale a ---. Como zero aparece duas vezes, forma-se então o valor 600. Faça o comando acima com um arquivo de teste e depois digite ls- l notas.txt para ver o que aparece (notas.txt deve ser substituído pelo arquivo que você está usando). A tabela abaixo mostra uma lista de configurações bastante utilizadas:


--------- 000
r-------- 400
r--r--r-- 444
rw------- 600
rw-r--r-- 644
rw-rw-rw- 666
rwx------ 700
rwxr-x--- 750
rwxr-xr-x 755
rwxrwxrwx 777

As três últimas permissões da tabela são comumente usadas para programas e diretórios.
Related Posts Plugin for WordPress, Blogger...