Inspetor de permissões
Explique permissões octais- ✓Nenhum problema crítico detectado
Introdução
O Inspetor de permissões decodifica um modo octal (por exemplo, 0750) na forma simbólica e sinaliza os bits que mais importam em revisões de segurança: permissões graváveis por todos e o bit setuid.
Modos octais são três ou quatro dígitos em que cada dígito é uma soma de leitura (4), escrita (2) e execução (1) para uma classe de usuários: dono, grupo e outros. Um quarto dígito inicial codifica bits especiais: setuid (4), setgid (2) e sticky (1).
Objetivo
- Traduzir qualquer modo octal de três ou quatro dígitos para a notação simbólica rwx.
- Identificar os bits especiais (setuid, setgid, sticky) quando presentes.
- Sinalizar permissões graváveis por todos como alta severidade e setuid como aviso.
Entradas
- Um modo octal de três ou quatro dígitos, por exemplo 0750 ou 644.
- Os dígitos devem ser 0–7; letras ou símbolos são rejeitados.
Como funciona
O valor é completado para quatro dígitos (0750 permanece 0750, 644 vira 0644). Cada dígito é decomposto em bits de leitura/escrita/execução: por exemplo, 7 = rwx, 5 = r-x, 0 = ---.
O primeiro dígito mapeia os bits especiais: 4 adiciona suid, 2 adiciona sgid, 1 adiciona sticky.
Se a classe "outros" tiver permissão de escrita (qualquer 2, 3, 6 ou 7 no último dígito), a ferramenta reporta um achado alto: qualquer usuário local pode modificar o objeto. Se o setuid estiver definido, um aviso pede para verificar propriedade e integridade.
Exemplo testável
Experimente — a análise roda localmente no seu navegador.
Exemplo
Modo: 4755
Saída esperada
Simbólico: suid rwxr-xr-x Alto: SUID está definido. Verifique a propriedade e a integridade do arquivo. Nota: as classes dono e grupo não são graváveis por outros.
Interpretando a saída
- A linha simbólica diz exatamente quem pode ler, escrever e executar.
- Um arquivo ou diretório gravável por todos (último dígito 2, 3, 6 ou 7) significa que qualquer usuário local pode alterá-lo — geralmente um erro, exceto em diretórios deliberadamente compartilhados, como /tmp.
- Executáveis setuid rodam com os privilégios do dono do arquivo; um binário setuid comprometido é um caminho de escalonamento, então a propriedade deve ser root e o binário confiável.
Riscos
- Arquivos graváveis por todos permitem adulteração por qualquer conta local, inclusive uma comprometida.
- Um bit setuid inesperado em um binário que não pertence a root é um vetor clássico de escalonamento de privilégios.
- Um sticky bit em /tmp é normal; um sticky bit em outro lugar pode ser acidental.
Limitações
- A ferramenta interpreta um modo, não um arquivo real — ela não informa o dono ou grupo efetivos.
- Ela não considera ACLs (setfacl), que sobrepõem o modelo rwx tradicional.
- Os avisos sobre bits especiais dependem do contexto; a ferramenta não sabe se um binário setuid é intencional.
Referências oficiais
FAQ
O que fazem os bits especiais?
O setuid faz um programa rodar com a identidade do dono do arquivo (tipicamente root); o setgid faz o mesmo para o grupo e, em diretórios, faz novos arquivos herdarem o grupo do diretório; o sticky bit em um diretório restringe a exclusão ao dono do arquivo (como em /tmp).
Por que 644 costuma ser bom para arquivos, mas 666 não?
644 dá ao dono acesso de escrita e a todos os outros somente leitura. 666 torna o arquivo gravável por todos — qualquer usuário local poderia substituí-lo ou alterá-lo.
A ferramenta verifica o arquivo real?
Não. Cole um modo para entendê-lo; para auditar seus arquivos reais, use ls -l ou stat.