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

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

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

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

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

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

يمكنك تعيين umask في عدة مواقع، علمًا بأن كل موقع يؤثر على تطبيقات مختلفة. إذا قمت بتعيين umask على نحو خاطئ، يمكنك أن تفقد إمكانية الوصول إلى الملفات أو تمنح حق الوصول لمستخدمين آخرين. راجع قسم MODES (الأنماط) في صفحة دليل chmod(1) لمزيد من المعلومات.

Umask لتطبيقات المستخدم

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

sudo launchctl config user umask nnn

إذا كانت الوحدة الطرفية تعرض الرد "Could not write configuration: No such file or directory" ("تعذرت كتابة التكوين: هذا الملف أو الدليل غير موجود")، فتأكد من أن قرص بدء التشغيل الخاص بك يحتوي على مجلد على الموقع /private/var/db/com.apple.xpc.co.unchd/config. إذا كان مجلد التكوين مفقودًا، فحاول إنشاءه مرة أخرى بعد إدخال الأمر التالي:

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

Umask لعمليات النظام

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

sudo launchctl config system umask nnn

إذا كانت الوحدة الطرفية تعرض الرد "Could not write configuration: No such file or directory" ("تعذرت كتابة التكوين: هذا الملف أو الدليل غير موجود")، فتأكد من أن قرص بدء التشغيل الخاص بك يحتوي على مجلد على الموقع /private/var/db/com.apple.xpc.co.unchd/config. إذا كان مجلد التكوين مفقودًا، فحاول إنشاءه مرة أخرى بعد إدخال الأمر التالي:

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

اعرف المزيد

لمزيد من المعلومات حول كيفية تعيين umask، أدخل man launchctl في الوحدة الطرفية.

تاريخ النشر: