安装包或添加用户时自动触发操作

安装包或添加用户时自动触发操作

在 Debian Wheezy 上安装 mysql-server 时,会创建没有主目录的用户“mysql”。在我的设置中,安装 MySQL 后,会立即执行一项新任务,该任务依赖于 mysql 用户将 /var/lib/mysql 作为主目录。

目前,这项任务失败了。我必须调整 mysql 用户并重新运行我的任务。所以我正在寻找 Debian 中的内置方法,它允许我“预先设置”mysql 用户的主目录(由其中一个 mysql 包创建)或创建一个触发器,该触发器对正在安装的 mysql-server 包(或正在创建的 mysql 用户,我不关心)的事件做出反应。

我知道我可以修改 mysql 包或将 mysql 安装包装在某种脚本或 puppet 清单中;但是,这样的事情不适合我的设置。我需要一个干净的 Debian 方法来做到这一点。

是否存在可以在软件包安装或用户创建时触发的现有事件?我考虑通过 inotify 查看 mysql 文件作为一种解决方法;但是,我认为 inotify 对我这里的小问题来说太过分了。

我目前正在研究 dpkg-triggers,但我不确定这是否是正确的解决方案。

答案1

您可以在安装软件包之前创建用户 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

相关内容