Como as permissões em um diretório afetam arquivos nele?

0

Acabei de aprender algo que me chocou, porque eu não fazia ideia de que era um fato.

Se eu tiver um diretório com as seguintes permissões:

user@host:~$ ls -la testdir
total 8
drwxrwxrwx  2 user user 4096 Mar  3 20:36 .
drwx------ 34 user user 4096 Mar  3 20:36 ..
-rw-r--r--  1 user user    0 Mar  3 20:36 testfile 1
-rw-r--r--  1 user user    0 Mar  3 20:36 testfile 2

Mesmo que os arquivos testfile 1 e testfile 2 tenham permissões de gravação somente para o proprietário , todos podem escrever neles.

Até agora, eu achava que as permissões dos diretórios só afetavam o diretório em si .

Então, agora, para minha pergunta - de que servem as permissões de arquivos, se tudo parece ser definido pelas permissões dos diretórios nos quais os arquivos residem?

==== EDIT 1 ====

Por outro lado, veja estas permissões:

[user@geruetzel2 default]$ ls -la
total 24
drwxr-xr-x.  2 root root   41 Dec 19 23:07 .
drwxr-xr-x. 96 root root 8192 Mar  3 20:28 ..
-rw-r--r--.  1 root root  354 Dec 19 23:07 grub
-rw-r--r--.  1 root root 1756 Nov 30 19:57 nss
-rw-------.  1 root root  119 Mar  6  2015 useradd

Se eu fizer um cat useradd como não-raiz aqui, recebo um erro permissão negada . Por que é que? O direcory tem permissões de leitura para "outros", por isso deve ser legível? Parece haver uma diferença entre os dois exemplos que dei, mas não vejo a razão para o comportamento diferente.

    
por geruetzel 03.03.2016 / 20:43

1 resposta

2

As permissões de diretório "apenas" afetam o conteúdo do diretório. Então, qualquer pessoa com permissões de gravação no diretório pode, por exemplo, Exclua arquivos ou pastas nesse diretório, mesmo se as permissões dos arquivos ou pastas estiverem definidas para não ter acesso de gravação. Talvez seja mais fácil entender se você abrir a pasta com vi ou qualquer outro editor de texto. No Unix e Linux "Tudo é um arquivo".

Se, por exemplo, você editar um arquivo com vi , ele não editará o arquivo, mas fará uma cópia e excluirá o original quando salvo.
Por outro lado, o usuário que não possui o arquivo não pôde echo diretamente no arquivo.

    
por 03.03.2016 / 21:31