Leia, grave e execute!

Neste artigo abordarei as permissões no Linux, ou seja, como atribuir/retirar uma permissão, mudar o dono/grupo de um arquivo. Enfim, entender como este mecanismo funciona.

[ Hits: 185.688 ]

Por: Fabio Maran em 02/09/2008 | Blog: http://movimentolivre.zip.net


Atribuição de permissão por soma ou subtração



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?

;)

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Visão geral
   3. Alterando o dono/grupo de um arquivo
   4. Atribuição de permissão por soma ou subtração
   5. Atribuição direta
   6. Atribuição octal
   7. Umask
   8. Atribuições especiais: Stick Bit, SGUID e SUID
   9. Testando o conhecimento adquirido: um problema e uma solução
   10. Considerações finais
Outros artigos deste autor

Samba: Integração com ClamAV e outras coisas úteis

Debian e o Backports

Virtualização de sistemas

GNOME Slacky 2.20.3

Desktop Debian/Ubuntu

Leitura recomendada

Guia Introdutório do Linux V

As mais frequentes pesquisas no Google sobre Linux

Utilizando um SSD ao lado de um HD em Micro Desktop

Formatar para Linux

Customizando o DVD de instalação do Slackware

  
Comentários
[1] Comentário enviado por robsonbraga em 02/09/2008 - 11:34h

Cara, parabens, já conheço bem do assunto, mas sempre dou umas espiadas nos artigos e o seu está muito bom, bem didático e bem escrito, até parece que ta escrevendo o livro PERMISSÕES FOR DUMMIES.

Abraço.

[2] Comentário enviado por removido em 02/09/2008 - 11:59h

Parabéns maran,
um dos melhores que já ví sobre permissões ...

[3] Comentário enviado por maran em 02/09/2008 - 13:10h

@robsonbraga, fala meu velho, obrigado pelo comentário, livro rsrsr quem me dera ;)

@noel fala velinhu tudo na paz????
Obrigado !!!

Abraços

[4] Comentário enviado por fulllinux em 02/09/2008 - 13:37h

Ponte que partiu kara!!!! Já está aqui... ehehe... posso dizer que esse já tive a oportunidades de dar uma espiada!!! heheh...
Grande maran... kara esse ficou show!!!!

Abraço...

[5] Comentário enviado por gjr_rj em 02/09/2008 - 13:55h

Cara, parabéns !!!!

Acho que como todos que comentaram, entrei apenas parar ver, pois acreditava que iria falar de um assunto, já bem, conhecido por mim e acabei aprendendo muita coisa.

Não li muitos artigos sobre permissões para poder comparar, mas pela qualidade do seu, apostaria alto em que não houve artigo nem parecido.


[6] Comentário enviado por maran em 02/09/2008 - 14:07h

@Rafael, puxa foi rapido meu velho mostrei ele para vocÊ, e logo depois já veio pra cá shuhusahusahusahusahu.
Vaaleu meu velho :)

@Geraldo, fala meu velho, como que estas?
Muito obrigado pelo comentário, bom quanto a outros artigos, cada um tem seu diferencial, porem todos vem para somar, assim como o meu!

Abraço

[7] Comentário enviado por tiagotavares em 02/09/2008 - 14:36h

Minha nossa, que muleque atentado, tá virando o rei dos artigos, sempre que abro o viva o linux tem um artigo novo seu!

Abraço!

Tiago

[8] Comentário enviado por cesar em 02/09/2008 - 16:21h

Muito bom maran

Parabéns.

[]'s

[9] Comentário enviado por dfsantos em 02/09/2008 - 18:29h

Show de bola maram

bem didatico... muito bom mesmo.


[10] Comentário enviado por diegofsouza em 03/09/2008 - 08:58h

Ótimo artigo... Muito completo. Gostei!

Abraço!

Viva o Linux

[11] Comentário enviado por percival em 03/09/2008 - 11:09h

Artigo de nível, parabéns.

[12] Comentário enviado por maran em 04/09/2008 - 06:55h

@dfsantos , muito obrigado pelo comentário.

@Cesar, fala mey velho, obrigado pelo coment

@Percival, :)

Abraços

[13] Comentário enviado por balani em 04/09/2008 - 09:10h

Excelente artigo, parabens!

[14] Comentário enviado por kalib em 04/09/2008 - 10:56h

Isso tudo foi pra me fazer ficar cansado?? hauhauah
Show de bola cara...bem completo e extenso. ;] Boa didática...
Tive que dividir em dois dias de leitura pq esses dias tem sido corridos aqui no trabalho..por isso demorei a comentar.. huahah

