Ferramentas de desenvolvedor · Calculadora Chmod
O modelo de permissão Unix: do chmod dos anos 1970 aos bits do modo POSIX
· Fundo
chmod unix controle de acesso
O modelo proprietário/group/others sobreviveu por décadas com pouquíssimas mudanças. Esta postagem mostra de onde veio, o que POSIX padronizou e por que ainda se adapta à maioria dos trabalhos.
Um design da década de 1970 em sua implantação da década de 2020 – cada contêiner e executor de CI ainda fala rwx e ajuda saber por quê
As implantações atuais ainda apresentam modos como 0644 e strings simbólicas como rw-r--r--, mas este repositório não é um arquivo histórico. Sua evidência é a representação implementada: doze bits, conversão determinística e validação de entrada octal e simbólica. Datas, inventores, patentes e reivindicações sobre todos os sistemas derivados do Unix requerem fontes não fornecidas aqui.
A calculadora oferece, portanto, uma visão no tempo presente de um modelo de permissão compacto. Um número inteiro orienta proprietário, grupo e outros controles, além de setuid, setgid e sticky. A saída pode ser verificada em formato octal, simbólico e matricial. O acordo prova uma conversão consistente, não a origem, universalidade ou aplicação do modelo.
Uma notação de longa duração aparece nas implantações atuais, mas este repositório não é uma fonte de histórico
Nove bits comuns formam três classes iguais. Proprietário, grupo e outros recebem posições de leitura, gravação e execução com pesos 4, 2 e 1. A calculadora mantém essa ordem em todos os lugares: nos três dígitos octais finais, na linha simbólica de nove caracteres, na matriz da caixa de seleção e na descrição em inglês simples gerada para um arquivo ou diretório.
Um modo de 640 demonstra a estrutura sem reivindicação de linhagem. Proprietário 6 significa leitura e gravação, grupo 4 significa leitura e outro 0 significa sem permissões comuns, produzindo rw-r-----. Conforme explica o artigo 501, esses são sinalizadores calculáveis; identificar o proprietário, grupo ou processo real permanece fora da conversão.
O modelo implementado possui nove bits comuns em três classes
Setuid é implementado como a máscara 4000. Em um arquivo normal, o renderizador coloca s na posição de execução do proprietário quando setuid e execução do proprietário estão presentes. Se setuid estiver presente sem a execução do proprietário, ele colocará S lá, preservando a importante diferença entre um bit especial e o bit de execução comum abaixo dele.
A descrição do arquivo explica as letras minúsculas como execução com a identidade do proprietário do arquivo e sinaliza a combinação de letras maiúsculas como não tendo nada para ser executado. Essas declarações descrevem o resultado desta implementação. O repositório não fornece nenhum registro de patente ou histórico primário, portanto esta seção não atribui o mecanismo nem data sua introdução.
o comportamento setuid é implementado; o histórico de patentes não é originado
As explicações do diretório usam o mesmo valor numérico, mas verbos diferentes para bits comuns. Leia entradas de listas, escreva capas criando, renomeando e excluindo entradas e execute capas entrando no diretório e alcançando conteúdos nomeados. A implementação também descreve setgid em um diretório como fazendo com que arquivos recém-criados herdem o grupo desse diretório.
Sticky é representado por 1000 e ocupa a outra posição de execução como t ou T. Para um diretório, a ferramenta descreve a exclusão restrita para entradas compartilhadas. Estas são as semânticas implementadas apresentadas pela calculadora; nenhum histórico de ramificação ou linhagem entre sistemas é estabelecido e nenhum sistema de arquivos ativo é consultado para confirmar o comportamento local.
O comportamento do bit especial do diretório é descrito sem uma reivindicação de linhagem
A fonte nomeia cada máscara diretamente: 0400, 0200 e 0100 para proprietário; 0040, 0020 e 0010 para grupo; 0004, 0002 e 0001 para outros. Setuid, setgid e sticky adicionam 4000, 2000 e 1000. A conversão é um teste de bits e uma combinação bit a bit, em vez de um apelo a um padrão externo.
As regras de entrada são igualmente concretas. Octal aceita de um a quatro dígitos de 0 a 7, com formulários iniciais opcionais 0 ou estilo 0o. A entrada simbólica aceita nove posições ou dez com um caractere de tipo de arquivo reconhecido. O repositório não estabelece que toda implementação ou padrão aceite exatamente a mesma gramática de superfície.
As máscaras de bits nomeadas e a semântica de conversão são verificadas; reivindicações de padrões universais não são
O modelo compacto tem limites deliberados. Ele fornece uma classe proprietária, uma classe de grupo e uma outra classe, mas nenhuma entrada de usuário nomeado, entrada de grupo nomeado, máscara ACL ou ACL padrão. Ele também não possui conjunto de recursos. Esses mecanismos não podem ser inferidos a partir de uma string rwx aparentemente comum ou de uma conversão octal bem-sucedida.
A geração de comandos não expande o modelo. Ele emite um argumento octal ou cláusulas explícitas u=, g= e o=, adicionando u+s, g+s ou +t quando necessário. O resultado permanece como texto exibido. Uma revisão responsável reúne qualquer ACL, capacidade, propriedade e evidência de aplicação separadamente antes de tratar o modo como uma conta completa de controle de acesso.
ACLs e recursos ficam fora do modelo de modo implementado
Este conjunto de origem não contém comparação compatível com Windows, VMS, Plano 9 ou outros históricos de permissão de sistema operacional. Omitir essas narrativas é mais preciso do que apresentar contrastes lembrados como fatos. A calculadora apenas demonstra a representação de modo que implementa e seus testes podem estabelecer o comportamento de conversão em vez da evolução de sistemas não relacionados.
O mesmo cuidado se aplica à linguagem de ampla compatibilidade. Um caractere de tipo de arquivo inicial reconhecido pode ser analisado antes das nove posições de permissão, mas isso não prova a formatação ls universal. Use a saída como uma leitura precisa da notação aceita desta ferramenta e, em seguida, consulte a documentação oficial da plataforma para saber o comportamento além desses limites baseados na fonte.
Outros históricos de permissão do sistema operacional são omitidos sem fontes
O que sobrevive ao escrutínio aqui é a compactação do modelo implementado. Doze bits nomeados cobrem três classes de permissão comuns e três sinalizadores especiais, enquanto as visualizações octal e simbólica expõem o mesmo número inteiro em formas diferentes. Dígitos inválidos ou letras simbólicas mal colocadas são rejeitados em vez de reparados silenciosamente, tornando os erros visíveis durante a conversão.
Isso é suficiente para uma lição prática sem aula de história. Decodifique o modo, inspecione cada classe e observe se s, S, t ou T substitui uma posição de execução. Então pare onde a evidência para: a calculadora explica a representação e o texto gerado, enquanto a propriedade, a política, o comportamento do sistema de arquivos e a origem histórica exigem outras fontes.