Por que uma pasta deve ser executável?

26

Permissão para arquivos:

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

E para pastas:

chmod 774 myFolder // rwxrwxr--

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

Qual é o motivo disso?

    
por Caio 28.07.2010 / 02:11

5 respostas

34

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

Para diretórios, o write permite criar novos arquivos dentro dele.

Read permite listar os arquivos dentro dele.

Executar permite entrar e acessar arquivos (ou outros diretórios) dentro dele.

    
por 28.07.2010 / 02:15
10

Como você não pode "executar" um diretório, o bit de execução foi melhor aproveitado. O bit de execução em um diretório permite que você acesse itens que estão dentro do diretório, mesmo que você não possa 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% man_de% manpage:

The letters rwxXst select file mode bits for the affected users: read (r), write (w), execute (or search for directories) (x), execute/search only if the file is a directory or already has execute permission for some user (X), set user or group ID on execution (s), restricted deletion flag or sticky bit (t).

    
por 29.07.2010 / 15:46
1

O bit "execute" significa "search" quando aplicado a diretórios (de man chmod ). Isso parece razoável, já que executar não tem significado para um diretório.

    
por 28.07.2010 / 02:15
1

As permissões de execução em um diretório permitem que você o percorra para usar os recursos contidos nele.

    
por 28.07.2010 / 02:15
0

O x bit em uma pasta se refere à indexação / pesquisa de diretório / listagem; nenhum desses é possível se você mantiver esse bit baixo.

Veja um exemplo de uso: se você deseja ter um usuário com permissões de leitura limitadas em todos os diretórios, mas em sua casa, digamos /home/dummy , é necessário fazer com que / e /home tenham x bit set, caso contrário ele não pode nem chegar ao seu diretório home.

    
por 28.07.2010 / 02:14

Tags