كيفية إضافة وتعديل وإزالة المستخدم في Linux؟
نشرت: 2022-01-11تعد إدارة المستخدم في أي نظام تشغيل إحدى المهام الروتينية الأساسية لمسؤول النظام.
بالنسبة لنظام التشغيل المستند إلى Linux ، عادةً ما يتضمن ذلك إنشاء حسابات مستخدمين ، وتعديل الحسابات الحالية مثل تغيير دليلهم الرئيسي ، و shell الافتراضي ، وقفل / فتح حساب واحد أو أكثر ، وإزالة حسابات المستخدمين.
قبل أن نتحرى عن الأوامر والعمليات لتنفيذ هذه المهام ، دعنا نتعمق بإيجاز في كيفية تصنيف حسابات المستخدمين في Linux. لاحظ أيضًا أنه ما لم يتم تحديد ذلك صراحة ، ستعمل الأوامر المعينة في معظم توزيعات Linux الشائعة.
أنواع المستخدمين
مستخدم الجذر
المستخدم root
هو المسؤول عن نظام التشغيل مع جميع الأذونات لأداء العمليات. عادة ، يمكن فقط root
تثبيت / إلغاء تثبيت أو تحديث برامج النظام الأساسية والمكتبات. إنه حساب المستخدم الوحيد الذي يتمتع بامتيازات على مستوى النظام.
لذا ، فإن المستخدم الجذر هو أقوى مستخدم للنظام.
مستخدم خاص
هؤلاء هم المستخدمون بدون تسجيل دخول. ليس لديهم كل امتيازات المستخدم root
. اعتمادًا على الحساب ، فإنهم يضطلعون بأدوار متخصصة مختلفة.
يتم إنشاؤها تلقائيًا في وقت تثبيت أي تطبيق. bin
، sync
، lp
، mail
، operator
، squid
هي بعض أمثلة المستخدمين المميزين.
المستخدمون الشائعون
يمتلك المستخدمون العاديون الامتيازات الكاملة فقط في دليل العمل الخاص بهم ، وعادةً ما يكون دليلهم الرئيسي. ليس لديهم امتيازات لإدارة النظام أو تثبيت البرنامج. لا يمكنهم أداء هذه المهام دون الحصول على امتيازات خاصة عبر sudo
.
إضافة المستخدم
دبيان / أوبونتو
في نظام يعتمد على Debian أو Ubuntu ، هناك خياران لإضافة مستخدمين من CLI. الأمر الأول هو adduser
، وهو برنامج نصي لـ Perl ويستخدم الأمر useradd
في الواجهة الخلفية والذي سنرى استخدامه لاحقًا.
نظرًا لأن إضافة مستخدم هي مهمة ذات امتياز ، فستحتاج إلى استخدام sudo
كبادئة username
كوسيطة. يمكن تحديد تفاصيل أخرى على النحو المطلوب. باستثناء اسم المستخدم وكلمة المرور ، فإن باقي التفاصيل اختيارية. يمكننا التحقق من أن المستخدم قد تم إنشاؤه باستخدام الأمر id
.
$ sudo adduser johndoe Adding user `johndoe' ... Adding new group `johndoe' (1003) ... Adding new user `johndoe' (1003) with group `johndoe' ... Creating home directory `/home/johndoe' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for johndoe Enter the new value, or press ENTER for the default Full Name []: John Doe Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y $ $ id johndoe uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe) $
CentOS / RHEL / Fedora (بما في ذلك Debian / Ubuntu)
الأمر التالي ، useradd
سيعمل عبر توزيعات نظام التشغيل المستندة إلى RHEL وكذلك يعمل بشكل جيد على مضيفي Ubuntu / Debian. أبسط بناء جملة (بدون أي خيارات إضافية) لإنشاء مستخدم جديد هو:
$ sudo useradd <username>
مثال:
$ sudo useradd janedoe
يدعم الأمر useradd
العديد من الخيارات التي يمكن تحديدها أثناء إنشاء المستخدم ، والأكثر شيوعًا هو معرف المستخدم (UID) ، ومعرف المجموعة (GID) ، والصدفة الافتراضية والدليل الرئيسي ، وما إلى ذلك ، فيما يلي أحد الأمثلة:
$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe
يمكنك التحقق من المستخدم الذي تم إنشاؤه حديثًا باستخدام الأمر id
:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $
تعديل المستخدم
غالبًا ما يحتاج المرء إلى تعديل بعض خصائص المستخدمين الحاليين بناءً على متطلبات المؤسسة أو طلبات المستخدم أو عمليات ترحيل النظام. يسهل تعديل معظم هذه الخصائص على الرغم من أننا نحتاج إلى التأكد من كيفية تأثيرها على بيئة المستخدم والوصول إلى الملفات التي يمتلكها المستخدم أو يصل إليها.
الافتراضي شل
الغلاف الافتراضي هو غلاف CLI الذي تم إنشاؤه عندما يبدأ المستخدم جلسة CLI جديدة إما محليًا أو عبر SSH. تحتوي معظم الأنظمة الحديثة على مستخدم افتراضي Bash
على الرغم من أنه يمكن أن يختلف بناءً على توزيع Linux أو بيئة المستخدم. لتعديل الغلاف الافتراضي للمستخدم ، استخدم:
$ sudo usermod -s <shell> <username>
مثال:
$ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/sh $ sudo usermod -s /bin/bash janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $
كما ترى في الإخراج أعلاه ، تم تغيير الغلاف من /bin/sh
إلى /bin/bash
للمستخدم janedoe
.
الدليل الرئيسي
مثل الصدفة الافتراضية ، يمكن تعديل الدليل الرئيسي للمستخدم إلى موقع مختلف باستخدام:
$ sudo usermod -d <new_directory_path> <username>
في المثال أدناه ، تم تغيير الدليل الرئيسي للمستخدم الخاص بالمستخدم janedoe
إلى /data/janedoe
:
$ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $ sudo usermod -d /data/janedoe janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $
قبل إجراء التبديل ، تأكد من أن الدليل الجديد لديه الملكية والأذونات الصحيحة. خلاف ذلك ، قد يواجه المستخدم مشاكل أثناء تسجيل الدخول أو العمل في الدليل الرئيسي الجديد.
معرف المستخدم
يمكنك تغيير معرف المستخدم للمستخدم الحالي باستخدام:
$ sudo usermod -u <new_uid> <username>
مثال:

$ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -u 1010 janedoe $ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $
مرة أخرى ، يؤدي تغيير UID إلى تغيير كيفية تعيين نظام ملفات Linux للملكية والإذن لملف أو دليل. تأكد من أن الدليل الرئيسي للمستخدم ومحتوياته وجميع الملفات الأخرى في أي مكان في النظام ، المملوكة أصلاً للمستخدم (مع UID القديم) ، قد تم تغييرها إلى UID المعين. قد يؤدي عدم القيام بذلك إلى حدوث مشكلات في جلسة CLI ووصول المستخدم إلى الملفات.
المجموعة الافتراضية
عادةً ما تكون المجموعة الافتراضية هي معرف المجموعة الافتراضي للمستخدم ، والذي يتم إنشاؤه أثناء إنشاء المستخدم ما لم يتم تحديد GID آخر. يسمح لك Linux بتعديل المجموعة الافتراضية للمستخدم باستخدام الأمر usermod
أيضًا. إليك الصيغة التي يجب استخدامها:
$ sudo usermod -g <new_gid or group_name> <username>
هذا مثال واحد:
$ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $ sudo usermod -g 1001 janedoe $ getent passwd janedoe janedoe:x:1010:1001::/data/janedoe:/bin/bash $
مرة أخرى ، تأكد من تعيين معرف المجموعة الجديد في الدليل الرئيسي للمستخدم ، والمحتويات ، وجميع الملفات أو الأدلة الأخرى القابلة للتطبيق لترحيل أذونات الملكية الخاصة بهم بشكل صحيح.
إضافة / حذف المجموعات
إلى جانب المجموعة الافتراضية ، يمكن أن يكون المستخدم في Linux جزءًا من مجموعات ثانوية. يمكننا دائمًا إضافة أو إزالة مجموعات إضافية ينتمي إليها المستخدم باستخدام الأمر usermod
.
$ sudo usermod -a -G <group_id or group_name> <username>
مثال:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -a -G docker janedoe $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $
وبالمثل ، لإزالة مستخدم من إحدى المجموعات الثانوية ، استخدم الأمر gpasswd
كما هو موضح أدناه:
$ sudo gpasswd -d <username> <groupname>
مثال:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $ sudo gpasswd -d janedoe docker Removing user janedoe from group docker $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $
تعليق GECOS
يحتوي حقل GECOS الموجود في /etc/passwd
على معلومات المستخدم أو التعليق. يمكننا تعديل هذه المعلومات لمستخدم موجود على النحو التالي:
$ sudo usermod -c <comment> <username>
مثال:
$ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -c "Jane Doe - System Admin" janedoe $ getent passwd janedoe janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash $
يرجى ملاحظة أنه إذا كان تعليقك أو تفاصيل المستخدم الخاصة بك تحتوي على مسافات ، فقم بإحاطة هذا الحقل بعلامات اقتباس كما حدث في المثال أعلاه.
اسم الدخول
يمكن أيضًا تغيير اسم تسجيل الدخول الخاص بالمستخدم باستخدام الأمر usermod
باستخدام علامة -l
:
$ sudo usermod -l <new_username> <old_username>
مثال:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -l jane_doe janedoe $ id jane_doe uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe) $
تذكر تحديث مراجع المستخدم حسب الاسم الجديد أينما استخدمت. حتى في أوامر مثل id
، يجب تحديد اسم المستخدم الجديد.
إزالة المستخدم
يمكن إزالة المستخدم من Linux باستخدام أمر userdel
.
$ sudo userdel <username>
مثال:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo userdel janedoe $ id janedoe id: 'janedoe': no such user $
لإزالة مستخدم مع الدليل الرئيسي ومخزن البريد ، قم بإضافة علامة -r
أيضًا.
$ sudo userdel -r <username>
على وجه التحديد للأنظمة المستندة إلى Ubuntu ، يمكنك أيضًا استخدام أمر deluser
لإزالة مستخدم:
$ sudo deluser <username>
وبالمثل ، لإزالة الدليل الرئيسي ومخزن البريد أيضًا ، استخدم:
$ sudo deluser --remove-home <username>
للحصول على معلومات مفصلة وخيارات أخرى مدعومة ، ارجع إلى الصفحة الرئيسية للأوامر المختلفة باستخدام:
$ man adduser $ man useradd $ man usermod $ man deluser $ man userdel
استنتاج
توضح هذه المقالة الجوانب المختلفة لإدارة المستخدم في نظام Linux. يتضمن ذلك شرحًا لمختلف فئات المستخدمين وكيفية إضافتها وإزالتها. كما يغطي الخيارات المختلفة التي تساعد على تعديل معلمات المستخدم الحالي. على الرغم من أنه لا يغطي جميع الاحتمالات التي تدعمها الأوامر المختلفة ، إلا أنه يغطي الكثير من المهام الإدارية الشائعة التي سيواجهها مسؤول النظام في العمل اليومي.
قد تكون مهتمًا أيضًا بقراءة: كيفية إزالة الملفات والدلائل في Linux؟