Zfs: دعم NFS / POSIX ACL

تم إنشاؤها على ٢٣ مارس ٢٠١١  ·  51تعليقات  ·  مصدر: openzfs/zfs

سيكون من الجيد الحصول على دعم POSIX ACL.
كما أرى zfs لديها بالفعل دعم xattr وبعض أنظمة الملفات الأخرى جعلت دعم ACL عبر xattr. لا أعرف الجوانب الداخلية ، ولكن قد تكون هذه المهمة سهلة التنفيذ.

Feature

التعليق الأكثر فائدة

تم تطبيق Posix ACL على غرار Linux باعتباره xattr ودمجها لإتقانها. يتم تخزينها بشكل مستقل عن قوائم NFS الأصلية ولن تتعارض. تمت إضافة نوع acltype لخاصية مجموعة البيانات الجديدة لتمكين هذه الوظيفة. للحصول على أفضل أداء ، نشجعك بشدة على تعيين كل من نوع acltype = posixacl و xattr = sa . لمزيد من التفاصيل ، راجع صفحة الدليل المحدثة:

       acltype=noacl | posixacl

           Controls  whether  ACLs  are  enabled and if so what type of ACL to
           use.  When a file system has the acltype property set to noacl (the
           default)  then  ACLs are disabled.  Setting the acltype property to
           posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
           cific  to  Linux  and are not functional on other platforms.  Posix
           ACLs are stored as an xattr and therefore will  not  overwrite  any
           existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
           are supported on Linux.

           To obtain the best performance  when  setting  posixacl  users  are
           strongly encouraged to set the xattr=sa property.  This will result
           in the Posix ACL being stored more efficiently on disk.  But  as  a
           consequence of this all new xattrs will only be accessable from ZFS
           implementations which support the xattr=sa property.  See the xattr
           property for more details.

ال 51 كومينتر

الأمور للأسف أكثر تعقيدًا قليلاً مما تبدو عليه لأول مرة.

داخليًا ، يدعم ZFS بشكل كامل ويفرض قوائم التحكم في الوصول بأسلوب NFS. لسوء الحظ ، في نظام Linux ، تتعامل الأدوات الحالية فقط مع قوائم التحكم في الوصول بأسلوب Posix. تم إنجاز بعض الأعمال لجلب نموذج NFS ACL إلى Linux تحت اسم Rich-ACLs. للتكامل مع سلسلة أدوات Rich-ACL الجديدة ، يحتاج ZFS إلى توفير واجهة نظام افتراضي .richacl xattr. لن يتم تخزين هذا xattr مثل xattrs الأخرى ولكنه بدلاً من ذلك يتكامل مع zfs_getacl () و zfs_setacl (). سيكون خطاف xattr هذا مسؤولاً عن ترجمة vsecattr_t من وإلى تدفق خطي للبايتات لـ xattr.

يمكن دعم Posix ACLs بسهولة عن طريق إضافة عدد قليل من الخطافات والاستفادة من وظائف دعم Posix ACL الحالية. ومع ذلك ، قد يكون من الأفضل عدم تنفيذها لتجنب مشاكل الاتساق بين Posix و Rich ACLs (NFS / ZFS).

شكرا لك على الوصف. أعتقد أن POSIX ACL يمكن أن يكون مفيدًا أيضًا إذا كان هناك بعض التطبيقات التي تدعم POSIX ACLs. كما أتذكر سامبا لديها شيء من هذا القبيل. rsync لديه دعم ACL ، لكنني لست متأكدًا من أنه POSIX فقط ، لأن الرجل يقول فقط "ACL". لا تعرف عن التطبيقات الأخرى.
أريد فقط أن أقول إنهم ليسوا عديمي الفائدة حتى مع وجود قوائم ACL أخرى. ويمكن اعتبار أن يتم تنفيذها في المستقبل.

ملخص العمل المطلوب

داخليًا ، يدعم ZFS بشكل كامل ويفرض قوائم التحكم في الوصول بأسلوب NFS. لسوء الحظ ، في نظام Linux ، تتعامل الأدوات الحالية فقط مع قوائم التحكم في الوصول بأسلوب Posix. تم إنجاز بعض الأعمال لإحضار نموذج NFS ACL إلى Linux تحت اسم Rich-ACLs (pdf). للتكامل مع سلسلة أدوات Rich-ACL الجديدة ، يحتاج ZFS إلى توفير واجهة نظام افتراضي .richacl xattr. لن يتم تخزين هذا xattr مثل xattrs الأخرى ولكنه بدلاً من ذلك يتكامل مع zfs_getacl () و zfs_setacl (). سيكون خطاف xattr هذا مسؤولاً عن ترجمة vsecattr_t من وإلى تدفق خطي للبايتات لـ xattr.

يمكن دعم Posix ACLs بسهولة عن طريق إضافة عدد قليل من الخطافات والاستفادة من وظائف دعم Posix ACL الحالية. ومع ذلك ، قد يكون من الأفضل عدم تنفيذها لتجنب مشاكل الاتساق بين Posix و Rich ACLs (NFS / ZFS).

ماذا عن خاصية mount / file-system حول أي نموذج أمان يجب فرضه؟ (وربما الآخر مخفي تمامًا حتى من أدوات الإدارة ، مثل setfacl / getfacl).
في عالم Linux ، لا يتم استخدام Rich-ACLs تقريبًا. يتم استخدام Posix ACLs بشكل أكبر. في تكويناتي النموذجية ، يعد غياب قوائم التحكم في الوصول (ACL) لنظام الملفات بمثابة أداة عرض.
أعتقد أنه بهذه الطريقة يمكننا الحصول على تطبيق ACL عملي (Posix) في وقت أقل بكثير.

أود أيضًا أن أرى دعم POSIX ACL مدمجًا في ZFS على Linux. Linux هو POSIX ، وحتى تصبح RichACLs أكثر انتشارًا (أو على الأقل في النواة) ، أعتقد أن تكامل POSIX في ZFS على Linux أمر منطقي.

انا احب ان ارى هذا مشمول كان على وشك الظهور لنا ، لكننا قررنا العيش بدونه لبضعة أشهر.

عندما يتم التعامل مع قوائم ACL بشكل نظيف ، يجب أن نتأكد من دمج التصحيح التالي لإعادة إحياء خاصية aclmode. تم إجراء هذا التغيير بالفعل على تطبيقات Illumos و FreeBSD.

المشكلة رقم 742: إحياء خاصية "aclmode" ZFS
https://www.illumos.org/issues/742
https://github.com/illumos/illumos-gate/commit/a3c49ce110f325a563c245bedc4d533adddb7211

من الممكن تعيين Posix <-> NFSv4 ACLs.
لدى IETF مسودة حول هذا التعيين: http://tools.ietf.org/id/draft-ietf-nfsv4-acl-mapping-03.txt
لكنه يحدد بوضوح فقط Posix => NFSv4 (أحادي الاتجاه).

أعتقد أن نهج رسم الخرائط هو الأفضل من الناحية النظرية ، ولكنه أكثر عرضة للخطأ من غيره لأن رسم الخرائط بنسبة 1: 1 غير ممكن.
ستكون هناك دائمًا حالات ركنية يُحرم فيها المستخدم (أو ما هو أسوأ من ذلك) امتيازًا لا يُقصد به رفضه (أو ما هو أسوأ ، منحه).
على الأقل يجب أن يأتي مع "تحذير كبير من الدهون".
لكن ليس من الحكمة أن يكون لديك ميزة _security_ التي _يجب _ أن تقارب ما يجب أن تفعله.
اقتراح: في NFSv4 ACL "ملتبس" لا يسمح بأي وصول وخطأ طباعة في سجل kernel.
مشكلة حول هذا الاقتراح: لا يمكن تصحيح اللقطات يدويًا.
لإعدادهم لا ينبغي أن يكون مشكلة ، حيث يمكن أن ينظر إليه ببساطة على أنه تنسيق "فردي" على القرص لـ Posix ACL.
تخلق وراثة NFSv4 ACL القابلة للتكوين مجموعة أخرى من المشكلات لحلها.

أعتقد أن الخطوة الأولى في هذا التنفيذ يجب أن تكون قادرة على:

  • اكتب قوائم POSIX ACL ، واقرأ ما كتبه وفرضه.
  • اكتبها على القرص كـ NFSv4 ACL حتى تتمكن التطبيقات الأخرى من قراءتها وفرضها على النحو المنشود أيضًا.
  • فشل بصوت عالٍ مع قوائم NFSv4 ACL غير القابلة للتعيين والتي تمت كتابتها بواسطة تطبيقات أخرى.
    ** رفض أي وصول إلى تلك العناصر.
    ** عدم السماح للمستخدمين بإنشاء ملفات في أدلة بعلامات وراثة "معينة"
    ** ربما يكون هناك "سلوك فشل" قابل للتكوين على أساس كل نظام مع القيمة الافتراضية الأكثر أمانًا. (وللقطات ؟؟)

في خطوات متتالية ، يمكن ضبط منطق التعيين NFSv4 => Posix وجعله أكثر قابلية للتخصيص.

أي أفكار أفضل؟

يبدو هذا كمنطلق معقول بالنسبة لي ، فقط بعض التعليقات.

في حين أن التعيين المثالي بنسبة 1: 1 ليس ممكنًا ، فإن الأشياء ليست سيئة للغاية في الواقع. كما أوضحت ، هناك مخطط IETF Posix محدد جيدًا -> تعيين NFSv4 والذي يمكن استخدامه لتعيين قوائم ACL الصحيحة على القرص. بمجرد التعيين على القرص باعتباره SA ، يجب أن يبدأ تطبيق zfs الحالي في فرضها بشكل مستقل عن خطافات Linux ACL العامة في VFS.

ستحتاج بعد ذلك بالطبع إلى تنفيذ بعض NFSv4 المعقولة -> تعيين Posix لقراءة قوائم ACL. ومع ذلك ، توجد بالفعل تطبيقات معقولة لهذا بالفعل. مثال على ذلك خادم Linux nfs kernel الذي تم إجباره على تخزين جميع قوائم ACL NFSv4 الخاصة به على أنها Posix ACLs وهي عملية ضياع. كإجراء جانبي ، على المدى الطويل ، سيكون كشف قائمة التحكم بالوصول (ACL) nfsv4 / zfs أمرًا جيدًا لخادم nfs kernel. من المحتمل أن تتجنب NFSv4 الذي لا طائل من ورائه -> Posix -> تحويل NFSv4.

