Простой пакет deb для Debian Lenny?

На нашем NAS под управлением Debian Lenny я тупо установил PermitRootLogin без пароля в sshd_config без правильной настройки ключей, и теперь он заблокирован. Это WD Sharespace, и, читая его, похоже, что мой лучший способ восстановить корневой SSH-доступ - создать пакет deb, который перезаписывает исходный файл sshd_config. Сайты, которые я нашел, описывающие создание пакета deb, довольно обременительны. Все, что мне нужно сделать, это перезаписать один файл. Есть ли простой способ сделать это?

2 ответа

Решение

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

Тем не менее, если все, что вам нужно сделать, это упаковать файл для отображения в определенном месте, одним из таких инструментов является fpm (нужен Ruby). Чтобы не уважать fpm, он может сделать гораздо больше, чем просто упаковать каталог, полный вещей!

Создайте структуру каталогов, которую вы хотите где-то упаковать, здесь, в /tmp, Действуй так, как будто /tmp/mypackage является корнем вашей целевой файловой системы, поэтому все, что вы помещаете в mypackage/etc появится в /etc после установки пакета:

mkdir -p /tmp/mypackage/etc
echo "My file contents" > /tmp/mypackage/etc/my_config_file

Придерживайся sshd_config файл в этом etc каталог. Тогда мы упаковываем это:

fpm -t "deb" -n "mypackage" -s dir /tmp/mypackage

Вы должны получить что-то вроде:

Created package {:path=>"mypackage_1.0_amd64.deb"}

Обязательно установите правильную архитектуру (я не знаю, что использует WD Sharespace) с -a вариант. Как только вы установите этот пакет на NAS, файл конфигурации должен появиться там.

В качестве альтернативы, которая существует в Ленни и во многих других дистрибутивах, есть "чужая" команда. Он конвертирует пакеты из одного дистрибутива в другой. Это было бы бесполезно, за исключением того факта, что это ОЧЕНЬ прощает пакеты Slackware TGZ. Он примет ЛЮБОЙ файл TGZ (pkgname_version.tar.gz) с путями, начинающимися в корневом каталоге, и преобразует этот TGZ в простой файл deb для установки.

У него есть несколько вариантов настройки пакета (установка тегов версий и т. Д.), Но конечным результатом является пакет, который может устанавливать / удалять или заменять любой пакет в системе без проблем.

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