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.
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.
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
d: tipo de arquivo (diretório);
rwx: permissões do proprietário e/ou usuário;
rwx : permissões para usuários do mesmo grupo;
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.
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.
[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.
[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.
[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.
[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.
[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.
[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.
[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 :)
[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.
[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!
[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,
[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.
[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.
[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.
[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.
[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.
[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 /'
[45] Comentário enviado por daviribeiro em 30/05/2019 - 15:57h
Parabéns pelo artigo.
Este atende perfeitamente ao que o título propõe: "Entendendo as permissões de arquivo (chmod)".
Aí vem um monte bestas dizendo poderia ter mais isso, mais aquilo...