ما هو Umask في Linux ، وكيف تستخدمه؟

نشرت: 2022-07-29
كمبيوتر محمول Linux يعرض موجه bash
fatmawati achmad zaenuri / Shutterstock.com

في Linux ، جميع الأدلة والملفات لها أذونات وصول. يمكنك استخدام chmod لتعيين حقوق الوصول المفضلة لمستخدمين مختلفين. لكن ما الذي يقرر الأذونات الافتراضية الخاصة بهم؟ دعنا نتحدث عن umask .

أذونات الوصول

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

هناك ثلاث مجموعات من الأذونات. مجموعة واحدة لمالك الدليل أو الملف. ما لم يتم تغيير الملكية مع chown ، يكون المالك هو الشخص الذي أنشأ الدليل أو الملف.

كيف تعمل أذونات ملفات Linux؟
ذات صلة كيف تعمل أذونات ملفات Linux؟

المجموعة الثانية من الأذونات مخصصة لأعضاء مجموعة المستخدمين التي تم تعيين الدليل أو الملف لها. عادة ، هذه هي مجموعة المستخدمين للمالك.

هناك مجموعة ثالثة وأخيرة من الأذونات لـ "الآخرين". إنه ملف شامل للجميع غير موجود في أول مجموعتين.

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

بتات الوضع

يمكنك رؤية أذونات الملفات باستخدام الأمر ls والخيار -l (تنسيق طويل).

 ls -l أي *

سننظر أيضًا في الدليل عن طريق إضافة الخيار -d (الدليل). بدون هذا الخيار ، قد ينظر ls إلى الملفات الموجودة داخل الدليل ، وليس في الدليل نفسه.

 ls -ld 

استخدام الأمر ls لمعرفة الأذونات على الدلائل والملفات

في بداية كل إدخال في قائمة ls ، هناك مجموعة من 10 أحرف. إليك لقطة مقرّبة لهذه الأحرف لملف ودليل.

أذونات الملف والدليل ، عن قرب

الملف هو السطر العلوي ، والدليل هو السطر السفلي. يخبرنا الحرف الأول ما إذا كنا نبحث في دليل أو ملف. يشير الحرف "d" إلى دليل بينما تشير الشرطة " - " إلى ملف.

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

بالنسبة لملف المثال الخاص بنا ، فإن الأحرف العشرة تعني:

  • - : هذا ملف وليس دليلاً.
  • rwx : يمكن للمالك قراءة هذا الملف وكتابته وتنفيذه.
  • rw- : يمكن للأعضاء الآخرين في نفس المجموعة التي تم تعيين هذا الملف لها قراءة الملف والكتابة إليه ، لكن لا يمكنهم تنفيذه.
  • r– : يمكن لأي شخص آخر قراءة الملف فقط.

بالنسبة إلى دليل المثال الخاص بنا ، فإن الأحرف العشرة تعني:

  • د : هذا دليل.
  • rwx : يمكن للمالك قراءة هذا الدليل وكتابته وتنفيذ ( cd into).
  • rwx : يمكن للأعضاء الآخرين في نفس المجموعة القراءة والكتابة cd في هذا الدليل.
  • rx : يمكن لأي شخص آخر إدخال cd إلى هذا الدليل ، لكن يمكنهم قراءة الملفات فقط. لا يمكنهم حذف الملفات أو تحرير الملفات أو إنشاء ملفات جديدة.

يتم تخزين الأذونات في بتات الوضع في البيانات الوصفية للدليل أو الملف. كل بت وضع له قيمة عددية. كل منهم له قيمة صفر إذا لم يتم تعيينها.

  • r : قيمة بت القراءة هي 4 إذا تم ضبطها.
  • w : قيمة بت الكتابة 2 إذا تم ضبطها.
  • x : قيمة بت التنفيذ هي 1 إذا تم ضبطها.

يمكن تمثيل مجموعة من ثلاثة أذونات من خلال مجموع قيم البت. القيمة القصوى هي 4 + 2 + 1 = 7 ، مما يؤدي إلى تعيين الأذونات الثلاثة في مجموعة على "تشغيل". هذا يعني أنه يمكن التقاط جميع التباديل للمجموعات الثلاث في قيمة Octal (الأساس 8) المكونة من ثلاثة أرقام.

بأخذ مثالنا للملف أعلاه ، فقد قرأ المالك الأذونات وكتابتها وتنفيذها ، وهي 4 + 2 + 1 = 7. الأعضاء الآخرون في المجموعة التي يوجد بها الملف لديهم أذونات القراءة والكتابة ، وهي 4 + 2 = 6. تحتوي الفئة الأخرى فقط على مجموعة أذونات القراءة ، وهي ببساطة 4.

لذلك يمكن التعبير عن أذونات هذا الملف كـ 764.

باستخدام نفس المخطط ، ستكون أذونات الدليل 775. يمكنك مشاهدة تمثيل Octal للأذونات باستخدام الأمر stat .

كيفية استخدام الأمر chmod على نظام Linux
ذات صلة كيفية استخدام الأمر chmod على Linux

الأمر chmod ( ch ange mod e bits) هو الأداة المستخدمة لتعيين الأذونات على الدلائل والملفات. لكنها لا تملي الأذونات التي يتم تعيينها على دليل أو ملف عند إنشائه. يتم استخدام مجموعة افتراضية من الأذونات لذلك.

الأذونات الافتراضية و Umask

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

كيفية استخدام الأمر stat على لينكس
ذات الصلة كيفية استخدام الأمر stat على لينكس

ومع ذلك ، إذا أنشأت دليلًا جديدًا وملفًا جديدًا وألقيت نظرة على أذوناتهم ، فلن يتم تعيينهم على 777 و 666. سننشئ ملفًا ودليلًا ، ثم نستخدم stat piped عبر grep لاستخراج السطر باستخدام التمثيل الثماني لأذوناتهم.

 المس umask- article.txt
 مكدير howtogeek
 stat umask-article.txt | grep "الوصول: ("
 stat howtogeek | grep "الوصول: (" 

الأذونات الافتراضية لدليل وملف ، وإخراج الحالة لكل منهما

تم ضبطهما على 775 للدليل و 664 للملف. لم يتم تعيينها على الأذونات الافتراضية العامة لأن قيمة أخرى تعدلها ، تسمى قيمة umask.

قيمة umask

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

 Umask 

قيمة umask لمستخدم عادي

وللجذر:

 Umask 

قيمة Umask للمستخدم الجذر

الأذونات على دليل أو ملف تم إنشاؤه حديثًا هي نتيجة لقيمة umask التي تعدل الأذونات الافتراضية العامة.

تمامًا مثل بتات الوضع ، تمثل قيمة umask نفس المجموعات الثلاث من الأذونات - المالك والمجموعة وغيرهم - وتمثلهم في شكل ثلاثة أرقام Octal. ستراها في بعض الأحيان مكتوبة على هيئة أربعة أرقام ، بحيث يكون الرقم الأول صفرًا. هذه طريقة مختصرة لقول "هذا رقم ثماني". يتم حساب أقصى ثلاثة أرقام في اليمين.

لا يمكن لقيمة umask إضافة أذونات. يمكنه فقط إزالة - أو إخفاء - الأذونات. هذا هو السبب في أن الأذونات الافتراضية ليبرالية للغاية. لقد تم تصميمها بحيث يتم تخفيضها إلى مستويات معقولة من خلال تطبيق قيمة umask.

مجموعة واحدة من الأذونات الافتراضية لن تناسب جميع المستخدمين ، ولن تناسب جميع السيناريوهات. على سبيل المثال ، ستحتاج الدلائل والملفات التي تم إنشاؤها بواسطة الجذر إلى أذونات أكثر تقييدًا من المستخدم العادي. وحتى المستخدم العادي لا يريد أن يتمكن الجميع في فئة الآخرين من رؤية ملفاتهم وتغييرها.

كيف أقنع أقنعة خارج الأذونات

يمنحك طرح قيمة القناع من الأذونات الافتراضية الأذونات الفعلية. بمعنى آخر ، إذا تم تعيين إذن في قيمة umask ، فلن يتم تعيينه في الأذونات المطبقة على الدليل أو الملف.

تعمل قيم umask كعكس لقيم الأذونات المعتادة.

  • 0 : لم تتم إزالة أي أذونات.
  • 1 : لم يتم ضبط بت التنفيذ في الأذونات.
  • 2 : لم يتم ضبط بت الكتابة في الأذونات.
  • 4 : لم يتم ضبط بت القراءة في الأذونات.

تم تعديل الأذونات الافتراضية 777 للأدلة و 666 للملفات بواسطة قيمة umask 002 للحصول على الأذونات النهائية لـ 775 و 664 في دليل الاختبار والملف.

 stat umask-article.txt | grep "الوصول: ("
 stat howtogeek | grep "الوصول: (" 

الأذونات النهائية على دليل وملف

يؤدي هذا إلى إزالة إذن الكتابة من فئة الآخرين على كل من الدليل والملف.

إذا كان الجذر ينشئ دليلاً ، فسيتم تطبيق قيمة Umask الخاصة بهم البالغة 022. تمت إزالة إذن الكتابة لفئة الآخرين وفئة المجموعة أيضًا.

 sudo mkdir root-dir
 stat howtogeek | grep "الوصول: (" 

الإذن عندما يقوم الجذر بإنشاء دليل

يمكننا أن نرى أنه تم تقليل الأذونات الافتراضية لـ 777 إلى 755.

ذات صلة: كيفية تدقيق أمان نظام Linux الخاص بك مع Lynis

تغيير قيمة Umask الافتراضية

