O que acontece com a propriedade / grupo / permissões do arquivo unix / mac quando é copiado ou movido para um sistema diferente

1

Falando sobre o Mac especificamente ou talvez o Unix, estou um pouco confuso sobre como a propriedade / grupo de arquivos quando um arquivo é movido de um sistema para outro.

Por exemplo No meu Mac, se eu criar um arquivo, eu sou o dono dele, então, digamos que o dono seja 'ahmed' e o grupo seja 'staff'

Quando este arquivo é copiado para outro macbook, o usuário 'ahmed' ainda será o proprietário e o grupo será 'staff'? embora no segundo macbook o usuário 'ahmed' ou grupo 'staff' possa ou não existir. ?

Alguém por favor pode explicar, é bastante confuso.

Obrigado Ahmed

    
por Ahmed 23.10.2013 / 02:19

3 respostas

0

Se você simplesmente copiar arquivos sem solicitar o / s para reter as permissões (normalmente um sinalizador -p para 'cp'), os arquivos que são copiados são recriados na área de destino de propriedade do usuário que emitiu o arquivo. cópia de. Por exemplo, se eu (freudy) copiasse um arquivo que pertencia a Ahmed em / tmp para meu diretório pessoal:

cp /tmp/ahmedsFile .

Então eu (freudy) seria dono da cópia.

Para manter as permissões de tipo de propriedade entre os usuários, suspeito que você precise ser root .

então,

sudo su -
cp -p /tmp/ahmedsFile /home/freudy

resultaria em / home / freudy / ahmedsFile sendo propriedade de Ahmed.

Note que tudo isso está na mesma máquina para ilustrar o ponto por trás da retenção de permissões (propriedade e atributos de arquivo).

Como já foi dito, o ID do usuário e o groupdid são armazenados numericamente nos arquivos / etc / passwd e / etc / group. Copiar arquivos entre sistemas (preservando as permissões de arquivo) com IDs diferentes resultará na cópia de 'propriedade' de diferentes usuários.

Source Machine Passwd
testuser:x:1001:1001:Test user:/home/testuser:/bin/sh

Target Machine Passwd
rupert:x:1001:1001:Rupert the bear:/home/rupert:/bin/sh

Copiar da origem para o destino, preservando as permissões, terá todos os arquivos que aparentemente pertenciam ao 'testuser' na origem, aparentando pertencer ao 'rupert' no destino. Geralmente, isso é um problema ao restaurar arquivos archive (ou seja, arquivos tar), pois o tar armazena o id da mesma maneira que o o / s faz.

Arquivar arquivos no tar na máquina de origem e extrair no destino demonstrará a opção de nome de usuário.

    
por 23.10.2013 / 09:05
1

Isso dependerá de como os arquivos são copiados, mas quase certamente não. Se, por exemplo, você copiar os arquivos usando scp :

ahmed@macbook$ scp foo.txt remoteuser@remotemachine:/home/remoteuser/

isso criará um novo arquivo de propriedade de remoteuser . Para copiar um arquivo para uma nova máquina, você precisa acessar o novo computador de alguma forma. Isso significa que você terá que entrar na nova máquina com algum tipo de nome de usuário. Copiar arquivos significa criar novos na nova máquina, são dados, não objetos físicos, portanto, você não está realmente movendo nada. Como você criará novos arquivos, serão aplicadas regras normais para a criação de arquivos.

    
por 23.10.2013 / 02:40
0

O arquivo Unix e a propriedade de grupo não são codificados com os nomes, mas com IDs numéricos no sistema de arquivos. Estes são traduzidos para os nomes com / etc / passwd e / etc / group. Se você mover um disco para outro sistema e esse sistema tiver nomes diferentes para esses IDs, o proprietário será alterado. Se os IDs não forem usados, a propriedade geralmente será exibida como os IDs numéricos. Se mais tarde você adicionar um usuário / grupo com esse id, ele / ela será o proprietário dos arquivos.

    
por 23.10.2013 / 02:27

Tags