הרשאת חיפוש בכל תיקייה לפני המפתח
מפתח יכול להיות 0600 ובכל זאת לסרב להיפתח כאשר תיקיית אב חוסמת את המעבר. עברו את כל הנתיב כחשבון השירות לפני שינוי מצב כלשהו.
מצב 0600 והבעלים הנכון אינם מבטיחים שהשירות יכול לפתוח מפתח. ההרשאה החסרה נמצאת בדרך כלל בתיקייה שמעליו. לינוקס פותר נתיב רכיב אחד בכל פעם, וכל שלב זקוק להרשאת חיפוש לפני ניסיון השלב הבא. קראו את כל הנתיב, לא את השורה האחרונה ברשימה.
הרשאת קריאה היא השלב האחרון, לא היחיד
פתיחת קובץ דורשת שהליבה תעבור מהשורש או מתיקיית העבודה בכל רכיב של הנתיב. תיקייה בלי הרשאת חיפוש עוצרת את המעבר הזה בשגיאת הרשאה. המצב של הקובץ עצמו לא נבדק לעולם, ולכן מפתח קריא לחלוטין נראה בלתי קריא. השגיאה מגיעה לעתים קרובות בזמן הפתיחה בלי לציין את התיקייה, ולכן מאשימים את הקובץ האחרון.
בתיקייה, סיבית ההרצה פירושה חיפוש, לא הרצת התוכן. מפתח נשאר נתונים, ואין חלק בתיקון הזה שדורש לסמן אותו כהרצה.
עברו את הנתיב כחשבון השירות
רשמו כל רכיב עם הבעלים והמצב שלו, ואז חזרו על הקריאה כזהות השירות בפועל. ההבדל בין המעטפת שלכם לדמון הוא לעתים קרובות כל התשובה. עקבו אחרי קישורים סמליים אל היעד האמיתי, כי הנתיב שנפתר הוא מה שנבדק.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
שירות יכול גם לפתוח קבצים ביותר משלב אחד. חלק מהחומר נקרא במהלך התקנה מורשית, בעוד קבצים אחרים נפתחים אחרי השלכת ההרשאות. מעטפת root שקוראת את הקובץ אינה משחזרת את הגישה של העובד המאוחר. מרחב שמות של עיגון יכול להציג מבט אחר של אותו נתיב, במיוחד בתוך מכולה, ולכן השוו את מבט מערכת הקבצים של הדמון לשלכם.
שנו את ההרשאה הצרה שמתאימה
בחרו את הסידור הקטן ביותר שנותן לתהליך גישה: קבוצה מבוקרת עם חיפוש בתיקיות הנדרשות, מיקום מנוהל שהשירות כבר מחזיק בו, או מנגנון אחר מתועד. קריאת קובץ אינה דורשת הרשאת כתיבה בתיקייה שלו. הרשאת כתיבה רחבה של קבוצה על תצורה מורשית אינה תיקון מעבר רגיל. גם 0777 רקורסיבי אינו פתרון.
תעדו איזה רכיב שיניתם ולמה. שינוי הרשאה בלי סיבה מתועדת קשה לבדיקה וקל לשכוח.
הביטו מעבר למצבים רק אחרי המעבר
אם סיביות המצב נראות מספיקות, הבדיקות הנותרות הן ACL, מדיניות אבטחה והגבלות sandbox. ACL יכול להעניק גישה שסיביות המצב מרמזות על היעדרה, או לשלול גישה שהן נראות מתירות. ההגדרות האלה שייכות לבעל התצורה הקיים, ויש לכוונן אותן בצורה צרה במקום לכבות אותן. הבדל בשורש או בתיקיית עבודה יכול גם להסביר נתיב מוחלט שעובד בהקשר אחד ונכשל באחר.
אל תאבדו את התמונה של מהו הקובץ בזמן שתיקון הגישה. תעודת CA היא ציבורית מלכתחילה; מפתח פרטי אינו. קבצים שהלקוח כותב מחדש זקוקים גם להרשאות כתיבה שונות ממפתח זהות שהוא לקריאה בלבד. בדקו מטא-נתונים בלי להדפיס סודות, ואז אשרו שהשירות עצמו עובד אחרי השינוי. הערה קצרה בתיעוד השירות חוסכת לאדם הבא את אותו מעבר.