العربية

أدوات المطور · حاسبة Chmod

chmod على أنظمة التشغيل Windows وmacOS وFAT ومشاركات الشبكة: حيث تتوقف بتات الوضع

· خلفية

chmod يونيكس التحكم في الوصول

تظهر حدود نظام الملفات كرسم تخطيطي لبت إذن Unix
الرسم التوضيحي المتجه الأصلي ToolAcre

بتات الوضع هي فكرة يونكس، وأنظمة الملفات الأخرى إما تزييفها أو إسقاطها. يتناول هذا المنشور ما يحدث للأذونات عند عمليات التثبيت NTFS وFAT وmacOS وSMB أو NFS، وكيفية تفاعل git.

يعرض Git كل ملف كما تم تعديله — التغيير الوحيد هو الوضع 100644 إلى 100755 بعد الاستنساخ على نظام ملفات مختلف

يؤدي تغيير Git من 100644 إلى 100755 إلى الكشف عن اختلاف عادي واحد: 644 يفتقر إلى التنفيذ، بينما 755 يتضمنه لجميع الفئات الثلاثة. يؤدي فك تشفير القيم الزائدة إلى الحصول على rw-r--r-- وrwxr-xr-x. لا يمكن للآلة الحاسبة أن تشرح سبب قيام Git بالإبلاغ عن التغيير، أو النظام الأساسي الذي أنتجه، أو ما إذا كانت إعدادات نظام الملفات والمستودع قد أثرت على الملاحظة.

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

يمكن هنا فك تشفير تغيير الوضع في Git ولكن لا يمكن إسناده إلى النظام الأساسي

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

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

يحتاج سلوك البيانات التعريفية لنظامي التشغيل Windows ACL وWSL إلى مصادر النظام الأساسي

FAT-أقنعة التثبيت العائلية خارج هذا التنفيذ. لا تحتوي اللوحة على حقل umask، أو fmask، أو dmask، أو خيار التثبيت، أو نظام الملفات. يمكنه تقسيم الوضع المبلغ عنه إلى مالك ومجموعة وبتات أخرى، لكن لا يمكنه استخلاص هذا الوضع من التكوين أو إثبات كيفية إنتاج FAT أو exFAT له. تحتاج مطالبات السلوك الأوسع إلى مصادر منصة خارجية.

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

FAT-أقنعة التثبيت العائلية خارج نطاق التنفيذ

لا يتم تحليل بيانات تعريف macOS الإضافية من خلال هذا المسار. يتوقع الإدخال الرمزي تسعة مواضع إذن، مسبوقة بشكل اختياري بحرف نوع ملف معروف. فهو لا يقبل أي مؤشرات زائدة، ولا يقرأ أي إدخالات أو علامات ACL، ولا يستعلم عن بيانات تعريف المسار. يمكن فك تشفير وضع rwx الأساسي بشكل منفصل، ولكن تظل كل إشارة macOS إضافية خارج هذه المصادر.

بالنظر إلى 755 نظيف، تعرض الآلة الحاسبة rwxr-xr-x وتشرحه للهدف المحدد. تنفيذ الدليل يعني الدخول والوصول إلى الإدخالات المسماة؛ تنفيذ الملف يعني تشغيل البرنامج. هذا التمييز المدعوم بالتنفيذ يبقى على قيد الحياة عند إسناد النظام الأساسي. تتطلب أي قاعدة إضافية للوصول إلى نظام التشغيل macOS أو تدوين أو تفاعل مع بتات الوضع دليلاً محددًا غير متوفر في مادة المستودع هذه.

لا يتم تحليل بيانات تعريف macOS الإضافية من خلال هذا المسار

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

يمنع هذا الحد حدوث خطأ في الفئة. الوضع 775 يعني أن المالك والمجموعة لديهم rwx بينما لدى الآخرين r-x. ولا يكشف عن الملكية عن بعد، أو عضوية المجموعة، أو تعيين الهوية، أو ما إذا كان الخادم قد قام بتركيب العرض. تحقق من البتات المقدمة هنا، ثم اجمع أدلة التصدير والعميل والخادم والهوية من البيئة الفعلية قبل اتخاذ قرار بالتفويض.

SMB وNFS هوية أو تركيب الوضع خارج التنفيذ

عندما يُبلغ Git عن تغيير في الوضع، قم بفك تشفير القيم قبل مراجعة السياسة. بالنسبة إلى 100644 و100755، استخدم 644 و755: يصبح rw-r--r-- rwxr-xr-x. يتم تنفيذ كل مكاسب من المالك والمجموعة والآخرين لأن رقمهم يكتسب وزنًا 1. يؤدي هذا إلى إنشاء الاختلاف الدلالي دون تعيين سبب لـ Git أو النظام الأساسي أو نظام الملفات.

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

مثال عملي: قم بفك تشفير وضع تقارير Git قبل تغيير سياسة المستودع

تنتمي أوامر أذونات Windows إلى نموذج منفصل. تُصدر هذه الأداة نماذج chmod مثل القيم الثمانية أو u=rw,g=r,o=r. فهو لا يوزع بناء جملة Windows ولا يعين ثلاث فئات Unix على Windows ACL. وأي ترجمة ذات مظهر معقول ستكون اختراعًا، لأن اثنتي عشرة بتة تقليدية لا يمكنها الحفاظ على كل هوية وإدخال وصول يمثله نظام ترخيص آخر.

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

يظل بناء جملة Windows وتخزين الكائنات نموذجين منفصلين

قم بتأكيد الطبقة التي تمتلك الإذن الصحيح قبل استخدام chmod. يمكن ترجمة الوضع المقدم بواسطة Git أو mount أو أي نظام أساسي آخر إلى وحدات بت خاصة بالمالك أو المجموعة أو غيرها. تكتشف عملية التحقق من الصحة الأرقام المشوهة والمواضع الرمزية، بينما تحافظ s وS وt وT على الحالة الخاصة. التحويل يفسر القيمة، وليس مصدرها أو سلطتها.

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