Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Linuxإدارة المستخدمين

  • المستخدم و المجموعات في لينكس
  • المعلومات الأساسية لكل مستخدم في لينكس
  • إنشاء مستخدم جديد في لينكس
  • تعيين كلمة المرور للمستخدم في لينكس
  • طباعة معلومات المستخدم في لينكس
  • تعديل معلومات المستخدم في لينكس
  • حذف المستخدم في لينكس
  • تنفيذ الأمر بصلاحيات المدير في لينكس
  • أين يتم حفظ معلومات المستخدمين في لينكس

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

لاستخدام نظام لينكس عليك دوماً تسجيل الدخول بواسطة مستخدم موجود بالفعل عليه لأنه من خلال المستخدم الذي دخلت بواسطته فإنه يتم تحديد ما هي الأشياء التي يمكنك القيام بها.

صلاحيات المستخدم في لينكس يتم تحديدها تبعاً للمجموعة التي هو تابع لها. فإن كان ضمن مجموعة المتحكمين بالنظام ( System Users ) فهذا يعني أنه يملك جميع الصلاحيات التي تخوله لفعل ما يريد من حذف و تعديل و إضافة في ملفات النظام، أما إن كان ضمن مجموعة المستخدمين العاديين ( Regular Users ) فيمكنه فقط إدارة ملفاته الشخصية و الموجودة في المجلد الإفتراضي الخاص به.

المعلومات الأساسية لكل مستخدم في لينكس

كل مستخدم في لينكس يجب أن يملك ما يلي:

  • إسم مستخدم ( Username ) و الذي يمكن من خلاله تسجيل الدخول.
  • رقم المعرّف الخاص بالمستخدم ( User ID أو UID ) و الذي يمكن من خلاله ضمّه إلى مجموعة ليتم تحديد صلاحياته، و يمكن من خلاله معرفة البرامج التي يقوم بتشغيلها.
  • رقم معرّف الخاص بالمجموعة التي يتبع لها المستخدم ( Group ID أو GID ) و الذي من خلاله يمكن معرفة الصلاحيات الممنوحة له.
  • أسماء المجموعات ( Groups ) التي يتشارك معها المستخدم الملفات.
  • المجلد الإفتراضي للمستخدم ( Home Directory ) حيث يمكنه وضع ملفاته الخاصة.
  • لغة البرمجة الإفتراضية ( Default Shell ) التي يمكنه كتابة سكربتات فيها لأتمتة المهام.
  • كلمة مرور المستخدم ( Password ) التي يجب أن يدخلها عند تسجيل الدخول.

عند إضافة مستخدم جديد في لينكس يمكنك تحديد جميع معلومات حسابه الأساسية دفعة واحدة أو تحديدها له تباعاً.

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

لإنشاء مستخدم جديد يمكنك استخدام الأمر useradd على النحو التالي.

useradd [options] username
  • [options] - يقصد بها الباراميترات الإختيارية التي يمكنك تمريرها للأمر.
  • username - مكانها يجب كتابة إسم المستخدم المراد إنشاؤه.

فيما يلي الباراميترات التي يمكنك استخدامها مع هذا الأمر لتحديد معلومات المستخدم الجديد في لحظة إنشاء حسابه.

الباراميتر و استخدامه
-u يستعمل هذا الباراميتر لتحديد رقم المعرّف للمستخدم.
-c يستعمل هذا الباراميتر لتحديد إسم عادي للمستخدم.
-g يستعمل هذا الباراميتر لتحديد الإسم أو الرقم المعرّف للمجموعة الأساسية التي ينتمي إليها المستخدم.
-G يستعمل هذا الباراميتر لتحديد أسماء المجموعات الثانوية التي ينتمي إليها المستخدم إضافةً إلى مجموعته الأساسية.
-d يستعمل هذا الباراميتر لتحديد مسار المجلد الإفتراضي الخاص بالمستخدم.
-s يستعمل هذا الباراميتر لتحديد مسار المجلد الذي يحتوي على لغة البرمجة الإفتراضية التي يمكن للمستخدم استعمالها.
-m يمكن استعمال هذا الباراميتر للتأكيد على أنه يجب إنشاء المجلد الإفتراضي للمستخدم في المسار الذي تم تحديده.
-p يمكن استعمال هذا الباراميتر لتعيين كلمة المرور للمستخدم و لكن سيكون عليك تشفيرها أولاً.

