تقنية

filemode في بايثون: ماذا تعني S الكبيرة في موضع المالك؟

حرف S كبير مع غياب تنفيذ المالك
مع نوع ملف عادي. [1] [2]

انتبه لحالة الحرف في تمثيل البتات. [1] [2]

الخلاصة السريعة

تعني حضور S_ISUID وغياب بت تنفيذ المالك هنا. [1] [2]

  • نركب عددًا من S_IFREG وS_ISUID و0o644. [1] [2]
  • النص الناتج -rwSr--r--، بحرف S كبير. [1] [2]
  • فحص S_IXUSR يعطي False. [1] [2]
  • إضافة S_IXUSR تحول الموضع إلى s صغيرة. [1] [2]
  • اختبرنا 3.12.14؛ لا نغير صلاحيات ملف. [1] [2]

المثال

import stat as s
m=s.S_IFREG|s.S_ISUID|0o644
print(s.filemode(m))
print(bool(m&s.S_IXUSR))

[1] [2]

حرفان لموضع واحد

المصدر هنا يختار S عند وجود البت الخاص وحده، وs عند اجتماعه مع تنفيذ المالك. في المثال المعدل s.filemode(m|s.S_IXUSR) يعطي -rwsr--r--؛ بقية المحارف تبقى نفسها. [1] [2]

حرف s صغير بعد إضافة تنفيذ المالك
نحتفظ بالنوع نفسه. [1] [2]

النطاق

نفسر ناتج دالة على عدد مؤلف. لا يكفي النص لإثبات إمكانية تشغيل ملف فعلي أو أثر البت الخاص في نظامك؛ لم نستدع stat على مسار أو chmod. [1] [2]

المراجع

  1. Python 3.12: stat.filemode / flags
  2. CPython 3.12.14: _stat.c
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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