مرحبا بالجميع. هذه ترجمة لمقال من RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 و EX300.
من نفسي: آمل أن تكون المقالة مفيدة ليس فقط للمبتدئين ، ولكن أيضًا ستساعد المسؤولين الأكثر خبرة في تنظيم معارفهم.
لذلك دعونا نذهب.

للوصول إلى الملفات على Linux ، يتم استخدام الأذونات. يتم تعيين هذه الأذونات إلى ثلاثة كائنات: ملف ومجموعة ومجموعة كائن آخر (أي ، أي شخص آخر). في هذه المقالة ، سوف تتعلم كيفية تطبيق الأذونات.
تبدأ المقالة بمراجعة المفاهيم الأساسية ، وبعد ذلك تتم مناقشة أذونات خاصة وقوائم التحكم في الوصول (ACLs). في نهاية هذه المقالة ، سوف تتعلم كيفية تكوين الأذونات الافتراضية من خلال umask ، بالإضافة إلى إدارة سمات المستخدم المتقدمة.
إدارة ملف الملكية
قبل مناقشة الأذونات ، يجب أن تكون على دراية بدور مالك الملف والدليل. امتلاك الملفات والدلائل أمر حيوي للعمل مع الأذونات. في هذا القسم ، ستتعلم أولاً كيف يمكنك رؤية المالك. سوف تتعلم بعد ذلك كيفية تغيير مالك المجموعة والمستخدم للملفات والدلائل.
عرض مالك ملف أو دليل
على نظام Linux ، كل ملف وكل دليل له مالكان: مستخدم ومجموعة.
يتم تعيين هؤلاء المالكين عند إنشاء الملف أو الدليل. يصبح المستخدم الذي ينشئ الملف هو مالك هذا الملف ، كما تصبح المجموعة الأساسية ، التي تتضمن نفس المستخدم ، هي مالك هذا الملف. لتحديد ما إذا كان لديك كمستخدم حقوق الوصول إلى ملف أو دليل ، تقوم shell بالتحقق من ملكيتها.
يحدث هذا بالترتيب التالي:- يتحقق shell لمعرفة ما إذا كنت تملك الملف الذي تريد الوصول إليه. إذا كنت هذا المالك ، فإنك تحصل على أذونات وتوقف shell عن التحقق.
- إذا لم تكن تملك الملف ، فستقوم shell بالتحقق مما إذا كنت عضوًا في مجموعة لديها أذونات على هذا الملف. إذا كنت عضوًا في هذه المجموعة ، يمكنك الوصول إلى الملف باستخدام الأذونات التي تم تعيينها للمجموعة ، وسوف يتوقف shell عن التحقق.
- إذا لم تكن المستخدم أو مالك المجموعة ، فستحصل على حقوق المستخدمين الآخرين (غير ذلك).
لمشاهدة تعيينات المالك الحالي ، يمكنك استخدام
الأمر ls -l . يعرض هذا الأمر المستخدم ومجموعة المالكين. أدناه يمكنك رؤية إعدادات المالك للأدلة في الدليل / home.
[root@server1 home]
باستخدام
الأمر ls ، يمكنك عرض مالك الملفات في هذا الدليل. قد يكون من المفيد في بعض الأحيان الحصول على قائمة بجميع الملفات الموجودة في النظام والتي تم تحديد المستخدم أو المجموعة فيها كمالك. يمكنك استخدام
البحث عن هذا . يمكن استخدام
وسيطة finder لهذا الغرض. على سبيل المثال ، يعرض الأمر التالي جميع الملفات التي حددها المستخدم linda كمالك:
find / -user linda
يمكنك أيضًا استخدام البحث للبحث عن الملفات التي تمتلكها مجموعة معينة.
على سبيل المثال ، يبحث الأمر التالي عن جميع الملفات التي تنتمي إلى مجموعة
المستخدمين :
find / -group users
تغيير الملكية
لتطبيق الأذونات ، فإن أول شيء يجب مراعاته هو الملكية. هناك أمر
chown لهذا الغرض. من السهل فهم بناء جملة هذا الأمر:
chown
على سبيل المثال ، يغير الأمر التالي مالك دليل / home / account إلى المستخدم ليندا:
chown linda /home/account
يحتوي
الأمر chown على العديد من الخيارات ، أحدها مفيد بشكل خاص:
-R . يمكنك تخمين ما يفعله ، لأن هذا الخيار متاح أيضًا للعديد من الفرق الأخرى. يتيح لك ذلك تعيين المالك بشكل متكرر ، مما يسمح لك بتعيين مالك الدليل الحالي وكل شيء أدناه. يغير الأمر التالي مالك الدليل / home وكل شيء تحته إلى ليزا:
الآن أصحاب تبدو مثل هذا:
[root@localhost ~]
الانتهاء:
[root@localhost ~]
الآن أصبحت ليزا مالك دليل الحساب:
[root@localhost ~]
تغيير مالك المجموعة
هناك طريقتان لتغيير ملكية المجموعة. يمكنك القيام بذلك باستخدام
chown ، ولكن هناك أمر خاص يسمى
chgrp يقوم بالمهمة. إذا كنت تريد استخدام
الأمر chown ، استخدم
. أو
: قبل اسم المجموعة.
يغير الأمر التالي أي مالك لمجموعة / home / account إلى مجموعة الحسابات:
chown .account /home/account
يمكنك استخدام
chown لتغيير مالك مستخدم و / أو مجموعة بعدة طرق. فيما يلي بعض الأمثلة:
- chown lisa myfile1 يحدد ليزا لامتلاك myfile1.
- يقوم chown lisa.sales myfile بتعيين مستخدم lisa لمالك ملف myfile ، كما يقوم بتعيين مجموعة المبيعات على مالك نفس الملف.
- chown ليزا: مبيعات myfile هو نفس الأمر السابق.
- chown .sales myfile تعيّن مجموعة المبيعات لتكون مالك ملف myfile دون تغيير مالك المستخدم.
- chown: مبيعات myfile هي نفس الأمر السابق.
يمكنك استخدام الأمر
chgrp لتغيير مالك المجموعة. النظر في المثال التالي ، حيث يمكنك استخدام
chgrp لتعيين مجموعة المبيعات كمالك لدليل الحساب:
chgrp .sales /home/account
كما هو الحال مع
chown ، يمكنك استخدام الخيار
-R مع
chgrp ، وكذلك تغيير مالك المجموعة بشكل متكرر.
فهم المالك الافتراضي
قد تلاحظ أنه عندما يقوم المستخدم بإنشاء الملف ، يتم تطبيق الملكية الافتراضية.
يصبح المستخدم الذي يقوم بإنشاء الملف تلقائيًا هو مالك هذا الملف ، وتصبح المجموعة الرئيسية لهذا المستخدم تلقائيًا هي مالك هذا الملف. عادة ما تكون هذه المجموعة محددة في ملف / etc / passwd كمجموعة رئيسية للمستخدم. ومع ذلك ، إذا كان المستخدم عضوًا في عدة مجموعات ، فيمكنه تغيير المجموعة الأساسية الفعالة.
لإظهار المجموعة الأساسية الفعالة الحالية ، يمكن للمستخدم استخدام أمر
المجموعات :
[root@server1 ~]
إذا أراد المستخدم الحالي linda تغيير المجموعة الأساسية الفعالة ،
فسيستخدم الأمر
newgrp ، متبوعًا باسم المجموعة التي يريد تعيينها كمجموعة أساسية فعالة جديدة. بعد استخدام الأمر
newgrp ، ستكون المجموعة الأساسية نشطة حتى يصدر المستخدم
أمر الخروج أو يخرج.
يوضح التالي كيف تستخدم lisa هذا الأمر حتى تصبح مجموعة المبيعات هي المجموعة الأساسية:
lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
بعد تغيير المجموعة الرئيسية الحالية ، ستتلقى جميع الملفات الجديدة التي أنشأها المستخدم هذه المجموعة كمجموعة المالكين. للرجوع إلى الإعداد الأولي للمجموعة الأساسية ، استخدم
exit .
لتتمكن من استخدام أمر
newgrp ، يجب أن يكون المستخدم عضوًا في المجموعة التي يريد استخدامها كقاعدة أساسية. بالإضافة إلى ذلك ، يمكن استخدام كلمة مرور المجموعة للمجموعة باستخدام الأمر
gpasswd . إذا كان المستخدم يستخدم الأمر
newgrp ولكنه ليس عضوًا في المجموعة المستهدفة ، فإن shell تطلب كلمة مرور المجموعة. بعد إدخال كلمة مرور المجموعة الصحيحة ، سيتم تعيين مجموعة أساسية فعالة جديدة.
إدارة الحقوق الأساسية
اخترع نظام أذونات Linux في السبعينيات. نظرًا لأن احتياجات الحوسبة كانت محدودة في تلك السنوات ، كان نظام الأذونات الأساسي محدودًا إلى حد ما. يستخدم نظام الأذونات هذا ثلاثة أذونات يمكن تطبيقها على الملفات والدلائل. في هذا القسم ، سوف تتعلم كيفية استخدام هذه الأذونات وتغييرها.
فهم حقوق القراءة والكتابة والتنفيذ
تسمح لك ثلاثة أذونات أساسية بقراءة الملفات وكتابتها وتنفيذها. يختلف تأثير هذه الأذونات عند تطبيقها على الملفات أو الدلائل. بالنسبة للملف ، يمنحك إذن القراءة الحق في فتح الملف للقراءة. لذلك ، يمكنك قراءة محتوياته ، لكن هذا يعني أنه يمكن لجهاز الكمبيوتر الخاص بك فتح الملف للقيام بشيء ما.
يجب أن يكون لملف البرنامج الذي يحتاج إلى الوصول إلى مكتبة ، على سبيل المثال ، حق الوصول للقراءة إلى تلك المكتبة. يتبع ذلك أن إذن القراءة هو أبسط إذن تحتاجه للعمل مع الملفات.
بالنسبة للدليل ، تسمح لك القراءة بعرض محتويات هذا الدليل. يجب أن تعلم أن هذا الإذن لا يسمح لك بقراءة الملفات في الدليل. لا تعرف أذونات Linux الوراثة ، والطريقة الوحيدة لقراءة الملف هي استخدام أذونات القراءة لذلك الملف.
كما يمكنك على الأرجح ، فإن إذن الكتابة ، إذا تم تطبيقه على الملف ، يسمح لك بالكتابة إلى الملف. بمعنى آخر ، يسمح لك بتعديل محتويات الملفات الموجودة. ومع ذلك ، لا يسمح بإنشاء أو حذف ملفات جديدة أو تغيير أذونات الملفات. للقيام بذلك ، تحتاج إلى منح إذن الكتابة إلى الدليل حيث تريد إنشاء الملف. في الدلائل ، يسمح لك هذا الإذن أيضًا بإنشاء وحذف أدلة فرعية جديدة.
إذن التنفيذ هو ما تحتاجه لتنفيذ الملف. لن يتم تثبيته أبدًا بشكل افتراضي ، مما يجعل Linux محصنًا تمامًا من الفيروسات. يمكن فقط لشخص لديه أذونات الكتابة إلى الدليل تطبيق الإذن بالتنفيذ.
يلخص التالي استخدام الأذونات الأساسية:
باستخدام chmod
لإدارة الحقوق ، استخدم
الأمر chmod . عند استخدام
chmod ، يمكنك تعيين أذونات للمستخدم (مستخدم) ، ومجموعة (مجموعة) وغيرها (أخرى). يمكنك استخدام هذا الأمر في وضعين: الوضع النسبي والوضع المطلق. في الوضع المطلق ، يتم استخدام ثلاثة أرقام لتعيين الأذونات الأساسية.

