לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > מערכות הפעלה
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 22-09-2013, 22:18
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
כלי עזר שכתבתי לניהול סיסמאות

כתבתי כלי עזר קטן לניהול סיסמאות.

הכלי דורש תמיכה ב-gpg ו-Open Office.

הסקריפט יוצא מנקודת הנחה שקובץ התסריט נמצא באותה התיקייה ביחד עם קובץ מוצפן (דרך GPG) של הסיסמאות, בפורמט כלשהו של OpenOffice.

מה שצריך לעשות זה פשוט להפעיל אותו באותה התיקייה:
קוד:
$ ./pp

והוא כבר באופן אוטומאטי יפענח את ההצפנה, יפתח אותו דרך Open Office, ואחרי שתשמרו את השינויים - הוא יצפין אותו באותו השם של הקובץ הקודם (אלא אם תבחרו שם אחר).

יש גם אופציה לבצע export מהיר לזוג מפתחות ה-GPG, וכמובן גם import.

קיים הסבר דרך הדגל h.

שימו לב שלפני השימוש חובה לערוך את משתני הקונפיגורציה:
קוד:
### Config ### ENCRYPTED_FILENAME="Accounts.ods.gpg" SYS_USER="dor" # The user name of the operating system, which has the keypair (important for the processes to be able to read the files) GPG_USER_ID="Dor" # The name (or part of it) of the user as listed in GPG (alternatively could be the key id). # To fully understand which values can be placed, read the "How to specify a user id" clause in the gpg manual TMPFS_RAM_ALLOC="64M" # Amount of RAM space to allocate for the tmpfs folder TMPFS_MODE_PERM="0700" # The mode of the tmpfs folder and of the files it contains ### End of Config ###


המשתנה ENCRYPTED_FILENAME מכיל את שמו המלא (בלי הנתיב) של הקובץ המוצפן. עדיף שהקובץ הזה יכיל סיומת שכוללת את פורמט ה-OpenOffice ולאחר מכן את המחרוזת gpg, כמו שמוצג בדוגמא למעלה.

המשתנה SYS_USER מכיל את שם היוזר במערכת לינוקס שאצלו נמצא ה-keypair (בתיקייה ~/.gnupg)

המשתנה GPG_USER_ID מכיל את השם שמזהה את ה-keypair הרלוונטי שלך ברשומות של GPG. זה יכול להיות גם fingerprint או כתובת מייל וכד'.

המשתנה TMPFS_RAM_ALLOC קובע את גודל ההקצאה ב-RAM עבור מערכת הקבצים tmpfs שאנו יוצרים באופן זמני עבור הקובץ המפוענח. אח"כ אנו משחררים את ההקצאה (עם umount).
הערך לא אמור להיות גדול, 64M בהחלט אמור להספיק.

המשתנה TMPFS_MODE_PERM קובע את ההרשאות לתיקייה הנ"ל. לא אמורים לגעת בזה.

קישור לקובץ התסריט:
https://2013-uploaded.fresh.co.il/2013/09/22/18817073

אני קורא לו "pp", שזה ראשי תיבות של Passwords Portal.

אופן השימוש (המלצה בלבד ):
שימו את קובץ הסיסמאות המוצפן ביחד עם שני המפתחות (פרטי וציבורי) בכל מקום שתוכלו כדי לייצר גיבוי (כונני HDD, או SSD, או חשבונות אינטרנט פרטיים), אבל כמובן שלא במקום עם גישה ציבורית גסה (כמו rapidshare).
ואת הסיסמא תשמרו על נייר, ולא במחשב.
כל פעם שתצטרכו להשתמש בסיסמא, תפתחו gedit או תוכנה דומה וכתבו בה את הסיסמא (מבלי לשמור אף פעם). וכל פעם העתיקו את הסיסמא בהתאם לצורך.

אני יודע שיש תוכנות אחרות לניהול סיסמאות אבל אני לא מרגיש בנוח להשתמש בהן, אני חושב שהשיטה הנ"ל מאפשרת יותר חופשיות.

אשמח להמלצות, תיקונים וכד'..

השימוש בקובץ התסריט הינו על אחריותכם בלבד!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 24-09-2013, 01:29
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 4 שנכתבה על ידי borsood שמתחילה ב "בדקת שOO לא שומר עותק של..."

צודק, שכחתי לבדוק זאת.

יש אופציה כזו של OO ששומרת קובץ כל 15 דקות (זה הערך ברירת המחדל):
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

השדה המסומן "Save AutoRecovery information every" הוא הבעייתי. אותו צריך להוריד.
יש עוד שדה, ממש מעליו, שנקרא "Always create backup copy" שגם הוא בעייתי אבל בברירת מחדל הוא לא מסומן אז זה בסדר.

הנתיב שאליו נשמרים הקבצים האלו נמצא בשדה "Backups" שבתמונה:
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

בגדול זה בעייתי לשנות את האופציה הזו דרך bash או אפילו דרך python שיש לו API (לא מושלם) אבל אבדוק...
כנראה זו הסיבה שישראל מעדיף plain text אכן יותר פשוט...
אבל אני מניח שמי שעדיין רוצה להשתמש בגיליון נתונים צריך לשים לב לעניין הנ"ל, ומלבד זה לא אמורה להיות בעיה.
אגב OO אמור לשמור העתק של הקובץ - אך רק אם הוא לא נשמר במשך 15 דק'. כלומר שאם אתה עורך כמה דברים קטנים, ותוך פחות מ-15 דק' (או בזמן האחר שהזנת בשדה) אתה שומר - אז העותק לא אמור להישמר בנתיב שבשדה Backups או בכל נתיב אחר.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 03-10-2013, 21:06
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 3 שנכתבה על ידי dorM שמתחילה ב "נכון שלא צריך עיצוב אבל כן..."

מעולה, אז תאפשר שימוש בקובץ בסיסי או קובץ בתבנית csv או עם רווחים להפרדה בין השדות:
שם (האתר, התוכנה, המערכת או מה שרוצים - השם ישמש גם כמזהה למשמש וגם כמזהה מערכת), שם משתמש, סיסמה, הערות (בשדה הערות ניתן להזין כל תו, כולל רווח, לכן זה חייב להיות כמובן השדה האחרון).

אולי תשתמש בתבנית יעודית ומעט יותר מורכבת או פשוט ב-JSON.
בצורה כזאת אין מגבלה על השדות, יהיה שדה חובה יחיד לכל רשומה - שם (שישמש כאמור עבור זיהוי הרשומה), שדות מוצעים (מלשון "הצעה") כגון שם משתמש, סיסמה והערות ושדות נוספים כאוות לב המשתמש (במקרים מסויימים ישנן פרטי זיהוי נוספים, כגון מס' ת.ז., כתובת דוא"ל או כל פרט אחר, בהתאם למרכבות המערכת).
קוד:
SEPARATOR=#SEP#RECORD=#END#STARTname:whatever#SEP# un:username#SEP#pass:password#SEP#nick=Mee#SEP#not es:sfgh gh fth srtghdfgh dth#END#

SEPARATOR!=RECORD - ערך המפריד הוא רצף כל התווים עד ל-RECORD.
RECORD!=START - המילה RECORD מפרידה בין ההגדרות לבין התוכן.
כמובן שניתן לבחור תו מעבר שורה בין הרשומות - בלבד שלא נעשה בתו שימוש בתוכן (בזמן השמירה יעשה בדיקה וחיפוש אחר תו/מחרוזת שאינה בשימוש).
ניתן כמובן להשתמש בתווים בינאריים כתוי הפרדה ובקרה.

תצוגה נוחה של התוכן המוצג לעיל:
קוד:
SEPARATOR=#SEP# RECORD=#END# START name:whatever#SEP#un:username#SEP#pass:password#SE P#nick=Mee#SEP#notes:sfgh gh fth srtghdfgh dth#END#
_____________________________________
בניית אתרים
פיתוח יישומי אינטרנט
שמות תחום, אחסון, עיצוב ושירותים נלווים.

פיתוח, שירות,יעוץ והדרכה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 01-10-2013, 01:51
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
עדכון גירסא קריטי
בתגובה להודעה מספר 1 שנכתבה על ידי dorM שמתחילה ב "כלי עזר שכתבתי לניהול סיסמאות"

תודות לביקורת הבונה של 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)
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 03-10-2013, 00:56
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
עדכון גירסא 2.0.1, וגם חידה
בתגובה להודעה מספר 1 שנכתבה על ידי dorM שמתחילה ב "כלי עזר שכתבתי לניהול סיסמאות"

עידכנתי גירסא ל-2.0.1, קישור:
https://2013-uploaded.fresh.co.il/2013/10/03/56383479

עשיתי שינוי קטן, בעיקר בפרוצדורת cleanup.

חידה:

