Estou instalando alguns dos meus dados do meu servidor antigo para o meu novo servidor.
Como eu tinha meu servidor antigo há muito tempo, tenho uma enorme quantidade de dados legados com, certamente, nomes de usuários e grupos legados.
Ao extrair, o tar faz o possível para corresponder as informações do usuário e do grupo por nome e usa os identificadores como fallback ou o usuário atual como último recurso.
O que eu gostaria de fazer é garantir que todos os usuários e grupos existam antes de fazer a extração. Dessa forma, todos os arquivos obtêm os ids corretos.
Para fazer isso, a melhor maneira que consigo pensar é listar todos os nomes de usuários e grupos encontrados no arquivo tar. Eu sei que posso usar o tar tvf backup.tar
comando para listar todos os arquivos, mas então eu teria que encontrar uma maneira de extrair os dois nomes corretos.
Eu estou querendo saber se haveria uma maneira mais simples do que usar a tv
opção. Algumas ferramentas ou opções de linha de comando que extraem apenas o nome do usuário e o nome do grupo, posso usar sort -u
para reduzir a lista a entradas exclusivas.
Alguém conhece tal funcionalidade?
Pergunta interessante. A partir de uma rápida olhada na página de manual (procurando por "usuário" e quando isso não aparecer resultados, procurando por "proprietário"), o seguinte deve ser feito:
Obviamente, altere o script de acordo com suas necessidades. Você pode querer
$TAR_UID
e$TAR_GID
em vez dos nomes para alguns casos de uso.Eu recomendo também que você leia as opções
--owner-map
e para ; eles soam como se pudessem beneficiar muito seu caso de uso e seriam muito mais simples do que criar todos os usuários e grupos com antecedência.--group-map
tar
Rapidamente montado:
grupos:
usuários:
pares de usuários/grupos: