Por que o conversor de pacotes alienígenas precisa de permissões de root?

0

Ao tentar converter um pacote .deb em .rpm usando alien Eu uso este comando:

$ alien -r foo.rpm

mas reclama assim:

> Warning: alien is not running as root!
> Warning: Ownerships of files in the generated packages will probably be wrong.
  1. Como as propriedades do arquivo são diferentes quando executadas como raiz vs. usuário normal?

  2. Por que a propriedade de arquivos em um pacote é importante?

por kdbanman 28.06.2014 / 21:38

1 resposta

2

Debians deb pacotes são coisas simples, todos os arquivos que o pacote vai instalar são armazenados em um arquivo.

Este arquivo contém a árvore completa de arquivos e também suas permissões e dados de propriedade. Durante a instalação, o arquivo é extraído no sistema de arquivos raiz como está.

Um exemplo

O pacote contém um arquivo com os seguintes arquivos:

 /usr/bin/fping
 /usr/bin/fping6
 /usr/share/doc/fping/README
 /usr/share/doc/fping/changelog.Debian.gz
 /usr/share/doc/fping/changelog.gz
 /usr/share/doc/fping/copyright
 /usr/share/lintian/overrides/fping
 /usr/share/man/man8/fping.8.gz
 /usr/share/man/man8/fping6.8.gz

Permissões e dados do proprietário (com o dono quase sempre sendo raiz) são retirados apenas do arquivo.

Com isso em mente, é impossível extrair o arquivo com a propriedade correta preservada sem privilégios de superusuário. Sem qualquer conhecimento do funcionamento interno de rpm e alien, eu acho que alien está extraindo o arquivo fonte durante a conversão.

Responda suas perguntas:

Como as propriedades dos arquivos são diferentes quando executadas como root vs. um usuário normal?

Os usuários normais podem criar apenas arquivos próprios e não podem alterar a propriedade dos arquivos.

Por que a propriedade de arquivos em um pacote é importante?

Talvez sim, talvez não. Lembre-se: Sem o beiing root, os arquivos pertencerão ao uid que converteu o pacote. Embora não seja uma boa prática ter binários de instalação de usuário não privilegiados em / usr / bin, isso pode funcionar. Mas vai quebrar quando o material instalado tiver que ser proprietário por root.

De volta ao exemplo, o fping precisa ser root setuid para funcionar - > pacote quebrado devido à propriedade errada.

    
por 29.06.2014 / 03:44