ديف أوبس

إدارة المستخدمين والمجموعات في لينكس

جدول المحتوى

ضبط وإعداد المستخدمين والمجموعات في نظام لينكس

في عالم نظم التشغيل، يُعتبر نظام لينكس من أكثر الأنظمة استخدامًا في الخوادم، وأجهزة الكمبيوتر الشخصية، وكذلك في البيئات البرمجية المتقدمة. أحد أهم الجوانب التي يعتمد عليها هذا النظام بقوة هو إدارة المستخدمين والمجموعات، والتي تمثل الأساس الأمني والإداري الذي يضمن تنظيم الحقوق، والخصوصية، وإمكانية التحكم بالوصول إلى الموارد المختلفة داخل النظام. يتناول هذا المقال بشكل مفصل وشامل كيفية ضبط وإعداد المستخدمين والمجموعات في نظام لينكس، مع شرح مفصل لكل خطوة وأدوات التحكم المتاحة.


مفهوم المستخدمين والمجموعات في لينكس

في نظام لينكس، يُعتبر كل شخص أو خدمة تعمل على النظام “مستخدمًا”. لكل مستخدم حساب خاص به، يحتوي على اسم مستخدم (Username) وكلمة مرور، بالإضافة إلى مجموعة من الصلاحيات التي تحدد ما يمكنه فعله داخل النظام.

المجموعات هي تجميع للمستخدمين، تُستخدم لتسهيل إدارة الصلاحيات، فبدلًا من تعيين الصلاحيات لكل مستخدم على حدة، يمكن تعيينها لمجموعة، ثم يتم إضافة المستخدمين إلى تلك المجموعة حسب الحاجة.


أهمية إدارة المستخدمين والمجموعات

  • الأمان: حماية النظام من الوصول غير المصرح به عبر التحكم في من يمكنه الوصول إلى الملفات والعمليات.

  • تنظيم الوصول: تيسير عملية إعطاء الصلاحيات بشكل منظم عبر المجموعات.

  • تتبع النشاط: يمكن من خلال الحسابات معرفة أي نشاط قام به أي مستخدم على النظام.

  • تخصيص البيئة: لكل مستخدم إعداداته الخاصة، من حيث الصلاحيات وبيئة العمل.


إنشاء المستخدمين في لينكس

1. استخدام الأمر useradd

الأمر useradd هو الأكثر شيوعًا لإضافة مستخدم جديد في النظام. يمكن استخدامه بالصيغة التالية:

bash
sudo useradd [خيارات] اسم_المستخدم

أهم الخيارات المستخدمة:

  • -m : لإنشاء مجلد المنزل (Home directory) الخاص بالمستخدم.

  • -s : لتحديد الصدفة (Shell) التي يستخدمها المستخدم، مثل /bin/bash.

  • -c : لإضافة تعليق أو وصف للمستخدم.

  • -G : لإضافة المستخدم إلى مجموعات إضافية بجانب المجموعة الرئيسية.

مثال لإنشاء مستخدم جديد مع مجلد المنزل والصدفة:

bash
sudo useradd -m -s /bin/bash -c "مستخدم جديد" user1

2. تعيين كلمة مرور للمستخدم

بعد إنشاء الحساب، لا بد من تعيين كلمة مرور للمستخدم باستخدام الأمر:

bash
sudo passwd user1

سوف يُطلب إدخال كلمة المرور مرتين للتأكيد.


تعديل المستخدمين

يتيح نظام لينكس تعديل خصائص المستخدمين عبر الأمر usermod، مثل تغيير اسم المستخدم، المجموعة الرئيسية، إضافة المستخدم إلى مجموعات أخرى، أو تغيير مجلد المنزل.

مثال لتغيير اسم المستخدم:

bash
sudo usermod -l newname oldname

إضافة المستخدم إلى مجموعة إضافية:

bash
sudo usermod -aG groupname username

مفتاح -a يعني الإضافة، و-G تعني المجموعة.


حذف المستخدمين

لإزالة مستخدم، يمكن استخدام الأمر:

bash
sudo userdel username

لإزالة المستخدم مع مجلد المنزل الخاص به:

bash
sudo userdel -r username

المجموعات في لينكس

إنشاء مجموعة جديدة

يمكن إنشاء مجموعة جديدة باستخدام الأمر:

bash
sudo groupadd groupname

حذف مجموعة

