Utilia

Calculadora chmod

Converte permissões de ficheiros Unix entre caixas, notação octal (755) e simbólica (rwxr-xr-x), com setuid, setgid, sticky bit e comandos chmod prontos.

Permissões
ClasseLeitura (4)Escrita (2)Execução (1)
Dono (u)
Grupo (g)
Outros (o)
Bits especiais

Comandos

Numérico
Simbólico
Como mostrado por ls -l
Alteração relativa a partir de {from}

Quem pode fazer o quê

    Predefinições comuns

    Como usar a calculadora chmod

    1. Começa por qualquer representação: marca as caixas na tabela Permissões, escreve um modo em Octal (p. ex. 755 ou 4755) ou cola uma string como rwxr-xr-x ou drwxr-sr-x (tal como sai do ls -l) em Simbólico (p. ex. rwxr-xr-x). As outras vistas acompanham de imediato.
    2. Define os Bits especiais se precisares deles: Setuid (4000), Setgid (2000) ou Sticky (1000). O modo octal passa então a ter quatro algarismos.
    3. Introduz o Nome do ficheiro ou diretório, marca É um diretório e Recursivo (-R) conforme necessário, e copia o comando Numérico ou Simbólico.
    4. Para testar uma alteração relativa, escreve-a em Alteração simbólica (p. ex. u+x,go-w) e clica em Aplicar alteração.

    Os botões de Predefinições comuns carregam modos típicos como 644, 600, 755 ou 2775. A linha Alteração relativa a partir de … mostra a expressão chmod que transforma a última predefinição ou o último modo escrito no modo atual, por exemplo a+x de 644 para 755.

    Ler as permissões Unix

    Cada ficheiro tem três classes de utilizadores: o dono (u), o grupo (g) do ficheiro e os outros (o), ou seja, toda a gente. Cada classe recebe três permissões, cada uma com um valor: leitura = 4, escrita = 2, execução = 1. Somando-as obtém-se um algarismo octal por classe: rwx = 7, rw- = 6, r-x = 5, r– = 4. É por isso que rwxr-xr-x é 755.

    Num diretório, as mesmas letras significam algo ligeiramente diferente, como detalha a lista Quem pode fazer o quê: r permite listar as entradas, w permite criar, mudar o nome e apagar entradas (em conjunto com x), e x permite entrar no diretório e chegar aos ficheiros lá dentro.

    Bits especiais

    • Setuid (4000) num executável faz com que corra com os direitos do dono do ficheiro. O passwd usa-o para escrever na base de dados de palavras-passe. Aparece como s na posição de execução do dono, ou S se faltar a execução.
    • Setgid (2000) num executável faz com que corra com os direitos do grupo. Num diretório, os ficheiros novos herdam o grupo do diretório, o que mantém coerentes as pastas de projetos partilhadas (2775).
    • Sticky (1000) num diretório faz com que só o dono de um ficheiro o possa apagar ou mudar de nome, mesmo que toda a gente possa escrever lá. O /tmp é 1777. Aparece como t (ou T) na posição de execução dos outros.

    Alterações simbólicas

    Uma expressão simbólica é «quem, operador, permissões»: u+x acrescenta a execução para o dono, go-w retira a escrita ao grupo e aos outros, a=r define só leitura para todos, g=u copia os direitos do dono para o grupo. Separa as cláusulas com vírgulas. O X maiúsculo acrescenta a execução apenas a diretórios ou a ficheiros que já tenham um bit de execução, o que torna chmod -R a+X seguro numa árvore com ficheiros de vários tipos. Quando o «quem» é omitido, esta ferramenta aplica a alteração a todas as classes, como faz o chmod do GNU com uma umask de 0.

    Conselhos de segurança

    Evita o 777. Permite que qualquer conta na máquina, incluindo um processo de servidor web comprometido, modifique ou substitua o ficheiro. As escolhas seguras típicas são 644 para ficheiros, 755 para diretórios e scripts, 600 para chaves privadas e 700 para diretórios privados. A calculadora avisa quando um modo permite a escrita a todos, quando usas 777 e quando há programas setuid.

    Perguntas frequentes

    Qual é a diferença entre chmod 755 e chmod 775?

    Com 755, só o dono pode escrever; o grupo e os outros podem ler e executar. O 775 dá também acesso de escrita ao grupo, o que convém a diretórios partilhados por uma equipa.

    Que permissões deve ter uma chave privada SSH?

    600 (rw-------). O OpenSSH recusa usar uma chave privada que o grupo ou os outros consigam ler.

    Porque é que o modo octal às vezes tem quatro algarismos?

    O primeiro algarismo guarda os bits especiais: 4 para setuid, 2 para setgid, 1 para sticky. 0755 e 755 são o mesmo modo.

    O chmod 644 funciona num diretório?

    Define os bits, mas sem x ninguém consegue entrar no diretório nem abrir os ficheiros que contém. Usa 755 ou 750 para diretórios.

    O que significa um S ou T maiúsculo no ls -l?

    O bit especial está definido, mas o bit de execução correspondente não. Normalmente é um erro: acrescenta a permissão de execução ou retira o bit especial.