العربية

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

رقم chmod الرابع: كيفية عمل setuid وsetgid والبت اللاصق

· كيف يعمل

chmod يونيكس سير عمل المطور

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

تحتوي الأوضاع مثل 4755 و2775 على رقم بادئ يغير من يعمل البرنامج أو من يملك ملفات جديدة. يشرح هذا المنشور الأجزاء الثلاثة الخاصة وكيفية ظهورها في ls -l.

حرف s في drwxrwsr-x - يتصرف دليل المشروع المشترك بشكل مختلف ويحتوي إخراج ls على حرف غير موجود في ورقة الغش الأساسية

يسجل حرف s الموجود في rwxrwsr-x حقيقتين في موضع واحد: تم تمكين setgid، كما تم تمكين تنفيذ المجموعة أيضًا. يخزن التنفيذ setgid كرقم ثماني 2000، ثم يستبدل s بحرف تنفيذ المجموعة. مع تحديد علامة نوع الدليل، يظهر الوضع 2775 كـ drwxrwsr-x بينما يحتفظ الملخص المكون من أربعة أرقام برقم البت الخاص البادئ.

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

الرقم الرابع وأحرفه — 4، 2 و 1 كبادئة في الوضع المألوف، يظهر كـ s و t في موضع التنفيذ، بأحرف كبيرة عندما تكون بتة التنفيذ الموجودة بالأسفل متوقفة عن التشغيل

يجمع الرقم الثماني البادئ بين ثلاثة أقنعة مستقلة: setuid هو 4000، وsetgid هو 2000، والثابت هو 1000. تشغل أحرفهم مواضع التنفيذ الحالية بدلاً من إضافة أحرف إلى شاشة العرض ذات المواضع التسعة. يستخدم Setuid موضع المالك، ويحدد موضع المجموعة، ويلصق الموضع الآخر. تعرض المصفوفة الثلاثة بشكل منفصل عن القراءة والكتابة والتنفيذ العادي.

تكشف الحالة عن بت التنفيذ الأساسي. يعرض الوضع 4755 rwsr-xr-x لأن المالك ينفذ setuid المصاحب؛ 4644 يعرض rwSr--r-- لأنه لا يفعل ذلك. يقرأ المحلل اللغوي كلا النموذجين مرة أخرى في البتات الخاصة والتنفيذية المقابلة. تنتج نفس القاعدة السفلية مقابل العلوية s أو S لـ setgid وt أو T لـ Sticky، مع الحفاظ على جميع المجموعات أثناء الرحلات ذهابًا وإيابًا.

setuid على الملفات التنفيذية - كيف يعمل /usr/bin/passwd مع امتيازات مالك الملف ولماذا يتجاهل Linux setuid على البرامج النصية المفسرة

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

لا تحدد الآلة الحاسبة ملفًا تنفيذيًا معينًا، أو تقوم بتشغيله، أو تفحص كيفية تعامل النظام الأساسي مع البرامج النصية. دليله هو الوضع المتوفر واختيار الهدف. يمكن تقسيم الوضع 4755 إلى setuid بالإضافة إلى rwxr-xr-x، وتُلحق معاينة المهمة u+s بعد الجمل العادية. الذي يتحقق من التقديم والتفسير فقط؛ تظل ملاءمة البرنامج والتنفيذ الفعلي أسئلة خارجية.

تقديم setuid وشرح للملفات العادية

يتم تمثيل Setgid الموجود على الدليل بشكل مستقل عن أذونات المجموعة العادية. يجمع الوضع 2775 بين القناع 2000 مع المالك والمجموعة 7 وغيرها من 5. تحافظ شاشة العرض rwxrwsr-x على قراءة المجموعة وكتابتها وتنفيذها أثناء استبدال x المرئي بـ s. يربط شرح الدليل البت الخاص بوراثة مجموعة الدليل للملفات التي تم إنشاؤها حديثًا.

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

الجزء الثابت في الأدلة - الحذف المقيد في /tmp ولماذا 1777 ليس هو نفسه 777

يحتل Sticky موضع التنفيذ الآخر ويساهم بالرقم الثماني 1000. بالنسبة لوضع الدليل 1777، تظل جميع الأذونات العادية ممكنة ويصبح الحرف الرمزي النهائي t. يضيف شرح الدليل المطبق قيودًا على الحذف وإعادة التسمية، بينما يحذر شرح 777 من وجود دليل قابل للكتابة بدون لاصق. وبالتالي فإن المحول يجعل فرق البت الواحد مرئيًا دون تغيير ثلاثية rwx الأساسية.

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

مثال عملي: بناء 2775 لدليل مشترك - اشتقاق الأرقام والرمز الرمزي المكافئ chmod g+s,a+rwx,o-w

أنشئ 2775 كأربعة مكونات مرئية: الرقم الخاص 2 لـ setgid، ورقم المالك 7 لـ rwx، ورقم المجموعة 7 لـ rwx، والرقم الآخر 5 لـ r-x. يؤدي إدخال القيمة المكتملة إلى إنشاء rwxrwsr-x. تحدد المصفوفة setgid بشكل منفصل، بينما يقوم الملخص بتسمية المالك والمجموعة والأذونات الأخرى إلى جانب ذلك البت الخاص.

قائمة المهام التي تم إنشاؤها هي u=rwx,g=rwx,o=rx,g+s. وهذا يختلف عن العرض المكون من تسعة أحرف ولكنه يمثل نفس قيمة الاثني عشر بت. يؤدي اختيار الدليل إلى تغيير شرح صياغة وراثة المجموعة المطبقة؛ يؤدي اختيار الملف إلى تغيير الصياغة دون تغيير 2775. لا تتحقق الآلة الحاسبة مطلقًا من مجموعة الهدف أو تنشئ ملفًا، لذا يظل المثال نموذجًا وليس وصفة للنشر.

مثال عملي: إنشاء وقراءة 2775 لنموذج الدليل المشترك

لم يتم تصميم سلوك التحميل والإمكانيات ودلالات النظام الأساسي الإضافية. لا تحتوي الصفحة على مدخلات تحميل، أو مجموعة إمكانيات، أو استعلام kernel، أو مسبار نظام الملفات. يمكن أن يكون setuid وsetgid وsticky ويمكن أن يختلف تفسيره بين الملفات والأدلة العادية. ولا يمكنها تحديد ما إذا كانت هناك قاعدة خارجية تحيد تلك البتات أو توسعها أو تفسرها بشكل مختلف على هدف فعلي.

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

تظل سياسة التحميل والقدرات ودلالات الزاوية غير المنفذة خارجية

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

اختبار وضع خاص من خلال مقارنة كافة التمثيلات. بالنسبة إلى 2775، توقع 2 البادئة، وموضع المجموعة، ومربع setgid المحدد، وإضافة g+s التي تم إنشاؤها. قد يؤدي عدم التطابق إلى كشف مشكلة في التحويل. تحدد الاتفاقية وضعًا ثابتًا واحدًا فقط. تظل الملكية وسياسة التحميل والإمكانيات وقواعد التطبيق وعواقب تشغيل chmod خارج نطاق أدلة حاسبة المتصفح.