Com o conceito do que é uma permissão e que efeitos elas surtem em um arquivo/diretório/script, veremos na prática como mudar/alterar/inserir uma permissão em dados de meu sistema.
Existem 3 métodos possíveis, um que eu digo ser o da "soma e subtração", pois analisaremos os arquivos e dependendo de sua necessidade inserir/retirar uma permissão, um método por atribuição direta, onde você já diz a permissão que o arquivo/diretório em questão assumirá e ainda temos o método octal, uma atribuição parecida com a direta.
Neste primeiro exemplo veremos a "soma e subtração". Vamos começar?
Abra um terminal e crie uma pasta chamada permissões, pode ser no home de seu usuário ou em qualquer outro lugar que desejar.
# mkdir /home/maran/permissoes
Dentro deste diretório crie 6 arquivos, para mostrar de exemplo criaremos de permissao1 até o permissao6.
# touch permissao{1,2,3,4,5,6}.txt
Se você fizer uma listagem em seu diretório usando o:
# ls -l perm*
Devera ser retornado algo como:
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao1.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao2.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao3.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao4.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao5.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao6.txt
Aqui dá para percebemos que todos os arquivos foram criados com as mesmas permissões né? Pois é, mas este assunto veremos ao final do artigo, não se preocupem.
Logo percebemos que os arquivos tem as seguintes permissões:
- Leitura e escrita para o dono do arquivos (root);
- Leitura para o grupo (root);
- Leitura para outros.
Então o método "soma e subtração" consistirá em que?
Vamos a um exemplo: quero que o arquivo permissao1.txt tenha permissões de escrita, leitura e execução para o dono, leitura e escrita para o grupo e apenas leitura para outros.
Primeiro eu analisarei quais são as permissões do arquivo:
# ls -l permissao1.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao1.txt
# chmod u+x,g+w permissao1.txt
Vejam: percebi que para o dono já existia a permissão de leitura e escrita, então apenas adicionei a execução (x), para o grupo a mesma coisa, percebi que já havia leitura, então adicionei a gravação (w) e outros já estava do jeito que queria vejam:
# ls -l permissao1.txt
-rwxrw-r-- 1 root root 0 2008-08-16 11:16 permissao1.txt
Simples não é? Aqui para inserir ou retirar permissões usaremos as letras (r) (w) (x) como atributo de permissão, como foi mostrado na página "Visão geral".
Vamos a mais alguns exemplos então:
Agora digamos que eu queira que o arquivo permissao2.txt tenha permissão de escrita para o dono, leitura para o grupo, e escrita, leitura e gravação para outros.
# ls -l perm*
-rwxrw-r-- 1 root root 0 2008-08-16 11:16 permissao1.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao2.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao3.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao4.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao5.txt
-rw-r--r-- 1 root root 0 2008-08-16 11:16 permissao6.txt
Eu analiso e concluo, que o processo seria efetuado da seguinte forma:
# chmod u-r,o+wx permissao2.txt
Retirei a permissão de leitura (r) do dono, o grupo já estava como queria, e para outros adicionei escrita e execução (w)(x).
# ls -l permissao2.txt
--w-r--rwx 1 root root 0 2008-08-16 11:16 permissao2.txt
Ok, está começando a ficar claro, vamos a mais dois exemplos apenas.
Agora eu quero deixar as permissões do arquivos permissao1.txt como nenhuma permissão para o dono, apenas execução para o grupo, e leitura, escrita e execução para outros.
# chmod u-rwx,g-rw+x,o+wx permissao1.txt
O que foi feito, analisei o arquivo, retirei as permissões de escrita (w), leitura (r) e gravação (w) do dono, retirei leitura e escrita do grupo -(r) (w) e adicionei execução (x) e para outros adicionei leitura,escrita e execução (r)(w)(x).
Vamos analisar e ver se deu certo:
# ls -l permissao1.txt
------xrwx 1 root root 0 2008-08-16 11:16 permissao1.txt
Um outro exemplo: quero zerar as permissões dos arquivos permissao1.txt e permissao2.txt.
# chmod u-rwx,g-rwx,o-rwx permissao[1-2].txt
# ls -l permissao[1-2].txt
---------- 1 root root 0 2008-08-16 11:16 permissao1.txt
---------- 1 root root 0 2008-08-16 11:16 permissao2.txt
Simples não é? Este é o método por "soma e subtração", espero que tenha conseguido passar de uma maneira clara a vocês como utilizar este mecanismo.
Bora para o próximo?
;)