Português (Brasil)

Ferramentas de desenvolvedor · Calculadora Chmod

O que o bit de execução faz em um diretório e por que as pastas 644 quebram

· Como funciona

chmod unix fluxo de trabalho do desenvolvedor

passagem de diretório mostrada como um diagrama de bits de permissão Unix distinto
Ilustração vetorial original ToolAcre

Em um diretório, x não se trata de executar nada; concede o direito de atravessar. Esta postagem explica a divisão read/search, os casos ímpares que ela produz e os modos que os evitam.

Permissão negada em um arquivo que você pode ler — o arquivo é 644, o diretório é 644 e cat ainda falha

Um arquivo legível pode permanecer inacessível quando seu diretório não possui execução para a classe relevante. O artigo 501 chama a travessia de execução do diretório em vez de executar uma pasta. A explicação do diretório da calculadora é mais explícita: ler listas de entradas, escrever permissões de alterações de entrada e executar permissões para entrar no diretório e acessar os arquivos dentro dele por nome. O modo 644 não possui bit de execução para nenhuma classe.

Compare 644 com 755 enquanto o destino está definido como diretório. O primeiro renderiza rw-r--r--; o segundo renderiza rwxr-xr-x. Cada classe ganha execução, enquanto apenas o proprietário retém a gravação em ambos os modos. Esse contraste explica a diferença de permissão representada. A página não inspeciona o arquivo, identifica o processo de acesso ou testa se um diretório ancestral bloqueia o caminho real.

Leia listas, execute travessias - como o diretório r mostra nomes enquanto x permite abrir entradas por nome e statá-las

A leitura e a execução do diretório são sinalizadores separados com explicações separadas. Ler corresponde a listar entradas. Executar corresponde a entrar no diretório e acessar os arquivos nomeados dentro dele. Uma classe pode, portanto, ter uma sem a outra no modelo numérico. A matriz mantém essa distinção visível colocando leitura no peso 4 e execução no peso 1 dentro de cada dígito da classe.

Alterar um dígito de outra classe de 4 para 5 é uma demonstração focada. O triplo simbólico se move de r-- para rx, e a explicação do diretório adiciona acessibilidade baseada em nome, mantendo a listagem. Este é um fato de conversão, não um teste de acesso ao vivo. Propriedade, identidade, entradas ACL e política obrigatória estão ausentes, portanto a calculadora não pode dizer qual classe governa uma solicitação real.

As quatro combinações – r sem x, x sem r, ambos e nenhum, e o que cada uma permite ao usuário realmente fazer

As quatro combinações de leitura e execução são representáveis ​​sem atribuir um comportamento mais amplo do sistema. O dígito 4 é r--, o dígito 1 é --x, o dígito 5 é r-x e o dígito 0 é ---. Para um destino de diretório, a prosa gerada associa esses bits selecionados à listagem e à acessibilidade baseada em nome. A gravação permanece um sinalizador independente e não está implícita na leitura ou na execução.

Use a matriz para isolar uma classe por vez, em vez de tratar um modo de três dígitos como um rótulo. A página reconstrói o número inteiro sempre que uma caixa muda, de modo que o dígito correspondente e a posição simbólica se movem juntos. Não é possível abrir um diretório ou tentar uma pesquisa. As quatro combinações são permissões modeladas exatas, enquanto qualquer resultado efetivo depende do contexto de destino observado separadamente.

A travessia se aplica a todos os ancestrais - por que um diretório restritivo no topo do caminho interrompe o acesso a tudo que está abaixo

O artigo 501 identifica uma permissão de execução do diretório pai ausente como um motivo pelo qual um modo de arquivo válido pode não resolver o acesso. Cada componente de diretório em um caminho apresenta sua própria questão de modo. A calculadora pode decodificar cada valor fornecido de forma independente e mostrar se o proprietário, grupo ou outra execução está presente. Ele não pode percorrer o caminho ou determinar qual classe se aplica à identidade solicitante.

