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

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




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

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

هناك ثلاث مجموعات من الأذونات. المجموعة الأولى مخصصة لمالك الدليل أو الملف. ما لم يتم تغيير الملكية باستخدام

chown 

المالك هو الشخص الذي قام بإنشاء الدليل أو الملف.

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

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

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


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

بتات الوضع

يمكنك رؤية الأذونات الخاصة بالملفات باستخدام ls الأمر و

-l 

خيار (التنسيق الطويل).

ls -l any*

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

ls -ld

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

touch umask-article.txt

mkdir howtogeek

stat umask-article.txt | grep "Access: ("

stat howtogeek | grep "Access: ("


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

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

قيمة أوماسك

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

umask

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

وللجذر:

umask


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

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

تمامًا مثل بتات الوضع، تمثل قيمة umask نفس المجموعات الثلاث من الأذونات – المالك والمجموعة وغيرها – وتمثلها بثلاثة أرقام ثماني. سترى أحيانًا أنها مكتوبة بأربعة أرقام، حيث يكون الرقم الأول صفرًا. هذه طريقة مختصرة لقول “هذا رقم ثماني”. الأرقام الثلاثة الموجودة في أقصى اليمين هي التي يتم حسابها.

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


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

كيف يقوم umask بإخفاء الأذونات

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

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

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

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


stat umask-article.txt | grep "Access: ("

stat howtogeek | grep "Access: ("

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

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

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

sudo mkdir root-dir

stat howtogeek | grep "Access: ("

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

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


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

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

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

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

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

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

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

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


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

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

gedit .bashrc

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

أضف إعداد umask الخاص بك بالقرب من أعلى الملف.

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

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


umask

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

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

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

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

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

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

umask 077

umask

تعيين قيمة umask مؤقتة


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

mkdir secure-dir

ls -ld secure-dir

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

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

mkdir secure-file.txt

ls -ld secure-file.txt

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

الملف آمن ضد التطفل من قبل أي مستخدمين آخرين. يؤدي إغلاق نافذة المحطة الطرفية إلى التخلص من إعداد umask المؤقت.


طرق أخرى لاستخدام umask

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

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

less /etc/fstab

النظر إلى ملف /etc/fstab مع أقل

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

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

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


ls /boot/efi -ld

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

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

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

أضف تعليق