הגדרה של פקודת umask מותאמת אישית ב-macOS

לכל קובץ ותיקיה ב-Mac יש מערכת הרשאות. בעת יצירת קובץ או תיקיה חדשים, הפקודה umask קובעת הרשאות אלה.

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

מידע על הרשאות ופקודות umask

הרשאות. לכל קובץ, תיקיה ויישום המאוחסנים ב-Mac יש הגדרות הרשאה, שקובעות לאילו חשבונות משתמשים תהיה אפשרות לקרוא, לכתוב או להפעיל את הקובץ, התיקיה או היישום. הרשאות אלה כוללות הרשאות POSIX ורשימות בקרת גישה (ACL). כדי לשנות את רמת הרשאות ה-POSIX של משתמש, אפשר להתאים את ערך פקודת ה-umask שלהן.

פקודות umask. מספר בן שלוש ספרות יכול לייצג את הרשאות ה-POSIX לקובץ. כאשר תתבוננו בהרשאות ב-Terminal, יכול להיות שתראו הרשאות המיוצגות באופן זה. כל ספרה יכולה להיות בין 0 ל-7. בעת יצירת קובץ, ערך ה-umask מופחת מערך ברירת מחדל מסוים (בדרך כלל 666 לקבצים ו-777 לתיקיות) כדי לקבוע את ההרשאות לקובץ החדש או לתיקיה החדשה. לדוגמה, umask עם ערך ברירת מחדל של 022 מגדיר הרשאות של 644 לקבצים חדשים ו-755 לתיקיות חדשות.

אפשר להגדיר את ה-umask במספר מיקומים, וכל מיקום משפיע על יישומים שונים. הגדרה שגויה של umask עלולה לגרום לאובדן גישה לקבצים או להענקת גישה למשתמשים אחרים. למידע נוסף, עיינו בסעיף MODES בדף ההדרכה chmod(1)‎.

Umask ליישומים של משתמשים

התחברו כמנהל מערכת, הזינו את הפקודה הבאה ב-Terminal, והחליפו את nnn בערך ה-umask, למשל: 027 או 002. פקודה זו מגדירה את ה-umask של המשתמש עבור כל יישום שהוא פותח, כולל יישומים שאליהם הוא ניגש משורת הפקודה וקבצים חדשים שיישומים אלה יוצרים. לאחר הזנת פקודה זו, ייתכן שיהיה צורך להפעיל מחדש את ה-Mac.

sudo launchctl config user umask nnn

אם ב-Terminal מופיעה התגובה "Could not write configuration: No such file or directory" (לא ניתן לכתוב את התצורה: אין קובץ או תיקיה כאלה), יש לוודא שדיסק ההפעלה כולל תיקיה בכתובת ‎/private/var/db/com.apple.xpc.launchd/config. אם תיקיית התצורה חסרה, יש לנסות שוב לאחר הזנת הפקודה הבאה כדי ליצור אותה:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Umask לתהליכי מערכת

התחברו כמנהל מערכת, הזינו את הפקודה הבאה ב-Terminal, והחליפו את nnn בערך ה-umask, למשל: 027 או 002. פקודה זו מגדירה את ה-umask של המשתמש עבור כל daemon שהוא מפעיל בהקשר של המערכת. כדאי מאד להימנע מפעולה זו, שכן היא יכולה לשנות את ההרשאות לקבצים שבהם משתמשת המערכת. הרשאות מגבילות מדי עלולות למנוע מתוכנה לפעול, והרשאות שאינן מגבילות מספיק עלולות ליצור בעיות אבטחה. לאחר הזנת פקודה זו, ייתכן שיהיה צורך להפעיל מחדש את ה-Mac.

sudo launchctl config system umask nnn

אם ב-Terminal מופיעה התגובה "Could not write configuration: No such file or directory" (לא ניתן לכתוב את התצורה: אין קובץ או תיקיה כאלה), יש לוודא שדיסק ההפעלה כולל תיקיה בכתובת ‎/private/var/db/com.apple.xpc.launchd/config. אם תיקיית התצורה חסרה, יש לנסות שוב לאחר הזנת הפקודה הבאה כדי ליצור אותה:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

מידע נוסף

לקבלת מידע נוסף על אופן ההגדרה של umask, יש להזין man launchctl ב-Terminal.

Published Date: