Descompacte um sistema de arquivos para o dispositivo como usuário normal, mas mantendo o UID e o GID corretos

1

Estou desenvolvendo bastante usando o Yocto para direcionar um sistema embarcado.

Como saída final, o Yocto gera um tarball do sistema de arquivos, que depois eu descompacte em uma partição ext4 de um cartão SD, que se torna o sistema de arquivos raiz do sistema embarcado.

Para definir todas as permissões corretamente na partição ext4 do cartão SD, estou atualmente descompactando o arquivo usando sudo, o que significa operações repetidas excluindo arquivos e assim por diante com privilégios de root - é apenas uma questão de tempo antes de eu acidentalmente excluir alguns arquivos do sistema devido a um erro ou algo assim.

É evidente que só preciso de root em relação ao sistema de arquivos incorporado, não à minha própria máquina.

Existe alguma maneira de descompactar o arquivo como um usuário normal e acabar com os UIDs corretos no sistema de arquivos resultante? Seria bom mudar a maneira como o dispositivo é montado, se isso resolver o problema. Ou talvez algum truque de chroot?

    
por Henry Gomersall 04.12.2015 / 13:01

1 resposta

0

Talvez a opção tar -p seja o que você está procurando?

De man 1 tar :

-p, --preserve-permissions, --same-permissions
extract information about file permissions (default for superuser)

--numeric-owner e --xattrs também podem ser interessantes:

--numeric-owner
Always use numbers for user/group names.

--xattrs
Enable extended attributes support.

    
por 07.07.2017 / 06:29