אם ניהלת Windows למשך זמן מה, ייתכן ויש לך נסיון בניהול חשבונות משתמש, במערכת קבצים NTFS ובהגדרת הרשאות. אם כן, הכינו את עצמכם לעולם שונה כשמדובר בהרשאות קבצים ב-Linux! ב-Linux, מערכת הקבצים היא יצור שונה שעליך ללמוד כדי להיות מנהל Linux מיומן.
זהו חלק II מתוך סדרת הארבעה חלקים שלנו המתמקדת בלמידת Linux מנקודת מבט של מנהל Windows! ודא שקראת חלק I אם עדיין לא עשית זאת.
עבודה עם מערכת הקבצים
בוא נתחיל ראשית בלמד איך Linux אחסנה ומנהלת קבצים דרך מערכת הקבצים.
הערה: כל הדוגמאות יהיו באמצעות OpenSUSE Linux.
אין עוד אותות כוננים
בניגוד ל-Windows, יחידות ניידות וכוננים אחרים לא מקבלים באופן אוטומטי אות אונך ולא נפתחים באופן אוטומטי באמצעות הפעלה מחדש. ב-Windows, כל כונן מתקבל כאות אונך: C:\, D:\, וכו'. איך אותות הכונן עובדים ב-Linux? אין אותם!
ב-Linux, יש תיקייה הנקראת root. התיקייה הזו ממוקמת בשורש המערכת הקובץ או פשוט /
. הקו הנטוי לפני כל קובץ אחר במערכת מגיע מהקו הנטוי הזה. הקו הנטוי הזה הוא כמו הבסיס C:\, אך רק אם האותות האחרים רק קיימים כתת-תיקייה של C:\.
התיקייה הבסיסית היא המקום בו ממוקמים קבצי המערכת היסודיים. כל השאר, כולל התקנים נוספים, הם תת-תיקיות של תיקייה זו.
לינוקס מערבב את הקווים בין תיקיות ומערכות קבצים. התיקייה של לינוקס /home היא שורש כל פרופילי המשתמשים, דומה לתיקיית C:\Users בווינדוס. במקרה זה, /home היא תיקייה. אך "תיקיות" בלינוקס לא חייבות בעצם להיות תיקיות. הן יכולות גם להיות מחיצות אחסון או אפילו דיסק קשיח נפרד לחלוטין. המושג הזה דומה ל-נקודות עגינה של חלונות.
ניתן ללמוד עוד על תיקיות שורש ב-מאמר זה.
משתמשים ותיקיות בית
אם אתה משתמש ב-OpenSUSE, ייתכן שתראה תיקיית Home בשולחן העבודה שלך כפי שמוצג למטה. התיקייה הזו היא גרסת הלינוקס של תיקיית C:\users\<username> או "פרופיל". תיקיית ה"משתמשים" בלינוקס נמצאת תחת /home בדיסק ההתקנה שלך כברירת מחדל.
בדוגמה שלמטה, שם המשתמש הוא homelab עם "פרופיל" הממוקם ב-/home/homelab.

בלינוקס (ובווינדוס), התיקיית בית (או פרופיל המשתמש בווינדוס) יש רמז מקוצר של סימן גלגלית (~). אם אתה רואה משהו כמו
"~/Documents/blah.txt
, זה מתייחס בעצם לקובץ שלך ב-/home/<username>/Documents/blah.txt
.
האפסות חשובה בלינוקס
הכול ב-Linux תלוי בריגוליות רישום. הקונספט הזה הוא ההפך המוחלט של Windows שבו כמעט כלום אינו תלוי ברישום.
לדוגמה, אם יש לך ספרייה בשם /home/homelab, ניתן ליצור ספרייה שונה לחלוטין בשם /home/Homelab. הקונספט גם מתרחש בפקודות. הרצת cd /home/homelab
היא שונה מהרצת CD /home/homelab
(שצריך להכשל).
כאדם שמשתמש ב-Windows, הקונספט הזה יכול להטריד אותך בכל שלב. השקף היטב על קפיטליזציה! ניתן לראות דוגמה של שני תיקיות נפרדות למטה. ההבחנה היחידה ביניהן היא קפיטליזציה: בסביבת Windows, זה אינו אפשרי.

