Como funcionam as permissões??

Olá,

Já aconteceu de você querer acessar um arquivo e não conseguir por não ter acesso? E para piorar a situação você não sabe como mudar essa permissão! Pois é isso um dia já aconteceu comigo, e com certeza com todo mundo quando estava começando, então para ajudar aqueles que estão passando ou que ainda virão a passar estou escrevendo esse post. Sei que seriam mais prático pegar um post ou tutorial prontinho e indicar aqui mas eu estava com vontade de escrever, rsrs. E também por que vez por outra alguém me pergunta sobre o assunto e assim já posso indicar.

As permissões no linux parecem complicadas mas até que não são, depois de um certo tempo usando, assim como todas as outras coisas, você pega o jeito. Mas para que servem essas permissões??  Para proteger o sistema dos usuários, para que eles de repente não apaguem, escrevam ou coisas assim em arquivos que possam a vir a causar danos, algumas vezes irreparáveis ao sistema.

As permissões existentes são:

r – read: permissão de leitura, representada pelo valor 4 (mais a frente explico melhor sobre esse valor);
w – write: permissão de escrita, representada pelo valor 2;
x – execution: permissão de execução, representada pelo valor 1.

Mas dando nome aos burros, como diria a minha mãe, essas permissões podem ser vistas executado ls -l. Por exemplo:

[krix@rogue]$ ls -l ~krix/
total 72
drwxr-xr-x  3 krix krix 4096 2008-07-04 11:03 Desktop
drwxr-xr-x  3 krix
krix 4096 2008-04-11 14:54 Documents
lrwxrwxrwx  1 krix
krix 26 2008-04-03 15:03 Examples -> /usr/share/example-content
drwxr-xr-x  2 krix
krix 4096 2008-04-03 15:12 Music
drwxr-xr-x  2 krix
krix 4096 2008-05-30 14:57 Pictures
drwxr-xr-x  2 krix
krix 4096 2008-04-03 15:12 Public
drwxr-xr-x  2 krix
krix 4096 2008-04-03 15:12 Templates
drwxr-xr-x  2 krix
krix 4096 2008-04-03 15:12 Videos

Agora vamos entender o drwxr-xr-x, vamos primeiro por casas, que são um total de 10, onde, da esqueda para a direita a primeira indica o tipo, por exemplo:

- = Indica que é um arquivo convencional;
l  = Indica que é um link simbólico;
d = Indica que é um diretório;

As três casas seguinte (2, 3 e 4) indicam as pemissões do usuario (dono). As próximas três (5, 6 e 7) indicam as permissões do grupo, e as três ultimas (8, 9 e 10) indicam as pemissões dos outros.

As permissões podem ser alteradas pelo comando chmod, sua sintaxe é a seguinte:

[krix@rogue]$chmod [opção] [modo_permissão] [arquivo_diretorio]

Exemplo:

[krix@rogue]$ chmod -R 644 ~krix/Documents

Onde:

-R = É uma opção do chmod executando o comando de forma recursiva;
644 = O cada letra representa um trio das casas que comentei anteriormente, ou seja, o 6 representa a soma de 4 + 2, que são as permissões de leitura e escrita, respectivamente, para o dono. O primeiro 4 é a permissão de leitura para o grupo e o segundo 4 é a permissão de leitura para os outros.

Acho que uma tabela pode ajudar:

0 = Permissão a nada;
1 = Permissão de execução;
2 = Permissão de escrita;
3 = Permissão de escrita e execução;
4 = Permissão de leitura;
5 = Permissão de leitura e execução;
6 = Permissão de leitura e escrita;
7 = Permissão de leitura, escrita e execução.

Contudo existe outro modo para ser dada uma permissão que é usando as próprias letras e sinais de soma e subtração, assim:

[krix@rogue]$ chmod -R -x ~krix/Documents

Assim retiramos a permissão de execução para o dono, grupo e outros, pelo fato de não especificar, somente colocando o ‘-x’. No caso a permissão ficou a mesma que usando o 644 porque mais acima quando mostrei as permissões em meu HOME esse diretório estava com a permissão rwx-r-xr-x, certo?!

Mas se eu quizer ser especifica posso fazer da seguinte forma (lembrando que a permissão agora é rw–r–r–):

[krix@rogue]$ chmod -R u+x, o-r ~krix/Documents

Agora a permissão está deste modo rwxr—–. A permissão de execução foi dada ao dono e retirada a permissão de leitura para outros e mantida a permissão do grupo que era de somente leitura.

Além disso ainda existe outro ponto importante para abordar que são os donos e grupos de arquivos e diretórios assim como as permissões de leitura, escrita e exeução são dadas a donos, grupos e outros e podem ser alteradas, o dono e grupo também podem por meio do comando chown, quem tem a seguinte sintaxe:

[krix@rogue]$chown [opção] [modo_permissão] [arquivo_diretorio]

Um exemplo seria melhor neh?!

1 – [krix@rogue]$ chown teste ~krix/Pictures

2 – [krix@rogue]$ chown teste:users ~krix/Pictures

No exemplo 1 somente o dono do diretório foi mudado, já no 2 dono e grupo foram mudados (na verdade somente o grupo mas eu queria mostrar que pode ser mudado os dos ao mesmo tempo).

Mas se eu quizer mudar somente o grupo??? Pode ser usado o comando chgrp que somente altera o grupo e sua sintaxe é a mesma do chown. Exemplo:

2 – [krix@rogue]$ chgrp users ~krix/Templates

A opção recursiva (-R) pode ser usada tanto no chown quanto no chgrp.

Espero que esse post ajude aqueles que tem dúvidas sobre o assunto, não sei se falei muito mas, procurei explicar ao máximo.

Existe um tutorial escrito por Meleu que é muito bom e com certeza vale a pena ser lido.

http://www.linuxsecurity.com.br/info/unix/permissoes.txt

:wq!


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">