Também disponível em: English · Español · Français · العربية
Calculadora chmod
De permissões para octal e de volta, com a saída do ls, o comando pronto a copiar e um aviso quando liga um bit especial que não tem sobre o que agir.
O que é uma calculadora chmod?
Num sistema Unix cada ficheiro carrega nove bits de permissão: leitura, escrita e execução, para o proprietário, para o grupo e para todos os outros. O comando chmod define-os, e recebe-os como um número octal — os célebres 755 ou 644. Uma calculadora chmod converte as caixas em que está a pensar no número que o chmod quer, e também ao contrário.
Acima desses nove há mais três bits. O setuid e o setgid fazem um programa correr como o proprietário ou o grupo do ficheiro em vez de como quem o lançou; o bit sticky, num diretório, impede que uns apaguem os ficheiros dos outros, que é precisamente a razão por que um /tmp partilhado é seguro. Esses três formam o dígito da frente, portanto 1777 é o /tmp e 4755 é um binário setuid.
Esta calculadora funciona nos dois sentidos. Marque as caixas e leia o número, ou cole um modo — 755, 4755, rwxr-xr-x, ou o campo de permissões inteiro copiado do ls -l com o seu d inicial — e as caixas ajustam-se sozinhas.
Como usar
- Marque as permissões que quer. Nove caixas para as permissões normais e três para os bits especiais. O número octal e a representação do ls vão sendo atualizados.
- Copie o comando, não só o número. A linha de comandos sai já escrita e pronta a colar, portanto não há nada para voltar a montar.
- Ou cole um modo que já tenha. Octal ou simbólico, ambos servem. É este o sentido que quer quando está a ler uma listagem do ls ou um Dockerfile e a tentar perceber o que aquilo permite de facto.
A letra maiúscula que quer dizer que o bit não faz nada
Cada bit especial modifica um bit de execução. O setuid modifica o do proprietário, o setgid o do grupo e o sticky o dos outros. Se ligar um bit especial com o respetivo bit de execução desligado, o bit fica posto e não tem sobre o que agir — e o ls diz-lho escrevendo uma letra maiúscula em vez de uma minúscula. O 4755 aparece como rwsr-xr-x; o 4644 aparece como rwSr--r--, com S maiúsculo.
Não é um canto raro. Dos 3584 modos possíveis que levam pelo menos um bit especial, 2368 — 66,1 por cento — mostram pelo menos uma maiúscula. Por bit é exatamente metade, porque um bit especial e o bit de execução que ele modifica são postos de forma independente um do outro. Esse número não é uma estimativa: o espaço todo são apenas 4096 modos, portanto foram todos convertidos e verificados em vez de se tirar uma amostra.
Quase todas as calculadoras chmod escrevem um s ou um t minúsculo aconteça o que acontecer, o que transforma em silêncio um erro em algo com ar de correto. Esta mostra a maiúscula e diz qual o bit inerte e porquê.
Um aviso no sentido contrário, já que é a coisa que se conta mal: o significado do bit sticky depende daquilo a que está posto. Num diretório restringe o apagamento, que é o que se quer. Num ficheiro normal, todos os sistemas hoje em uso o ignoram.
Limites honestos, e a questão da umask
Uma umask não é uma permissão, é uma máscara de permissões a retirar, e só consegue subtrair. É por isso que a mesma umask 022 deixa um ficheiro novo em 644 e um diretório novo em 755 — a diferença não está na umask, está em que os programas pedem 666 ao criar um ficheiro e 777 ao criar um diretório, e a umask tira os mesmos bits a cada um. O painel aqui mostra os dois resultados para que a assimetria se veja em vez de surpreender.
O que esta página não lhe consegue dizer é se um modo é seguro no seu sistema, porque isso depende de coisas que o número não contém: quem é o dono do ficheiro, que grupos existem, se um diretório acima sequer deixa lá chegar, e se o SELinux ou o AppArmor têm alguma opinião. Um 777 num ficheiro dentro de um diretório que ninguém pode atravessar é inalcançável; um 644 num ficheiro dentro de um diretório onde toda a gente escreve pode na mesma ser substituído.
Também não modela ACLs. Se um ficheiro tiver listas de controlo de acesso alargadas, o ls escreve um sinal de mais no fim do campo de permissões e os nove bits deixam de ser a história toda. Esta calculadora lê os nove bits e os três especiais, e mais nada — que é o âmbito honesto de uma calculadora de modos.
Por fim, isto é semântica Unix. As permissões do Windows são um modelo completamente diferente, e um número produzido aqui não significa nada lá.
Porque é grátis
Porque não custa nada manter. A aritmética acontece no seu navegador; não se envia nada, não há servidor pelo meio e não há conta nenhuma.
A representação é verificada contra as próprias regras do sistema operativo e não contra outra calculadora: os 4096 modos possíveis são comparados com a saída de uma implementação conforme ao POSIX, e o teste que o faz está guardado ao lado do código.