أخيرًا ، نرغب في الحصول على مجموعة اختبار للتحقق من صحة ذلك. هذه ميزة أمنية بعد كل شيء. لحسن الحظ ، أفهم أن العديد من مجموعات الاختبار الجيدة موجودة بالفعل.

هناك عمل جار على richacls بواسطة Aneesh kumar ، Andreas Gruenbacher حول العمل السابق الذي قام به جريج بانكس. تم إرسال التصحيحات لـ 3.1 mainline مدمجة. ولكن نظرًا لبعض التغييرات ، سيستغرق الأمر وقتًا وسيتم دمجه في الإصدار التالي.
رابط التصحيحات: - https://lkml.org/lkml/2011/10/18/279

بمجرد وصول هذا إلى الخط الرئيسي ، يمكننا الاستفادة منها لدعم nfsv4acls لـ ZFS.

بمجرد وصول هذا إلى الخط الرئيسي ، يمكننا الاستفادة منها لدعم nfsv4acls لـ ZFS.

وماذا عن POSIX ACLs؟ قال برايان أنه ليس من الصعب تنفيذها باستخدام برنامج xattr. هل يمكن أن يتم ذلك من قبل شخص ما ، من فضلك. :)

يدعم ZFS nfsv4acls ، لذا يجب أن نقدم IMHO دعمًا لـ nfsv4acls أولاً ونرى ما إذا كانت هناك حاجة فعلية لـ posix acls. إذا كانت الإجابة بنعم ، فيمكننا معرفة طريقة تحديد التعيين بينهما.

لا أرى أي سبب يمنع القيام بكليهما. يعمل Maxximino حاليًا على دعم واجهة system.posixacl xattr عبر ترجمة موثقة جيدًا. إضافة واجهة system.richacl xattr يمكن دعمها عندما تكون سلسلة أدوات متكاملة وحقيقية متاحة.

"العمل حاليًا" كما تسمح لي المهام المتعلقة بالعمل الأكاديمي ، ولكن في أولوية عالية لوقت "الفراغ".
لقد بحثت بالفعل في كود IllumOs CDDL المرخص ووجدت بعض الكود الذي يقوم بترجمة NFSv4 <-> posix acl. يجب أن تكون قاعدة صلبة ، من وجهة نظر الصواب. التفاصيل عند الطلب.

أعلم أن Solaris يوفر فقط نسختين من chmod لإدارة قوائم ACL. لسوء الحظ ، هذا محرج للغاية ومثير للقلق. أقترح أن نستخدم برنامجًا مساعدًا أو setzacl أو getzacl أو ما شابه ذلك لتوفير تسهيلات عرض وتعديل ACL على zfs على نظام التشغيل Linux. على نحو مفضل ، يجب إنشاء الواجهة لتكون مشابهة (أو متوافقة مع) solaris chmod ، وربما تم تحسينها ، ولكن موحدة عبر كل من تطبيقات zfs linux ، ويفضل أن تكون قادرة على التعامل مع أنظمة الملفات المستقبلية باستخدام قوائم التحكم بالوصول "nfs4". (إذا كان بإمكان أي شخص شرح سبب تسميته nfs4 ACLs ، فسيكون ذلك بمثابة مساعدة كبيرة أيضًا!)

أود أن أضيف أن مستخدمي Samba قد يرغبون في التمسك بـ nfs4 ACL ، ليس أقلها أنهم يقتربون من مطابقة ميزة Windows NTFS ACL حسب الميزة. هذا مهم عندما تريد استخدام Samba كخادم لمجلدات المستخدمين الرئيسية والملفات الشخصية في بيئة Active Directory حيث تتحقق الإصدارات الأحدث من Windows من قوائم ACL محددة. أيضًا ، كان Windows interop أحد أهداف التصميم لـ ZFS في أيام Sun ، لذلك سيكون من المحزن رؤيته يذهب ...

ومع ذلك ، فأنا أفهم تمامًا الدافع وراء الامتثال لنظام POSIX.

aarcane - راجع http://wiki.linux-nfs.org/wiki/index.php/ACLs لمعرفة تاريخ NFSv4 ACLs.

أقوم بتجربة مشاركة Samba 4 DC و ZFS CIFS في الوقت الحالي ؛ النظام الأساسي هو ubuntu 12.04.

يمكن لعملاء XP Pro SP3 رؤية وإدارة Active Directory (المستخدمين وأجهزة الكمبيوتر) وتعيين أذونات NTFS بشكل صحيح على المجلدات المشتركة من EXT4.

تصبح المجلدات التي تتم مشاركتها من ZFS غير قابلة للتصفح من خلال CIFS بمجرد تغيير أذوناتها عبر واجهة مستخدم XP (على الرغم من أنه لا يزال بإمكانك الوصول إليها - كما هو متوقع - من سطر أوامر الخادم).

