重庆思庄Oracle、Redhat认证学习论坛

标题: PG16 开启SELINUX重新打标签 [打印本页]

作者: 郑全    时间: 2024-7-27 02:05
标题: PG16 开启SELINUX重新打标签
PG16简单的开启SELINUX,使用systemctl start pg16.service ,会报权限错误,可以通过 setroubleshotting去排查,会发现是标签错误导致.

那么在PG 中,SELINUX 标签不统一,$PGHOME 和$PGDATA不一样,就是$PGHOME下面的各目录及文件,标签也不一样。

$PGHOME/bin/postgres    标签: postgresql_exec_t
$PGHOME/bin/initdb       标签: postgresql_exec_t
$PGHOME/bin/pg_ctl       标签: initrc_exec_t
$PGHOME/bin/*               标签:    bin_t
$PGHOME/lib/*               标签: lib_t
$PGHOME/*                      标签: usr_t


$PGDATA/*        标签: postgresql_db_t


针对这种情况,我们需要对这些文件重新打标签


方法如下:
使用root用户去执行
比如:
$PGDATA=/u01/app/postgres/pgdata
$PGHOME=/u01/app/postgres/product/16.3/dbhome_1


1.设置目录标签
# semanage fcontext -a -t usr_t '/u01/app/postgres/product/16.3/dbhome_1(/.*)?'
# semanage fcontext -a -t bin_t '/u01/app/postgres/product/16.3/dbhome_1/bin(/.*)?'
# semanage fcontext -a -t lib_t '/u01/app/postgres/product/16.3/dbhome_1/lib(/.*)?'
# semanage fcontext -a -t postgresql_db_t '/u01/app/postgres/pgdata(/.*)?'

2.设置单个文件的标签
# semanage fcontext -a -t postgresql_exec_t '/u01/app/postgres/product/16.3/dbhome_1/bin/postgres'
# semanage fcontext -a -t postgresql_exec_t '/u01/app/postgres/product/16.3/dbhome_1/bin/initdb'
# semanage fcontext -a -t initrc_exec_t '/u01/app/postgres/product/16.3/dbhome_1/bin/pg_ctl'

3.恢复文件安全上下文,含标签

# restorecon -FRv /u01/app/postgres/product/16.3/dbhome_1
# restorecon -FRv /u01/app/postgres/pgdata

4.验证SELINUX的安全上下文

                               
登录/注册后可看大图



                               
登录/注册后可看大图



至此,再去systemctl start PG16 不再报错


                               
登录/注册后可看大图



                               
登录/注册后可看大图


















欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2