Entendendo as permissões de arquivos (chmod)

Muito se usa o chmod, mas pouco se fala sobre o significado de seu uso. Este artigo tenta explicar de forma simples o significado das enigmáticas letrinhas "drwxrwxrwx" que acompanham as listagens de diretórios de nosso sistema operacional.

[ Hits: 175.615 ]

Por: José Garcia Junior em 11/10/2004


Entendendo as permissões



Usa-se muito o chmod e pouco fala-se dele.

Muitas vezes a pessoa não sabe o que está fazendo quando dá uma permissão 777 ou 455 para um arquivo. Vou explicar mais a fundo o funcionamento do chmod.

Um 'ls -la' no Linux tem o seguinte output:
drwxr-xr-x    2 root     root         4096 Set 22 10:08 temp
-rwxrwxr-x    1 garcia   garcia       1088 Jul  5 16:17 torpedo
-rw-rw-r--    1 garcia   garcia      18283 Ago  3 13:10 videoteca.tar.gz
-rw-------    1 garcia   garcia       4857 Ago 11 11:46 .viminfo
drwxr-xr-x    2 garcia   garcia       4096 Jul 15 11:34 vlc
-rw-rw-r--    1 garcia   garcia   14872515 Jul 15 11:30 vlc-binary.tar.gz
drwxr-xr-x    2 garcia   garcia       4096 Mar  4  2004 webalizer-2.01-10-x86

Onde constam vários atributos como nome, data, usuário proprietário e as permissões do arquivo. Essas permissões estão na primeira coluna, são aquelas letras "drwx".

Funciona da seguinte forma: o primeiro caractere dos atributos diz se o arquivo é um diretório ou um arquivo. Se tiver o "d" indica que é diretório.

Os próximos caracteres se dividem em 3 grupos de 3 caracteres.

Então, fica subdividido dessa forma:

d rwx rwx rwx
  1. d: tipo de arquivo (diretório);
  2. rwx: permissões do proprietário e/ou usuário;
  3. rwx : permissões para usuários do mesmo grupo;
  4. rwx: permissões para todos usuários.

Mas o que significa rwx?
  • r - read (permissão de leitura);
  • w - write (permissão de escrita);
  • x - execute (permissão de execução.

No DOS ou Windows, quando queremos executar um arquivo temos que usar extensão .exe, .com, .bat, etc. Em UNIX você seta como permissão.

Ah tá, entendi o que significam as letras, mas... o que significa "chmod 455"??? De onde vem esses números?

O chmod tem a flexibilidade de trabalhar com valores decimais de 0 a 7. Cada valor tem uma combinação de permissões pelos 3 grupos de caracteres que expliquei acima. Vamos à elas.

0 : --- (nenhuma permissão)
1 : --x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r-- (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)

Vamos a exemplos práticos para que vocês entendam como funcionam isso na prática.

# chmod 755 arquivo.ext

Atribui permissão de leitura, escrita e execução para o dono do arquivo (7), leitura e execução para usuários do mesmo grupo (5) e também para outros usuários (5).

# chmod 640 arquivo.ext

Atribui permissão de leitura e escrita (6) para o dono do arquivo, somente leitura para usuários do mesmo grupo (4) e nenhuma permissão para outros usuários (0).

# chmod 777 arquivo.ext

Permissão total de leitura, escrita e execução para TODOS! Se o servidor que você hospeda seus sites deixar brecha para acessarem ou simplesmente listarem seu diretório ou pasta, outros usuários poderão modificar seus arquivos. por isso é conveniente usar com cuidado.

Tentei de uma maneira objetiva esclarecer um pouco sobre permissões de arquivos. Espero que isso ajude quem ainda tinha dúvidas sobre o assunto.

   

Páginas do artigo
   1. Entendendo as permissões
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Sistema de backup com dar

Montando partições automaticamente

Filesystem LVM

O básico sobre RAID com mdadm e raidtools

Montando partições em memória

  
Comentários
[1] Comentário enviado por y2h4ck em 11/10/2004 - 11:44h

Bom, acho que o artigo poderia ter explorando muito mais coisas, como permissoes para donos de arquivos (chown), e tambem tratar de mascaras para pastas e tudo mais.

Mas enfim, valew a iniciativa.

[]s

Spawn

[2] Comentário enviado por rptl em 11/10/2004 - 12:05h

Poderia, mas isso seria assunto pra outro artigo. Esse visa elucidar SOMENTE sobre o chmod, trabalhando somente com numeros. O chmod ainda pode ser setado via numeros binários e hexadecimal, mas não quis deixar o artigo 'pesado' demais.

[3] Comentário enviado por bcysne em 11/10/2004 - 12:14h

Beleza, ajudou bastante. Inclusive tinha postado uma pergunta sobre isso. Só não sei ainda como dar permissão p/ um diretório inteiro e fazer os arquivos que estão dentro desse diretório herdarem as permissões também. Se puder me dizer, eu agradeço. Abraço.

Rommel

[4] Comentário enviado por cvs em 11/10/2004 - 12:19h

bcysne, pode usar o -R no chmod que ele vai fazer recursivamente, assim todos os arquivos do diretorio vão "herdar" as permissões.

[5] Comentário enviado por engos em 11/10/2004 - 12:40h

Achei muito fraco o artigo... fico até impressionado que o cvs não reclamou falando que parece uma dica... :)

