Oracle Solaris ZFS 管理ガイド

zoned プロパティーについて

データセットを非大域ゾーンに委任するときに、特定のプロパティーが大域ゾーンのコンテキストで解釈されないように、データセットに特別な設定を行う必要があります。データセットが非大域ゾーンに委任され、ゾーン管理者の制御下に入ると、その内容は信頼できる状態ではなくなります。どのファイルシステムにも該当することですが、setuid バイナリやシンボリックリンクなどの安全性に問題のある内容が含まれていることがあります。これらは、大域ゾーンのセキュリティーを低下させる可能性があります。また、mountpoint プロパティーは、大域ゾーンのコンテキストでは解釈できません。さらに、ゾーン管理者が大域ゾーンの名前空間を操作してしまう可能性もあります。後者の問題に対処するために、ZFS では zoned プロパティーを使って、データセットがある時点で非大域ゾーンに委任されていることを示しています。

zoned プロパティーはブール値で、ZFS データセットを含むゾーンが最初に起動するときに自動的にオンに設定されます。ゾーン管理者が、このプロパティーを手動でオンに設定する必要はありません。zoned プロパティーを設定した場合、そのデータセットを大域ゾーンでマウントしたり共有したりすることはできません。次の例では、tank/zone/zion はゾーンに委任されていますが、tank/zone/global は追加されていません。


# zfs list -o name,zoned,mountpoint -r tank/zone
NAME                  ZONED  MOUNTPOINT
tank/zone/global        off  /tank/zone/global
tank/zone/zion           on  /tank/zone/zion
# zfs mount
tank/zone/global           /tank/zone/global
tank/zone/zion             /export/zone/zion/root/tank/zone/zion

mountpoint プロパティーと、tank/zone/zion データセットが現在マウントされているディレクトリとが異なっていることに注意してください。mountpoint プロパティーには、データセットがシステム上で現在マウントされている場所ではなく、ディスクに格納されているプロパティーが反映されます。

データセットがゾーンから削除されたり、ゾーンが破棄されたりした場合でも、zoned プロパティーが自動的に消去されることはありません。これらの操作に関連するセキュリティー上の危険が潜在的に存在するために、このような動作になっています。信頼されないユーザーがデータセットとその子孫へのアクセスを完了してしまっているので、mountpoint プロパティーが不正な値に設定されたり、ファイルシステムに setuid バイナリが存在したりする可能性があります。

意図しないセキュリティー上の危険を防ぐために、データセットをなんらかの方法で再利用する場合には、大域ゾーン管理者が zoned プロパティーを手動で消去する必要があります。zoned プロパティーを off に設定する前に、データセットおよびそのすべての子孫の mountpoint プロパティーが適切な値に設定されていること、および setuid バイナリが存在しないことを確認するか、または setuid プロパティーを無効に設定します。

セキュリティーが脆弱なままでないことを確認したあとで、zfs set または zfs inherit コマンドを使用して zoned プロパティーをオフに設定できます。データセットがゾーンで使用されているときに zoned プロパティーをオフに設定すると、システムが予期しない動作をする可能性があります。このプロパティーを変更するのは、データセットが非大域ゾーンで使用されていないことを確認した場合にのみ行なってください。