יש משהו קטן שלא הצלחתי להבין בסקריפט.

בקובץ שבקישור הנ"ל, בשורה 367 קיים הקוד:
קוד:
umount "$DEST_DIR"

אפשר לראות שלפני הקוד הזה עשיתי:
קוד:
sync sleep 0.5

כי בלי הפקודות הנ"ל, הניסיון הראשון לביצוע umount נכשל. רק הניסיון השני מצליח, וזה תקלה שמשתחזרת.

עשיתי בדיקה עם lsof וגם עם fuser, ולא מצאתי קבצים פתוחים בתיקייה הנ"ל.
השתמשתי ב-auditd לראות אולי איזה תהליך פתח קובץ... אבל לא מצאתי בפלט שום דבר שיכול לעזור.
חשבתי אולי strace ייתן משהו אבל גם לעניות דעתי הפלט שלו לא מועיל.

אם מישהו יודע מה הסיבה שה-umount הנ"ל נכשל בפעם הראשונה...
כבר התחלתי לנסות לקרוא את קוד המקור של umount אבל רק נכנסתי לסרט עמוק יותר.

תודה..
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #20  
ישן 09-10-2013, 06:10
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 19 שנכתבה על ידי dorM שמתחילה ב "אני צריך שהתיקייה temp..."

אז תמחק אותה. אתה רואה פה rm -rf temp? כי אני לא. אז למה שהיא תימחק אם לא ביקשת למחוק אותה? ביקשת בסך הכל לעשות umount, מה שמנתק את מה שהיה מחובר לנקודה הזו בעץ. ההרצה של find מראה לך שאכן yep ו hello.txt שהיו שם, כבר לא שם, כלומר, שה umount הצליח. אז איפה הבעייה?

וכל מה שכתבת על openoffice לא בלוג שלך, ולכן אני לא מתייחס לזה. בלוג שאתה צרפת, הכל נראה תקין.

בנוגע לנ.ב. הראשון זה נשמע לי מאוד מוזר. במקרה ה"גרוע" ביותר (שזה - הרצת תוכנה) - הוא פשוט יגיד שאין תוכנה כזו. אחרת, זה חסר משמעות. אבל תעשה מה שאתה רוצה... אם אתה נהנה מקוד פחות קריא.

בנוגע לנ.ב.2 שאתה אומר "דומה", אתה מתכוון "זהה לחלוטין" ? איך בכלל הגעת ללכתוב את הפרמטר הזה מלכתחילה, שהרי בהעדרו מקבלים את אותו דבר? :/
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #23  
ישן 11-10-2013, 15:46
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 22 שנכתבה על ידי שימי שמתחילה ב "אבל בדוגמה שהראית למעלה, ה..."

בעזרת stat הצלחתי להבחין בשינוי בנתונים על התיקייה, בין הזמן שלפני הצלחת ה-unmount לבין הזמן של אחרי הצלחת ה-unmount, ראה דוגמא:

קוד:
$ stat '/tmp/tmp.nbljlVcmix' File: `/tmp/tmp.nbljlVcmix' Size: 0 Blocks: 0 IO Block: 4096 directory Device: 17h/23d Inode: 121188 Links: 2 Access: (0700/drwx------) Uid: ( 1000/ dor) Gid: ( 0/ root) Access: 2013-09-30 20:37:51.430769893 +0300 Modify: 2013-09-30 20:37:51.430769893 +0300 Change: 2013-09-30 20:37:51.430769893 +0300 $ umount '/tmp/tmp.nbljlVcmix' umount: /tmp/tmp.nbljlVcmix: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) $ sleep 0.5 $ umount '/tmp/tmp.nbljlVcmix' $ stat '/tmp/tmp.nbljlVcmix' File: `/tmp/tmp.nbljlVcmix' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 806h/2054d Inode: 2401825 Links: 2 Access: (0700/drwx------) Uid: ( 1000/ dor) Gid: ( 0/ root) Access: 2013-09-30 20:37:47.600513531 +0300 Modify: 2013-09-30 20:37:47.600513531 +0300 Change: 2013-09-30 20:37:47.610513892 +0300


השגיאה שנאמרת, זה "device is busy".
אבל כפי שכתבתי קודם, בדקתי עם פקודות שונות לוודא שאין קבצים פתוחים בתיקייה...
הקוד הנ"ל זה בעצם תמצית של הרצה הסקריפט, כאשר ה-output כלול (למען הנוחות).
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 16:44

הדף נוצר ב 0.11 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר