zfs
आदेश से उत्पन्न होने वाली अनुमति समस्याओं का निवारण zfs
करते समय, इसके घटक चरणों के संदर्भ में ऑपरेशन का विश्लेषण करें।
zfs receive -duvF
कई चरणों में अनपैक का नमूना आदेश । उनमें से दो झंडे किसी विशेष अनुमति से संबंधित नहीं हैं:
-d नए डेटासेट के नामकरण को प्रभावित करता है (यदि कोई हो)
-v वर्बोज़ आउटपुट को सक्षम करता है
अन्य दो करते हैं।
-F का मतलब है कि फाइलसिस्टम को शुरू होने से पहले वृद्धिशील हस्तांतरण के प्रारंभिक स्नैपशॉट में वापस ले लिया
जाएगा -उ का अर्थ है कि फाइल सिस्टम को प्राप्त होने के बाद माउंट नहीं किया जाएगा।
मेरा कूबड़ यह है कि आपको रोलबैक अनुमति याद आ रही है। आपके आदेश में -F ध्वज का अर्थ है कि एक zfs rollback
प्रदर्शन किया जाएगा, और आपकी zfs allow
सूची नहीं है rollback
।
सामान्य स्थिति में, व्यक्ति किसी दिए गए zfs
आदेश के लिए आवश्यक अनुमतियों के बारे में कटौती कर सकता है ।
zfs
अंक के लिए मैन पेज :
अनुमति नाम ZFS उप-क्षेत्र और संपत्ति के नाम के समान हैं।
तथा ...
अनुमतियाँ आम तौर पर ZFS उप-क्षेत्र का उपयोग करने या ZFS गुण बदलने की क्षमता होती है। निम्नलिखित अनुमतियाँ उपलब्ध हैं:
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
हाथ में उदाहरण में -u
ध्वज शामिल है , इसलिए फ़ाइल सिस्टम को प्राप्त ऑपरेशन के अंत में माउंट नहीं किया जाएगा। हालांकि, यदि -u
अनुपस्थित थे, तो फ़ाइल सिस्टम को प्राप्त करने की प्रक्रिया के अंत में माउंट किया जाएगा। बता दें, receive
अनुमति के लिए अनुमति की आवश्यकता होती है mount
।
क्योंकि एक zfs mount
ऑपरेशन किसी भी आवश्यक माउंटपॉइंट को ऑटो-क्रिएट करेगा, उपयोगकर्ता के लिए zfs
डेटासेट माउंट करने की अनुमति होना संभव है , लेकिन माउंटपॉइंट बनाने के लिए फाइल सिस्टम अनुमति नहीं है। के मामले में zfs mount
, माउंट विफल हो जाएगा। एक zfs create
या rename
ऑपरेशन में, फ़ाइल सिस्टम बनाया जाएगा या नाम बदला जाएगा, लेकिन उपयोगकर्ता के पास माउंटपॉइंट बनाने के लिए पर्याप्त फ़ाइल सिस्टम अनुमतियाँ नहीं होने पर यह अनमना रह जाएगा।
इसी तरह, zfs rename
नाम बदलने की कार्रवाई के दौरान कई बिंदुओं पर अनुमतियों की कमी के लिए एक आदेश विफल हो सकता है। शिथिल रूप से व्यक्त, घटक चरण हो सकते हैं:
1) फाइल सिस्टम को अनमाउंट करें ( mount
अनुमति)
2) एक नया फाइल सिस्टम ( create
अनुमति ) बनाएं
3) फाइल सिस्टम मेटा-डेटा को नए नाम ( rename
अनुमति) में मैप करें
एक चौथा चरण अपने नए, संभवतः बदले हुए माउंटपॉइंट पर नए नाम वाले फाइल सिस्टम को फिर से माउंट करना है, जो फिर से mount
अनुमति का उपयोग करता है , और संभवत: नए माउंटपॉइंट को बनाने के लिए फाइलसिस्टम की अनुमति देता है।
मैंने इस तरह की चालों का परीक्षण नहीं किया है, लेकिन यह देखा जा सकता है कि zfs
दोनों के बीच create
और rename
अनुमतियों में अंतर है , mount
और mountpoint
अनुमतियों के बीच भी । कोई कल्पना करता है कि किसी उपयोगकर्ता को नए फाइल सिस्टम बनाने की अनुमति देना संभव हो सकता है, लेकिन एक बार निर्मित होने के बाद, उपयोगकर्ता उनका नाम नहीं बदल सकता है। विरासत में मिला mountpoints साथ फ़ाइल सिस्टम, एक फाइल सिस्टम का नाम बदलने अक्सर भी फाइल सिस्टम के माउंटप्वाइंट नाम बदलें, जब नाम बदलने के रूप में होगा tank/usr/local
करने के लिए tank/usr/local.OLD
से परिवर्तन माउंटप्वाइंट /usr/local
लिए /usr/local.OLD
।
अनुमतियों से mount
या rename
से अलग होने का mountpoint
मतलब है कि किसी उपयोगकर्ता को किसी फ़ाइल सिस्टम का नाम बदलने की अनुमति दी जा सकती है लेकिन उसके माउंटपॉइंट को बदलने की अनुमति नहीं है। या इसके विपरीत, यह बदलने में सक्षम होने के लिए जहां एक फाइलसिस्टम माउंट किया गया है, लेकिन फाइलसिस्टम के नाम को बदलने में सक्षम नहीं है।
इसकी फाइलसिस्टम ऑपरेशंस की समृद्धि और उन ऑपरेशन्स के डेलिगेशन, जो कि अनुमतियों की ग्रैन्युलैरिटी के साथ मिलकर, zfs
कुछ हद तक चुनौतीपूर्ण हो सकते हैं , लेकिन बहुत शक्तिशाली भी।