passwd

פקודת יוניקס

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

הפקודה passwd משמשת לשינוי סיסמאות מקומיות, אך מאפשרת גם לשנות סיסמה במערכות אימות מבוזרות, כגון NIS, קרברוס, ו-LDAP.

היסטוריה עריכה

בעבר היה הכרחי להשתמש בפקודות שונות על מנת לשנות סיסמאות בשיטות אימות שונות. לדוגמה, הפקודה לשינוי סיסמה במערכות NIS הייתה yppasswd. דרך זו גרמה למשתמש להיות מודע לשיטת האימות, והביאה לבזבוז קוד. כיום, ברוב המערכות קיימת פקודת passwd אחידה, וביצוע השינוי והחלפת הסיסמה מטופל בצורה שקופה למשתמש באמצעות מודולי אימות הניתנים לחיבור (PAM).[1]

פונקציית הגיבוב המשמשת לשמירת הסיסמאות מוכתבת על ידי התצורה של מודול pam_unix.so. כברירת מחדל נעשה שימוש בפוקנציה MD5, אך כיום המודול מכיל גם פונקציות גיבוב הנחשבות חזקות יותר, כגון Blowfish, SHA256 וSHA512.[2]

קבצים עריכה

/etc/passwd עריכה

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

שם הקובץ לקוח משימושו המקורי, כקובץ המשמש לאימות סיסמאות. לרוב, לקובץ הרשאות מערכת קבצים המאפשרות לכל משתמש לקרוא אותו, אך רק למשתמש-על לשנותו.

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

jsmith:x:1001:1000:Joe Smith:/home/jsmith:/bin/sh

באופן כללי, השדות, בסדר משמאל לימין, הם כדלקמן:[3][4]

  1. שם משתמש
  2. מידע המשמש לאימות הסיסמה; ברוב מערכות ההפעלה המודרניות השדה מכיל x בלבד, והמידע נשמר בקובץ נפרד. כאשר השדה מכיל *, זוהי דרך נפוצה לבטל התחברות למשתמש זה.
  3. מזהה משתמש (מספרי)
  4. מזהה קבוצה ראשית (מספרי)
  5. תיאור
  6. מיקום תיקיית בית
  7. מעטפת ברירת המחדל

/etc/shadow עריכה

הקובץ /etc/shadow נועד להגביר את רמת האבטחה על ידי הפרדת המידע הרגיש על הסיסמאות לקובץ נפרד, אשר רק משתמש-על יכול לקרוא. השימוש בקובץ זה החל בתחילת שנות ה-90. השדות ברשומה בקובץ זה הם כדלקמן:[5]

  1. שם משתמש
  2. המידע על הסיסמה בפורמט CRYPT, אשר מכיל את מספר פונקציית ההאש, salt, ותוצאת הפונקציה. ! או * מייצגים משתמש נעול. שדה ריק מייצג התחברות ללא סיסמה.
  3. זמן שינוי הסיסמה האחרון (בזמן יוניקס)
  4. מספר הימים עד שיהיה ניתן לשנות שנית את הסיסמה
  5. מספר הימים עד שחובה יהיה לשנות את סיסמה
  6. מספר הימים עד להתראה על שינוי סיסמה קרב
  7. מספר הימים עד שהמשתמש יחדל לפעול כאשר נדרשת החלפת סיסמה
  8. זמן תפוגת המשתמש (בזמן יוניקס)

קישורים חיצוניים עריכה

הערות שוליים עריכה

  1. ^ 42.4. Pluggable Authentication Modules, בתיעוד מערכת ההפעלה CentOS 5.
  2. ^ 14.2. Support for SHA-256 and SHA-512 passwords, בתיעוד מערכת ההפעלה פדורה 9.
  3. ^ passwd(5) - password file, בתיעוד מערכת ההפעלה לינוקס.
  4. ^ Understanding /etc/passwd File Format
  5. ^ shadow(5) - shadowed password file, בתיעוד מערכת ההפעלה לינוקס.