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 コマンドはブール値を一覧表示し、オンかオフかを表示しますが、個別の説明はありません。以下の例は、すべてのブール値を表示しているわけではありません。
~]$ 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 ユーティリティーを setsebool boolean_name on/off の形式で実行します。
以下の例では、httpd_can_network_connect_db ブール値の設定を示しています。

手順4.5 ブール値の設定

  1. デフォルトでは、httpd_can_network_connect_db ブール値はオフになっていて、Apache HTTP Server スクリプトとモジュールがデータベースサーバーに接続できないようにしています。
    ~]$ getsebool httpd_can_network_connect_db
    httpd_can_network_connect_db --> off
  2. Apache HTTP Server スクリプトとモジュールが一時的にデータベースサーバーに接続できるようにするには、root で以下のコマンドを実行します。
    ~]# setsebool httpd_can_network_connect_db on
  3. ブール値が有効になったことを確認するには、getsebool ユーティリティーを使用します。
    ~]$ getsebool httpd_can_network_connect_db
    httpd_can_network_connect_db --> on
    これで Apache HTTP Server スクリプトとモジュールがデータベースサーバーに接続できます。
  4. この変更は再起動後には維持されません。再起動後も変更を維持するには、root で setsebool -P boolean-name on コマンドを実行します[3]
    ~]# setsebool -P httpd_can_network_connect_db on

4.6.3. Shell のオートコンプリート機能

getseboolsetseboolsemanage の各ユーティリティーでは Shell のオートコンプリート機能を使用することができます。getseboolsetsebool では、コマンドラインパラメーターとブール値にオートコンプリート機能が使用可能です。コマンドラインパラメーターのみを一覧表示するには、コマンド名の後にハイフン記号 ("-") を付けて、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 ユーティリティーは複数のコマンドライン引数と使用され、これらはひとつずつ記入されます。semanage コマンドの最初の引数はオプションで、SELinux ポリシーのどの部分を管理するかを指定します。
~]# semanage [Tab]
boolean     export      import      login       node        port
dontaudit   fcontext    interface   module      permissive  user
その後にコマンドラインパラメーターが続きます。
~]# 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 コマンドを実行します。