Permissões e travessia do caminho
A operação é executada com uma identidade e grupos concretos. Um ficheiro legível não chega se faltar permissão de travessia num diretório do caminho. Em diretórios, execute permite atravessar; read permite listar nomes; write participa na alteração de entradas, em conjunto com outras condições. Analisa dono, grupo, permissões e ACLs no caminho completo, não apenas no último ficheiro.
Camadas adicionais de controlo
SELinux aplica políticas adicionais ao controlo tradicional de utilizador e grupo. Uma negação pode dever-se a contexto, política ou booleanos, mesmo que o modo do ficheiro pareça permissivo. Consulta contexto e eventos de auditoria e compara com o estado esperado. Em distribuições que não usam SELinux, o mecanismo pode ser diferente; não assumes que todos os servidores têm a mesma política.
Corrigir a causa com o menor alcance
Não transformes chmod 777 ou desativar SELinux numa resposta padrão. Identifica o acesso necessário e corrige dono, grupo, ACL ou configuração de contexto conforme a política. Uma alteração temporária de etiqueta pode perder-se num relabel. Em sistemas SELinux, uma regra persistente de fcontext e a aplicação do contexto esperado resolvem um problema diferente de simplesmente alargar o modo do ficheiro. Qualquer alteração exige análise do caminho e revisão do efeito.
Aplicação no trabalho
Ao migrar uma aplicação para uma conta dedicada, inventaria os caminhos necessários para configuração, logs e dados. Valida leitura, escrita e travessia com a identidade e o contexto do serviço, incluindo grupos e ACL. Uma sessão administrativa pode mascarar falta de autorização. Em sistemas com SELinux, investiga denials antes de criar exceções e confirma se os rótulos esperados sobrevivem a relabeling.
Máscara e direitos efetivos numa ACL
Uma entrada de utilizador nomeado com rwx não garante esses direitos se a máscara da ACL os limitar. Para uma conta não proprietária, user:batch:rwx e mask::r-x resultam em r-x efetivo nessa entrada. Examina identidade, máscara e permissões no caminho completo antes de alterar a ACL. A máscara limita utilizadores nomeados e a classe de grupo; não deve ser interpretada como um segundo utilizador. Mantém a correção no acesso realmente necessário.
id appuser
namei -l /srv/funds/config/app.conf
getfacl /srv/funds/config/app.conf
ls -lZ /srv/funds/config/app.conf
getenforceappuser consegue ler o modo do ficheiro via um administrador, mas não atravessa /srv/funds/config. A investigação deve reproduzir a identidade correta e analisar os diretórios. Tornar o ficheiro world-writable não resolve a falta de travessia e cria exposição desnecessária.
Armadilhas comuns
Validar apenas como root, ignorar diretorias intermédias ou corrigir SELinux com permissões abertas.
Tópicos relacionados: Distinguir espaço, inodes e montagem · Interpretar CPU, memória e espera por I/O
Analisa identidade, caminho e políticas; uma permissão mais aberta não é uma explicação da falha.
Referência: path_resolution(7): path traversal · DR Linux 2026.4; networking and Bash manuals reviewed 2026-10-01; cgroup v2 and upstream systemd manuals reviewed 2026-10-01; RHEL 10 examples; Linux man-pages 6.19; OpenSSL 3.5