في حال أردت استعمال الباراميتر -p لتعيين كلمة المرور أثناء إنشاء المستخدم فإنه سيكون عليك تشفيرها و هذا الأمر يمكنك فعله بواسطة الأداة openssl من خلال تمرير كلمة المرور لها على هذا النحو -p $(openssl passwd -1 'yourpassword') إذا كانت مثبتة على جهازك. هذه الأداة موجودة بشكل افتراضي في توزيعة Fedora و لهذا فإنه يمكنك استخدامها بشكل مباشر.


معلومات المستخدم الإفتراضية

في حال تم إنشاء المستخدم بدون استخدام الباراميترات السابقة فإنه سيتم إعطاؤه معلومات تلقائية على النحو التالي:

  • رقم المعرّف الخاص بالمستخدم سيكون 1000 أو أي رقام متاح بعده.
  • رقم المعرّف للمجموعة التي ينتمي إليها المستخدم سيكون رقم المعرّف الخاص بالمستخدم نفسه.
  • مسار مجلده الإفتراضي سيكون بداخل المجلد /home و بإسم المستخدم نفسه إن كان متاحاً.
  • مسار لغة البرمجة الإفتراضية سيكون /bin/bash و قد يختلف هذا المسار من توزيعة لأخرى.

إنشاء مستخدم جديد

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

Linux Terminal

root@fedora:~$ useradd user1

حتى اللحظة لا يمكنك تسجيل الدخول بواسطة هذا الحساب الجديد لأنك لم تقم بتعيين كلمة مرور له بعد، و في حال حاولت ذلك فإنه سيظهر لك عبارة Login incorrect التي تعني أنّ عملية تسجيل الدخول فشلت.

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

يمكنك استخدام الأمر passwd لتحديث كلمة المرور الحالية لحسابك أو لتعيين كلمة مرور جديدة لمستخدم آخر.

  • إذا كتبت passwd فقط، فإنه سيفهم أنك تريد تغيير كلمة المرور لحسابك أنت.
  • إذا كتبت passwd و يليها إسم مستخدم آخر، فإنه سيفهم أنك تريد تغيير كلمة المرور لحساب ذاك المستخدم.
  • إذا كتبت passwd -e و يليها إسم مستخدم آخر، فإنه سيفهم أنك تريد جعله يدخل كلمة مرور جديدة لحسابه في المرة القادمة التي يحاول فيها الدخول إليه.

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


تحديث كلمة المرور الخاصة بك

قم بتنفيذ الأمر التالي لإعلام النظام بأنك تريد تعيين كلمة مرور جديد لحسابك، و من بعدها سيطلب منك إدخال كلمة المرور الحالية و من ثم إدخال كلمة المرور الجديدة مرتين.

Linux Terminal

root@fedora:~$ passwd
Current password:
New password:
Retype new password:
passwd: password updated successfully

تحديث كلمة مرور مستخدم آخر

قم بتنفيذ الأمر التالي لإعلام النظام بأنك تريد تعيين كلمة مرور للمستخدم user1 و من بعدها سيطلب منك أن تدخلها مرتين.

Linux Terminal

root@fedora:~$ passwd user1
New password:
Retype new password:
passwd: password updated successfully

الآن أصبح يمكنك تسجيل الدخول للنظام كمدير له بواسطة المستخدم root أو كمستخدم عادي فيه بواسطة المستخدم user1.

طباعة معلومات المستخدم في لينكس

يمكنك استخدام الأمر id و يليه إسم المستخدم لطباعة المعلومات الخاصة به.


في المثال التالي قمنا بطباعة معلومات المستخدم root الموجود في الأصل في النظام.

Linux Terminal

root@fedora:~$ id root
uid=0(root) gid=0(root) groups=0(root)
  • رقم المعرف الخاص بالمستخدم root هو 0.
  • رقم المعرف الخاص بالمجموعة الرئيسية التي ينتمي إليها المستخدم root هو 0.
  • المستخدم root لا ينتمي لمجموعات أخرى حيث يظهر رقم المجموعة الخاصة به و التي رقمها 0 فقط.

في المثال التالي قمنا بطباعة معلومات المستخدم user1 الذي قمنا بإنشائه قبل قليل.

Linux Terminal

root@fedora:~$ id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)
  • رقم المعرف الخاص بالمستخدم user1 هو 1000 لأنه أول مستخدم عادي قمنا بإضافته في النظام.
  • رقم المعرف الخاص بالمجموعة التي ينتمي إليها المستخدم user1 هو 1000 لأنه إفتراضياً يتم إنشاء مجموعة خاصة لوضع المستخدم فيها.
  • المستخدم user1 لا ينتمي لمجموعات أخرى حيث يظهر رقم المجموعة الخاصة به و التي رقمها 1000 فقط.

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

يمكنك استخدام الأمر usermod على النحو التالي لتعديل المعلومات الخاصة بالمستخدم.

usermod [options] username
  • [options] - يقصد بها الباراميترات الإختيارية التي يمكنك تمريرها للأمر و التي تحدد من خلالها ما تريد تحديثه.
  • username - مكانها يجب كتابة إسم المستخدم المراد تحديث معلوماته.

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

Linux Terminal

root@fedora:~$ usermod -aG root user1

الباراميتر -a أضفناه للأمر usermod للإشارة إلى أننا نريد إضافة المجموعة root مع المجموعة الأخرى التي يتبع لها المستخدم user1.


إذا قمت بطباعة معلومات المستخدم user1 فإنه سيظهر لك أصبح فرداً من مجموعة المدراء كما يلي.

Linux Terminal

root@fedora:~$ id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1),0(root)

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

لحذف مستخدم موجود في لينكس يمكنك استخدام الأمر userdel على النحو التالي.

userdel [options] username
  • [options] - يقصد بها الباراميترات الإختيارية التي يمكنك تمريرها للأمر.
  • username - مكانها يجب كتابة إسم المستخدم المراد إنشاؤه.

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


في المثال التالي قمنا بحذف المستخدم user1 مع حذف المجلد /home/user1 الخاص به.

Linux Terminal

root@fedora:~$ userdel -r user1

تنفيذ الأمر بصلاحيات المدير في لينكس

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

إذا قمت بتسجيل الدخول في نظام لينكس بواسطة مستخدم عادي فإنه لا يسمح لك بتنفيذ أي أمر قد يشكل خطر على النظام و سيظهر لك عبارة Permission denied و التي تعني أنك لا تملك الصلاحيات الازمة لفعل ذلك.

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


الحصول على صلاحيات المدير

في حال أراد المستخدم العادي أن ينفّذ أي أمر يتطلب صلاحيات المدير فإنه يستطيع إضافة الكلمة sudo في بداية الأمر و عندها قبل أن يتم تنفيذ الأمر سيُطلب من المستخدم إدخال كلمة المرور الخاصة بمدير النظام و في حال كانت الكلمة التي أدخلها صحيحة فإنه سيتم تنفيذ الأمر.

أين يتم حفظ معلومات المستخدمين في لينكس

معلومات المستخدمين و المجموعات في لينكس يتم تخزينها في الملفات التي سنذكرها تباعاً.

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

يمكنك تعديل محتوى هذه الملفات بشكل يدوي و لكن كن حذر جداً إذا كنت ستفعل ذلك لأن أي خطأ تقوم به قد يؤدي لتعطيل النظام.


1- الملف /etc/passwd

يوضع فيه معلومات المستخدمين الأساسية، و يمكنك الإطلاع على محتواه كما يلي.

Linux Terminal

root@fedora:~$ cat /etc/passwd
root:x:0:0:Super User:/root:/bin/bash

الحرف x الموضوع بعد إسم المستخدم معناه أن المستخدم يملك كلمة مرور.


2- الملف /etc/shadow

يوضع فيه كلمات مرور المستخدمين المشفرة و خصائصها، و يمكنك الإطلاع على محتواه كما يلي.

Linux Terminal

root@fedora:~$ cat /etc/shadow
root:$yj9T$ckDAwrl3Zti8PASnztq$V0kDA$SEpG94n6k.htqarr6CI9tADcXfDSEIIQilqX2jCxwO2::0:99999:7:::

3- الملف /etc/group

يوضع فيه معلومات المجموعات الأساسية، و يمكنك الإطلاع على محتواه كما يلي.

Linux Terminal

root@fedora:~$ cat /etc/group
root:x:0:

4- الملف /etc/gshadow

يوضع فيه المعلومات الإضافية المتعلقة بشأن الحماية للمجموعات، و يمكنك الإطلاع على محتواه كما يلي.

Linux Terminal

root@fedora:~$ cat /etc/gshadow
root:::