无法使用 systemctl 启动 PostgreSQL 9.5 - SELinux

无法使用 systemctl 启动 PostgreSQL 9.5 - SELinux

我已经安装了 PG 9.5 ( /usr/pgsql-9.5/),当我手动启动它时postgres -D没有问题,但如果我尝试使用,systemctl则会出现错误。通过查看journalctl -xen输出,我看到:

/bin/sh /usr/postgresql-9.5/bin/postgresql95-check-db-dir: permission denied

这些是权限:

-rwxr-xr-x. root root system_u:object_r:postgresql_exec_t:s0 postgresql95-checkdb_dir

我不明白这是 SELinux 问题还是其他问题。有什么帮助吗?

将 PostgreSQL 置于宽松模式(例如semanage permissive -a postgresql_t)解决了问题,但如果可以的话,我希望它保持强制执行。你知道这是什么问题吗?

答案1

问题是错误的上下文 ( postgresql_exec_t)。解决方案:

semanage fcontext -a -t bin_t "usr/pgsql-9.5/bin(/.*)?"
restorecon -vR /usr/pgsql-9.5/bin

注意新的上下文bin_t。我以为读书`postgresql_exec_t 是正确的上下文。

相关内容