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?

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).


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.


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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.