'Possuir' um diretório ou arquivo dá a você e permissões especiais?

7

Eu li um pouco sobre o chmod e tenho uma compreensão de alto nível das permissões de arquivo. Mas estou um pouco confuso sobre o conceito de 'proprietário'.

Se minha conta de usuário é o 'Proprietário' de um diretório, mas não tem permissões (chmod 0000), meu usuário tem mais capacidade de fazer qualquer coisa que outro usuário aleatório no sistema? Assumindo que nenhum dos usuários é um superusuário?

    
por Rob P. 13.10.2012 / 14:21

4 respostas

6

chmod 00000 torna o diretório / arquivo inacessível ao proprietário e ao grupo. A única coisa que você e o grupo que possui o arquivo podem fazer é removê-lo com rm -rf tmp/ . Nada melhor que um exemplo:

$ mkdir tmp
$ chmod 00000 tmp
$ cd tmp
bash: cd: tmp: Permission denied

Você pode ver o diretório com ls -l

d--------- 2 rinzwind rinzwind   4096 Oct 13 14:35 tmp

e só com sudo permissões você pode entrar no diretório ...

 $ sudo su
 # cd tmp
 #

Em relação aos outros posts: sim, você pode remover um arquivo / diretório que é chmodded para 00000:

$ mkdir tmp
$ chmod 00000 tmp
$ rm -rf tmp/
$ touch 1
$ chmod 00000 1
$ rm 1
rm: remove write-protected regular empty file '1'? y
$ 

Como proprietário, você também pode redefinir as permissões. Isso é algo que outra pessoa (exceto root) é permitida também.

    
por Rinzwind 13.10.2012 / 14:43
5

Um diretório é apenas um tipo especial de arquivo, de modo que o seguinte se aplica igualmente a diretórios e arquivos.

O proprietário permite redefinir o acesso ao arquivo para que você possa ler o arquivo. Além do root, outros usuários não poderão fazer isso.

Até que você redefina o acesso, o arquivo ficará inacessível para você da mesma forma que seria para outros usuários.

O proprietário do arquivo não permite que você remova (exclua). Você deve ter acesso de gravação ao diretório que o contém para removê-lo.

Exemplo de script demonstrando o que pode e não pode ser feito. (Não corra como root, mas requer acesso ao sudo.):

#!/bin/bash

DIR=directory$$
FILE=$DIR/file$$

echo We can remove it - own both file and directory
mkdir $DIR
date > $FILE
chmod 0000 $FILE
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can not remove it - no write access to directory
date > $FILE
chmod 0000 $FILE
chmod -w $DIR
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can remove it - even if we do not own it
chmod 0000 $FILE
chmod +w $DIR
sudo chown root:root $FILE
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can not remove it - even if we can read it - do not own directory
date > $FILE
cat $FILE
sudo chown root:root $DIR
ls -ld $DIR $FILE
cat $$FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

sudo chown $LOGNAME $DIR
echo Now we can clean up
rm -f $FILE
rmdir $DIR

# EOF
    
por BillThor 13.10.2012 / 20:43
3
  

Se minha conta de usuário é o 'Proprietário' de um diretório, mas não tem permissões (chmod 0000), meu usuário tem mais capacidade de fazer qualquer coisa que outro usuário aleatório no sistema?

A resposta simples é, Não , o proprietário não terá nenhum outro recurso para ser o proprietário do diretório quando for chmoded para 0000 . Porque o bit de permissão para o proprietário também é 0 , o que significa que não há permissões de leitura / gravação / execução para ele.

Verifique o bit de permissão do arquivo Linux

    
por Anwar 13.10.2012 / 14:48
3

Sim. Como proprietário, você pode usar chmod para obter as permissões necessárias.

    
por hammar 13.10.2012 / 22:17