إدارة المستخدمين والصلاحيات في بيئة لينكس

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

1. إنشاء المستخدمين

أ. استخدام adduser و useradd

في لينكس، هناك أمران رئيسيان لإنشاء مستخدم جديد:

  • adduser: هو واجهة تفاعلية عالية المستوى تُبسط عملية إنشاء المستخدم، وتقوم بإعداد المجلدات الأساسية تلقائيًا.

    مثال:

    bash
    sudo adduser john

    سيطلب منك إدخال كلمة مرور ومعلومات إضافية مثل الاسم الكامل وما إلى ذلك. يمكنك تخطي هذه المعلومات بالضغط على مفتاح Enter.

  • useradd: هو أمر منخفض المستوى ويحتاج إلى خيارات إضافية لتخصيص إنشاء المستخدم بشكل كامل.

    مثال:

    bash
    sudo useradd -m -s /bin/bash john
    sudo passwd john

    هنا، -m ينشئ المجلد الرئيسي للمستخدم، و -s يحدد الصدفة الافتراضية للمستخدم.

ب. إنشاء مستخدمين مع صلاحيات محددة

يمكنك إنشاء مستخدمين مع صلاحيات محددة دون منحهم صلاحيات إدارية.

مثال:

bash
sudo adduser alice

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

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

أ. استخدام deluser و userdel

لحذف مستخدم من النظام، يمكنك استخدام أحد الأمرين التاليين:

  • deluser: يُفضل استخدامه لأنه يقوم بإزالة المستخدم مع ملفاته بشكل آمن.

    مثال:

    bash
    sudo deluser john

    لإزالة المستخدم مع ملفاته:

    bash
    sudo deluser --remove-home john
  • userdel: هو أمر منخفض المستوى ويحتاج إلى خيارات إضافية لتحقيق نفس النتيجة.

    مثال:

    bash
    sudo userdel john

    لإزالة المستخدم مع ملفاته:

    bash
    sudo userdel -r john

3. إدارة المجموعات

أ. إنشاء المجموعات

المجموعات تُستخدم لتنظيم المستخدمين ومنحهم صلاحيات مشتركة.

مثال:

bash
sudo groupadd developers

ب. حذف المجموعات

لحذف مجموعة غير ضرورية:

مثال:

bash
sudo groupdel developers

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

يمكنك إضافة مستخدم إلى مجموعة معينة باستخدام الأمر usermod.

مثال:

bash
sudo usermod -aG developers john

هنا، -aG تعني إضافة المستخدم إلى المجموعة دون إزالة عضويته في المجموعات الأخرى.

د. إزالة مستخدم من مجموعة

مثال:

bash
sudo gpasswd -d john developers

4. إدارة الصلاحيات

أ. مفهوم الصلاحيات في لينكس

كل ملف أو مجلد في لينكس يمتلك ثلاثة أنواع من الصلاحيات لكل من:

  • المالك (Owner)
  • المجموعة (Group)
  • الآخرون (Others)

والصلاحيات تشمل:

  • القراءة (Read – r)
  • الكتابة (Write – w)
  • التنفيذ (Execute – x)

ب. تغيير صلاحيات الملفات والمجلدات باستخدام chmod

يمكنك تغيير صلاحيات ملف أو مجلد باستخدام الأمر chmod بثلاث طرق:

  1. الطريقة الرمزية:

    أمثلة:

    • إضافة صلاحية التنفيذ للمالك:
      bash
      chmod u+x script.sh
    • إزالة صلاحية الكتابة من المجموعة:
      bash
      chmod g-w file.txt
    • تعيين صلاحيات القراءة والكتابة للمالك فقط:
      bash
      chmod u=rw, g=, o= file.txt
  2. الطريقة الرقمية:

    تُستخدم أرقام لتمثيل الصلاحيات:

    • 4: قراءة (r)
    • 2: كتابة (w)
    • 1: تنفيذ (x)

    أمثلة:

    • تعيين صلاحيات 755:
      • المالك: قراءة + كتابة + تنفيذ (7)
      • المجموعة: قراءة + تنفيذ (5)
      • الآخرون: قراءة + تنفيذ (5)
      bash
      chmod 755 script.sh

ج. تغيير مالك الملف أو المجلد باستخدام chown

لتغيير مالك ملف أو مجلد:

مثال:

bash
sudo chown alice file.txt

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

bash
sudo chown alice:developers file.txt

د. تغيير مجموعة الملف أو المجلد باستخدام chgrp

مثال:

bash
sudo chgrp developers file.txt

5. إدارة صلاحيات Sudo

sudo يسمح للمستخدمين بتنفيذ أوامر بامتيازات المستخدم الجذر (root) دون الحاجة لتسجيل الدخول كجذر.

أ. منح صلاحيات Sudo لمستخدم

يمكنك إضافة المستخدم إلى مجموعة sudo (على أنظمة Debian/Ubuntu) أو wheel (على أنظمة CentOS/Fedora).

على Debian/Ubuntu:

bash
sudo usermod -aG sudo alice

على CentOS/Fedora:

