זוהי הפקודה pkexec שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
pkexec - בצע פקודה כמשתמש אחר
תַקצִיר
pkexec [--גִרְסָה] [--disable-internal-agent] [- עזרה]
pkexec [--מִשׁתַמֵשׁ שם משתמש] תָכְנִית [טיעונים...]
תיאור
pkexec מאפשר למשתמש מורשה לבצע תָכְנִית בתור משתמש אחר. אם שם משתמש לא
שצוין, אז התוכנית תבוצע בתור משתמש העל המנהלתי, שורש.
לַחֲזוֹר ערך
לאחר סיום מוצלח, ערך ההחזר הוא ערך ההחזר של תָכְנִית. אם
תהליך ההתקשרות אינו מורשה או שלא ניתן היה להשיג אישור באמצעותו
אימות או אירעה שגיאה, pkexec יוצא עם ערך החזרה של 127. אם ה
לא ניתן היה להשיג הרשאה מכיוון שהמשתמש ביטל את תיבת הדו-שיח של האימות,
pkexec יוצאים עם ערך החזרה של 126.
אישור סוֹכֵן
pkexec, כמו כל יישום אחר של PolicyKit, ישתמש בסוכן האימות הרשום
לתהליך ההתקשרות. עם זאת, אם אין סוכן אימות זמין, אז pkexec
ירשום סוכן אימות טקסטואלי משלו. ניתן לכבות התנהגות זו על ידי
עובר את --disable-internal-agent אוֹפְּצִיָה.
אבטחה אורים
הפעלת תוכנית כמשתמש אחר היא פעולה מוסמכת. כברירת מחדל
הרשאה (ראה את הסעיף שנקרא "הרשאות נדרשות") דורשת מנהל
אימות. בנוסף, תוצג תיבת האימות המוצגת למשתמש
הנתיב המלא לתוכנית שתתבצע כדי שהמשתמש יהיה מודע למה שיקרה:
[IMAGE][1]
+-------------------------------------------------------- ---------+
| אימות [X] |
+-------------------------------------------------------- ---------+
| |
| [סמל] יש צורך באימות כדי להפעיל `/ bin / bash' |
| בתור משתמש העל |
| |
| יישום מנסה לבצע |
| פעולה הדורשת הרשאות. אימות |
| מכיוון שמשתמש העל נדרש לבצע זאת |
| פעולה. |
| |
| סיסמא לשורש: [_________________________] |
| |
| [V] פרטים: |
| פקודה: / bin / bash |
| הפעל בתור: משתמש סופר (שורש) |
| פעולה: org.freedesktop.policykit.exec |
| ספק: פרויקט PolicyKit |
| |
| [ביטול] [אימות] |
+-------------------------------------------------------- ---------+
הסביבה ש תָכְנִית יפעיל אותו, יוגדר למינימום ידוע ובטוח
סביבה כדי להימנע מהחדרת קוד דרך LD_LIBRARY_PATH או דומה
מנגנונים. בנוסף, משתנה הסביבה PKEXEC_UID מוגדר למזהה המשתמש של
תהליך הפעלת pkexec. כתוצאה, pkexec לא יאפשר לך להפעיל יישומי X11 כ
משתמש אחר מכיוון שמשתני הסביבה $DISPLAY ו-$XAUTHORITY אינם מוגדרים. אלה
שני משתנים יישמרו אם org.freedesktop.policykit.exec.allow_gui ביאור
על פעולה מוגדר לערך שאינו ריק; עם זאת, זה לא מעודד, וצריך להיות רק
משמש עבור תוכניות מדור קודם.
נדרש הרשאות
כברירת מחדל, org.freedesktop.policykit.exec נדרשת אישור אלא אם כן מתבצעת פעולה
קובץ ההגדרה קיים עבור התוכנית המדוברת. כדי לדרוש אישור נוסף,
ניתן לציין זאת באמצעות ה org.freedesktop.policykit.exec.path הערה על פעולה
(ראה סעיף שנקרא "דוגמה" לפרטים).
דוגמא
כדי לציין איזה סוג של הרשאה נדרשת כדי להפעיל את התוכנית
/usr/bin/pk-example-frobnicate כמשתמש אחר, פשוט כתוב קובץ הגדרת פעולה
כזה
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
דוגמאות לפרויקט PolicyKit
http://hal.freedesktop.org/docs/PolicyKit/
הפעל את תוכנית הדוגמה של PolicyKit Frobnicate
Kør PolicyKit exemplet Frobnicate
נדרש אימות כדי להפעיל את תוכנית הדוגמה של PolicyKit Frobnicate (user=$(user), program=$(program), command_line=$(command_line))
Autorisering er påkrævet for at afvikle PolicyKit eksemplet Frobnicate (user=$(user), program=$(program), command_line=$(command_line))
אודיו-x-גנרי
לא
לא
auth_self_keep
/usr/bin/pk-example-frobnicate
ושחרר אותו ב / usr / share / polkit-1 / פעולות ספרייה תחת שם מתאים (למשל
תואם למרחב השמות של הפעולה). שימו לב שבנוסף לציון התוכנית,
ניתן לציין את הודעת האימות, התיאור, הסמל וברירות המחדל. ציין זאת
מופעי המחרוזות $(user), $(program) ו-$(command_line) בהודעה יהיו
הוחלף במשתמש בהתאמה (בצורה "שם אמיתי (שם משתמש)" או רק "שם משתמש"
אם אין שם אמיתי לשם המשתמש), הבינארי לביצוע (נתיב מלא,
למשל "/usr/bin/pk-example-frobnicate") ושורת הפקודה, למשל "pk-example-frobnicate
foo bar". לדוגמה, עבור הפעולה שהוגדרה למעלה, תיבת הדו-שיח של האימות הבאה
יוצג:
[IMAGE][2]
+-------------------------------------------------------- ---------+
| אימות [X] |
+-------------------------------------------------------- ---------+
| |
| [סמל] נדרש אימות כדי להפעיל את PolicyKit |
| תוכנית לדוגמה Frobnicate |
| |
| יישום מנסה לבצע |
| פעולה הדורשת הרשאות. אימות |
| נדרש לבצע פעולה זו. |
| |
| סיסמא: [__________________________________] |
| |
| [V] פרטים: |
| פקודה: /usr/bin/pk-example-frobnicate |
| הפעל בתור: משתמש סופר (שורש) |
| פעולה: org.fd.pk.example.pkexec.run-frobnicate |
| ספק: דוגמאות לפרויקט PolicyKit |
| |
| [ביטול] [אימות] |
+-------------------------------------------------------- ---------+
אם המשתמש משתמש ב-da_DK, תיבת הדו-שיח נראית כך:
[IMAGE][3]
+-------------------------------------------------------- ---------+
| Autorisering [X] |
+-------------------------------------------------------- ---------+
| |
| [אייקון] Autorisering er påkrævet for at afvikle |
| דוגמת PolicyKit Frobnicate |
| |
| Et program tryer at perform and handling der |
| דורש פריבילגי יותר. Autorisering er påkrævet. |
| |
| קודורד: [__________________________________] |
| |
| [V] פרטים: |
| Bruger: משתמש סופר (שורש) |
| תוכנית: /usr/bin/pk-example-frobnicate |
| טיפול: org.fd.pk.example.pkexec.run-frobnicate |
| ספק: דוגמאות לפרויקט PolicyKit |
| |
| [Annullér] [Autorisering] |
+-------------------------------------------------------- ---------+
שים לב כי pkexec לא עושה אימות של טיעונים עבר ל תָכְנִית. במקרה הרגיל
(כאשר נדרש אימות מנהל בכל פעם pkexec משמש), זה לא א
בעיה מכיוון שאם המשתמש הוא מנהל הוא יכול באותה מידה פשוט להפעיל pkexec לחבוט כדי לקבל
שורש.
עם זאת, אם נעשה שימוש בפעולה שעבורה המשתמש יכול לשמור על הרשאה (או אם המשתמש
מורשה באופן מרומז), כמו עם pk-example-frobnicate למעלה, זה יכול להיות
חור אבטחה. לכן, ככלל אצבע, תוכניות שעבורן נדרש ברירת המחדל
ההרשאה השתנתה, לעולם לא אמורה לסמוך באופן מרומז על קלט משתמש (למשל כמו כל אחד אחר
כתוב היטב SUID תכנית).
השתמש ב-pkexec באינטרנט באמצעות שירותי onworks.net