重庆思庄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