Permissões não podem ser restauradas para um tar

1
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted
tar: Exiting with failure status due to previous errors

Eu tenho meus arquivos na pasta Downloads e estou executando o arquivo de instalação da pasta Downloads para a pasta / opt / pkg e aqui estão os comandos que usei

chmod -R 777 Downloads/*
sudo chmod -R 777 /opt/*
chmod +x petalinux-v2017.1-final-installer.run 
./petalinux-v2017.1-final-installer.run /opt/pkg

no final, o instalador não está dando as mensagens de erro acima. E estou fornecendo todas as permissões necessárias para a pasta Downloads e também para a pasta /opt/pkg .

    
por jenny 14.06.2017 / 16:19

2 respostas

2

Pergunta: As permissões não podem ser restauradas para um tar

Resposta: somente root pode .

Referência: leia este Q & A informativo em askubuntu :

even if you use tar's --same-owner flag, you will still need to extract the files as root to preserve ownership.

Atualização: Veja mais alguns detalhes sobre o comportamento de tar . Vamos supor que somos user1 e criamos um arquivo com tar cvpzf test.tar.gz . que inclui arquivos de propriedade de user2 . Se extrairmos o arquivo em um diretório de propriedade de user2 com permissões 777 , aqui está o resultado:

$ tar xpvzf test.tar.gz
./
./file1
./file2
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxrwxr-x: Operation not permitted
tar: Exiting with failure status due to previous errors

$ ls -al
drwxrwxrwx 2 user2 user2 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2

tar gera um erro porque não pode alterar a propriedade e as permissões dos arquivos de propriedade de user2 . Os arquivos, no entanto, são extraídos, embora sejam de propriedade de user1 .

Veja o que acontece se a extração for realizada em um diretório de propriedade de user1 :

$ tar xpvzf test.tar.gz
./
./file1
./file2

$ ls -al
drwxrwxr-x 2 user1 user1 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2

As permissões são restauradas para a pasta e os arquivos, e nenhum erro é gerado, embora a propriedade user2 não possa ser restaurada.

A partir da resposta do OP, parece que o instalador verifica o código de saída do tar e pára se um erro for encontrado. chown ing a pasta para o usuário atual faz tar falhar silenciosamente para que o instalador possa continuar.

    
por 14.06.2017 / 16:41
1

chmod -R 777 Downloads/* sudo chmod -R 777 /opt/* mkdir /opt/pkg cd /home/my_ubuntu/Downloads chmod +x petalinux-v2017.1-final-installer.run ./petalinux-v2017.1-final-installer.run /opt/pkg

agora ele será instalado e as permissões do arquivo tar serão restauradas quando você criar o diretório pkg como usuário normal e não como usuário root.

    
por 14.06.2017 / 17:01