bash
sudo usermod -aG wheel alice

ب. تحرير ملف sudoers

لاستعراض أو تعديل صلاحيات sudo، استخدم الأمر visudo لتحرير ملف /etc/sudoers بأمان.

مثال:

bash
sudo visudo

يمكنك إضافة السطر التالي لمنح مستخدم معين صلاحيات sudo بدون الحاجة لكلمة مرور:

bash
alice ALL=(ALL) NOPASSWD:ALL

تحذير: تأكد من كتابة الصلاحيات بشكل صحيح لتجنب ثغرات أمنية. يفضل استخدام مجموعات بدلاً من منح صلاحيات لكل مستخدم على حدة.

6. استخدام ACLs (Access Control Lists) لتفاصيل الصلاحيات

ACLs تتيح تحديد صلاحيات أكثر تفصيلاً من نظام الصلاحيات التقليدي.

أ. تثبيت أدوات ACL

على بعض التوزيعات، قد تحتاج إلى تثبيت أدوات ACL:

bash
sudo apt install acl # على Debian/Ubuntu
sudo dnf install acl # على CentOS/Fedora

ب. تمكين ACL على نظام الملفات

تأكد من أن نظام الملفات يدعم ACL. يمكنك تعديل /etc/fstab لإضافة الخيار acl.

مثال:

bash
sudo nano /etc/fstab

أضف acl إلى خيارات نظام الملفات، مثل:

bash
/dev/sda1 /mnt/data ext4 defaults,acl 0 2

ثم أعد تحميل النظام:

bash
sudo mount -o remount,acl /mnt/data

ج. تعيين ACLs باستخدام setfacl

أمثلة:

  • إعطاء صلاحيات قراءة وكتابة لمستخدم معين:
    bash
    setfacl -m u:john:rw /mnt/data/file.txt
  • إعطاء صلاحيات تنفيذ لمجموعة معينة:
    bash
    setfacl -m g:developers:x /mnt/data/script.sh

د. عرض ACLs باستخدام getfacl

مثال:

bash
getfacl /mnt/data/file.txt

7. إدارة كلمات المرور

أ. تعيين وتغيير كلمات المرور

يمكنك تعيين أو تغيير كلمة مرور مستخدم باستخدام الأمر passwd.

مثال:

  • تعيين كلمة مرور للمستخدم الحالي:
    bash
    passwd
  • تعيين كلمة مرور لمستخدم آخر (يتطلب صلاحيات جذر):
    bash
    sudo passwd john

ب. سياسات كلمات المرور

يمكنك تعزيز أمان النظام عن طريق تطبيق سياسات قوية لكلمات المرور باستخدام أدوات مثل passwd و chage.

مثال:

  • تحديد مدة صلاحية كلمة المرور:
    bash
    sudo chage -M 90 john

    هنا، -M 90 يعني أن كلمة المرور تنتهي صلاحيتها بعد 90 يومًا.

8. إدارة الجلسات وتسجيل الدخول

أ. مراقبة الجلسات

يمكنك مراقبة الجلسات النشطة باستخدام أوامر مثل who, w, و last.

أمثلة:

  • عرض المستخدمين الحاليين:
    bash
    who
  • عرض تفاصيل الجلسات:
    bash
    w
  • عرض آخر عمليات تسجيل الدخول:
    bash
    last

ب. قفل الحسابات

إذا كنت ترغب في منع مستخدم معين من تسجيل الدخول، يمكنك قفله باستخدام الأمر passwd.

مثال:

bash
sudo passwd -l john

لفك قفل الحساب:

bash
sudo passwd -u john

9. أفضل الممارسات

  • تقليل استخدام حساب root: استخدم حسابات مستخدمين مع صلاحيات محدودة واستخدم sudo عند الحاجة.
  • استخدام كلمات مرور قوية: تأكد من أن جميع الحسابات تستخدم كلمات مرور قوية ومعقدة.
  • تعطيل حسابات غير مستخدمة: إذا لم يعد المستخدم بحاجة للوصول، قم بتعطيل حسابه أو حذفه.
  • مراجعة الصلاحيات بانتظام: تحقق دوريًا من الصلاحيات الممنوحة وتأكد من أنها لا تتجاوز ما هو ضروري.
  • استخدام المصادقة الثنائية (2FA): لتعزيز أمان الحسابات التي لديها صلاحيات إدارية.
  • تسجيل ومراقبة النشاطات: استخدم أدوات مثل auditd لمراقبة وتسجيل أنشطة المستخدمين المهمة.

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

  • sudo: لإدارة الصلاحيات الإدارية.
  • visudo: لتحرير ملف sudoers بأمان.
  • getent: لعرض معلومات المستخدمين والمجموعات.
  • passwd: لإدارة كلمات المرور.
  • chage: لإدارة سياسات كلمات المرور.
  • sudoers: لإدارة صلاحيات sudo.
  • acl: لإدارة ACLs للصلاحيات التفصيلية.
  • أدوات GUI مثل Webmin: لإدارة المستخدمين والصلاحيات من واجهة رسومية.

خاتمة

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

من geekadmin