zfs
Komutlardan kaynaklanan izin sorunlarını giderirken , zfs
işlemi bileşen adımları açısından analiz edin.
zfs receive -duvF
Paket açma örnek komut birkaç adımda. Bu bayraklardan ikisi özel izinlerle ilgili değildir:
-d yeni veri kümesinin (varsa) adlandırılmasını etkiler
-v ayrıntılı çıktı sağlar
Diğer ikisi yapar.
-F, dosya sistemi, alma başlamadan önce artımlı aktarımın ilk anlık görüntüsüne geri alınacağı
anlamına gelir -u, dosya alma işlemi bittikten sonra monte edilmeyeceği anlamına gelir
Benim önsezim geri alma iznini kaçırmış olmanız. Komutunuzdaki -F bayrağı a'nın zfs rollback
gerçekleştirileceğini ve zfs allow
listelemenizin olmadığını gösterir rollback
.
Genel durumda, belirli bir zfs
komut için gerekli izinler hakkında tümdengelimsel tahminler yapılabilir .
Dikkat çeken adam sayfası zfs
:
İzin adları ZFS alt komutuyla ve özellik adlarıyla aynıdır.
ve ...
İzinler genellikle bir ZFS alt komutunu kullanma veya bir ZFS özelliğini değiştirme yeteneğidir. Aşağıdaki izinler kullanılabilir:
NAME TYPE NOTES
allow subcommand Must also have the permission
that is being allowed
clone subcommand Must also have the 'create'
ability and 'mount' ability in
the origin file system
create subcommand Must also have the 'mount'
ability
destroy subcommand Must also have the 'mount'
ability
diff subcommand Allows lookup of paths within a
dataset given an object number,
and the ability to create
snapshots necessary to 'zfs diff'
hold subcommand Allows adding a user hold to a
snapshot
mount subcommand Allows mount/umount of ZFS
datasets
promote subcommand Must also have the 'mount' and
'promote' ability in the origin
file system
receive subcommand Must also have the 'mount' and
'create' ability
release subcommand Allows releasing a user hold
which might destroy the snapshot
rename subcommand Must also have the 'mount' and
'create' ability in the new
parent
rollback subcommand Must also have the 'mount'
ability
send subcommand
share subcommand Allows sharing file systems over
the NFS protocol
snapshot subcommand Must also have the 'mount'
ability
groupquota other Allows accessing any
groupquota@... property
groupused other Allows reading any groupused@...
property
userprop other Allows changing any user property
userquota other Allows accessing any
userquota@... property
userused other Allows reading any userused@...
property
aclinherit property
aclmode property
atime property
canmount property
casesensitivity property
checksum property
compression property
copies property
dedup property
devices property
exec property
filesystem_limit property
logbias property
jailed property
mlslabel property
mountpoint property
nbmand property
normalization property
primarycache property
quota property
readonly property
recordsize property
refquota property
refreservation property
reservation property
secondarycache property
setuid property
sharenfs property
sharesmb property
snapdir property
snapshot_limit property
sync property
utf8only property
version property
volblocksize property
volsize property
vscan property
xattr property
Eldeki örnek -u
bayrağı içerir , bu nedenle dosya sistemi alma işleminin sonunda bağlanmaz. Ancak, -u
eksik olsaydı, dosya sistemi alma işleminin sonunda monte edilirdi. Anlaşılır olarak, receive
izin izni gerektirir mount
.
Bir zfs mount
işlem gerekli bağlantı noktalarını otomatik olarak oluşturacağından, kullanıcının zfs
veri kümesini bağlama iznine sahip olması ancak bağlantı noktasını oluşturmak için dosya sistemi izinlerine sahip olmaması mümkündür. Durumunda, zfs mount
montaj başarısız olur. A zfs create
veya rename
işleminde, dosya sistemi oluşturulur veya yeniden adlandırılır, ancak kullanıcının bağlama noktasını oluşturmak için yeterli dosya sistemi izinleri yoksa bu bağlantı kaldırılır.
Benzer şekilde, bir zfs rename
komut yeniden adlandırma işlemi içindeki çeşitli noktalarda izin eksikliği nedeniyle başarısız olabilir. Gevşek olarak ifade edildiğinde, bileşen adımları şöyle olabilir:
1) dosya sisteminin bağlantısını kesin ( mount
izin)
2) yeni bir dosya sistemi oluşturun ( create
izin)
3) dosya sistemi meta verilerini yeni adla eşleyin ( rename
izin)
Dördüncü adım, yeni adlandırılmış dosya sistemini yeniden mount
izin ve muhtemelen dosya sistemi izinlerini kullanan yeni bağlama noktasında yeni bağlama noktasını yeniden oluşturmaktır.
Bu tür hileleri test etmedim, ancak izinler ile izinler arasında ve aynı zamanda ve izinler zfs
arasında ayrım yapan görülebilir . Biri, bir kullanıcının yeni dosya sistemleri oluşturmasına izin vermek mümkün olabilir, ancak bir kez oluşturulduktan sonra kullanıcı onları yeniden adlandıramaz. Adlandırma olduğu gibi, dosya sisteminin mountpoint yeniden adlandırır genellikle aynı zamanda bir dosya sistemi yeniden adlandırma kalıtsal mountpoints ile dosya sistemleri için için gelen değişikliklere mountpoint için .create
rename
mount
mountpoint
tank/usr/local
tank/usr/local.OLD
/usr/local
/usr/local.OLD
Ayrılması mount
veya rename
gelen mountpoint
bir kullanıcı bir dosya sistemini yeniden adlandırmak için izin ancak mountpoint değiştirmesine izin verilmez olabilir izinler aracı. Ya da tam tersi, bir dosya sisteminin monte edildiği yeri değiştirebilmek, ancak dosya sisteminin adını değiştirememek.
Dosya sistemi işlemlerinin zenginliği ve bu işlemlerin devri, izinlerin ayrıntılarıyla birleştiğinde, zfs
biraz zorlayıcı olabilir, ancak aynı zamanda çok güçlü olabilir.