logo

פקודת Chmod בלינוקס/יוניקס עם דוגמאות

פקודת 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 

האפשרויות המיושמות בדרך כלל הן:

    -R:זה מייצג רקורסיבי, כלומר, הוסף אובייקטים לתיקיות משנה.-IN:זה מייצג מילולית, הצגת אובייקטים ששונו (אובייקטים ללא שינוי אינם מוצגים).

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

המרכיב העיקרי של הרשאת chmod:

לדוגמה, rwxr-x---

כל הקבוצות של שלושה תווים מציינות הרשאות לכל השיעורים:

    rwx:שלושת התווים השמאליים ביותר מציינים הרשאות לבעל הקובץ (כלומר, מחלקת המשתמש).r-x:שלושת התווים האמצעיים מציינים הרשאות לקבוצה שבבעלותה הקובץ (כלומר, מחלקת הקבוצה).---:שלושת התווים הימניים ביותר מציינים הרשאות עבור המחלקה Other. משתמשים שאינם בעלי הקובץ וחברי הקבוצה אינם יכולים לגשת לקובץ.

אפשרויות:

הפקודה 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 

שקול את הפלט שלהלן:

Linux chmod Command

מהפלט לעיל, הרשאת הגישה של 'Demo.txt' השתנתה.

הגדרת הרשאות עבור קבצים מרובים

אנו יכולים להגדיר הרשאה למספר קבצים בו-זמנית באמצעות הפקודה chmod. כדי לשנות את הרשאת הקובץ של מספר קבצים, ציין את תבנית הקובץ עם הפקודה chmod. לדוגמה, אם ברצוננו להגדיר הרשאת קריאה וכתיבה עבור כל קבצי הטקסט, ציין את ה-*. תבנית txt עם פקודת chmod.

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

 ls -l *.txt 

זה יפרט את כל קבצי הטקסט עם מצב ההרשאה שלהם. שקול את הפלט שלהלן:

Linux chmod Command

מהפלט לעיל, לקבצים רבים יש הרשאת קריאה רק עבור משתמשים אחרים.

מערך מחרוזות בשפת c

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

 chmod o+w *.txt 

זה יקבע את הרשאת הקריאה והכתיבה עבור משתמשים אחרים של קבצי הטקסט. שקול את הפלט שלהלן:

Linux chmod Command

קיצור מספרי

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