يوفر "النظام الفرعي للتطبيقات المستندة إلى UNIX‏" (SUA) نظامًا فرعيًا متوافقًا مع "واجهة نظام تشغيل محمولة" (متوافق مع POSIX)، هذا النظام يقوم بتشغيل UNIX shells والأدوات والتطبيقات بشكل أصلي مع تطبيقات Microsoft® Windows®. ويصف هذا الموضوع بعض الاعتبارات العاملة للمستخدمين الذين يطلبون نظام تشغيل متوافقاً مع POSIX.

توافق POSIX shell

يتبع SUA Korn shell سلوك Korn shell التقليدي الذي يطابق تقريبًا سلوك POSIX. وإذا كنت في حاجة إلى مطابقة POSIX الدقيقة، التي تتطلبها بعض بيئات العمل، راجع الاختلافات بين Korn shell وبين POSIX في وثائق ksh(1)‎ في ملفات "التعليمات" الموجودة في الأدوات المساعدة لتنزيل الحزم و 'عدة تطوير البرامج' (Software Development Kit) ‏(SDK) الخاصة بالنظام الفرعي للتطبيقات المستندة إلى UNIX.

للحصول على مطابقة POSIX.2 كاملة من Korn shell، يجب تشغيل Korn shell في وضع POSIX. ولتشغيل Korn shell في وضع POSIX، قم بأحد الإجراءات التالية:

  • قم بفتح Korn shell بواسطة الخيار -o posix.

  • قم بتشغيل مجموعة الأوامر -o posix من داخل shell.

  • قم بتعيين المعلمة POSIXLY_CORRECT الخاصة بـ shell.

لا يتم دعم تطابق POSIX في C shell. وعلى عكس Korn shell، لا يتوفر لـ C shell خيارات أوامر للوضع POSIX.

اجتياز التحقق من أذونات الدليل

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

يتوفر في Windows إذن محدد يطلق عليه الإذن Traverse Folder/Execute File الذي يمكن تعيينه لأحد المستخدمين أو لإحدى المجموعات. حيث يمكن تكوين هذا الإذن للسماح بالحركة عبر شجرة دليل أو لمنعها. ويصبح الإذن "اجتياز المجلد" نافذ المفعول فقط في حالة عدم منح المجموعة أو المستخدم حق المستخدم في "‏‏تجاوز التدقيق الانتقالي" في الأداة الإضافية "نهج المجموعة". حيث يتم في Microsoft Windows 2000 افتراضيًا إعطاء مجموعة "Everyone" حق المستخدم في "تجاوز التدقيق الانتقالي". في أنظمة التشغيل Windows Server® 2008 R2 و Windows® 7 و Windows Server® 2008 و Windows Vista®‎ و Windows Server 2003 و Windows XP والمجموعات Administrators و Backup Operators و Everyone و Power Users و Users، يكون لكل منهم هذا الحق. وللحصول على توافق ثابت مع مقاييس POSIX، قم بإزالة حق المستخدم في "تجاوز التدقيق الانتقالي" من كافة المستخدمين والمجموعات باستثناء مجموعة "Backup Operators". أما للعمل وفق المزايا الممنوحة للمستخدم الجذر في العديد من طرق تطبيق UNIX الأخرى، فقم بإزالة حق المستخدم في "تجاوز التدقيق الانتقالي" من كافة المستخدمين باستثناء مجموعة "Administrators" و"Backup Operators".

انحراف سلوك الفحص العكسي لـ su و setuid

يحاول المستخدمون ذوي امتيازات وصول غير محدودة الذين يستخدمون الأمر su للتشغيل كمستخدمين آخرين والمستخدمون الذين يستخدمون عمليات setuid (والعمليات التي تتضمن الاستدعاءات المتعلقة بـ setuid) البعد عن استخدام السلوك الافتراضي الموصوف أعلاه عن طريق الاحتفاظ ببعض حقوق اجتياز الدلائل.

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

تقوم أيضاً عمليات Setuid والعمليات التي تقوم باستدعاء setuid أو seteuid أو setreuid بإظهار نفس السلوك. بعد إزالة الحق Bypass traverse checking من حساب المستخدم الذي يقوم بتشغيل هذه العمليات، يكون بإمكان العمليات التقدم من خلال شجرة الدليل، على الرغم من أنها قد تفتقر إلى الأذونات للوصول إلى كل دليل في المسار.

راجع أيضاً