كيفية إنشاء مستخدمين في لينكس [١٥ أمر useradd مثال]

نعلم جميعًا عن الأمرين الأكثر شهرة يسميان “useradd” أو “adduser”في Linux.هناك أوقاتيُطلب من مدير النظام Linux إنشاء حسابات مستخدم على Linux بخصائص معينة أوقيود أو تعليقات.

في Linux،يُعتبر الأمر “useradd” أداة منخفضة المستوى تُستخدملإضافة أو إنشاء حسابات مستخدمفي Linux وأنظمة Unix-like الأخرى.يشبه الأمر “adduser” الأمر “useradd”لأنه مجرد رابط نسبيله.

في بعض توزيعات Linux،قديكونللأمر “useradd” نسخة مختلفة قليلاً. أقترحقراءة وثائقكقبل استخدام تعليماتنالإنشاء حسابات مستخدم جديدة في Linux.

عندما نقوم بتشغيل الأمر “useradd”في الصفحة الرئيسية لنظام التشغيل Linux،يقوم بأداء المهام الرئيسية التالية:

  • يقوم بتحرير ملفات /etc/passwd، /etc/shadow، /etc/group، و /etc/gshadowللحسابات المستخدم الجديد المنشأة.
  • ينشئ ويعين المجلد المنزليللمستخدم الجديد.
  • يضع الأذونات والملكية للمجلد المنزلي.

سياق الأمر useradd

بناء جملة الأمر ‘useradd‘ الأساسية:

useradd [options] username

فيهذه المقالة، سنوضح أكثر15 أمر ‘useradd’ المستخدمة عادة مع أمثلة عملية في Linux.

1.كيفية إضافة مستخدم جديدفي Linux

لإضافة أو إنشاء مستخدم جديد،يجب استخدام الأمر ‘useradd’ أو ‘adduser’ متبوعًا باسم المستخدم ‘username‘. اسم المستخدمهو اسم الدخول الذييستخدمه المستخدمللدخول إلى النظام.

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

على سبيل المثال،لإضافة مستخدم جديد باسم ‘tecmint’ استخدم الأمر التالي:

useradd tecmint

عندما نضيف مستخدمًا جديدًافي Linux باستخدام الأمر ‘useradd’،يتم إنشاؤهفي حالة مقفلة.لفتحهذا الحساب المستخدم، نحتاج إلى تعيينكلمة مرورلهذا الحساب باستخدام الأمر ‘passwd’.

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Create a User in Linux

بمجرد إنشاء مستخدم جديد،يتم إضافة مدخله تلقائيًا إلى ملف ‘/etc/passwd‘.يُستخدمهذا الملفلتخزين معلومات المستخدم، ويجب أنيكون المدخل.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
View User Info in Linux

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

دعونا نرى ماهيهذه المجالات:

  • اسم المستخدم – اسم تسجيل الدخول المستخدمهو المستخدملتسجيل الدخول إلى النظام.يجب أنيكون بين1 و32 حرفًا.
  • كلمة المرور – كلمة المرور للمستخدم (أو الحرف ‘'x'‘) مخزنة في ملف ‘/etc/shadow‘ بتنسيق مشفر.
  • معرف المستخدم (UID) – يجب أن يمتلك كل مستخدم معرفًا للمستخدم (UID)، والذي يمثل رقم تعريف المستخدم. بشكل افتراضي، UID 0 محجوز للمستخدم الرئيسي، وتتراوح الأرقام التالية من 1 إلى 99 محجوزة للحسابات المعرفة مسبقًا. علاوة على ذلك، تتراوح الأرقام من 100 إلى 999 محجوزة للحسابات والمجموعات النظامية.
  • معرف المجموعة (GID) – معرف المجموعة الأساسي (GID)، والذي يمثل رقم تعريف المجموعة، مخزن في ملف ‘/etc/group‘.
  • معلومات المستخدم – هذا الحقل اختياري ويسمح لك بتحديد معلومات إضافية حول المستخدم، مثل اسمه الكامل. يمكن ملء هذه المعلومات باستخدام أمر الإبحار.
  • الدليل المسكن – الموقع المطلق لدليل المسكن للمستخدم.
  • الصنف – الموقع المطلق لصنف المستخدم أي /bin/bash.

2. كيفية إنشاء مستخدم بدليل مسكن مختلف

بشكل افتراضي، سيؤدي أمر ‘useradd‘ إلى إنشاء دليل مسكن للمستخدم تحت الدليل ‘/home‘ مع اسم المستخدم. على سبيل المثال، كما هو موضح أعلاه، يكون الدليل المسكن الافتراضي للمستخدم ‘tecmint‘ هو ‘/home/tecmint‘.

ومع ذلك، يمكن تغيير هذا السلوك عن طريق استخدام الخيار '-d' جنبًا إلى جنب مع موقع دليل المنزل الجديد (على سبيل المثال، ‘/data/projects‘). على سبيل المثال، ستنشئ الأمر التالي مستخدمًا بإسم ‘anusha‘ ويكون دليل منزله ‘/data/projects‘.

