veja os userids do Unix no macOS

0

Eu tenho um instantâneo de 900 usuários com um milhão de arquivos de um antigo servidor de arquivos Unix. No Linux eu posso navegar nele e ter ls -l mostra nomes de usuários do /etc/passwd do instantâneo, apenas chroot'ing no diretório principal do snapshot.

Copiei esse instantâneo para uma unidade USB formatada com exFAT para enviar mensagens para um usuário de Mac. Mas no macOS meu truque chroot pode não mostrar nomes de usuários, porque eles vêm do DirectoryService em vez do / etc / passwd. (Ele não adicionará 900 usuários ao seu Mac, nem instalará o Linux nele.)

Como ele pode ver esses nomes de usuários nas listagens de arquivos?

Ou ele terá que canalizar ls -ln através de um script personalizado que substitua o uid / gid pelos nomes desse arquivo de senha?

    
por Camille Goudeseune 16.07.2018 / 22:50

1 resposta

1

Acho que você pode encontrar tar útil. Eu testei o GNU tar no Debian e no Ubuntu. Eu não tenho acesso ao Mac, seu tar pode não ser tão acessível com opções. Ainda acho que você será capaz de obter algumas idéias da minha resposta.

tar -xf archive.tar mountpoint/ armazenará proprietários / grupos de arquivos principalmente como sequências de caracteres, a menos que você use --numeric-owner . Existem algumas outras opções que você certamente não deseja usar, por exemplo, --owner= .

No sistema de destino, a extração do arquivo pode mangle as informações de propriedade e será no seu caso. Mas você pode ver os usuários / grupos originais com

tar -tvf archive.tar

ou, por exemplo,

tar -tvf archive.tar path/to/object1/within/archive path/to/object2

Se o instantâneo grande já tiver sido enviado e você não quiser enviar outro arquivo grande, o outro usuário poderá tentar criar archive.tar usando --owner-map= para conectar UIDs numéricos do instantâneo aos nomes arbitrários fornecidos por você (ou pelo /etc/passwd do instantâneo). Isso requer algum esforço para criar um arquivo de mapeamento. Também tenho medo que isso não funcione com grupos.

Neste caso, copie os metadados apenas (no seu sistema):

cp -a --attributes-only mountpoint/ whatever

e tar dos arquivos vazios resultantes:

tar -xf metadata.tar whatever/

Envie metadata.tar para o outro usuário ( gzip talvez para reduzir o tamanho). Para ver as informações de propriedade, elas devem ser executadas em tar -tvf metadata.tar .

    
por 21.07.2018 / 11:43