هناك قيم مختلفة لـ umask لأغلفة تسجيل الدخول والأغلفة التي لا تسجل الدخول. قذائف تسجيل الدخول هي الصدفات التي تتيح لك تسجيل الدخول ، إما محليًا أو عن بُعد عبر SSH. القشرة التي لا تقوم بتسجيل الدخول هي قشرة داخل نافذة طرفية عندما تكون مسجلاً الدخول بالفعل.

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

في Ubuntu و Manjaro ، يمكن العثور على إعدادات Umask في هذه الملفات:

  • تسجيل الدخول إلى Shell umask : لقيمة umask الافتراضية لصدفة تسجيل الدخول: / etc / profile
  • غلاف عدم تسجيل الدخول: بالنسبة لقيمة umask الافتراضية لصدفة عدم تسجيل الدخول: /etc/bash.bashrc

في Fedora ، يمكن العثور على إعدادات umask في هذه الملفات:

  • تسجيل الدخول إلى Shell umask : قيمة umask الافتراضية لتسجيل الدخول: / etc / profile
  • غلاف عدم تسجيل الدخول : بالنسبة لقيمة umask الافتراضية لصدفة عدم تسجيل الدخول: / etc / bashrc

إذا لم تكن لديك حاجة ملحة لتغييرها ، فمن الأفضل تركها وشأنها.

الطريقة المفضلة هي تعيين قيمة Umask جديدة لأي حسابات مستخدم فردية تحتاج إلى أن تختلف عن القيمة الافتراضية. يمكن وضع إعداد umask جديد في ملف ".bashrc" الخاص بالمستخدم في دليل المنزل.

 gedit .bashrc 

فتح ملف .bashrc في محرر

أضف إعدادات Umask بالقرب من أعلى الملف.

إضافة قيمة umask إلى ملف bashrc

احفظ الملف وأغلق المحرر. افتح نافذة طرفية جديدة وتحقق من قيمة umask باستخدام الأمر umask .

 Umask 

التحقق من قيمة Umask الجديدة

القيمة الجديدة نشطة.

ذات صلة: كيفية الاتصال بخادم SSH من Windows أو macOS أو Linux

تغييرات قصيرة المدى في Umask

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

يمكنك ضبط قيمة umask على 077 ، ثم تحقق من أن القيمة الجديدة نشطة.

 محمد صلاح الدعيج 077
 Umask 

تحديد قيمة Umask مؤقتة

يعني تعيين القناع على القيمة 7 في المجموعة وفئات أخرى أنه تم تجريد جميع الأذونات من هذه الفئات. لن يتمكن أي شخص غيرك (والجذر) من إدخال الدلائل الجديدة وقراءة ملفاتك وتحريرها.

 مكدير Secure-dir
 ls -ld secure-dir 

إنشاء دليل جديد في جلسة بقيمة Umask مؤقتة

الأذونات الوحيدة هي لمالك الدليل.

 mkdir secure-file.txt
 ls -ld secure-file.txt 

إنشاء ملف جديد في جلسة بقيمة Umask مؤقتة

الملف آمن ضد التطفل من أي مستخدمين آخرين. يؤدي إغلاق نافذة الجهاز الطرفي إلى تجاهل إعداد المظلة المؤقتة.

طرق أخرى يتم استخدامها

يسمح Linux لبعض العمليات بوراثة قيم النظام ، أو الحصول على إعدادات Umask الخاصة بها. على سبيل المثال ، يستخدم useradd إعداد umask لإنشاء أدلة منزلية للمستخدمين الجدد.

يمكن تطبيق قيمة umask على نظام ملفات أيضًا.

 أقل / الخ / fstab 

النظر في ملف / etc / fstab بأقل

على هذا الكمبيوتر ، يحتوي نظام الملفات "/ boot / efi" على إعداد umask يبلغ 077 المطبق عليه.

إعداد umask في ملف / etc / fstab

بالنظر إلى نقطة تحميل نظام الملفات باستخدام ls ، يمكننا التحقق من أن قيمة umask قد أزالت جميع الأذونات من الجميع باستثناء المالك ، الجذر.

 ls / التمهيد / efi -ld 

استخدام ls لرؤية الأذونات على نقطة تحميل نظام الملفات "/boot./efi"

umask والأذونات بحاجة إلى بعضها البعض

يتم تطبيق الأذونات الافتراضية على دليل أو ملف بعد أن يتم تحويلهما بواسطة قيمة umask. سيكون من النادر جدًا أن تحتاج إلى تغيير قيمة umask بشكل دائم للمستخدم ، ولكن تعيين قيمة umask مؤقتًا لمنح مجموعة أكثر إحكامًا من الأذونات أثناء إنشاء مجموعة من الدلائل أو المستندات الحساسة هي طريقة سريعة وسهلة لتعزيز الأمان.

ذات صلة: كيفية تأمين خادم Linux الخاص بك باستخدام جدار حماية UFW