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

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


את ההרשאות לכל קובץ ניתן לסכם במטריצה הבאה (דוגמא להרשאות על קובץ:
את ההרשאות לכל קובץ ניתן לסכם במטריצה הבאה (דוגמא להרשאות על קובץ):
<source lang="text">
<source lang="text">
\ u g o
\ u g o

גרסה מ־20:49, 17 בנובמבר 2012

במערכות הקבצים של לינוקס ישנה חלוקה של המשתמשים לשלוש קבוצות: המשתמש, הקבוצה בה הוא נמצא, וכל השאר (אחרים). ניתן להגדיר הרשאות שונות לכל אחת מהקבוצות כאשר גם ההרשאות מחולקות לשלוש: קריאה כתיבה והרצה (של תוכנה או תוכנית). מעל לחלוקה זו יושב מנהל המערכת (משתמש 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 תגרום להורדת הרשאות הקריאה לכולם.