تعيين umask مخصص في macOS

يحتوي كل ملف أو مجلد في Mac الخاص بك على مجموعة من الأذونات. وعند إنشاء ملف أو مجلد جديد، يحدّد umask إعدادات هذه الأذونات.

حول الأذونات وumasks

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

الأذونات

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

لجعل أذونات POSIX الخاصة بالمستخدم أكثر أو أقل تقيدًا، يمكنك ضبط قيمة umask الخاصة بها.

Umasks

بإمكان عدد مكون من ثلاثة أرقام تمثيل أذونات POSIX لملف. ويمكنك رؤية الأذونات الممثلة بتلك الطريقة عند عرضها من Terminal. ويتراوح كل رقم بين صفر وسبعة. عند إنشاء ملف، يتم طرح قيمة umask من القيمة الافتراضية (عادة 666 للملفات و777 للمجلدات) لتحديد الأذونات للملف أو المجلد الجديد.

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

تأكد من فهمك لـ umasks قبل المتابعة. إذا قمت بتعيين umask على نحو خاطئ، يمكنك أن تفقد دون قصد إمكانية الوصول إلى الملفات أو تمنح حق الوصول لمستخدمين آخرين. راجع قسم "الأوضاع" في صفحة دليل chmod(1)‎ لمزيد من المعلومات.

يمكنك تعيين umask في عدة مواقع مختلفة. ويؤثر كل موقع على تطبيقات مختلفة.

Umask لتطبيقات المستخدمين في macOS High Sierra وmacOS Sierra وOS X El Capitan وOS X Yosemite

في OS X Yosemite الإصدار 10.10.3 والإصدارات الأحدث، قم بتسجيل الدخول كمسؤول وقم بتشغيل هذا الأمر في Terminal:

sudo launchctl config user umask nnn

استبدل بـ nnn قيمة umask التي تريدها، مثل 027 أو 002. وبعد تشغيل هذا الأمر، قد يتعين عليك إعادة تشغيل Mac الخاص بك.

يقوم هذا الأمر بتعيين umask الخاص بالمستخدم لكل تطبيق يفتحه، مثل Finder أو TextEdit أو Final Cut Pro. ويعيِّن umask الخاص بالمستخدم لكل تطبيق يصل إليه من خلال سطر الأوامر. كما يتحكم هذا الأمر في الأذونات التي تم تعيينها في الملفات الجديدة التي تنشئها هذه التطبيقات.

إذا ظهرت لك رسالة "تعذر كتابة التكوين: لا يوجد هذا الملف أو الدليل، فتأكد من أن يكون لديك مجلد /private/var/db/com.apple.xpc.launchd/config. وإذا كان هذا المجلد مفقودًا، فاستخدم هذا الأمر لإنشائه:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

بعد إنشاء هذا المجلد، قم بتشغيل الأمر sudo launchctl config user umask nnn مرة أخرى. لمزيد من المعلومات حول كيفية تعيين umask في OS X Yosemite، قم بتشغيل الأمر man launchctl.

Umask لعمليات النظام في OS X Yosemite

في OS X Yosemite الإصدار 10.10.3 والإصدارات الأحدث، قم بتسجيل الدخول كمسؤول وقم بتشغيل هذا الأمر في Terminal:

sudo launchctl config system umask nnn

استبدل بـ nnn قيمة umask التي تريدها، مثل 027 أو 002. وبعد تشغيل هذا الأمر، قد يتعين عليك إعادة تشغيل Mac الخاص بك.

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

إذا ظهرت لك رسالة "تعذر كتابة التكوين: لا يوجد هذا الملف أو الدليل، فتأكد من أن يكون لديك مجلد /private/var/db/com.apple.xpc.launchd/config. وإذا كان هذا المجلد مفقودًا، فاستخدم هذا الأمر لإنشائه:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

لمزيد من المعلومات حول كيفية تعيين umask في OS X Yosemite، قم بتشغيل الأمر man launchctl.

Umask لتطبيقات المستخدمين في OS X Mavericks والإصدارات الأقدم

في OS X Mavericks والإصدارات الأقدم، قم بإنشاء ملف /etc/launchd-user.conf يحتوي على umask nnn. استبدل بـ nnn قيمة umask التي تريدها، مثل 027 أو 002. يقوم هذا الأمر بتعيين umask الخاص بالمستخدم لكل تطبيق يفتحه، مثل Finder أو TextEdit أو Final Cut Pro. كما يتحكم في الأذونات التي تم تعيينها للملفات الجديدة التي تنشئها هذه التطبيقات.

إذا كنت تستخدم OS X Lion، فعليك التحديث إلى OS X Lion الإصدار 10.7.4 أو الإصدارات الأحدث. بعد التحديث، ينطبق umask الخاص بالمستخدم على الملفات والمجلدات التي أُنشئت في Finder.

Umask لعمليات النظام في OS X Mavericks والإصدارات الأقدم

في إصدارات OS X الأقدم من Yosemite، قم بإنشاء ملف /etc/launchd.conf يحتوي على umask nnn. استبدل بـ nnn قيمة umask التي تريدها، مثل 027 أو 002. ويقوم هذا بتعيين umask لكل عملية. ويوصى بشدة بعدم تغيير هذه القيمة لأنها تغير أذونات الملفات التي تستخدمها برامج النظام. إذا قمت بتعيين أذونات شديدة التقييد، فقد لا تعمل البرامج المعتمدة عليها. وإذا قمت بتعيين أذونات مفتوحة للغاية، فقد تتسبب في حدوث مشاكل أمنية.

Umask لـ LaunchAgent أو LaunchDaemon محدّد

في Mac OS X الإصدار 10.4 والإصدارات الأحدث، يستطيع المؤسسون المتقدمون تعيين umask منفصل لـ LaunchAgent أو LaunchDaemon محدد. ولفعل ذلك، يضيفون قيمة umask إلى ملف launchd plist. لا يتجاوز هذا الإعداد إعداد umask في /etc/launchd.conf أو /etc/launchd-user.conf إلا لهذه العملية فقط. لمزيد من المعلومات حول هذا الخيار، قم بتشغيل الأمر man launchd.plist.

تاريخ النشر: