فشل Python في تنفيذ Firefox WebBrowser من البرنامج النصي المنفذ للجذر مع قطرة الامتيازات
سؤال
لا أستطيع تشغيل Firefox من برنامج نصي الثعبان Sudoed الذي يسقط الامتيازات للمستخدم العادي. إذا كتبت
$ sudo python >>> استيراد نظام التشغيل >>> استيراد PWD، GRP >>> UID = pwd.getpwnam ('norby') [2] >>> gid = grp.getgrnam ('norby') [2] >>>> OS.SETETGID (GID) >>> OS.SETEUID (UID) >>> استيراد WebBrowser >>> WebBrowser.get ('Firefox'). افتح ('www.google.it') صحيح >>> # تعرض # صحيح ولكن لا يعمل >>> من PubProcess Popen Popen، الأنابيب >>> P = Popen ('Firefox www.google.it'، shell = true، stdout = pipe، stderr = pipe) >>> لا ينفذ # الأمر >>> لا يجب عليك تشغيل Iceweasel من خلال Sudo بدون خيار -H. استمرار كما لو كنت قد استخدمت خيار h. لا يوجد خطأ في البروتوكول: لا يمكن فتح العرض: 0
أعتقد أن هذه ليست مشكلة بيثون، ولكن مشكلة تكوين Firefox / Iceweasel / Debian. ربما قرأ Firefox فقط UID وليس EUID، ولا تنفذ العملية لأن UID متساوية 0. ما رأيك؟
المحلول
هذا يمكن أن يكون بيئتك. ستظل تغيير الأذونات لا تزال تترك متغيرات بيئة مثل الصفحة الرئيسية التي تشير إلى الصفحة الرئيسية في دليل مستخدم الجذر، والتي ستكون غير قابلة للوصول إليها. قد يستحق محاولة تغيير هذه المتغيرات عن طريق تغيير os.environ
قبل إطلاق المتصفح. قد يكون هناك أيضا متغيرات أخرى تستحق التدقيق.
لا تنتمي إلى StackOverflow