PKCHECK(1) pkcheck PKCHECK(1)

pkcheck - بررسی اینکه آیا یک فرایند مجاز است یا خیر

pkcheck [--version] [--help|-h]

pkcheck [--list-temp]

pkcheck [--revoke-temp]

pkcheck --action-id|-a action {--process|-p { pid | pid,pid-start-time | pid,pid-start-time,uid } | --system-bus-name|-s busname} [--allow-user-interaction|-u] [--enable-internal-agent] [--detail|-d key value...]

دستور pkcheck برای بررسی اینکه آیا یک فرایند مشخص‌شده با --process (پایین را ببینید) یا --system-bus-name، برای اقدامِ action مجاز است یا خیر به کار می‌رود. گزینهٔ --detail می‌تواند صفر یا چند بار برای انتقال جزئیات دربارهٔ action استفاده شود. اگر --allow-user-interaction ارسال شود، pkcheck در حین انتظار برای احراز هویت متوقف (block) می‌شود.

اجرای pkcheck --list-temp تمام مجوزهای موقت برای نشست فعلی را فهرست می‌کند و pkcheck --revoke-temp تمام مجوزهای موقت برای نشست فعلی را باطل خواهد کرد.

این دستور یک پوستهٔ واسط ساده بر روی رابط D-Bus برنامهٔ polkit است؛ برای جزئیات به مستندات رابط D-Bus مراجعه کنید.

اگر فرایند مشخص‌شده مجاز باشد، pkcheck با مقدار بازگشتی 0 خارج می‌شود. اگر نتیجهٔ مجوز شامل هرگونه جزئیاتی باشد، این اطلاعات در خروجی استاندارد به‌صورت جفت‌های کلید/مقدار با استفاده از سبک گزارش متغیرهای محیطی چاپ می‌شوند؛ برای مثال ابتدا کلید و به دنبال آن علامت مساوی، سپس مقدار و در پایان یک خط جدید چاپ می‌شود.

KEY1=VALUE1
KEY2=VALUE2
KEY3=VALUE3
...

بایت‌هایی که در محدودهٔ [a-zA-Z0-9_] نیستند، با استفاده از کدهای هشت‌هشتی (octal) با پیشوند \ گریزدهی (escape) می‌شوند. برای نمونه، رشتهٔ UTF-8 با متن føl,你好 به‌صورت f\303\270l\54\344\275\240\345\245\275 چاپ خواهد شد.

اگر فرایند مشخص‌شده مجاز نباشد، pkcheck با مقدار بازگشتی 1 خارج می‌شود و یک پیام تشخیصی در خطای استاندارد چاپ خواهد شد. جزئیات در خروجی استاندارد چاپ می‌شوند.

اگر فرایند مشخص‌شده به این دلیل مجاز نباشد که عامل احراز هویت مناسبی در دسترس نیست یا اگر گزینهٔ --allow-user-interaction ارسال نشده باشد، pkcheck با مقدار بازگشتی 2 خارج می‌شود و یک پیام تشخیصی در خطای استاندارد چاپ می‌گردد. جزئیات در خروجی استاندارد چاپ می‌شوند.

اگر فرایند مشخص‌شده به دلیل رد یا لغو شدن کادر محاوره‌ای / درخواست احراز هویت توسط کاربر مجاز نباشد، pkcheck با مقدار بازگشتی 3 خارج می‌شود و یک پیام تشخیصی در خطای استاندارد به نمایش درمی‌آید. جزئیات در خروجی استاندارد چاپ می‌شوند.

اگر هنگام بررسی مجوز خطایی رخ دهد، pkcheck با مقدار بازگشتی 127 به همراه پیامی تشخیصی در خطای استاندارد خارج می‌شود.

اگر یک یا چند مورد از گزینه‌های ارسال‌شده ناصحیح باشند، pkcheck با مقدار بازگشتی 126 خارج خواهد شد. اگر stdin یک tty باشد، این صفحهٔ راهنما نیز نمایش داده می‌شود.

برای --process از قالب‌های نحویِ خالیِ pid یا pid,start-time استفاده نکنید. در هر دو حالت شرایط رقابتی (race conditions) وجود دارد. کدهای جدید همواره باید از pid,pid-start-time,uid استفاده کنند. مقدار start-time بسته به سیستم‌عامل می‌تواند با بررسی مواردی از قبیل سامانه پروندهٔ proc(5) تعیین شود. اگر کمتر از ۳ آرگومان ارسال شود، pkcheck تلاش می‌کند تا آن‌ها را به‌صورت داخلی جستجو کند، اما توجه داشته باشید که این کار ممکن است با شرایط رقابتی مواجه شود.

اگر برنامهٔ شما یک دیمن با مثلاً یک سوکت دامنه یونیکس (Unix domain socket) سفارشی است، باید پارامتر uid را از طریق سازوکارهای سیستم‌عامل نظیر PEERCRED تعیین کنید.

pkcheck مانند هر برنامهٔ دیگر polkit، از عامل احراز هویت ثبت‌شده برای فرایند مورد نظر استفاده خواهد کرد. با این حال، اگر هیچ عامل احراز هویتی موجود نباشد، چنانچه گزینهٔ --enable-internal-agent ارسال شده باشد، pkcheck می‌تواند عامل احراز هویت متنی خود را ثبت کند.

نوشته‌شده توسط David Zeuthen <davidz@redhat.com> با کمک‌های فراوان از سوی افراد بسیار دیگر.

لطفاً گزارش باگ‌ها را به توزیع خود یا به فهرست رایانامهٔ polkit-devel ارسال کنید، ببینید: https://github.com/polkit-org/polkit#bugs-and-development.

polkit(8), polkitd(8), pkaction(1), pkexec(1), pkttyagent(1)

May 2009 polkit