أفترض أن هذا نتيجة المشاكل الموضحة في الموضوع أعلاه؟ سيتم استقبال أي أفكار حول العمل بامتنان.

سيكون تمكين مسؤول NTFS ACL الكامل من خلال Samba 4 بمثابة مكافأة كبيرة لـ ZFS.

هل يمكنك نشر مزيد من التفاصيل حول مشكلتك؟ إصدار Samba4 الدقيق ، ما هو خادم الملفات الذي تستخدمه (smbd أو ntvfs) وأي إعدادات ذات صلة؟ (على سبيل المثال ، هل تستخدم vfs_acl_xattr أو شيء مشابه؟)
ربما تفتح مشكلة أخرى ، إذا كان نفس تكوين Samba4 يعمل على extY المركب بدون خيار "acl".

حول معالجة NFSv4 الحقيقي (مثل NTFS) ACL من خلال Samba ، يمكن القيام بذلك _ بطريقة نظيفة_ فقط بعد دمج تصحيحات "Rich ACL" في النواة.

شكرا ماكسيمينو.
أنا أستخدم Samba 4.0.0 alpha19.
أنا أحاول فقط خادم الملفات باستخدام ntvfs (sudo / usr / local / samba / sbin / samba -i -M single) - التي تقدم مشاركات netlogon و sysvol من ext4 ومشاركات zfs الخاصة بي من زوج متطابق من محركات الأقراص مع aclinherit = مجموعة العبور.
لا توجد وحدة vfs_acl_xattr قيد الاستخدام.

"حول معالجة قوائم التحكم بالوصول (ACLs) الحقيقية NFSv4 (تشبه NTFS) من خلال Samba ، يمكن القيام بذلك بطريقة نظيفة فقط بعد دمج تصحيحات" Rich ACL "في النواة."

بقدر ما أفهم الأمور ، فإن تصحيحات richacls الرسمية تدعم فقط EXT4 - هل تقول أنه إذا استخدمتُ openuse (مع تضمين richacls افتراضيًا) أو تصحيح richacls في ubuntu / debian ، يجب أن تبدأ zfs + samba4 + ntfs acls "فقط ابدأ العمل "؟

لقد أعدت إنتاج مشكلتك.
أنت لا تستخدم vfs_acl_xattr صراحة ، لكن Samba4 يقوم بنفس الشيء "بصمت". يقوم بحفظ قوائم ACL الخاصة به في xattr المسمى "security.NTACL" (والذي يمكنك رؤيته باستخدام getfattr -n security.NTACL $ FILENAME ؛ وإزالته باستخدام setfattr -x security.NTACL $ FILENAME).
هذه السمة تعتبر فقط من قبل Samba ، وليس من قبل أي شيء في zfs / linux kernel. نظرًا لأن برنامج perl البسيط الذي يحفظ القيم من / dev / urandom إلى xattrs في zfs ، يمكنه قراءتها مرة أخرى بدون تلف ، أعتقد حقًا أنها مشكلة Samba4.
تظهر المشكلة فقط على zfs على الأرجح لأنه في fs الأخرى يمكنه تعيين قوائم ACL الخاصة به على قوائم Posix ACL بدلاً من استخدام xattrs.

لا ، مجرد ترقيع النواة ببقع ACL الغنية لا يكفي. عندما تهبط تلك التصحيحات على الخط الرئيسي ، من الممكن البدء في دمج دعم ACL الغني في zfs.

أنا فقط أقوم ببناء Samba 4 على Suse ؛ أعتقد أنني كنت على وشك إعادة إنتاجك من زاوية مختلفة.
أنقذني الألم.

ربما يكون الحل المعقول (قصير المدى) هو خدمة الملفات من zfs من خلال بيئة Samba 3 مستقرة ، والمصادقة مقابل Samba 4 DC في Linux-VServer مختلف على سبيل المثال؟

على المدى المتوسط ​​، لا يمكن المبالغة في الضغط على فائدة وجود مشاركات CIFS المستندة إلى ZFS مع Samba 4 AD والتي تستند جميعها إلى نظام تشغيل Linux مع دعم عام ممتاز للأجهزة _ في نفس الجهاز. تطبيقات الأعمال الصغيرة / غير الهادفة للربح ضخمة.

شكرا على كل العمل حتى الآن.

لقد عثرت على الخيط التالي:
https://lists.samba.org/archive/samba/2012-August/168660.html

الملخص هو أن Samba 4 يحتوي على وحدة تحكم في التحكم بالوصول تسمى vfs_zfsacl ، والتي تُستخدم في Solaris ، بحيث يمكن لسامبا استخدام قوائم التحكم بالوصول الأصلية ZFS. هل من الممكن استخدام هذه الوحدة مع zfsonlinux؟ هل واجهات برمجة التطبيقات الضرورية متاحة لمساحة المستخدم على Linux؟

kisg هذا سؤال جيد ، هذا هو أول سؤال أسمعه عن وحدة vfs_zfsacl لسامبا. ستحتاج بعض الهيئات إلى القيام ببعض الإجراءات لتحديد الواجهة التي يتوقعونها. اعتمادًا على ما هو عليه ، قد نتمكن من توفيره. على الرغم من عدم إجراء ترجمة ، فستظل تواجه مشكلة عدم القدرة على إدارة قوائم ACL في مربع Linux.

