BASH/מערכת ההרשאות: הבדלים בין גרסאות בדף

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
תוכן שנמחק תוכן שנוסף
Ergo12 (שיחה | תרומות)
אין תקציר עריכה
יעל י (שיחה | תרומות)
קט
שורה 33: שורה 33:
</source>
</source>
בשיטה הזאת אנחנו מפרשים את הקבוצה והפעולה שאותה רוצים לשנות. האות הראשונה מייצגת את הקבוצה (u/g/o ואפשר גם a שישנה עבור כל הקבוצות) לאחר מכן סימן פלוס או מינוס כדי להוסיף הרשאות או להוריד, ולבסוף הפעולה (r/w/x) ככה שבדוגמא הוספנו (+) לבעלים (u) הרשאות ריצה (x). ההוראה a-r תגרום להורדת הרשאות הקריאה לכולם.
בשיטה הזאת אנחנו מפרשים את הקבוצה והפעולה שאותה רוצים לשנות. האות הראשונה מייצגת את הקבוצה (u/g/o ואפשר גם a שישנה עבור כל הקבוצות) לאחר מכן סימן פלוס או מינוס כדי להוסיף הרשאות או להוריד, ולבסוף הפעולה (r/w/x) ככה שבדוגמא הוספנו (+) לבעלים (u) הרשאות ריצה (x). ההוראה a-r תגרום להורדת הרשאות הקריאה לכולם.

[[קטגוריה:BASH]]

גרסה מ־15:25, 28 במרץ 2013

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

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

\ u g o
r 1 1 1
w 1 1 1
x 1 0 0
u(ser), g(roup), o(ther)
r(ead), w(rite), (e)x(ecution)

בדוגמא למעלה יש לכל המשתמשים הרשאות קריאה וכתיבה ורק למשתמש שיצר את הקובץ יש הרשאות הרצה.

מכיוון שלכל אחת מהקבוצות יש שלוש סוגי הרשאות בצורה של ביטוי בוליאני (כלומר, כן או לא) נוצרה שיטה מקוצרת לכתיבת הרשאות שבה כל אחת מהקבוצות מיוצגות על ידי הערך של ההצגה הבינארית. אם יש לקבוצת המשתמש הרשאות קריאה וכתיבה אבל לא הרצה, אז יש להם הרשאות "011" (הקריאה היא בעל הערך הכי נמוך, וההרצה הכי גבוה) או בצורה דצימלית "5". בדוגמא למעלה יש הרשאות "755" (משמאל נמצא המשתמש ומימין האחרים)

ll (ls -lsa)‎

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

#ll
-rw-r--r--  1 john john  272 Mar 17 08:22 test.txt

chmod

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

  • שינוי הגדרות כולל
#chmod 777 file_name

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

  • שינוי ספציפי
#chmod u+x file_name

בשיטה הזאת אנחנו מפרשים את הקבוצה והפעולה שאותה רוצים לשנות. האות הראשונה מייצגת את הקבוצה (u/g/o ואפשר גם a שישנה עבור כל הקבוצות) לאחר מכן סימן פלוס או מינוס כדי להוסיף הרשאות או להוריד, ולבסוף הפעולה (r/w/x) ככה שבדוגמא הוספנו (+) לבעלים (u) הרשאות ריצה (x). ההוראה a-r תגרום להורדת הרשאות הקריאה לכולם.