אנו כולנו מודעים לפקודות הנפוצות ביותר הנקראות '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.

ברגע שמשתמש חדש נוצר, כניסתו מוספת באופן אוטומטי לקובץ '/etc/passwd'. קובץ זה משמש לאחסון מידע המשתמש, והכניסה צריכה להיות.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

הכניסה לעיל מכילה סט של שבעה שדות מופרדים בפסיק, כל שדה עם משמעות משלו.
בואו נראה מה השדות האלה:
- שם משתמש – שם המשתמש שמשתמש בו כדי להתחבר למערכת. צריכים להיות בין 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

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

שים לב: ודא כי ערך זיהוי המשתמש חייב להיות ייחודי מכל משתמשים אחרים שכבר נוצרו במערכת.
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

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

6. כיצד להוסיף משתמש ללא ספריית בית
במצבים מסוימים, כאשר אנו לא רוצים להקצות ספריות בית למשתמש עקב סיבות אבטחה, ספריית הבית של המשתמש תהיה root כאשר הם נכנסים למערכת שנטענה רק. כאשר משתמש כזה משתמש בפקודת 'su', ספריית הכניסה שלהם תהיה ספריית הבית של המשתמש הקודם.
ליצור משתמשים ללא ספריית הבית שלהם, משתמשים באפשרות ''-M'
'. לדוגמה, הפקודה הבאה תיצור משתמש 'shilpi' בלי ספריית הבית.
useradd -M shilpi
עכשיו, בודקים אם המשתמש נוצר ללא ספריית הבית באמצעות פקודת ls.
ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

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

8. כיצד ליצור משתמש עם תאריך תפוגה של סיסמה
'-f'
ארגומנט משמש להגדרת מספר הימים לאחר שתם תוקף הסיסמה. ערך של 0 מנטרל את חשבון המשתמש כשהסיסמה תתבטל. כברירת מחדל, ערך התאום לתאריך התפוגה של הסיסמה מוגדר ל־-1
, מה שאומר שהיא לא תתבטל מעולם.
בדוגמה זו, נגדיר תאריך תפוגה לסיסמת חשבון, שהוא 45 ימים, עבור משתמש ‘mansi‘ באמצעות אפשרויות '-e'
ו־'-f'
.
useradd -e 2014-04-27 -f 45 mansi

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

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

11. איך ליצור משתמש עם בית מסוים, מסמך, והערה
הפקודה הבאה תיצור משתמש ' ravi ' עם ספרייה בית ' /var/www/tecmint ', מסמך ברירת מחדל של /bin/bash, ומידע נוסף על המשתמש.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

בפקודה שמעל, האופציות '-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

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

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

15. כיצד ליצור משתמש בלי סביבת עבודה, שולחן, או קבוצה, עם הערה
הפקודה הבאה שונה מאוד מהפקודות האחרות שנבארו לעיל. כאן, השתמשנו באפשרות '-M'
כדי ליצור משתמש ללא ספריית הבית של המשתמש, והאפשרות '-N'
משמשת להוראת המערכת ליצור רק שם משתמש (בלי קבוצה). האפשרות '-r'
מיועדת ליצירת משתמש מערכתי.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

למידע נוסף ואפשרויות נוספות בנוגע ל־'useradd', הריצו את הפקודה 'useradd' בטרמינל כדי לראות את האפשרויות הזמינות
useradd