マルチレベルの ZFS データセットには、異なるラベルのファイルとディレクトリが含まれます。ファイルとディレクトリにはそれぞれ個別にラベルが付けられ、ファイルの移動やコピーを行うことなくラベルを変更することができます。ファイルのラベルは、データセットのラベル範囲内で変更できます。マルチレベルのデータセットの作成と共有については、マルチレベルのデータセットを作成および共有する方法を参照してください。
通常は、データセット内のすべてのファイルとディレクトリに、データセットがマウントされているゾーンと同じラベルが付けられます。このラベルは、データセットがゾーン内で最初にマウントされたときに、mlslabel という ZFS プロパティーに自動的に記録されます。このようなデータセットはシングルレベルのラベル付きデータセットです。データセットがマウントされている間は mlslabel プロパティーを変更することはできないため、マウント先ゾーンは mlslabel プロパティーを変更できません。
mlslabel プロパティーが設定されたあとは、ゾーンのラベルがデータセットの mlslabel プロパティーと一致しないかぎり、ゾーン内でデータセットを読み取り/書き込み権付きでマウントすることはできません。さらに、大域ゾーンも含めいずれかのゾーンに現在 ZFS マウントされているデータセットは、ほかのゾーンに ZFS マウントできません。シングルレベルのラベル付きデータセットに含まれるファイルのラベルは固定なので、setlabel コマンドでファイルのラベルを変更すると、ファイルはターゲットラベルに対応するプライマリゾーン内の同等のパス名に実際に移動されます。このようなゾーン間の移動は、効率の低下や混乱を招くことがあります。マルチレベルのデータセットは、データのラベルを変更するための効率のよいコンテナになります。
大域ゾーンにマウントされたマルチレベルのデータセットの場合、mlslabel プロパティーのデフォルト値は ADMIN_HIGH です。この値は、データセットのラベル範囲の上限を指定します。より低いラベルを指定した場合、ゾーンからデータセットに書き込むことができるのは、そのゾーンのラベルよりも mlslabel プロパティーのほうが優位である場合だけです。
Object Label Management 権利プロファイルが割り当てられたユーザーまたは役割には、自分が DAC アクセス権を持っているファイルやディレクトリを、アップグレードまたはダウングレードする適切な特権があります。手順については、ユーザーによるデータのセキュリティーレベルの変更を有効にするを参照してください。
ユーザープロセスに対しては、追加のポリシー制約が適用されます。
デフォルトでは、ラベル付きゾーンのプロセスはファイルやディレクトリのラベルを変更できません。ラベル変更を有効にするには、ラベル付きゾーンからファイルに再ラベル付けできるようにするを参照してください。ファイルのダウングレードは許可するがアップグレードは許可しないなど、より詳細な制御を指定するには、Example 13–5 を参照してください。
ディレクトリが空でない場合、そのラベルを変更することはできません。
ファイルおよびディレクトリは、それを含んでいるディレクトリのラベルより下にダウングレードすることはできません。
ラベルを変更するには、下位レベルのディレクトリにファイルを移動してから、ラベルを変更します。
データセットをマウントしているゾーンは、ファイルやディレクトリをゾーンのラベルより上にアップグレードすることはできません。
ファイルがいずれかのゾーンでプロセスによって現在開かれている場合、そのラベルを変更することはできません。
ファイルおよびディレクトリは、データセットの mlslabel 値より上にアップグレードできません。