لقد ألقيت نظرة سريعة على المصدر.
يمكنك العثور على الإصدار الفرعي Samba v4-0-Stable من vfs_zfsacl.c هنا: git.samba.org .

إنه يتحول ببساطة من تمثيل Samba الداخلي إلى SunOS NFSv4 acl / facl API. يتم تنفيذ واجهة برمجة التطبيقات هذه أيضًا على FreeBSD باستخدام غلاف رفيع لمساحة المستخدم حول تطبيق NFSv4 الخاص به.

بناءً على هذا التحليل ، لا يمكننا إعادة استخدام هذا التطبيق على Linux. بدلاً من ذلك ، إذا تم تكامل richacl لـ zfsonlinux ، فيمكننا استخدام مكتبة librichacl لإنشاء وحدة vfs_richacl بسيطة مماثلة (نأمل أقل من 1000 سطر) لسامبا.

من إلقاء نظرة خاطفة على تصحيحات richacl kernel ، يبدو أن تكامل zfsonlinux يمكن أن يتم حتى دون تصحيح النواة فعليًا ، فقط سحب الأجزاء المطلوبة (هياكل البيانات وتحويل xattr) من شفرة richacl إلى شجرة zfs لإصدارات النواة التي لا تدعمها أصلاً. هذا مهم بالنسبة لنا ، لأننا (شركتي) نرغب في تشغيل نواة Ubuntu LTS قياسية وسحب zfsonlinux فقط كوحدة إضافية.

ومع ذلك ، لست متأكدًا مما إذا كان richacl لا يزال قيد الصيانة (لم يتم تحديث مستودعاته بالفعل) ، وعلى المسار الصحيح لإدراجه في نواة الفانيليا.

لقد تواصلت مع مؤلف مجموعة ريتشل. أشار لي إلى وحدة richacl vfs التجريبية التالية: v4acls-التجريبية / samba.git

لذلك يبدو أن جميع القطع تقريبًا في مكانها (أو على الأقل موجودة في شكل تجريبي) باستثناء دعم richacl في zfs نفسها.

ربما يكون نقل libsunacl.c إلى لينكس كافياً من جانب السامبا؟

http://sourceforge.net/projects/libsunacl/

ولكن بقدر ما أفهم "aclmode" سيظل مفقودًا على zfsonlinux.

لا أعرف حتى لماذا ليس لدينا شكل من أشكال دعم التحكم في التحكم بالوصول حتى الآن. لماذا يكون
zfs acls لم يتم تشغيله؟ أعرف كود chmod و ls
موجود.كان يجب توفير getzacl بأسلوب getfacl الآن. أنا متأكد
بالرغم من ذلك ، هناك سبب وجيه لعدم وجود قوائم التحكم بالوصول.
في 15 شباط (فبراير) 2013 ، الساعة 2:07 ظهرًا ، كتب "franx" [email protected] :

ربما يكون نقل libsunacl.c إلى لينكس كافياً من جانب السامبا؟

http://sourceforge.net/projects/libsunacl/

ولكن بقدر ما أفهم "aclmode" سيظل مفقودًا على zfsonlinux.

-
قم بالرد على هذه الرسالة الإلكترونية مباشرة أو tHubhttps: //github.com/zfsonlinux/zfs/issues/170#issuecomment -13630736.

يتم دعم ZFS ACL
اختبار:
إنشاء ملف على مشاركة صغيرة على نظام ملفات آخر مع تمكين خيار تحميل قائمة التحكم بالوصول ، وضبط قائمة التحكم في الوصول على النوافذ.

انقل هذا الملف على مجلد zfsonlinux باستخدام aclinherit = passthrough
ACLS يتم حفظها ..

ليس لدى ماكينة الصراف الآلي حل هل فعلت ذلك في سامبا ..

لا يعمل أي من acl_xattr أو acl_tdb بشكل صحيح في ظل هذا التكوين ، على bsd يستخدمون vfs_zfsacl

trough libsunacl الذي يبدو وكأنه مترجم من zfs2bsd

قد يكون سؤالي غبيًا ، لكنني أريد أن أفهم بوضوح ما إذا كان لدينا دعم ACL أم لا. لقد أنشأت خادم VBox ubuntu الأدنى 12.04 LTS ، من تثبيت ubuntu-zfs ، وأنشأت أوامر pool w

تاريخ "mypool":
2013-05-05.15: 12: 49 zpool create -f mypool / dev / disk / by-id / ata-VBOX_HARDDISK_VB88a04e0d-d8d1e7a4

تاريخ "الخزان":
2013-04-30.13: 44:54 إنشاء zpool الخزان / الجذر / المجلد 1
2013-05-01.00: 13: 33 zfs مجموعة aclinherit = خزان العبور
2013-05-05.13: 50:14 تعيين zfs خصم = على الخزان

لا يدعم الخزان setfacl دون مشكلة
mypool لا ، ويقول العملية غير مدعومة.

