01-10-2013, 01:51
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
עדכון גירסא קריטי
תודות לביקורת הבונה של borsood כתבתי גירסא חדשה של התסריט.
עכשיו הסקריפט משנה את שמה של תיקיית ה-User Profile של Open Office לשם זמני (עם סיומת ".pp.tmp"), ובמקומה יוצר תיקייה חדשה עם מערכת קבצים ramfs.
בנוסף הוא משנה את הקונפיגורציה של Open Office כך שתכונות ה-AutoRecovery וה-Backup לא יפעלו, כך ש-Open Office לא אמור לשמור את הקבצים האלה. אבל גם אם הוא ישמור אותם בתוך תיקיית ה-User Profile זה לא אמור להיות בעייתי, כי זה ramfs שבסיום העבודה אנו מוחקים את תוכן התיקייה ועושים לה unmount.
ההבדל בין tmpfs ל-ramfs זה ש-tmpfs עלול לשמור את התוכן ב-swap ואז המידע ייכתב לדיסק, לעומת ramfs שהכל נכתב לזיכרון.
לעומת זאת ב-ramfs יש פוטנציאל לסכנה למחשב שייקרוס מרוב כתיבה רבה לזיכרון (ואז לשאר התוכנות לא יהיה מקום). אבל זה לא סביר שייקרה בסקריפט שלנו.
תיקנתי גם את סדר ביצוע הדברים: קודם מוחקים את תוכן התיקייה שהיא ramfs, ואח"כ עושים unmount, למרות שאפילו אם ישר עושים unmount זה אמור להימחק. אבל שמרתי על הסדר ליתר ביטחון.
הוספתי דגל של Paranoid Mode, שבמצב בו אנו לא מוצאים את נתיב התיקייה של Open Office's User Profile, אז אנחנו לא נפתח את הקובץ לעריכה ב-Open Office.
אם הדגל הזה עם ערך של False, אז כן פותחים את הקובץ ב-Open Office אבל המשתמש צריך לשים לב להגדרות של Open Office ולפעול בהתאם.
כמובן יש לשים לב שעם שינוי הגרסאות של Open Office ייתכן שהתסריט לא יעבוד כראוי.. בעיקר מבחינת הערכים של קבצי הקונפיגורציות שאני כותב אליהם.
זו הסיבה שבתור גיבוי יצרתי תיקייה חדשה של User Profile שהתוכן שלה לא יישמר בכלל.
הבעיה היחידה, וזו בעיה לא קטנה, זה ההגדרה של נתיב ה-Temp (שבברירת מחדל הערך שלה זה '/tmp').
אל הנתיב הזה OO יעשה שיכפול של הקובץ אותו הוא פותח.
כלומר ישר כשקובץ הסיסמאות נפתח ע"י OO, הוא יוצר בנתיב ה-Temp שיכפול של הנ"ל.
לכן בהגדרות וידאתי שהנתיב הזה יהיה בתוך תיקיית ה-ramfs.
אבל, וזה אבל גדול, אם בגרסא הבאה יהיו שינויים בכל הקשור להגדרות, כך שהוא לא ייטען את הנתיב שערכתי לו בתסריט, אז סביר להניח שייתבצע שיכפול של הקובץ אל תיקיית /tmp, שאז המידע ייכתב לדיסק.
כדי לפתור את הבעיה הזו באחוז הצלחה גבוה יותר, חשבתי על פתרון שבו אעשה mount לתיקיית /tmp שתהיה מסוג ramfs.
הסכנה היא שאולי תוכנות אחרות משתמשות בתיקייה זו, ואם אעשה unmount אז המידע יימחק - והתוכנות עלולות לקרוס או לאבד מידע חשוב.
וידאתי עם הפקודה:
קוד:
ls -l /proc/$( ps --no-headers -o pid -C 'soffice.bin' )/fd
ש-OO לא פותח קבצים במקומות נוספים.
אגב עוד משהו שחשוב לי לציין, אם מישהו יחפש אי פעם את קבצי הקונפיגורציה של Open Office אז שיידע שהם מאוחסנים בנתיב הבא:
/usr/lib/openoffice/basis-link/share/registry
לפי מה שהבנתי, Open Office טוען את הקונפיגורציה מהנתיב הנ"ל (שזה הגדרות ברירת המחדל), ועליהם הוא משכתב את מעט שינויי ההגדרות שקיימים בנתיב:
~/.openoffice.org/3/user/registry
כלומר עבור כל משתמש במערכת הוא מאחסן את ההפרש של השינוי בין הגדרות ברירת המחדל לבין ההגדרות שהמשתמש קבע. זה כנראה נועד לחיסכון במקום או בסיבוכים..
קישור להורדת גירסא 2.0:
https://2013-uploaded.fresh.co.il/2013/10/01/57673458
עריכה:
הוספתי גם טיפול בסיגנלים (TRAP)
|