היכן וכיצד מאוחסנים סיסמאות ב- Linux?

Where How Are Passwords Stored Linux



שם המשתמש עם הסיסמה המתאימה לחשבון ספציפי הוא הדרישה העיקרית שדרכה משתמש יכול לגשת למערכת לינוקס. כל סיסמת חשבונות המשתמש נשמרת בקובץ או במסד נתונים, כך שניתן לאמת משתמש במהלך ניסיון הכניסה למערכת. לכל משתמש אין מספיק כישורים ומומחיות לאיתור קובץ זה במערכת שלו. עם זאת, אם אתה מקבל גישה למסד הנתונים או לקובץ ששומר את כל הסיסמאות של משתמש ההתחברות, תוכל לגשת בקלות למערכת לינוקס. כאשר משתמש מזין שם משתמש וסיסמה ב- Linux לצורך התחברות, הוא בודק את הסיסמה שהוזנה מול ערך בקבצים שונים של ספריית '/etc'.

קבצי /etc /passwd שומרים את כל המידע החשוב הדרוש לכניסה למשתמש. כדי להסביר זאת במילים פשוטות יותר, הקובץ /etc /passwd מאחסן את פרטי החשבון של המשתמש. קובץ זה הוא קובץ טקסט רגיל המכיל רשימה מלאה של כל המשתמשים במערכת Linux שלך. יש בו מידע על שם משתמש, סיסמא, UID (מזהה משתמש), GID (מזהה קבוצתי), מעטפת וספריית הבית. הקובץ הזה צריך להיות בעל הרשאות קריאה שכן משתמשים בשירותי שורת פקודה רבים כדי למפות את מזהי המשתמש לשם המשתמש. עם זאת, היו צריכות להיות הרשאות גישה לכתיבה מוגבלות רק עבור חשבונות משתמש -על או משתמשים בסיסיים.







מאמר זה ידגים כיצד והיכן ניתן לאחסן את סיסמאות החשבון של משתמש המערכת בהפצת לינוקס. יישמנו את כל ההדגמות במערכת אובונטו 20.04. עם זאת, תוכל למצוא קובץ /etc /passwd בכל הפצה של לינוקס.



דרישות מוקדמות

אמורות להיות לך הרשאות שורש להפעלת פקודות ניהול.



הבנה בסיסית לגבי /etc /passwd קובץ

הקובץ /etc /passwd מכיל את המידע אודות חשבון המשתמש של המערכת שלך. כל השדות המאוחסנים מופרדים מסימן המעי הגס:.
כאשר תפעיל את הפקודה הבאה, תראה כל ערך קובץ של /etc /passwd:





$חתול /וכו/passwd

הפקודה לעיל תפרט את כל משתמשי מערכת Linux שלך.
סוג הפורמט הבא יוצג במסך הטרמינל שלך:

פרטים אודות /etc /passwd שדות פורמט
מהתמונה למעלה:

שם משתמש: שדה ראשון מייצג את שם המשתמש. אורך שדה שם המשתמש מוגדר בין 1-32 תווים. זה משמש כאשר משתמש מתחבר למערכת. בדוגמה לעיל, 'khuzdar' הוא שם המשתמש.
סיסמה: בדוגמה שלמעלה, תו x מראה שהסיסמה מאוחסנת בצורה מוצפנת בקובץ /etc /shadow.
מזהה משתמש (UID): לכל משתמש יש להקצות מזהה משתמש בנפרד. אפס UID מוקצה למשתמש הבסיסי, ומזהי משתמש 1-99 מוקצים לחשבונות מוגדרים מראש או רגילים. מסמכי ה- UID הנוספים מ- 100-999 מוקצים לחשבונות מנהל מערכת או לקבוצות. בצילום המסך לעיל, מזהה המשתמש הוא 1001.
מזהה קבוצה (GID): השדה הבא מייצג את מזהה הקבוצה. ה- GID מאוחסן בקובץ /etc /group. בהתבסס על הדוגמה לעיל, המשתמש שייך למזהה הקבוצה 1001.
מידע על User ID: השדה הבא מיועד להערות. בשדה זה, תוכל להוסיף מידע נוסף אודות המשתמש שצוין, כגון שם מלא של המשתמש, מספר הטלפון וכו '. עם זאת, בדוגמה שלמעלה, לא נמסר מספר טלפון על ידי המשתמש.
מדריך הבית: שדה זה מציג את המיקום של ספריית הבית שהוקצתה למשתמש הנוכחי. אם הספרייה שצוין אינה קיימת, היא תציג /. התמונה למעלה מציגה את מיקומו של המשתמש המודגש בספריית הבית, שהיא הבית/kbuzdar.
פקודה // מעטפת: ברירת המחדל של הנתיב המוחלט של מעטפת או פקודה היא /bin /bash. זה ידוע בשם הקליפה. לדוגמה, sysadmin באמצעות מעטפת הנולוגן. הוא מתנהג כמעטפת החלפה של חשבונות משתמשים במערכת. אם הקליפה ממוקמת בנתיב אל /sbin /nologin והמשתמש רוצה להיכנס ישירות למערכת לינוקס, מעטפת /sbin /nologin תסגור או תשבית את החיבור.