أريد استخدام zfs مع السامبا وأريد التحكم في وصول مستخدمين متعددين إلى المجلدات. مثل هذا
الجذر @ الخادم : ~ # setfacl -mg: المستخدمون : --- test4v007 /

أرغب في تطبيق تصحيح richacls لـ ZFS ، ولكن نظرًا لأنني عديم الخبرة تمامًا مع ZFS ، سيكون من الجيد أن يقدم أحد مطوري ZFSonLinux بعض المساعدة (معظمها في شكل تلميحات ومناقشات).

أود أن أعطي هذا نتوء ...

behlendorf - لديك الآن إصدار ثابت لنظام الملفات ، هل لدينا جدول زمني قوي للوقت الذي سيتم فيه ذلك؟ أعلم أنك قمت بتخفيضه إلى المرحلة 0.8 ، ولكن بوتيرة الإصدار الحالية ، يبدو أن الأمر قد يستغرق بضع سنوات - هل يمكننا تقديمه بأي شكل من الأشكال؟

نحن نرغب في المضي قدمًا في العمل مع النشر لخوادم NAS لتخزين ملفات التعريف الخاصة بنا مع Samba ، ولكن عدم وجود قوائم ACL قد يعني أنه يتعين علينا الالتزام بـ FreeBSD وهو ما لا نريد فعله حقًا لأن قاعدة خبرتنا كلها مع Linux.

آمل أن يكون الأمر بعيد المنال.
هل جربت Debian kFreebsd؟

إنه يشبه نوعًا من Linux ..

sopmot - كما تعلم ، نظرت إليه من قبل ورفضته على أنه ليس جاهزًا للإنتاج ، لكن كان لدي قراءة سريعة عنه ويبدو أنه قد يكون أكثر استعدادًا للمعركة من ZoL لما نحتاجه إذا كنا تفعل ذلك على الفور.

صرخات جيدة ، شكراً لأنك وضعتني على المسار الصحيح - أعتذر عن الوقاحة.

ما زلت أبحث في kfreebsd ، وهي مفقودة iscsi و nfsv4 و
ما يعادل kvm الافتراضية. كنت جادًا في استخدامه للجذر
حتى ظهرت هذه النواقص
في 19 مايو 2013 ، الساعة 9:50 صباحًا ، كتب "Tamas Papp" [email protected] :

آمل أن يكون الأمر بعيد المنال.
هل جربت Debian kFreebsd؟

إنه يشبه نوعًا من Linux ..

-
قم بالرد على هذه الرسالة الإلكترونية مباشرة أو tHubhttps: //github.com/zfsonlinux/zfs/issues/170#issuecomment -18120673
.