A razão disso são várias, como esse é seu primeiro artigo, vou fazer os comentários "não tão pesados".

O que menos gosto em artigos são os erros, como o fato de você ter dito que o chmod trabalha com números decimais (0 a 9) enquanto o padrão dele é trabalhar com números em octal (0 a 7, como você mesmo colocou no artigo).

Outra coisa que não gostei foi o fato de não ter explorado as demais permissões como a s ou t, sem contar as diferenças entre as permissões s e S, e não ter dito que o chmod trabalha na verdade com 4 combinações.

Acho que se você não queria deixar o assunto "pesado" poderia ter dividio o artigo em seções, deixando-o suave e completo, da forma incompleta e um pouco errada como está, não gostei, mas valeu a tentativa.

Espero pelo próximo.

[]s

[6] Comentário enviado por lordello em 11/10/2004 - 13:19h

Gostaria só de acrescantar algo que não ficou bem explícito. Cada propriedade possui um valor, então o número resultante é a soma desses valores.

r = 4
w = 2
x = 1

Vamos a um exemplo do rptl:
-rwxrwxr-x 1 garcia garcia 1088 Jul 5 16:17 torpedo
rwx = 4+2+1 = 7
-rw-rw-r-- 1 garcia garcia 18283 Ago 3 13:10 videoteca.tar.gz
rw = 4+2 = 6

Não esqueçam do "suid bit", ele deixa a perção diferente.
-rwsr-xr-x 1 root root 283892 Out 11 12:14 cdrecord*
Tá vendo, a permissão inicial é rws, então tem um "s" no lugar do "x".
Isso quer dizer que quem puder rodar esse programa o fará como se fosse o dono do arquivo, nesse caso o root :)
Essa permissão eu obtive rodando o comando "chmod 4755 cdrecord". Existem outras permições como esse, 6755 7755 etc, mas para saber isso você vai ter que ler a man page do chmod.
É isso aí, ótimo artigo....

[7] Comentário enviado por cvs em 11/10/2004 - 13:55h

Realmente engos, isso aqui tá com mais cara de dica do que de artigo, mas não adianta falar nada... não vai mudar mesmo e ainda se for mudar é capaz que eu vou ser o primeiro a ter um artigo publicado como dica... hehehehe. O bom é que muita gente tem duvida sobre isso e desse pseudo-artigo elas podem tirar muitas duvidas.

[8] Comentário enviado por rptl em 11/10/2004 - 14:03h

Criticas são sempre bem-vindas, ainda mais como as que se contradizem. ;)

Bom saber, pois ja vi que existem 'panelas' aqui. E esse com certeza será o primeiro e o ultimo artigo.

[9] Comentário enviado por engos em 11/10/2004 - 16:01h

Não acho que existem panelas (basta lêr comentários de alguns artigos e você vai perceber que o pessoal se critica positiva e negativamente o tempo todo) e acredito que você tem potencial e conhece bastante sobre o assunto para fazer um segundo artigo sobre chmod, melhor que esse.

Espero que você faça outro completando o que não teve nesse.

Estou sem tempo pra fazer artigos, mas depois do meu segundo "perdi" um pouco da motivação, hoje estou fazendo mais 3 artigos e levo em consideração que as pessoas que criticam podem saber bastante, mas não o suficiente para fazerem um artigo (ou não terem coragem de arriscar), por isso "arrisco" a fazer os meus, pois o objetivo é sempre ajudar. Espero que esse último comentário te de algum apoio para continuar com os artigos.

[10] Comentário enviado por naoexistemais em 11/10/2004 - 23:18h

Caramba Brasileiros me surpreende, nunca esta bom...

[11] Comentário enviado por cahethel em 12/10/2004 - 01:35h

Muito bom o artigo, me ajudou e me tirou todas as duvidas...
Falou mano!
E boa sorte!

