Oracle Solaris ZFS-Administrationshandbuch

Informationen zur Eigenschaft zoned

Beim Delegieren eines Datasets an eine nicht-globale Zone muss dieses Dataset entsprechend gekennzeichnet werden, sodass bestimmte Eigenschaften nicht im Kontext der globalen Zone interpretiert werden. Nachdem ein Dataset an eine nicht-globalen Zone delegiert wurde und unter der Kontrolle eines Zonenadministrators ist, ist dessen Inhalt nicht mehr vertrauenswürdig. Wie bei anderen Dateisystemen auch können setuid-Binärdateien, symbolische Verknüpfungen oder andere fragwürdige Inhalte auftreten, die sich negativ auf die Sicherheit der globalen Zone auswirken. Darüber hinaus kann die Eigenschaft mountpoint nicht im Kontext der globalen Zone interpretiert werden, da der Zonenadministrator andernfalls den Namensplatz der globalen Zone ändern kann. Zur Lösung des letzteren Problems nutzt ZFS die Eigenschaft zoned, die anzeigt, dass ein Dataset zu einem bestimmten Zeitpunkt an eine nicht-globale Zone delegiert wurde.

Die Eigenschaft zoned ist ein boolescher Wert, der beim Booten einer Zone, die ein ZFS-Dataset enthält, automatisch auf „true” gesetzt wird. Diese Eigenschaft muss vom Zonenadministrator nicht manuell gesetzt werden. Wenn die Eigenschaft zoned gesetzt ist, kann das Dataset in der globalen Zone nicht eingehängt bzw. für den Netzwerkzugriff freigegeben werden. Im folgenden Beispiel wurde tank/zone/zion an eine Zone delegiert und tank/zone/global nicht:


# 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

Bitte beachten Sie den Unterschied zwischen der Eigenschaft mountpoint und dem Verzeichnis, in das das Dataset tank/zone/zion gegenwärtig eingehängt ist. Die Eigenschaft mountpoint zeigt an, wo das Dataset auf dem Datenträger gespeichert ist, und nicht, wo es gegenwärtig eingehängt ist.

Beim Entfernen eines Datasets aus einer Zone bzw. Löschen einer Zone wird die Eigenschaft zoned nicht automatisch auf „false” zurückgesetzt. Dieses Verhalten resultiert aus den diesen Aufgaben innewohnenden Sicherheitsrisiken. Da ein nicht vertrauenswürdiger Benutzer vollständigen Zugriff auf das Dataset und seine untergeordneten Datasets hatte, kann die Eigenschaft mountpoint auf ungültige Werte gesetzt worden sein oder es können in den Dateisystemen setuid-Binärdateien vorhanden sein.

Zum Vermeiden versehentlicher Sicherheitsrisiken muss die Eigenschaft zoned vom Administrator der globalen Zone manuell zurückgesetzt werden, wenn das betreffende Dataset wiederverwendet werden soll. Bevor Sie die Eigenschaft zoned auf off setzen, müssen Sie sich vergewissern, dass die Eigenschaft mountpoint des Datasets und aller seiner untergeordneten Datasets auf zulässige Werte gesetzt ist und keine setuid-Binärdateien vorhanden sind, oder die Eigenschaft setuid deaktivieren.

Nachdem Sie sich überzeugt haben, dass keine Sicherheitslücken vorhanden sind, können Sie die Eigenschaft zoned mithilfe des Befehls zfs set oder zfs inherit deaktivieren. Wenn die Eigenschaft zoned deaktiviert wird, wenn das betreffende Dataset innerhalb einer Zone verwendet wird, kann das System unvorhersehbar reagieren. Deswegen sollten Sie den Wert dieser Eigenschaft nur dann ändern, wenn Sie sich sicher sind, dass das Dataset nicht mehr von einer nicht-globalen Zone verwendet wird.