الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية تنفيذ ايعاز كـ root من داخل البايثون

بدأه الاخير زمانه في 6 نوفمبر 2010 · 9 رد · 1,148 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،،

كيفمن الممكن تنفيذ ايعاز معين يتطلب حساب ال root من داخل البايثون

مثلا انا اريد تنفيذ التالي

os.system("shutdown now")

يظهر لي خطأ

needed to be root

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

عليكم السلام

يستحسن الأول تكون عامل كدا من خلال sudo بتحديد الأوامر

os.getuid هتكون كافية

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

شكرا احمد --- لكني صراحة لم افهم ردك؟

ياريت لو توضح اكثر.

بخصوص الدالة التي ذكرتها -- قرأتُ وظيفتها

Return the current process’s user id.

لم افهم كيف ممكن تفيدني؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#4

الroot له uid قيمته 0

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

تحملني قليلا !!

ماذا استفاد من هذه الدالة؟

انا اريد اعطاء صلاحية ال root لنفسي ،،

مثلا وجدت هذه الدالة setuid ،،

سأجرب هل تفيدني ام لا ،، اما دالة ال get فهي تعيد لا تعطي.

ارجو توضيح الامر اذا كنت مخطئ.

و شكرا

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#6

اها انت اللى خبطتني حصل خير :D

اقتباس
انا اريد اعطاء صلاحية ال root لنفسي ،،

ياريت كان بالساهل :D

فى حل انك تبدأ السكربت بالصلاحيات دي

او الحصول على الصلاحيات مثلا من خلال kdesu -عبارة عن واجهة لتنفيذ الأمر su وإرسال كلمة السر إليه- او gksu

فى حل شائع انك تستخدم pexpect ل su

على سبيل المثال http://aravaniskostas.com/2010/05/23/pexpect-module-for-python-2-5/

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 7 نوفمبر 2010 في 08:00

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#7

لماذا كل هذا التعقيد يا لينكس!! :wacko:

سأبحث في ردك وسأنظر الى الرابط.

طيب كحل ثاني -- الا يوجد دالة في بايثون هي تقوم بأطفاء الحاسبة -- او حتى لو هناك system call في لينكس عموما كما هو الحال في ويندوز

تم تعديل هذه المشاركة بواسطة الاخير زمانه في 8 نوفمبر 2010 في 02:59

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#8

لينكس مرتبط جدا بالتصاريح وصلاحيات المستخدم وامن البيانات .. يعني لو كل مستخدم يقدر يتحول روت بسهولة مثلا كانت خربت

فالحل تبدأ السكربت بصلاحيات المستخدم المطلوب

اقتباس

طيب كحل ثاني -- الا يوجد دالة في بايثون هي تقوم بأطفاء الحاسبة -- او حتى لو هناك system call في لينكس عموما كما هو الحال في ويندوز

لم اتعامل مع upstart بصراحة لكن دا المصدر

http://bazaar.launchpad.net/~scott/upstart/trunk/annotate/head%3A/util/shutdown.c

ليه لاتستدعي الأمر shutdown ؟!

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9
اقتباس
ليه لاتستدعي الأمر shutdown ؟!

هذا ما افعله

os.system("shutdown now")

لكن لم ينجح الامر -- بسبب الصلاحيات -- حسب ما فهمت يجب ان اكون ROOT لكي انفذ الايعاز.

انا لو نفذت الايعاز su من داخل البايثون و اعطيت الباسورد الن ينجح الامر.

سأحاول التجربة.

سأنظر في الرابط.

انا قرأت عن pexpect ،، اظنها قد تخدمني لكن الامر بحاجة الى تجربة.

و شكرا على التواصل

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#10
الاخير زمانه كتب:

لماذا كل هذا التعقيد يا لينكس!!

حتى لا يأتي شخص غير مخول يكتب سكربت صغير يطفئ الجهاز بدون اذن صاحبه :ohmy:

اذا كان السكربت لاستخدامك الشخصي فقط قم بتشغيله مع sudo

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 15 نوفمبر 2010 في 11:48

مواضيع مشابهة