4.6. ブール値
ブール値を使用すると、SELinux ポリシーの記述に関する知識がなくても、SELinux ポリシーの一部をランタイム時に変更できます。これにより、SELinux ポリシーの再読み込みや再コンパイルを行わずに、サービスが NFS ボリュームにアクセスするのを許可するなどの変更が可能になります。
4.6.1. ブール値のリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ブール値のリストの場合、それぞれが何であるかの説明と、そのものがオンまたはオフであるかどうかを確認するには、Linux root ユーザーとして semanage boolean -l コマンドを実行します。以下の例は、簡潔化のために出力が短くしているので、すべてのブール値をリスト表示していません。
~]# semanage boolean -l
SELinux boolean State Default Description
smartmon_3ware (off , off) Determine whether smartmon can...
mpd_enable_homedirs (off , off) Determine whether mpd can traverse...
注記
より詳細な説明を取得するには、selinux-policy-devel パッケージをインストールします。
SELinux boolean 列には、ブール値名がリスト表示されます。Description コラムには、ブール値がオンまたはオフであるかと、その実行内容が記載されています。
getsebool -a コマンドはブール値 (on または off) をリスト表示しますが、それぞれの説明は表示されません。以下の例は、すべてのブール値をリスト表示していません。
~]$ getsebool -a
cvs_read_shadow --> off
daemons_dump_core --> on
getsebool boolean-name コマンドを実行して、boolean-name ブール値のステータスのみをリスト表示します。
~]$ getsebool cvs_read_shadow
cvs_read_shadow --> off
スペースで区切られたリストを使用して、複数のブール値をリストします。
~]$ getsebool cvs_read_shadow daemons_dump_core
cvs_read_shadow --> off
daemons_dump_core --> on
4.6.2. ブール値の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
setsebool boolean_name on/off 形式の
setsebool ユーティリティーを実行し、ブール値を有効または無効にします。
以下の例は、
httpd_can_network_connect_db ブール値の設定を示しています。
手順4.5 ブール値の設定
- デフォルトでは、
httpd_can_network_connect_dbブール値はオフになっています。Apache HTTP Server スクリプトおよびモジュールがデータベースサーバーに接続できません。~]$ getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> off - Apache HTTP Server スクリプトおよびモジュールがデータベースサーバーに一時的に接続できるようにするには、root で以下のコマンドを入力します。
~]# setsebool httpd_can_network_connect_db on getseboolユーティリティーを使用して、ブール値が有効であることを確認します。~]$ getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> onこれにより、Apache HTTP Server スクリプトおよびモジュールはデータベースサーバーに接続できます。- この変更は、再起動後は維持されません。再起動後も変更を永続化するには、root で setsebool -P boolean-name on コマンドを実行します。[3]
~]# setsebool -P httpd_can_network_connect_db on
4.6.3. シェル自動完了 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
getsebool ユーティリティー、setsebool ユーティリティー、および semanage ユーティリティーを使用すると、シェルの自動完了を使用できます。getsebool と setsebool のオートコンプリートを使用して、コマンドラインパラメーターとブール値の両方を完了します。コマンドラインパラメーターのみをリスト表示するには、コマンド名の後にハイフン文字 ("-") を追加して、Tab キーを押します。
~]# setsebool -[Tab]
-P
ブール値を完了するには、ブール値名の記述を開始して Tab キーを押します。
~]$ getsebool samba_[Tab]
samba_create_home_dirs samba_export_all_ro samba_run_unconfined
samba_domain_controller samba_export_all_rw samba_share_fusefs
samba_enable_home_dirs samba_portmapper samba_share_nfs
~]# setsebool -P virt_use_[Tab]
virt_use_comm virt_use_nfs virt_use_sanlock
virt_use_execmem virt_use_rawip virt_use_usb
virt_use_fusefs virt_use_samba virt_use_xserver
semanage ユーティリティーは、複数のコマンドライン引数で 1 つずつ完了したもので使用されます。semanage コマンドの最初の引数はオプションです。これは、マネージドの SELinux ポリシーの一部を指定します。
~]# semanage [Tab]
boolean export import login node port
dontaudit fcontext interface module permissive user
次に、1 つ以上のコマンドラインパラメーターに従います。
~]# semanage fcontext -[Tab]
-a -D --equal --help -m -o
--add --delete -f -l --modify -S
-C --deleteall --ftype --list -n -t
-d -e -h --locallist --noheading --type
最後に、ブール値、SELinux ユーザー、ドメインなどの特定の SELinux エントリーの名前を入力します。エントリーの入力を開始して、Tab キーを押します。
~]# semanage fcontext -a -t samba<tab>
samba_etc_t samba_secrets_t
sambagui_exec_t samba_share_t
samba_initrc_exec_t samba_unconfined_script_exec_t
samba_log_t samba_unit_file_t
samba_net_exec_t
コマンドラインパラメーターは、以下のコマンドでチェーンできます。
~]# semanage port -a -t http_port_t -p tcp 81
[3]
一時的にデフォルトの動作に戻すには、Linux の root ユーザーとして setsebool httpd_can_network_connect_db off コマンドを実行します。再起動後も維持される変更の場合は、setsebool -P httpd_can_network_connect_db off コマンドを実行します。