1

Когда я пытаюсь конвертировать пакет .deb в .rpm с помощью иностранца, я использую эту команду:

$ alien -r foo.rpm

но жалуется так:

> Warning: alien is not running as root!
> Warning: Ownerships of files in the generated packages will probably be wrong.
  1. Как владельцы файлов отличаются при запуске от имени пользователя root и обычного пользователя?

  2. Почему владение файлами в пакете имеет значение?

1 ответ1

2

Deb-пакеты Debian - это простые вещи, все файлы, которые собирается установить пакет, хранятся в архиве.

Этот архив содержит полное дерево файлов, а также их права доступа и данные о владельце. Во время установки архив извлекается в корневую файловую систему как есть.

Пример

Пакет fping содержит архив со следующими файлами:


 /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

Права доступа и данные о владельце (владелец почти всегда является пользователем root) берется только из архива.

Имея это в виду, невозможно извлечь архив с правильным сохранением прав собственности без привилегий суперпользователя. Без какого-либо знания внутренней работы rpm и Alien я бы предположил, что Alien извлекает исходный архив во время конвертации.

Отвечая на ваши вопросы:

Как владельцы файлов отличаются при запуске от имени пользователя root и обычного пользователя?

Обычные пользователи могут создавать только те файлы, которые принадлежат им самим, и не могут менять владельца файлов.

Почему владение файлами в пакете имеет значение?

Может быть, это так, а может и нет. Помните: не имея root, файлы будут принадлежать uid, который преобразовал пакет. Хотя не рекомендуется использовать двоичные файлы непривилегированного пользователя для установки в /usr /bin, это может сработать. Но он сломается, когда установленный материал должен быть владельцем root.

Вернемся к примеру, fping должен быть установлен как root для работы -> пакет сломан из-за неправильного владения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .