Skip to content

Permissões chmod: todos os modos comuns explicados

O chmod define quem pode ler, gravar e executar um arquivo com três dígitos octais, um para o dono, um para o grupo e um para os demais, em que leitura vale 4, escrita 2 e execução 1: 755 significa rwxr-xr-x e 644 significa rw-r--r--.

Diretórios e programas

Diretórios e programas
ModoSimbólicoUso típico
chmod 777rwxrwxrwxTodos podem tudo; quase sempre um erro
chmod 775rwxrwxr-xDiretórios que uma equipe edita junto
chmod 770rwxrwx---Diretório de equipe fechado para os demais
chmod 755rwxr-xr-xPadrão para diretórios, scripts e programas
chmod 750rwxr-x---Grupo lê, outros ficam de fora
chmod 744rwxr--r--Só o dono executa, outros leem
chmod 711rwx--x--xOutros atravessam, mas não listam
chmod 700rwx------Só o dono: ~/.ssh, scripts privados

Arquivos comuns

Arquivos comuns
ModoSimbólicoUso típico
chmod 666rw-rw-rw-Arquivo gravável por todos; dispositivos como /dev/null
chmod 664rw-rw-r--Arquivo que o grupo edita e todos leem
chmod 660rw-rw----Dados do grupo, fechados para os demais
chmod 644rw-r--r--Padrão para arquivos comuns e conteúdo web
chmod 640rw-r-----Configs e logs que um grupo de serviço lê
chmod 600rw-------Só o dono: chaves SSH, credenciais

Somente leitura e bloqueados

Somente leitura e bloqueados
ModoSimbólicoUso típico
chmod 555r-xr-xr-xDiretório ou programa somente leitura
chmod 544r-xr--r--Script travado que só o dono roda
chmod 500r-x------Privado e protegido contra escrita
chmod 444r--r--r--Somente leitura para todos
chmod 440r--r-----/etc/sudoers, wp-config.php protegido
chmod 400r--------Só o dono lê: chaves .pem, segredos
chmod 000---------Só o root; quarentena, /etc/shadow

Bits especiais: setuid, setgid, sticky

Bits especiais: setuid, setgid, sticky
ModoSimbólicoUso típico
chmod 1777rwxrwxrwtÁrea temporária comum: /tmp, /var/tmp
chmod 2775rwxrwsr-xPasta de equipe onde arquivos novos mantêm o grupo
chmod 2755rwxr-sr-xPrograma setgid ou pasta que herda o grupo
chmod 4755rwsr-xr-xPrograma setuid que roda como o dono

Comandos simbólicos

Comandos simbólicos
ComandoO que faz
chmod +xTornar um script executável
chmod u+xExecução só para o dono
chmod a+rLegível para todos
chmod go-wTirar escrita de grupo e outros
chmod -RMudar uma árvore inteira com segurança

Como ler um modo octal

Cada dígito é a soma de leitura (4), escrita (2) e execução (1) para uma classe de usuários, na ordem dono, grupo, outros. 7 é 4+2+1 (rwx), 5 é 4+1 (r-x), 6 é 4+2 (rw-), 4 é só leitura e 0 é nada. O manual do GNU coreutils e a página chmod(1) definem esse mesmo formato.

Um quarto dígito na frente guarda os bits especiais. Ele é opcional: chmod 755 e chmod 0755 definem o mesmo modo em arquivos.

Como ler um modo octal
DígitoBitsSignificado
0---Nenhuma permissão
1--xSó execução
2-w-Só escrita
3-wxEscrita e execução
4r--Só leitura
5r-xLeitura e execução
6rw-Leitura e escrita
7rwxLeitura, escrita e execução

Bits especiais e como o ls mostra

Os bits especiais ocupam a posição de execução de uma classe no ls -l. O s ou t minúsculo indica que a execução também está ligada; o S ou T maiúsculo indica que não está, o que num programa costuma ser erro.

Bits especiais e como o ls mostra
BitValorExemplols -lEfeito
setuid4000chmod 4755rwsr-xr-xO programa roda como o dono do arquivo
setuid sem execução4000chmod 4644rwSr--r--Ligado, mas inútil: nada para rodar
setgid2000chmod 2750rwxr-s---Diretório: itens novos herdam o grupo
sticky1000chmod 1777rwxrwxrwtSó o dono apaga os próprios arquivos (/tmp)

Execução em arquivos e em diretórios

Num arquivo, execução deixa o kernel rodá-lo. Um script também precisa de leitura, porque o interpretador tem de abri-lo. Num diretório, execução é a permissão de busca: ela é necessária em todo diretório do caminho até um arquivo, e a leitura só permite listar os nomes.

Por isso uma árvore precisa de dois modos (em geral 755 para diretórios e 644 para arquivos) e por isso chmod -R com um único número dá errado.

Conferindo o modo de um arquivo

O ls -l mostra a forma simbólica. Para o número octal, o stat do GNU usa -c e o do BSD ou macOS usa -f; no macOS o %Lp imprime só os nove bits de permissão, então acrescente %Mp para o dígito dos bits especiais.

Conferir o resultado
ls -l file
stat -c '%a %A %n' file      # Linux (GNU)
stat -f '%Mp%Lp %Sp %N' file  # macOS / BSD

Perguntas frequentes

O que significa chmod?
Change mode, mudar o modo. O modo de um arquivo é o conjunto dos seus bits de permissão, e chmod é tanto o comando quanto a chamada de sistema que o altera.
Quais são os valores de chmod mais comuns?
755 para diretórios e programas, 644 para arquivos comuns, 700 e 600 para diretórios e arquivos privados como ~/.ssh e chaves SSH, e 1777 para diretórios temporários compartilhados como o /tmp.
Qual a diferença entre chmod e chown?
O chmod muda o que dono, grupo e outros podem fazer. O chown muda quem são o dono e o grupo. Só o root pode passar um arquivo para outro dono com chown; o dono pode dar chmod nos próprios arquivos.
O chmod respeita o umask?
Modos numéricos ignoram o umask. Modos simbólicos sem classe de usuário, como +x ou -w, pulam os bits ligados no umask; com u, g, o ou a, não.
Quem pode rodar chmod num arquivo?
O dono do arquivo e o root. Membros do grupo não mudam o modo, mesmo com permissão de escrita no arquivo.

Revisado em por Arielton Oberek.