Действительно ли возможно выполнить pbuilder без полномочий пользователя root?

Я понимаю ту установку pbuilder требует полномочий пользователя root, но каждый вызов действительно требует полномочий пользователя root?

Есть ли любой способ работать pbuilder как типичный пользователь?

6
задан 23 July 2011 в 10:31

1 ответ

Да, скопированный с: pbuilder.

Возможно использовать Linux непривилегированного режима путем вызова pbuilder-user-mode-linux вместо pbuilder. pbuilder-user-mode-linux, не требует полномочий пользователя root, и это использует метод доступа к диску копии на записи (COW) Linux непривилегированного режима, который обычно делает его намного быстрее, чем традиционный pbuilder.

Linux непривилегированного режима является несколько меньшим количеством проверенной платформы, чем стандартные инструменты Unix, на которые pbuilder полагается (chroot, tar и gzip), но достаточно сформировавшийся для поддержки pbuilder-user-mode-linux начиная с его версии 0.59. И с тех пор, pbuilder-user-mode-linux видел быструю эволюцию.

Конфигурация pbuilder-user-mode-linux входит в три шага:

  1. Конфигурация Linux непривилегированного режима

    Linux непривилегированного режима не абсолютно тривиален для установки. Вероятно, было бы полезно познакомить себя с ним немного прежде, чем попытаться использовать rootstrap или pbuilder-user-mode-linux. Для получения дополнительной информации читать /usr/share/doc/uml-utilities/README.Debian и user-mode-linux документация. (Это находится в отдельном пакете, user-mode-linux-doc.)

    Linux непривилегированного режима требует, чтобы пользователь был в uml-сетевой группе, для конфигурирования сети, если Вы не используете slirp.

    При компиляции собственного ядра можно хотеть проверить включение поддержки БОЧКИ/TAP, и Вы могли бы хотеть рассмотреть патч SKAS.

  2. Конфигурация rootstrap

    rootstrap является оберткой вокруг debootstrap. Это создает образ диска Debian для использования с UML. Для конфигурирования rootstrap существует несколько требований.

    • Установите rootstrap пакет.
    • БОЧКА/TAP только: добавьте пользователя к uml-сетевой группе для предоставления доступа к сети adduser dancer uml-net
    • БОЧКА/TAP только: Проверьте, что ядро поддерживает интерфейс TUN/TAP, или перекомпилируйте ядро при необходимости.
    • Настроить /etc/rootstrap/rootstrap.conf. Например, если текущий хост 192.168.1.2, изменение после записей во что-то вроде этого, кажется, работает.

      transport=tuntap
      interface=eth0
      gateway=192.168.1.1
      mirror=http://192.168.1.2:8081/debian
      host=192.168.1.198
      uml=192.168.1.199
      netmask=255.255.255.0

    Некоторое экспериментирование с конфигурацией и работающий rootstrap ~/test.uml для фактического тестирования это было бы удобно.

    Используя slirp требует меньшего количества конфигурации. Конфигурация по умолчанию идет с рабочим примером.

  3. Конфигурация pbuilder-uml

    Следующие потребности произойти:

    • Установите pbuilder-uml пакет.
    • Настройте конфигурационный файл /etc/pbuilder/pbuilder-uml.conf следующим образом. Это будет отличаться для slirp.

      MY_ETH0=tuntap,,,192.168.1.198
      UML_IP=192.168.1.199
      UML_NETMASK=255.255.255.0
      UML_NETWORK=192.168.1.0
      UML_BROADCAST=255.255.255.255
      UML_GATEWAY=192.168.1.1
      PBUILDER_UML_IMAGE="/home/dancer/uml-image"
    • Это должно соответствовать rootstrap конфигурации.

    • Удостоверьтесь, что BUILDPLACE перезаписываем пользователем. Измените BUILDPLACE в конфигурационном файле к месту, где у пользователя есть доступ.
    • Выполненный pbuilder-user-mode-linux create --distribution sid создать изображение.
    • Попытайтесь выполнить сборку pbuilder-user-mode-linux.

Дополнительные комментарии в ссылке:

pbuilder-user-mode-linux эмулирует большинство pbuilder, но существуют некоторые различия.

  • pbuilder-user-mode-linux правильно еще не поддерживает все опции pbuilder. Это - проблема и будет обращено, поскольку определенные области обнаружены.
  • /tmp обрабатывается по-другому внутри pbuilder-user-mode-linux. В pbuilder-user-mode-linux/tmp смонтирован как tmpfs в UML, так доступ к файлам под/tmp от вне Linux непривилегированного режима не работает. Это влияет на опции как - configfile, и при попытке создать пакеты, помещенные под/tmp.

Для выполнения pbuilder-user-mode-linux параллельно в системе существует несколько вещей принять во внимание.

  • Методы создавания и обновления не должны быть выполнены, когда сборка произойдет, или файл COW будет делаться недействительным.
  • Если Вы не используете slirp, процессы Linux непривилегированного режима, которые работают в параллельной потребности иметь различные IP-адреса. Просто попытка выполнить pbuilder-user-mode-linux несколько раз будет приводить к отказу получить доступ к сети. Но что-то как следующее будет работать:

непротестированный

8
ответ дан 23 November 2019 в 07:41

Другие вопросы по тегам:

Похожие вопросы: