Download presentation
Presentation is loading. Please wait.
1
מערכות הפעלה חומר נוסף לתרגולים – אדמיניסטרציה ושימוש מתקדם ב Linux
2
מערכות הפעלה - תרגול 152 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו תוכן התרגול שימוש מתקדם אדמיניסטרציה החומר להרצאה זו נלקח מ: הרצאות של מועדון ה Linux החיפאי http://haifux.org/lectures/84-sil/users-processes-files-and-permissions/users- perms-lec.html http://haifux.org/lectures/84-sil/users-processes-files-and-permissions/users- perms-lec.html The Linux Documentation Project http://tldp.org/LDP/sag/html/index.html
3
מערכות הפעלה - תרגול 153 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו Linux – כבר הכרנו ? מערכת הפעלה דמוית Unix תאימות גבוהה (אך לא רשמית) לתקן POSIX.1 מערכת הפעלה חופשית ניתנת להורדה בחינם מהאינטרנט קוד פתוח - מפותחת כשיתוף פעולה של אלפי מתכנתים מכל העולם התחילה כפרויקט של סטודנט ב-1990 Linus Torvalds – כיום מוביל את פיתוח הגרעין העתידי של Linux שמה המלא: GNU/Linux חלק ניכר מהתוכנה בכל distribution (גרסת הפצה) מעבר לגרעין הוא קוד פתוח של פרויקט GNU Linux מותאמת לסביבות חומרה רבות ושונות למעשה, כמעט לכל סוג מעבד שיש משעוני יד ועד לשרתים אירגוניים
4
מערכות הפעלה - תרגול 154 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו משתמשים Linux היא מערכת הפעלה מרובת משתמשים לכל משתמש יש User Id User ID ='0‘ נקרא משתמש root - האדמיניסטרטור שיכול לעשות כל דבר במחשב כל תהליך משויך ל user שהפעיל אותו כל קובץ משויך ל user שיצר אותו קובץ /etc/passwd מכיל את רשימת כל ה users במערכת: User Name Password סיסמאות יכולות להופיע בצורה מוצפנת גם בקובץ wshado/etc/ User ID (number) User's default Group ID (will be explained later) Home Directory Login Shell
5
מערכות הפעלה - תרגול 155 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו קבוצות משתמשים מוגדרות בקובץ /etc/group המכיל את רשימת כל ה groups במערכת: Group Name Password Group Id (number) List of Users לכל User יש default group, אך הוא יכול להשתייך לקבוצות נוספות אפשר לבדוק לאילו קבוצות User שייך ע"י הפקודה groups [username]
6
מערכות הפעלה - תרגול 156 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו קבצים לכל קובץ מוגדרות הרשאות גישה ההרשאות מתחלקות ל 3 קבוצות: user-owner, group-owner, others כל קבוצת הרשאות מתחלקת להרשאות קריאה,כתיבה, הרצה - rwx ספריה היא גם קובץ. עבור ספריה: קריאה פירושה לראות את רשימת הקבצים והתתי ספריות בספריה זו כתיבה פירושה יצירת קובץ או ספריה חדשה בספריה זו הרצה פירושה לגשת לקבצים בספריה כדי לקרוא קובץ tmp/X/ צריך הרשאת x על "/", הרשאת x על tmp/ והרשאת r על tmp/X/ בעל הקובץ – זה שיצר אותו, רשאי לשנות את ההרשאות ניתן לשנות הרשאות ע"י הפקודה chmod כ"א מ 9 ההרשאות נכתבות בפורמט של מספר אוקטלי – בין 0 ל 7 הרשאות ברירת מחדל הן בד"כ rw לכולם עבור קובץ, rwx לכולם עבור ספריה הפקודה umask קובעת אילו הרשאות ברירת מחדל לא לתת לקובץ חדש
7
מערכות הפעלה - תרגול 157 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו תהליכים פקודה ps מציגה את רשימת התהליכים הרצים ב shell הנוכחי (היא ניגשת ל /proc – פרטים בהמשך) ps –a, ps –u kill, kill -9 - משתמש יכול להרוג רק תהליכים שלו root יכול להרוג תהליכים של כולם הפקודה sbin/fuser/ - רשימת התהליכים שמחזיקים את הקובץ פתוח כרגע הפקודה usr/sbin/lsof/ - רשימת הקבצים הפתוחים כרגע ע"י תהליך נתון
8
מערכות הפעלה - תרגול 158 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו הרשאות מיוחדות – suid לכל קובץ קיים ביט הרשאה נוסף – set user-id bit כשהוא דלוק עבור קובץ הרצה אזי: כשמשתמש יריץ אותו – התהליך שירוץ יקבל את ההרשאות של בעל הקובץ ולא את ההרשאות של המשתמש שהריץ את הקובץ suid מאפשר לתת למשתמש גישה זמנית לקבצים שבד"כ אין לו גישה אליהם שימוש טיפוסי: התוכנית passwd, שמשנה סיסמא של המשתמש צריכה לגשת לקובץ /etc/passwd לכתיבה. למשתמש רגיל כמובן אסור לגשת לקובץ /etc/passwd קובץ של התוכנית passwd שייך לroot ול root מותר גם לגשת לקובץ /etc/passwd suid bit של התוכנית passwd דלוק כשמשתמש מריץ את התוכנית passwd – התהליך שמריץ את תוכנית מקבל באופן זמני את כל הרשאות הגישה של rootולכן יכול לגשת ל /etc/passwd
9
מערכות הפעלה - תרגול 159 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו מציאת קבצים משתנה סביבה PATH – רשימת הספריות בהן יש לחפשexecutables בעת הרצה הפקודה which - היכן בדיוק ממוקם executable שהספריה שלו מפורטת בpath אם קובץ ההרצה לא ב path או סתם כדי למצוא קובץ במערכת הקבצים: find – סורק את מערכת הקבצים (איטי אבל תמיד נכון) locate – מחפש במסד נתונים (מהיר אבל יכול לטעות) updatedb – מעדכן את מסד הנתונים (רץ ברקע כל פרק זמן מסוים)
10
מערכות הפעלה - תרגול 1510 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו System Monitoring - topמציגה את הסטטסיטיקות לגב ביצועי המערכת כמות התהליכים CPU usage תפוסת זכרון פיזי ו swap תהליכים שצורכים הכי הרבה זמן CPU iostat – מידע על ביצועי IO של הדיסק df -h – מידע על הדיסקים (כל ה mounted disks) du -h – גודל הספריות והקבצים (du -hs - סיכום) quota –v – גודל הדיסק המרבי המוקצה עבור המשתמש w – כל המשתשים שכרגע logged-in והפקודה שהם מריצים
11
מערכות הפעלה - תרגול 1511 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו תקשורת - פקודות שימושיות ifconfig – מידע על כל כרטיסי התקשורת במחשב (interfaces) כתובת IP, כתובת MAC (כתובת פיזית) בעזרת פקודה זו ניתן גם לקנפג את ה interface - למשל להגדיר כתובת IP חדשה hostname – שם המחשב netstat – מציג את מצב הinterfaces Open TCP connections
12
מערכות הפעלה - תרגול 1512 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו strace – System Call Tracer אילו קריאות מערכת מופעלות בעת ביצוע התוכנית הבאה? #include int main(void) { printf("Hello, world!"); return 0; } אילו קריאות מערכת מופעלות ע"י תוכנית X בהינתן קובץ הרצה של X בלבד? מהם הפרמטרים של הקריאות האלו? מהו ערך החזרה? האם הם הצליחו? מהו errno לאחר החזרה? מהי המחרוזת הסימבולית המתאימה ל- errno ?
13
מערכות הפעלה - תרגול 1513 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו strace (2) 1. execve("./a", ["./a"], [/* 36 vars */]) = 0 2. uname({sys="Linux", node="csd",...}) = 0 3. brk(0) = 0x501000 4. [...] 5. open("/lib64/tls/libc.so.6", O_RDONLY) = 3 6. read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\322"..., 640) = 640 7. fstat(3, {st_mode=S_IFREG|0755, st_size=1669728,...}) = 0 8. mmap(NULL, 2376040, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2a9568c000 9. mmap(0x2a958c7000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x13b000) = 0x2a958c7000 10. mmap(0x2a958cc000, 16744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0)=0x2a958cc000 11. close(3) = 0 12. write(1, "Hello, world!", 13Hello, world!) = 13 13. exit(0) = ?
14
מערכות הפעלה - תרגול 1514 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו strace (3) שורה 1 מופעלת ע"י strace עצמו והיא מפעילה את ה-loader של המערכת (בד"כ /lib/ld-linux.so.2) על מנת להריץ את הקובץ שורות 2-11 מבוצעות ע"י ה- loader 2 – בדיקת סוג המערכת (ארכיטקטורה, גרסת גרעין,...) 3 – קביעת גודל ה-heap הנוכחי 4 – חיפוש הספריה הסטנדרטית (libc) במדריכים שונים 5 – פתיחת הספריה עם fd = 3 6 – קריאת ה-header של הקובץ כדי לגלות היכן בקובץ נמצא הקוד, הנתונים וכו' 7 – מציאת גודל הקובץ 8-10 – מיפוי code, data and bss sections של הספריה למרחב הזכרון של התהליך שורות 11-13 מבוצעות ע"י התכנית עצמה 11 – סגירת הקובץ (אין בו יותר צורך כי כל החלקים הנדרשים מופו לזכרון) 12 – printf קורא ל-write על fd=1 (תזכורת: גם עם היה output redirection) 13 – סיום התהליך
15
מערכות הפעלה - תרגול 1515 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו /proc virtual filesystem מורכבת (mounted) בזמן עלית המערכת בספריה/proc אינה מחוברת לאף התקן פיזי קיימת אך ורק בזיכרון קריאה מקובץ גורמת להפעלת פונקציה בגרעין אשר מספקת on-the-fly את תוכן הקובץ כתיבה לקובץ מאפשרת לשנות פרמטרים מסויימים של הגרעין לכן, לרוב רק ל- root יש הרשאת כתיבה
16
מערכות הפעלה - תרגול 1516 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו /proc (2) 2 חלקים עיקריים: ספריה לכל תהליך במערכת שם הספריה הוא ה-PID של התהליך /proc/self הוא קישור סימבולי לספריה של התהליך הנוכחי תוכן הספריה : cmdline – שורת הפקודה איתה הופעל התהליך (קובץ הרצה + ארגומנטים) cwd – קישור סימבולי לספרית העבודה הנוכחית של התהליך environ – משתני סביבה של התהליך (environment variables) exe - קישור סימבולי לקובץ ההרצה של התהליך fd – ספריה המכילה קישורים סימבוליים לקבצים הפתוחים של התהליך maps – כתובות והרשאות של מיפויים של קבצים לתוך מרחב הזיכרון של התהליך stat, statm, status – קבצי סטטוס וסטטיסטיקה לגבי התהליך
17
מערכות הפעלה - תרגול 1517 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו /proc (3) פרט לספריות הקשורות לתהליכים, /proc מכילה קבצים שונים cmdline – הפרמטרים של הגרעין בעת העליה בין היתר מכיל את שם ההתקן שבו נמצא ה-root filesystem cpuinfo – מכיל אינפורמציה על כל מעבד במערכת יצרן, תדירות, גודל מטמון,... filesystems – מכיל את כל סוגי מערכות הקבצים הנתמכות ע"י הגרעין ext2, ext3, vfat, tmpfs, proc, nfs, ntfs, iso9660, udf,... interrupts – מכיל את רשימת ה-IRQs במערכת ואת כמות הפסיקות שטופלו ע"י כל מעבד מכל סוג loadavg – 3 מספרים המודדים את עומס המערכת בדקה, 5 דקות ו-15 דקות האחרונות meminfo – מכיל אינפורמציה לגבי הזיכרון הפיזי וה-swap (סה"כ במערכת, זיכרון פנוי,...)
18
מערכות הפעלה - תרגול 1518 (c) 2006 לאוניד רסקין, גבי קליאוט, אלכס לנדאו /proc (4) קבצים נוספים modules – דרייברים שנטענו אל הגרעין mounts – רשימת מערכות הקבצים שהורכבו uptime – זמן מעליית המערכת version – גרסת הגרעין
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.