איך ליצור משתמשים ב־ Linux [15 דוגמאות לפקודת useradd]

אנו כולנו מודעים לפקודות הנפוצות ביותר הנקראות 'useradd' או 'adduser' בלינוקס. יש פעמים בהן מפקד מערכת לינוקס נדרש ליצור חשבונות משתמש בלינוקס עם תכונות, מגבלות או הערות מסוימות.

בלינוקס, הפקודה 'useradd' היא כלי בסיסי המשמש להוספה או יצירה של חשבונות משתמש בלינוקס ובמערכות הפעלה דומות לאוניקס. הפקודה 'adduser' דומה מאוד לפקודה 'useradd', שכן היא רק קישור סימבולי אליה.

בכמה מהפצות של לינוקס, הפקודה 'useradd' עשויה להיות גרסה מעט שונה. אני ממליץ לקרוא את התיעוד שלך לפני שמשתמש בהוראות שלנו ליצירת חשבונות משתמש חדשים בלינוקס.

כשאנו מפעילים את הפקודה 'useradd' במסוף לינוקס, היא מבצעת את המשימות העיקריות הבאות:

  • היא מעדכנת את הקבצים /etc/passwd, /etc/shadow, /etc/group ו-/etc/gshadow עבור החשבונות המשתמש החדשים שנוצרו.
  • יוצרת וממלאת ספרייה ביתית עבור המשתמש החדש.
  • מגדירה רישיות ובעלות לספרייה הביתית.

פקודת useradd תחביר

התחביר הבסיסי של הפקודה 'useradd' הוא:

useradd [options] username

במאמר זה, נדגים את 15 הפקודות 'useradd' הנפוצות ביותר עם דוגמאות מעשיות בלינוקס.

1. איך להוסיף משתמש חדש בלינוקס

כדי להוסיף או ליצור משתמש חדש, עליך להשתמש בפקודה 'useradd' או 'adduser' ואחריה ה'שם משתמש''username'. ה'שם משתמש''username' הוא השם המשתמש שמשתמש משתמש להתחבר למערכת.

רק משתמש אחד יכול להוסף, והשם משתמש חייב להיות ייחודי, ולא קיים כבר במערכת.

לדוגמה, כדי להוסיף משתמש חדש בשם 'tecmint' השתמש בפקודה הבאה:

useradd tecmint

כשאנו מוסיפים משתמש חדש בלינוקס עם הפקודה '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 שמור למשתמש השורש, ו-UID בין 1 ל-99 שמורים לחשבונות פרואינטים אחרים. כמו כן, UID בין 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, כל משתמש יש לו את ה-UID האישי שלו (מספר זיהוי ייחודי). כברירת מחדל, כאשר אנו יוצרים חשבון משתמש חדש ב-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

כדי לאמת את זיהוי ה-GID של המשתמש, השתמש בפקודת 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''. לדוגמה, הפקודה הבאה תיצור משתמש 'shilpi' בלי ספריית הבית.

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. איך להוסיף משתמש עם הערות ב־Linux

אפשרות '-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. איך ליצור מעטפת כניסה למשתמש ב־Linux

לעיתים, אנו מוסיפים משתמשים שאין להם שום קשר למעטפת הכניסה או לעיתים נדרשים להקצות מעטפות שונות למשתמשים שלנו. נוכל להקצות מעטפות כניסה שונות לכל משתמש באמצעות האפשרות ‘-s‘.

כאן בדוגמה זו, נוסיף משתמש ' tecmint ' ללא מסמך כניסה כלומר ' /sbin/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' מגדירה את מספר הזהות של המשתמש החדש (כלומר, 100), והאופציה '-g' מגדירה את מספר הזהות של הקבוצה (כלומר, 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

14. כיצד ליצור משתמש עם סביבת עבודה, שולחן, סקלטון, ומזהה משתמש מסוימים

השינוי היחיד בפקודה זו הוא שהשתמשנו באפשרות '-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

15. כיצד ליצור משתמש בלי סביבת עבודה, שולחן, או קבוצה, עם הערה

הפקודה הבאה שונה מאוד מהפקודות האחרות שנבארו לעיל. כאן, השתמשנו באפשרות '-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/