'\" t .\" Title: pkexec .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: May 2009 .\" Manual: pkexec .\" Source: polkit .\" Language: English .\" .TH "PKEXEC" "1" "May 2009" "polkit" "pkexec" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" pkexec \- اجرای یک دستور با هویت کاربری دیگر .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBpkexec\fR\ 'u \fBpkexec\fR [\fB\-\-version\fR] [\fB\-\-disable\-internal\-agent\fR] [\fB\-\-help\fR] .HP \w'\fBpkexec\fR\ 'u \fBpkexec\fR [\fB\-\-keep\-cwd\fR] [\fB\-\-user\fR\ \fIusername\fR] \fIPROGRAM\fR [\fIARGUMENTS\fR...] .SH "توضیحات (DESCRIPTION)" .PP دستور \fBpkexec\fR به یک کاربر مجاز اجازه می‌دهد تا \fIPROGRAM\fR را با هویت کاربری دیگر اجرا کند\&. اگر \fIPROGRAM\fR مشخص نشده باشد، شل پیش‌فرض اجرا خواهد شد\&. اگر \fIusername\fR تعیین نشده باشد، برنامه با هویت کاربر مدیر سیستم، یعنی \fIroot\fR، اجرا خواهد شد\&. .SH "مقدار بازگشتی (RETURN VALUE)" .PP در صورت اتمام موفقیت‌آمیز، مقدار بازگشتی همان مقدار بازگشتی \fIPROGRAM\fR خواهد بود\&. چنانچه فرایند فراخواننده مجاز نباشد، یا مجوز لازم از طریق احراز هویت کسب نشود، یا خطایی رخ دهد، \fBpkexec\fR با مقدار بازگشتی 127 خارج می‌شود\&. اگر به دلیل لغو کردن کادر گفتگوی احراز هویت توسط کاربر، مجوزی حاصل نشود، \fBpkexec\fR با مقدار بازگشتی 126 خارج خواهد شد\&. .SH "عامل احراز هویت (AUTHENTICATION AGENT)" .PP دستور \fBpkexec\fR، مانند هر برنامهٔ polkit دیگری، از عامل احراز هویت ثبت‌شده برای فرایند یا نشست (session) فراخواننده استفاده خواهد کرد\&. با این حال، اگر هیچ عامل احراز هویتی در دسترس نباشد، \fBpkexec\fR عامل احراز هویت متنیِ داخلی خود را ثبت می‌کند\&. این رفتار را می‌توان با ارسال گزینهٔ \fB\-\-disable\-internal\-agent\fR غیرفعال کرد\&. .SH "نکات امنیتی (SECURITY NOTES)" .PP اجرای یک برنامه با هویت کاربری دیگر، یک عملیات ممتاز (privileged) است\&. به‌طور پیش‌فرض، کنشی که باید برای آن بررسی انجام شود (بخش \(lqکنش‌ها و مجوزها (ACTION AND AUTHORIZATIONS)\(rq را ببینید) نیازمند احراز هویت مدیر سیستم است\&. علاوه بر این، کادر گفتگوی احراز هویت که به کاربر نشان داده می‌شود، مسیر کامل برنامه برای اجرا را نمایش می‌دهد تا کاربر از آنچه رخ خواهد داد آگاه باشد\&. .PP محیطی که \fIPROGRAM\fR در آن اجرا خواهد شد، به منظور جلوگیری از تزریق کد از طریق LD_LIBRARY_PATH یا سازوکارهای مشابه، بر روی یک محیط کمینه، شناخته‌شده و امن تنظیم می‌شود\&. علاوه بر این، متغیر محیطی PKEXEC_UID روی شناسهٔ کاربری (UID) فرایندی که \fBpkexec\fR را فراخوانده است تنظیم می‌شود\&. در نتیجه، \fBpkexec\fR به‌طور پیش‌فرض اجازهٔ اجرای برنامه‌های X11 را با هویت کاربری دیگر نخواهد داد، چرا که متغیرهای محیطی $DISPLAY و $XAUTHORITY تنظیم نشده‌اند\&. در صورتی که حاشیه‌نویسی \fIorg\&.freedesktop\&.policykit\&.exec\&.allow_gui\fR روی یک کنش با مقداری غیرخالی مقداردهی شده باشد، این دو متغیر حفظ خواهند شد؛ با این حال، استفاده از این کار توصیه نمی‌شود و فقط باید برای برنامه‌های قدیمی و موروثی (legacy) به کار رود\&. .PP دستور \fBpkexec\fR برنامهٔ \fIPROGRAM\fR را در دایرکتوری خانگی \fIusername\fR اجرا خواهد کرد، مگر اینکه از گزینهٔ \fB\-\-keep\-cwd\fR برای تغییر این رفتار استفاده شود\&. .PP توجه داشته باشید که \fBpkexec\fR هیچ اعتبارسنجی‌ای روی \fIARGUMENTS\fR ارسال‌شده به \fIPROGRAM\fR انجام نمی‌دهد\&. در حالت عادی (که در آن احراز هویت مدیر سیستم با هر بار استفاده از \fBpkexec\fR الزامی است)، این امر مشکلی به وجود نمی‌آورد زیرا اگر کاربر مدیر سیستم باشد، می‌تواند به‌راحتی \fBpkexec bash\fR را برای دسترسی به root اجرا کند\&. .PP با این حال، اگر کنشی استفاده شود که کاربر بتواند مجوز را در آن حفظ کند (یا اگر کاربر به‌طور ضمنی مجاز باشد)، این می‌تواند یک رخنهٔ امنیتی باشد\&. بنابراین، به عنوان یک قاعدهٔ کلی، برنامه‌هایی که مجوز مورد نیاز پیش‌فرض آن‌ها تغییر یافته است، \fBهرگز\fR نباید به‌طور ضمنی به ورودی‌های کاربر اعتماد کنند (به عنوان مثال، مانند هر برنامهٔ خوب‌نوشته‌شدهٔ \fIsuid\fR دیگر)\&. .SH "کنش‌ها و مجوزها (ACTION AND AUTHORIZATIONS)" .PP به‌طور پیش‌فرض، از کنش \fIorg\&.freedesktop\&.policykit\&.exec\fR استفاده می‌شود\&. برای استفاده از کنشی دیگر، از حاشیه‌نویسیِ \fIorg\&.freedesktop\&.policykit\&.exec\&.path\fR روی یک کنش با مقداری که برابر با مسیر کامل برنامه است استفاده کنید\&. علاوه بر تعیین برنامه، می‌توان پیام احراز هویت، شرح، آیکون و مقادیر پیش‌فرض را نیز مشخص کرد\&. اگر حاشیه‌نویسی \fIorg\&.freedesktop\&.policykit\&.exec\&.argv1\fR وجود داشته باشد، کنش تنها در صورتی انتخاب خواهد شد که آرگومان اول برنامه با مقدار این حاشیه‌نویسی مطابقت داشته باشد\&. .PP توجه داشته باشید که پیام‌های احراز هویت ممکن است به متغیرها ارجاع دهند (بخش \(lqمتغیرها (VARIABLES)\(rq را ببینید)؛ برای نمونه، $(user) به مقدار متغیر user بسط می‌یابد\&. .SH "کاربرد به عنوان لفاف (WRAPPER USAGE)" .PP برای جلوگیری از تغییر نرم‌افزارهای موجود جهت افزودن پیشوند \fBpkexec\fR به فراخوانی‌های خط فرمان آن‌ها، می‌توان از \fBpkexec\fR در یک \m[blue]\fBلفاف she\-bang\fR\m[]\&\s-2\u[1]\d\s+2 به این صورت استفاده کرد: .sp .if n \{\ .RS 4 .\} .nf #!/usr/bin/pkexec /usr/bin/python import os import sys print "Hello, I\*(Aqm running as uid %d"%(os\&.getuid()) for n in range(len(sys\&.argv)): print "arg[%d]=`%s\*(Aq"%(n, sys\&.argv[n]) .fi .if n \{\ .RE .\} .PP اگر این اسکریپت در /usr/bin/my\-pk\-test نصب شده باشد، آن‌گاه حاشیه‌نویسی‌های زیر: .sp .if n \{\ .RS 4 .\} .nf [\&.\&.\&.] /usr/bin/python /usr/bin/my\-pk\-test [\&.\&.\&.] .fi .if n \{\ .RE .\} .PP می‌توانند برای انتخاب کنش مناسب polkit استفاده شوند\&. دقت کنید که حاشیه‌نویسی دوم را به‌درستی تنظیم کنید، در غیر این صورت با هر فراخوانی \fBpkexec\fR برای اسکریپت‌های /usr/bin/python تطبیق داده خواهد شد\&. .SH "متغیرها (VARIABLES)" .PP متغیرهای زیر توسط \fBpkexec\fR تنظیم می‌شوند\&. می‌توان از آن‌ها در قواعد صدور مجوز و پیام‌های نمایش‌یافته در کادرهای گفتگوی احراز هویت استفاده کرد: .PP \fIprogram\fR .RS 4 مسیر کامل و مطلق برنامه‌ای که باید اجرا شود\&. مثال: \(lq/bin/cat\(rq .RE .PP \fIcommand_line\fR .RS 4 خط فرمان درخواست‌شده (از این متغیر برای بررسی‌های امنیتی استفاده نکنید، چرا که امن نیست)\&. مثال: \(lqcat /srv/xyz/foobar\(rq .RE .PP \fIuser\fR .RS 4 نام کاربری کاربری که برنامه با هویت او اجرا می‌شود\&. مثال: \(lqdavidz\(rq .RE .PP \fIuser\&.gecos\fR .RS 4 نام کامل کاربری که برنامه با هویت او اجرا می‌شود\&. مثال: \(lqDavid Zeuthen\(rq .RE .PP \fIuser\&.display\fR .RS 4 نمایشی از کاربر اجراکنندهٔ برنامه که برای نمایش در کادر گفتگوی احراز هویت مناسب است\&. معمولاً ترکیبی از نام کاربری و نام کامل تنظیم می‌شود\&. مثال: \(lqDavid Zeuthen (davidz)\(rq .RE .SH "نویسندگان (AUTHORS)" .PP نوشته‌شده توسط David Zeuthen با کمک‌های بسیار از سوی افراد متعدد دیگر\&. .SH "گزارش باگ‌ها (BUGS)" .PP لطفاً گزارش باگ‌ها را به توزیع خود یا به فهرست پستی polkit\-devel ارسال کنید، ببینید: \m[blue]\fB\%https://github.com/polkit-org/polkit#bugs-and-development\fR\m[]\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBpolkit\fR(8), \fBpolkitd\fR(8), \fBpkaction\fR(1), \fBpkcheck\fR(1), \fBpkttyagent\fR(1) .SH "نکات (NOTES)" .IP " 1." 4 لفاف she-bang .RS 4 \%http://en.wikipedia.org/wiki/Shebang_(Unix) .RE