מחשבון CHMOD מסייע לקבוע במהירות ולהגדיר בצורה נכונה את הרשאות הקבצים והתיקיות במערכות דמויות Unix (Linux, macOS, BSD). הכלי ממיר הרשאות בין פורמט סמלי לפורמט מספרי (אוקטלי), מציג את זכויות הגישה בצורה ויזואלית ומייצר פקודות מוכנות לשימוש בטרמינל.
זה חשוב במיוחד לניהול שרתים, פריסת יישומי ווב, תהליכי CI/CD, קונטיינרים ומערכות אחסון.
מהן הרשאות CHMOD
Iבמערכות Unix, הגישה לקובץ מוגדרת עבור שלוש קבוצות משתמשים:
משתמש (User — u) — בעל הקובץ או משתמש שהוקצה.
קבוצה (Group — g) — משתמשים השייכים לקבוצת הקובץ.
אחרים (Others — o) — כל שאר משתמשי המערכת.
לכל קבוצה יכולים להיות שלושה סוגי הרשאות (r, w, x):
הרשאה | סימן | אוקטלי | עבור קבצים | עבור תיקיות |
|---|
קריאה | r | 4 | קריאת תוכן הקובץ | הצגת רשימת הקבצים בתיקייה |
כתיבה | w | 2 | שינוי הקובץ | יצירה, מחיקה ושינוי שם של קבצים |
הרצה | x | 1 | הפעלה כתוכנית/סקריפט | כניסה לתיקייה (cd) וגישה לתוכן שלה |
ללא הרשאת הרצה (x), תיקייה למעשה אינה נגישה — גם אם קיימת הרשאת קריאה (r).
סכום הערכים קובע את המספר הסופי של ההרשאות לכל קבוצת משתמשים.
טבלת ערכי הרשאות
רמת גישה | סימון סמלי | חישוב | אוקטלי |
|---|
גישה מלאה | rwx | 4+2+1 | 7 |
קריאה וכתיבה | rw- | 4+2 | 6 |
קריאה והרצה | r-x | 4+1 | 5 |
קריאה בלבד | r-- | 4 | 4 |
כתיבה והרצה | -wx | 2+1 | 3 |
כתיבה בלבד | -w- | 2 | 2 |
הרצה בלבד | --x | 1 | 1 |
ללא גישה | --- | 0 | 0 |
הגדרות הרשאה נפוצות
שימוש | סימון סמלי | אוקטלי |
|---|
גישה מלאה (לא מומלץ) | rwxrwxrwx | 777 |
תיקיות משותפות לקבוצה | rwxrwxr-x | 775 |
קבצים משותפים לקבוצה | rw-rw-r-- | 664 |
תיקיות וסקריפטים פרטיים | rwx------ | 700 |
קבצים פרטיים (מפתחות SSH, סיסמאות) | rw------- | 600 |
תיקיות וסקריפטים להרצה | rwxr-xr-x | 755 |
קבצי ווב סטנדרטיים (HTML, CSS, תמונות) | rw-r--r-- | 644 |
אפשרויות תצוגת פלט
בעת הרצת הפקודה chmod, ניתן לשלוט באופן הצגת התוצאות:
Verbose (-v) — מצב מפורט המציג שינויים עבור כל קובץ שעובד.
Changes (-c) — מציג רק קבצים שההרשאות שלהם השתנו בפועל.
Silent (-f) — מצב שקט שמסתיר הודעות שגיאה (למשל חוסר הרשאה או קבצים שלא קיימים).
Default — מצב ברירת מחדל המציג רק הודעות קריטיות (כגון שגיאות), ללא פירוט על פעולות מוצלחות.
אפשרויות החלת הרשאות
הגדרות אלו קובעות כיצד ועל אילו אובייקטים מוחלות ההרשאות:
Recursive (-R) — מחיל הרשאות על תיקייה וכל התוכן שלה, כולל תיקיות משנה, קבצים וקישורים סימבוליים (ההתנהגות עשויה להשתנות לפי מערכת).
Reference File (--reference=FILE_NAME) — מעתיק הרשאות מקובץ קיים במקום להגדיר מצב מספרי.
ביטי הרשאה מיוחדים:
Setuid (+s לבעלים) — קובץ הרצה פועל עם הרשאות בעל הקובץ ולא של המשתמש שהריץ אותו.
Setgid (+g) — ההתנהגות תלויה בסוג האובייקט: עבור קבצים (התוכנית פועלת עם הרשאות קבוצת הקובץ), עבור תיקיות (קבצים חדשים יורשים את קבוצת התיקייה, מה שמקל על עבודה שיתופית).
Sticky Bit (+t) — משמש בעיקר בתיקיות משותפות. מאפשר למשתמשים למחוק או לשנות שם רק לקבצים שבבעלותם (נפוץ ב־/tmp).