كيف نعرف هل سكربت بايثون تم تشغيله من خلال مستخدم root

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته




كيف نعرف هل سكربت بايثون تم تشغيله من خلال مستخدم root ؟





كيف نعرف هل سكربت بايثون تم تشغيله من خلال مستخدم root أي من خلال إستخدام صلاحياته مثلا من خلال sudo أو تم تشغيل من خلال مستخدم عادي؟
 
علينا أن نعرف اولا أن النظام لينكس لا يعرف الأسماء مثلا مستخدم إسمه yucef و مستخدم إسمه root هو فقط يعرف رقم ال ID الخاص بالمستخدم .

في نظام لينكس كل مستخدم عادي له رقم فريد يختلف عن الأخرين وغالبا يبدأ من رقم ألف 1000 وأعلى أما مستخدم روت رقم ال ID الخاص به هو الرقم صفر 0 .

لهذا إذا عرفنا كيف نحصل على هذا الرقم نكون عرفنا إذا المستخدم الذي  يشغل البرنامج هو مستخدم root او لا وهذا ممكن من خلال ()os.getuid إختصار ل get user id وبعدها نستفيد من الأمر على حسب حاجتنا .

مثلا نلاحظ في الصور في الأسفل عملت سكربت إذا لم يتم تشغيله بصلاحيات root أي إذا كان( if ) رقم ال ID الخاص بالمستخدم الذي شغل السكربت لا يساوي رقم صفر 0 يخرج من خلال دالة exit ويعرض جملة محددة أما غير ذلك(else) أي إذا كان رقم ال ID هو صفر يطبع كلمة hello .

مع الملاحظة ممكن أيضا إستبدال الشرط مثلا بشرط إذا كان رقم ال ID هو رقم ألف 1000 او أكبر 1000=< لأن هناك مستخدي الخدمات يكون رقم ال ID الخاص بهم أعلى من صفر وأصغر من ألف غالبا في كل التوزيعات رقم ال ID للمستخدم العادي يبدأ من رقم ألف وأعلى ,على العموم نضع ما نحتاجه هو فقط مجرد مثال لاكن من المهم معرفة هذه الامور لهذا أذكر هذه الامور على الرغم من أننا لن نحتاجها.












ملاحظة ممكن الإستغناء عن else كما في الصور قي الاسفل اظن من يقرأ يجب ان يعرف أساسيات بايثون .







شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (3) أشياء تفعلها (4) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (14) برامج (45) برامج إسلامية (2) برنامج (18) برودباند (1) بعد (3) بعد التثبيت (4) بلوتوث (1) بناء (1) بيئة عمل (1) تثبيت (24) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (3) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) ريدهات (2) سكربت (2) شرح (10) صورة متحركة (1) فايرفوكس (1) فصل (1) فلاشة (3) فيدورا (25) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (3) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) وايرلس (1) وهمي (2) ويندوز (2) active (2) add (1) after (3) alias (1) andoid studio (1) android (1) android studio (1) Apache (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bluetooth (1) book (2) books (2) bootloader fix (1) broadband (1) broadcom (1) broadwayd (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (1) chsh (1) cisco (1) clion (1) clone (1) code.org (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) curlew (1) custom (2) dbus (1) dd (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) disks (1) dnf (12) do (3) docker (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (8) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) enable (2) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (37) fedora 25 alpha (1) fedora cloude (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) firefox (2) fix (8) flash mem (1) flash memory (2) flashplayer (1) flatpak (2) fpaste (1) free (1) freebsd (1) function (1) game (3) games (1) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (8) gnome disk (1) gnome shell (12) gnome terminal (1) gnome-disks (1) gnu (1) goldendict (1) google web designer (1) gradio (1) group (1) grub (5) grub2 (1) gtk (2) gtk+ (1) hack (2) hash (3) hdmi (3) hibernate (1) home (2) hosspot (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (27) installf (9) installing (3) intellij idea (1) iso (1) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kernel (1) kernel parameters (1) key (1) kickstarts (2) korora (1) krita (1) kvm (1) kvm switches (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) life is trange (1) linux (7) lv (1) lvm (2) mac (4) macros (1) mageia (1) MariaDB and PHP Lamp Server (1) mate terminal (1) mbr (1) md5sum (1) mirro (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (7) objdesktop (1) ojuba (2) oop (1) opensuse (1) opera (1) optirun (2) oracle (1) os.path (1) package (1) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) phpstorm (1) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) PostinstallerF (1) pot (1) powerline (1) primary display (1) primus (1) primusrun (1) programs (3) put (1) pv (1) pycharm (2) pygobject (1) pygtk (1) python (28) qdbus (1) qemu (2) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (2) remix (1) remix os (1) repo (4) repofrompath (1) resize2fs (1) rhel (1) rpm (5) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) script (2) seconday display (1) self (1) send (1) sha1256sym (1) share desktop (1) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) soundcloud (1) source code (1) spec (2) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) su (1) sudo (2) sudoers (1) swap (2) switch (1) Switchable Graphics (1) synergy (1) teamviewer (1) terminal (2) theme (4) things (3) to (4) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) vg (1) vgaوتبديل (1) vi (1) vim (1) vino (1) virtual (1) virtual box (1) virtualbox (2) vmware (3) vnc server (1) vokoscreen (1) webstorm (1) wifi (1) windows (3) windows-1256 (1) X Error: BadAccess (1) X Error: BadDrawable (1) yum (2) zeal (1) zealdocs (1)