Por que uma pasta deve ser executável?

29

Permissão para arquivos:

chmod 664 myFile // rw-rw-r--

E para pastas:

chmod 774 myFolder // rwxrwxr--

Se eu usar apenas a permissão "ler e gravar", as pastas não mostrarão seu conteúdo.

Qual o motivo disso?

Caio
fonte

Respostas:

14

Como você não pode 'executar' um diretório, o bit de execução foi melhor utilizado. O bit de execução em um diretório permite acessar itens que estão dentro do diretório, mesmo que você não consiga listar o conteúdo dos diretórios.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

Na página de chmodmanual:

As letras rwxXst selecionam bits do modo de arquivo para os usuários afetados: leitura (r), gravação (w), execução (ou pesquisa de diretórios) (x) , execução / pesquisa somente se o arquivo for um diretório ou se já tiver permissão de execução para alguns usuários. usuário (X), defina o ID do usuário ou grupo nas execuções, sinalizador de exclusão restrito ou bit adesivo (t).

Zaz
fonte
42

Diretórios (normalmente não são chamados de pastas no * nix) têm um significado diferente para os bits de permissão que os arquivos normais.

Para diretórios, a gravação permite criar novos arquivos dentro dele.

Ler permite listar os arquivos dentro dele.

Executar permite que você o insira e acesse arquivos (ou outros diretórios) dentro.

Daenyth
fonte
2
Uma maneira fácil de lembrar é imaginar a execução como um clique duplo em algo. Ao clicar duas vezes no diretório (ou cd), você o insere (executa).
John T
Lembre-se de que o mero acesso de gravação em um diretório não permitirá que você crie novos arquivos. Você também precisa da permissão de execução no diretório para fazer isso.
Matthias Braun
"Acessar arquivos (ou outros diretórios)" significa que eu posso ver os arquivos, ou seja, listá-los, mas não consigo visualizá-los ou posso ver os arquivos, ou seja, listá-los e lê-los também?
vadasambar 16/07
2

As permissões de execução em um diretório permitem percorrê-lo, para usar os recursos contidos nele.

Ignacio Vazquez-Abrams
fonte
1

O bit "execute" na verdade significa "pesquisa" quando aplicado aos diretórios (de man chmod). Isso parece razoável, pois execute não tem significado para um diretório.


fonte
0

O xbit em uma pasta se refere à indexação / pesquisa / diretório de diretório; nada disso é possível se você mantiver esse valor baixo.

Aqui está um exemplo de seu uso: se você deseja ter um usuário com permissões de leitura limitadas em todos os diretórios, exceto em sua casa, digamos /home/dummy, é necessário criar /e /hometer o xbit definido, caso contrário, ele não poderá acessar o diretório inicial.

Platinum Azure
fonte