Dúvida sobre direitos de acesso a arquivos entre usuário / grupos

2

Eu sou o único usuário nesta máquina Linux. Eu tentei o procedimento a seguir para proteger arquivos, mas não funciona como eu esperava. Alguém poderia explicar por quê?

$ touch file
$ sudo chown root:root file
$ sudo chmod a-w file
$ ls -l file
-r--r--r-- 1 root root 0 2012-02-29 01:06 file
$ rm file
rm: remove write-protected regular empty file 'file'? yes
$ ls -l file
ls: cannot access file: No such file or directory

"Arquivo" é somente leitura e pertence a root. Por que meu usuário regular conseguiu excluí-lo?

    
por Pomario 29.02.2012 / 02:12

1 resposta

4

É um comportamento estranho das permissões do Linux, mas as permissões para excluir arquivos são concedidas pelas permissões no diretório, não no arquivo.

Tente isto:

mkdir test
touch test/file

# Make the Directory ro
chmod a-w test

ls -l test/file
-rw-rw-r-- 1 bodhi bodhi 0 2012-02-28 21:13 test/file

rm test/file
rm: cannot remove 'test/file': Permission denied
  

Permissão de gravação. Em um arquivo regular, isso significa que você pode modificar o arquivo, também conhecido como gravar novos dados no arquivo. No caso de um diretório, a permissão de gravação significa que você pode adicionar, remover e renomear arquivos no diretório. Isso significa que, se um arquivo tiver o bit de permissão de gravação, você terá permissão para modificar o arquivo. conteúdo, mas você tem permissão para renomear ou excluir o arquivo somente se as permissões do diretório do arquivo permitirem que você o faça .

Veja o link

Para permitir acesso (RW) ao arquivo, mas evitar exclusão ou renomeação, defina o bit adesivo no diretório.

# change "test" to your directory
chmod +t test
touch test/file
chmod a+w test/file

ls -l | grep test
drwxrwxrwt 4 bodhi bodhi  4096 2012-03-07 17:08 test

ls -l test | grep file
-rw-rw-rw- 1 bodhi bodhi   13 2012-03-07 17:10 file

# su to another user, "test"
test@ufbt:/home/bodhi$ echo 'It works !!!' >> test/file

test@ufbt:/home/bodhi$ cat test/file
It works !!!

test@ufbt:/home/bodhi$ rm test/file
rm: cannot remove 'test/file': Operation not permitted

link

  

Se o bit adesivo estiver definido para um diretório, somente o proprietário desse diretório ou o proprietário de um arquivo poderá excluir ou renomear um arquivo dentro desse diretório.

    
por Panther 29.02.2012 / 05:22