سؤال
لديّ نص Shell الذي أريد ضبطه بت. قمت بتعيين المالك على الجذر وتعيين بت. أضفت "Whoami'in القشرة للتحقق مما إذا كانت تعمل بشكل صحيح ولكن عندما نفذت البرنامج النصي ، أعاد Whoomi اسم المستخدم ، وليس الجذر. ثم هذا خطأ ، أليس كذلك؟ كان يجب أن أحصل على الجذر إذا تم تعيين UID بشكل صحيح ، أليس كذلك؟
المحلول
لا يمكنك استخدام setuid بت مع نصوص الصدفة. القذيفة توصيف كوخ خط لتحديد البرنامج المراد تنفيذه ، ثم يطلق هذا البرنامج دون رعاية أدنى عدد بتات setuid التي تم تعيينها على البرنامج النصي.
نرى https://serverfault.com/questions/8449/cannot-set-uid-on-shell-scripts.
نصائح أخرى
لا ، لا يغير Bit setuid المستخدم في المستخدم ، فإنه يغير المستخدم الفعال (EUID) الذي يعمل عليه البرنامج النصي على النحو.
علاوة على ذلك ، لا تعمل بتات setuid على البرامج النصية.
إذا كنت تريد تنفيذ برنامج نصي كجذر من قبل المستخدمين الأقل امتيازًا ، فإنني أوصي بالبحث في "SU" أو "Sudo".