ドメインポリシー構文
allow_execute
このディレクティブは、指定されたパス名の実行を許可します。
以下の例では /bin/ls
の実行を許可しています:
allow_execute /bin/ls
参照:
allow_read
このディレクティブは、指定されたパス名を読み込みモードでオープンすることを許可します。
以下の例では /proc/meminfo の参照を許可しています:
allow_read /proc/meminfo
参照:
allow_write
このディレクティブは、指定されたパス名を書き込みモードでオープンすることを許可します。
以下の例では /dev/null への書き込みを許可しています:
allow_write /dev/null
参照:
allow_read/write
このディレクティブは、指定されたパス名を読み書きモードでオープンすることを許可します。
以下の例では /dev/null への読み書きを許可しています:
allow_read/write /dev/null
参照:
allow_create
このディレクティブは、指定されたファイルを指定されたパーミッションで作成することを許可します。
以下の例では /var/lock/subsys/crond の作成を許可しています:
allow_create /var/lock/subsys/crond 0644
参照:
allow_unlink
このディレクティブは、指定されたパス名を削除することを許可します。
以下の例では /var/lock/subsys/crond の削除を許可しています:
allow_unlink /var/lock/subsys/crond
参照:
allow_chown
このディレクティブは、指定されたパス名の所有者を指定されたユーザIDに変更することを許可します。
以下の例では /dev/sda の所有者のユーザIDを 0 に設定することを許可しています:
allow_chown /dev/sda 0
参照:
allow_chgrp
このディレクティブは、指定されたパス名のグループを指定されたグループIDに変更することを許可します。
以下の例では /dev/audio のグループのグループIDを 92 に設定することを許可しています:
allow_chgrp /dev/audio 92
参照:
allow_chmod
このディレクティブは、指定されたパス名のパーミッションを指定された数値に変更することを許可します。
以下の例では /dev/mem のパーミッションを 0644 に設定することを許可しています:
allow_chmod /dev/mem 0644
参照:
allow_mkdir
このディレクティブは、指定されたパス名のディレクトリを指定されたパーミッションで作成することを許可します。
以下の例では /tmp/logwatch.\*/ というパターンに一致するディレクトリの作成を許可しています:
allow_mkdir /tmp/logwatch.\*/ 0755
参照:
allow_rmdir
このディレクティブは、指定されたディレクトリを削除することを許可します。
以下の例では /tmp/logwatch.\*/ というパターンに一致するディレクトリの削除を許可しています:
allow_rmdir /tmp/logwatch.\*/
参照:
allow_mkfifo
このディレクティブは、指定されたFIFOを指定されたパーミッションで作成することを許可します。
以下の例では /dev/initctl という名前のFIFOの作成を許可しています:
allow_mkfifo /dev/initctl 0644
参照:
allow_mksock
このディレクティブは、指定されたソケットを指定されたパーミッションで作成することを許可します。
以下の例では /dev/log という名前のソケットの作成を許可しています:
allow_mksock /dev/log 0755
参照:
allow_mkblock
このディレクティブは、指定されたブロックデバイスを指定されたパーミッションおよびメジャー番号/マイナー番号で作成することを許可します。
以下の例では /dev/loop0 というブロックデバイスの作成を許可しています:
allow_mkblock /dev/loop0 0600 7 0
参照:
allow_mkchar
このディレクティブは、指定されたキャラクタデバイスを指定されたパーミッションおよびメジャー番号/マイナー番号で作成することを許可します。
以下の例では /dev/console というキャラクタデバイスの作成を許可しています:
allow_mkchar /dev/console 0755 5 1
参照:
allow_truncate
このディレクティブは、指定されたパス名を切り詰めたり伸長したりすることを許可します。
以下の例では /etc/mtab を切り詰めることを許可しています:
allow_truncate /etc/mtab
参照:
allow_symlink
このディレクティブは、指定されたシンボリックリンクを作成することを許可します。
以下の例では /dev/cdrom というシンボリックリンクの作成を許可しています:
allow_symlink /dev/cdrom
参照:
allow_link
このディレクティブは、1番目に指定されたパス名と2番目に指定されたパス名とでハードリンクを作成することを許可します。
以下の例では /etc/mtab~\$ というパターンに一致するパス名と /etc/mtab~ というパス名とでハードリンクを作成することを許可しています:
allow_link /etc/mtab~\$ /etc/mtab~
参照:
allow_rename
このディレクティブは、1番目に指定されたパス名から2番目に指定されたパス名にリネームすることを許可します。
以下の例では /etc/mtab.tmp というパス名を /etc/mtab というパス名にリネームすることを許可しています:
allow_rename /etc/mtab.tmp /etc/mtab
参照:
allow_rewrite
このディレクティブは deny_rewrite ディレクティブの効果を打ち消すために使用します。
以下の例では deny_rewrite /var/log/\* という指定を打ち消しています:
allow_rewrite /var/log/\*
参照:
allow_ioctl
このディレクティブは、指定されたパス名に対して指定されたコマンド番号の ioctl 要求を行うことを許可します。 ioctl のコマンド番号については、対象となるモジュールの ioctl 機能の説明を参照してください。
以下の例ではファミリーが2、タイプが2、プロトコルが17のソケット(UDP/IPv4ソケット)に対して、 0x8915 番の ioctl 要求( SIOCGIFADDR 要求)を行うことを許可しています:
allow_ioctl socket:[family=2:type=2:protocol=17] 0x8915
以下の例では /dev/null に対して 10000 ~ 20000 番の ioctl 要求を行うことを許可しています:
allow_ioctl /dev/null 10000-20000
参照:
allow_mount
このディレクティブは、指定されたデバイス/ファイルシステムタイプ/マウントオプションで指定されたマウントポイントにマウントすることを許可します。
構文は allow_mount $DEVICE $MOUNTPOINT $FILESYSTEM $OPTIONS です。 $FILESYSTEM がデバイスファイルを必要とする場合、 $DEVICE にはデバイスファイルを指定します。 $OPTIONS は16進数(または8進数/10進数)の整数です。 $FILESYSTEM には以下の値も指定できます:
- --bind
- --move
- --remount
- --make-unbindable
- --make-private
- --make-slave
- --make-shared
以下の例では / ディレクトリの再マウントを許可しています:
allow_mount any / --remount 0x0
以下の例では ext3 ファイルシステムとしてフォーマットされた /dev/hdc を /var/www/ ディレクトリにマウントすることを許可しています:
allow_mount /dev/hdc /var/www/ ext3 0xF
以下の例では /dev/shm/ ディレクトリに tmpfs ファイルシステムをマウントすることを許可しています:
allow_mount none /dev/shm/ tmpfs 0xE
参照:
allow_unmount
このディレクティブは、指定されたパス名をアンマウントすることを許可します。
以下の例では /mnt/cdrom/ ディレクトリをアンマウントすることを許可しています:
allow_unmount /mnt/cdrom/
参照:
allow_chroot
このディレクティブは、指定されたパス名を新しい / ディレクトリに設定することを許可します。
以下の例では /var/empty/sshd/ を新しい / ディレクトリに設定することを許可しています:
allow_chroot /var/empty/sshd/
参照:
allow_pivot_root
このディレクティブは、1番目に指定されたパス名を新しい / ディレクトリに設定し、古い / ディレクトリを2番目に指定されたパス名へと移動させることを許可します。
この機能は通常、 initrd/initramfs が使用していた / ディレクトリからハードディスクが使用する / ディレクトリへと切り替えるために1回だけ呼ばれます。この機能は通常、 TOMOYO Linux が有効にされるよりも前に呼び出されるため、このディレクティブが必要になることは滅多にありません。
以下の例では /sys/kernel/security/ を新しい / ディレクトリに設定し、古い / ディレクトリを /sys/kernel/security/tomoyo/ に移動させることを許可しています:
allow_pivot_root /sys/kernel/security/ /sys/kernel/security/tomoyo/
参照:
use_profile
このディレクティブは、ドメインに対して適用されるプロファイル番号を指定します。
以下の例ではドメインに対してプロファイル 3 を割り当てています:
use_profile 3
ignore_global_allow_read
このディレクティブは例外ポリシーで指定された allow_read ディレクティブの効果を打ち消すために使用します。
参照:
quota_exceeded
このディレクティブは、ドメインに対するアクセス許可の数がプロファイルの max_entry で指定された数に達したために、学習モードにおいて自動的に追加できなかったアクセス許可があることを示しています。
transition_failed
このディレクティブは、プログラムの実行要求に対してドメイン遷移を行わないまま処理を継続したことを示しています。
これは、強制モードが割り当てられない限り TOMOYO が原因でアクセス拒否が発生しないようにするために、強制モードではない場合にはドメイン遷移に失敗してもプログラムの実行要求を受け入れるようにしているために発生します。ドメイン遷移が失敗する原因としては、ドメイン名が長すぎたか、ドメインを作成するためのメモリを割り当てられなかったかのどちらかです。この問題を修正するには、ドメイン遷移を抑制するか、 TOMOYO が使ってよいメモリ使用量の上限を増やしてください。