تعلم قيادة لينكس setfacl

تعيين الأداة المساعدة Setfacl قوائم التحكم بالوصول (ACLs) من الملفات والدلائل. في سطر الأوامر ، يتبع سلسلة من الأوامر سلسلة من الملفات (والتي يمكن تتبعها بتسلسل آخر من الأوامر ، ...).

الخيارات -m و -x تتوقع ACL على سطر الأوامر. يتم فصل العديد من إدخالات ACL بأحرف فاصلة (`، '). خيارات -M و -X قراءة ACL من ملف أو من الإدخال القياسي. تم وصف تنسيق إدخال قائمة التحكم بالوصول (ACL) في قسم ACL ENTRIES.

تعيين الخيارات --set و --set-file في ACL من ملف أو دليل. يتم استبدال ACL السابقة. يجب أن تتضمن إدخالات ACL لهذه العملية أذونات.

تقوم خيارات -m (--modify) و -M (--modify-file) بتعديل ACL لملف أو دليل. يجب أن تتضمن إدخالات ACL لهذه العملية أذونات.

تقوم خيارات -x (--remove) و -X (- إزالة - ملف) بإزالة حلقات ACL. يتم قبول إدخالات ACL فقط بدون المجال perms كمعلمات ، ما لم يتم تعريف POSIXLY_CORRECT.

عند القراءة من الملفات باستخدام -M ، و -X خيارات ، يقبل setfacl الإخراج الناتج getfacl. هناك على الأكثر واحد دخول ACL في كل سطر. بعد علامة الجنيه ('#') ، يتم التعامل مع كل شيء حتى نهاية السطر كتعليق.

إذا تم استخدام setfacl على نظام ملفات لا يدعم ACLs ، تعمل setfacl على بتات إذن وضع الملف. إذا لم تتوافق قائمة التحكم بالوصول (ACL) تمامًا في وحدات البايت الخاصة بالإذن ، تقوم setfacl بتعديل بتات إذن وضع الملف لعكس ACL بأكبر قدر ممكن ، وتكتب رسالة خطأ إلى الخطأ القياسي ، وتعود بحالة خروج أكبر من 0.

موجز

setfacl [-bkndRLPvh] [{-m | -x} acl_spec] [{-M | -X} acl_file] file ...

setfacl --restore = الملف

PERMISSIONS

يتم منح مالك الملف والعمليات القادرة على CAP_FOWNER الحق في تعديل ACLs في ملف. هذا مشابه للأذونات المطلوبة للوصول إلى وضع الملف. (على أنظمة Linux الحالية ، الجذر هو المستخدم الوحيد الذي لديه القدرة على CAP_FOWNER).

خيارات

-b ، - قم بإزالة الكل

قم بإزالة كافة إدخالات ACL الموسعة. يتم الاحتفاظ بإدخالات ACL الأساسية الخاصة بالمالك والمجموعة وغيرهم.

-k ، - قم بإزالة التقصير

قم بإزالة ACL الافتراضي. في حالة عدم وجود ACL افتراضي ، لا يتم إصدار أية تحذيرات.

-n، - لا يوجد قناع

لا تعيد حساب قناع الحقوق الفعال. السلوك الافتراضي من setfacl هو إعادة حساب إدخال قناع ACL ، إلا إذا تم إعطاء إدخال قناع بشكل صريح. يتم تعيين إدخال القناع على اتحاد كافة الأذونات الخاصة بالمجموعة المالك ، وجميع إدخالات المستخدم والمجموعة المحددة. (هذه هي بالضبط المدخلات المتأثرة بإدخال القناع).

--قناع

قم بإعادة حساب قناع الحقوق الفعال ، حتى لو تم إعطاء إدخال قناع ACL بشكل صريح. (راجع الخيار -n .)

-d ، - اعتلال

تنطبق جميع العمليات على ACL الافتراضي. يتم ترقية إدخالات ACL المنتظمة في مجموعة الإدخال إلى إدخالات ACL الافتراضية. يتم تجاهل إدخالات ACL الافتراضية في مجموعة الإدخال. (يتم إصدار تحذير إذا حدث ذلك).

--restore = ملف

استعادة نسخة احتياطية من الإذن تم إنشاؤها بواسطة `getfacl -R 'أو ما شابه. تتم استعادة كافة أذونات الشجرة الفرعية الدليل الكامل باستخدام هذه الآلية. إذا كان الإدخال يحتوي على تعليقات المالك أو تعليقات المجموعة ، ويتم تشغيل setfacl بواسطة الجذر ، فسيتم استعادة المالك ومجموعة المالك لجميع الملفات أيضًا. لا يمكن خلط هذا الخيار بخيارات أخرى باستثناء "اختبار".

--اختبار

وضع الاختبار. بدلاً من تغيير قوائم ACL لأي ملفات ، يتم سرد قوائم ACL الناتجة.

-R ، - استرجاع

تطبيق العمليات على جميع الملفات والدلائل بشكل متكرر. لا يمكن خلط هذا الخيار مع "- restrest".

-L ، - logical

المشي المنطقي ، اتبع الروابط الرمزية. السلوك الافتراضي هو اتباع وسيطات الارتباط الرمزي ، وتخطي الارتباطات الرمزية التي تصادف في الدلائل الفرعية. لا يمكن خلط هذا الخيار مع "- restrest".

-P ، - البدنية

المشي المادي ، تخطي جميع الروابط الرمزية. هذا أيضا يتخطى حجة الارتباط رمزي. لا يمكن خلط هذا الخيار مع "- restrest".

--الإصدار

طباعة نسخة من setfacl والخروج.

--مساعدة

طباعة مساعدة في شرح خيارات سطر الأوامر.

نهاية خيارات سطر الأوامر. يتم تفسير جميع المعلمات المتبقية على أنها أسماء ملفات ، حتى إذا كانت تبدأ بشرطة.

إذا كانت معلمة اسم الملف عبارة عن شرطة واحدة ، تقرأ setfacl قائمة بالملفات من الإدخال القياسي.

إدخالات ACL

تتعرف الأداة المساعدة setfacl على تنسيقات إدخال قائمة ACL (الفراغات التي يتم إدراجها للوضوح):

[d [efault]:] [u [ser]:] uid [: perms ]

أذونات مستخدم مسمى. أذونات مالك الملف إذا كان uid فارغًا.

[d [efault]:] g [roup]: gid [: perms ]

أذونات مجموعة مسماة. أذونات المجموعة المالكة إذا كان الملف فارغًا.

[d [efault]:] m [اسأل] [:] [: perms ]

قناع حقوق فعال

[d [efault]:] o [ther] [:] [: perms ]

أذونات الآخرين.

يتم تجاهل المسافات البيضاء بين أحرف المحدد وأحرف غير محدد.

يتم استخدام إدخالات ACL الصحيحة بما في ذلك الأذونات في تعديل وتعيين العمليات. (خيارات -m و -M و- set و-set-file ). يتم استخدام الإدخالات بدون حقل perms لحذف الإدخالات (خيارات -x و -X ).

ل uid و gid يمكنك تحديد إما اسم أو رقم.

حقل perms هو مجموعة من الأحرف التي تشير إلى الأذونات: read (r) ، write (w) ، تنفيذ (x) ، تنفيذ فقط إذا كان الملف عبارة عن دليل أو قام بالفعل بتنفيذ إذن لبعض المستخدمين (X) . بدلا من ذلك ، يمكن أن يكون حقل perms رقم ثمانية (0-7).

الإدخالات التلقائية

في البداية ، تحتوي الملفات والدلائل على إدخالات ACL الأساسية الثلاثة للمالك والمجموعة وغير ذلك. هناك بعض القواعد التي يجب أن تكون راضية لكي تكون قائمة ACL صالحة:

*

لا يمكن إزالة الإدخالات الأساسية الثلاثة. يجب أن يكون هناك إدخال واحد لكل نوع من أنواع الإدخال الأساسية.

*

عندما يحتوي ACL على إدخالات مستخدم مسمى أو كائنات مجموعة مسماة ، يجب أن يحتوي أيضًا على قناع حقوق فعال.

*

عندما يحتوي ACL على أية إدخالات افتراضية ACL ، يجب أيضًا أن تكون إدخالات قاعدة ACL الافتراضية الثلاثة (المالك الافتراضي والمجموعة الافتراضية والآخرين الافتراضية) موجودة.

*

عندما تحتوي ACL افتراضي على إدخالات مستخدم مسمى أو كائنات مجموعة مسماة ، يجب أن تحتوي أيضًا على قناع حقوق فعّال افتراضي.

لمساعدة المستخدم على ضمان هذه القواعد ، ينشئ setfacl إدخالات من الإدخالات الموجودة في الظروف التالية:

*

إذا كان ACL يحتوي على مستخدم مسمى أو إدخالات مجموعة مسماة ، ولا يوجد إدخال قناع ، يتم إنشاء إدخال قناع يحتوي على نفس الأذونات مثل إدخال المجموعة. ما لم يتم إعطاء الخيار -n ، يتم تعديل أذونات إدخال القناع بشكل أكبر لتضمين الوحدة الخاصة بجميع الأذونات المتأثرة بإدخال القناع. (انظر وصف الخيار -n ).

*

إذا تم إنشاء إدخال افتراضي لقائمة التحكم بالوصول (ACL) ، ولا تحتوي قائمة التحكم بالوصول الافتراضية (ACL) على أي مالك ، أو مجموعة مملوكة ، أو إدخال آخر ، فيتم إضافة نسخة من مالك ACL ، أو مالك المجموعة ، أو إدخال آخر إلى قائمة التحكم بالوصول الافتراضية.

*

إذا كان ACL افتراضي يحتوي على إدخالات مستخدم مسماة أو إدخالات مجموعة مسماة ، ولا يوجد إدخال قناع ، فسيتم إضافة إدخال قناع يحتوي على نفس الأذونات كإدخال افتراضي لمجموعة ACL الافتراضية. ما لم يتم إعطاء الخيار -n ، يتم تعديل أذونات إدخال القناع بشكل أكبر لتضمين اتحاد جميع الأذونات المتأثرة بإدخال القناع. (انظر وصف الخيار -n ).

أمثلة

منح مستخدم إضافي حق الوصول للقراءة

setfacl -mu: lisa: r file

إبطال حق الوصول للكتابة من جميع المجموعات وجميع المستخدمين المحددين (باستخدام قناع الحقوق الفعال)

setfacl -mm :: rx file

إزالة إدخال مجموعة مسماة من قائمة ACL الخاصة بالملف

setfacl -xg: ملف الموظفين

نسخ ACL لملف واحد إلى آخر

getfacl file1 | setfacl --set-file = - file2

نسخ الوصول ACL إلى قائمة التحكم بالوصول الافتراضية

getfacl -a dir | setfacl -d -M- dir

توافق مع معيار POSIX 1003.1e

إذا تم تعريف متغير البيئة POSIXLY_CORRECT ، يتغير السلوك الافتراضي للتغييرات setfacl كما يلي: يتم تعطيل كافة الخيارات غير القياسية. البادئة `` الافتراضي: '' معطلة. كما تقبل خيارات x و -X حقول الأذونات (وتجاهلها).

أنظر أيضا

umask (1) ،