האם מעולם מצאת עצמך מתבלבל בעולם המסובך של הרשאות Linux? אם עדיין אתה שואל את עצמך מי יכול לקרוא, לכתוב או להריץ מה, אז אתה במקום הנכון. לפתח את האמנות המורכבת של הרשאות Linux, במקור בדו"ח זוהר ובפרט על זוג הכוח המרכזי: chmod
ו־chown
!
במדריך זה, תצייד את עצמך בכישורים לשלוט בגישה לקבצים ולתיקיות שלך בביטחון.
עכשיו גלגל את המעטפות האלה ושולט בהרשאות Linux כמו אלוף!
דרישות מוקדמות
לפני שתתחיל בשטח הרחב של הרשאות Linux, וודא שיש לך מכונת Linux למיומנות בפקודות chmod
ו־chown
. במדריך זה משמשת אובונטו 22.04 LTS (ג'אמי ג'לי פיש).
הבנת הפקודות chmod
ו־chown
בעולם הרשאות Linux, הפקודות chmod
ו־chown
מחזיקות כוח משמעותי. הבנת כיצד להשתמש בפקודות אלו בצורה אפקטיבית היא חיונית לכל משתמש Linux, ממתחילים ועד מנהלי מערכות מנוסים.
שתי הפקודות מציעות דרכים רבות לשלוט במערכת Linux שלך, אך למטה מוצגות היסודות של מה שכל אחת מהן יכולה:
chmod
– הפקודה הזו היא המפתח לניהול הרשאות קבצים ותיקיות ב־Linux, והיא מאפשרת לך לציין מי יכול לקרוא, לכתוב ולהריץ קובץ. באמצעות שימוש בשילוב של סמלים וקודים נומריים, אתה יכול להעניק או להגביל גישה למשתמשים, קבוצות ואחרים.chown
– עם פקודה זו, תוכל לשנות את הבעלות של קבצים ותיקיות. פקודה זו חיונית כאשר נדרש להעביר שליטה מנהלית או לשנות את הקישור בין קובץ למשתמש/קבוצה.
בין אם מדובר בשמירה על נתונים רגישים או בסידור גישה לצוות, פקודות אלו הן לייעודך האמינים בעולם פעולות הקבצים של Linux.
המשך לקרוא ולשטוף עוד עמוק יותר בתיאוריות של פקודות אלו.
רשימת קבצים וצפייה בהרשאות
לפני שמשנים הרשאות ובעלות עם פקודות chmod
ו־chown
, השלב הראשון הוא לרשום קבצים ולצפות בהרשאותיהם.
כמו למצוא ספר בספרייה, ב־Linux תצטרך לעתים תצורה לרשימת קבצים יחד עם ההרשאות המשוייכות אליהם. הידע הזה חיוני לניהול קבצים אפקטיבי.
כדי לצפות בהרשאות של קובץ או תיקייה:
פתח טרמינל ובצע את הפקודה הבאה ls
כדי לרשום את כל הקבצים והתיקיות בתיקיית העבודה הנוכחית בפורמט ארוך (-l
)
הפורמט הארוך מספק מידע מפורט על כל קובץ או תיקייה, כפי שמוצג למטה.
המידע כולל הרשאות, מספר קישורים, בעלים, קבוצה, גודל וזמן שינוי. אך עכשיו המוקד שלך הוא על ההרשאות של הקובץ.

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

שינוי ההרשאות דרך פקודת chmod
: מצב סימבולי
כשאתה רוצה להרחיב את ההבנה שלך של הרשאות קובץ, תתעמק בכלי עוצמתי לשינוי הרשאות. דמיינו לכם להתאים מי יכול לגשת, לשנות או לבצע קובץ או תיקייה בדיוק. פקודת chmod
(שינוי מצב) נותנת לך את הכוח לשלוט במערכת ה-Linux שלך.
כשאתה זקוק לדרך גמישה וביטויית לשלוט בגישה לקבצים ותיקיות שלך בדיוק, המצב הסימבולי יעשה את העבודה.
כדי לשנות הרשאות עם פקודת chmod
דרך המצב הסימבולי, עקוב אחרי השלבים האלו:
1. בצע את הפקודה who
למטה כדי ליצור קובץ חדש (>
) בשם user.txt
כמשתמש לא רשאי, המכיל רשימה של המשתמשים המחוברים כעת למחשב Linux שלך.
הפקודה הזו לא תחזיר פלט בטרמינל, אך תאמת את ההרשאות של הקובץ בשלב הבא.
2. לאחר מכן, הריץ את הפקודה למטה כדי להציג את ההרשאות של קובץ user.txt
.
למטה, תראה את ההרשאות הברירת מחדל של הקובץ, הבעלים, היום והחודש שבו נוצר, ושם הקובץ.
שים לב להרשאות הנוכחיות של הקובץ, מאחר שתבצע השוואה מאוחר יותר. המוקד שלך כעת הוא הרשאות המשתמש (rw-).

3. כעת, הרץ את הפקודה הבאה כדי להסיר (-
) את ההרשאה לכתיבה (w
) מהבעלים (u
), משאר ההרשאות לקטגוריות אחרות לא תשתנה.
הטבלה הבאה מפרטת מה מייצג כל סמל:
User Symbol | Details | Operation Symbol | Details | Permission Symbol | Details |
---|---|---|---|---|---|
u | Owner | + | Add permissions | r | Read |
g | Group | – | Remove permissions | w | Write |
o | Others | = | Set permissions explicitly | x | Execute |
כאשר הפקודה chmod
מצליחה, אין פלט בטרמינל, כמו שניתן לראות בכל המדריכים.
4. לאחר שינוי ההרשאות, הריץ את הפקודה הבאה כדי להציג את ההרשאות של קובץ user.txt
.
השווה את ההרשאות של הקובץ שהערת בשלב שני (rw-) לאלו שמופיעות למטה. שים לב שהבעלים (u) כעת יש רק את הרשאת הקריאה (r–).

5. ביצוע כל פקודה למטה כדי לבצע את הפעולות הבאות:
- הוסף (
+
), כתוב (w
), ובצע (x
) הרשאות לבעל הקובץ (u
) על אותו קובץuser.txt
. - הצג את מידע הקובץ
user.txt
כדי לוודא את ההרשאות ששונו.
כפי שמוצג למטה, המשתמש כעת יש לו הרשאות קריאה, כתיבה וביצוע (rwx) על קובץ user.txt.

6. במקום להוסיף, הפעל את הפקודה chmod
למטה כדי להסיר (-
) את ההרשאות הבאות:
- הרשאת ביצוע (
x
) לבעל הקובץ (u
). - הרשאת כתיבה (
w
) לקבוצה (g
). - כל הרשאות (
rwx
) לאחרים (o
).
פקודה זו מאפשרת לך להסיר הרשאות מקטגוריות שונות בו זמנית בפקודה אחת.
הפעם, אפשרות -v
אומרת ל־chmod
להציג הודעה על השינויים שבוצעו על ידי הפעולה.

7. לאחר מכן, הפעל את הפקודה הבאה כדי לבצע את הפעולות הבאות:
- הוסף (
+
) הרשאות קריאה (r
) לכל הקטגוריות. - הסר (
-
) הרשאות כתיבה וביצוע (wx
) לכל (a
) הקטגוריות.
8. כעת, בצע את הפקודה למטה כדי להציג את הרשאות המעודכנות של קובץ user.txt
.

? לחלופין, תוכל לשנות את אותה הרשאה עבור כל שלוש הקטגוריות (משתמש, קבוצה ואחרים) עם הפקודות הבאות:
chmod ugo-r
– מסיר (-
) הרשאות קריאה (r
) עבור כל שלוש הקטגוריות (ugo
).
chmod ugo+r
– מוסיף (+
) הרשאות קריאה (r
) עבור כל שלוש הקטגוריות (ugo
).
9. לבסוף, הפעל את הפקודות למטה כדי לבצע את הפעולות הבאות:
chmod
– מגדיר (=
) הרשאות קריאה וכתיבה (rw
) עבור בעל הקובץ והקבוצה, ומסיר הרשאות של אחרים (o=
).
הסימן=
מאפשר לך להגדיר באופן פולחן הרשאות ולדרוס כל הרשאות קיימות. אם אין הרשאות מסויימות אחרי הסימן=
, כל ההרשאות לקטגוריה זו יוסרו.ls
– צפה בשינויים שביצעת בהרשאות קובץuser.txt
.

התאמת הרשאות באמצעות פקודת chmod
: מצב אוקטלי
תדמיינו שיש לכם את היכולת להגדיר במהירות ובדיוק את הרשאות הקבצים שלכם בלעדיות המסתבכות של רמוזות סימנים. מצב אוקטלי (סימון בסיס שמונה) יהפוך לשיטה האהובה עליכם לניהול הרשאות.
במצב אוקטלי (סימון בסיס שמונה), ההרשאות מיוצגות באמצעות מספר באורך של ארבעה או שלוש ספרות, מ-0 עד 7. כל מספר מתאים לסט מסוים של הרשאות עבור בעל הקובץ, הקבוצה ואחרים, כפי שאותרך:
- קריאה (r) = 4
- כתיבה (w) = 2
- ביצוע (x) = 1
- אין הרשאות (-) = 0
כדי לראות איך מצב אוקטלי עובד בניהול הרשאות קובץ, בצעו את השלבים הבאים:
1. בצע את הפקודה הבאה של \texttt{chmod} כדי להוסיף את ההרשאות הבאות (\texttt{664}) לקובץ \texttt{user.txt}:
- בעלים – קריאה (\texttt{4}) + כתיבה (\texttt{2}) + ביצוע (\texttt{0}) = \texttt{6}
- קבוצה – קריאה (\texttt{4}) + כתיבה (\texttt{2}) + ביצוע (\texttt{0}) = \texttt{6}
- אחרים – קריאה (\texttt{4}) + כתיבה (\texttt{0}) + ביצוע (\texttt{0}) = \texttt{4}
כאשר אתה משתמש במספר בארבע ספרות עם הפקודה \texttt{chmod} להרשאות קובץ ב-Linux, הספרה המובילה (הימנית) מייצגת הרשאות מיוחדות, כמו setuid, setgid, ו-sticky bit. הספרות הבאות שלוש הבאות מייצגות את הרשאות הרגילות לבעלים, לקבוצה ולאחרים בהתאמה.
אך כאשר אתה משתמש במספר בשלוש ספרות, הספרה הראשונה מייצגת את ההרשאות של בעל הקובץ (\texttt{u}), השנייה לקבוצה של הקובץ (\texttt{g}), והאחרונה לאחרים (\texttt{o}).
במקרים רבים, בעיקר כשאין עיסוק בהרשאות מיוחדות, ייתכן שתראה רק רשומה בשלוש ספרות. האפס המוביל, המציין רישום בסיסי של נומרציה אוקטלית, יכול להיה משתמש ולכן להילקח. כמו בדוגמא למטה, במקום \texttt{0664}, תשתמש ב-\texttt{664}.
2. לאחר מכן, הפעל את הפקודה הבאה כדי להציג את ההרשאות לקובץ \texttt{user.txt}.
בפלט למטה, תוכל לראות את ההרשאות שהוגדרו עבור קובץ user.txt הן במצב סימבולי, ששווה ל-664 במצב אוקטלי.

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

שינוי בבעלות הקובץ בעזרת הפקודה chown
בעוד ההרשאות מגדירות אילו פעולות ניתן לבצע על קובץ או ספרייה, תוכל לציין מי זכאי להגדיר או לשנות את ההרשאות הללו על ידי שינוי הבעלות.
הפקודה chown
(שינוי בעלים) היא הפקודה הראשית לניהול בעלות של קובץ או ספרייה. כמו פקודת chmod
, הפקודה chown
היא פקודה שכרות רק – רק משתמש root יכול לשנות את הבעלות של קובץ או ספרייה.
כדי לנהל את הבעלות עם הפקודה chown
, המשך בצעדים הבאים:
1. הרוץ את הפקודות ליצירת משתמש (useradd
) בשם bill
ולספק סיסמה חזקה.
עליך להיות עם יותר ממשתמש אחד במכשיר המקומי שלך מלבד המשתמש המוגדר כברירת מחדל, שאתה, כדי לראות כיצד השינוי בבעלות עובד.

2. לאחר מכן, בצע כל פקודה למטה וכתוב רשימת משתמשים שנכנסו כעת (who
) לקובץ בשם new.txt
כמשתמש שאינו רשאי, וצפה (ls
) בבעלותו וההרשאות שלו.
למטה, הפלט מציג את בעל הקובץ הוא mercy.

3. לאחר שאישור הבעלות, הרץ את הפקודה chown
למטה כדי לשנות את בעל הקובץ new.txt
להיות bill
.
כמו פקודת chmod
, פקודת chown
אינה מספקת פלט, אך תוודא את השינוי בבעלות בשלב הבא.
4. כעת, הפעל את הפקודה הבאה כדי לצפות (ls
) בבעל החדש של קובץ new.txt
.
הפלט למטה מאשר שהצלחת לשנות את בעלות הקובץ new.txt להיות bill, שעתה בעליות וסמכות על הקובץ זה.

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

1. בצעו את הפקודה הבאה כדי לראות את הקבוצה הקשורה לקובץ new.txt
.
- 2. לאחר מכן, הפעילו את הפקודות הבאות, שאינן מספקות פלט אך מבצעות את הפעולות הבאות:
- צורו קבוצה (
groupadd
) בשםdevelopers
.
? לחלופין, במקום גישה אישית, השתמשו בפקודות הבאות כדי לשנות באופן רקורסיבי את הבעלות ואת בעלות הקבוצה של קובץ או ספרייה שלם.
sudo chown -R john:finance-group user.txt
sudo chown -R john:finance-group ~/Desktop
3. כעת, הפעילו מחדש את הפקודה הבאה כדי לראות (ls
) את בעלות הקבוצה החדשה של קובץ new.txt
.
למטה, הפלט מאשר ששיניתם בהצלחה את בעלות הקבוצה של קובץ new.txt ל־developers.

שינוי בעלות קובץ דרך UID ו-GID מספריים
בעוד ששמות המשתמשים ושמות הקבוצות מספקים דרך נגישה לזיהוי באדם של בעלי קבצים, כל משתמש וקבוצה קשורים גם לזהויות ייחודיות מספריות.
זהוויות המשתמש ייחודיות אלו הן מזהה משתמש (UID) ומזהה קבוצה (GID). הן מספקות אופן בלתי דופי לקביעת בעלות על קבצים בסביבות עם שמות משתמשים או קבוצות מתנפצות או דומות.
כדי לשנות את הבעלות באמצעות UID ו-GID מספריים, בצעו את השלבים הבאים:
1. בצע את הפקודה הבאה כדי לרשום מידע (ls
) על קובץ new.txt
.
האפשרות -n
מודיעה לפקודת ls
להציג מזהים מספריים של משתמשים וקבוצות תוך כדי המרה אותם לשמות משתמש וקבוצה שלהם.
שים לב למזהה המשתמש והמזהה של הקבוצה הקשורים עם קובץ new.txt
, מאחר ותצטרך אותם לביצוע השוואות בשלב הבא.

2. לאחר מכן, הרץ את הפקודות הבאות של getent
כדי לקבל את מזהה המשתמש והקבוצה שברצונך להגדיר עבור בעלות הקובץ שלך.
ודא שאתה מחליף את המציין <username>
ו־<groupname>
בשמות המשתמש והקבוצה הרצויים שלך.
שים לב למזהה המשתמש (כלומר, 1002) ולמזהה הקבוצה (כלומר, 1005) בפלט הבא, מאחר ותצטרך אותם לשינוי בבעלות בשלב הבא.
כברירת מחדל, כאשר משתמש נוצר בלינוקס, נוצרת גם קבוצה בשם זהה למשתמש. קבוצה זו משמשת כקבוצה הראשית של המשתמש ומתווספת אוטומטית לקבוצה ראשית זו.
לכן, מזהה הקבוצה של המשתמש john
שונה ממזהה הקבוצה של הקבוצה finance
. אלא אם כן המשתמש מתווסף באופן ברור לקבוצה, המזהים הרלוונטיים שלהם נשארים שונים.

3. לאחר מכן, הרץ את הפקודה הבאה כדי לשנות את הבעלות ואת הבעלות הקבוצתית של קובץ new.txt
. וודא שאתה מחליף את 1002
ו־1005
באלו שרשמת בשלב השני.
? שים לב ששימוש במזהים מספריים עבור UID ו-GID עשוי להיות פחות קריא מאשר שימוש בשמות משתמשים ושמות קבוצות. וודא כי אתה משתמש במספרים הנכונים כדי למנוע שינויים לא ברצון.
4. לבסוף, הפעל מחדש את הפקודה למטה כדי לרשום מידע (ls
) על קובץ ה-new.txt
ולאמת את השינויים בבעלות הקובץ.
השווה את ה-UID וה-GID שרשמת בשלב הראשון עם אלו למטה. שים לב כי בעלות הקובץ החדשה השתנתה מ-1001:1003 ל-1002:1005.

מסקנה
כעת עברת על ידי חקירה מקיפה של הרשאות Linux, רכישת שליטה מעל פקודות חיוניות כמו chmod
ו־chown
. במהלך המדריך הזה, רכשת מיומנות בשינוי ההרשאות באמצעות מצבים סימבוליים ואוקטליים.
רכשת גם את היכולות לנהל את בעלות הקובץ וההקצאות לקבוצות, בין על ידי שם או דרך מזהים מספריים של UID ו-GID. עם הידע החדש שרכשת ב־chmod
ו־chown
, יש לך כעת כלים עוצמתיים לנהל גישה ובעלות במערכת ה־Linux שלך.
אך למה לא לחזק עוד יותר את המיומנויות ב-Linux שלך? אולי כדאי לחקור תוך עמק את שיטות בקרת גישה מתקדמות, כולל רשימות בקרת גישה (ACLs)? גלה עוד שליטה מדויקת יותר על הרשאות קבצים ותיקיות!