שיעור 2: הרשאות קבצים ומודל האבטחה של Linux
כל קובץ ב-Linux מוגן על ידי מערכת הרשאות שמגדירה מי יכול לקרוא, לכתוב ולהפעיל אותו. ב-NVIDIA, הבנת הרשאות היא קריטית — אפליקציית CUDA תיכשל בשקט אם המשתמש אינו חבר בקבוצת video שמאפשרת גישה ל-/dev/nvidia0. שיעור זה נותן לך את כל הכלים לנהל הרשאות ביום הראשון.
הרשאות Linux הן כמו מפתחות לחדרים בבניין: לכל חדר (קובץ) יש שלושה מנעולים — אחד לבעלים, אחד לקבוצה, ואחד לכולם. chmod הוא מי שמחליט איזה מפתח לתת למי.
- ביטי הרשאה
- שלושה ביטים (r, w, x) לכל אחד משלושת הגורמים: בעלים, קבוצה, אחרים. יחד הם מגדירים מי יכול לעשות מה עם קובץ.
- UID (מזהה משתמש)
- מספר שלם ייחודי שהקרנל משתמש בו לזהות משתמש. root הוא תמיד UID 0. כל תהליך רץ עם ה-UID של המשתמש שהפעיל אותו.
- GID (מזהה קבוצה)
- מספר שלם שמייצג קבוצת משתמשים. משתמש יכול להיות חבר במספר קבוצות. הקבוצה video מאפשרת גישה ל-/dev/nvidia*.
- ביט setuid
- ביט מיוחד שגורם לתהליך לרוץ עם ה-UID של בעל הקובץ ולא של המשתמש שהפעיל אותו. sudo משתמש בזה כדי לתת הרשאות root זמנית.
- קובץ התקן
- קובץ ב-/dev שמייצג מכשיר חומרה. /dev/nvidia0 הוא קובץ ה-device node של ה-GPU הראשון. ניתן לקרוא ולכתוב אליו כמו קובץ רגיל, אבל הפעולות מועברות לדרייבר.