السلام عليكم ،،
كيفمن الممكن تنفيذ ايعاز معين يتطلب حساب ال root من داخل البايثون
مثلا انا اريد تنفيذ التالي
os.system("shutdown now")يظهر لي خطأ
needed to be root
السلام عليكم ،،
كيفمن الممكن تنفيذ ايعاز معين يتطلب حساب ال root من داخل البايثون
مثلا انا اريد تنفيذ التالي
os.system("shutdown now")يظهر لي خطأ
needed to be root
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
عليكم السلام
يستحسن الأول تكون عامل كدا من خلال sudo بتحديد الأوامر
os.getuid هتكون كافية
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
شكرا احمد --- لكني صراحة لم افهم ردك؟
ياريت لو توضح اكثر.
بخصوص الدالة التي ذكرتها -- قرأتُ وظيفتها
Return the current process’s user id.
لم افهم كيف ممكن تفيدني؟
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
الroot له uid قيمته 0
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
تحملني قليلا !!
ماذا استفاد من هذه الدالة؟
انا اريد اعطاء صلاحية ال root لنفسي ،،
مثلا وجدت هذه الدالة setuid ،،
سأجرب هل تفيدني ام لا ،، اما دالة ال get فهي تعيد لا تعطي.
ارجو توضيح الامر اذا كنت مخطئ.
و شكرا
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
اها انت اللى خبطتني حصل خير :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
لماذا كل هذا التعقيد يا لينكس!! :wacko:
سأبحث في ردك وسأنظر الى الرابط.
طيب كحل ثاني -- الا يوجد دالة في بايثون هي تقوم بأطفاء الحاسبة -- او حتى لو هناك system call في لينكس عموما كما هو الحال في ويندوز
تم تعديل هذه المشاركة بواسطة الاخير زمانه في 8 نوفمبر 2010 في 02:59
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
لينكس مرتبط جدا بالتصاريح وصلاحيات المستخدم وامن البيانات .. يعني لو كل مستخدم يقدر يتحول روت بسهولة مثلا كانت خربت
فالحل تبدأ السكربت بصلاحيات المستخدم المطلوب
اقتباسطيب كحل ثاني -- الا يوجد دالة في بايثون هي تقوم بأطفاء الحاسبة -- او حتى لو هناك system call في لينكس عموما كما هو الحال في ويندوز
لم اتعامل مع upstart بصراحة لكن دا المصدر
http://bazaar.launchpad.net/~scott/upstart/trunk/annotate/head%3A/util/shutdown.c
ليه لاتستدعي الأمر shutdown ؟!
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
اقتباسليه لاتستدعي الأمر shutdown ؟!
هذا ما افعله
os.system("shutdown now")لكن لم ينجح الامر -- بسبب الصلاحيات -- حسب ما فهمت يجب ان اكون ROOT لكي انفذ الايعاز.
انا لو نفذت الايعاز su من داخل البايثون و اعطيت الباسورد الن ينجح الامر.
سأحاول التجربة.
سأنظر في الرابط.
انا قرأت عن pexpect ،، اظنها قد تخدمني لكن الامر بحاجة الى تجربة.
و شكرا على التواصل
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
الاخير زمانه كتب:لماذا كل هذا التعقيد يا لينكس!!
حتى لا يأتي شخص غير مخول يكتب سكربت صغير يطفئ الجهاز بدون اذن صاحبه :ohmy:
اذا كان السكربت لاستخدامك الشخصي فقط قم بتشغيله مع sudo
تم تعديل هذه المشاركة بواسطة hasan_aljudy في 15 نوفمبر 2010 في 11:48