جوهر التحكم التلقائي في أذونات ملفات لينكس! دليل الإعداد العملي والاستخدام الكامل لـ umask

نظرة عامة

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

1. التحقق من umask الحالي واختبار أذونات إنشاء الملفات والأدلة الافتراضية

لتشغيل بيئة تدريب مخصصة لاختبار إعدادات umask والأذونات، نقوم بتنفيذ الأمر mkdir -p /tmp/umask-lab && cd /tmp/umask-lab لإنشاء الدليل والانتقال إليه.

mkdir -p /tmp/umask-lab && cd /tmp/umask-lab

يقوم الأمر umask بالتحقق من قيمة القناع وضبطها، والتي تقيد أذونات الوصول الافتراضية للملفات والأدلة المنشأة حديثاً.
تُظهر نتيجة التنفيذ أن قيمة القناع الافتراضية للجلسة الحالية مضبوطة على 0022.
⚙️ [الخيارات الرئيسية]

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

umask

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

umask -S

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

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 (الذي يستثني إذن التنفيذ).

ls -ld default_file.txt default_dir

2. تمرين عملي على التحكم في أذونات الملفات الجديدة عبر التغيير المؤقت لقيمة umask

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

mkdir -p /tmp/umask-lab && cd /tmp/umask-lab

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

umask 027

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

touch secure_file.txt && mkdir secure_dir

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

ls -ld secure_file.txt secure_dir

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

umask 022

3. إعداد umask لدليل مشترك لبيئات العمل الجماعي وخوادم الويب

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

mkdir -p /tmp/umask-lab/shared && cd /tmp/umask-lab

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

umask 002

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

touch shared/team_doc.txt && mkdir shared/team_project

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

ls -ld shared/team_doc.txt shared/team_project

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

umask 022

4. طريقة تطبيق umask بشكل دائم على مستوى النظام ولكل مستخدم

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

grep -n ‘UMASK’ /etc/login.defs

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

echo ‘# Custom user umask’ » ~/.bashrc

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

echo ‘umask 027’ » ~/.bashrc

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

tail -n 2 ~/.bashrc

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

bash -c ‘source ~/.bashrc && umask’

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