دليل | الأمر whoami لعرض اسم المستخدم

واحد من أهم الأوامر التي عليك معرفتها على لينكس

مقدمة

أداة 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 وكيفية استخدامه، وأيضا تداخل غرضه مع الأوامر الأخرى التي تحدثنا عنها. وتكون أيضا قد فهمت الفرق بين “المستخدم الحقيقي” و “المستخدم الفعلي”.

نرجو منك أن تشارك دليلنا مع معارفك وعلى منصات التواصل لتعميم الفائدة قدر المستطاع.

مسرور
مسرور
1
حزين
حزين
0
متحمس
متحمس
0
نعسان
نعسان
0
غاضب
غاضب
0
متفاجئ
متفاجئ
0
معاذ جِيجلي
معاذ جِيجلي
المقالات: 73