
/etc/shadow בצורה מערבלת (hash). אין הרשאה לאף משתמש על הקובץ, ובכל זאת רוט יכול לקרוא ולכתוב אותו.passwd לקובץ בשם passwd2 בלי ביט Set UID. הפקודה נכשלת עם השגיאה Authentication token manipulation error.chmod, ואז הפקודה עובדת. הביט נראה כאות s בהרשאות שמופיעות ב-ls -l.ps -aux רואים שהתהליך רץ בשם רוט, גם כשדוד הוא זה שהפעיל אותו.ls -l.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «הרשאות מיוחדות - SetUID» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, ברוכים הבאים על הרצאה על הרשאות מיוחדות שיש בלינוקס הסטנדרטי שנקראת Set UID. מה זה Set UID?
ה-Set UID מאפשר לתת Run As יוזר אחר, כמו שבווינדוס יש Run As יוזר אחר, אתם מכירים את זה שאתם לוחצים על משהו Run As ואז מריצים איזשהו קובץ תחת שם אחר, בואו אני אראה לכם דוגמה.
ניקח לדוגמה Run בווינדוס הרגיל, windows system 32 ניכנס ל-run הרגיל שלי ונראה פה ב-cmd שיש לי cmd.exe ואני יכול לבוא ל-cmd.exe ולעשות shift right click run as different user להריץ את התהליך כיוזר רגיל אחר אבל פה יבקש שם וסיסמה בלינוקס הוא יכול אפילו לא לבקש שם וסיסמה ולא רק זה אפשר גם בווינדוס
לעשות שהוא לא יבקש שם וסיסמה אוקיי שזה נקרא להעריץ תחת פרופיל של מישהו אחר. Run as different user, זה הרעיון המקורי שלהם. בואו נראה למה צריך את זה.
הדוגמה הקלאסית לזה למה צריך את הדבר הזה, כדי להחליף סיסמה. כשאנחנו מריצים פקודה להחליף סיסמה pathwd וכותבים איזשהו user נניח, אנחנו מחליפים סיסמה, נכון? זה נקרא פקודה להחליף סיסמה.
אז איך הפקודה הזאת עובדת? איפה הסיסמאות נמצאות? איפה הן נמצאות? הסיסמאות נמצאות לדוגמה, בואו אני אראה לכם דוגמה, פס WD ואנחנו רוצים להחליף סיסמה לדייוויד.
New Password. רגע, שנייה. לדייוויד, אנחנו רוצים להחליף סיסמה, אנחנו רוצים לתת לו את הסיסמה הזאת. אוקיי.
הנה, החלפנו סיסמה לדייוויד, כן? איפה הסיסמה של דייוויד נמצאת? איפה הסיסמאות שמורות? cut etc shadow cut etc shadow זה קובץ שבו שמורות כל הסיסמאות תכלס אוקיי אנחנו יכולים לראות שזה רות דולר 6 זה אומר שזה מוצפן בשעה 256 אם אני לא טועה באלגוריתם של האש שעה 256 ופה
מתחילה הסיסמה בעצם הערבול של הסיסמה אי אפשר לדעת מה הסיסמה אבל אם אני אכניס את הסיסמה למערבל אז נקבל כל פעם אותו תוצאה ככה הוא משווה בין האש להאש בין ערבול לערבול אי אפשר לדעת מה הייתה הסיסמה אבל אם אני אומר שאני יודע את הסיסמה ואני מכניס לכם את הסיסמה לאלגוריתם יוצא בדיוק אותו ערבול ומשווים ערבול לערבול
וכל שאר השדות כל אלו קשורים למתי סיסמה פגה תוקף כמה זמן אפשר להשתמש בה אחרי כמה כמה היא בתוקף כל ה-Expiration Date, אוקיי? פה לדוגמה אנחנו רואים שיש פה יוזר שאין לו סיסמה, זה אומר שאי אפשר לעשות איתו לוגין אינטראקטיבי, אוקיי?
כמו יוזר לסרוויסים מסוימים, כמו לדוגמה יוזר לסרוויס של FTP. הוא יכול לרוץ, יש לו הרשאות במערכת כמו ליוזר רגיל, אבל מה אי אפשר לעשות איתו לוגין, אוקיי?
שימו לב, יוני, הנה זה יוזר של יוני עם סיסמה שלו. איפה דיוויד? בני דיוויד, ויש לו את הסיסמה שלו, אוקיי?
אתם יכולים לראות מתי הוא החליף סיסמה פעם אחרונה, אתם רואים אחרי נקודתיים, יש לכם מתי הוא החליף סיסמה פעם אחרונה? מאז 1970. כמה ימים עברו מאז ה-1970 שהוא החליף סיסמה.
ועוד כמה זמן היא בתוקף, וכולי וכולי וכולי. יפה מאוד. טוב, אז הבנו שפה שמורות הסיסמאות, אבל זה לא, בשביל זה התכנסנו לכאן.
אנחנו רוצים לראות שהרשאות על קובץ הסיסמאות אין לאף אחד, לאף אחד אין, אבל למעשה זה אומר שרק רות יכול לראות אותם, אוקיי?
רות יכול לראות אותם, למרות שאין פה הרשאות לאף אחד, זה הכוח של רות. ועכשיו, השאלה היא כזאת, בואו נמצא, נעשה find בכל המערכת לקובץ שנקרא פס wd מינוס טייפ פייל שלא ימצא לי דברים אחרים ואנחנו רואים פה שפה נמצא הקובץ הנה זה הקובץ שאנחנו מריצים
אוקיי זה הקובץ שאנחנו מריצים שימו לב אם הקובץ הזה היה קובץ רגיל אז הוא לא יכול היה לשנות הרשאות בשדו בקובץ של שדו בואו נראה מה זה קובץ רגיל מה זה בואו נראה מה זה סט uid שאנחנו עכשיו עושים זה זה אתם רואים פה אות s וזה צבוע באדום כזה, אתם רואים?
אות s זה אומר שקבעו עליו set uid. מה זה ה-set uid? בואו נעשה בלי set uid. נעשה קופי של הקובץ הזה לאותו אחד עם ספרה 2 בסוף. פשוט נוסיף לו 2. מותר לנו?
מותר לנו. עכשיו נעשה ls כוכבית. אתם רואים? הם בדיוק אותם קבצים, אחד לאחד אותו דבר, רק פה יש הרשעת s ופה אין הרשעת s.
זאת אומרת שברגע שאני אריץ עכשיו קובץ פס וו די שתיים הוא ירוץ תחת הרשאות של היוזר שמריץ אותו. הוא ירוץ תחת הרשאות של היוזר שמריץ אותו.
לעומת זאת הקובץ עם אות s לא משנה מי יריץ אותו הוא ירוץ עם הרשאות של האונר של הקובץ. מי האונר של הקובץ? זה הרות. זאת אומרת שהוא ירוץ תמיד עם הרשאות של רות לא משנה מי יריץ אותו.
בוא נראה דוגמה. נתחבר בתלנט, נתחבר פה בתלנט לכדייוויד נניח, ואנחנו רוצים לעשות פסט wd, פסט wd רגיל, מחליפים סיסמה, הוא אומר מה הסיסמה הנוכחית, אני אומר לו את הסיסמה הנוכחית, מה הוא אומר לי, מה ה-new password, אני אומר לו מה ה-new password, מה הסיסמה החדשה,
והוא אומר לי, הסיסמה all authentication tokens updated successfully, זה כן הצליח, יפה מאוד, יפה מאוד, הצליח.
כשאנחנו עושים אותו דבר, רק עושים עם שתיים. הוא אומר מה הסיסמה הנוכחית, אנחנו מכניסים לו את הסיסמה הנוכחית. מה ה-new password, מכניסים לו סיסמה חדשה. מכניסים לו סיסמה חדשה.
ותראו מה קורה עכשיו. Manipulation error. Authentication token, Manipulation error. למה יש לו פתאום error? כי פס WD2, שימו לב, פס WD2, אין לו הרשאות sticky beat, אוקיי?
בואו ננקה פה מסך וננסה לעשות בואו ננסה לעשות ניסוי מעניין שימו לב כשאני מריץ פס WD2 להחליף סיסמה אני לא מחליף סיסמה אני הולך לפה לרוט ועושה PS מינוס אאוקס לראות את כל התהליכים שרצים כרגע כל התהליכים שרצים ואני רואה שפס W2 שימו לב מה חזק מי מריץ אותו מריץ אותו דיוויד דייוויד מריץ אותו, את התהליך מריץ דייוויד,