مقدمة
أداة whoami واحدة من أكثر الأوامر المستخدمة على أنظمة جنو/لينكس. في هذا الدليل الموجز سنتعرف إليها و إلى كيفية استخدامها ونستعرض مخرجاتها في أمثلة عملية.
مستوى الصعوبة | سهل |
النظام | توزيعات جنو/لينكس المختلفة |
الأدوات/البرمجيات | whoami who w id logname |
الصلاحيات | المستخدم الخارق |
ما whoami؟
في الواقع، جاءت تسمية الأداة من تركيب عبارة “who am i”. كما يبدو من معناها فوظيفة هذا الأمر عرض اسم المستخدم الحالي.
نُبْذَة تاريخية
يعود إنشاء أداة whoami أول مرة لأنظمة BSD، حين طور بيل جوي Bill Joy مقابلًا للأمر who المستخدم على نظام Unix.
بعد انطلاق مشروع GNU، طور ريتشالد مليناريك Richard Mlynarik نسخة لأداة whoami ضمن أدوات GNU Coreutils.
طريقة الاستخدام
whoami [option]
لا تأتي الأداة إلا بخيارين يفيدان عرض نسخة الأداة ودليل المساعدة.
whoami --help
whoami --version
أمثلة لاستخدام whoami
1. الاستخدام العادي
عند كتابة الأمر whoami مباشرة، يكون المخرج هو اسم المستخدم الحالي.
whoami
linuxaw@pc:~$ whoami
linuxaw
2. التحقق من تبديل المستخدم
عند تبديل حساب المستخدم الذي تعمل عليه، ستكون whoami طريقة سهلة للتحقق من ذلك.
لتجربة ذلك، سنعمد لتبديل المستخدم بواسطة su
su [username]
linuxaw@pc:~$ su tux
Password:
tux@pc:/home/linuxaw$
للتحقق من التبديل ننفذ الأمر whoami
tux@pc:/home/linuxaw$ whoami
tux
اقرأ اكثر: الأمران su و sudo
3. التحقق من صلاحية المستخدم الخارق (sudo)
يمكن استخدام الأداة للتحقق من امتلاك المستخدم لصلاحية المستخدم الخارق sudo.
sudo whoami
linuxaw@pc:~$ sudo whoami
[sudo] password for linuxaw:
root
المخرج في المثال يُظهر اسم الجذر root، ما يعني أن المستخدم linuxaw لديه صلاحيات sudo.
لنجرب مستخدمًا آخر الآن
tux@pc:~$ sudo whoami
[sudo] password for tux:
Sorry, user tux is not allowed to execute '/usr/bin/whoami' as root on pc.
الرسالة في المخرج السابق تشير إلى عدم امتلاك المستخدم tux صَلاحِيَة المستخدم الخارق.
أدوات بديلة / مشابهة للأمر whoami
في الجزء الأخير من المقال نتطرق لأدوات أخرى تؤدي الغرض الذي تؤديه whoami، أو غرضا أقل أو أكثر تفصيلًا.
1. الأمر id
يفيد هذا الأمر في عرض اسم المستخدم مع معلومات تفصيلية أخرى.
id
linuxaw@pc:~$ id
uid=1000(linuxaw) gid=1000(linuxaw) groups=1000(linuxaw),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),137(sambashare)
إذا أردنا أن يعرض الأمر id نفس المخرج الموجز الذي يعرضه whoami سيكون علينا استخدام الخيارات الآتية
id -un
linuxaw@pc:~$ id -un
linuxaw
2. الأمر w
بالإضافة لعرض المستخدم الحالي، يعرض الأمر w معلومات تفصيلية أخرى كثيرة.
w
linuxaw@localhost-lig:~$ w
23:36:29 up 1 day, 5:06, 1 user, load average: 2.37, 1.39, 1.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
linuxaw tty7 :0 Fri19 28:06m 4:39 0.24s mate-session
3. الأمر who
على خلاف whoami الذي يعرض فقط المستخدم الحالي، يعرض who معلومات عن كل المستخدمين قيد الدخول.
who
linuxaw@pc:~$ who
linuxaw tty7 2023-12-29 19:30 (:0)
tux tty8 2023-12-30 23:12 (:1)
4. الأمر logname
يعرض كل من الأمرين whoami و logname اسم المستخدم الحالي.
linuxaw@pc:~$ whoami
linuxaw
linuxaw@pc:~$ logname
linuxaw
مع ذلك، فمهمة logname تقتصر فقط على اسم المستخدم وليس المستخدم الفعلي (Effective User). لذلك حتى لو كان المستخدم ضمن قائمة sudoers، فلن يشير logname إلى ذلك مثلما حدث مع whoami.
linuxaw@pc:~$ sudo whoami
[sudo] password for linuxaw:
root
linuxaw@pc:~$ sudo logname
linuxaw
المخرج الأول: بما أن المستخدم linuxaw يملك صلاحيات المستخدم الخارق، فعند استخدام sudo يعرض whoami اسم الجذر root.
المخرج الثاني: حتى بعد استخدام sudo، لا يُظهر logname إلا اسم المستخدم الحقيقي linuxaw.
خاتمة
بعد هذا الدليل الموجز، تكون قد تعرفت إلى دور الأمر whoami وكيفية استخدامه، وأيضا تداخل غرضه مع الأوامر الأخرى التي تحدثنا عنها. وتكون أيضا قد فهمت الفرق بين “المستخدم الحقيقي” و “المستخدم الفعلي”.
نرجو منك أن تشارك دليلنا مع معارفك وعلى منصات التواصل لتعميم الفائدة قدر المستطاع.