Skip to content

chmod 000

chmod 000 define ---------: dono, grupo e demais perdem leitura, escrita e execução, então só o root (que ignora essas checagens) abre o arquivo, e só o dono ou o root podem mudar o modo de volta.

Matriz de permissões

Quais bits de permissão cada classe tem
QuemLeitura (4)Escrita (2)Execução (1)Dígito
Dono (u)NãoNãoNão0
Grupo (g)NãoNãoNão0
Outros (o)NãoNãoNão0

Execução muda de sentido conforme o tipo. Num arquivo, deixa o kernel rodá-lo como programa. Num diretório, é a permissão de busca: entrar (cd) e alcançar os arquivos de dentro pelo nome. Leitura num diretório só lista os nomes.

O que cada classe pode fazer com um arquivo e com um diretório
QuemNum arquivoNum diretório
Dono (u)Nenhum acessoNenhum acesso
Grupo (g)Nenhum acessoNenhum acesso
Outros (o)Nenhum acessoNenhum acesso

Dados

Representações deste modo
Octal000 (0000)
Simbólico---------
ls -l, arquivo----------
ls -l, diretóriod---------
Comando simbólico equivalentechmod a=
umask padrão que gera esse modoNenhum dos umasks comuns; defina explicitamente com chmod
Como o Git registra um arquivo assim100644 (não executável)
Bits especiaisNenhum

Quando usar

  • Arquivos que só o root deve tocar: no Fedora e no RHEL o /etc/shadow é ----------, e as ferramentas que o atualizam rodam como root.
  • Colocar em quarentena um upload suspeito ou desativar um script sem apagar, para que nada rodando como usuário comum consiga ler ou executar.

Quando não usar

  • Como proteção contra o root: o root continua lendo e gravando.
  • Em diretórios que você ainda usa: nem o dono consegue listar ou entrar até rodar chmod de novo.
  • Como forma de esconder um arquivo: nome, tamanho e dono continuam visíveis para quem lista o diretório.

Comandos

Aplicar em um arquivo ou diretório
chmod 000 quarantine.bin
chmod a= quarantine.bin   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' quarantine.bin     # Linux (stat do GNU): 0 ----------
stat -f '%Lp %Sp %N' quarantine.bin   # macOS e BSD

Aplicando numa árvore inteira

Um chmod -R 000 trava no primeiro nível: quando um diretório vira 000, o chmod nem consegue olhar dentro dele como usuário comum. Raramente há motivo para isso; para trancar uma árvore, use 700 no diretório de cima.

Git e o bit de execução

O Git guarda um único dado de permissão por arquivo: 100755 se o bit de execução do dono estiver ligado, 100644 caso contrário. Um arquivo com este modo entra no commit como 100644; os bits de grupo e outros nunca chegam ao repositório. No Windows, ou com core.fileMode false, ligue o bit com git update-index --chmod=+x.

Perguntas frequentes

O que o chmod 000 faz?
Zera os nove bits de permissão. Usuários comuns, incluindo o dono, recebem permission denied; o root ainda lê e grava.
chmod 000 é igual a chmod 0000?
Em arquivos comuns, sim. Em diretórios o chmod do GNU mantém um setuid ou setgid existente com 000 ou 0000; use cinco dígitos (00000) ou chmod a-s para zerar também esses bits.
Como desfazer um chmod 000?
Como dono, rode chmod 644 num arquivo ou chmod 755 num diretório. Não é preciso ter leitura no arquivo para mudar o modo dele.

Revisado em por Arielton Oberek.