במערכות רבות, למשתמש בסיס או למשתמש על יש שליטה מלאה במערכת. 'מערכת משנה עבור יישומים מבוססי UNIX' ‏(SUA) אינה מזהה משתמשי בסיס. כאשר פותח התקן Portable Operating System Interface (POSIX)‎, המושג של משתמש בסיס נחשב לנושא ניהולי. במקום משתמש בסיס, התקן POSIX מגדיר הרשאות מתאימות עבור פעולות מסוימות.

בנושא זה

Setuid ו- Setgid

המנגנונים setuid ו- setgid מאפשרים לתוכנית, בעת ההפעלה, לאמץ היבטים מסוימים של מנהל אבטחה השונים מאלה של המשתמש המפעיל את התוכנית. הם מאפשרים לתוכנית להשתמש לסירוגין בהיבטים של המשתמש שהפעיל את התוכנית ובהיבטים של מנהל אבטחה אחר.

השימוש בהרשאות מתאימות אינו קשור למצב זה. בעוד שהמנגנונים setuid ו- setgid מאפשרים ליישום לשלוט בתשובה לשאלה: "מי אתה?", הרשאות מתאימות עונות על השאלה: "מה תוכל לעשות?"

'מערכת משנה עבור יישומים מבוססי UNIX' וזהויות

בסביבות UNIX רגילות, יש משתמש אחד בדיוק שלו ניתנות כל ההרשאות. למשתמש זה, אשר נקרא בדרך כלל root, יש uid == 0. ב'מערכת משנה עבור יישומים מבוססי UNIX', כל ההרשאות שבהן תומכת מערכת נתונה ניתנות למשתמשים שהם חברים בקבוצה Administrators או בקבוצה Domain Administrators במערכת זו. אין צורך להיכנס כמנהל מערכת. כל משתמש החבר בקבוצה Administrators או לחלופין בקבוצה Domain Administrators הוא בעל הרשאות root. לא כל ההרשאות המוגדרות ב- POSIX או ב- UNIX זמינות ב- SUA; כלומר, ישנן הרשאות מסוימות שאינן ניתנות לאף משתמש.

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

בהתאם לתקן של POSIX, לקובץ יש הרשאות הכוללות סיביות להגדרת UID ‏(setuid) ולהגדרת GID ‏ (setgid). אם אחת מהסיביות או שתיהן מוגדרות בקובץ, ותהליך מפעיל קובץ זה, התהליך מקבל את ה- UID או ה- GID של הקובץ. כאשר משתמשים בו בזהירות, מנגנון זה מאפשר למשתמש לא מורשה להפעיל תוכניות הפועלות באמצעות ההרשאות הגבוהות יותר של בעל הקובץ או הקבוצה של הקובץ. עם זאת, כאשר נעשה במנגנון שימוש שגוי, פעולה זו יכולה ליצור סיכוני אבטחה על-ידי מתן הרשאה למשתמשים לא מורשים לבצע פעולות שרק מנהל מערכת אמור לבצע אותן. מסיבה זו, SUA אינו תומך במנגנון זה כברירת מחדל. במקום זאת, אם תנסה להפעיל קובץ באמצעות ערכת הסיביות setuid או לחלופין setgid, SUA לא יפעיל את הקובץ ויחזיר את קוד השגיאה ENOSETUID.

שיקולי התקנה עבור Setuid ב'מערכת משנה עבור יישומים מבוססי UNIX'

במידה ואתה מסתמך על יישום הדורש אופן פעולה רגיל של POSIX, באפשרותך לקבוע את תצורת SUA להפעלת קבצים באמצעות ערכת הסיביות setuid או setgid. אם תצורתו של SUA נקבעה בדרך זו, כאשר תהליך יפעיל קובץ בעל ערכת סיביות setuid או setgid, SUA יבנה אסימוני אבטחה מקומיים עבור התהליך עם ההרשאות שהוקצו לבעלים או לקבוצה של הקובץ. מאחר שאסימונים הם מקומיים, מחשבים אחרים ברשת לא יזהו אותם. פירוש הדבר הוא, שגם אם הבעלים של הקובץ הוא חבר בקבוצה Domain Administrators, לדוגמה, לתהליך אין גישה מהימנה באמצעות הרשת של Microsoft® Windows®‎ למחשבים אחרים בתחום. במקום זאת, ההרשאות יהיו תקפות רק במחשב שבו התהליך פועל.

לדוגמה, תהליך מפעיל קובץ תוכנית עם ערכת הסיביות setuid שלו והבעלים שלו הוא חבר בקבוצה Domain Administrators. אם תוכנית זו תנסה לשנות סיסמה של משתמש תחום, ניסיון זה ייכשל מאחר שאסימוני האבטחה של התהליך הם מקומיים ומערכות אחרות בתחום לא יזהו אותם. מצד שני, אם התוכנית תנסה לשנות את הסיסמה של משתמש מקומי, הניסיון יצליח מכיוון שהבעלים של הקובץ הוא חבר בקבוצה Domain Administrators, שבדרך כלל שייכת לקבוצה Administrators של המחשב המקומי. לקבלת מידע אודות אופן קביעת התצורה של SUA להפעלת קבצים באמצעות ערכת הסיביות setuid או setgid, עיין בקבצי העזרה הכלולים בחבילת ההורדה Utilities and Software Development Kit (SDK) for UNIX-based Applications.

עבור הפונקציות setuid(2)‎,‏ setgid(2)‎ ו- chroot(2)‎,‏ תהליך חייב לכלול את ה- UID התקף, אשר ממפה בחזרה לחשבון המערכת, לחשבון מנהל המערכת עבור התחום המקומי או לחשבון מנהל המערכת עבור התחום הראשי. חשבון מנהל המערכת המקומי יכול לשנות רק את ה- UID או ה- GID למזהה אחר באותו תחום.

עבור chown(1)‎,‏ chmod(1)‎ ו- chgrp(1)‎,‏ לחשבון חייבות להיות הרשאות Windows ‏‏‎‎ ‎SE_BACKUP ו-SE_RESTORE‏ כדי לבצע פעולות make על קבצים שנמצאים בבעלות של משתמש או קבוצה אחרים, או כדי לשנות הרשאות בקובץ שנמצא בבעלותו של משתמש אחר.‏ הרשאות אלה שייכות בדרך כלל לחשבונות של מנהל המערכת ומפעיל הגיבוי.

למידע נוסף