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