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...

27 ביוני 2010

הכשלונון בהפעלת Rayman2 בלינוקס המשך






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

זה תוכן הודעת השגיאה בריצה באבונטו כאשר מקליקים הקלקה חופשית הוא חושב שמדובר בארכיב.
Archive: /media/RAYMAN2/setup.exe
[/media/RAYMAN2/setup.exe]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
zipinfo: cannot find zipfile directory in one of /media/RAYMAN2/setup.exe or
/media/RAYMAN2/setup.exe.zip, and cannot find /media/RAYMAN2/setup.exe.ZIP, period.

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




כאשר בוחרים ב play מתקבלת הודעת שגיאה שזה תוכנה:


בקיצור הרצה דרך הסידירום לא עבדה טוב

היה גם ניסיון להריץ דרך הדיסק עצמו ב .wine/drive_c
על מנת לראות את פלט השגיאה בצורה יותר מפורטת ולמעשה התקבל חלון עם הודעת שגיאה דומה.
רק שהפעם ראיתי את הפלט:

carmit@carmit-desktop:~/.wine/drive_c/UbiSoft/Rayman2$ wine RAYMAN2.EXE
fixme:ddraw:DirectDrawEnumerateExA flags 0x00000007 not handled
fixme:win:EnumDisplayDevicesW ((null),0,0x32ef44,0x00000000), stub!
wine: Unhandled page fault on read access to 0x00000001 at address 0x1 (thread 001c), starting debugger...
Unhandled exception: page fault on read access to 0x00000001 in 32-bit code (0x00000001).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:00000001 ESP:0032fc9c EBP:0032fdf4 EFLAGS:00210202( R- -- I - - - )
EAX:00000002 EBX:00129126 ECX:00000001 EDX:00000000
ESI:00129127 EDI:004e0da1
Stack dump:
0x0032fc9c: 0042049c 00000002 00000001 00000000
0x0032fcac: 0042046c 00000000 00000003 0040105c
0x0032fcbc: 00000000 00401f54 00517042 00129126
0x0032fccc: 7b883ff4 775c3a43 6f646e69 552f7377
0x0032fcdc: 6f536962 752f7466 692e6962 6800696e
0x0032fcec: 68416ff4 0032fd20 7bc35b91 684325c0
Backtrace:
=>0 0x00000001 (0x0032fdf4)
1 0x0045fe16 in rayman2 (+0x5fe15) (0x0032fe90)
2 0x7b8556ac call_process_entry+0xb() in kernel32 (0x0032fea8)
3 0x7b8578bb in kernel32 (+0x478ba) (0x0032fee8)
4 0x7bc6fd90 call_thread_func+0xb() in ntdll (0x0032fef8)
5 0x7bc6ff60 call_thread_entry_point+0x6f() in ntdll (0x0032ffc8)
6 0x7bc4b6aa in ntdll (+0x3b6a9) (0x0032ffe8)
0x00000001: -- no code accessible --
Modules:
Module Address Debug info Name (71 modules)
PE 400000- 519000 Export rayman2
PE 10000000-10029000 Deferred glidx6vf
ELF 20000000-200c4000 Deferred libgl.so.1
ELF 200c4000-216d4000 Deferred libglcore.so.1
ELF 22755000-227ad000 Deferred ddraw
\-PE 22760000-227ad000 \ ddraw
ELF 23c57000-23d8f000 Deferred wined3d
\-PE 23c60000-23d8f000 \ wined3d
ELF 4946d000-4946f000 Deferred libnvidia-tls.so.1
ELF 68000000-68140000 Export libwine.so.1
ELF 68140000-68159000 Deferred libpthread.so.0
ELF 68159000-6815d000 Deferred libdl.so.2
ELF 6815d000-68183000 Deferred libm.so.6
ELF 68183000-6819a000 Deferred libnsl.so.1
ELF 6819a000-682cb000 Deferred user32
\-PE 681b0000-682cb000 \ user32
ELF 682cb000-68356000 Deferred gdi32
\-PE 682e0000-68356000 \ gdi32
ELF 68356000-683b1000 Deferred advapi32
\-PE 68360000-683b1000 \ advapi32
ELF 683b1000-68433000 Deferred msvcrt
\-PE 683c0000-68433000 \ msvcrt
ELF 68433000-68606000 Deferred shell32
\-PE 68440000-68606000 \ shell32
ELF 68606000-68668000 Deferred shlwapi
\-PE 68610000-68668000 \ shlwapi
ELF 68668000-68753000 Deferred comctl32
\-PE 68670000-68753000 \ comctl32
ELF 68753000-6878c000 Deferred dinput
\-PE 68760000-6878c000 \ dinput
ELF 6878c000-6888c000 Deferred ole32
\-PE 687b0000-6888c000 \ ole32
ELF 6888c000-68901000 Deferred rpcrt4
\-PE 688a0000-68901000 \ rpcrt4
ELF 68901000-68916000 Deferred libz.so.1
ELF 68916000-68946000 Deferred libfontconfig.so.1
ELF 68946000-6896d000 Deferred libexpat.so.1
ELF 6896d000-68a0f000 Deferred winex11
\-PE 68980000-68a0f000 \ winex11
ELF 68a0f000-68a18000 Deferred libsm.so.6
ELF 68a18000-68a31000 Deferred libice.so.6
ELF 68a31000-68b4e000 Deferred libx11.so.6
ELF 68b4e000-68b53000 Deferred libuuid.so.1
ELF 68b53000-68b6d000 Deferred libxcb.so.1
ELF 68b6d000-68b71000 Deferred libxau.so.6
ELF 68b71000-68b77000 Deferred libxdmcp.so.6
ELF 68b77000-68b99000 Deferred imm32
\-PE 68b80000-68b99000 \ imm32
ELF 68b99000-68b9d000 Deferred libxinerama.so.1
ELF 68b9d000-68ba3000 Deferred libxxf86vm.so.1
ELF 68ba3000-68bad000 Deferred libxrender.so.1
ELF 68bad000-68bb5000 Deferred libxrandr.so.2
ELF 68bb5000-68bbb000 Deferred libxfixes.so.3
ELF 68bbb000-68bc5000 Deferred libxcursor.so.1
ELF 68bc5000-68bf9000 Deferred uxtheme
\-PE 68bd0000-68bf9000 \ uxtheme
ELF 69dc1000-69dd1000 Deferred libxext.so.6
ELF 6b052000-6b05a000 Deferred libnss_compat.so.2
ELF 6b76b000-6b7f3000 Deferred winmm
\-PE 6b770000-6b7f3000 \ winmm
ELF 6e5eb000-6e745000 Deferred libc.so.6
ELF 7208a000-720a7000 Deferred ld-linux.so.2
ELF 72f06000-72f7c000 Deferred libfreetype.so.6
ELF 76762000-76766000 Deferred libxcomposite.so.1
ELF 779e2000-779ec000 Deferred libnss_nis.so.2
ELF 791f8000-79204000 Deferred libnss_files.so.2
ELF 7b800000-7b952000 Export kernel32
\-PE 7b810000-7b952000 \ kernel32
ELF 7bc00000-7bcb8000 Export ntdll
\-PE 7bc10000-7bcb8000 \ ntdll
ELF 7bf00000-7bf04000 Deferred
Threads:
process tid prio (all id:s are in hex)
0000000e services.exe
00000014 0
00000010 0
0000000f 0
00000011 winedevice.exe
00000018 0
00000017 0
00000013 0
00000012 0
0000001b (D) C:\UbiSoft\Rayman2\RAYMAN2.EXE
0000001c 0 <==
0000001d explorer.exe
0000001e 0
Backtrace:
=>0 0x00000001 (0x0032fdf4)
1 0x0045fe16 in rayman2 (+0x5fe15) (0x0032fe90)
2 0x7b8556ac call_process_entry+0xb() in kernel32 (0x0032fea8)
3 0x7b8578bb in kernel32 (+0x478ba) (0x0032fee8)
4 0x7bc6fd90 call_thread_func+0xb() in ntdll (0x0032fef8)
5 0x7bc6ff60 call_thread_entry_point+0x6f() in ntdll (0x0032ffc8)
6 0x7bc4b6aa in ntdll (+0x3b6a9) (0x0032ffe8)

זהו בינתיים
כנראה נדווח על באג המשך יבוא...


26 ביוני 2010

הכשלונון בהפעלת Rayman2 בלינוקס


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

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

זה פחות או יותר תמצית העלילה.

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

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

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

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

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

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

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

אז מה טוב בהתקנה של המשחק הישן הזה על לינוקס?

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

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

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

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

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

הניסיון היה להריץ את המשחק דרך wine במערכת אבונטו לינוקס גירסת לוסיד.

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

בניסיון להריץ דרך הקישור ש
env WINEPREFIX="/home/carmit/.wine" wine C:\\windows\\UbiSoft\\SetupUbi.exe -play\ rayman2

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

החלפתי אותו עם התוסף והרצתי והפעם זה לא הצליח
וזה תוכן ההודעה

carmit@carmit-desktop:~/.wine/drive_c/UbiSoft/Rayman2$ wine RAYMAN2.EXE
fixme:ddraw:DirectDrawEnumerateExA flags 0x00000007 not handled
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly
fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 4 and card vendor 0000.
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 153 (GLX)
Minor opcode of failed request: 179 ()
Serial number of failed request: 1233
Current serial number in output stream: 1234

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

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

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

שיהיה לי בהצלחה