grande abraço..parabéns

[15] Comentário enviado por maran em 04/09/2008 - 11:24h

@kalib, fala meu velho, uhsauhashuashusa
cansado rsrs, eu ia manda lá pra aquele nosso esquema, mas ia ficar muito grande oO"
ehhehe que isso meu velho, obrigado pelo comentário ;)

Abraços, te mais...

[16] Comentário enviado por pink em 04/09/2008 - 13:38h

Maranzinho, parabéns... li inteiro seu artigo, nossa muito bom, fácil entendimento, bom português..... apesar de nada novo ser me apresentado eu tinha que comentar hehehe, artigos como esses valorizam o VOL, pode ter certeza que esse artigo é muito mais que somar, é multiplicar valores...
Permissões é algo essencial a todo user/adm, esse tutorial será útil não somente para iniciantes, para avançados também sobre um tema muito importante e pouco discutido.
Parabéns novamente, obrigada pela contribuição, você tem toda a minha admiração....
# chmod 700 /root/pink/s2/maran
Fique com Deus,
Michele [pink]

[17] Comentário enviado por maran em 04/09/2008 - 13:51h

@caipirinha, Olá minha querida :)
Ahh que bom que o cê gosto do artigo do compade aqui, rsrsrs
Brincadeira a parte, realmente este é um assunto muito importante, e realmente pouco comentado, mais creio eu pelo fato de ser de simples entendimento de todos , mas é sempre bom prevenir né?
Bom:
# cd /s2
# mkdir caipirinha
# echo 'você pode' > fazeroseguinte.txt
# chmod 700 /s2/*
# echo 'rabiscar,pintar e bordar' > aquidentro.txt

Beijinhus

[18] Comentário enviado por homme em 08/10/2008 - 20:26h

O artigo contribuiu muito para meu aprendizado, tem muuita informação.
Porém, a tabela octal me deixou confuso a princípio.
Quando atribuo a permissão 321, ela mostra '--wx-w---x' e não '-r-x-w-r--' como mostra o exemplo.
Fiz alguns testes de 000 até 777 e eu cheguei a uma tabela
1 - x
2 - w
4 - r
Desculpe se estou falando asneiras.
Muito obrigado.
Rafael

[19] Comentário enviado por fainfo em 13/12/2009 - 18:20h

Nossa cara me matei lendo artigos aqui pra entender umask, e o seu foi muito claro didático, porra muito bem, agora com esse método eu não preciso fazer mais cálculo com binários?

se quiser mandar resposta por e-mail " fainfonet@gmail.com

[20] Comentário enviado por fbcborges em 24/06/2010 - 10:07h

Muito bom o artigo, sou iniciante obtive recentemente no curso essas permissões e com mais esse material, deu para clarear bastante o raciocíonio perante a esta função do Linux.
Parabêns pelo artigo, agradeço em nome de todos os iniciantes em Linux.

[21] Comentário enviado por josemirsilva em 07/01/2012 - 15:12h

boa tarde,
chegamos em 2012, e seu artigo parace que foi feito onde, valeu, que voce continue esclarecedo o grupo que pesquisa aqui no vivaolinux.

valeu

Deus continue te abençoado.


[22] Comentário enviado por Badabum em 17/05/2012 - 11:52h

Muito obrigado pelo seu artigo...Muito bem feito...Salvou umas 3 vidas no minimo.

[23] Comentário enviado por igor_rocha em 20/07/2012 - 02:55h

Esse gurizão ai ta de parabéns!! show de bola!!

[]S

[24] Comentário enviado por dodo1986 em 11/02/2013 - 19:16h

Muito bom este artigo, acabei de fazer o curso de Linux em uma institição, porem havia me esquecido dessas permissoes. me ajudou muito.

[25] Comentário enviado por edertux em 04/03/2015 - 17:38h

Parabéns @maran, artigo de alto nível!

Galera do VOL, ainda estou com uma dúvida:

Criei dois arquivos teste:
/home/edertux/primeiro, é vazio e com permissão -rw-r--r-- para receber qualquer coisa.
/home/edertux/segundo,é um script e com permissão -rwsr-xr-x para alimentar o /home/edertux/primeiro.

Faço login com um segundo usuário, executo /home/edertux/segundo normalmente (afinal, ele tem permissão para isso), porém quando chega na parte de alimentar (echo "Qualquer coisa" >> /home/edertux/primeiro) ele dá permissão negada.

Partindo do princípio que o /home/edertux/segundo está com SUID habilitado, outros usuários não deveriam conseguir alimentar o /home/edertux/primeiro ao executar /home/edertux/segundo?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts