Debian: создать пользователя во время упаковки
Я переупаковываю некоторое программное обеспечение (которое имеет собственный установщик) для частного использования в системе на базе Debian. Это программное обеспечение уже скомпилировано (нет источника), поэтому я в основном запускаю установщик в дерево $DESTDIR
.
К сожалению, установщик требует, чтобы имя пользователя системы и имя группы были созданы ранее. Теперь я знаю, что это просто сделать это "вручную" до создания (и установки) пакета Debian. Но мне интересно, можно ли поручить debuild "подделать создание пользователя" (при запуске с правами root с помощью fakeroot). Редактирование файлов debian/preinst.ex
и debian/postrm.ex
работает для выполнения этих операций, но это также относится к этапу build, где эти пользователи становятся ненужными после сборки.
Таким образом, в основном это позволяет использовать инструменты сборки Debian (и инструменты, выполняемые внутри сборки), чтобы "поверить", что определенный пользователь уже существует. Не удается запустить в chroot-ed среде (например, pbuilder), как я могу это сделать?
Ответы
Ответ 1
Немного поздно, но наилучшим предположением будет LD_PRELOAD
, который требует создания отдельного C файла, скомпилированного в динамическую библиотеку, которая может переопределить, например. getpwnam()
, который, вероятно, используется установщиком для проверки пользователя.
Но сначала я бы посмотрел на самом деле, чтобы увидеть, не может ли "установщик" принудительно перейти в режим распаковки. Многие установщики могут использовать скрытые параметры.