TanodTools
PT

Calculadora chmod

Defina permissões de arquivos Unix com caixas de seleção, um número octal como 755 ou o texto rwxr-xr-x, e obtenha os comandos chmod correspondentes.

Funciona inteiramente no seu navegador

Permissões
DonoGrupoOutros
Leitura 4
Escrita 2
Execução 1

Numérico
Simbólico

O que este modo permite

QuemEm um arquivoEm um diretório

Funciona com os nove bits de permissão mais setuid, setgid e sticky, como no chmod POSIX. Não lê arquivos reais, não mostra o dono e não cobre ACLs, atributos de arquivo nem umask. Modos octais precisam de 3 ou 4 dígitos.

Como calcular um modo chmod

  1. Marque as caixas de dono, grupo e outros, ou escolha um modo comum como 644 ou 755. Você também pode digitar um número octal ou o texto de nove letras, e as caixas acompanham.
  2. Confira o resumo do que cada classe pode fazer com um arquivo e com um diretório, e leia qualquer aviso exibido.
  3. Copie o comando chmod numérico ou simbólico. Troque o nome do arquivo antes se quiser o comando pronto para colar.

Como as permissões de arquivos Unix são guardadas

A calculadora chmod trabalha com o modo que todo arquivo e diretório de um sistema tipo Unix carrega: três bits de permissão (leitura, escrita, execução) para cada uma de três classes (o usuário dono, o grupo dono, todos os outros), mais três bits especiais. São doze bits, e o número octal é simplesmente esses bits escritos de três em três, e é por isso que os dígitos só vão até 7. O formato de nove letras do ls -l mostra os mesmos bits como letras.

Leitura, escrita e execução significam coisas diferentes em um diretório. Leitura permite listar os nomes de dentro, escrita permite adicionar, renomear e remover entradas, e execução permite entrar no diretório e acessar itens pelo nome. Um diretório com leitura, mas sem execução, mostra os nomes e nega acesso a tudo o que está dentro, uma fonte comum de erros de permissão confusos.

Os bits especiais mudam o comportamento de um modo. Setuid e setgid fazem um programa rodar com os direitos do dono ou do grupo do arquivo em vez dos de quem o chamou, o que é poderoso e por isso é ignorado em scripts de shell na maioria dos sistemas. Setgid em um diretório faz os arquivos novos herdarem o grupo dele, e o sticky bit em um diretório impede que usuários apaguem os arquivos uns dos outros. Se não tiver certeza de qual modo um arquivo precisa, comece restritivo e acrescente só o que uma mensagem de erro pedir.

Dicas

Perguntas frequentes

Como funciona o número octal?

Cada dígito soma leitura (4), escrita (2) e execução (1) de uma classe, na ordem dono, grupo, outros. Assim, 7 é leitura, escrita e execução, 5 é leitura e execução, e 4 é só leitura. 755 dá tudo ao dono e leitura e execução a todos os outros. Um quarto dígito opcional na frente guarda setuid (4), setgid (2) e sticky (1).

O que significam as letras s, S, t e T?

Elas substituem o x na posição do dono, do grupo ou dos outros. Uma letra minúscula significa que o bit especial está ligado e a execução também; uma letra maiúscula significa que o bit especial está ligado, mas a execução está desligada, o que geralmente é um erro. Assim, 4755 é rwsr-xr-x e 4644 é rwSr--r--.

Qual a diferença entre 644 e 755?

644 é o modo comum para arquivos normais: o dono pode ler e escrever, e todos os outros só podem ler. 755 acrescenta execução para todos, o que programas, scripts e diretórios precisam. Diretórios precisam do bit de execução para que alguém possa entrar neles.

Por que o 777 é considerado perigoso?

Ele permite que qualquer usuário da máquina, e qualquer programa rodando como um deles, altere ou substitua o arquivo. Um servidor web que precisa escrever em algum lugar não precisa disso: dar a posse ao usuário ou grupo certo e usar 775 ou 770 resolve a maioria dos erros de permissão sem abrir o arquivo para todo mundo.

O que o sticky bit faz?

Em um diretório, ele impede que usuários apaguem ou renomeiem arquivos que não são deles, mesmo que possam escrever no diretório. É por isso que pastas compartilhadas como /tmp têm modo 1777. No Linux moderno, ele não tem efeito em arquivos comuns.

Isto muda alguma coisa no meu computador?

Não. Ele só calcula o número e os comandos. Nada do que você digita é enviado, e você mesmo executa os comandos em um terminal.