חפש משתמש בקובץ /etc /passwd

אתה יכול לחפש משתמש ספציפי עם /etc /passwd, באמצעות הפקודה grep. לדוגמה, אנו רוצים לחפש את שם המשתמש 'kbuzdar' מהקובץ /etc /passwd, באמצעות התחביר הבא, ואז נוכל לחפש בקלות משתמש שצוין ולחסוך את זמננו:

$אחיזהשם משתמש/וכו/passwd

התחביר לעיל ישתנה לצורה הבאה:

$אחיזהחוֹרֵק/וכו/passwd


אוֹ

$אחיזה '^kbuzdar' /וכו/passwd

הצג הרשאות בקובץ /etc /passwd

כפי שהזכרנו לעיל, כל המשתמשים האחרים, למעט root, צריכים להיות מסוגלים לקרוא הרשאה בקובץ /etc /passwd, וכי הבעלים חייב להיות משתמש -על או root.
הקלד את הדברים הבאים כדי לבדוק את הרשאות הקריאה בקובץ:

$ls /וכו/passwd

מדגם הפלט הבא יוצג במסוף:

קורא /etc /passwd קובץ

אתה יכול לקרוא את הקובץ /etc /passwd במערכת Linux שלך באמצעות סקריפט bash הבא או להריץ ישירות את מה שנכתב למטה בזמן פקודות לולאה במסוף.
צור קובץ טקסט והדבק בו את הקוד הבא:

#!/bin/bash
# שבעה שדות בסך הכל /etc /passwd המאוחסנים כ- $ f1, f2 ..., $ f7

בזמן IFS=:לקרוא -rf1 f2 f3 f4 f5 f6 f7
לַעֲשׂוֹת
זרק 'מִשׁתַמֵשׁ$ f1להשתמש$ f7מעטפת ומאחסנת קבצים$ f6מַדרִיך.'
בוצע < /וכו/passwd

באמצעות לולאת ה- while, היא תקרא את כל שבעת השדות ולאחר מכן תציג באופן איטרטיבי את תוכן הקובץ במסוף.
שמור את הקובץ לעיל בשם 'readfile.sh'.

כעת, הפעל את הקובץ לעיל באמצעות הפקודה הבאה:

$לַחֲבוֹטreadfile.sh

חקור /etc /קובץ צל

קובץ /etc /shadow מכיל את כל הסיסמאות המוצפנות שלך המאוחסנות בקובץ זה וניתן לקרוא אותן רק עבור משתמשי שורש.
נפעיל את הפקודה הבאה להצגת התוכן:

$סודו חתול /וכו/צֵל

אתה יכול לראות את כל הסיסמה בפורמט המוצפן:

סיכום

ראינו מהמאמר לעיל את כל פרטי החשבון והסיסמאות של המשתמש המאוחסנים בקובץ /etc /passwd במערכת לינוקס. אתה יכול לקרוא קובץ זה, אך רק למשתמשי root יש הרשאות כתיבה. יתר על כן, ראינו גם את כל הסיסמאות המוצפנות המאוחסנות בקובץ /etc /shadow. תוכל גם לחקור /etc /group קובץ כדי לקבל פרטים על קבוצת המשתמש.