Permissões do Linux e proprietário sendo preservados com o cp

5

Não consigo entender o seguinte comportamento:
Eu tenho um arquivo chamado someFile em /opt/com/internal/someFile
Se eu fizer ls -all /opt/com/internal/someFile , as permissões serão 700 user:userGroup

Eu sou root e faço cp /root/folder/someFile /opt/com/internal/someFile

  1. Eu não recebo uma solicitação para sobrescrever. Por que não?

  2. As permissões permanecem inalteradas. Mas se eu fizer cp /root/folder/someFile /opt/com/internal/someFile e o arquivo someFile não existir, ele será de root e não user . Por quê?

por Jim 06.04.2012 / 10:20

2 respostas

10

I don't get a prompt to overwrite. Why not?

Porque você deveria saber o que está fazendo. Especialmente como root, você pode sobrescrever praticamente qualquer coisa, então preste atenção nisso.

Use a opção -i para cp para obter uma solicitação antes de substituir os arquivos existentes. Se você sempre quiser ser lembrado disso, considere criar um alias para cp to cp -i .

The permissions are unchanged. But if […] file someFile does not exist it is owned by root and not user. Why?

Porque o arquivo para o qual você está copiando já existe. Não é excluído e reescrito. Ainda é propriedade de user .

No entanto, verifique a opção cp -p . Ele preservará os atributos do arquivo de origem, ou seja, o modo, a propriedade e os timestamps. Caso contrário, os atributos mode e ownership do arquivo de destino permanecerão (exceto os timestamps que indicarão uma modificação).

Se não houver um arquivo de destino, obviamente os atributos do arquivo de origem precisam para serem copiados, já que não podem ser herdados de um arquivo de destino. Você basicamente criará um novo arquivo e, nesse caso, ele pertence a root .

    
por 06.04.2012 / 10:47
2

1) cp não solicitará sobrescrever a menos que o argumento -i seja usado, este foi o comportamento padrão desde o primeiro unix

2) da wikipedia : A sobregravação de um arquivo em um arquivo existente é executada abrindo-se arquivo existente no modo de atualização, preservando assim os arquivos inode, o que requer acesso de gravação e resulta no arquivo de destino mantendo as permissões originalmente.

    
por 06.04.2012 / 10:49