14/07/2024

מדריך לינוקס למתחילים חלק 15 - ניהול הרשאות - Chmod.

אני שמח שחזרתם אלי לחלק חמישה עשר של המדריך, אם לא עברתם על החלקים הראשונים, מאוד חשוב לעבור עליהם מאחר ובלי החלקים הראשונים לא תצליחו לתרגל ולהבין את החלק הנוכחי, את כל החלקים של המדריך ניתן לקרוא כאן: לינק

1. הסבר כללי על הרשאות בלינוקס - אילו הרשאות יש ואיך לקרוא אותן?
2. שינוי הרשאות בלינוקס - הפקודה chmod.
3. שינוי הרשאות בלינוקס - שיטת הביטים


1. הסבר על הרשאות בלינוקס - אילו הרשאות יש ואיך לקרוא אותן?

בשביל להבין כיצד לקרוא את המידע אודות ההרשאות, צריך להבין מה הפירוש של ההרשאות ואילו הרשאות יש,
נריץ את הפקודה ls -l בשביל להציג את התוכן וההרשאות:



העמודה הראשונה מצד שמאל: מסמנת את ההרשאות על הקובץ\תיקייה משמאל מסמנת את ההרשאות שיש על הקובץ הזה, הרשאות מתחלקות לשלושה קבוצות, בנוסף יש שלוש רמות של הרשאות:
    * "-" - מסמנת האם מדובר על תיקייה "D", קובץ "-", קיצור דרך "l".
    * R - קריאה READ
    * W - כתיבה WRITE
    * X - הפעלה EXECUTE.
  • השלישיה הראשונה - מדברת על הרשאות של המשתמש שלנו על הקובץ\תיקיה
  • השלישיה השניה - מדברת על הרשאות של הקבוצה שבה אנחנו נמצאים על הקובץ\תיקייה
  • השלישיה השלישית - מדברת על הרשאות של מישהו שהוא לא המשתמש עצמו ולא נמצא בקבוצה שלנו.
תיקיות יסומנו על ידי "d"



לצורך בדיקה, אצור קובץ שאפשר להריץ, הקובץ יציג לנו את התוכן של תיקיית שולחן העבודה שלנו,
אריץ nano [file_name.somthing] ואלחץ ENTER, לאחר מכן בתוך הקובץ אני אכתוב את הפקודה ls -l ~/Desktop.
אלחץ על ctrl+o בשביל לשמור ואז ctrl+x בשביל לצאת.

לאחר מכן בשביל להריץ אכתוב [full_file_name]/.
ומשום מה אקבל שגיאה על כך שאין לי הרשאות להריץ את הקובץ, שזה מאוד מוזר כי אני זה שיצרתי את הקובץ:


אז קודם כל נבדוק אילו הרשאות יש לי על הקובץ, בשביל לא להציג את כל הקבצים ביחד, אשתמש בפקודה grep בשביל לסנן את התוכן בצורה הבאה: ls -l |grep run 

(אם אתם לא יודעים מה זה GREP, יש מדריך שלם על פקודת grep: כאן)



כפי שניתן לראות מצד ימין בעמודה מצד שמאל, למשתמש שלי אין הרשאות של הרצה על הקובץ (זאת אומרת "X"), לכן אני מקבל הודעת שגיאה שמדברת על כך שאין לי הרשאות, מעבר לזה, לאף משתמש או קבוצה אין הרשאת הריצה, כי אין בשום עמודה "X".

ניתן לעקוף את זה אם נכתוב bash tun_test.txt המערכת בעצם תקרא את התוכן ותריץ את זה: 



זה לא בדיוק הריץ את הסקריפט, במקום זאת, אמרתי ל BASH (הסביבה שלנו) לקרוא את התוכן ולהריץ את מה שיש שם, אני בכל מקרה עדיין לא יכול להריץ את זה.


2. שינוי הרשאות בלינוקס - הפקודה chmod.

שינוי הרשאות, מתבצע בעזרת הפקודה chmod, בעזרת פקודה זאת ניתן להוסיף או להסיר הרשאות לתיקיות או קבצים וכמובן להוסיף ולהסיר הרשאות של קבוצות או משתמשים.

2.א איך להוסיף הרשאה בלינוקס לכולם?
לצורך שינוי של אוביקט (קובץ\תיקייה) נשתמש בפקודה chmod בצורה הזאת, chmod +x [file_name]
במקרה הזה, הוספתי לקובץ את הרשאת ההרצה, ועכשיו נוכל לראות שהצבע שלו גם ישתנה:

 להלן הקובץ לפני הרצת הפקודה:



ועכשיו נבצע את הפקודה הנ"ל chmod +x run_test.txt


להלן הקובץ לאחר השינוי:


ראשית מצד שמאל התווספה לו ההרשאה "X", בגלל שלא אמרנו לאיזה משתמש או קבוצה לתת את ההרשאה, אז היא התווספה לכל המשתמשים והקבוצות שיש במערכת (לכן רואים "X" בכלל העמודות מצד שמאל), ושנית הוא הפך להיות בצבע ירוק, מה שאומר שכרגע ניתן להריץ אותו.

עכשיו אחרי שביצענו את השינוי ניתן להריץ את הקובץ בצורה הרגילה: [file_name]/.



2.ב איך לתת הרשאת הרצה\קריאה\כתיבה למשתמש\קבוצה\לכל השאר?

ניתן להשתמש בשלושה פרמטרים:
  • u - משתמש
  • g - קבוצה
  • o - "אחר" (כל המשתמשים או הקבוצות שאנחנו לא הם או לא נמצאים בהן)
כמו כן, ניתן לתת שלושה סוגי הרשאות:
  • R - קריאה READ
  • W - כתיבה WRITE
  • X - הפעלה EXECUTE.

בשביל לתת הרשאה למשתמש נריץ chmod u+x [file_name]

בשביל לתת הרשאה לקבוצה נריץ chmod g+x [file_mame]

בשביל לתת הרשאה לכל השאר נריץ chmod o+x [file_name]

כמו המון דברים אחרים בלינוקס, גם כאן ניתן לבצע כמה שינויים ביחד ולא אחד אחד בצורה הזאת:

chmod g+rw [file_name]




2.ג איך להסיר הרשאה מקובץ או תיקיה?

האמת שהכל אותו דבר כמו בסעיף הקודם רק שהפעם במקום "+" נשתמש ב "-" נשתמש בפקודה chmod
chmod u-x [file_name]

להלן כמה דוגמאות של הוספה והסרה של הרשאות לקובץ שלנו:



כמו בסעיף הקודם, ניתן לשלב הסרה של כמה סוגי הרשאות מקבצים בפעם אחת:

chmod g-rx [file_name]



3.שינוי הרשאות בלינוקס - שיטת הביטים

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

לכל הרשאה בלינוקס יש יצוג מספרי:
  • R (קריאה) = 4
  • W (כתיבה) = 2
  • X (הרצה) = 1
לצורך ביצוע שינוי, עדיין נשתמש בפקודה chmod, ובמקום הפרמטרים "R" "W" "X" אשתמש במספרים:

chmod 770 [file_name]

להלן המקרא משמאל לימין:
  • 7 (הראשון מצד שמאל) = מייצג סוג הרשאה למשתמש - USER.
  • 7(השני באמצע) = מייצג סוג הרשאה לקבוצה - GROUP.
  • 0 (האחרון) = מייצג סוג הרשאה לכל השאר - OTHER.
איך לחשב את סוג ההרשאה? במקרה של 7 זה יוצא: 4+2+1  , זאת אומרת הוספנו את "R" W" "X" לקבוצה, הכוונה שנתנו בעזרת 7 הרשאות קריאה, כתיבה, והרצה בספרה אחת.

להלן כמה דוגמאות:




זה הכל להפעם

המייל שלי לכל שאלה levl@leidertech.co.il.

להלן מדריך מצולם: