No Linux, a permissão "gravar" é equivalente a "executar" para diretórios?

16

A permissão de execução faz sentido para arquivos (que incluem scripts etc.), mas quando se trata de diretórios, a write (w)permissão funciona da mesma maneira que execute (x), certo?

O que significa que, se estivermos dando permissão de gravação para um diretório, também normalmente verificamos "x" (para execução) para esse diretório, certo?

wsou eu
fonte
2
Sua pergunta agora é incompreensível. Não está claro onde você está falando sobre as permissões em um arquivo e onde você está falando sobre as permissões no diretório que o contém.
Gilles 'SO- stop be evil'
1
Se você tiver uma nova pergunta, basta postá-la separadamente ?
Michael Mrozek
1
O que você quer dizer com "permissão de leitura é tudo o que precisamos para um arquivo?" Tudo o que você precisa para quê? Para ler um arquivo? Sim. Para modificar um arquivo ... não, a menos que você seja o proprietário desse arquivo.
Gabe.
Além de deixar de fora as operações "pode ​​ler, pode renomear / excluir arquivos dentro do diretório", seu "000: não pode excluí-lo" está incorreto. Se o diretório já estiver vazio, você poderá excluí-lo se puder gravar no diretório pai. Se ele não está vazio, você não pode excluí-lo até que ele está vazio (tornando-o vazio é uma operação recursiva que exige que todos os três permissões nele e todos os subdiretórios não vazios)
Random832
Sua edição desta pergunta tornou muito confuso descobrir o que estava sendo solicitado e não parecia agregar valor aos futuros visitantes. Voltei ao formulário original de perguntas simples que o @Gilles respondeu. Se você tiver um novo problema, poderá fazer outra pergunta . Tente manter cada pergunta focada em um problema.
Caleb

Respostas:

49

A permissão de execução nos diretórios permite acessar arquivos dentro do diretório. A permissão de leitura permite enumerar as entradas do diretório. A permissão de gravação permite criar e remover entradas nela.

Ter permissão de leitura ou gravação em um diretório sem permissão de execução não é útil. Ter permissão de execução, mas não de leitura, é ocasionalmente útil: permite acessar arquivos apenas se você souber o nome exato, uma espécie de proteção por senha primitiva.

Portanto, na prática, as permissões úteis em um diretório são:

  • ---: sem acesso
  • --x: pode acessar arquivos cujo nome é conhecido (ocasionalmente útil)
  • r-x: acesso normal somente leitura
  • rwx: acesso normal de leitura e gravação

Veja também Diretório com permissão + x, pais sem ela. Quando isso seria útil? e As permissões do diretório pai são importantes ao acessar um subdiretório?

Gilles 'SO- parar de ser mau'
fonte
@Gilles está certo! Uma pesquisa sobre isso no Linux revela: 1) Quando um diretório não tem uma permissão 'x' para o usuário, é a chamada de sistema stat ou lstat que falha. Isso resulta na obtenção de nenhum metadado das entradas do diretório, mesmo sendo possível obter as entradas do diretório (nome, inode) quando o usuário tem permissão 'r' no diretório. 2) Veja man 7 path_resolution no Linux para obter informações adicionais.
Kedar Mhaswade
2
w-xtambém pode ter seus usos. Por exemplo, costumava ser uma prática bastante comum que sites FTP públicos tivessem uma pasta uploadou incomingque fosse publicamente gravável, mas legível apenas pelos administradores do servidor.
jmbpiano
O que rw-faria isso r--não poderia fazer pelos diretórios? Essa resposta menciona a capacidade de alterar o tempo de modificação, mas, no meu sistema Linux ZFS, isso não é verdade, consegui alterar o tempo de modificação, mesmo quando meu diretório era apenas r--.
precisa saber é o seguinte
@CMCDragonkai Você está certo, a alteração de metadados é baseada na propriedade, não está relacionada a permissões. Eu não acho que você possa fazer algo com um rw-diretório diferente de listar as entradas (e movê-lo / removê-lo se você possuir o pai, que não requer nenhuma permissão no diretório).
Gilles 'SO- stop be evil'
@Gilles: Isso mesmo. com rw-no dir, não consigo criar novos arquivos nem alterar os existentes, mesmo que eu tenha rw-no arquivo que tento alterar. Nem eu posso toucho arquivo. Estou no Arch Linux 4.14.13.
Matthias Braun