我已经安装了 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 是正确的上下文。