将 PGDATA 移动到 Fedora 17
来自 PostgreSQL 维基
跳转到导航跳转到搜索将 PGDATA 移动到 Fedora 17、18 或 19 中 /home 下面的目录
在启用了 SELinux 的系统上,移动 PGDATA 可能是一个挑战。在我的情况下,我希望 PGDATA 位于我的加密 /home 分区上。以下是 Fedora 17 到 19 的操作方法。
# new home directory. create this, change owner to postgres:postgres, and # change home dir for user "postgres" in /etc/passwd. PGHOME=/home/postgres # change PGDATA in systemd service file PGDATA="$PGHOME""/data" sed "s#^Environment=PGDATA=.*#Environment=PGDATA=$PGDATA#" /usr/lib/systemd/system/postgresql.service > /etc/systemd/system/postgresql.service # change PGHOME selinux context semanage fcontext -a -t postgresql_db_t "$PGHOME(/.*)?" restorecon -R -v $PGHOME # allow postgres to search /home cd /root mkdir selinux.local cd selinux.local chcon -R -t usr_t . ln -s /usr/share/selinux/devel/Makefile . touch postgresqlhome.fc touch postgresqlhome.if cat > postgresqlhome.te <<EOF module postgresqlhome 0.1; require { class dir search; class lnk_file read; type home_root_t; type postgresql_t; type var_lib_t; }; # Allow postgresql to search directory /home allow postgresql_t home_root_t:dir search; EOF make semodule -i postgresqlhome.pp