Isso torna a análise de ancestrais um fluxo de trabalho de inspeção externa, em vez de um recurso de calculadora. Se um pai for relatado como 750, a página mostrará rwxr-x---; se outro for 700, mostra rwx------. Essa diferença é concreta, mas não se chega a nenhuma conclusão até que a propriedade e a participação no processo sejam conhecidas. A visualização do comando permanece inerte e não oferece nenhuma evidência de que a alteração de qualquer diretório seja apropriada.

Exemplo resolvido: consertando uma raiz da web - verificando cada diretório de/para o arquivo servido e escolhendo 755 ou 750

Para um exemplo de web-root, inspecione os modos fornecidos componente por componente em vez de prescrever um valor para a árvore. O modo 755 concede ao proprietário rwx e grupo e outros rx; mode 750 remove todas as outras permissões enquanto mantém o grupo rx. O conversor torna essa diferença visível. Ele não pode identificar um processo web, descobrir o caminho ou escolher qual classe precisa ser atravessada.

Verifique o arquivo servido separadamente de seus diretórios. Um modo de arquivo fornecido, como 644, renderiza rw-r--r--, enquanto o mesmo número selecionado como um diretório descreve ações diferentes e não é executado em todos os lugares. Esse texto sensível ao alvo evita que a leitura do arquivo seja confundida com a passagem do diretório. A adequação ainda depende da propriedade real, da identidade do processo, dos ancestrais e de quaisquer camadas de controle de acesso ausentes na página.

Recursão bem feita - por que chmod -R 644 em uma árvore é o erro clássico e como X maiúsculo ou find -type d evita isso

A exibição recursiva é intencionalmente modesta. Selecioná-lo apenas insere -R no comando chmod gerado; a calculadora não enumera uma árvore nem distingue arquivos de diretórios. Aplicar um modo 644 concluído em todos os lugares deixaria a execução do diretório limpa em todas as classes. A página pode revelar esse resultado, mas não implementa X maiúsculo ou um fluxo de trabalho de seleção de tipo de arquivo.

As atribuições simbólicas geradas também permanecem fixas. Para 644 eles são u=rw,g=r,o=r, não um comando relativo que preserva condicionalmente a travessia. O campo estilo ls mostra rw-r--r-- e não deve ser confundido com essa lista de atribuições. Qualquer estratégia de recursão externa deve ser verificada fora desta rota, incluindo seleção de alvo, manipulação de links e modos finais colocados em diferentes tipos de objetos.

O que isso não cobre – comportamento pegajoso e setgid em diretórios e máscaras ACL, que são abordadas em suas próprias postagens

As máscaras Sticky, setgid e ACL são separadas da questão de travessia comum. A calculadora implementa representação fixa e setgid e explicações sensíveis ao alvo, mas a comparação principal deste artigo precisa apenas ser lida e executada. As máscaras ACL não são representadas. Uma conversão correta no modo base não pode estabelecer se entradas adicionais concedem ou limitam o acesso a uma identidade específica.

Umask também está fora da prova. A página aceita um modo concluído, não as configurações do processo que podem tê-lo precedido. Se um diretório aparecer com 644, o conversor poderá mostrar as posições de execução ausentes e gerar um comando candidato para outro valor fornecido. Não pode dizer porque é que o modo surgiu, se a propriedade é errada ou se a sua alteração resolve o verdadeiro fracasso.

Conclusão: os diretórios precisam de x para serem utilizáveis ​​- e a calculadora faz a diferença entre 644 e 755 visível como r-- versus r-x

A conclusão durável é que o diretório x representa a acessibilidade baseada em entrada e nome na explicação desta calculadora. O modo 644 exibe r-- para grupo e outro, enquanto 755 exibe rx para ambos e adiciona a execução do proprietário também. O campo octal sincronizado, o campo simbólico, a matriz e a prosa tornam essa distinção inspecionável sem tratar qualquer número familiar como universalmente correto.

Diagnosticar além da aritmética antes de aplicar qualquer coisa. Confirme a identidade relevante, a propriedade, o modo fornecido de cada ancestral e o tipo de destino. Em seguida, use a calculadora para verificar qualquer valor candidato concluído. Ele rejeitará a notação malformada e mostrará exatamente quais bits mudam, mas nunca abre o caminho, executa chmod, avalia a política do aplicativo ou prova que os bits do modo tradicional são a única autoridade.