porque não é possível renomear o subdir quando o proprietário do diretório pai não é o mesmo usuário [duplicado]

3

Estou tentando entender por que quando um dir X é de propriedade do usuário A não é possível renomeá-lo quando o diretório pai de X é de propriedade do usuário B. Alguém pode explicar por favor?

$ls -l ~
drwxr-xr-x 11 root root   4096 Jan 31 09:43 mymedia

~/mymedia$ ls -l
drwxr-xr-x  6 rag rag  4096 Jan 31 08:34 Entertainment

~/mymedia$ mv  Entertainment/ entertainment
mv: cannot move 'Entertainment/' to 'entertainment': Permission denied
    
por rag 31.01.2013 / 21:36

1 resposta

5

Quando você renomeia um arquivo, não altera o arquivo, altera seu diretório pai. Um nome de arquivo é uma entrada em um diretório. Pense em diretórios de telefone, para alterar o nome associado a um número de telefone em um diretório, você precisa modificar o diretório, não a linha telefônica. O nome está associado à linha telefônica somente nesse diretório. Esse número de telefone pode estar em outro diretório com um nome diferente (links físicos).

Há uma ressalva para renomear diretórios, pois os diretórios contêm uma referência a seus pais (sua entrada .. ). Para poder mover um diretório, não é suficiente ter permissão de gravação para o pai antigo (para remover a entrada) e o novo pai (para adicionar uma nova entrada), você também precisa ter permissão de gravação no próprio diretório para atualizar a entrada .. (se o pai antigo e o novo forem diferentes).

    
por 31.01.2013 / 21:46