אנדרואיד

פקודת Chmod בלינוקס (הרשאות קבצים)

Linux команда chmod - команда изменения прав доступа.

Linux команда chmod - команда изменения прав доступа.

תוכן עניינים:

Anonim

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

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

הרשאות קובץ לינוקס

לפני שנלך הלאה, נסביר את מודל ההרשאות הלינוקס הבסיסי.

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

  • בעל הקובץ. חברי הקבוצה. אחר (כולם).

ניתן לשנות את הבעלות על קבצים באמצעות פקודות chgrp וה- chgrp .

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

  • הרשאת הקריאה. הרשאת הכתיבה. ההרשאה לביצוע.

מושג זה מאפשר לך לציין אילו משתמשים רשאים לקרוא את הקובץ, לכתוב לקובץ או לבצע את הקובץ.

ניתן להציג הרשאות קבצים באמצעות הפקודה ls :

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

התו הראשון מציג את סוג הקובץ. זה יכול להיות קובץ רגיל ( - ), ספריה ( d ), קישור סמלי ( l ) או כל סוג אחר של קובץ מיוחד.

תשע התווים הבאים מייצגים את הרשאות הקובץ, שלוש שלשות של שלוש תווים כל אחת. השלישייה הראשונה מציגה את הרשאות הבעלים, ההרשאות לקבוצה השנייה והשלישייה האחרונה מציגה הרשאות לכולם. להרשאות יכולות להיות משמעות שונה בהתאם לסוג הקובץ.

בדוגמה שלמעלה ( rw-r--r-- ) פירושו rw-r--r-- הקובץ הרשאות קריאה וכתיבה ( rw- ), לקבוצה ואחרים יש הרשאות קריאה בלבד ( r-- ).

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

השפעת הרשאות על קבצים

הרשאה דמות הכוונה בתיק
לקרוא - לא ניתן לקרוא את הקובץ. אינך יכול להציג את תוכן הקובץ.
r ניתן לקרוא את הקובץ.
כתוב - לא ניתן לשנות או לשנות את הקובץ.
w ניתן לשנות או לשנות את הקובץ.
לבצע - לא ניתן לבצע את הקובץ.
x ניתן לבצע את הקובץ.
s אם הוא נמצא בטריפלייט של user הוא מגדיר את הסיבית. אם נמצא בשלישיה group , הוא מגדיר את setgid ה- setgid . זה גם אומר שמוגדר דגל x .

כאשר דגלי setuid או setgid מוגדרים על קובץ הפעלה, הקובץ מבוצע עם הרשאות הבעלים ו / או הקבוצה.

S זהה ל- s אך דגל ה- x אינו מוגדר. לעתים רחוקות משתמשים בדגל זה בקבצים.
t אם נמצא בשלישייה האחרת, זה מגדיר את החלק sticky .

זה גם אומר שמוגדר דגל x . דגל זה חסר תועלת בקבצים.

T זהה ל- t אך דגל ה- x אינו מוגדר. דגל זה חסר תועלת בקבצים.

השפעת הרשאות על ספריות (תיקיות)

ב- Linux ספריות הן סוגים מיוחדים של קבצים המכילים קבצים וספריות אחרים.

הרשאה דמות משמעות במדריך
לקרוא - לא ניתן להציג את תוכן הספריה.
r ניתן להציג את תוכן הספרייה.

(למשל, אתה יכול לרשום קבצים בתוך הספרייה באמצעות ls .)

כתוב - לא ניתן לשנות את תוכן הספרייה.
w ניתן לשנות את תוכן הספרייה.

(למשל אינך יכול ליצור קבצים חדשים, למחוק קבצים.. וכו ')

לבצע - לא ניתן לשנות את הספרייה ל.
x ניתן לנווט בספריה באמצעות cd .
s אם הוא נמצא בטריפלייט של user , הוא מגדיר את סיבית ה- setuid . אם נמצא בשלישייה group זה מגדיר את setgid להגדיר. זה גם אומר שמוגדר דגל x . כאשר דגל setgid מוגדר בספרייה, הקבצים החדשים שנוצרו בתוכו יורשים את מזהה קבוצת הספריות (GID), במקום מזהה הקבוצה הראשי של המשתמש שיצר את הקובץ.

setuid אין השפעה על ספריות.

S זהה ל- s אך דגל ה- x אינו מוגדר. דגל זה חסר תועלת בספריות.
t אם נמצא בשלישייה האחרת, זה מגדיר את החלק sticky .

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

T זהה ל- t אך דגל ה- x אינו מוגדר. דגל זה חסר תועלת בספריות.

באמצעות chmod

הפקודה chmod לובשת את הצורה הכללית הבאה:

chmod MODE FILE…

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

רק השורש, בעל הקובץ או המשתמש עם הרשאות הסוד יכולים לשנות את הרשאות הקובץ. היזהר במיוחד בעת השימוש ב- chmod , במיוחד כשאתה משנה את ההרשאות רקורסיבית.

שיטה סמלית (טקסט)

לתחביר של הפקודה chmod בעת שימוש במצב הסמלי יש את הפורמט הבא:

chmod perms… FILE…

קבוצת הדגלים הראשונה ( ), דגלים של משתמשים, מגדיר אילו משתמשים מחלקים את ההרשאות לקובץ משתנים.

  • u - בעל הקובץ. g - המשתמשים החברים בקבוצה. o - כל המשתמשים האחרים. a - כל המשתמשים, זהים ugo .

אם דגל המשתמשים אינו מושמט, ברירת המחדל היא אחת וההרשאות שהוגדרו על ידי umask לא מושפעות.

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

  • - מסיר את ההרשאות שצוינו. + מוסיף הרשאות שצוינו. = משנה את ההרשאות הנוכחיות להרשאות שצוינו. אם לא מוגדרות הרשאות לאחר הסמל = , כל ההרשאות משיעור המשתמשים שצוינו יוסרו.

ניתן להגדיר את ההרשאות (הרשאות perms… ) במפורש באמצעות אפס או אחת או יותר מהאותיות הבאות: r , w , x , X , s ו- t . השתמש באות בודדת בערכת u , g ו- o בעת העתקת הרשאות מכיתת משתמשים אחרת.

בעת הגדרת הרשאות ליותר מכיתות משתמש אחת ( ), השתמש בפסיקים (ללא רווחים) כדי להפריד בין המצבים הסמליים.

להלן כמה דוגמאות כיצד להשתמש בפקודה chmod במצב סמלי:

  • תן לחברי הקבוצה אישור לקרוא את הקובץ, אך לא לכתוב אותו ולבצע אותו:

    chmod g=r filename

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

    chmod ax filename

    מסיר באופן דוחה את הרשאת הכתיבה למשתמשים אחרים:

    chmod -R ow dirname

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

    chmod og-rwx filename

    ניתן להשיג את אותו הדבר גם באמצעות הטופס הבא:

    chmod og= filename

    תן קריאה, כתיבה וביצוע הרשאה לבעלי הקובץ, הרשאות קריאה לקבוצת הקובץ וללא הרשאות לכל המשתמשים האחרים:

    chmod u=rwx, g=r, o= filename

    הוסף את הרשאות הבעלים של הקובץ להרשאות שיש לחברי קבוצת הקבצים:

    chmod g+u filename

    הוסף קצת דביק לספרייה נתונה:

    chmod o+t dirname

שיטה נומרית

לתחביר של הפקודה chmod בעת שימוש בשיטה מספרית יש את הפורמט הבא:

chmod NUMBER FILE…

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

המספר יכול להיות מספר 3 או 4 ספרות.

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

לכל הרשאות כתיבה, קריאה וביצוע יש ערך המספר הבא:

  • r (לקרוא) = 4 w (לכתוב) = 2 x (לבצע) = הרשאות 1 = 0

מספר ההרשאות של קבוצת משתמשים ספציפית מיוצג על ידי סכום הערכים של ההרשאות עבור אותה קבוצה.

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

  • בעלים: rwx = 4 + 2 + 1 = 7 קבוצה: rx = 4 + 0 + 1 = 5 אחר: rx = 4 + 0 + 0 = 4

בשיטה שלמעלה אנו מגיעים למספר 754 המייצג את ההרשאות הרצויות.

כדי להגדיר את דגלי sticky bit , setgid sticky bit השתמשו בארבע ספרות.

כאשר משתמשים במספר הספרות, לספרה הראשונה המשמעות הבאה:

  • setuid = 4setgid = 2sticky = 1 אין שינויים = 0

לשלוש הספרות הבאות יש את אותה המשמעות כמו בעת שימוש במספר שלוש ספרות.

אם הספרה הראשונה היא 0 ניתן להשמיט אותה, ואת המצב ניתן לייצג עם 3 ספרות. המצב המספרי 0755 זהה ל- 755 .

כדי לחשב את המצב המספרי תוכלו להשתמש גם בשיטה אחרת (שיטה בינארית), אך היא מעט יותר מסובכת. לדעת כיצד לחשב את המצב המספרי באמצעות 4, 2 ו- 1 זה מספיק עבור מרבית המשתמשים.

ניתן לבדוק את הרשאות הקובץ ברישום המספרי באמצעות הפקודה stat :

stat -c "%a" filename

644

הנה כמה דוגמאות לשימוש בפקודה chmod במצב מספרי:

  • תן לבעלי הקובץ הרשאות קריאה וכתיבה ורשאות קריאה בלבד לחברי הקבוצה ולכל המשתמשים האחרים:

    chmod 644 dirname

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

    chmod 750 dirname

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

    chmod 1777 dirname

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

    chmod -R 700 dirname

באמצעות קובץ עזר

האפשרות --reference=ref_file מאפשרת לך להגדיר את הרשאות הקובץ להיות זהות לאלה של קובץ הייחוס שצוין ( ref_file ).

chmod --reference=REF_FILE FILE

לדוגמה, הפקודה הבאה תקצה את הרשאות הקובץ 1 file1

chmod --reference=file1 file2

שנה רקורסיבית את הרשאות הקובץ

להפעלה רקורסיבית של כל הקבצים והספריות תחת הספרייה הנתונה, השתמש באפשרות -R (- --recursive ):

chmod -R MODE DIRECTORY

לדוגמה, כדי לשנות את ההרשאות של כל הקבצים ותיקיות המשנה תחת ספריית /var/www ל 755 היית משתמש:

chmod -R 755 /var/www

הפעלה על קישורים סמלים

לקישורים סמלים תמיד יש 777 הרשאות.

כברירת מחדל, בעת שינוי ההרשאות של symlink, chmod תשנה את ההרשאות בקובץ אליו מצביע הקישור.

chmod 755 symlink

רוב הסיכויים שבמקום לשנות את בעלות היעד, תקבל שגיאת "לא יכול לגשת ל'סימלינק ': הרשאה נדחתה".

השגיאה מתרחשת מכיוון שברירת מחדל ברוב ההפצות לינוקס מוגנות על קישורים, ואינך יכול לפעול על קבצי יעד. אפשרות זו מוגדרת ב- /proc/sys/fs/protected_symlinks . 1 פירושו מופעל ו 0 מושבת. מומלץ לא להשבית את ההגנה על symlink.

שינוי הרשאות קבצים בכמות גדולה

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

התרחיש הנפוץ ביותר הוא לשנות באופן רקורסיבי את הרשאות קובץ האתר ל- 644 ואת הרשאות הספריה ל 755 .

בשיטה המספרית:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

בשיטה הסמלית:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

פקודת החיפוש תחפש קבצים וספריות תחת /var/www/my_website ותעביר כל קובץ /var/www/my_website שנמצאו לפקודה chmod כדי להגדיר את ההרשאות.

סיכום

הפקודה chmod משנה את הרשאות הקובץ. ניתן להגדיר את ההרשאות במצב הסמלי או המספרי.

למידע נוסף על chmod בקר בדף chmod man.

מסוף chmod