Diferença entre diretório executável e arquivos executáveis

20

Ter uma permissão executável em um diretório significa que os arquivos dentro dele também são executáveis, mesmo que os arquivos não tenham explicitamente definidas permissões executáveis?

Shady Programmer
fonte
Não. Permissão de execução em diretórios significa permissão de pesquisa (para ler os atributos do arquivo e fazer o cd no diretório). Para executar um arquivo, você deve ter permissão de execução nesse arquivo.
ridgy
1
Veja a tag de permissões wiki
Zanna
Também relevante: unix.stackexchange.com/a/251302/135943
curinga

Respostas:

27

Não, a permissão executável para diretórios significa que você pode inserir o diretório, tornando-o seu diretório de trabalho atual usando cde ver quais arquivos ele contém.

É útil pensar em um diretório apenas como um arquivo que é uma lista de nomes de arquivos.

Ler bit - Se definido, você pode ler esta lista. Se você possui um diretório chamado books:

  • Você pode lsreservar e obterá uma lista dos arquivos que ele contém ( -lno entanto, não funcionará).

  • Você pode usar a conclusão da linha de comando, ou seja, touch books/bo+ Tabpara obter books/bookfile.

  • Você não pode tornar os livros seu diretório de trabalho, cdnão funcionará.

Escrever bit - Você pode modificar os nomes desta lista. Você só pode fazer isso se o bit de execução também estiver definido.

Executar bit - você precisa desta permissão se desejar:

  • Tenha acesso aos arquivos dentro do diretório.
  • Modifique os detalhes da própria lista. Você pode adicionar, renomear ou excluir nomes na lista, mas isso também requer permissão de gravação no diretório.

Definir o bit de execução em um diretório não afeta de maneira alguma os arquivos, mas afeta seu acesso a eles. Por exemplo, se você tiver acesso de gravação e execução para um diretório, poderá mover, renomear e excluir arquivos, mesmo que não possa gravar nos próprios arquivos.

Arronical
fonte
Isso explica muito, na verdade! Agora entendo por que alguns diretórios aparecem com uma sobreposição colorida de segundo plano em seu nome no emulador de terminal.
Shady Programmer
Adicionei algumas informações sobre todas as permissões, pensar em um diretório como uma pasta cheia de arquivos não é tão útil quanto pensar nele como um arquivo em si, que é apenas uma lista de arquivos quando se trata de permissões.
Arronical