أود أيضًا أن أرى هذا العنوان. لسوء الحظ ، إن الوقت منخفض في هذه الأيام (بالإضافة إلى أنني لا أعرف حماقة بشأن الأشياء ذات المستوى المنخفض / النواة) ، لذلك لا يمكنني فعل الكثير لمساعدة نفسي :( حقًا على الرغم من أنني أبحث فقط عن طريقة جيدة فرض أذونات معينة للملفات الجديدة في أدلة معينة ؛ غالبًا ما أضع الملفات في مجلد متاح للجمهور وسيكون من الجيد أن يتم إعدادها تلقائيًا بأذونات مريحة ، لأنني لا أريد حقًا تعيين umask الخاص بي على شيء ما ليبرالي بالنسبة لمعظم الملفات التي أقوم بإنشائها ، والتي تنتهي في مجلد منزلي. في OSOL / FreeBSD ، سأفعل ذلك باستخدام NFSv4 ACL ، على الرغم من أنني منفتح على حلول أفضل إذا كان لدى أي شخص أي أفكار. الشيء الآخر الوحيد الذي يمكنني التفكير فيه of هو تشغيل cronjob الذي يعين التجاوزات بشكل متكرر على الدلائل ذات الصلة كل نصف ساعة أو شيء من هذا القبيل ، لكن هذا غير أنيق للغاية!

لمعلوماتك حتى لا يرتكب الناس نفس الخطأ الذي ارتكبته - يعد Debian kFreeBSD رائعًا لدعم ZFS ، لكن قوائم ACL لا تزال لا تعمل من userland ، فأنت تحصل فقط على "الوظيفة لم يتم تنفيذها" - راجع خطأ دبيان: http: // bugs.debian.org/cgi-bin/bugreport.cgi؟bug=607573

iamacarpet يمكن أن يحدث ذلك بمجرد أن

أهلا،

نستخدم zfsonlinux في جهاز احتياطي ونعتقد أن قوائم ACL مهمة لأغراض التكامل. هناك حاجة إلى بعض العمليات الشائعة ، مثل تغيير الأذونات في وحدة تخزين ZFS المشتركة من كمبيوتر يعمل بنظام Windows.

هل دوري أبطال آسيا لا يزال في خارطة الطريق؟

شكرا.

@ n1mh تمت جدولة الإصدار 0.8.0.

بفضل maxximino تم تنفيذ دعم Posix ACL. لقد فتحت طلب السحب رقم 1809 بإصدار قريب من النسخة النهائية من التصحيح وهو جاهز للاختبار على نطاق أوسع. إنه يجتاز قسم ACL من Posix Test Suite ولا نعلم بوجود أي مشكلات معلقة.

بالنسبة لأولئك الذين يرغبون في هذه الوظيفة ، سيكون من المفيد جدًا أن تتمكن من اختبار التصحيح المقترح بحمل عمل واقعي. يرجى التحقق من أنه يتصرف كما تتوقع في بيئتك. يتم تعطيل Posix ACL بشكل افتراضي ولكن يمكن تمكينه عن طريق تعيين خاصية _acltype_ على مجموعة البيانات.

zfs set acltype=posixacl pool/dataset

تم تطبيق Posix ACL على غرار Linux باعتباره xattr ودمجها لإتقانها. يتم تخزينها بشكل مستقل عن قوائم NFS الأصلية ولن تتعارض. تمت إضافة نوع acltype لخاصية مجموعة البيانات الجديدة لتمكين هذه الوظيفة. للحصول على أفضل أداء ، نشجعك بشدة على تعيين كل من نوع acltype = posixacl و xattr = sa . لمزيد من التفاصيل ، راجع صفحة الدليل المحدثة:

       acltype=noacl | posixacl

           Controls  whether  ACLs  are  enabled and if so what type of ACL to
           use.  When a file system has the acltype property set to noacl (the
           default)  then  ACLs are disabled.  Setting the acltype property to
           posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
           cific  to  Linux  and are not functional on other platforms.  Posix
           ACLs are stored as an xattr and therefore will  not  overwrite  any
           existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
           are supported on Linux.

           To obtain the best performance  when  setting  posixacl  users  are
           strongly encouraged to set the xattr=sa property.  This will result
           in the Posix ACL being stored more efficiently on disk.  But  as  a
           consequence of this all new xattrs will only be accessable from ZFS
           implementations which support the xattr=sa property.  See the xattr
           property for more details.

يجب أيضًا التعرف على نوع العنصر = nfs4 ومعاملته بنفس الطريقة
noacl ، لكنها مقبولة من أجل التوافق؟
في 29 أكتوبر 2013 ، الساعة 3:05 مساءً ، "Brian Behlendorf" [email protected]
كتب:

تم تطبيق Posix ACLs على غرار Linux كـ xattr ودمجها في
رئيسي - سيد. يتم تخزينها بشكل مستقل عن قوائم NFS ACLs الأصلية ولن تفعل ذلك
نزاع. تمت إضافة خاصية مجموعة البيانات الجديدة _acltype_ للتمكين
هذه الوظيفة. للحصول على أفضل أداء ، نشجعك بشدة على ذلك
قم بتعيين كل من _acltype = posixacl_ و _xattr = sa_. لمزيد من التفاصيل انظر
صفحة الرجل المحدثة:

   acltype=noacl | posixacl

       Controls  whether  ACLs  are  enabled and if so what type of ACL to
       use.  When a file system has the acltype property set to noacl (the
       default)  then  ACLs are disabled.  Setting the acltype property to
       posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
       cific  to  Linux  and are not functional on other platforms.  Posix
       ACLs are stored as an xattr and therefore will  not  overwrite  any
       existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
       are supported on Linux.

       To obtain the best performance  when  setting  posixacl  users  are
       strongly encouraged to set the xattr=sa property.  This will result
       in the Posix ACL being stored more efficiently on disk.  But  as  a
       consequence of this all new xattrs will only be accessable from ZFS
       implementations which support the xattr=sa property.  See the xattr
       property for more details.

-
قم بالرد على هذه الرسالة الإلكترونية مباشرة أو tHubhttps: //github.com/zfsonlinux/zfs/issues/170#issuecomment -27348094
.

لماذا هذا مغلق؟ يعد acltype nfs4 _far_ أكثر أهمية من مسودة POSIX ACLs المحدود غير القياسية التي عفا عليها الزمن تمامًا. قوائم NFS ACL هي الإعداد الافتراضي لـ ZFS على الأنظمة الأساسية الأخرى وهي أكثر مرونة بكثير. كما أنها تسمح بالتصدير السلس على كل من NFSv4 و SMB حيث أن قائمة التحكم بالوصول (ACL) تُعيِّن جيدًا كلاً من NFS و NT ACL. لا تعمل مسودة قوائم التحكم في الوصول POSIX بشكل جيد.

لا تتعامل مسودات POSIX ACL بشكل جيد مع الوراثة ، وتعطي فقط ملفًا افتراضيًا للملفات الجديدة .. NFSv4 ACLs هي الطريقة الوحيدة للمضي قدمًا.

synnack ، المشكلة الرئيسية في دعم NFS ACL ليست حقًا في جانب ZFS. لقد احتفظنا بكل هذه الوظائف ويتم استخدامها داخليًا. تكمن المشكلة في أدوات Linux المساعدة (getfattr و setfattr وما إلى ذلك) التي تم إنشاؤها حول POSIX بدلاً من NFS ACLs. كانت هناك محاولات في الماضي لجلب NFS ACL إلى Linux ولكن على حد علمي لم يكن أي منها ناجحًا على نطاق واسع. ما لم تتغير الأمور مؤخرًا ، فهذه أكبر عقبة.

بالتأكيد ، ولكن انظر إلى عمل Andreas Gruenbacher و Aneesh Kumar في OpenSuSE ، لقد قاموا بالفعل بشحن بقع richacl .. على LKML للإدراج الآن ..

باستثناء richacls ليست NFSv4 ACLs ، فهي (بت مجنون) نتيجة لدمج مخطط NFSv4 مع POSIX ACLs ، المصمم لـ ext4 والاحتفاظ بجميع الأجزاء الأسوأ من POSIX ACLs ، IIRC.

ما نحتاجه هو واجهة مناسبة لـ NFSv4 ACLs ، بحيث يمكن ضبطها لأنظمة الملفات التي تدعمها. ضع في اعتبارك أن هناك نوعًا آخر على الأقل من قوائم ACL مدعومة (جزئيًا على الأقل) بواسطة linux - AFS ACLs. لذا فإن إمكانية وجود أنظمة متعددة مدعومة ليست مجنونة ، على الرغم من أنني أعتقد أننا قد نحتاج إلى واجهة برمجة تطبيقات تشبه Solaris لدعمها بشكل أفضل ...

بالطبع ، إذا كان من الممكن الخلاف على richacls لإيقاف جميع الأجزاء التي تخرج من NFSv4 ، وبافتراض أن userland لا يفسدك (مرحبًا ، بتات قناع POSIX ACL!) ، وبافتراض أنهم يطبقون بالفعل جميع مواصفات NFSv4 .. لنكون صادقين ، هذا كثير من الافتراضات.

أود بالفعل أن أقترح إضافة IOCTL ينطبق على الملفات على ZFS بهذا المعدل

نعم ، لست متأكدًا مما يستنشقه الرجال مع عناصر مسودة POSIX ACL المدمجة داخل قوائم ACL الغنية .. من الأفضل أن تكون متوافقة مع Solaris و BSD أكثر من التوافق مع مسودة POSIX crappy ACLs imho ..

behlendorf :

تكمن المشكلة في أدوات Linux المساعدة (getfattr و setfattr وما إلى ذلك) التي تم إنشاؤها حول POSIX بدلاً من NFS ACLs. كانت هناك محاولات في الماضي لجلب NFS ACL إلى Linux ولكن على حد علمي لم يكن أي منها ناجحًا على نطاق واسع. ما لم تتغير الأمور مؤخرًا ، فهذه أكبر عقبة.

أرى أن التوزيعات تستخدم حزمة "nfs4-acl-tools" لإدارة NFS4 ACL. يستخدم nfs4_getfacl و nfs4_setfacl و nfs4_editfacl. عندما أقوم بتشغيلها ضد zfs ، أحصل حاليًا على "عملية طلب السمة غير مدعومة." يبدو لي أن هذا هو الطريقة التي ستفعل بها لينكس NFS4. الآن نحن فقط بحاجة إلى طريقة للأدوات و zfs لتكون على دراية ببعضها البعض.

شكراً ghfields على التعليق ، لم أبحث في nfs4 acls لبضع سنوات ولكن يبدو أنهم يحرزون تقدمًا جيدًا حقًا مع مكونات مساحة المستخدم. بناءً على القراءة السريعة لمصدر أدوات nfs4-acl ، يبدو أن واجهة المستخدم / kernel المتوقعة عبر xattr المسمى system.nfs4_acl والذي يحتوي على acl الخام المشفر xdr.

قد يتطلب الحصول على هذا العمل إضافة معالجات xattr مقابل system.nfs4_acl xattr والذي يترجم بين قائمة التحكم بالوصول nfs4 المخزنة داخليًا بواسطة ZFS وتمثيلها المتوقع بواسطة الأدوات المساعدة. نظرًا لأن NFSv4 هو المستهلك الوحيد لهذا ، فإن kernel لا يوفر أي وظائف عامة يمكننا استخدامها ، فسنحتاج إلى كتابة الوظائف للقيام بهذا التشفير / فك التشفير.

على السطح ، يبدو الحصول على هذا العمل ممكنًا للغاية. أعتقد أنه سيكون من الرائع إذا أراد المطور معالجة هذه الميزة.

نظرًا لأنه تم إغلاق هذه المشكلة عند تنفيذ قوائم التحكم في الوصول POSIX ، فهل يجب إنشاء إصدار جديد خصيصًا لقوائم التحكم في الوصول NFS4؟ أم يجب إعادة فتح هذا؟

ghfields هل يمكنك فتح إصدار جديد لهذا الغرض. هذا سيجعل من السهل تتبعها.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات
يستخدم موقع bleepcoder.com معلومات GitHub المرخصة بشكل عام لتزويد المطورين حول العالم بحلول لمشاكلهم. نحن لسنا تابعين لشركة GitHub، Inc. أو مع أي مطورين يستخدمون GitHub لمشاريعهم. نحن لا نستضيف أيًا من مقاطع الفيديو أو الصور على خوادمنا. جميع الحقوق تنتمي إلى أصحابها.
مصدر هذه الصفحة: مصدر

لغات البرمجة الشعبية
مشاريع GitHub الشعبية
المزيد من مشاريع GitHub

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.