إدارة المستخدمين والصلاحيات في Linux: sudo والمجموعات
إدارة مستخدمي Linux مع useradd/usermod/userdel، إدارة المجموعات، إعداد sudo، المصادقة بمفتاح SSH ومبدأ الصلاحيات الدنيا.
جدول المحتويات
إدارة المستخدمين والصلاحيات في Linux: sudo والمجموعات
تُعدّ إدارة المستخدمين والصلاحيات في Linux ركيزة أساسية لأمان الخادم. تمنع الحسابات والأذونات المُعدّة بشكل صحيح الوصول غير المصرح به وتحدّ من تأثير الاختراقات الأمنية. يغطي هذا الدليل إدارة مستخدمي Linux وهيكل المجموعات وإعداد sudo والمصادقة بمفتاح SSH.
إدارة المستخدمين
إنشاء المستخدمين
# إنشاء مستخدم أساسي
sudo useradd اسم_المستخدم
# إنشاء مستخدم مع مجلد المنزل
sudo useradd -m اسم_المستخدم
# مع مجلد المنزل والصدفة والتعليق
sudo useradd -m -s /bin/bash -c "الاسم الكامل" اسم_المستخدم
# بـ UID محدد
sudo useradd -m -u 1500 اسم_المستخدم
# مع المجموعة الأساسية
sudo useradd -m -g www-data اسم_المستخدم
# تعيين كلمة المرور
sudo passwd اسم_المستخدم
# عرض معلومات المستخدم
id اسم_المستخدم
getent passwd اسم_المستخدم
تعديل المستخدمين
# إعادة تسمية المستخدم
sudo usermod -l الاسم_الجديد الاسم_القديم
# تغيير مجلد المنزل
sudo usermod -d /مجلد/منزل/جديد -m اسم_المستخدم
# تغيير الصدفة
sudo usermod -s /bin/bash اسم_المستخدم
# قفل الحساب
sudo usermod -L اسم_المستخدم
# فتح الحساب
sudo usermod -U اسم_المستخدم
# تعيين تاريخ انتهاء الحساب
sudo usermod -e 2025-12-31 اسم_المستخدم
# إجبار تغيير كلمة المرور عند تسجيل الدخول التالي
sudo chage -d 0 اسم_المستخدم
حذف المستخدمين
# حذف المستخدم (يُحفظ مجلد المنزل)
sudo userdel اسم_المستخدم
# حذف المستخدم ومجلد المنزل
sudo userdel -r اسم_المستخدم
# البحث عن الملفات المملوكة للمستخدم
find / -user اسم_المستخدم 2>/dev/null
إدارة المجموعات
# إنشاء مجموعة
sudo groupadd المطورون
# إضافة مستخدم إلى مجموعة
sudo usermod -aG المطورون اسم_المستخدم
# إضافة إلى مجموعات متعددة
sudo usermod -aG مجموعة1,مجموعة2,مجموعة3 اسم_المستخدم
# عرض مجموعات المستخدم
groups اسم_المستخدم
id اسم_المستخدم
# سرد المستخدمين في مجموعة
getent group المطورون
# إزالة مستخدم من مجموعة
sudo gpasswd -d اسم_المستخدم المطورون
# حذف مجموعة
sudo groupdel المطورون
# إعادة تسمية مجموعة
sudo groupmod -n الاسم_الجديد الاسم_القديم
إعداد sudo
منح صلاحية sudo
# إضافة مستخدم إلى مجموعة sudo (Debian/Ubuntu)
sudo usermod -aG sudo اسم_المستخدم
# إضافة مستخدم إلى مجموعة wheel (RHEL/CentOS)
sudo usermod -aG wheel اسم_المستخدم
# اختبار التغيير
su - اسم_المستخدم
sudo whoami # يجب أن يُخرج: root
إعداد ملف sudoers
# تعديل ملف sudoers بأمان
sudo visudo
# محتوى /etc/sudoers
# صلاحية sudo كاملة للمستخدم
اسم_المستخدم ALL=(ALL:ALL) ALL
# sudo بدون كلمة مرور (استخدم بحذر)
اسم_المستخدم ALL=(ALL) NOPASSWD: ALL
# sudo لأوامر محددة فقط
اسم_المستخدم ALL=(ALL) /usr/bin/systemctl, /usr/bin/apt
# صلاحية sudo لمجموعة
%المطورون ALL=(ALL:ALL) ALL
# بدون كلمة مرور لأمر محدد
اسم_المستخدم ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
# إنشاء ملف منفصل (الطريقة الموصى بها)
sudo nano /etc/sudoers.d/اسم_المستخدم
# محتوى الملف
اسم_المستخدم ALL=(ALL:ALL) ALL
# تعيين أذونات الملف
sudo chmod 440 /etc/sudoers.d/اسم_المستخدم
أذونات الملفات
# عرض الأذونات
ls -la /مجلد/
# تغيير الأذونات (رقمي)
chmod 755 سكريبت.sh # rwxr-xr-x
chmod 644 ملف.txt # rw-r--r--
chmod 600 سري.key # rw-------
# تغيير الأذونات (رمزي)
chmod u+x سكريبت.sh # إضافة تنفيذ للمالك
chmod g-w ملف.txt # إزالة الكتابة من المجموعة
chmod o-r سري.txt # إزالة القراءة من الآخرين
# تغيير الملكية
chown اسم_المستخدم ملف.txt
chown اسم_المستخدم:مجموعة ملف.txt
# تغيير المجلد ومحتوياته بشكل متكرر
chown -R اسم_المستخدم:مجموعة /مجلد/
المصادقة بمفتاح SSH
توليد زوج مفاتيح SSH
# توليد المفتاح على الجهاز المحلي
ssh-keygen -t ed25519 -C "email@example.com"
# مفتاح RSA (للأنظمة القديمة)
ssh-keygen -t rsa -b 4096 -C "email@example.com"
# يتم إنشاء المفاتيح في ~/.ssh/:
# ~/.ssh/id_ed25519 (المفتاح الخاص)
# ~/.ssh/id_ed25519.pub (المفتاح العام)
نسخ المفتاح العام إلى الخادم
# باستخدام ssh-copy-id (أسهل طريقة)
ssh-copy-id مستخدم@ip_الخادم
# نسخ يدوي
cat ~/.ssh/id_ed25519.pub | ssh مستخدم@ip_الخادم "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# إعداد يدوي على الخادم
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys # لصق المفتاح العام
chmod 600 ~/.ssh/authorized_keys
إعداد أمان SSH
sudo nano /etc/ssh/sshd_config
# تعطيل المصادقة بكلمة المرور (بعد إعداد المفتاح)
PasswordAuthentication no
# تعطيل تسجيل دخول root
PermitRootLogin no
# عدم السماح بكلمات المرور الفارغة
PermitEmptyPasswords no
# الحد الأقصى لمحاولات تسجيل الدخول
MaxAuthTries 3
# السماح لمستخدمين محددين
AllowUsers مستخدم1 مستخدم2
# السماح لمجموعة محددة
AllowGroups ssh-users
# إعادة تشغيل SSH
sudo systemctl restart sshd
# اختبار الإعداد
sudo sshd -t
مبدأ الصلاحيات الدنيا
ينص مبدأ الصلاحيات الدنيا على أن كل مستخدم وعملية يجب أن يمتلكا فقط الحد الأدنى من الأذونات اللازمة لأداء مهمتهما.
# إنشاء مستخدم مخصص للتطبيق (بدون صدفة)
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/myapp myapp_user
# إنشاء مجلد المنزل لمستخدم الخدمة
sudo mkdir -p /var/lib/myapp
sudo chown myapp_user:myapp_user /var/lib/myapp
sudo chmod 750 /var/lib/myapp
تجنب استخدام حساب root مباشرة. أنشئ حسابات منفصلة لكل مسؤول وفوّض عبر sudo. بهذه الطريقة يمكن تتبع جميع الإجراءات.
مراقبة نشاط المستخدمين
# عرض آخر عمليات تسجيل الدخول
last
lastlog
# عرض محاولات تسجيل الدخول الفاشلة
lastb
# عرض المستخدمين النشطين
who
w
# مراقبة استخدام sudo
sudo grep sudo /var/log/auth.log
الخلاصة
تُشكّل إدارة المستخدمين والصلاحيات في Linux أساس أمان الخادم. امنح كل مستخدم فقط الأذونات التي يحتاجها، واستخدم المصادقة بمفتاح SSH، وقيّد وصول root. تحمي هذه الممارسات خوادم REXE من الوصول غير المصرح به.
مقالات ذات صلة
الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
الاتصال بـ Windows VDS عبر RDP: دليل شامل للمبتدئين
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS: دليل إعادة التثبيت خطوة بخطوة
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.