מבוא להרשאות Linux

הקדמה

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

המדריך יכסה איך לצפות ולהבין בעלות והרשאות בלינוקס. אם אתה מחפש מדריך על איך לשנות הרשאות, תוכל לקרוא יסודות הרשאות בלינוקס ואיך להשתמש ב־Umask ב־VPS.

דרישות מקדימות

ודא שאתה מבין את העקרונות שנלמדו במדריכים הקודמים בסדרה זו:

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

אודות משתמשים

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

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

ניתן להציג את כל המשתמשים במערכת על ידי הצגת תוכן קובץ /etc/passwd. כל שורה בקובץ זה מכילה מידע על משתמש יחיד, החל מה-שם משתמש שלו (השם לפני הנקודה ופסיק הראשון). ניתן להדפיס את תוכן קובץ passwd עם cat:

  1. cat /etc/passwd
Output
… sshd:x:109:65534::/run/sshd:/usr/sbin/nologin landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin pollinate:x:111:1::/var/cache/pollinate:/bin/false systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false vault:x:997:997::/home/vault:/bin/bash stunnel4:x:112:119::/var/run/stunnel4:/usr/sbin/nologin sammy:x:1001:1002::/home/sammy:/bin/sh

משתמש מתקדם

בנוסף לשני סוגי המשתמשים, קיים גם משתמש מתקדם, או משתמש root, שיש לו את היכולת לדרוס כל הגבלת בעלות והרשאות קובץ. בפועל, זה אומר כי למשתמש המתקדם יש זכויות לגשת לכל דבר על השרת שלו. משתמש זה משמש לביצוע שינויים בכל המערכת.

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

אודות קבוצות

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

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

עכשיו שאתה יודע מהו משתמשים וקבוצות, בואו נדבר על בעלות והרשאות קבצים!

צפייה בבעלות ובהרשאות

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

הדרך הנפוצה ביותר לצפות בהרשאות של קובץ היא להשתמש ב־ls עם אפשרות רשימה ארוכה -l, לדוגמה: ls -l myfile. אם ברצונך לצפות בהרשאות של כל הקבצים בתיקייה הנוכחית שלך, הרץ את הפקודה בלי ארגומנט ה־myfile, כך:

  1. ls -l

הערה: אם אתה בתיקיית הבית הריקה, ולא יצרת עדיין קבצים לצפייה, אתה יכול להמשיך על ידי לרשום את תוכן תיקיית ה־/etc באמצעות הפקודה הזו: ls -l /etc

כאן דוגמה לצילום מסך של פלט ls -l, עם תוויות של כל עמודה של הפלט:

כל קובץ מפרט את המצב שלו (שמכיל הרשאות), בעלים, קבוצה, ושם מפורט. כדי לעזור להסביר מה משמעות כל האותיות והמינוסים האלה, בואו נפרק את עמודת המצב לרכיביה.

מצב הבנה

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

סוג הקובץ

ב-Linux, ישנם שני סוגי קבצים: רגילים ו־מיוחדים. סוג הקובץ מצויין על ידי התו הראשון של מצב הקובץ — במדריך זה, יכול להיות מתייחסים אליו כלקח שדה "סוג הקובץ".

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

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

כיתות ההרשאות

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

שלושת כיתות ההרשאות פועלות כך:

  • משתמש: בעל הקובץ שייך לכיתה זו.
  • קבוצה: חברי הקבוצה של הקובץ שייכים לכיתה זו. ההרשאות של הקבוצה הן דרך שימושית להקצאת הרשאות על קובץ נתון למספר משתמשים.
  • אחרים: כל המשתמשים שאינם חלק מכיתת המשתמש או הקבוצה לקובץ זה שייכים לכיתה זו.

קריאת הרשאות סמליות

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

בכל טרייד, הרשאות קריאה, כתיבה וביצוע מיוצגות באופן הבא:

  • קריאה: מסומנת בתו r בתוך המיקום הראשון
  • כתיבה: מסומנת בתו w בתוך המיקום השני
  • בצע: מסומן על ידי x בתוך התפקיד השלישי. במקרים מיוחדים מסוימים, יתכן ויהיה תו שונה כאן

A hyphen (-) in the place of one of these characters indicates that the respective permission is not available for the respective class. For example, if the group (second) triad for a file is r--, the file is “read-only” to the group that is associated with the file.

הבנת קריאה, כתיבה, ביצוע

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

כאן נפרטת פירוט של הגישה של שלושת סוגי הרשאות למשתמש:

קריאה

עבור קובץ רגיל, הרשאת קריאה מאפשרת למשתמש לצפות בתוכן של הקובץ.

עבור תיקייה, הרשאת קריאה מאפשרת למשתמש לצפות בשמות הקבצים בתיקייה.

כתיבה

עבור קובץ רגיל, הרשאת כתיבה מאפשרת למשתמש לשנות ולמחוק את הקובץ.

לספרייה, הרשאת הכתיבה מאפשרת למשתמש למחוק את הספרייה, לשנות את התוכן שלה (ליצור, למחוק ולשנות שמות של קבצים בה), ולשנות את תוכן הקבצים שלהם בהם יש הרשאות כתיבה.

לבצע

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

לספרייה, הרשאת הביצוע מאפשרת למשתמש לגשת, או לשוטף (כלומר, להשתמש ב-cd) ולגשת לנתונים על קבצים בתוך הספרייה (המידע שמופיע ב־ls -l).

דוגמאות למצבים (והרשאות)

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

  • -rw-------: קובץ שנגיש רק על ידי בעליו
  • -rwxr-xr-x: קובץ שניתן להפעלה על ידי כל המשתמשים במערכת. קובץ "נגיש לכולם להפעלה"
  • -rw-rw-rw-: קובץ שנפתח לשינוי על ידי כל המשתמשים במערכת. קובץ "נגיש לכולם לכתיבה"
  • drwxr-xr-x: ספרייה שכל משתמש במערכת יכול לקרוא ולגשת אליה
  • drwxrwx---: ספרייה שניתן לשנות אותה (כולל התוכן שלה) על ידי בעליה והקבוצה
  • drwxr-x---: ספרייה שנגישה על ידי הקבוצה שלה

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

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

מסקנה

עכשיו אתם צריכים להבין איך הבעלות וההרשאות עובדות ב-Linux. כדי ללמוד כיצד לשנות את ההרשאות האלה באמצעות chown, chgrp, ו־chmod, ראו יסודות ההרשאות ב-Linux וכיצד להשתמש ב-Umask על VPS.

אם ברצונך ללמוד עוד על יסודות Linux, קרא את המדריך הבא בסדרה זו, מבוא להפניה של קלט/פלט ב-Linux.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions