اكتب البرنامج النصي Shell الذي لا يمكن تشغيله إلا بواسطة مستخدم Sudo في Ubuntu
سؤال
أنا أكتب برنامج نصي Shell الذي من المفترض أن يديره المستخدمون فقط في قائمة مستخدمي Sudo ، ما هي الطريقة المناسبة للقيام بذلك؟
ما أفكر فيه هو في البرنامج النصي Shell ، حاول إنشاء ملف وهمية في النظام مثل/var/run/وإزالته ، لذلك سيتلقى المستخدمون في قائمة Sudo خطأ في الإذن ، لكنني أعتقد أنه يجب أن يكون طريقة أكثر ملاءمة للقيام بذلك ، شكرا للمساعدة
المحلول
يمكنك التحقق من قيم $ UID و $ EUID في البرنامج النصي الخاص بك. سيكونون صفر لكونه يعادل الجذر. أو ، إن لم يكن باش ، يمكنك استخدامه id -u
.
نصائح أخرى
قم بتغيير أذونات التنفيذ على البرنامج النصي لتكون قابلة للتنفيذ فقط من قبل المستخدم ، وتغيير ملكية البرنامج النصي إلى root
. يجب أن تفعل ذلك.
تأكد من أنك في قائمة Sudoers ثم:
sudo chmod 700/path/to/scriptName
الرد على التعليق
عذرًا - لا أستخدم Subversion: أعتقد أنك ستحتاج إلى تشغيل برنامج نصي آخر كصاحب Sudoer يقوم بإنشاء البرنامج النصي مع الأذونات الصحيحة.
لا لم تفعل يجب أن قم بتغيير الملكية إلى الجذر ، لكنها ستبقي الأشياء نظيفة إذا قمت بذلك.