في إدارة المستخدمين والمجموعات على نظام لينكس، معرف المستخدم (UID) ومعرف المجموعة (GID) هما مفهومان أساسيان وحاسمان. تُستخدم هذه المعرفات لتمييز المستخدمين والمجموعات على النظام بشكل فريد. إنها تؤثر مباشرة على إدارة أذونات المستخدم والتحكم في الوصول إلى الملفات، وبالتالي، يحتاج مديرو النظام والمطورون إلى التحقق من هذه المعرفات وفهمها بكفاءة. يوفر هذا المقال شرحًا مفصلًا حول كيفية التحقق من هذه المعرفات بسهولة باستخدام أدوات الأوامر السطرية وملفات النظام.
ما هما UID وGID
UID (معرف المستخدم) وGID (معرف المجموعة) هما معرفان رقميان يُستخدمان لتمييز المستخدمين والمجموعات في نظام لينكس. يستخدم النظام هذه المعرفات لإدارة ملكية الملفات والمجلدات والتحكم في حقوق الوصول.
- UID (معرف المستخدم): رقم فريد يُعطى لكل حساب مستخدم. يحدد هذا المعرف العمليات التي يمكن للمستخدم أداؤها على النظام. على سبيل المثال، عادةً ما يكون معرف المستخدم الجذر 0، الذي لديه جميع الأذونات على النظام.
- GID (معرف المجموعة): رقم فريد يُعطى لكل مجموعة مستخدمين. تشير المجموعة على النظام إلى مجموعة من المستخدمين الذين يشاركون أذونات محددة. يمكن للمستخدم أن ينتمي إلى مجموعات متعددة، مما يرث أذونات تلك المجموعات.
في لينكس، يتم تعيين UIDs وGIDs تلقائيًا في وقت إنشاء المستخدم، لكن يمكن لمديري النظام تغيير هذه القيم حسب الحاجة. في نظام الملفات، يتم إدارة الملفات والدلائل بناءً على UID وGID للمالك، ويتم ضبط حقوق الوصول بناءً عليها.
كيفية التحقق من UID وGID من الأوامر السطرية
في نظام لينكس، يمكنك التحقق بسهولة من معرف المستخدم ومعرف المجموعة باستخدام أدوات الأوامر السطرية. الطريقة الأكثر شيوعًا ومباشرة هي استخدام أمر id
. يعرض هذا الأمر معرف المستخدم الحالي أو المحدد، ومعرف المجموعة، ومعرفات المجموعات التي ينتمي إليها.
الاستخدام الأساسي لأمر `id`
تشغيل أمر id
بدون وسيطات يعرض معرف المستخدم ومعرف المجموعة للمستخدم الذي يعمل على جلسة الشل الحالية، بالإضافة إلى معرفات المجموعات التي ينتمي إليها.
id
ينتج هذا الأمر مخرجات مثل هذا:
uid=1000(username) gid=1000(groupname) groups=1000(groupname),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),998(docker)
هنا، uid
يمثل معرف المستخدم، gid
يمثل معرف المجموعة الرئيسية للمستخدم، وgroups
يسرد معرفات المجموعات الإضافية التي ينتمي إليها المستخدم.
التحقق من UID وGID لمستخدم محدد
للتحقق من UID وGID لمستخدم محدد، قم بتمرير اسم المستخدم كوسيطة إلى أمر id
.
id username
على سبيل المثال، للتحقق من المعلومات لمستخدم يُدعى alice
، يجب تنفيذ:
id alice
هذه الطريقة مفيدة للتحقق بسرعة من معلومات التعريف لأي مستخدم على النظام. أمر id
هو أحد الأدوات التي يستخدمها مديرو النظام بشكل متكرر، وقد ثبت أنها مريحة جدًا لضبط أذونات المستخدم وتحليل المشاكل.
العثور على UID وGID في ملف /etc/passwd
في أنظمة لينكس، يحتوي ملف /etc/passwd
على معلومات حول جميع حسابات المستخدمين على النظام. يمكنك أيضًا التحقق من معرف المستخدم ومعرف المجموعة من هذا الملف. ملف /etc/passwd
هو ملف نصي ومكتوب بتنسيق يمكن قراءته بواسطة البشر، حيث يحتوي كل سطر على معلومات حول مستخدم واحد.
بنية ملف `/etc/passwd`
كل إدخال في ملف /etc/passwd
مُلاحظ بهذا الشكل:
username:x:UID:GID:GECOS:home_directory:shell
هنا،
username
يشير إلى اسم المستخدم.x
هو حقل كلمة المرور، والذي يتم إدارته الآن بواسطة نظام كلمة المرور المخفية في ملف/etc/shadow
.UID
هو معرف المستخدم.GID
هو معرف المجموعة الرئيسية للمستخدم.GECOS
هو حقل يحتوي على الاسم الكامل للمستخدم أو معلومات أخرى.home_directory
هو مسار دليل البيت للمستخدم.shell
يشير إلى الشل الذي يتم تشغيله عند تسجيل دخول المستخدم.
البحث عن UID وGID باستخدام الأوامر السطرية
للعثور على معرف المستخدم ومعرف المجموعة لمستخدم محدد من ملف /etc/passwd
، يمكن أن يكون استخدام أمر grep
مفيدًا. على سبيل المثال، للتحقق من UID وGID للمستخدم الذي يُدعى alice
، نفذ:
grep 'alice' /etc/passwd
مثال على المخرجات:
alice:x:1001:1001:Alice Example:/home/alice:/bin/bash
في هذا المثال، كلا من UID وGID للمستخدم alice
هما 1001. أيضًا، دليل البيت لـ alice
هو /home/alice
، والشل الافتراضي هو /bin/bash
.
الرجوع مباشرة إلى ملف /etc/passwd
مفيد بشكل خاص للتحقق من معلومات جميع المستخدمين المسجلين على النظام أو في الحالات التي لا تتوفر فيها واجهة رسومية. ومع ذلك، بما أن معلومات كلمة المرور مخزنة في ملف /etc/shadow
لأسباب أمنية، فإن الوصول المباشر يتطلب امتيازات إدارية.
أمثلة عملية: كيفية التحقق من UID وGID لمستخدم محدد
هناك طرق مختلفة للتحقق من معرف المستخدم (UID) ومعرف المجموعة (GID) لمستخدم محدد على نظام لينكس، ولكن هنا سنشرح عمليًا الطريقتين الأكثر شيوعًا.
الطريقة 1: باستخدام أمر `id`
الطريقة الأبسط والأكثر مباشرة هي استخدام أمر id
. يعرض هذا الأمر معرف المستخدم المحدد، ومعرف المجموعة، ومعرفات المجموعات التي ينتمي إليها.
للحصول على المعلومات لمستخدم محدد، أدخل التالي في الأوامر السطرية:
id username
على سبيل المثال، إذا كان اسم المستخدم alice
، سيبدو هكذا:
id alice
يوفر هذا الأمر معلومات UID وGID وانتماء المجموعة لـ alice
.
الطريقة 2: فحص ملف `/etc/passwd`
جميع معلومات حساب المستخدم على النظام مخزنة في ملف /etc/passwd
. يمكنك أيضًا فحص هذا الملف مباشرةً للحصول على UID وGID.
للبحث عن معلومات مستخدم محدد، استخدم أمر grep
:
grep 'username' /etc/passwd
على سبيل المثال، إذا كان اسم المستخدم alice
، فستدخل:
grep 'alice' /etc/passwd
يعرض هذا مدخل alice
من ملف /etc/passwd
، الذي يتضمن UID وGID لـ alice
في تلك السطر.
تتيح هذه الطرق التحقق بسهولة من UID وGID لمستخدم محدد على نظام لينكس. بالنسبة لمديري النظام والمتخصصين في الأمن، تلعب هذه المعلومات دورًا حاسمًا في إدارة الأذونات وتدقيق النظام.
استخدام السكربتات للتحقق الجماعي من UID وGID لعدة مستخدمين
إذا كنت بحاجة إلى التحقق بكفاءة من UID وGID لعدة مستخدمين، يمكن أن يؤتمت هذه العملية كتابة سكربت صغير. هنا، نقدم مثالًا بسيطًا على سكربت لجلب UID وGID لعدة مستخدمين على نظام لينكس.
مثال على السكربت
فيما يلي سكربت يعرض UID وGID لقائمة محددة من المستخدمين. يتم تعداد أسماء المستخدمين المفصولة بمسافات وتنفيذ أمر id
لكل مستخدم.
#!/bin/bash
# قائمة أسماء المستخدمين
usernames="alice bob charlie"
# عرض UID وGID لكل مستخدم
for username in $usernames; do
echo "User: $username";
id $username
echo ""; # طباعة سطر فارغ
done
لاستخدام هذا السكربت، افتح أولًا محرر نصوص والصق الكود أعلاه، ثم احفظ الملف (على سبيل المثال، show_uid_gid.sh
). بعد ذلك، انتقل إلى الدليل الذي يحتوي على ملف السكربت في الطرفية وأعط السكربت أذونات التنفيذ.
chmod +x show_uid_gid.sh
ثم، نفذ السكربت.
./show_uid_gid.sh
يعرض تشغيل السكربت UID وGID لكل مستخدم محدد. هذه الطريقة مفيدة بشكل خاص عند إجراء التحقيقات أو التدقيقات على مجموعات مستخدمين محددة داخل النظام. بالإضافة إلى ذلك، بتعديل قائمة المستخدمين في السكربت، يمكنك أداء هذه العملية لأي مجموعة من المستخدمين حسب الحاجة.
ملخص
هناك عدة طرق فعالة للتحقق من معرف المستخدم (UID) ومعرف المجموعة (GID) في لينكس، بما في ذلك الحصول مباشرةً على هذه المعلومات من الأوامر السطرية باستخدام أمر id
، فحص ملف /etc/passwd
، واستخدام السكربتات لجلب المعلومات جماعيًا لعدة مستخدمين. كل طريقة فعالة حسب احتياجاتك والوضع الذي تواجهه.
من خلال فهم واستخدام هذه الطرق بشكل صحيح، يمكنك تحسين كفاءة إدارة المستخدمين بشكل كبير في إدارة نظام لينكس وتدقيق الأمان. خاصةً بالنسبة لمديري النظام والمتخصصين في الأمان، فإن إتقان هذه العمليات الأساسية مهم لأنها تصبح جزءًا من المهام اليومية.
في النهاية، فهم مفاهيم المستخدمين والمجموعات بشكل دقيق، وإدارة العناصر الأساسية مثل UID وGID بشكل صحيح، ضروري للعمل بأمان وكفاءة على أنظمة لينكس. نأمل أن يكون هذا المقال بمثابة دليل قيم لمستخدمي ومديري لينكس على حد سواء.