תוויות

‏הצגת רשומות עם תוויות תיכנות. הצג את כל הרשומות
‏הצגת רשומות עם תוויות תיכנות. הצג את כל הרשומות

4 ביולי 2010

טוב מה נסגר עם SUDI GUI


בסוף החלטתי לעשות איזה פרוייקטון קטן כזה של יצירת GUI ל sudo. אף על פי שיש כאלה שחושבים שצריך ויש כאלה שחושבים שלא... בא לי לעשות את זה.

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

חבר שלי חשב שזה יראה משהו כמו חלון כזה שרואים את התוכן של מה שכתוב ב /etc/sudoers אבל אז חשבתי שזה לא רעיון טוב משום שאין כל כך הבדל בין זה לבין לערוך את הקובץ דרך הטרמינל ואז אפשר במילה לשנות מה שצריך ובאמת בישביל דבר כזה לא ממש צריך GUI כי כל אחד שמכיר את התחביר של הקובץ שמבוסס על EBNF שזה איזה שהוא תחביר שמבוסס על שפה ADA יכול לערוך את הקובץ והוא לא צריך בכלל בישביל זה GUI ואז יוצא שזה בעצם לא תורם בכלום.

אז לקחתי נייר ועט והתחלתי לעצב ממשק שימוש ואיך זה אמור להיראות...

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

כמובן שניתן להרחיב את זה גם לרשימה של ALLOW ורשימה של DENY זתומרת להגדיר תהליכים להרצה למשל שמותרים לכל המשתמשים אבל למשתמש מסויים או קבוצה אסור להריץ סקריפט מסויים דרך הסודו נניח...

כמובן שזה ניתן להגבלה רק ברמה של תהליכים שמותרים להרצה רק למשתמש על אז הנחתי שהרשימה של ה DENY היא חסרת כל תועלת במקרה הספציפי הזה ולכן זה לא יכלל ב GUI.

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

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

דבר ששכחתי לקחת בחשבון זה שאני אצטרך לבדוק את השם של האליאס שהוא לא תפוס ולתת הודעה מתאימה בדיאלוג למשל... או לעצב את זה לא בדיאלוג אלה בהודעת טקסט מוסתרת של ERR למשל...

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

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

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

גם עם בחירת השפה הייתה התלבטות לא קלה בכלל בגלל שרציתי לגוון ולא לעשות בהכרח בפיתון עם pygtk. בסופו של דבר
גם רצה הגורל וזה יצא כאשר לקחנו רשימה של שפות וחבר שלי זרק והרים ויצא בגורל פיתון...
אחר כך חיפשתי אחרי ההגרלה והתלבטתי אם כדאי לעבוד בשפה של גנום שדומה לסי שרפ VALA.
ובגלל שלא הייתי בטוחה שהיא מספיק שפה גבוהה כמו פיתון וגאוה בגלל שהיא עושה תרגום לסי ואז מקמפל...
ואני לא יודעת אם יש אפשרות לשלב בה קריאות מערכת למשל שלא קשורות בהכרח ל X או לגנום ואיך מטפלים בה בקבצים...
וזה דיי מעצלנות...

טוב המשך יבוא...


30 ביוני 2010

סודו בכללי

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

יש שני סוגי הגדרות: הגדרת אליאסים והגדרה למשתמשים.

4 סוגי אליאסים::=משתמש, רונס, הוסט (שם המכונה), פקודה.

כל אחד מסוג האליאסים האלה יכול לקבל שם ולהכיל רשימה על פי מאפיין האליאס:

התחביר להגדרת אליאס הוא:
Alias_Type NAME = item1, item2, item3 ...

Alias_Type NAME1 = a, b, c : NAME2 = x, y

התחביר להגדרה עבור משתמשים:
username machine(ex: localhost) = pathToCmnd

ניתן להוסיף לפני רשימת הפקודות למשתמש מאפייני תגים מיוחדים למשל:
PASSWD or NOPASSWD לחובת שימוש בסיסמא או אפשרות להריץ ללא סיסמא
EXEC or NOEXEC אפשרות להריץ משהו או שלא לאפשר להריץ בכלל
SETENV or NOSETENV אפשרות להריץ באותה סביבה או בסביבה של משתמש אחר.

ניתן להשתמש במילה ALL בכל אחד מהחלקים בתחביר למשל כדי לאפשר את זה לכל המשתמשים או בכל ההוסטים או לאפשר את כל הפקודות האפשריות למשל:

ALL ALL=ALL

דוגמא לשימוש

myusername localhost = NOPASSWD: /bin/ls

זה מאפשר להריץ צפיה בקבצים כמשתמש על ללא סיסמא עבור משתמש בשם myusername במחשב עם הוסט בשם localhost.

אפשר גם לאפשר את זה לכל המשתמשים במחשב למשל אם משנים את myusername ל ALL

ואפשר לאפשר למשתמש להריץ כל פקודה ללא סיסמא אם משנים את /bin/ls ל ALL.

ניתן גם להגדיר את הפקודה באליאס מסוג פקודה למשל

Alias_Cmnd LSALIAS = /bin/ls

ואז לתת למשתמש עם שימוש באליאס

myusername localhost = NOPASSWD: LSALIAS

זה בכללי

נ"ב
פרטים חשובים ששכחתי לציין

בתחביר של המשתמש יכולים לבוא במקום שמות בדדים גם רשימה של משתמשים ורשימה של הוסטים ורשימה של פקודות.

באליאסים זה נראה לי קייס סנסטיב ואלה שמות סוגי האליאסים: User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias.

השמות של האליאנסים חייבים להיות באותיות אנגליות גדולות ולהתחיל באות אנגלית ואחר כך אפשר להכניס מספרים וגם קו תחתי.

רונס אליאס הוא כמו יוזר אליאס רק שאפשר להכניס בו גם UID בנוסף לשם והוא טוב למקרים שיש שני משתמשים עם אותו שם במחשב אבל עם UID שונה.

זהו

קישור למדריך טוב של אבונטו https://help.ubuntu.com/community/Sudoers


___________________________
בחיפוש אחרי איזה GUI לסודו מצאתי איזה פרוייקט ביפנית בסורספורג'
http://en.sourceforge.jp/projects/sfnet_sudoersgui/

ואיזה דיון על זה שזה לא נחוץ לדעת מישהו כי לדעתו זה "לא בעיה" אז ...
http://brainstorm.ubuntu.com/idea/3193

ובא לי גואי לסודו...
אז זה בינתיים מה שרשמתי

עכשיו בא לי לפתח את זה קצת ...

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

to be continue...