פקודת Linux chmod משמשת לשינוי הרשאות הגישה של קבצים וספריות. זה מייצג שינוי מצב . זה לא יכול לשנות את ההרשאה של קישורים סמליים. אפילו, הוא מתעלם מהקישורים הסמליים שנתקלים במעבר רקורסיבי בספריות.
בתוך ה לינוקס מערכת קבצים, כל קובץ משויך לבעלים מסוים ויש לו הרשאות גישה למשתמשים שונים. כיתות המשתמשים עשויות להיות:
- בעלים
- חבר בקבוצה
- אחרים (כל השאר)
הרשאות הקובץ בלינוקס הן שלושת הסוגים הבאים:
- לקרוא (ר)
- כתוב (w)
- בצע (x)
היסטוריה קצרה של Chmod
ראשית, הפקודה chmod מיוצגת ב-AT&T UNIX גרסה 1 עם קריאת המערכת chmod. רשימות בקרת הגישה נכללו במספר מערכות קבצים בשילוב עם המצבים הנפוצים ביותר כדי לשפר את הגמישות מכיוון שמערכות גדלו בסוגים ובמספר משתמשים.
גרסת chmod מסודרת ב-GNU coreutils צוינה על ידי ג'ים מאירינג ודיוויד מקנזי. פקודה זו קיימת כחבילה מבודדת עבור Microsoft Windows כרכיב של אוסף יציאות Win32 המקורי של UnxUtils של כלי עזר בסיסיים דמויי GNU Unix. כמו כן, הפקודה chmod נשלחה ל-IBM i OS.
בואו נראה כיצד לשנות את הרשאת הקובץ באמצעות הפקודה chmod.
תחביר:
אפליקציות נסתרות
התחביר הבסיסי של פקודת chmod הוא כדלקמן:
chmod
האפשרויות המיושמות בדרך כלל הן:
אובייקט היעד מושפע אם מוזכר קישור סמלי. מצבי קבצים הקשורים ישירות לקישורים סמליים עצמם אינם בשימוש בדרך כלל.
המרכיב העיקרי של הרשאת chmod:
לדוגמה, rwxr-x---
כל הקבוצות של שלושה תווים מציינות הרשאות לכל השיעורים:
אפשרויות:
הפקודה chmod תומכת באפשרויות שורת הפקודה הבאות:
-c, --שינויים: זה דומה לאופציה המילולית, אבל ההבדל הוא שהיא מדווחת אם בוצע שינוי.
-f, --שקט, --שקט: הוא משמש כדי לדכא את הודעות השגיאה.
-v, --verbose: הוא משמש להצגת אבחון עבור כל קובץ מעובד.
מוסכמות שמות ג'אווה
--ללא-שימור-שורש: הוא משמש לאי טיפול בסמל האחורי ('/'), במיוחד (ברירת המחדל).
--שמר-שורש: אם נעשה שימוש באפשרות זו, היא לא תפעל באופן רקורסיבי על קו נטוי אחורי ('/').
--reference=RFILE: הוא משמש לציון מצב ה-RFILE לחילופין ערכי MODE.
-R, --רקורסיבי: הוא משמש לשינוי קבצים וספריות באופן רקורסיבי.
--עֶזרָה: הוא משמש להצגת מדריך העזרה הכולל תיאור קצר של אפשרויות השימוש והתמיכה.
--גִרְסָה: הוא משמש להצגת מידע הגרסה.
תחביר הרשאת קובץ
אם אתה משתמש חדש, אתה עלול להתבלבל עם סוגי האותיות השונים המשמשים להגדרת הרשאת הקובץ. אז לפני שנמשיך עם הפקודה chmod, בואו נבין את תחביר ההרשאות לקובץ.
כדי להגדיר את ההרשאה של קובץ או ספריה, עלינו לציין את הדברים הבאים:
- מי: מי אנחנו. (מִשׁתַמֵשׁ)
- מה: איזה שינוי אנחנו הולכים לעשות (כגון הוספה או הסרה של ההרשאה)?
- איזה: איזו מההרשאות?
הצהרת ההרשאה מיוצגת באינדיקטורים כגון u+x, u-x. כאשר 'u' מייצג 'משתמש', '+' מייצג להוסיף, '-' מייצג להסיר, 'x' מייצג קובץ הפעלה (אשר).
מה גודל המסך שלי
ערך המשתמש יכול להיות:
u: הבעלים של הקובץ
g: חבר בקבוצה
o: אחרים
א: הכל
סוגי ההרשאות יכולים להיות r, w ו-x.
הגדרה ועדכון של הרשאות
כדי להגדיר את ההרשאה לקובץ, בצע הצהרת הרשאה עם הפקודה chmod. לדוגמה, אנו רוצים להגדיר את הרשאת הקריאה והכתיבה עבור כל המשתמשים וקבוצות הקבצים 'Demo.txt'. עלינו להעביר את הצהרת ההרשאה 'u=rw,go=rw Demo.txt' עם הפקודה chmod. כדי להציג את הרשאת הקובץ, בצע את הפקודה הבאה:
ls -l Demo.txt
הפקודה לעיל תציג את הרשאת הקובץ הנוכחית של הקובץ 'Demo.txt'.
כדי לשנות את ההרשאה, בצע את הפקודה הבאה:
chmod u=rw,go=rw Demo.txt
שקול את הפלט שלהלן:
מהפלט לעיל, הרשאת הגישה של 'Demo.txt' השתנתה.
הגדרת הרשאות עבור קבצים מרובים
אנו יכולים להגדיר הרשאה למספר קבצים בו-זמנית באמצעות הפקודה chmod. כדי לשנות את הרשאת הקובץ של מספר קבצים, ציין את תבנית הקובץ עם הפקודה chmod. לדוגמה, אם ברצוננו להגדיר הרשאת קריאה וכתיבה עבור כל קבצי הטקסט, ציין את ה-*. תבנית txt עם פקודת chmod.
כדי להציג את ההרשאה של כל קובץ הטקסט מספריית העבודה הנוכחית, בצע את הפקודה הבאה:
ls -l *.txt
זה יפרט את כל קבצי הטקסט עם מצב ההרשאה שלהם. שקול את הפלט שלהלן:
מהפלט לעיל, לקבצים רבים יש הרשאת קריאה רק עבור משתמשים אחרים.
מערך מחרוזות בשפת c
כדי להגדיר את הרשאת הקריאה והכתיבה עבור משתמשים אחרים, בצע את הפקודה הבאה:
chmod o+w *.txt
זה יקבע את הרשאת הקריאה והכתיבה עבור משתמשים אחרים של קבצי הטקסט. שקול את הפלט שלהלן:
קיצור מספרי
אנו יכולים להשתמש בערכים המספריים במקום באותיות כדי לציין את ההרשאות. ערך בן שלוש ספרות משמש לציון ההרשאה. הספרה השמאלית ביותר מייצגת את הבעלים (u), והספרה האמצעית מייצגת את חברי הקבוצה (g). הספרה הימנית ביותר מייצגת את האחרים (o).
הטבלה הבאה מייצגת את הספרות וההרשאות שלהן:
ספרות | הרשאות |
---|---|
000 | אין רשות |
001 | ביצוע הרשאה |
010 | אישור כתיבה |
011 | הרשאות כתיבה וביצוע |
100 | אישור קריאה |
101 | קריאה וביצוע הרשאות |
110 | הרשאות קריאה וכתיבה |
111 | קריאה, כתיבה וביצוע הרשאות |
מצבים סמליים
כמו כן, הפקודה chmod מקבלת את הסימון הסמלי העדין יותר, המאפשר לשנות מצבים ספציפיים. המצב הסמלי מורכב משלושה אלמנטים, אשר ממוזגים ליצירת מחרוזת טקסט אחת:
$ chmod [references] [operator] [modes] file...
תוכנית chmod מחילה אופרטור כדי להגדיר כיצד יש לסדר את מצבי הקובץ. המפעילים שלהלן מאושרים:
מַפעִיל | תיאור | |
---|---|---|
+ | זה מוסיף את המתואר לשיעורים המתוארים. | |
- | זה מסיר את המצב המתואר מהמחלקות המתוארות. | |
= | זה מייצג שהמצבים המתוארים אמורים להיווצר באותם מצבים עבור המחלקות המתוארות. |
המצבים מייצגים אילו הרשאות יוסרו או יוענקו מהשיעורים המתוארים. ישנם בעיקר שלושה מצבים נפוצים הקשורים להרשאות הנפוצות:
שֵׁם | מצב | תיאור |
---|---|---|
לקרוא | ר | זה קורא קובץ או מפרט את התוכן של ספרייה. |
לִכתוֹב | ב | זה כותב לספרייה או לקובץ. |
לבצע | איקס | זה חוזר על עץ ספריות או מבצע קובץ. |
ביצוע מיוחד | איקס | זה לא הרשאה אבל במקום זאת ניתן להשתמש במקום x. הוא משתמש בהרשאות ההפעלה עבור ספריות למרות ההרשאות הנוכחיות שלהן ומשתמש בהרשאות ההפעלה עבור קובץ שיש לו לפחות סיביות של הרשאות הפעלה. זה מועיל אם נעשה בו שימוש עם האופרטור '+' ובלי להגדיר את הרשאת הביצוע, מה שיקרה אם רק השתמשנו ב-chmod -R a+rx., בעוד שאנחנו יכולים ליישם את chmod -R a+rx. עם x דווקא. |
ניתן לתאר שינויים מרובים על ידי בידוד מצבים סמליים מרובים יחד עם פסיקים. הפקודה chmod תבדוק את umask אם לא צוין משתמש.
מצבים מיוחדים
כמו כן, הפקודה chmod יכולה לשנות את המצבים המיוחדים וההרשאות הנוספות של ספרייה או קובץ. המצבים הסמליים חלים על 's' כדי לציין את מצבי setgid ו-setuid ו-'t' כדי לציין את המצב הדביק. מצב משמש רק עבור המחלקות הנכונות, למרות אם מחלקות אחרות מוזכרות או לא.
כמעט כל מערכות ההפעלה תומכות מספרית במפרט המצב המיוחד, במיוחד באוקטלי, אבל כמה לא. ניתן להחיל רק את המצבים הסמליים על מערכות אלו.
כמה דוגמאות לשורת הפקודה:
פקודה | תיאור |
---|---|
chmod a+r publicComments.txt | זה יוסיף את הרשאת הקריאה לכל כיתה (כלומר, קבוצה, בעלים ואחרים). |
chmod a-x publicComments.txt | זה יסיר את הרשאת הביצוע עבור כל מחלקה. |
chmod a+rx viewer.sh | זה יוסיף את הרשאות הביצוע והקריאה לכל מחלקה. |
chmod u=rw, g=r, o=internalPlan.txt | זה יגדיר את הרשאות הכתיבה והקריאה עבור המשתמש, תגדיר את הרשאות הכתיבה והקריאה עבור הקבוצה ותדחה גישה עבור אחרים. |
chmod -R u+w, go-w docs | זה יכלול את הרשאת הכתיבה למסמכי הספרייה וכל אחד מהתוכן שלו עבור הבעלים וימחק את הרשאת הכתיבה עבור אחרים וקבוצה. |
chmod and=rw groupAgreements.txt | זה יגדיר את הרשאות הכתיבה והקריאה עבור הקבוצה והמשתמש. |
chmod 664 global.txt | זה יגדיר את הרשאות הכתיבה והקריאה עבור הקבוצה והמשתמש ויעניק את הרשאת הקריאה לאחרים. |
chmod 744 Show_myCV.sh | זה יגדיר את הרשאות ההפעלה, הכתיבה והקריאה עבור המשתמש ויעניק את הרשאת הקריאה לקבוצה ואחרים. |