Chapter 21. PostgreSQL
Chapter 21. PostgreSQL PostgreSQL is an Object-Relational database management system (DBMS). [19] In Red Hat Enterprise Linux, the postgresql-server package provides PostgreSQL. Enter the following command to see if the postgresql-server package is installed: If it is not installed, use the yum utility as root to install it: 21.1. PostgreSQL and SELinux When PostgreSQL is enabled, it runs confined by default. Confined processes run in their own domains, and are separated from other confined processes. If a confined process is compromised by an attacker, depending on SELinux policy configuration, an attacker's access to resources and the possible damage they can do is limited. The following example demonstrates the PostgreSQL processes running in their own domain. This example assumes the postgresql-server package is installed: Run the getenforce command to confirm SELinux is running in enforcing mode: The command returns Enforcing when SELinux is running in enforcing mode. Enter the following command as the root user to start postgresql : Confirm that the service is running. The output should include the information below (only the time stamp will differ): Enter the following command to view the postgresql processes: The SELinux context associated with the postgresql processes is system_u:system_r:postgresql_t:s0 . The second last part of the context, postgresql_t , is the type. A type defines a domain for processes and a type for files. In this case, the postgresql processes are running in the postgresql_t domain. [19] See the PostgreSQL project page for more information.
~]# rpm -q postgresql-server ~]# yum install postgresql-server ~]USD getenforce Enforcing ~]# systemctl start postgresql.service ~]# systemctl start postgresql.service postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled) Active: active (running) since Mon 2013-08-05 14:57:49 CEST; 12s ~]USD ps -eZ | grep postgres system_u:system_r:postgresql_t:s0 395 ? 00:00:00 postmaster system_u:system_r:postgresql_t:s0 397 ? 00:00:00 postmaster system_u:system_r:postgresql_t:s0 399 ? 00:00:00 postmaster system_u:system_r:postgresql_t:s0 400 ? 00:00:00 postmaster system_u:system_r:postgresql_t:s0 401 ? 00:00:00 postmaster system_u:system_r:postgresql_t:s0 402 ? 00:00:00 postmaster