Português (Brasil)

Ferramentas de desenvolvedor · Calculadora Chmod

O que o chmod não pode expressar: capacidades, arquivos imutáveis ​​e MAC

· Fundo

chmod unix controle de acesso

limites além dos bits de modo mostrados como um diagrama de bits de permissão Unix distinto
Ilustração vetorial original ToolAcre

Os bits de modo são uma das várias camadas que decidem se uma operação será bem-sucedida. Esta postagem apresenta os outros (capacidades de arquivo, sinalizadores de chattr, SELinux e AppArmor) e como reconhecer a negação de cada um.

Root não pode gravar um arquivo 644 — o modo diz sim, chmod não muda nada e o erro persiste

Um modo pode permitir uma operação enquanto a operação ainda falha. A calculadora decodifica 644 como rw-r--r--, o que significa que o proprietário pode ler e modificar um arquivo normal enquanto o grupo e outros podem lê-lo. Isso resolve apenas os bits tradicionais fornecidos. Não prova a propriedade do processo, a identidade do caminho, nem a ausência de outra camada de aplicação.

As fontes nomeiam vários controles não modelados: capacidades, atributos imutáveis, política de acesso obrigatória, sinalizadores de montagem, namespaces, filtros de syscall, ACLs e propriedade. Entrar novamente em um modo ou gerar outro comando chmod não revela nada sobre eles. Primeiro verifique a concordância octal, simbólica e matricial; se a falha persistir, reúna evidências do ambiente em vez de ampliar as suposições do chmod.

Uma operação compatível com o modo ainda pode falhar em camadas que esta ferramenta não consegue ver

A calculadora não modela nenhuma ordem entre controles externos. Todo o seu modelo de dados é um número inteiro do octal 0000 até 7777, expandido em proprietário, grupo, outro, setuid, setgid e booleanos fixos. As explicações usam esse valor e tipo de destino. Nenhum caminho de decisão do kernel, sequência de módulo de segurança ou resultado de syscall entra no cálculo.

Essa limitação torna a página um primeiro passo controlado. Confirme o modo, diferencie passagem de execução e anote as letras de bits especiais. O artigo 501 adiciona propriedade e execução do diretório pai como verificações próximas. Além disso, essas fontes não fornecem classificação de diagnóstico entre ACLs, políticas obrigatórias, montagens, atributos, namespaces, recursos ou filtros. Um modo compatível apenas restringe a questão.

A calculadora não modela a ordem entre camadas de aplicação externas

As capacidades de arquivo estão fora das evidências disponíveis. A implementação não contém nomes de recursos, analisador de dados, comando de inspeção ou relato de sua interação com setuid. Ele pode codificar setuid como 4000 e explicar um arquivo executável regular. Isso não deve se tornar uma comparação com sistemas de privilégios mais refinados que este repositório não modela nem documenta.

O que a página prova é concreto. O modo 4755 torna-se rwsr-xr-x, seus nomes de resumo são setuid e as atribuições acrescentam u+s. O modo 4644 usa S maiúsculo porque a execução do proprietário está ausente, expondo uma combinação chamada quase sempre errada. Os testes estabelecem esses fatos modais; ferramentas externas devem determinar se existem capacidades, permitir acesso ou oferecer um design melhor.

Os recursos de arquivo estão fora do conjunto de origem

Atributos imutáveis ​​e somente anexados também estão ausentes do modelo. A calculadora não lê atributos do sistema de arquivos nem reconhece comandos para alterá-los. Sua matriz contém rwx para proprietário, grupo e outros, além de três bits especiais. Um bit de gravação visível, portanto, não pode garantir uma gravação bem-sucedida, e alterná-lo repetidamente não pode diagnosticar um atributo que a página nunca observou.

Mantenha a distinção operacional. Se 644 for renderizado corretamente, a gravação do proprietário existe no modo tradicional; isso é evidência de representação, não uma escrita completa. A página não abre o caminho de exibição citado com segurança nem executa o comando gerado. Quando bits suficientes acompanham uma falha real, inspecione o objeto e o sistema reais em vez de atribuir um estado não observado.

Atributos imutáveis ​​e somente anexados estão fora do conjunto de origem

Contextos, perfis e logs de controle de acesso obrigatórios não são analisados ​​aqui. As fontes mencionam o SELinux e o AppArmor apenas como exemplos de decisões que a calculadora não pode observar. Eles não fornecem sintaxe de contexto, semântica de política, formato de log ou comando de diagnóstico. Portanto, o modo por si só não pode atribuir uma negação a nenhum dos sistemas; as evidências devem vir do ambiente de aplicação.

O seletor de arquivo ou diretório reforça esse limite. Ele altera verbos como executar, listar, criar, excluir, inserir e alcançar, mas não altera o número inteiro nem lê um rótulo de política. Um programa e diretório 755 compartilham rwxr-xr-x enquanto descrevem diferentes ações comuns. Nenhuma das explicações prevê resultados de políticas obrigatórias, portanto, mantenha o modo verificado e consulte os registros da plataforma.

Contextos e logs de controle de acesso obrigatórios estão fora do conjunto de origem

Um modo fornecido não pode revelar opções de montagem. A calculadora aceita texto octal ou simbólico e um caminho opcional usado apenas para exibição de comandos. Ele nunca abre esse caminho, identifica sua montagem ou lê a configuração. As fontes listam comportamentos somente leitura, não execução e não setuid como preocupações externas, mas não fornecem detalhes da plataforma para diagnosticar essas políticas.

O texto gerado pode incluir um modo octal, caminho entre aspas e sinalizador -R exibido, mas nada prova que um sistema de arquivos honrará a solicitação. Mesmo um valor de bit especial que faça uma viagem de ida e volta perfeitamente pode ser ineficaz sob regras invisíveis. Trate o comando como um artefato de revisão e, em seguida, verifique o sistema de arquivos de destino antes de reivindicar a alteração das permissões ou a execução se tornar possível.

As opções de montagem não são descobertas em um modo fornecido

Namespaces e filtros syscall não aparecem em nenhum lugar do modelo de modo. As entradas não contêm identidade de processo, contexto de contêiner, lista de syscall ou configuração de tempo de execução. A página não pode saber se um processo vê o mesmo caminho, atinge o objeto esperado ou tem uma chamada filtrada. Essas perguntas diferem fundamentalmente da adição de 4, 2 e 1 em triplos de permissão.

Não infira mecanismos de tempo de execução de uma conversão bem-sucedida. A validação cobre dígitos octais malformados, comprimento simbólico e letras mal colocadas. Um resultado válido significa apenas que o texto é mapeado para um modo representável; não valida um ambiente de execução. Como o texto do shell gerado é inerte, a análise de namespace e filtro ainda requer evidências de tempo de execução ausentes dessas fontes.

Namespaces e filtros syscall não são representados

Comece com o modo porque é compacto e fácil de ativar ou excluir. Traduza o valor, inspecione cada classe, distinga o arquivo do diretório e exponha qualquer prefixo de bit especial. A concordância entre octal, simbólico, matriz, resumo e explicação torna a questão tradicional bem formada. Pode revelar uma parte faltante ou excessiva, e não autoridade exclusiva.

Continue apenas com evidências do sistema real. Propriedade, ACLs, atributos, política obrigatória, montagens, recursos, namespaces, filtros e regras de aplicativo não são descobertos aqui. A visualização não lê nem altera um arquivo. A conclusão disciplinada é limitada: resolva localmente a aritmética do modo fornecido e, em seguida, investigue a aplicação externa em vez de percorrer valores chmod mais amplos sem conhecer a negação.