نظرة عامة
نستعرض في هذا الدليل مبادئ العمل الأساسية لـ umask، والذي يحدد أذونات الوصول الافتراضية للملفات والأدلة المنشأة حديثاً في بيئة لينكس. كما نلخص تقنيات الإدارة الأساسية التي يمكن الاستفادة منها عملياً على الفور، بدءاً من طريقة الحساب بالنظام الثماني وحتى التحكم في أذونات أدلة العمل الجماعي والتكوين الدائم عبر ملفات تعريف الشل.
1. التحقق من umask الحالي واختبار أذونات إنشاء الملفات والأدلة الافتراضية
لتشغيل بيئة تدريب مخصصة لاختبار إعدادات umask والأذونات، نقوم بتنفيذ الأمر mkdir -p /tmp/umask-lab && cd /tmp/umask-lab لإنشاء الدليل والانتقال إليه.

يقوم الأمر umask بالتحقق من قيمة القناع وضبطها، والتي تقيد أذونات الوصول الافتراضية للملفات والأدلة المنشأة حديثاً.
تُظهر نتيجة التنفيذ أن قيمة القناع الافتراضية للجلسة الحالية مضبوطة على 0022.
⚙️ [الخيارات الرئيسية]
-S : يعرض الأذونات المسموح بها في شكل رمزي سهل الفهم (u=rwx,g=rx,o=rx) بدلاً من الأرقام.-p : يعرض إعداد القناع الحالي بنظام ثماني بصيغة الأمر umask القابلة لإعادة الاستخدام.

عند تنفيذ الأمر umask -S، يمكنك التحقق من الأذونات الفعلية الممنوحة للمستخدم (u)، والمجموعة (g)، والآخرين (o) وفقاً للقناع المطبق حالياً في الوضع الرمزي البديهي.
يشير المخرج u=rwx,g=rx,o=rx إلى منح المالك أذونات القراءة والكتابة والتنفيذ، بينما يُمنح أعضاء المجموعة والآخرون أذونات القراءة والتنفيذ بشكل افتراضي.

للتحقق من أذونات الإنشاء الافتراضية أثناء تطبيق قيمة umask الحالية (0022)، نقوم بإنشاء ملف ودليل جديدين باستخدام الأمر touch default_file.txt && mkdir default_dir.

للتحقق من الأذونات الفعلية للملف والدليل اللذين تم إنشاؤهما، نقوم بتنفيذ الأمر ls -ld default_file.txt default_dir.
يمكنك ملاحظة أن الدليل تم إنشاؤه بالأذونات 755 (drwxr-xr-x) بعد استبعاد القناع 022 من أقصى إذن افتراضي 777، بينما تم إنشاء الملف العادي بالأذونات 644 (-rw-r--r--) بعد استبعاد القناع 022 من أقصى إذن افتراضي 666 (الذي يستثني إذن التنفيذ).

2. تمرين عملي على التحكم في أذونات الملفات الجديدة عبر التغيير المؤقت لقيمة umask
لتأكيد مساحة العمل المخصصة للتدريب والانتقال إليها، نقوم بتنفيذ الأمر mkdir -p /tmp/umask-lab && cd /tmp/umask-lab.

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

للتأكد من تطبيق قيمة umask المعدلة (027) بشكل صحيح على العناصر المنشأة حديثاً، نقوم بإنشاء ملف ودليل اختباريين باستخدام الأمر touch secure_file.txt && mkdir secure_dir.

للتحقق من الأذونات الفعلية للملف والدليل المنشأين، نقوم بتنفيذ الأمر ls -ld secure_file.txt secure_dir.
من خلال المخرجات، يمكنك فحص حالة الأذونات التفصيلية ومعلومات الملكية للدليل والملف.

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

3. إعداد umask لدليل مشترك لبيئات العمل الجماعي وخوادم الويب
لإنشاء دليل مشترك للتعاون الجماعي والعمل المشترك، والانتقال إلى مسار العمل، نقوم بتنفيذ الأمر mkdir -p /tmp/umask-lab/shared && cd /tmp/umask-lab.

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

مع تطبيق قيمة umask المعدلة (002)، نقوم بتنفيذ الأمر touch shared/team_doc.txt && mkdir shared/team_project لإنشاء ملف ودليل للعمل الجماعي.

للتحقق من الأذونات الفعلية للملف والدليل المنشأين، نقوم بتنفيذ الأمر ls -ld shared/team_doc.txt shared/team_project.
تتيح لك المخرجات فحص تفاصيل الأذونات ومعلومات الملكية لكل عنصر تم إنشاؤه داخل الدليل المشترك.

بعد الانتهاء من اختبار بيئة العمل الجماعي، نقوم بتنفيذ الأمر umask 022 لاستعادة القيمة الافتراضية وإرجاع قناع الجلسة إلى حالته الأمنية القياسية.

4. طريقة تطبيق umask بشكل دائم على مستوى النظام ولكل مستخدم
للتحقق من قيمة إعداد umask الافتراضية على مستوى النظام بالكامل، نقوم بتنفيذ الأمر grep -n 'UMASK' /etc/login.defs.
تُظهر المخرجات أن UMASK 022 محدد كقيمة افتراضية للنظام في السطر رقم 151.

لتضمين تعليق يوضح أنه إعداد مخصص للمستخدم، نقوم بتنفيذ الأمر echo '# Custom user umask' >> ~/.bashrc.

لضمان تطبيق الأذونات المخصصة تلقائياً عند بدء كل جلسة شل جديدة، نقوم بتنفيذ الأمر echo 'umask 027' >> ~/.bashrc لإضافة الإعداد.

للتحقق من إضافة إعدادات umask بنجاح إلى نهاية ملف ~/.bashrc، نقوم بتنفيذ الأمر tail -n 2 ~/.bashrc.
تُظهر المخرجات أن التعليق وإعداد umask 027 قد تم إدراجهما بشكل صحيح في السطرين الأخيرين من الملف.

لتطبيق إعدادات ملف ~/.bashrc المعدل والتحقق من قيمة القناع النهائية، نقوم بتنفيذ الأمر bash -c 'source ~/.bashrc && umask'.
تتيح لك المخرجات التحقق من حالة القناع الحالية المطبقة في بيئة الشل هذه.

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