Calculadora chmod
Calcula permissões de ficheiros Unix em números como 755 ou letras como rwxr-xr-x, e vê o que permitem.
A carregar Calculadora chmod… Se nada acontecer, ativa o JavaScript.
Cada ficheiro e pasta em Linux, macOS e outros sistemas do tipo Unix tem três conjuntos de permissões: um para o dono, um para o grupo e um para toda a gente. Cada conjunto pode permitir ler, escrever e executar, e o chmod é o comando que os altera. Esta calculadora mostra as mesmas permissões em todas as formas que encontras na prática. Marca as caixas na grelha, escreve um número como 644 ou 2775, ou cola as letras do ls -l como drwxr-sr-x, e as outras duas formas atualizam-se de imediato. Por baixo tens comandos chmod prontos a copiar, em forma numérica e simbólica (chmod 755 file e chmod u=rwx,g=rx,o=rx file), com nome de ficheiro opcional e a opção recursiva -R.
Perguntas frequentes
O que significa chmod 755?
Qual é a diferença entre 644 e 755?
O que querem dizer s, S, t e T nas permissões?
Para que servem o setuid, o setgid e o sticky bit?
Porque devo evitar chmod 777?
Como dou permissões diferentes a ficheiros e pastas de forma recursiva?
O que é o umask?
O chmod 755 numa pasta apaga o bit setgid?
Sobre Calculadora chmod
Os números são octais: cada algarismo é a soma de leitura (4), escrita (2) e execução (1) para uma classe, por isso 7 quer dizer as três, 6 leitura e escrita, 5 leitura e execução e 4 só leitura. Um quarto algarismo à frente guarda os bits especiais: 4 para setuid, 2 para setgid e 1 para o sticky bit. Na forma em letras aparecem nas posições de execução como s ou t, e como S ou T maiúsculos quando o bit especial está ativo sem a permissão de execução por baixo. A calculadora entende todos estes casos, e o painel de explicação diz em linguagem simples o que o dono, o grupo e os restantes podem de facto fazer. Alterna entre File e Directory, porque os mesmos bits significam coisas diferentes: numa pasta, a leitura deixa listar os nomes, a escrita deixa criar e apagar ficheiros e a execução deixa entrar nela e chegar aos ficheiros lá dentro.
As predefinições comuns cobrem os casos do dia a dia: 644 para ficheiros normais, 755 para scripts e pastas, 600 e 700 para chaves e pastas privadas, 664 e 775 para trabalho em grupo, 400 para segredos só de leitura e 1777 para pastas temporárias partilhadas. A ferramenta avisa quando um modo é arriscado, por exemplo 777, pastas com escrita para todos sem sticky bit ou um programa setuid que outros podem alterar. Há também uma calculadora de umask: escreve um umask como 022 ou 077 e vê as permissões com que os novos ficheiros (a partir de 666) e as novas pastas (a partir de 777) vão ficar. Tudo é calculado no teu navegador.
O sticky bit já serviu para manter programas em memória
O sticky bit ganhou o nome nos primeiros Unix, muito antes de ter alguma coisa a ver com pastas partilhadas. Num ficheiro de programa, dizia ao sistema para manter o código do programa na área de swap depois de terminar, para que comandos muito usados, como o editor ou a shell, arrancassem mais depressa da vez seguinte. Dizia-se que o programa ficava colado.
Com a melhoria da memória virtual e das caches de páginas, o truque deixou de ser útil e a maioria dos sistemas passou a ignorar o bit nos ficheiros. Nos anos 1980 recebeu uma nova função nas pastas: só o dono de um ficheiro o pode apagar ou mudar de nome, mesmo que a pasta tenha escrita para todos. É esse o significado que tem hoje, e a razão pela qual qualquer sistema Linux ou macOS mostra um t no fim de drwxrwxrwt para o /tmp.