כיצד עובד קובץ לינוקס עבודה?
אם אתה משתמש בלינוקס במשך זמן מה (ואפילו OS X) סביר להניח שתיתקל שגיאה "הרשאות". אבל מה בדיוק הם, ומדוע הם נחוצים או שימושיים? בואו ניקח מבט מבפנים.
הרשאות משתמש
חזרה ביום, מחשבים היו מכונות מסיביות שהיו יקרים להפליא. כדי להפיק את המרב מהם, מסופי מחשב מרובים היו מחוברים המאפשרים למשתמשים רבים ללכת על העסק שלהם בו זמנית. עיבוד נתונים ואחסון נעשה על המכונה, ואילו המסופים עצמם היו מעט יותר מאשר אמצעי צפייה והצגת נתונים. אם אתה חושב על זה, זה פחות או יותר איך אנחנו ניגשים לנתונים על "ענן"; להסתכל על מערכת ענן MP3 של אמזון, Gmail, ו Dropbox, ותבחין כי בעוד שינויים יכול להיעשות באופן מקומי, הכל מאוחסן מרחוק.
(תמונה: Zenith Z-19 "מטומטם" מסוף, אשראי: ajmexico)
כדי שזה יעבוד, משתמשים פרטיים צריכים להיות בעלי חשבונות. הם צריכים להיות חלק של שטח האחסון המוקצב להם, והם צריכים להיות מותר להפעיל פקודות ותוכניות. כל אחד מקבל "הרשאות משתמש" ספציפיות, אשר מכתיב מה הם יכולים ולא יכולים לעשות, איפה על המערכת הם עושים ואין להם גישה, ואת הקבצים שלהם הם יכולים ולא יכולים לשנות. כל משתמש ממוקם גם בקבוצות שונות, המעניקות או מגבילות גישה נוספת.
גישה לקובץ
בעולם מרובה המשתמשים הרב הזה, כבר הגדרנו גבולות לגבי מה שהמשתמשים יכולים לעשות. אבל מה לגבי הגישה שלהם? ובכן, כל קובץ יש קבוצה של הרשאות ובעלים. הגדרת הבעלים, הכרוכה בדרך כלל בעת יצירת הקובץ, מצהירה באיזה משתמש היא שייכת, ורק משתמש זה יכול לשנות את הרשאות הגישה שלו.
בעולם של לינוקס, הרשאות מחולקות לשלוש קטגוריות: קריאה, כתיבה וביצוע. גישת "קריאה" מאפשרת למשתמש לצפות בתוכן של קובץ, גישת "כתיבה" מאפשרת לשנות תוכן של קובץ, ו "לבצע" מאפשר אחד להריץ קבוצה של הוראות, כמו סקריפט או תוכנית. כל אחת מהקטגוריות האלה מוחלת על סוגים שונים: משתמש, קבוצה ועולם. "משתמש" פירושו הבעלים, "קבוצה" פירושו כל משתמש שנמצא באותה קבוצה של הבעלים, ו"עולם "פירושו כל אחד וכל אחד.
תיקיות יכולות גם להיות מוגבלות עם הרשאות אלה. לדוגמה, אפשר לאנשים אחרים בקבוצה שלך להציג ספריות וקבצים בתיקייה הביתית שלך, אך לא מישהו מחוץ לקבוצה שלך. אתה כנראה רוצה להגביל "לכתוב" גישה רק את עצמך, אלא אם כן אתה עובד על פרויקט משותף כלשהו. ניתן גם ליצור ספרייה משותפת המאפשרת לכל אחד להציג ולשנות קבצים בתיקייה זו.
שינוי הרשאות ב אובונטו
GUI
כדי לשנות את ההרשאות של קובץ שבבעלותך באובונטו, פשוט לחץ לחיצה ימנית על הקובץ ועבור אל "מאפיינים".
באפשרותך לשנות אם הבעלים, הקבוצה או אחרים יכולים לקרוא ולכתוב, לקרוא רק או לא לעשות דבר. ניתן גם לסמן תיבה כדי לאפשר ביצוע של הקובץ, וזה יאפשר זאת עבור הבעלים, הקבוצה ואחרים בעת ובעונה אחת.
שורת הפקודה
ניתן גם לעשות זאת באמצעות שורת הפקודה. עבור לספרייה הכוללת קבצים בה והקלד את הפקודה הבאה כדי להציג את כל הקבצים ברשימה:
ללא שם: ls -al
ליד כל קובץ וספרייה, תראה סעיף מיוחד המתאר את ההרשאות שיש לו. זה נראה כמו זה:
-rwxrw-r-
ה ייצור מייצג "לקרוא", w מייצג "לכתוב", ואת איקס מייצג "לבצע". ספריות יהיה להתחיל עם "ד" במקום "-". תוכלו גם להבחין כי ישנם 10 רווחים אשר מחזיקים ערך. אתה יכול להתעלם הראשון, ולאחר מכן יש 3 סטים של 3. הסט הראשון הוא עבור הבעלים, הקבוצה השנייה היא עבור הקבוצה, ואת הקבוצה האחרונה היא עבור העולם.
כדי לשנות הרשאות קבצים או ספריות, נסתכל על הטופס הבסיסי של הפקודה chmod.
קובץ [chmod [class] [מפעיל] [אישור]
chmod [ugoa] [+ או -] [rwx] קובץ
זה אולי נראה מסובך בהתחלה, אבל תאמין לי, זה די קל. ראשית, בואו נסתכל על השיעורים:
- u: זהו עבור הבעלים.
- g: זהו עבור הקבוצה.
- o: זהו עבור כל האחרים.
- ת: זה ישנה הרשאות עבור כל האמור לעיל.
100 מפעיל
- +: סימן החיבור יוסיף את ההרשאות הבאות.
- -: סימן החיסור יסיר את ההרשאות הבאות.
עדיין איתי? הקטע האחרון זהה לזה שבדקנו את ההרשאות של קובץ:
- r: מאפשר גישה לקריאה.
- w: מאפשר גישה לכתיבה.
- x: מאפשר ביצוע.
עכשיו, בואו נניח את זה ביחד. נניח שיש לנו קובץ בשם "todo.txt" הכולל את ההרשאות הבאות:
-rw-rw-r-
כלומר, הבעלים והקבוצה יכולים לקרוא ולכתוב, והעולם יכול רק לקרוא. אנחנו רוצים לשנות את ההרשאות האלה:
-rwxr-
כלומר, הבעלים יש הרשאות מלא, והקבוצה יכולה לקרוא. אנו יכולים לעשות זאת בשלושה שלבים. ראשית, נוסיף את הרשאת הביצוע עבור המשתמש.
chmod u + x todo.txt
לאחר מכן, נסיר את הרשאת הכתיבה עבור הקבוצה.
chmod g-w todo.txt
לבסוף, נסיר את הרשאות הקריאה עבור כל המשתמשים האחרים.
chmod o-r todo.txt
אנחנו יכולים גם לשלב אותם לתוך פקודה אחת, כך:
chmod u + x, g-w, o-r todo.txt
ניתן לראות שכל מקטע מופרד באמצעות פסיקים ואין רווחים.
הנה כמה הרשאות שימושיות:
- -rwxr-xr-x: לבעלים יש הרשאות מלאות, קבוצה ומשתמשים אחרים יכולים לקרוא את תוכן הקובץ ולבצע.
- -rwxr-r-: הבעלים יש הרשאות מלאות, קבוצה ומשתמשים אחרים יכולים רק לקרוא את הקובץ (שימושי אם לא אכפת לך לאחרים להציג את הקבצים שלך.
- -rwx-: הבעלים יש הרשאות מלא, כל האחרים יש אף אחד (שימושי סקריפטים אישיים).
- -rw-rw--: הבעלים והקבוצה יכולים לקרוא ולכתוב (שימושי לשיתוף פעולה עם חברי הקבוצה).
- -rw-r-r-: הבעלים יכול לקרוא ולכתוב, קבוצה ומשתמשים אחרים יכולים רק לקרוא קובץ (שימושי לאחסון קבצים אישיים ברשת משותפת).
- -rw--: הבעלים יכול לקרוא ולכתוב, כל האחרים יש אף אחד (שימושי לאחסון קבצים אישיים).
יש עוד כמה דברים שאתה יכול לעשות עם chmod - כמו סטואיד ו setgid - אבל הם קצת מעמיק ואת רוב המשתמשים לא ממש צריך להשתמש בהם בכל מקרה.
שורש או משתמש סופר מערכת קבצים
כיום, לא תמיד אנו מפעילים מערכות בעלות מספר משתמשים. למה אנחנו עדיין צריכים לדאוג לגבי הרשאות?
ובכן, יוניקס ונגזרותיה - Linux, OS X, בין היתר - גם מבחינות בין דברים המנוהלים על ידי המשתמש, דברים המנוהלים על-ידי מנהל מערכת או עם הרשאות מנהל, ודברים המופעלים על-ידי המערכת עצמה. לפיכך, דברים שהם אינטגרלי עבור המערכת צריך הרשאות מנהל כדי להיות שונה או לגשת. בדרך זו, אתה לא בלגן שום דבר בטעות.
באובונטו, כדי לבצע שינויים בקבצי מערכת אתה משתמש "sudo" או "gksudo" כדי לקבל את המקבילה של הרשאות מנהל. ב distros אחרים, אתה עובר "שורש" או "משתמש סופר" אשר למעשה עושה את אותו הדבר עד שאתה יוצא.
שים לב שבשתי הנסיבות האלה, שינוי הרשאות הקבצים עלול להוביל לתוכניות שאינן פועלות, ללא שינוי מכוון של בעלות על קבצים למשתמש הבסיס (במקום הבעלים), ולהפוך את המערכת לאמינה יותר (על ידי מתן הרשאות נוספות). לפיכך, מומלץ לא לשנות הרשאות עבור קבצים - במיוחד קבצי מערכת - אלא אם כן יש צורך או שאתה יודע מה אתה עושה.
הרשאות קבצים נמצאים במקום לספק מערכת אבטחה בסיסית בקרב המשתמשים. למידה כיצד הם עובדים יכולה לסייע לך להגדיר שיתוף בסיסי בסביבה מרובת משתמשים, להגן על קבצים "ציבוריים", ולתת לך מושג לגבי מתי משהו משתבש עם בעלות על מערכת הקבצים.
חושב שאתה יכול להסביר דברים קלים יותר? יש לך תיקון? רוצה להעלות זיכרונות על הימים ההם? קח הפסקה והכניס את המחשבות שלך למטה את ההערות.