عند ضبط الأذونات ، احسب القيمة التي تحتاجها. إذا كنت ترغب في تعيين القراءة والكتابة والتنفيذ للمستخدم ، والقراءة والتنفيذ للمجموعة ، والقراءة والتنفيذ للآخرين في / somefile ، فإنك تستخدم
الأمر chmod التالي:
chmod 755 /somefile
عند استخدام
chmod بهذه الطريقة ، يتم استبدال جميع الأذونات الحالية بالأذونات التي تحددها.
إذا كنت ترغب في تغيير الأذونات المتعلقة بالأذونات الحالية ، يمكنك استخدام
chmod في الوضع النسبي. عند استخدام
chmod في الوضع النسبي ، فأنت تعمل مع ثلاثة مؤشرات للإشارة إلى ما تريد القيام به:
- تشير أولاً إلى من تريد تغيير الأذونات. للقيام بذلك ، يمكنك الاختيار بين المستخدم ( u ) ، والمجموعة ( g ) والآخرين ( o ).
- ثم تستخدم عامل التشغيل لإضافة أو إزالة أذونات من الوضع الحالي ، أو تعيينها بالكامل.
- في النهاية ، تستخدم r و w و x للإشارة إلى الأذونات التي تريد تعيينها.
عند تغيير الأذونات في الوضع النسبي ، يمكنك تخطي الجزء "إلى" لإضافة أو إزالة إذن لجميع الكائنات. على سبيل المثال ، يضيف هذا الأمر إذن التنفيذ لجميع المستخدمين:
chmod +x somefile
عند العمل في الوضع النسبي ، يمكنك أيضًا استخدام أوامر أكثر تعقيدًا. على سبيل المثال ، يضيف هذا الأمر إذن الكتابة إلى مجموعة ويزيل القراءات للآخرين:
chmod g+w,or somefile
عند استخدام
chmod -R o + rx / data ، يمكنك تعيين إذن التنفيذ لجميع الدلائل ، وكذلك للملفات في دليل / data. لتعيين إذن للتنفيذ فقط للأدلة ، وليس للملفات ، استخدم
chmod -R o + rX / data .
تضمن الحالة العلوية X أن الملفات لا تحصل على إذن بالتنفيذ إذا لم يكن الملف قد حدد بالفعل إذن التنفيذ لبعض الكائنات. هذا يجعل X طريقة أكثر ذكاءً للعمل مع تنفيذ الأذونات ؛ سيؤدي هذا إلى تجنب تثبيت هذا الإذن على الملفات التي لا تكون مطلوبة.
الحقوق الموسعة
بالإضافة إلى الأذونات الأساسية التي قرأت عنها للتو ، يحتوي Linux أيضًا على مجموعة من الأذونات المتقدمة. هذه ليست الأذونات الافتراضية التي تقوم بتعيينها ، ولكنها في بعض الأحيان توفر إضافة مفيدة. في هذا القسم ، سوف تتعلم ما هي وكيفية تكوينها.
فهم تمديد SUID ، GUID وأذونات بت لزجة
هناك ثلاثة أذونات متقدمة. أول هذه الإذن هو تعيين معرف مستخدم (SUID). في بعض الحالات الخاصة ، يمكنك تطبيق هذا الإذن على الملفات القابلة للتنفيذ. بشكل افتراضي ، يقوم المستخدم الذي يقوم بتشغيل الملف التنفيذي بتنفيذ الملف بأذوناته الخاصة.
للمستخدمين العاديين ، هذا يعني عادةً أن استخدام البرنامج محدود. ومع ذلك ، في بعض الحالات ، يتطلب المستخدم أذونات خاصة فقط لتنفيذ مهمة محددة.
النظر ، على سبيل المثال ، في موقف حيث يحتاج المستخدم لتغيير كلمة المرور. للقيام بذلك ، يجب على المستخدم كتابة كلمة المرور الجديدة الخاصة به إلى الملف / etc / shadow. ومع ذلك ، هذا الملف غير قابل للكتابة من قبل المستخدمين غير الجذر:
root@hnl ~]
توفر الدقة SUID حلاً لهذه المشكلة. في الأداة المساعدة / usr / bin / passwd ، يتم استخدام هذا الإذن بشكل افتراضي. هذا يعني أنه عند تغيير كلمة المرور ، يحصل المستخدم على امتيازات الجذر مؤقتًا ، مما يسمح له بالكتابة إلى ملف / etc / shadow. يمكنك رؤية دقة SUID مع
ls -l مثل
s في الموضع الذي تتوقع فيه عادة رؤية
x لأذونات المستخدم:
[root@hnl ~]
قد تبدو أذونات SUID مفيدة (وفي بعض الحالات تكون مفيدة) ، ولكنها في الوقت نفسه قد تكون خطيرة. إذا تم استخدامها بشكل غير صحيح ، يمكنك منح أذونات الوصول إلى الجذر عن طريق الخطأ. لذلك ، أوصي استخدامه فقط بحذر شديد.
لن يضطر معظم المسؤولين أبدًا إلى استخدامه ؛ سترى ذلك فقط في بعض الملفات التي يجب على نظام التشغيل تعيينها افتراضيًا.
الإذن الخاص الثاني هو معرف المجموعة (SGID). هذا القرار له تأثيران. عند تطبيقه على ملف قابل للتنفيذ ، فإنه يمنح المستخدم الذي ينفذ الملف أذونات مالك المجموعة لهذا الملف. وبالتالي ، يمكن لـ SGID أن تفعل أكثر أو أقل مثل SUID. ومع ذلك ، لا يتم استخدام SGID عملياً لهذا الغرض.
كما هو الحال مع إذن SUID ، يتم تطبيق SGID على بعض ملفات النظام كإعداد افتراضي.
عند تطبيقه على دليل ، يمكن أن يكون SGID مفيدًا لأنه يمكنك استخدامه لتعيين مالك المجموعة الافتراضي للملفات والدلائل الفرعية التي تم إنشاؤها في هذا الدليل. افتراضيًا ، عندما ينشئ المستخدم ملفًا ، يتم تعيين مجموعته الأساسية الفعالة كمالك للمجموعة لهذا الملف.
هذا ليس مفيدًا دائمًا ، خاصة وأن مستخدمي Red Hat / CentOS لديهم مجموعة بنفس اسم المستخدم ، ويكون المستخدم هو العضو الوحيد. وبالتالي ، بشكل افتراضي ، سيتم مشاركة الملفات التي ينشئها المستخدم.
تخيل موقفًا يعمل فيه مستخدمو linda و lori في المحاسبة وهم أعضاء في مجموعة
الحسابات . بشكل افتراضي ، يكون هؤلاء المستخدمون أعضاء في المجموعة الخاصة التي هم العضو الوحيد فيها. ومع ذلك ، فإن كلا المستخدمين أعضاء في مجموعة الحسابات ، ولكن أيضًا كمعلمة للمجموعة الثانوية.
الموقف الافتراضي هو أنه عندما يقوم أي من هؤلاء المستخدمين بإنشاء ملف ، تصبح المجموعة الرئيسية هي المالك. لذلك ، افتراضيًا ، لا تستطيع linda الوصول إلى الملفات التي أنشأتها lori ، والعكس صحيح. ومع ذلك ، إذا قمت بإنشاء دليل مشترك لمجموعة (say / groups / account) وتأكد من تطبيق إذن SGID على هذا الدليل ومن تعيين حساب المجموعة على أنه مالك المجموعة لهذا الدليل ، وجميع الملفات التي تم إنشاؤها في هذا الدليل وفي جميع الأدلة الفرعية الخاصة به ، احصل أيضًا على مجموعات الحسابات كمالك المجموعة الافتراضي.
لهذا السبب ، يعد إذن SGID إذنًا مفيدًا للغاية للتثبيت على أدلة المجموعة المشتركة.
يظهر إذن SGID في الإخراج
ls -ld كـ
s في الموضع حيث تجد عادةً إذن لتنفيذ المجموعة:
[root@hnl data]
الثالث من أذونات خاصة هو بت لزجة. يفيد هذا الإذن لحماية الملفات من الحذف العرضي في بيئة حيث يكون لدى العديد من المستخدمين أذونات الكتابة إلى نفس الدليل. إذا تم استخدام قطعة لاصقة ، يمكن للمستخدم حذف ملف فقط إذا كان هو صاحب الملف أو الدليل الذي يوجد به الملف. لهذا السبب ، يتم استخدامه كإذن افتراضي للدليل / tmp وقد يكون مفيدًا أيضًا لأدلة المجموعة المشتركة.
بدون عنصر لاصق ، إذا تمكن المستخدم من إنشاء ملفات في دليل ، فيمكنه أيضًا حذف الملفات من هذا الدليل. في بيئة مجموعة عامة ، يمكن أن يكون هذا مزعج. تخيل المستخدمين linda و lori ، اللذين لديهما أذونات كتابة إلى دليل / data / account واستلم هذه الأذونات من خلال العضوية في مجموعة الحسابات. لذلك ، يمكن لـ linda حذف الملفات التي أنشأتها lori ، والعكس صحيح.
عند استخدام اللزجة ، لا يمكن للمستخدم حذف الملفات إلا إذا كان أحد الشروط التالية صحيحاً:
- المستخدم هو صاحب الملف ؛
- المستخدم هو مالك الدليل الذي يوجد به الملف.
عند استخدام
ls -ld ، يمكنك رؤية
اللصقة مثل
t في الموضع حيث ترى عادةً إذن التنفيذ للآخرين:
[root@hnl data]
حقوق معززة
لتطبيق SUID و SGID و bit bity ، يمكنك أيضًا استخدام
chmod . تحتوي SUID على قيمة رقمية قدرها 4 ، و SGID لها قيمة رقمية قدرها 2 ، والقيمة اللاصقة لها قيمة رقمية هي 1.
إذا كنت تريد تطبيق هذه الأذونات ، فأنت بحاجة إلى إضافة وسيطة من أربعة أرقام إلى
chmod ، حيث يشير الرقم الأول منها إلى أذونات خاصة. السطر التالي ، على سبيل المثال ، سيضيف إذن SGID إلى الدليل ويعيّن rwx للمستخدم و rx للمجموعة وغيرها:
chmod 2755 /somedir
هذا غير عملي إلى حد ما إذا كنت بحاجة إلى النظر في الأذونات الحالية التي تم تعيينها قبل العمل مع
chmod في الوضع المطلق. (يمكنك تشغيل مخاطر أذونات الكتابة إذا لم تفعل ذلك.) لذلك ، أوصي بالعمل في الوضع النسبي إذا كنت بحاجة إلى تطبيق أي من الأذونات الخاصة:
- لـ SUID ، استخدم chmod u + s .
- بالنسبة إلى SGID ، استخدم chmod g + s .
- بالنسبة للمادة اللاصقة ، استخدم chmod + t ثم اسم الملف أو الدليل الذي تريد تعيين أذونات له.
يلخص الجدول كل ما هو مهم لمعرفته حول إدارة الأذونات الخاصة.

