第21章 PostgreSQL
PostgreSQL は、オブジェクトリレーショナルデータベース管理システム (DBMS) です。[19]
Red Hat Enterprise Linux では、postgresql-server パッケージが PostgreSQL を提供します。以下のコマンドを実行して、postgresql-server パッケージがインストールされているかどうかを確認します。
~]# rpm -q postgresql-server
インストールされていない場合は、root で
yum ユーティリティーを使用してインストールします。
~]# yum install postgresql-server
21.1. PostgreSQL および SELinux リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL が有効になると、デフォルトで制限ありで実行されます。制限のあるプロセスは、独自のドメインで実行され、他の制限のあるプロセスから分離されます。制限のあるプロセスが攻撃者によって侵害された場合、SELinux ポリシーの設定に応じて、攻撃者のリソースへのアクセスと、攻撃者が行う可能性のある損害は制限されます。以下の例は、独自のドメインで実行している PostgreSQL プロセスを示しています。この例では、postgresql-server がインストールされていることを前提としています。
- getenforce コマンドを実行して、SELinux が Enforcing モードで実行されていることを確認します。
~]$ getenforce EnforcingSELinux が Enforcing モードで実行されていると、このコマンドはEnforcingを返します。 - root で次のコマンドを入力して、
postgresqlを起動します。~]# 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 postgresqlプロセスを表示するには、次のコマンドを実行します。~]$ 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 postmasterpostgresqlプロセスに関連付けられた SELinux コンテキストはsystem_u:system_r:postgresql_t:s0です。文脈の最後の部分であるpostgresql_tはタイプです。タイプは、プロセスのドメインとファイルのタイプを定義します。この例では、postgresqlプロセスがpostgresql_tドメインで実行しています。