לדלג לתוכן

ניהול משתמשים וקבוצות בלינוקס לעומק

כל מערכת לינוקס, מהשרת הכי גדול ועד מחשב אישי קטן, מבוססת על מודל משתמשים וקבוצות שקובע מי מורשה לעשות מה. זה לא רק עניין של "מי מחובר" - זה הבסיס לכל מודל ההרשאות של המערכת כולה. הבנה טובה שלו היא חלק בסיסי מהעבודה כמנהל מערכת.

איפה המידע על משתמשים בכלל נשמר

כל משתמש במערכת מתועד בקובץ passwd/etc/-. למרות השם, הקובץ הזה לא מכיל סיסמאות בפועל - הוא מכיל את שם המשתמש, מזהה משתמש ייחודי שנקרא UID, מזהה הקבוצה הראשית שלו, תיקיית הבית שלו, וה-shell שמופעל כשהוא מתחבר. הסיסמאות המוצפנות עצמן נשמרות בקובץ נפרד, shadow/etc/-, שנגיש רק למשתמש root, בדיוק כדי למנוע ממשתמשים רגילים לגשת לגיבוב הסיסמאות של כולם.

מזהה המשתמש 0- שמור תמיד ל-root, המשתמש העל-שלטוני שיכול לעשות הכל במערכת. משתמשי מערכת פנימיים, שרצים בשירותים שונים, מקבלים בדרך כלל מזהים נמוכים, ומשתמשים רגילים מקבלים מזהים גבוהים יותר, לרוב החל מ-1000.

הפקודות הבסיסיות ליצירה וניהול

יצירת משתמש חדש נעשית עם useradd-:

sudo useradd -m -s /bin/bash amit

הדגל m- אומר ליצור גם תיקיית בית, וה-s- קובע איזה shell יופעל למשתמש. אחרי היצירה, קובעים סיסמה עם passwd-:

sudo passwd amit

לשינוי משתמש קיים, למשל הוספה לקבוצה נוספת, משתמשים ב-usermod-:

sudo usermod -aG sudo amit

הדגל G- מציין שרוצים להוסיף קבוצה, וה-a- קריטי - הוא אומר "הוסף לקבוצה הזו בנוסף לקבוצות הקיימות", ובלעדיו usermod- היה מחליף את כל רשימת הקבוצות של המשתמש בקבוצה החדשה בלבד, ומוחק אותו בטעות משאר הקבוצות.

קבוצות - איך משתפים הרשאות בין כמה משתמשים

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

groups amit

הפקודה הזו מציגה את כל הקבוצות שהמשתמש amit חבר בהן. אם רוצים למחוק משתמש שכבר לא צריך גישה, הפקודה userdel- עושה זאת, ועם הדגל r- היא גם מוחקת את תיקיית הבית שלו ואת כל הקבצים ששייכים לו, ניקוי חשוב שקל לשכוח כשמסירים משתמשים ישנים ממערכת.

למה sudo עדיף על התחברות כ-root

אפשר להתחבר ישירות כ-root ולעשות הכל, אבל זו לא שיטת עבודה מומלצת. הבעיה עם שימוש קבוע ב-root היא שכל פקודה, כולל טעויות, רצה מיד עם הרשאות מלאות ובלי שום רשת ביטחון. sudo מציע גישה בטוחה יותר - משתמש רגיל, שנמצא בקבוצת sudo, יכול להריץ פקודות ספציפיות בהרשאות root, אבל רק כשהוא מבקש זאת במפורש, ולרוב תוך אימות מחדש עם הסיסמה שלו. זה גם משאיר תיעוד ברור בלוגים על מי הריץ מה ומתי, מה שקשה הרבה יותר להשיג כשכולם פשוט מחוברים כroot.

לסיכום

ניהול משתמשים וקבוצות הוא הבסיס שעליו נשען כל מודל האבטחה של לינוקס. הבנה של קובץ passwd, ההבדל בין קבוצה ראשית למשנית, והשימוש הנכון ב-sudo במקום התחברות ישירה כroot, הם הכלים הבסיסיים שכל מי שמנהל מערכת לינוקס, בין אם שרת אמיתי או מחשב אישי, צריך לשלוט בהם.

רוצים להעמיק עוד בהרשאות ובניהול משתמשים בלינוקס? יש לנו קורס לינוקס בסיסי מלא בחינם שבונה את הידע הזה שלב אחרי שלב.

יש לכם שאלה על ניהול משתמשים או הרשאות בלינוקס? בואו לדבר בדיסקורד.

הצטרפו לקהילה בדיסקורד