חשבונות משתמש
כמו ב-Windows, יש ל-Linux גם את הקונספט של חשבונות משתמש אך הם מתנהגים קצת אחרת. התחל על ידי חשיבת חשבונות המשתמש של Linux במונחים של חשבונות המשתמש המוכרים שלך ב-Windows.
ב-Windows ישנם חשבונות משתמש מובנים כמו Administrator, חשבון המערכת המוסתר, Guest, וכו'. בנוסף, ב-Windows יש קבוצות אבטחה מובנות שונות כמו Administrators, Guests, וכו'.
ניתן להציג את כל המשתמשים והקבוצות ב-Windows דרך MMC של Local Users and Groups על ידי הרצת ה-MMC snapin שלlusrmgr.msc.

SIDs ב-Windows
כדי לזהות משתמשים וקבוצות באופן ייחודי, Windows מתייחסת למשתמשים ולקבוצות דרך משהו שנקרא SID. ב-Windows, ניתן למצוא את SID של כל משתמש וקבוצה על ידי הרצת כמה פקודות PowerShell הבאות.

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

מזהה משתמש ב-Linux
מצד השני, Linux עוסקת במשתמשים וקבוצות בדרך דומה, רק שפעם זו Linux אינה משתמשת ב-SIDs אלא במזההי משתמש (UIDs) ומזההי קבוצה (GIDs). בנוסף להבחנה מ-Windows, משתמשים וקבוצות הם ייחודיים למחשב אך לא ייחודיים לכל ה מחשבים. זה אומר שה-UID שלך במחשב A יכול להיות זהה ל-UID במחשב B, גם אם אין זההות במשתמש.
שני UIDs ו-GIDs עוקבים אחרי הסדר המספרי הפשוט; כל UID ו-GUID מתחילים ב-0 ומתרקמים בידי זינוק של יחידה מ-1 עד 999 לחשבונות מערכת פנימיים ומ-1000 ומעלה לחשבונות משתמש מותאמים אישית.
המשתמש המובנה בשורש תמיד יש לו UID של 0 ו-GID של 0. גם, כמו חשבון ה-SYSTEM המוסתר של Windows, חשבון זה של השורש נטרלי (תלוי בהפצת Linux) מהתחברות מלאה.
המשתמש המובנה בשורש דומה לחשבונות המובנים SYSTEM וAdministrator ב-Windows, כמו משמש בכל אחד מהם. גם אם אתה עובד כמנהל ב- Windows, ישנם מספר מניעים מובנים למניעת השמדה מוחלטת של Windows.
המשתמש השורש, מצד שני, הוא סמכות מוחלטת. אם תיכנס במתכוון למשתמש השורש (ניתן לעשות זאת בקו פקודה באמצעות הפקודה
sudo su
) ותנסה למחוק את כל מערכת ההפעלה שלך, השורש יעשה זאת בשמחה עד שהמערכת תמות.
נניח שיש לך משתמש שנקרא homelab. זיהוי המשתמש homelab יכול להתייחס או למספר 1000 או ל־homelab. המשתמש יתמודד אוטומטית עם קבוצה פנימית בשם users שאתה יכול להתייחס אליה עם מספר זיהוי 100. תוכל למצוא רשימת ההתאמות האלו על ידי הרצת הפקודה getent passwd
כפי שמוצג למטה:

getent passwd
inside the terminalתוכל גם למצוא את אותו מידע עבור קבוצות באמצעות הפקודה getent group
.

getent group
inside the terminalהרשאות קבצים ב-Linux
בעולם של Windows, הרשאות מערכת הקבצים אינן כיף. הגדרת וניהול הרשאות ב-NTFS לעיתים יכול להפוך לסיוט עם ACE, ACLs, הורשה, המקריאה, וכדומה. למרבה המזל, ב-Linux הרשאות הקבצים הן הרבה יותר פשוטות.
ב-Linux, יש לך שלושה סוגים של זכויות שאתה יכול להקצות לקובץ: קריאה, כתיבה והרצה, עם שלושה קטגוריות של גישה: בעלים, קבוצה, אחרים.
- בעלים הוא המשתמש שבבעלות הקובץ/תיקייה. לכל קובץ או תיקייה יש בעל זיהוי מיועד.
- קבוצה היא הקבוצה שבבעלות הקובץ/תיקייה. זה לא חייב להיות אותה קבוצה שבה נמצא הבעלים. כל קובץ או תיקייה יכולה להיות בבעלות קבוצה אחת בלבד.
- אחרים הם… וואלה… אנשים שאינם חלק מהקבוצה הבעלית או שאינם הבעלים המיועד.
אתה יכול להתיר או לדחות כל אפשרות עבור כל קטגוריה. כדוגמה: אתה יכול לתת כתיבה, קריאה וביצוע אפשרויות עבור בעלים, ואפשרויות קריאה/ביצוע עבור הקבוצה ואחרים. תוכל לראות זאת בתמונת המסך למטה. זה אומר שכל אדם מלבד המשתמש שהוא בעל התיקייה לא יכול לשנות אותה.
כמו חלונות, ב-Ubuntu אפשר לראות את המידע הזה על ידי ביצוע הפעולות הבאות:
- פתח את התיקיית הבית שלך על השולחן.
- נווט אל הקובץ/התיקייה הרלוונטית.
- לחץ עם העכבר ימינה על הקובץ/התיקייה ולחץ על מאפיינים.
- לחץ על כרטיסיית הרשאות.
- לחץ על הרשאות מתקדמות.
לאחר שתהיה בתיבת הרשאות מתקדמות, תוכל לראות בצורה גרפית את כל ההרשאות שהוקצו לקובץ או לתיקייה.