# useradd -d /data/projects anusha
# passwd anusha

يمكنك عرض دليل المستخدم و معلومات أخرى متعلقة بالمستخدم، مثل معرف المستخدم ومعرف المجموعة والشل والتعليقات باستخدام الأمر التالي cat.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash
Create a User with a Home Directory in Linux

3. كيفية إنشاء مستخدم بمعرف مستخدم محدد

في نظام Linux، يحتوي كل مستخدم على معرف مستخدم فريد (رقم تعريف فريد). بشكل افتراضي، عند إنشاء حساب مستخدم جديد في نظام Linux، يعين معرفات المستخدمين 500، 501، 502، وهكذا.

ومع ذلك، يمكننا إنشاء مستخدمين بمعرفات مستخدم مخصصة باستخدام الخيار '-u'. على سبيل المثال، سينشئ الأمر التالي مستخدمًا بإسم ‘navin‘ بمعرف مستخدم مخصص ‘1002‘.

useradd -u 1002 navin

الآن، دعنا نتحقق من أن المستخدم تم إنشاؤه بمعرف مستخدم محدد (1002) باستخدام الأمر التالي.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash
Create a User with the User ID in Linux

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

4. كيفية إنشاء مستخدم بمعرف مجموعة محدد

بالمثل، لكل مستخدم معرف مجموعة خاص بهم (GID) (معرف المجموعة). يمكننا إنشاء مستخدمين بمعرفات مجموعة محددة أيضًا باستخدام الخيار '-g'.

في هذا المثال، سنضيف مستخدمًا بالاسم “tarunika” بمعرف UID و GID محددان بشكل متزامن بمساعدة الخيارات '-u' و '-g'.

useradd -u 1005 -g tecmint tarunika

الآن، قم بالتحقق من معرف المستخدم ومعرف المجموعة المخصصين في ملف “/etc/passwd“.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

للتحقق من معرف مجموعة المستخدم، استخدم أمر id:

id -gn tarunika
Create a User with Group ID in Linux

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

يُستخدم الخيار '-G' لإضافة مستخدم إلى مجموعات إضافية. يتم فصل كل اسم مجموعة بفاصلة، دون وجود مسافات فاصلة.

في هذا المثال، نقوم بإضافة مستخدم بالاسم “tecmint” إلى مجموعات متعددة، مثل admins، webadmin، و developers.

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

بعد ذلك، تحقق من المجموعات المتعددة المخصصة للمستخدم باستخدام أمر id.

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
Add User to Group in Linux

6. كيفية إضافة مستخدم بدون دليل المنزل

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

لإنشاء مستخدمين بدون دلائل المنازل الخاصة بهم، يُستخدم الخيار ‘'-M'‘. على سبيل المثال، سيُنشئ الأمر التالي مستخدمًا بدون دليل منزلي.

useradd -M shilpi

الآن، دعنا نتحقق من أن المستخدم تم إنشاؤه بدون دليل منزلي باستخدام أمر ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Create User Without Home Directory in Linux

7. كيفية إنشاء مستخدم بتاريخ انتهاء صلاحية في نظام Linux

بشكل افتراضي، عندما نضيف مستخدمين باستخدام الأمر ‘useradd‘, فإن حساب المستخدم لا ينتهي أبدًا، مما يعني أن تاريخ انتهاء صلاحيتهم يتم تعيينه إلى 0 (مما يعني أنه لم ينتهي أبدًا).

ومع ذلك، يمكننا تعيين تاريخ انتهاء صلاحية باستخدام الخيار ‘'-e'‘, الذي يجب أن يكون بتنسيق YYYY-MM-DD. هذا مفيد لإنشاء حسابات مؤقتة لفترة زمنية محددة.

في هذا المثال، سنقوم بإنشاء مستخدم ‘aparna’ بتاريخ انتهاء صلاحية الحساب، والذي هو 27 أغسطس 2021، بتنسيق YYYY-MM-DD.

useradd -e 2021-08-27 aparna

ثم، تحقق من معلومات تقديم الحساب وانتهاء صلاحية كلمة المرور باستخدام الأمر ‘chage‘ للمستخدم ‘aparna’ بعد تعيين تاريخ انتهاء صلاحية الحساب.

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7
Create User With Account Expiry Date

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

المعامل ‘'-f' يُستخدم لتحديد عدد الأيام بعد انتهاء صلاحية كلمة المرور. القيمة 0 تجعل حساب المستخدم غير نشط بمجرد انتهاء صلاحية كلمة المرور. بشكل افتراضي، يتم تعيين قيمة انتهاء صلاحية كلمة المرور على -1، مما يعني أنها لا تنتهي أبدًا.

في هذا المثال، سنقوم بتعيين تاريخ انتهاء صلاحية كلمة مرور الحساب، وهو 45 يومًا، للمستخدم ‘mansi‘ باستخدام الخيارات ‘'-e'‘ و ‘'-f'‘.

useradd -e 2014-04-27 -f 45 mansi
Create User With Password Expiry Date

9. كيفية إضافة مستخدم بتعليقات في لينكس

الخيار ‘'-c'‘ يسمح لك بإضافة تعليقات مخصصة، مثل الاسم الكامل للمستخدم، رقم الهاتف، إلخ، إلى ملف ‘/etc/passwd‘. يمكن إضافة التعليق كسطر واحد دون أي مسافات.

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

useradd -c "Manis Khurana" mansi

يمكنك عرض التعليق الذي تم إدراجه في ملف ‘/etc/passwd‘ في قسم التعليقات باستخدام أمر الـ ‘tail‘.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh
Create User with Full Name

10. كيفية إنشاء قشرة تسجيل الدخول للمستخدم في لينكس

في بعض الأحيان، نقوم بإضافة مستخدمين ليس لديهم علاقة بقشرة تسجيل الدخول أو في بعض الأحيان يُطلب منا تعيين قشور مختلفة لمستخدمينا. يمكننا تعيين قشور تسجيل الدخول المختلفة لكل مستخدم باستخدام الخيار ‘-s‘.

هنا في هذا المثال، سنقوم بإضافة مستخدم ‘tecmint’ بدون صلاحية تسجيل الدخول أي ‘nologin’ كقيمة للصلاحية.

useradd -s /sbin/nologin tecmint

يمكنك التحقق من الصلاحية المعينة للمستخدم في ملف ‘/etc/passwd’.

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin
Create a User with a Login Shell

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

الأمر التالي سينشئ مستخدم ‘ravi’ مع مجلد رئيسي ‘/var/www/tecmint’، وصلاحية افتراضية تكون ‘/bin/bash’، ومعلومات إضافية عن المستخدم.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
Create a User with Home Directory and Login Shell

في الأمر أعلاه، تقوم الخيارات ‘-m’ و ‘-d’ بإنشاء مستخدم مع تحديد مجلد رئيسي، والخيار ‘-s’ يحدد صلاحية المستخدم الافتراضية إلى ‘/bin/bash’. الخيار ‘-c’ يضيف معلومات إضافية عن المستخدم والوسيطة ‘-U’ تنشئ/تضيف مجموعة بنفس اسم المستخدم.

12. كيفية إنشاء مستخدم بمجلد رئيسي محدد، صلاحية، تعليق، UID/GID

الأمر شبيه للغاية بالأمر السابق، ولكن هنا نحدد الصلاحية كـ ‘/bin/zsh’ ونعين ‘UID’ و ‘GID’ مخصصين لمستخدم ‘tarunika’. الخيار ‘-u’ يعرف ‘UID’ للمستخدم الجديد (أي 100)، والخيار ‘-g’ يعرف ‘GID’ (أي 1000).

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika
Create a User with UID and GID

13. كيفية إنشاء مستخدم بمجلد رئيسي، بدون صلاحية، تعليق، و ‘UID’

الأمر التالي يشبه إلى حد كبير الأمرين السابقين. الفرق الوحيد هو أننا هنا، قمنا بتعطيل الشل للمستخدم المسمى ‘avishek‘ بمعرّف مستخدم مخصص (أي 1019).

الخيار '-s' يحدد الشل الافتراضي إلى /bin/bash، ولكن في هذه الحالة، قمنا بتعيين الشل للتسجيل إلى ‘/usr/sbin/nologin‘. وهذا يعني أن المستخدم ‘avishek‘ لن يتمكن من تسجيل الدخول إلى النظام.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
Create a User with UID and Nologin

كيفية إنشاء مستخدم بمجلد محدد للمنزل، شل، هيكل، ومعرف المستخدم

الفرق الوحيد في هذا الأمر هو أننا استخدمنا الخيار '-k' لتعيين دليل الهيكل المخصص إلى /etc/custom.skell بدلاً من القيمة الافتراضية، /etc/skel. كما استخدمنا الخيار '-s' لتحديد شل مختلف، /bin/tcsh، للمستخدم ‘navin‘.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin
Create a User with Shell and UID

كيفية إنشاء مستخدم بدون مجلد منزل، شل، أو مجموعة، مع تعليق

الأمر التالي يختلف كثيرًا عن الأوامر الأخرى المشروحة أعلاه. هنا، استخدمنا الخيار '-M' لإنشاء مستخدم بدون مجلد منزل للمستخدم، واستخدم الخيار '-N' لتعليم النظام إلى إنشاء اسم مستخدم فقط (دون مجموعة). الخيار '-r' لإنشاء مستخدم نظام.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Create a User with NoLogin and Group

لمزيد من المعلومات والخيارات حول ‘useradd‘، قم بتشغيل الأمر ‘useradd‘ في الطرفية لرؤية الخيارات المتاحة

useradd

إذا كنت ترغب في تعديل سمات حساب المستخدم مثل تعديل اسم المستخدم، ومعرف المستخدم (UID)، ودليل الصفحة الرئيسية، والشل، وغير ذلك، استخدم أمر usermod.

Source:
https://www.tecmint.com/add-users-in-linux/