gzip propriedade e permissões de arquivos compactados

2

Estou tentando descobrir como o gzip de um arquivo altera suas permissões. O manual do gzip (man gzip) diz:

Whenever possible, each file is replaced by one with the extension .gz, while keeping the same ownership modes, access and modification times.

Agora, eu tenho um arquivo 'myfile.txt' cujo proprietário é eu (myuser). Quando eu gzip este arquivo como outro usuário (esse usuário (diga 'otheruser') tem permissões de leitura e gravação neste diretório e arquivo), o dono do arquivo gzip se torna esse outro usuário. Ou seja, quem gzip é o arquivo se torna o dono do arquivo .gz.

Além disso, quem quer que seja o gunzip, esse arquivo se tornará o proprietário do arquivo descompactado. Isso significa que o gzip não faz nada sobre as posses? Em caso afirmativo, o que significa a frase acima na página de manual?

Eu não acredito que a cláusula 'Sempre que possível' possa ser um problema aqui, já que eu estou no Unix (Solaris) onde a retenção de permissões é (AFAIK) possível.

Uma pergunta relacionada: se um usuário tiver permissão de leitura em um arquivo .gz, ainda é possível que ele não consiga ler o conteúdo do arquivo? O gzip mantém um conjunto separado de permissões "dentro" do arquivo que pode limitar o acesso? Isso não parece provável, mas gostaria de ter certeza.

Eu preciso escrever código dependendo do comportamento do gzip, então descobrir o comportamento exato é importante para mim. Qualquer ajuda seria apreciada.

Obrigado.

    
por sundar 08.11.2009 / 14:56

2 respostas

5

A alteração da propriedade de arquivo só pode ser feita por root. Ordinário user_a simplesmente não pode criar um arquivo que pertença a user_b ordinário, se a criação do arquivo é feita por gzipping ou gunzipping. Se você precisar preservar a propriedade, descompacte como root.

    
por 08.11.2009 / 18:30
0

O HPUX usa uma versão muito antiga do gzip (1.3.5 em 11.31 ia64) e faz exatamente como a página de manual descreve. O usera pode gzip e gunzip um arquivo de propriedade do userb e todas as permissões e modos são preservados. Gzip / gunzip do usuário root não são necessários.

No entanto, para as versões 1.4 e superiores, parece que o gzip não pode alterar o proprietário / permissões com sucesso, a menos que você seja root. Na minha opinião, isso é um erro. Você pode percorrer manualmente as etapas para gzip / gunzip um arquivo pertencente a outro usuário, se tiver permissões unix para fazer isso.

$ gzip -c arquivo > arquivo.gz   $ chmod NNN file.gz (onde NNN é o modo de arquivo)   $ chown user: arquivo de grupo (em que user: group são os usuários e proprietários do grupo de arquivos)   arquivo $ rm

Por que as versões gzip 1.4 não podem fazer isso quando as versões < 1.4 fazem isso bem?

    
por 18.12.2013 / 14:52