مثال على العمل مع الحقوق الخاصة
في هذا المثال ، يمكنك استخدام أذونات خاصة لتسهيل مشاركة أعضاء الفريق في الملفات في دليل مجموعة مشترك. يمكنك تعيين معرّف البت لمعرف المجموعة المحدد ، وكذلك البت اللاصق ، وترى أنه بعد تثبيته ، تتم إضافة وظائف تسهل العمل المشترك لأعضاء المجموعة.
- فتح المحطة حيث كنت مستخدم ليندا. يمكنك إنشاء مستخدم باستخدام useradd linda ، إضافة كلمة المرور passwd linda .
- قم بإنشاء دليل / بيانات ودليل فرعي / بيانات / مبيعات في الجذر باستخدام الأمر mkdir -p / data / sales . قم بتشغيل القرص المضغوط / البيانات / المبيعات للانتقال إلى دليل المبيعات. قم بتشغيل touch linda1 و touch linda2 لإنشاء ملفين فارغين مملوكين لـ linda.
- قم بتشغيل su-lisa لتبديل المستخدم الحالي إلى lisa ، وهو أيضًا عضو في مجموعة المبيعات.
- شغّل cd / data / sales ومن هذا الدليل ، نفذ ls -l . سترى ملفين تم إنشاؤه بواسطة ليندا وينتميان إلى مجموعة ليندا. تشغيل rm -f linda * . هذا سيحذف كلا الملفين.
- قم بتشغيل touch lisa1 و touch lisa2 لإنشاء ملفين ينتميان إلى المستخدم lisa.
- قم بتشغيل su - لرفع الامتيازات الخاصة بك إلى مستوى الجذر.
- قم بتشغيل chmod g + s ، o + t / data / sales لتعيين بت معرف معرف المجموعة (GUID) ، وكذلك البت اللاصق في دليل المجموعة المشترك.
- تشغيل سو ليندا . ثم المس linda3 ولمس linda4 . يجب أن ترى الآن أن الملفين اللذين قمت بإنشائهما ينتميان إلى مجموعة المبيعات ، والتي هي مالك مجموعة دليل / data / sales.
- تشغيل rm -rf ليزا * . يمنع Sticky bit حذف هذه الملفات نيابة عن linda نظرًا لأنك لا تملك هذه الملفات. يرجى ملاحظة أنه إذا كان ليندا هو مالك دليل / data / sales ، فيمكنه حذف هذه الملفات على أي حال!
إدارة قوائم ACL (setfacl ، getfacl) على Linux
حتى إذا كانت الحقوق الموسعة التي تمت مناقشتها أعلاه تضيف وظيفة مفيدة لكيفية عمل Linux مع الأذونات ، فإن هذا لا يسمح لك بمنح أذونات لأكثر من مستخدم واحد أو مجموعة واحدة في ملف واحد.توفر قوائم التحكم في الوصول هذه الميزة. بالإضافة إلى ذلك ، يسمحون للمسؤولين بتعيين الأذونات الافتراضية بطريقة معقدة يمكن أن تختلف بها أذونات المجموعة في دلائل مختلفة.فهم ACLs
على الرغم من أن النظام الفرعي ACL يضيف وظائف رائعة إلى الخادم الخاص بك ، إلا أن له عيبًا واحدًا: لا تدعمه جميع الأدوات المساعدة. لذلك ، قد تفقد إعدادات ACL عند نسخ الملفات أو نقلها ، وقد لا يقوم برنامج النسخ الاحتياطي بعمل نسخة احتياطية من إعدادات ACL.لا تدعم الأداة المساعدة tar قوائم ACL. لضمان عدم فقد إعدادات ACL عند النسخ الاحتياطي ، استخدم النجمة بدلاً من القطران. نجمة تعمل مع نفس المعلمات القطران. يضيف فقط دعم إعدادات ACL.يمكنك أيضًا عمل نسخة احتياطية من قائمة ACL باستخدام getfacl ، والتي يمكن استعادتها باستخدام الأمر setfacl. لإنشاء نسخة احتياطية ، استخدمgetfacl -R / الدليل> file.acls . لاستعادة الإعدادات من ملف النسخ الاحتياطي ، استخدم setfacl --restore = file.acl .لا ينبغي أن يكون نقص الدعم مع بعض الأدوات مشكلة. غالبًا ما يتم تطبيق قوائم ACL على الدلائل كإجراء هيكلي ، بدلاً من الملفات الفردية.لذلك ، لن يكون هناك الكثير ، ولكن قلة قليلة فقط ، يتم تطبيقها في الأماكن الذكية لنظام الملفات. لذلك ، فإن استعادة قوائم ACL الأصلية التي عملت معها أمر سهل نسبيًا ، حتى إذا كان برنامج النسخ الاحتياطي لا يدعمها.تحضير نظام الملفات للحصول على ACL
قبل أن تبدأ العمل مع قوائم ACL ، قد تحتاج إلى إعداد نظام ملفات لدعم قوائم ACL. نظرًا لأن بيانات تعريف نظام الملفات تحتاج إلى توسيع ، فلا يوجد دائمًا دعم افتراضي ل ACLs في نظام الملفات. إذا تلقيت رسالة "العملية غير مدعومة" عند تكوين قوائم ACL لنظام الملفات ، فقد لا يكون نظام الملفات لديك يدعم ACL.لإصلاح ذلك ، تحتاج إلى إضافة خيار acl mount في ملف / etc / fstab بحيث يتم تثبيت نظام الملفات بدعم ACL افتراضيًا.تغيير وعرض إعدادات ACL مع setfacl و getfacl
لتعيين ACL ، تحتاج إلى الأمر setfacl . لرؤية إعدادات ACL الحالية ، تحتاج إلى getfacl . الأمر يرة سورية -l يظهر أي ACL القائمة؛ يظهر ببساطة + بعد قائمة الأذونات ، مما يشير إلى أن قوائم ACL تنطبق على الملف أيضًا.قبل تكوين قوائم ACL ، من المفيد دائمًا إظهار إعدادات ACL الحالية باستخدام getfacl . أدناه مع مثال يمكنك مشاهدة الأذونات الحالية ، كما هو موضح مع ls -ld ، وكذلك كما هو موضح مع getfacl . إذا نظرت بعناية كافية ، سترى أن المعلومات المعروضة هي نفسها تمامًا. [root@server1 /]
كنتيجة لأمر getfacl ، يمكنك أن ترى أدناه أن الأذونات معروضة لثلاثة كائنات مختلفة: المستخدم والمجموعة وغيرها. الآن ، دعونا نضيف ACL لمنح أذونات القراءة والتنفيذ لمجموعة المبيعات. الأمر لهذا هو setfacl -mg: sales: rx / dir . في هذا الأمر ، يشير m إلى أنه يجب تغيير إعدادات ACL الحالية. بعد ذلك ، يخبر g: sales: rx الفريق بتعيين ACL على القراءة والتنفيذ ( rx ) لمبيعات المجموعة ( g ). يمكنك أدناه رؤية كيف يبدو الأمر ، وكذلك إخراج أمر getfacl بعد تغيير إعدادات ACL الحالية. [root@server1 /]
الآن بعد أن فهمت كيفية إعداد ACL للمجموعة ، أصبح من السهل فهم ACL للمستخدمين والمستخدمين الآخرين. على سبيل المثال ، يمنح الأمر setfacl -mu: linda: rwx / data أذونات لمستخدم linda في دليل / data ، دون جعله المالك أو تغيير وجهة المالك الحالي.يحتوي الأمر setfacl على العديد من الميزات والخيارات. خيار واحد مهم بشكل خاص ، الخيار -R . في حالة استخدام هذا الخيار ، يقوم هذا الخيار بتكوين قائمة التحكم في الوصول (ACL) لجميع الملفات والدلائل الموجودة حاليًا في الدليل حيث تقوم بتثبيت ACL. يوصى دائمًا باستخدام هذا الخيار عند تعديل قوائم ACL للدلائل الموجودة.العمل مع ACLs الافتراضي
أحد فوائد استخدام قوائم ACL هو أنه يمكنك منح أذونات لعدة مستخدمين أو مجموعات في الدليل. ميزة أخرى هي أنه يمكنك تمكين الوراثة من خلال العمل مع ACL الافتراضي.عن طريق تعيين قائمة التحكم في الوصول الافتراضية ، يمكنك تحديد الأذونات التي سيتم تعيينها لجميع العناصر الجديدة التي تم إنشاؤها في الدليل. ضع في اعتبارك أن ACL الافتراضي لا يغير أذونات الملفات والدلائل الموجودة. لتغييرها ، تحتاج إلى إضافة دوري أبطال آسيا دوري!هذا هو المهم أن نعرف. إذا كنت ترغب في استخدام قائمة التحكم في الوصول لتكوين الوصول لعدة مستخدمين أو مجموعات إلى نفس الدليل ، يجب عليك تعيين قائمة التحكم في الوصول مرتين. استخدم أولاً setfacl -R -m لتغيير قائمة ACL للملفات الحالية. ثم استخدمsetfacl -md: للعناية بجميع العناصر الجديدة التي سيتم إنشاؤها أيضًا.لتعيين قائمة التحكم في الوصول الافتراضية ، تحتاج فقط إلى إضافة الخيار d بعد الخيار -m (الأمر مهم!). لذلك استخدم setfacl -md: g: sales: rx / data إذا كنت تريد أن تقرأ مجموعة المبيعات وتنفذ الوصول إلى أي شيء سيتم إنشاؤه في دليل / data.عند استخدام قوائم ACL الافتراضية ، قد يكون من المفيد أيضًا تعيين قوائم ACL للآخرين. هذا عادة لا يكون له معنى كبير ، لأنه يمكنك أيضًا تغيير الأذونات للآخرين الذين يستخدمون chmod . ومع ذلك ، ما لا يمكنك القيام به مع chmod، يشير هذا إلى الحقوق التي يجب منحها للمستخدمين الآخرين لكل ملف جديد سيتم إنشاؤه على الإطلاق. إذا كنت تريد ألا يحصل الآخرون على أي أذونات لأي شيء تم إنشاؤه في / data ، على سبيل المثال ، استخدم setfacl -md: o :: - / data .ACLs والأذونات العادية ليست دائما متكاملة بشكل جيد. يمكن أن تحدث مشكلات إذا قمت بتطبيق ACL الافتراضي على دليل ، وبعد ذلك تمت إضافة العناصر إلى هذا الدليل ، ثم حاول تغيير الأذونات العادية. لن تنعكس التغييرات التي تنطبق على الأذونات العادية جيدًا في نظرة عامة على ACL. لتجنب المشكلات ، قم أولاً بتعيين الأذونات العادية ، ثم قم بتعيين قوائم ACL الافتراضية (ثم حاول عدم تغييرها مرة أخرى).مثال متقدم لإدارة الحقوق باستخدام قوائم ACL
في هذا المثال ، سوف تستمر في العمل مع الدلائل / البيانات / الحساب و / البيانات / المبيعات التي قمت بإنشائها مسبقًا. في الأمثلة السابقة ، ضمنت أن مجموعة المبيعات لديها أذونات لـ / data / sales ، وأن مجموعة الحسابات لديها أذونات لـ / data / account.أولاً ، تأكد من حصول مجموعة الحسابات على أذونات قراءة في دليل / data / account ، وأن تحصل مجموعة المبيعات على أذونات للقراءة في دليل / data / account.ثم تقوم بتعيين قوائم ACL الافتراضية للتأكد من أن كافة الملفات الجديدة بها أذونات تم تعيينها بشكل صحيح لجميع العناصر الجديدة.- فتح محطة.
- تشغيل setfacl -mg: account: rx / data / sales و setfacl -mg: sales: rx / data / account .
- getfacl , , , .
- setfacl -md:g:account:rwx,g:sales:rx /data/sales , ACL sales.
- ACL /data/account, setfacl -md:g:sales:rwx,g:account:rx /data/account .
- , ACL , /data/sales. touch /data/sales/newfile getfacl /data/sales/newfile .
umask
أعلاه ، تعلمت كيفية التعامل مع قوائم ACL بشكل افتراضي. إذا كنت لا تستخدم ACL ، فهناك معلمة shell تحدد الحقوق الافتراضية التي ستتلقاها : umask (قناع للخلف). في هذا القسم ، سوف تتعلم كيفية تغيير الأذونات الافتراضية باستخدام umask .ربما لاحظت أنه عند إنشاء ملف جديد ، يتم تعيين بعض الأذونات الافتراضية. يتم تحديد هذه الأذونات بواسطة إعداد umask . ينطبق خيار shell هذا على جميع المستخدمين عند تسجيل الدخول. تستخدم المعلمة umask قيمة رقمية يتم طرحها من الحد الأقصى للأذونات التي يمكن تعيينها تلقائيًا للملف ؛ الحد الأقصى لإعداد الملفات هو 666 ، وللدلائل - 777.ومع ذلك ، تنطبق بعض الاستثناءات على هذه القاعدة. يمكنك العثور على نظرة عامة كاملة على إعدادات umask في الجدول أدناه.من الأرقام المستخدمة في umask ، كما في حالة الوسائط الرقمية للأمر chmod ، يشير الرقم الأول إلى أذونات المستخدم ، ويشير الرقم الثاني إلى أذونات المجموعة ، ويشير الأخير إلى الأذونات الافتراضية المعينة للآخرين. تعطي القيمة umask الافتراضية 022 644 لجميع الملفات الجديدة و 755 لجميع الدلائل الجديدة التي تم إنشاؤها على الخادم الخاص بك.نظرة عامة كاملة على جميع القيم الرقمية umask ونتائجها في الجدول أدناه.
طريقة سهلة لمعرفة كيفية عمل المعلمة umask هي كما يلي: ابدأ بالأذونات الافتراضية للملف الذي تم تعيينه على 666 ، وطرح umask للحصول على أذونات صالحة. افعل الشيء نفسه بالنسبة للدليل والأذونات الافتراضية الخاصة به وهي 777.هناك طريقتان لتغيير إعداد umask: لكل المستخدمين والمستخدمين الفرديين. إذا كنت ترغب في تثبيت umask لجميع المستخدمين ، يجب عليك التأكد من أن خيار umask يؤخذ في الاعتبار عند تشغيل ملفات بيئة shell ، كما هو محدد في / etc / profile. تتمثل الطريقة الصحيحة في إنشاء برنامج نصي shell باسم umask.sh في دليل /etc/profile.d وتحديد umask الذي تريد استخدامه في هذا البرنامج النصي shell. إذا تم تغيير umask في هذا الملف ، فسيتم تطبيقه على جميع المستخدمين بعد تسجيل الدخول إلى الخادم.بديل لتكوين umask خلال / etc / profile والملفات ذات الصلة ، حيث يتم تطبيقه على جميع المستخدمين على النظام ، هو تغيير إعدادات umask في ملف يسمى .profile ، والذي يتم إنشاؤه في الدليل الرئيسي لكل مستخدم.يتم تطبيق الإعدادات المطبقة في هذا الملف على مستخدم فردي فقط ؛ لذلك ، هذه طريقة جيدة إذا كنت بحاجة إلى مزيد من التفاصيل. أنا شخصياً أحب هذه الميزة تغيير قيمة umask الافتراضية للمستخدم الجذر إلى 027 ، بينما يعمل المستخدمون العاديون مع umask 022 الافتراضي.العمل مع سمات المستخدم المتقدمة
هذا هو القسم الأخير عن حقوق لينكس.عند التعامل مع الأذونات ، هناك دائمًا علاقة بين كائن مستخدم أو مجموعة والأذونات التي يتمتع بها هذان المستخدمان أو كائنات المجموعة للملف أو الدليل. طريقة بديلة لحماية الملفات على خادم Linux هي العمل مع السمات.تؤدي السمات وظيفتها بغض النظر عن المستخدم الذي يصل إلى الملف.كما هو الحال مع قوائم ACL ، قد تحتاج سمات الملف إلى تضمين خيار التحميل .هذا هو الخيار user_xattr . إذا تلقيت رسالة "العملية غير مدعومة" عند التعامل مع سمات المستخدم المتقدمة ، فتأكد من ضبط معلمة التحميل في ملف / etc / fstab.يتم توثيق العديد من السمات. بعض السمات متاحة ولكن لم تنفذ بعد. لا تستخدمها ؛ لن يجلب لك أي شيء.وفيما يلي معظم السمات المفيدة التي يمكن تطبيقها:A هذه السمة يضمن أن الوقت الوصول إلى الملف ملف لا يتغير.عادةً ما يتم فتح ملف في كل مرة ، يجب كتابة وقت وصول الملف إلى البيانات الأولية للملف. هذا يؤثر سلبا على الأداء ؛ لذلك ، بالنسبة للملفات التي يتم الوصول إليها بانتظام ، يمكن استخدام السمة A لتعطيل هذه الميزة.و هذه السمة يسمح لك لإضافة، لكنه لم حذف الملف.جإذا كنت تستخدم نظام ملفات يدعم ضغط مستوى الصوت ، فإن سمة الملف هذه تضمن ضغط الملف في المرة الأولى التي يتم فيها تمكين آلية الضغط.D تضمن هذه السمة أن التغييرات التي يتم إجراؤها على الملفات تتم كتابتها على القرص على الفور ، ولا يتم تخزينها مؤقتًا في المقام الأول. هذه سمة مفيدة في ملفات قاعدة البيانات المهمة ، مع التأكد من عدم ضياعها بين ذاكرة التخزين المؤقت للملف والقرص الصلب.د تضمن هذه السمة عدم حفظ الملف في نسخ احتياطية حيث يتم استخدام أداة التفريغ.أناتتيح هذه السمة فهرسة الدليل الذي يتم تضمينه فيه. يوفر هذا وصولاً أسرع للملفات لأنظمة الملفات البدائية مثل Ext3 ، والتي لا تستخدم قاعدة بيانات B-tree للوصول السريع إلى الملفات.ط هذه السمة تجعل الملف دون تغيير. لذلك ، لا يمكنك إجراء تغييرات على الملف ، وهو أمر مفيد للملفات التي تحتاج إلى حماية إضافية.ي هذا يضمن السمة التي الملف ext3 ونظام الملفات أولا مكتوبة إلى سجل، وبعد ذلك - في كتل البيانات على القرص الثابت.s الكتابة فوق الكتل التي تم حفظ الملف فيها لمدة 0 ثانية بعد حذف الملف. هذا يضمن أن استرداد الملفات غير ممكن بعد أن تم حذفه.شهذه السمة تخزن معلومات الحذف. يسمح لك هذا بتطوير أداة مساعدة تعمل مع هذه المعلومات لحفظ الملفات المحذوفة.إذا كنت ترغب في تطبيق السمات ، يمكنك استخدام الأمر chattr . على سبيل المثال ، استخدم chattr + s somefile لتطبيق السمات على somefile. تحتاج إلى إزالة سمة؟ ثم استخدم chattr -s somefile وسيتم حذفه. للحصول على نظرة عامة على جميع السمات المستخدمة حاليًا ، استخدم الأمر lsattr .ملخص
في هذه المقالة ، تعلمت كيفية التعامل مع الأذونات. تقرأ عن ثلاثة أذونات أساسية ، أذونات متقدمة ، وكيفية تطبيق قوائم ACL على نظام الملفات. لقد تعلمت أيضًا كيفية استخدام المعلمة umask لتطبيق الأذونات الافتراضية. في نهاية هذه المقالة ، تعلمت كيفية استخدام السمات المتقدمة للمستخدم لتطبيق طبقة إضافية من أمان نظام الملفات.إذا كنت تحب هذه الترجمة ، فيرجى الكتابة عنها في التعليقات. سيكون هناك المزيد من الدافع لعمل ترجمات مفيدة.. .
« - .» « - .», .
berez .
:
, , , .
:
, , , . , , , .
CryptoPirate