Назад | Перейти на главную страницу

Запускать действия автоматически, когда пакет установлен или добавлен пользователь

При установке mysql-server на Debian Wheezy пользователь mysql создается без домашнего каталога. В моей настройке сразу после установки MySQL выполняется новая задача, которая полагается на пользователя mysql, имеющего / var / lib / mysql в качестве домашнего каталога.

На данный момент эта задача не выполняется. Мне нужно настроить пользователя mysql и снова запустить мою задачу. Итак, я ищу встроенный метод в Debian, который позволяет мне либо «предварительно задать» домашний каталог пользователя mysql (который создается одним из пакетов mysql), либо создать триггер, который реагирует на событие mysql. -server устанавливается (или создается пользователь mysql, мне все равно).

Я знаю, что могу изменить пакет mysql или обернуть установку mysql в какой-то сценарий или манифест марионетки; однако подобные вещи не подходят для моей установки. Для этого мне нужен чистый метод Debian.

Есть ли что-то, что может быть активировано при установке пакета или создании пользователя? Я думал о просмотре файлов mysql через inotify в качестве обходного пути; однако я думаю, что inotify будет слишком много для моей маленькой проблемы.

В настоящее время я смотрю на dpkg-триггеры, но не уверен, что это правильное решение.

Вы можете создать пользователя mysql непосредственно перед установкой пакета. Если вы посмотрите на сценарий preinst пакета, это ничего не сломает:

# creating mysql user if he isn't already there
if ! getent passwd mysql >/dev/null; then
    # Adding system user: mysql.
    adduser \
        --system \
        --disabled-login \
        --ingroup mysql \
        --no-create-home \
        --home /nonexistent \
        --gecos "MySQL Server" \
        --shell /bin/false \
        mysql  >/dev/null
fi

http://sources.debian.net/src/mysql-5.5/5.5.35%2Bdfsg-2/debian/mysql-server-5.5.preinst