很久以前,在我们的公司环境中,一些 wiz 决定将用户 " mysql
" 放入 LDAP。
帐户被禁用:
$ sudo su - mysql
This account is currently not available.
...但它的 id 仍然存在:
$ id mysql
uid=2050913(mysql) gid=867(ENG) groups=867(ENG)
这使得 mariadb 在 CentOS7 上的安装失败,因为/var/run/mariadb
它是由 tmpfile 规则创建的,该规则试图将目录分配给 mysql。但是 mysql 在 LDAP/networking 启动并运行之前不存在,并且 mariadb 安装不会创建mysql
用户,因为用户已经存在于 ldap 中。
有没有办法在本地强制 PAM(或其他东西?)忽略 LDAP 中的用户 mysql ?或者将 ldapmysql
用户重命名为mysql_ldap
?
手动添加条目是我唯一的解决方法/etc/passwd
吗?(或者更改 mariadb 配置以使用不同的用户名。)我宁愿对来自 rpm 的配置和 systemd 文件进行最小的更改。
(而且我不希望mysql
从 LDAP 中移除,因为这可能会破坏许多遗留基础设施。)
顺便说一句,我将使用 ansible 来实现更改。
额外的:
我更改了问题的标题:
我发现如果我确实添加了本地“ mysql
”用户,它可以正常工作,除非我有 LDAP“”用户的用户 ID 拥有的文件mysql
。如果ls -la
是文件,它会污染 nscd(或 sssd)缓存,并且“ mysql
”再次解析为 LDAP 用户。看来我真正想要的是以某种方式为帐户构建一个 PAM 过滤器,以使这个 LDAP“ mysql
”用户消失。