لحذف مجموعة:

bash
sudo groupdel groupname

عرض معلومات المجموعات

لعرض قائمة المجموعات:

bash
cat /etc/group

لعرض معلومات مجموعة معينة:

bash
getent group groupname

ربط المستخدمين بالمجموعات

كل مستخدم في لينكس ينتمي إلى مجموعة رئيسية واحدة على الأقل، ويمكنه الانتماء إلى عدة مجموعات فرعية. تعيين المستخدم إلى المجموعات يحدد صلاحيات الوصول إلى الملفات والمجلدات.

كيفية معرفة المجموعات التي ينتمي إليها مستخدم معين:

bash
groups username

أو

bash
id username

تغيير المجموعة الرئيسية للمستخدم:

bash
sudo usermod -g newgroup username

الصلاحيات وإدارة الوصول للمستخدمين والمجموعات

تُعتبر الصلاحيات جزءًا محوريًا في إدارة المستخدمين والمجموعات. في نظام لينكس، لكل ملف أو مجلد ثلاث أنواع من الصلاحيات: القراءة (r)، والكتابة (w)، والتنفيذ (x). وتُحدد هذه الصلاحيات لثلاث فئات: مالك الملف، مجموعة الملف، والآخرين.

صيغة عرض الصلاحيات

عند استخدام الأمر:

bash
ls -l filename

يتم عرض الصلاحيات بالشكل:

diff
-rwxr-xr--
  • الحرف الأول يحدد نوع الملف (- لملف عادي، d للمجلد).

  • الثلاثة الأولى بعده لصلاحيات المالك.

  • الثلاثة التالية لصلاحيات المجموعة.

  • الثلاثة الأخيرة لصلاحيات الآخرين.

تغيير الصلاحيات باستخدام chmod

يمكن تغيير الصلاحيات بأمر chmod، حيث يمكن استخدام الصيغ الرمزية أو الرقمية.

مثال:

bash
chmod u+rwx,g+rx,o-rwx filename

هذا يمنح المالك كل الصلاحيات، والمجموعة قراءة وتنفيذ، ولا صلاحيات للآخرين.

تغيير مالك الملف باستخدام chown

لتغيير مالك الملف:

bash
sudo chown username filename

لتغيير مالك الملف والمجموعة:

bash
sudo chown username:groupname filename

ملفات النظام المهمة لإدارة المستخدمين والمجموعات

  • /etc/passwd : يحتوي على معلومات المستخدمين الأساسية (الاسم، رقم UID، المجموعة الرئيسية، مجلد المنزل، الصدفة).

  • /etc/shadow : يحتوي على كلمات مرور المستخدمين بشكل مشفر.

  • /etc/group : يحتوي على معلومات المجموعات وأعضائها.

هذه الملفات لا يجب تعديلها يدويًا إلا في حالات متقدمة، ويفضل استخدام الأوامر المخصصة لإدارة المستخدمين والمجموعات.


أوامر وأدوات متقدمة لإدارة المستخدمين والمجموعات

1. adduser

أداة مبسطة مقارنة بـ useradd، توفر واجهة تفاعلية لإنشاء المستخدمين.

bash
sudo adduser username

تطلب الأداة معلومات مثل كلمة المرور، الاسم الكامل، رقم الهاتف، وغيرها.

2. gpasswd

تُستخدم لإدارة مجموعات معينة، مثل إضافة أو إزالة أعضاء.

لإضافة مستخدم إلى مجموعة:

bash
sudo gpasswd -a username groupname

لإزالة مستخدم:

bash
sudo gpasswd -d username groupname

3. groups

لعرض المجموعات التي ينتمي إليها المستخدم الحالي أو مستخدم محدد.


إدارة صلاحيات sudo للمستخدمين

لمنح مستخدم صلاحيات إدارية، يتم إضافته إلى مجموعة sudo أو تعديل ملف sudoers.

إضافة المستخدم إلى مجموعة sudo:

bash
sudo usermod -aG sudo username

تعديل ملف sudoers

يتم التعديل عبر الأمر:

bash
sudo visudo

هذا الملف يحتوي على إعدادات صلاحيات sudo ويجب الحذر عند تعديله.


إدارة حسابات النظام والخدمات

بعض الحسابات في لينكس هي حسابات نظام أو خدمات، ولا تستخدم لتسجيل الدخول، وتُعرف بـ “System Users”.

يمكن إنشاء حساب نظام باستخدام الخيار -r مع useradd:

bash
sudo useradd -r username

هذه الحسابات تُستخدم لتشغيل خدمات معينة وتتمتع بصلاحيات محدودة.


إدارة سياسات كلمات المرور

لزيادة الأمان، يمكن تحديد سياسات لكلمات المرور مثل الحد الأدنى للطول، مدة صلاحية كلمة المرور، وتعقيدها.

يتم ذلك عبر تعديل ملف /etc/login.defs وملف /etc/pam.d/common-password.

أدوات لإدارة كلمات المرور

  • passwd : لتغيير كلمة المرور.

  • chage : لإدارة صلاحيات كلمات المرور، مثل تحديد تاريخ انتهاء الصلاحية.

مثال لتعيين انتهاء صلاحية كلمة المرور بعد 90 يومًا:

bash
sudo chage -M 90 username

تسجيل الدخول وتقييد الوصول

يمكن التحكم في من يمكنه تسجيل الدخول إلى النظام عبر تعديل ملف /etc/security/access.conf واستخدام PAM (Pluggable Authentication Modules).

كما يمكن تقييد وصول المستخدمين إلى أوقات معينة أو خدمات محددة.


مراقبة وإدارة نشاط المستخدمين

تتوفر أدوات عدة لمراقبة نشاط المستخدمين، منها:

  • last : يعرض آخر تسجيلات الدخول.

  • who : يعرض المستخدمين المتصلين حاليًا.

  • w : يعرض معلومات مفصلة عن المستخدمين والنشاط.


مقارنة بين المستخدمين العاديين والمستخدم الجذر (Root)

  • المستخدم الجذر (Root): هو المستخدم صاحب الصلاحيات المطلقة على النظام، يمكنه تنفيذ أي أمر، وتغيير أي ملف أو إعداد.

  • المستخدمون العاديون: لهم صلاحيات محدودة يتم تحديدها عبر المجموعات وملفات الصلاحيات.


خلاصة عملية لإدارة المستخدمين والمجموعات

المهمة الأمر/الطريقة الوصف
إنشاء مستخدم جديد sudo useradd -m -s /bin/bash username إضافة مستخدم مع مجلد منزل وصدفة bash
تعيين كلمة مرور sudo passwd username تعيين كلمة مرور للمستخدم
تعديل مستخدم sudo usermod -aG groupname username إضافة مستخدم إلى مجموعة
حذف مستخدم sudo userdel -r username حذف المستخدم مع مجلد المنزل
إنشاء مجموعة sudo groupadd groupname إنشاء مجموعة جديدة
حذف مجموعة sudo groupdel groupname حذف مجموعة
عرض مجموعات المستخدم groups username عرض المجموعات التي ينتمي إليها المستخدم
تغيير صلاحيات ملف chmod u+rwx,g+rx,o-rwx filename تعديل صلاحيات الملف
تغيير مالك ملف sudo chown username:groupname filename تغيير مالك الملف والمجموعة
إضافة مستخدم لصلاحيات إدارية sudo usermod -aG sudo username منح صلاحيات root عبر مجموعة sudo

الخلاصة

تمثل عملية ضبط وإعداد المستخدمين والمجموعات في نظام لينكس حجر الزاوية في إدارة النظام، فهي تؤمن البيئة الآمنة والمنظمة التي تضمن استخدام الموارد بشكل فعّال وآمن. عبر فهم الأدوات والأوامر المختلفة، يمكن للمسؤول عن النظام إنشاء حسابات المستخدمين وتعديلها وحذفها، بالإضافة إلى إنشاء المجموعات وإدارتها، وتعيين الصلاحيات المناسبة التي تضمن تشغيل النظام بسلاسة وأمان. كما أن الإلمام بتفاصيل إدارة كلمات المرور، صلاحيات الوصول، والمراقبة المستمرة للنشاطات يرفع من مستوى الأمان ويساعد في الكشف المبكر عن أي استخدام غير مرغوب فيه للنظام.

في ضوء التطور المستمر في بيئات لينكس، يبقى من الضروري تحديث المعرفة بالأدوات والطرق الحديثة لإدارة المستخدمين والمجموعات، مع الحرص على تطبيق أفضل الممارسات الأمنية لتحقيق بيئة عمل مستقرة وموثوقة.