להלן מה שהטבלה של הרשאות מתקדמות מייצגת.

בעלות על הקובץ
כמו בחלונות, לכל קובץ ותיקייה יש בעלים. בחלונות, אתה יכול לקחת בעלות על קובץ ב-GUI או באמצעות הפקודה takeown. בלינוקס, אתה יכול לקחת בעלות על קובץ על ידי הפעלת הפקודה chown <משתמש>:<קבוצה> <קובץ/תיקייה>
בשורת הפקודה.
כמו בחלונות, בדרך כלל נדרשת הרשאת מנהל לשינוי בעלות של קבצים באמצעות sudo. sudo היא המתאם הלינוקסי ל-UAC של חלונות. במקום לפתוח חלון שורת פקודה מנהלת, עליך לתחיל את הפקודות שלך ב sudo כדי שירוץ כמנהל.
בואו ניצור תיקייה ששייכת רק למשתמש root כדי להדגים כמה מהמושגים הללו.
- פתחו את תיקיית הבית ונווטו אל Documents
- פתחו טרמינל פקודות על ידי לחיצה ימנית —> פעולות —> פתח טרמינל כאן, והריצו את הפקודות הבאות:

בתיקייה זו יש הרשאות קריאה/כתיבה/ביצוע רק לבעלים. מכיוון שיצרת את התיקייה עם הרשאות מנהל, הבעלים הוא כרגע root.
שינית גם את ההרשאות כך שרק הבעלים יכול לגשת. הקבוצה הבעלים ומשתמשים אחרים אינם יכולים לגשת לתיקייה הזו כלל. למעשה, תראו שיש סימן נעילה גדול על התיקייה, שמציין שאין לכם גישה.
מתחת אתם יכולים לראות איך לקחת בעלות על התיקייה הזו.
- פתחו טרמינל נוסף באותה התיקייה (או השתמשו באחד שכבר פתחתם)
- הריצו את הפקודה
sudo chown homelab:users ./owned-by-root

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

רק (בדרך כלל) רוצים לשנות את הבעלים, ולא את ההרשאות של הקבצים. לינוקס יש יכולת טובה לזיהות אילו הרשאות צריך להיות לכל קובץ כברירת מחדל. אפשר לגרום לבעיות רבות על ידי שימוש בפקודת 'chmod' ללא הבנה טובה של ההשלכות.
סימון נומרי להרשאות קובץ
אם ביצעתם כל איתור תקלות בלינוקס, ייתכן וראיתם אנשים מסבירים הם באינטרנט את ההרשאות של קבצים באמצעות סכמת מספרים. ניתן לראות זאת מודגשת בתמונה מתחת:

Linux משתמש בתיאור קצר למערכת זו באמצעות מספרים, כמו 0600. המספר הראשון הוא לתכונות מיוחדות שניתן להוסיף, אותן אנשים בדרך כלל מתעלמים מהן. למעשה, רוב האנשים משתמשים רק בשלוש ספרות לתיאור ומתעלמים מהספרה הרביעית הראשונה.
למידע נוסף אודות התיאור המספרי להרשאות קובץ, יש לבדוק מאמר זה.
סיכום
זהו הכל עבור חלק II של סדרת הפוסטים שלנו "איש חלונות בעולם של Linux"! יש לוודא שאתה ממשיך עם חלק III!
Source:
https://adamtheautomator.com/linux-file-permissions/