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

לפורום המאמר

chmod

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

הריצו ls -l בשורת הפקודה מסויים ותקבלו פלט כזה:
שימו לב שיש שלוש קטגוריות - משתמש, קבוצה והרשאות ושלושה סוגי הרשאות - קריאה (r) כתיבה (w) והרצה (x)
chmod מקבלת שני פרמטרים, הראשון הוא סוג ההרשאה והשני הוא שם הקובץ שעליו תתבצע הפעולה. פרמטר ההרשאה יכול לבוא בצורת מחרוזת תווים או בצורת מספר.

שיטת המספרים

ערך מספרימחרוזתמשמעות
0---אין גישה
1x--הרצה
2-w-כתיבה
3-wxכתיבה+הרצה
4--rקריאה
5r-xקריאה+הרצה
6-rwקריאה+כתיבה
7rwxקריאה+כתיבה+הרצה
כמו שרואים לכל סוג הרשאה יש יצוג מספרי ובשביל לשלב כמה סוגי הרשאות פשוט מחברים
את המספרים לדוגמא, הרצה = 1 ,כתיבה = 2 ,הרצה+כתיבה = 3.
דוגמא נוספת, אם נריץ
chmod 750 file
7 - המשתמש יכול לקרוא, לכתוב ולהריץ את הקובץ.
5 - הקבוצה יכולה לקרוא ולהריץ את הקובץ.
0 - ולשאר המשתמשים אין שום גישה לקובץ.

משמעות ההרשאות אצל ספריות שונה מאשר אצל קבצים,
r - הדפסת רשימת הקבצים שבספריה
w - הוספת קבצים לספריה
x - גישה לקבצים שבספריה

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

שיטת ההתווים

אפשר גם לשנות הרשאות על ידי שימוש בתווים המציינים את סוג ההרשאה במקום מספרים.
תחביר: chmod [ugo] [+ - =] [rwx] FILE

u - משתמש (user)
g - קבוצה (group)
o - כל השאר (other)

chmod ugo+rwx file
ייתן גישה מלאה לקובץ (קריאה, כתיבה, הרצה) לכל המשתמשים
chmod o-rwx file
יבטל לכל המשתמשים שהם לא בקבוצה ולא בעל הקובץ את הגישה.
כאשר משתמשים בתווי הפלוס\מינוס מוסיפים ומורידים הרשאות להרשאות הקיימות, אבל כשמשתמשים
בתו = ההרשאות הקודמות מתבטלות ורק החדשות נשארות (ולא מתווספות להרשאות הקודמות)

chown

ניתן לשנות את בעליו של קובץ מסויים באמצעות הפקודה chown, לדוגמא:
chown aviran index.html
תשנה את בעליו של הקובץ index.html למשתמש aviran.
דוגמא יותר מורכבת:
chown -R aviran *.html
השימוש בפרמטר R אומר לchown לשנות באופן ריקורסיבי את כל הקבצים ותתי הספריות מהמיקום הנוכחי למשתמש aviran,
ומשמעות המחרוזת "html.*" היא שהפקודה תחול על כל הקבצים עם סיומת html.
רק בעל הקובץ אל המשתמש root יכולים לשנות בעלים של קובץ.

groupadd

יצירת קבוצת משתמשים חדשה.
groupadd students
הוספת קבוצת משתמשים חדשה בשם students, הID של הקבוצה נקבע באופן אוטומטי על ידי המערכת.
groupadd -gid 1000 developres
הוספת קבוצת משתמשים חדשה בשם developers, הID של הקבוצה יהיה 1000.
מקובל לשמור את הערכים מ0-99 לקבוצות בשימוש המערכת.

usermod

באמצעות הפקודה usermod מבצעים שינויים בהגדרות המשתמש, אחד הדברים שניתן להגדיר הוא הקבוצות אליהן שייך המשתמש.
usermod -G students,developers aviran
הוספת המתשמש aviran לקבוצות students, developers.

groupdel

groupdel developers
מחיקת הקבוצה students.

groups

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

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

mount

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

רכיבים וסוגיהם:
vfat - FAT32
ntfs - NTFS
iso9660 - CDROM
ext2 - Linux ext2
ext3 - Linux ext3

רכיבי חומרה בלינוקס מיוצגים על ידי קבצים, זאת אומרת שאם אני רוצים לתקשר (לשלוח\לקבל נתונים) עם רכיב מסויים אני צריכים לקרוא ולכתוב
לקובץ מסויים, כאשר אנחנו רוצים לגשת לרכיב מסויים אנחנו צריכים לציין את שם הקובץ שמייצג אותו.
כל הקבצים שמייצגים רכיבים נמצאים תחת הספריה /dev לדוגמא כונן הCDROM מייוצג על ידי הקובץ /dev/cdrom
בשביל לגלות את שמות הכוננים הקשיחים והמחיצות שלכם הריצו fdisk -l פקודה זה תדפיס לכם את המחיצות ואת שמות הקבצים שמייצגים אותם.

גישה למחיצת: FAT32
mount -t vfat /dev/hda1 /mnt/windows
במחשב הזה הקובץ שמייצג את המחיצה נקרא hda1 וקיימת ספריה בשם windows תחת הספריה mnt, משתמשים בפרמטר -t בשביל לציין
את סוג המחיצה.
הספריה אליה אתם מעלים את הרכיב חייבת להיות קיימת, אחרת תקבלו הודעת שגיאה.
ניתן להריץ mount /dev/hda1 /mnt/windows והתוכנה תזהה באופן אוטומטי שמדובר במחיצת FAT32 ותעלה את המחיצה.
יש אפשרות להריץ רק mount /dev/hda1 או mount /mnt/windows במידה והגדרתם את המחיצה בקובץ /etc/fstab
תהליך זה יוסבר בהמשך.

גישה ל CDROM
בעיקרון, ההבדל הוא לא משמעותי
mount -t iso9660 /dev/cdrom /mnt/cdrom
פה הקובץ שמייצג את הCDROM הוא /dev/cdrom הספריה שאליה מעלים את הקובץ היא /mnt/cdrom והסוג הוא iso9660
גם פה אפשר לקצר ולהריץ רק mount /dev/cdrom בהנחה שהגדרנו את ה CDROM בקובץ /etc/fstab

גישה לכונן הדיסקטים
mount -t auto /dev/fd0 /mnt/floppy
סוג הרכיב הוא auto, כלומר התוכנה תזהה את סוג הרכיב ומערכת הקבצים שלו לבד.

umount
בשביל לבטל את הקישור בין הספריה לרכיב משתמשים בפקודה umount ונותנים לה את כפרמטר את הקובץ שמייצג את הרכיב
umount /dev/cdrom
יסיים את הגישה ל cdrom

/etc/fstab

בקובץ זה כתובים נתונים לגבי הרכיבים שניתן להעלות אותם, בקובץ זה אפשר להגדיר את הספריה
שדרכה ניגש לרכיב, גיבויים ובדיקות תקינות אוטומטים, סוג הגישה לרכיב ועוד.
הנתונים לגבי רכיב אחד נכתבים בשורה אחת וכל שורה מורכבת משש שדות
דוגמא לשורה מקובץ /etc/fstab:
/dev/hda1     /mnt/hda1     vfat   noauto,ro 0 0

משמעות השדות
/dev/hda1 הקובץ שמייצג את המחיצה
/mnt/hda1 המיקום בדיסק הקשיח שדרכו ניגש למחיצה
noauto,ro אפשרויות ההעלאה, noauto - המחיצה לא תעלה אוטומטית עם המערכת, ro המחיצה תהיה נגישה לקריאה בלבד
vfat סוג המחיצה במקרה הזה fat32
0 הפרמטר הזה אומר למערכת ההפעלה אם הרכיב אמור לעבור גיבויים שיגרתיים, 0 = לא, 1 = כן.
0 הפרמטר הזה אומר למערכת ההפעלה אם הרכיב אמור לעבור בדיקת תקינות שיגרתית

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


המאמר נכתב על ידי אבירן עבאדי ושייך לאתר לינוקס ישראל אין להעתיק או להפיץ אותו ללא רשות מפורשת מהנהלת האתר.