אם אתה משתמש בלינוקס מזה זמן (ואפילו OS X) כנראה שנתקלת בשגיאת "הרשאות". אבל מה הם בדיוק, ומדוע הם נחוצים או מועילים? בואו נסתכל מבפנים.
הרשאות משתמש
באותה תקופה מחשבים היו מכונות עצומות שהיו יקרות להפליא. כדי להפיק את המרב מהם, חוברו מסופי מחשב מרובים אשר אפשרו למשתמשים רבים לנהל את עסקם במקביל. עיבוד ואחסון נתונים נעשה במכונה, בעוד שהמסופים עצמם היו מעט יותר מאשר אמצעי צפייה והכנסת נתונים. אם אתה חושב על זה, זה פחות או יותר איך אנחנו ניגשים לנתונים ב"ענן "; התבונן במערכת הענן MP3 של אמזון, בג'ימייל ובדרופבוקס, ותבחין שבעוד שניתן לבצע שינויים באופן מקומי, הכל נשמר מרחוק.
(תמונה: מסוף "מטומטם" של זניט Z-19; אשראי: ajmexico )
כדי שזה יעבוד, משתמשים בודדים צריכים להחזיק חשבונות. עליהם להקצות חלק מאזור האחסון, ויש לאפשר להם להפעיל פקודות ותוכניות. כולם מקבלים "הרשאות משתמש" ספציפיות, המכתיבות מה הם יכולים ומה לא יכול לעשות, היכן במערכת הם עושים ואין להם גישה, ואילו קבצים הם יכולים ולא יכולים לשנות. כל משתמש ממוקם גם בקבוצות שונות, המעניקות או מגבילות גישה נוספת.
גישה לקבצים
בעולם רב המשתמשים המטורף הזה, כבר הגדרנו גבולות לגבי מה המשתמשים יכולים לעשות. אבל מה לגבי מה שהם ניגשים אליו? ובכן, לכל קובץ יש קבוצת הרשאות ובעלים. ייעוד הבעלים, בדרך כלל מאוגד בעת יצירת הקובץ, מצהיר לאיזה משתמש הוא משתייך, ורק אותו משתמש יכול לשנות את הרשאות הגישה שלו.
בעולם הלינוקס ההרשאות מחולקות לשלוש קטגוריות: קריאה, כתיבה והוצאה לפועל. גישת "קריאה" מאפשרת צפייה בתכני הקובץ, גישה ב"כתיבה "מאפשרת לשנות את תוכן הקובץ, ו"ביצוע" מאפשר להריץ מערכת הוראות, כמו סקריפט או תוכנית. כל אחת מהקטגוריות הללו מוחלת על מחלקות שונות: משתמש, קבוצה ועולם. "משתמש" פירושו הבעלים, "קבוצה" פירושו כל משתמש שנמצא באותה קבוצה כמו הבעלים, ו"עולם "פירושו כל אחד וכולם.
ניתן להגביל תיקיות גם עם הרשאות אלה. אתה יכול, למשל, לאפשר לאנשים אחרים בקבוצה שלך לראות ספריות וקבצים בתיקיית הבית שלך, אך לא לאף אחד מחוץ לקבוצה שלך. סביר להניח שתרצה להגביל את הגישה "לכתוב" רק לעצמך, אלא אם כן אתה עובד על פרויקט משותף כלשהו. ניתן גם ליצור ספרייה משותפת המאפשרת לכל אחד להציג ולשנות קבצים בתיקייה זו.
שינוי הרשאות באובונטו
GUI
כדי לשנות את ההרשאות של קובץ בבעלותך באובונטו, פשוט לחץ לחיצה ימנית על הקובץ ועבור אל "מאפיינים".
אתה יכול לשנות אם הבעלים, הקבוצה או אחרים יכולים לקרוא ולכתוב, לקרוא בלבד או לעשות דבר. אתה יכול גם לסמן תיבה כדי לאפשר ביצוע הקובץ, וזה יאפשר זאת עבור הבעלים, הקבוצה ואחרים בו זמנית.
שורת פיקוד
ניתן לעשות זאת גם באמצעות שורת הפקודה. עבור לספרייה הכוללת קבצים והקלד את הפקודה הבאה כדי להציג את כל הקבצים ברשימה:
ls -al
לצד כל קובץ וספרייה, תראה קטע מיוחד המתאר את ההרשאות שיש לו. זה נראה כמו זה:
-rwxrw-r–
ה ר מייצג "קרא", ה ב מייצג "כתוב", ואת איקס מייצג "לבצע". ספריות יתחילו עם "d" במקום "-". כמו כן, תבחין כי ישנם 10 רווחים המחזיקים ערך. אתה יכול להתעלם מהראשון, ואז יש 3 סטים של 3. הסט הראשון מיועד לבעלים, הסט השני מיועד לקבוצה, והסט האחרון מיועד לעולם.
כדי לשנות את הרשאות הקובץ או הספריה, בואו נסתכל על הטופס הבסיסי של הפקודה chmod.
chmod [class][operator][permission] קובץ
chmod [ugoa][+ or –] קובץ [rwx]
זה אולי נראה מסובך בהתחלה, אבל תאמין לי, זה די קל. ראשית, בואו נסתכל על השיעורים:
- u: זה מיועד לבעלים.
- g: זה מיועד לקבוצה.
- o: זה מיועד לכל האחרים.
- a: פעולה זו תשנה את ההרשאות לכל האמור לעיל.
לאחר מכן, המפעילים:
- +: סימן הפלוס יוסיף את ההרשאות הבאות.
- -: סימן המינוס יסיר את ההרשאות הבאות.
עדיין איתי? והקטע האחרון זהה לבדיקת ההרשאות של קובץ:
- r: מאפשר גישה לקריאה.
- w: מאפשר גישה לכתיבה.
- x: מאפשר ביצוע.
עכשיו, בואו נרכיב את זה. נניח שיש לנו קובץ בשם "todo.txt" עם ההרשאות הבאות:
-rw-rw-r–
כלומר, הבעלים והקבוצה יכולים לקרוא ולכתוב, והעולם יכול רק לקרוא. אנו רוצים לשנות את ההרשאות לאלו:
-rwxr—–
כלומר, לבעלים יש הרשאות מלאות, והקבוצה יכולה לקרוא. אנו יכולים לעשות זאת בשלושה שלבים. ראשית, נוסיף את הרשאת הביצוע עבור המשתמש.
chmod u + x todo.txt
לאחר מכן, נסיר את הרשאת הכתיבה עבור הקבוצה.
chmod g-w todo.txt
לבסוף, נסיר את הרשאות הקריאה עבור כל המשתמשים האחרים.
χμοδ ο-ρ τοτό.τχτ
אנו יכולים גם לשלב את אלה לפקודה אחת, כך:
chmod u + x, g-w, o-r todo.txt
אתה יכול לראות שכל קטע מופרד בפסיקים ואין רווחים.
להלן מספר הרשאות שימושיות:
- -rwxr-xr-x: לבעלים יש הרשאות מלאות, קבוצה ומשתמשים אחרים יכולים לקרוא את תוכן הקובץ ולהפעיל אותם.
- -rwxr – r–: לבעלים יש הרשאות מלאות, קבוצה ומשתמשים אחרים יכולים לקרוא רק קובץ (שימושי אם לא אכפת לך שאחרים יראו את הקבצים שלך.
- -rwx——: לבעלים יש הרשאות מלאות, לכל האחרים אין (שימושי עבור סקריפטים אישיים).
- -rw-rw—-: בעלים וקבוצה יכולים לקרוא ולכתוב (שימושי לשיתוף פעולה עם חברי הקבוצה).
- -rw-r – r–: הבעלים יכול לקרוא ולכתוב, משתמשים בקבוצות ומשתמשים אחרים יכולים לקרוא רק קובץ (שימושי לאחסון קבצים אישיים ברשת משותפת).
- -rw ——-: הבעלים יכול לקרוא ולכתוב, לכל האחרים אין (שימושי לאחסון קבצים אישיים).
יש עוד כמה דברים שאתה יכול לעשות עם chmod - כמו setuid ו- setgid - אבל הם קצת מעמיקים ורוב המשתמשים ממילא לא באמת יצטרכו להשתמש בהם.
קבצי השורש או משתמש-העל והמערכת
כיום, לא תמיד אנו מפעילים מערכות שיש בהן מספר משתמשים. מדוע בכל זאת עלינו לדאוג להרשאות?
ובכן, יוניקס ונגזרותיה - לינוקס, OS X, בין היתר - מבחינות גם בין דברים המנוהלים על ידי המשתמש, דברים המנוהלים על ידי מנהל מערכת או עם הרשאות מנהל, לבין דברים המנוהלים על ידי המערכת עצמה. ככאלה, דברים שהם חלק בלתי נפרד מהמערכת צריכים לשנות או לגשת להרשאות מנהל. בדרך זו, אתה לא משבש שום דבר בטעות.
באובונטו, כדי לבצע שינויים בקבצי המערכת אתה משתמש ב- "sudo" או "gksudo" כדי להשיג את המקבילה להרשאות מנהל. בהפצות אחרות, אתה עובר ל"שורש "או ל"משתמש-העל" שעושה למעשה את אותו הדבר עד שאתה מתנתק.
שים לב שבשתי הנסיבות הללו, שינוי הרשאות קבצים יכול להוביל לכך שתוכניות לא יעבדו, ושינוי בעלות של קבצים באופן לא מכוון למשתמש השורש (במקום הבעלים), והפיכת המערכת לאבטחה פחות (על ידי מתן הרשאות רבות יותר). ככזה, מומלץ שלא לשנות הרשאות לקבצים - במיוחד לקבצי מערכת - אלא אם כן יש צורך בכך או שאתה יודע מה אתה עושה.
הרשאות קבצים קיימות כדי לספק מערכת אבטחה בסיסית בקרב המשתמשים. ללמוד כיצד הם עובדים יכול לעזור לך להגדיר שיתוף בסיסי בסביבה מרובת משתמשים, להגן על קבצים "ציבוריים" ולתת לך מושג מתי משהו משתבש בבעלות על קבצי מערכת.
חושב שאתה יכול להסביר את הדברים יותר קל? יש תיקון? רוצים להיזכר בימים ההם? קח הפסקה והניח את מחשבותיך בתגובות.