Ferramentas de desenvolvedor · Calculadora Chmod
Por que chmod usa octal: a abreviação base-8 e de onde ela veio
· Fundo
chmod unix controle de acesso
Octal parece arbitrário até você perceber que um dígito contém exatamente três bits. Esta postagem explica o ajuste entre a base 8 e rwx, o hábito da era DEC que tornou o octal natural e a convenção do zero inicial.
Por que 755 e não 493 - o mesmo modo em decimal não significa nada para ninguém, e há uma razão pela qual o octal ganhou
O valor decimal 493 e octal 755 podem representar o mesmo número inteiro, mas 755 expõe o agrupamento de permissões diretamente. Cada dígito exibido corresponde a uma classe e cada classe contém exatamente três opções binárias. A calculadora funciona a partir desse ajuste aritmético; não é necessária uma história histórica para mostrar por que o octal é legível para os modos rwx.
Insira 755 e a saída se tornará rwxr-xr-x. O proprietário recebe 7, grupo 5 e outros 5. Converter o mesmo número inteiro em um rótulo decimal desagrupado ocultaria esses limites de classe. Isso explica a utilidade da notação dentro do modelo implementado sem afirmar por que cada comando ou plataforma externa a adotou.
Três bits por dígito - como a base 8 agrupa binários em triplos que se alinham exatamente com r, w e x
Um dígito de base oito abrange valores de zero a sete, exatamente os totais disponíveis de três bits independentes ponderados 4, 2 e 1. As combinações são mapeadas de forma limpa: 0 é ---, 1 é --x, 2 é -w-, 3 é -wx, 4 é r--, 5 é rx, 6 é rw- e 7 é rwx.
Portanto, três dígitos comuns se alinham com proprietário, grupo e outros. Para 640, os triplos binários são 110, 100 e 000, produzindo rw-r-----. A matriz da caixa de seleção torna o mesmo agrupamento visível sem exigir notação binária. Alterar uma permissão altera apenas o total da classe correspondente e sua posição simbólica associada.
O hábito do hardware - as máquinas DEC nas quais o Unix inicial rodava eram documentadas em octal, então os programadores já pensaram nisso
As fontes do repositório não estabelecem uma linhagem de hardware para notação octal. Eles contêm máscaras de bits JavaScript, regras de analisador, testes e controles de interface de usuário, e não documentação para processadores ou ambientes de desenvolvimento anteriores. Qualquer alegação de que uma determinada cultura de máquina causou a adoção precisaria de evidências históricas além dos arquivos permitidos para este artigo.
A explicação baseada na fonte é aritmética. Três bits têm oito combinações possíveis, portanto, um dígito de base oito captura um triplo rwx sem cruzar o limite da classe. Essa relação pode ser demonstrada em todos os resultados da calculadora. Permanece válido quer um relato histórico mais amplo seja ou não fornecido a partir de fontes primárias.
O histórico do hardware não é estabelecido pelas fontes do repositório
O analisador aceita de um a quatro dígitos octais e remove um prefixo 0o opcional. Conseqüentemente, 644, 0644 e 0o644 são todos resolvidos com o mesmo valor. Os dígitos 8 e 9 são rejeitados com uma explicação específica porque nenhum deles pertence à base oito e o texto malformado não é adivinhado em um modo válido.
Um dígito significativo inicial carrega bits especiais em vez de outra classe comum. Seus pesos 4, 2 e 1 representam setuid, setgid e sticky, enquanto os dígitos finais retêm proprietário, grupo e outros. O formatador mostra três dígitos quando nenhum bit especial é definido e quatro quando um é necessário, a menos que a saída de quatro dígitos seja explicitamente solicitada.
Formulários iniciais aceitos e o dígito do bit especial neste analisador
A conversão de 0644 por triplos resulta em 6, 4 e 4. Em binário, são 110, 100 e 100, então o resultado simbólico é rw-r--r--. O proprietário leu e escreveu, enquanto o grupo e outros apenas leram. Cada visualização é derivada do mesmo número inteiro, permitindo uma verificação direta de consistência.
Reverter o processo chega ao mesmo resultado. Comece com rw-r--r--, adicione 4 e 2 para o proprietário, pegue 4 para o grupo e pegue 4 para outro. Os dígitos são 644. O zero inicial opcional aceito pelo analisador não adiciona um bit especial; deixa o valor numérico inalterado.
Por que o hexadecimal nunca assumiu o controle - dois dígitos hexadecimais não se dividem em três classes de forma clara
Hexadecimal pode codificar o número inteiro, mas seus limites de dígitos de quatro bits não se alinham com as classes de permissão de três bits. Esta é uma comparação aritmética, não uma evidência sobre qual notação as pessoas historicamente preferiram. A calculadora não aceita entrada hexadecimal e suas saídas são projetadas em torno de dígitos octais, posições simbólicas e controles booleanos nomeados.
Por exemplo, as permissões comuns ocupam nove bits, naturalmente visíveis como três grupos octais. Agrupar os mesmos bits em pedaços de quatro bits dividiria uma classe rwx entre limites de dígitos. Isso torna o hexadecimal menos transparente para esse propósito de exibição, mas nenhuma afirmação sobre adoção, padrões ou histórico de linha de comando decorre apenas dessa observação.
A comparação hexadecimal é aritmética, não evidência de adoção histórica
Constantes nomeadas de outras linguagens ou interfaces de sistema estão fora desta implementação JavaScript. O repositório usa suas próprias propriedades descritivas, comoownerRead, groupWrite, otherExecute, setuid, setgid e sticky. Esses nomes tornam a aritmética do bit interno legível sem afirmar uma equivalência a um cabeçalho externo específico ou API.
Fique por dentro do que a ferramenta pode verificar: o valor numérico de um modo fornecido, seus booleanos de classe, renderização simbólica, explicação e texto de comando gerado. A página do navegador não inspeciona a plataforma de destino nem compila constantes nativas. Qualquer pessoa que traduza o resultado para outra interface de programação deve consultar a documentação oficial dessa interface separadamente.
Constantes C nomeadas estão fora desta implementação JavaScript
Octal se encaixa nesta calculadora porque cada classe de permissão é uma quantidade de três bits e cada dígito da base oito carrega exatamente três bits. A correspondência é visível, reversível e fácil de testar. Bits especiais usam um quarto dígito com o mesmo padrão 4, 2 e 1, enquanto s, S, t e T simbólicos preservam seus detalhes de posição de execução.
Use a notação como um auxílio à revisão em vez de um encantamento. Divida o valor em proprietário, grupo, outro e qualquer prefixo especial; verifique as letras e caixas; em seguida, decida a adequação com base em evidências reais de propriedade e carga de trabalho. A aritmética explica o agrupamento completamente, sem afirmações infundadas sobre histórico de hardware, padrões ou política universal.