أدوات المطور · حاسبة Chmod
ما الذي تفعله بتة التنفيذ في الدليل، ولماذا تنقطع مجلدات 644
· كيف يعمل
chmod يونيكس سير عمل المطور
في الدليل، x لا يتعلق بتشغيل أي شيء؛ يمنح الحق في العبور. يشرح هذا المنشور تقسيم read/search والحالات الفردية التي ينتجها والأوضاع التي تتجنبها.
تم رفض الإذن لملف يمكنك قراءته — الملف هو 644، والدليل هو 644، ولا يزال القط يفشل
يمكن أن يظل الملف المقروء غير قابل للوصول عندما لا يتم تنفيذ الدليل الخاص به للفئة ذات الصلة. المادة 501 دليل الاستدعاءات ينفذ الاجتياز بدلاً من تشغيل المجلد. يعد شرح دليل الآلة الحاسبة أكثر وضوحًا: قراءة إدخالات القوائم، وكتابة تغييرات إدخال التصاريح، وتنفيذ تصاريح الدخول إلى الدليل والوصول إلى الملفات الموجودة بالاسم. لا يحتوي الوضع 644 على بت تنفيذ لأي فئة.
قارن 644 مع 755 أثناء تعيين الهدف على الدليل. الأول يعرض rw-r--r--; يعرض الثاني rwxr-xr-x. يتم تنفيذ مكاسب كل فئة، بينما يحتفظ المالك فقط بالكتابة في كلا الوضعين. يفسر هذا التباين اختلاف الأذونات الممثلة. لا تقوم الصفحة بفحص الملف أو تحديد عملية الوصول أو اختبار ما إذا كان الدليل الأصلي يحظر المسار الفعلي.
قراءة القوائم وتنفيذ عمليات الاجتياز - كيف يُظهر الدليل r الأسماء بينما يتيح لك x فتح الإدخالات بالاسم وإحصائياتها
قراءة الدليل وتنفيذه عبارة عن إشارات منفصلة مع تفسيرات منفصلة. قراءة يتوافق مع إدخالات القائمة. يتوافق التنفيذ مع إدخال الدليل والوصول إلى الملفات المسماة بداخله. وبالتالي يمكن أن تحتوي الفئة على واحدة دون الأخرى في النموذج الرقمي. تحافظ المصفوفة على هذا التمييز مرئيًا عن طريق وضع القراءة بوزن 4 والتنفيذ بوزن 1 داخل كل رقم من أرقام الفئة.
يعد تغيير رقم فئة أخرى من 4 إلى 5 عرضًا توضيحيًا مركزًا. يتحرك الثلاثي الرمزي من r-- إلى r-x، ويضيف تفسير الدليل إمكانية الوصول المستندة إلى الاسم مع الاحتفاظ بالقائمة. هذه حقيقة تحويل، وليست اختبار وصول مباشر. الملكية والهوية وإدخالات ACL والسياسة الإلزامية غائبة، لذا لا يمكن للآلة الحاسبة تحديد الفئة التي تحكم الطلب الحقيقي.
المجموعات الأربع — r بدون x، x بدون r، كلاهما ولا أي منهما، وما يسمح كل منهما للمستخدم بفعله بالفعل
يمكن تمثيل مجموعات القراءة والتنفيذ الأربع دون تعيين سلوك أوسع للنظام. الرقم 4 هو r--، والرقم 1 هو --x، والرقم 5 هو r-x، والرقم 0 هو ---. بالنسبة لهدف الدليل، يربط النثر الذي تم إنشاؤه تلك البتات المحددة مع القائمة وإمكانية الوصول القائمة على الاسم. تظل الكتابة علامة مستقلة ولا تتضمنها القراءة أو التنفيذ.
استخدم المصفوفة لعزل فئة واحدة في كل مرة بدلاً من التعامل مع الوضع المكون من ثلاثة أرقام كتسمية. تقوم الصفحة بإعادة بناء العدد الصحيح كلما تغير المربع، بحيث يتحرك الرقم المطابق والموضع الرمزي معًا. لا يمكن فتح دليل أو محاولة البحث. المجموعات الأربع عبارة عن أذونات نموذجية دقيقة، في حين أن أي نتيجة فعالة تعتمد على السياق المستهدف الذي تمت ملاحظته بشكل منفصل.
ينطبق الاجتياز على كل سلف - لماذا يقطع دليل مقيد أعلى المسار الوصول إلى كل شيء تحته
تحدد المادة 501 إذن تنفيذ الدليل الأصلي المفقود كسبب لعدم تمكن وضع الملف الصالح من حل الوصول. يعرض كل مكون دليل في المسار سؤال الوضع الخاص به. يمكن للآلة الحاسبة فك تشفير كل قيمة مقدمة بشكل مستقل وإظهار ما إذا كان المالك أو المجموعة أو أي تنفيذ آخر موجودًا. ولا يمكنه السير في المسار أو تحديد الفئة التي تنطبق على الهوية الطالبة.
وهذا يجعل تحليل الأسلاف بمثابة سير عمل فحص خارجي بدلاً من ميزة الآلة الحاسبة. إذا تم الإبلاغ عن أحد الوالدين باعتباره 750، فستعرض الصفحة rwxr-x---; إذا كان آخر هو 700، فإنه يظهر rwx -------. وهذا الاختلاف ملموس، ولكن لا يتم التوصل إلى نتيجة إلا بعد معرفة الملكية وعضوية العملية. تظل معاينة الأمر خاملة ولا تقدم أي دليل على أن تغيير أي من الدليلين مناسب.
مثال عملي: إصلاح جذر الويب - التحقق من كل دليل من / إلى الملف المقدم واختيار 755 أو 750
للحصول على مثال لجذر الويب، قم بفحص مكون الأوضاع المتوفرة تلو الآخر بدلاً من وصف قيمة واحدة للشجرة. الوضع 755 يمنح المالك rwx والمجموعة وr-x الأخرى؛ يقوم الوضع 750 بإزالة جميع الأذونات الأخرى مع الاحتفاظ بالمجموعة r-x. المحول يجعل هذا الفرق مرئيا. لا يمكنه تحديد عملية الويب، أو اكتشاف المسار، أو اختيار الفئة التي تحتاج إلى الاجتياز.
تحقق من الملف المقدم بشكل منفصل عن الدلائل الخاصة به. يعرض وضع الملف المتوفر مثل 644 rw-r--r--، بينما يصف نفس الرقم المحدد كدليل إجراءات مختلفة ويفتقر إلى التنفيذ في كل مكان. تمنع هذه الصياغة الحساسة للهدف الخلط بين قراءة الملف واجتياز الدليل. لا تزال الملاءمة تعتمد على الملكية الفعلية وهوية العملية والأسلاف وأي طبقات تحكم في الوصول غائبة عن الصفحة.
تم إجراء التكرار بشكل صحيح - لماذا يعد chmod -R 644 على شجرة هو الخطأ الكلاسيكي وكيف يتجنبه رأس المال X أو العثور على -type d
العرض العودي متواضع عمدا. يؤدي تحديده إلى إدراج -R فقط في أمر chmod الذي تم إنشاؤه؛ الآلة الحاسبة لا تعداد شجرة أو تميز الملفات من الدلائل. إن تطبيق وضع 644 المكتمل في كل مكان سيؤدي إلى تنفيذ الدليل بشكل واضح في كل فئة. يمكن أن تكشف الصفحة عن هذه النتيجة، ولكنها لا تطبق الحرف X الكبير أو سير عمل تحديد نوع الملف.
تظل التعيينات الرمزية التي تم إنشاؤها ثابتة أيضًا. بالنسبة إلى 644 فهي u=rw,g=r,o=r، وليست أمرًا نسبيًا يحافظ على الاجتياز بشكل مشروط. يُظهر حقل النمط ls rw-r--r-- ويجب عدم الخلط بينه وبين قائمة المهام تلك. يجب التحقق من أي استراتيجية عودية خارجية خارج هذا المسار، بما في ذلك اختيار الهدف ومعالجة الارتباط والأوضاع النهائية الموضوعة على أنواع كائنات مختلفة.
ما لا يغطيه هذا — السلوك اللاصق وsetgid في الأدلة، وأقنعة ACL، والتي تمت تغطيتها في منشوراتها الخاصة
الأقنعة اللاصقة وsetgid وACL منفصلة عن سؤال الاجتياز العادي. تقوم الآلة الحاسبة بتنفيذ تمثيل مثبت وsetgid وتفسيرات حساسة للهدف، ولكن المقارنة الأساسية لهذه المقالة تحتاج فقط إلى القراءة والتنفيذ. ACL الأقنعة غير ممثلة على الإطلاق. لا يمكن تحديد تحويل الوضع الأساسي الصحيح ما إذا كانت الإدخالات الإضافية تمنح أو تحد من الوصول لهوية معينة.
Umask هو أيضا خارج الاختبار. تقبل الصفحة الوضع المكتمل، وليس إعدادات العملية التي قد تكون سبقته. إذا ظهر دليل مع 644، فيمكن للمحول إظهار مواضع التنفيذ المفقودة وإنشاء أمر مرشح لقيمة أخرى مقدمة. ولا يستطيع أن يقول لماذا نشأ هذا الوضع، أو ما إذا كانت الملكية خاطئة، أو ما إذا كان تغييره يعالج الفشل الحقيقي.
الوجبات الجاهزة: تحتاج الأدلة إلى x لتكون قابلة للاستخدام - والآلة الحاسبة تجعل الفرق بين 644 و 755 مرئيًا كـ r-- مقابل r-x
الوجبات الجاهزة الدائمة هي أن الدليل x يمثل الإدخال وإمكانية الوصول المستندة إلى الاسم في شرح هذه الآلة الحاسبة. يعرض الوضع 644 r-- للمجموعة وغيرها، بينما يعرض 755 r-x لكليهما ويضيف تنفيذ المالك أيضًا. إن الحقل الثماني المتزامن والمجال الرمزي والمصفوفة والنثر يجعل هذا التمييز قابلاً للفحص دون التعامل مع أي رقم مألوف على أنه صحيح عالميًا.
تشخيص ما وراء الحساب قبل تطبيق أي شيء. قم بتأكيد الهوية ذات الصلة، والملكية، والوضع المقدم لكل سلف، ونوع الهدف. ثم استخدم الآلة الحاسبة للتحقق من أي قيمة مرشحة مكتملة. سوف يرفض التدوين المشوه ويعرض بالضبط البتات التي تتغير، لكنه لا يفتح المسار أبدًا، أو ينفذ chmod، أو يقيم سياسة التطبيق، أو يثبت أن بتات الوضع التقليدي هي المرجع الوحيد.