[12] Comentário enviado por josir em 12/10/2004 - 11:18h

Legal o artigo José.
Não esquenta com as críticas. Dá pra perceber que houveram críticas construtivas (que complementaram o seu artigo) e outras bem mal-educadas. Mas o mundo é assim mesmo: os cães ladram mas a caravana passa.

O ruim aqui do VOL é que vc não tem possibilidade de corrigir o seu artigo caso descubra algum erro ou queira melhorá-lo. Vamos torcer que o Fábio tenha tempo de dar um incrementada nesse tópico.

Não deixe de escrever: se existem panelas, tem sempre uma colher pra gente remexer no que tem dentro.

Saúde!

[13] Comentário enviado por rptl em 12/10/2004 - 13:27h

Do mesmo jeito que eu falei sobre panelas tb vi que existem pessoas sensatas aqui. Isso ja me deixa mais feliz.

O mais engraçado é que não criticaram conteúdo, e sim estética, ou ainda inventaram moda (a critica sobre "os numeros tem que ser em octal" [?!?!?!] foi bem divertida). Pra mim ficou caracterizado que as criticas vieram de quem escreve artigos, incrementa e etc. E ao invés dessas pessoas darem força pra quem ta começando a escrever no site, ja chegam com os dois pé na boca. Pra ser sincero, senti até uma ponta de ciumes por eu ser usuário novo do VOL, mas não se enganem, uso LINUX desde 98.

Quando eu procuro por alguma informação, gosto de achar tudo em um unico lugar. Por isso ficou em uma unica página. Não usei os metodos usuais do VOL. Esse artigo foi retirado de um POST que fiz em um fórum sobre PHP. Lá tem muitos leigos, que nem sabem o que é chmod. Achei que poderia contribuir com o pessoal aqui, com um overview sobre o chmod para leigos. Garanto que muito usuário que se considera avançado vai aproveitar o artigo.

Mas é isso aí. Valeu a força das pessoas de bom senso. Quem sabe eu não escreva outros :)

[14] Comentário enviado por y2h4ck em 12/10/2004 - 20:08h

rpt l fica friu meu cumpadi, vc sabe como eh ... galera sempre fala mais que a boca, mas isso ae continua escrevendo e fuck this :)

[]s cara

Spawn y2h4ck

[15] Comentário enviado por naoexistemais em 12/10/2004 - 23:40h

Caro rptl,

O triste de tudo que as pessoas que criticam negativamente, com certeza é falta de capacidade. De vez colaborar e incentivar as pessoas escreverem novos artigos, gostam de apenas criticar e desmotivar o próximo.

Falou,

[16] Comentário enviado por removido em 13/10/2004 - 00:12h

Tá aqui um cara que gasta o tempo de forma produtiva. Fala de um assunto que interessa a boa parte da comunidade e, mesmo a quem não interessa, trás ganho de conhecimento.
Só num guento mais ler sobre hacker, ética hacker, hacker , hacker... meu cachorro late: hac-hac-hac. Só tem hacker nesse mundo : P

[17] Comentário enviado por lefigo em 13/10/2004 - 09:32h

Olá pessoal! Também acho que o intuito aqui dos comentários não condiz com o que se foi proposto... Parece que certas pessoas só fazem comentários para tentar menosprezar o companheiro. Na minha opinião, isso foge completamente do espítito e filosofia que o Linux inspira... Eu particularmente fui vítima de uma dessas pessoas no meu artigo... O cara, por não ter o que criticar, usou argumentações absurdas e não disse coisa com coisa... Mas é isso aí... Sorte que ainda existem pessoas sensatas aqui na comunidade, e é delas que vc. tem que absorver críticas e comentários!

[18] Comentário enviado por will-hxcx em 13/10/2004 - 13:55h

cara... quanto choro por causa de um tuto... ta muito bom sim... os cara só critica... vai entende né? hehe

[19] Comentário enviado por will-hxcx em 13/10/2004 - 13:56h

aliás muito bem dito mont_jr ;)

[20] Comentário enviado por agk em 13/10/2004 - 14:46h

Parabéns pelo artigo, está muito bom e dentro do que se propos a fazer, explicando como funcionam as permissões de arquivos.
Críticas sempre virão, não se incomode com elas, apenas tire o que tiver de bom e descarte o resto.
Vlw, [ ]'s a todos.

[21] Comentário enviado por willianrp em 14/10/2004 - 04:22h

Ai cara, não para de escrever não!!! Lembre-se que nossa comunidade sobrevive graças à pessoas como vc. Deixa o cara criticar a vontade, o que importa é que seu artigo, ou "dica"como o cidadão se referiu, esta ajudando a muita gente. Abração véio.

[22] Comentário enviado por gaiada em 08/11/2004 - 07:55h

Pow cara nun para não, eu tava pensando em escrever um artigo e como eu sou mei novo em linux eu achei interessante ver como eh a reação de outros usuários do VOL e fiu descendo comentário a comentário achei muito legal voce ter citado sobre "panelas" aqui, enfim eu fui deescendo pelos comentários e vi que nun adianta onde tiver alguem ajudando vai sempre ter alguem atrapalhando o caminhar do mundo, mas valew mermo eu vou até escrever um artigo, e será bem simples afinal o intuito de um artigo é falar do mesmo.

pow, eu até já entendia um pouco sobre chmod e mesmo assim eu achei bem interessante seu artigo,

valews!!

nun para não!

[23] Comentário enviado por genioloco em 08/11/2004 - 23:07h

Não sei nada de chmod, a não ser o que tem neste tutorial. Consigo mexer no kernel e controlar muitas coisas, mas não conheço o chmod.

Quem sabe, que complemente, quem não sabe limite-se a elogiar:

Parabéns rptl!

"Achei utilidade para as pedras que me jogaram: vou construir um castelo!"

[24] Comentário enviado por dacruz em 22/02/2005 - 17:51h

Eu não li todos os comentários, então espero que ninguém já tenha escrito o que eu vou dizer!
Bem, é muito mais fácil se vc pensar em n° binario! Sendo 1 possui tal propriedade e 0 não!
Ou seja, desconciderando o primeiro espaço que indica diretorios ou outro tipo de arquivo, -rwx rwx r-x seria 111 111 101, que é 775.

[25] Comentário enviado por jrdelforno em 11/03/2005 - 09:56h

Gostaria de fazer com que o Samba sobrescrevesse as permissões de pastas setadas via chmod. Tem como fazer?

[26] Comentário enviado por kamal em 25/11/2005 - 14:53h

Ficou legao sim esse artigo. Eu pessoalmente nao sabia muio de chmod. Me ajudou bastante. O que vale é a iniciativa. Abraços

[27] Comentário enviado por JucelioMoura em 21/05/2006 - 22:20h

No mundo do SL existem os que colaboram de alguma forma, e os parasitas que só usam o GNU/Linux para acessar internet, e porque é de graça! :)

Espero que você continue com ânimo pra contribuir...
Seu artigo me ajudou muito.

[28] Comentário enviado por removido em 16/07/2006 - 17:45h

Usando o sistema de codificação numérico, você tem sempre de informar o valor absoluto da permissão, independente das suas permissões prévias. O sistema numérico é baseado em três conjuntos de números de base dois. Existe um conjunto para cada categoria de usuário, grupo e outros. Os valores são 4(ler), 2(gravar) e 1(executar). Esses valores são acrescentados juntos para fornecer o conjunto de permissões para aquela categoria. Com o sistema numérico você sempre especifica todas as três categorias. Portanto, para que o proprietário do arquivo.profile tenha permissões de ler, gravar e executar o arquivo e ninguém mais tenha qualquer permissão, você deve usar o valor 700, da seguinte forma:

chmod 700 .profile

Para tornar o mesmo arquivo legível e gravável para o usuário e legível pelo grupo e outros, você segue a mesma lógica matemática: para o primeiro conjunto de permissões, o usuário, o valor para legível é 4, e o valor para gravável é 2. A soma desses dois é 6. O próximo conjunto de permissões, o grupo, é read-only, portanto é 4. As definições para os outros, assim como o grupo, é 4. Portanto o comando seria chmod 644 .profile.

só falta agora bombardearem também, mas o art. do rptl cumpriu o seu papel pois foi bem comentado.

[29] Comentário enviado por Trorram em 11/08/2006 - 11:23h

Caro amigo seu artigo serviu como uma luva para uma apresentacao deixo aqui meu agradecimento...Obrigado Trorram

[30] Comentário enviado por maninhx em 28/02/2007 - 10:56h

achei simples o artigo, poderia ser mais completo.

mas para a duvida que eu tinha foi suficiente.

[31] Comentário enviado por jem06 em 08/08/2007 - 12:51h

Senhores, parabésns pelo trabalho de voces. Gostaria de conhecer melhor sobre, partições no linux, init.d o que é e como funciona, grub, lilo, como montar cds, disquetes e principalmente instalações do linus, como instalar, o gnome, gerenciador de login, como funciona como NIS, gerenciador de janelas, e o Debian. Muito Obrigado. JONNY ERNANI MAIA. Mandem-me repostas, por favor.

[32] Comentário enviado por xerxeslins em 12/11/2007 - 12:36h

Adorei o seu artigo. Foi direto ao ponto. Sou iniciante no Linux e acho que seu artigo foi 100% eficaz em explicar de maneira simples e direta as permissões do linux.

Obrigado =]

[33] Comentário enviado por demonios em 01/09/2008 - 13:44h

Ajudou bastante obrigado.

Jacques Sali

[34] Comentário enviado por alexmartins em 20/09/2008 - 00:13h

Também gostei da iniciativa, pela objetividade e de comentar aos que não gostaram deste ARTIGO:

Existem diversas maneiras se fazer uma mesma tarefa, em programação por exemplo: algoritmos diversos podem chegar ao mesmo resultado.

Então implemente, melhore e não critique a boa iniciativa!

Abraço e muito obrigado RPTL... valeu!

[35] Comentário enviado por lucianonti em 06/10/2009 - 09:55h

bom dia eu gostaria de saber qual procedimento usar para dar permissao 777

[36] Comentário enviado por pardalz em 22/01/2010 - 12:45h

Amigão, estou com um probleminha de permissão, talvez vc possa me ajudar.

eu estava enfrentando problemas com o servidor de email q eu acabei de criar.. cada hora era uma coisa que aparecia, mas deu certo.. agora ta do jeito q eu kero.. porem estou tendo um pequeno problema quanto às permissoes.

quando chega uma mensagem, ela é direcionada para /home/email/${domain}/${user/new/
só que ela vai sem permissao de leitura, entao o cliente de email da erro..
ae se eu dero chmod 777 e chown nobody na pasta funciona.. o cliente de email recebe bunitim.. tem alguma ideia!??

[37] Comentário enviado por joander.vieira em 11/09/2010 - 14:38h

Valew cara me ajudou muito
Eu gosto das coisas mais simples, simplicidade é de Deus, complexidade é do Diabo.

Teve um tal de lordello, que foi tentar da uma de bãozão mas nem perdi o tempo tentando entender o que ele falou.

A boa ajuda é aquela clara de facil compreensão que não precisa de ficar lendo umas 3 vezes para tentar entender o que o cara escreveu.

ESSES CARAS QUE CRITICAM MUITO PODE ATE ENTENDER BASTANTE, MAS SÃO PESSIMOS PARA EXPLICAR E AJUDAR, ACHO QUE ESTÃO NO LUGAR ERRADO, DEVERIAM SOMENTE COLOCAR UM ESPELHO PERTO DO COMPUTADOR E FICAR SE ADMIRANDO "SOZINHO", NOS POUPARIAM DE SUAS EXIBIÇÕES.

Jesus te Ama

[38] Comentário enviado por leco2612 em 23/11/2010 - 17:01h

matou minhas duvidas muito bommm!!!!!!

[39] Comentário enviado por danilobs em 17/01/2011 - 19:15h

Você foi bem claro e objetivo...muito bom o artigo!

Valew!!!

[40] Comentário enviado por isacborgert em 14/02/2013 - 14:56h

Muito bom o artigo, parabéns.

[41] Comentário enviado por Ezekias2013 em 02/06/2013 - 15:16h

Olá , JJG

Depois dessa aula não terei mais dúvidas com CHMOD.Fiz uma associação da sua explicação com os números binários.


--------------------------------------------------------
r w x | - - -
1 1 1 | 0 0 0
É só substituir corretamente
--------------------------------------------------------
Bin | Dec | chmod
---------------------
000 | 0 | - - -
001 | 1 | - - x
010 | 2 | - w -
011 | 3 | - w x
100 | 4 | r - -
101 | 5 | r - x
110 | 6 | r w -
111 | 7 | r w x
-------------------------------------------------------
Valeu !!!!!!!!!

[42] Comentário enviado por AndreiPossamai em 30/10/2016 - 00:38h

Sou iniciante no mundo Linux e gostei do Artigo, é curto e ensina bem, apesar de muitos dizerem que se trata de um artigo incompleto, acho muito bom àqueles que estão iniciando e gostariam de entender, com é o meu caso.

Fico grato pela existência do mesmo

[43] Comentário enviado por neicivaldo em 01/02/2017 - 15:25h

Boa tarde!
Alguém pode me ajudar com isso?
Defina o CHMOD para 777 ou 775 (dependendo da configuração do servidor) para a pasta 'uploads' localizada em 'assets / sources /'


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts