GPGCONF(1) GNU Privacy Guard 2.4 GPGCONF(1)

gpgconf - ابزار پیکربندی و مدیریت دایرکتوری خانگی GnuPG

gpgconf [گزینه‌ها] --list-components
gpgconf [گزینه‌ها] --list-options مؤلفه
gpgconf [گزینه‌ها] --change-options مؤلفه

دستور gpgconf ابزاری برای پرس‌وجو و تغییر خودکار و تا حد معقول امن فایل‌های پیکربندی در دایرکتوری خانگی ‘.gnupg’ است. این ابزار به‌گونه‌ای طراحی شده است که توسط کاربر به‌صورت دستی فراخوانی نشود، بلکه به‌طور خودکار توسط رابط‌های گرافیکی کاربر (GUI) اجرا گردد. ([لطفاً توجه داشته باشید که در حال حاضر هیچ قفل‌گذاری انجام نمی‌شود، بنابراین باید از دسترسی هم‌زمان خودداری شود. تدابیری برای جلوگیری از خرابی اطلاعات در استفاده هم‌زمان در نظر گرفته شده است، اما نتایج ممکن است ناسازگار باشند و برخی تغییرات از دست بروند. طراحی بدون وضعیت (stateless) ارائه ضمانت‌های بیشتر را دشوار می‌کند.])

ابزار gpgconf دسترسی به پیکربندی یک یا چند مؤلفه از سامانه GnuPG را فراهم می‌کند. این مؤلفه‌ها کم‌وبیش متناظر با برنامه‌های موجود در چارچوب GnuPG هستند، مانند GPG، GPGSM، DirMngr و غیره؛ اما این یک رابطه تناظر یک‌به‌یک دقیق نیست. تمام گزینه‌های پیکربندی از طریق gpgconf در دسترس نیستند. gpgconf یک روش کلی و انتزاعی برای دسترسی به مهم‌ترین گزینه‌های پیکربندی که امکان کنترل آن‌ها از طریق چنین سازوکاری وجود دارد، فراهم می‌سازد.

ابزار gpgconf می‌تواند برای جمع‌آوری و تغییر گزینه‌های موجود در هر مؤلفه استفاده شود و همچنین می‌تواند مقادیر پیش‌فرض آن‌ها را ارائه دهد. gpgconf اطلاعات دقیقی درباره نوع داده‌ها ارائه می‌دهد که می‌توان از آن برای محدود کردن ورودی کاربر بدون تلاش برای اعمال تغییرات استفاده کرد.

ابزار gpgconf بخش پشتیبان (backend) یک ویرایشگر پیکربندی را فراهم می‌کند. ویرایشگر پیکربندی معمولاً یک برنامه با رابط کاربری گرافیکی است که گزینه‌های فعلی، مقادیر پیش‌فرض آن‌ها را نمایش می‌دهد و به کاربر امکان می‌دهد گزینه‌ها را تغییر دهد. سپس این تغییرات را می‌توان مجدداً با gpgconf فعال کرد. چنین برنامه‌ای که از gpgconf به این روش استفاده می‌کند، در سراسر این بخش GUI نامیده می‌شود.

باید یکی از دستورهای زیر داده شود:

فهرست کردن تمام مؤلفه‌ها. این دستور پیش‌فرضی است که در صورت مشخص نشدن هیچ دستوری، استفاده می‌شود.
فهرست کردن تمام برنامه‌های پشتیبان موجود و آزمایش این که آیا قابل اجرا هستند یا خیر.
فهرست کردن تمام گزینه‌های مؤلفه component.
تغییر گزینه‌های مؤلفه component.
بررسی گزینه‌های مؤلفه component.
اعمال تنظیمات پیکربندی فهرست‌شده در file بر فایل‌های پیکربندی. اگر file پسوند و اسلش نداشته باشد، دستور ابتدا تلاش می‌کند فایلی با پسوند .prf را از دایرکتوری داده‌ها (gpgconf --list-dirs datadir) بخواند و سپس فایل را عیناً می‌خواند. یک نمایه با استفاده از نام مؤلفه داخل قلاب (براکت) به بخش‌ها تقسیم می‌شود. هر بخش سپس گزینه‌ای را که باید به فایل پیکربندی مربوطه برود، فهرست می‌کند.
به‌روزرسانی تمام فایل‌های پیکربندی با مقادیر گرفته‌شده از فایل پیکربندی سراسری (معمولاً ‘/etc/gnupg/gpgconf.conf’). نکته: این یک سازوکار قدیمی است؛ لطفاً در عوض از فایل‌های پیکربندی سراسری استفاده کنید.
فهرست کردن دایرکتوری‌های مورداستفاده توسط gpgconf. در هر خط یک دایرکتوری فهرست می‌شود و هر خط شامل یک فهرست جداشده با دونقطه است که فیلد اول نوع دایرکتوری را مشخص می‌کند (برای مثال sysconfdir) و فیلد دوم شامل مسیر دایرکتوری با کدگذاری درصدی است. با اینکه نام فایل‌های سوکت مورداستفاده توسط gpg-agent و dirmngr دایرکتوری نیستند، آن‌ها نیز چاپ می‌شوند. توجه داشته باشید که نام فایل‌های سوکت و خطوط homedir نام‌های پیش‌فرض هستند و ممکن است با گزینه‌های خط فرمان بازنویسی شوند. اگر names داده شود، تنها دایرکتوری‌ها یا نام‌های فایل مشخص‌شده در فهرست اسامی بدون هیچ‌گونه کدگذاری چاپ می‌شوند.
فهرست کردن فایل پیکربندی سراسری در قالبی جداشده با دونقطه. اگر filename داده شود، به جای آن، آن فایل بررسی می‌شود.
اجرای بررسی ساختاری (syntax check) روی فایل پیکربندی سراسری. اگر filename داده شود، به جای آن، آن فایل بررسی می‌شود.
بازگرداندن نگارش فعلی برای package_name و در صورت ارائه version_string، نشانگری درباره اینکه آیا به‌روزرسانی در دسترس است یا خیر. فایل واقعی حاوی نگارش نرم‌افزار به طور خودکار توسط dirmngr بارگیری و بررسی می‌شود. ابزار dirmngr از آستانه‌هایی برای جلوگیری از بارگیری بیش از حد مکرر فایل استفاده می‌کند و این کار را به طور پیش‌فرض فقط در صورتی انجام می‌دهد که از طریق Tor امکان‌پذیر باشد. برای اجبار به به‌روزرسانی آن فایل، می‌توان از این دستور استفاده کرد:
gpg-connect-agent --dirmngr 'loadswdb --force' /bye
بارگذاری مجدد همه مؤلفه‌ها یا مؤلفه مشخص‌شده. این کار اساساً همانند ارسال سیگنال SIGHUP به مؤلفه است. مؤلفه‌هایی که از بارگذاری مجدد پشتیبانی نمی‌کنند نادیده گرفته می‌شوند. بدون component یا با استفاده از "all" برای component، تمام مؤلفه‌هایی که دیمن هستند مجدداً بارگذاری می‌شوند.
اگر component از قبل در حال اجرا نیست، آن را آغاز می‌کند. component باید یک دیمن باشد. این کار به‌طور کلی لازم نیست زیرا سیستم این دیمن‌ها را در صورت نیاز اجرا می‌کند. با این حال، نرم‌افزارهای خارجی که مستقیماً از gpg-agent یا dirmngr استفاده می‌کنند، ممکن است از این دستور برای اطمینان از آغاز به کار آن‌ها استفاده نمایند. استفاده از "all" برای component تمام مؤلفه‌هایی را که دیمن هستند راه‌اندازی می‌کند.
متوقف کردن (kill) مؤلفه مشخص‌شده که به عنوان دیمن اجرا می‌شود، از جمله gpg-agent، dirmngr و scdaemon. مؤلفه‌ای که به عنوان دیمن اجرا نمی‌شود نادیده گرفته خواهد شد. استفاده از "all" برای component تمام مؤلفه‌های در حال اجرا به عنوان دیمن را متوقف می‌کند. توجه داشته باشید که در حال حاضر reload و kill تأثیر یکسانی روی scdaemon دارند.
ایجاد دایرکتوری برای سوکت‌ها زیر مسیر /run/user یا /var/run/user. این دستور فقط در صورتی لازم است که از یک دایرکتوری خانگی غیرپیش‌فرض استفاده شود و قرار باشد از سوکت‌های مبتنی بر /run استفاده شود. برای دایرکتوری خانگی پیش‌فرض، GnuPG دایرکتوری را به صورت خودکار و در لحظه ایجاد می‌کند.
حذف دایرکتوری ایجادشده با دستور --create-socketdir.
حذف یک فایل قفل کهنه (stale) نگه‌داشته‌شده برای ‘file’. انتظار می‌رود این فایل در دایرکتوری خانگی فعلی GnuPG باشد. این دستور معمولاً لازم نیست زیرا GnuPG قادر به تشخیص و حذف فایل‌های قفل کهنه است. پیش از استفاده از این دستور مطمئن شوید فایلی که توسط فایل قفل محافظت می‌شود واقعاً در حال استفاده نیست. از دستور lock می‌توان برای ایجاد مجدد قفلی که تصادفاً حذف شده استفاده کرد. توجه داشته باشید که این دستورها در ویندوز اثری ندارند زیرا صرف وجود فایل قفل به معنی فعال بودن قفل نیست.

گزینه‌های زیر ممکن است استفاده شوند:

نوشتن خروجی در file. حالت پیش‌فرض، نوشتن در خروجی استاندارد (stdout) است.
ارائه اطلاعات بیشتر هنگام اجرا. به طور مشخص، این گزینه توضیحات خوانا برای انسان را به مقادیر عددی فیلدها اضافه می‌کند.
تلاش برای کم‌صدا بودن تا حد ممکن (کاهش خروجی‌ها).
تنظیم نام دایرکتوری خانگی روی dir. اگر از این گزینه استفاده نشود، دایرکتوری خانگی به طور پیش‌فرض روی ‘~/.gnupg’ قرار می‌گیرد. این گزینه فقط زمانی شناسایی می‌شود که در خط فرمان داده شود. همچنین هر دایرکتوری خانگی تعیین‌شده از طریق متغیر محیطی ‘GNUPGHOME’ یا (در سیستم‌های ویندوز) از طریق مدخل رجیستری HKCU\Software\GNU\GnuPG:HomeDir را بازنویسی می‌کند.

در سیستم‌های ویندوز امکان نصب GnuPG به عنوان یک برنامه قابل حمل (portable) وجود دارد. در این حالت فقط این گزینه خط فرمان لحاظ می‌شود و تمام روش‌های دیگر تنظیم دایرکتوری خانگی نادیده گرفته می‌شوند.

تغییر کاربر فعلی به uid که می‌تواند یک عدد یا یک نام باشد. این گزینه می‌تواند از حساب کاربری root برای دریافت اطلاعات درباره محیط GnuPG کاربر مشخص‌شده یا برای راه‌اندازی یا متوقف کردن دیمن‌ها استفاده شود. اگر uid برابر با UID فعلی نباشد، یک PATH استاندارد تنظیم شده و متغیر محیطی GNUPGHOME لغو تنظیم (unset) می‌شود. برای بازنویسی این مورد اخیر، می‌توان از گزینه --homedir استفاده کرد. این گزینه در حال حاضر در ویندوز اثری ندارد.
عملاً چیزی را تغییر ندهد. این گزینه در حال حاضر فقط برای --change-options پیاده‌سازی شده و می‌تواند برای اهداف آزمایشی استفاده شود.
فقط همراه با --change-options استفاده می‌شود. اگر یکی از گزینه‌های تغییریافته بتواند در یک فرایند دیمن در حال اجرا تغییر یابد، به دیمن در حال اجرا سیگنال می‌دهد تا فایل پیکربندی خود را پس از تغییر مجدداً تجزیه و اعمال کند.

این بدان معناست که تغییرات تا جایی که امکان‌پذیر باشد در زمان اجرا اعمال خواهند شد. در غیر این صورت، در شروع بعدی برنامه‌های پشتیبان مربوطه اعمال می‌شوند.

--status-fd n
نوشتن رشته‌های وضعیت ویژه در توصیف‌گر فایل n. این برنامه پیام‌های وضعیت SUCCESS یا FAILURE را بازمی‌گرداند که زمانی که فراخواننده از روش انشعاب دوگانه (double fork) استفاده می‌کند و نمی‌تواند به راحتی کد بازگشتی فرایند را دریافت کند، مفید است.

دستور --list-components تمام مؤلفه‌هایی را که می‌توان با gpgconf پیکربندی کرد، فهرست می‌کند. معمولاً یک مؤلفه با یک برنامه مرتبط با GnuPG مطابقت دارد و حاوی گزینه‌های فایل پیکربندی آن برنامه است که می‌توان آن‌ها را با استفاده از gpgconf تغییر داد. با این حال، این لزوماً همواره صادق نیست. یک مؤلفه ممکن است گروهی از گزینه‌های منتخب از چندین برنامه باشد، یا حاوی گزینه‌های کاملاً مجازی باشد که به جای تغییر دقیق یک گزینه در یک فایل پیکربندی، اثر خاصی دارند.

یک مؤلفه مجموعه‌ای از گزینه‌های پیکربندی است که از نظر معنایی به هم مرتبط هستند. علاوه بر این، چندین تغییر در یک مؤلفه را می‌توان به روشی اتمی (انفکاک‌ناپذیر) با یک عملیات واحد انجام داد. برای مثال، GUI می‌تواند منویی با یک مدخل برای هر مؤلفه، یا پنجره‌ای با یک برگه برای هر مؤلفه ارائه دهد.

دستور --list-components تمام مؤلفه‌های موجود را، یک مورد در هر خط، فهرست می‌کند. قالب هر خط به این صورت است:

name:description:pgmname:

این فیلد حاوی برچسب نام مؤلفه است. برچسب نام برای مشخص کردن مؤلفه در تمام ارتباطات با gpgconf استفاده می‌شود. برچسب نام باید به صورت عینی (verbatim) استفاده شود. بنابراین در هیچ فرمت اسکیپ‌شده‌ای نیست.
رشته string در این فیلد حاوی توضیحی خوانا برای انسان از مؤلفه است. می‌توان آن را برای اهداف اطلاع‌رسانی به کاربر GUI نمایش داد. این فیلد percent-escaped (کدگذاری درصدی) و localized (محلی‌سازی‌شده) است.
رشته string در این فیلد حاوی نام مطلق فایل برنامه است. می‌توان از آن برای فراخوانی بدون ابهام آن برنامه استفاده کرد. این فیلد percent-escaped است.

مثال:

$ gpgconf --list-components
gpg:GPG for OpenPGP:/usr/local/bin/gpg2:
gpg-agent:GPG Agent:/usr/local/bin/gpg-agent:
scdaemon:Smartcard Daemon:/usr/local/bin/scdaemon:
gpgsm:GPG for S/MIME:/usr/local/bin/gpgsm:
dirmngr:Directory Manager:/usr/local/bin/dirmngr:

 

دستور --check-programs شبیه به --list-components است اما روی برنامه‌های پشتیبان عمل می‌کند نه روی مؤلفه‌ها. این دستور هر برنامه را اجرا می‌کند تا بررسی کند که آیا نصب شده و قابل اجرا است یا خیر. این کار همچنین شامل بررسی ساختاری تمام گزینه‌های فایل پیکربندی برنامه می‌شود.

دستور --check-programs تمام برنامه‌های موجود را، یک برنامه در هر خط، فهرست می‌کند. قالب هر خط به این صورت است:

name:description:pgmname:avail:okay:cfgfile:line:error:

این فیلد حاوی برچسب نام برنامه است که با نام مؤلفه یکسان است. برچسب نام باید به صورت عینی (verbatim) استفاده شود و بنابراین در هیچ قالب اسکیپ‌شده‌ای نیست. این فیلد ممکن است خالی باشد تا نشان‌دهنده ادامه توضیحات خطا برای آخرین نام باشد. فیلدهای description و pgmname نیز در این صورت خالی هستند.
رشته string در این فیلد شامل یک توضیح خوانا برای انسان از مؤلفه است. می‌توان آن را برای اهداف اطلاع‌رسانی به کاربر GUI نمایش داد. این مقدار percent-escaped و localized است.
رشته string در این فیلد شامل نام مطلق فایل برنامه است. می‌توان از آن برای اجرای صریح و بدون ابهام برنامه استفاده کرد. این رشته percent-escaped است.
مقدار بولی (boolean value) در این فیلد نشان می‌دهد که آیا برنامه نصب شده و قابل اجرا است یا خیر.
مقدار بولی (boolean value) در این فیلد نشان می‌دهد که آیا فایل پیکربندی برنامه از نظر ساختاری صحیح است یا خیر.
اگر خطایی در فایل پیکربندی رخ داده باشد (همان‌طور که با مقدار نادرست در فیلد okay مشخص می‌شود)، این فیلد نام فایل پیکربندی دارای خطا را شامل می‌شود. این فیلد percent-escaped است.
اگر خطایی در فایل پیکربندی رخ داده باشد، این فیلد شماره خط دستور دارای خطا در فایل پیکربندی را شامل می‌شود. این یک عدد بدون علامت است.
اگر خطایی در فایل پیکربندی رخ داده باشد، این فیلد متن خطای عبارت ناموفق در فایل پیکربندی را نشان می‌دهد. این فیلد percent-escaped و localized است.

در مثال زیر، برنامه dirmngr قابل اجرا نیست و فایل پیکربندی scdaemon دارای اشکال است.

$ gpgconf --check-programs
gpg:GPG for OpenPGP:/usr/local/bin/gpg2:1:1:
gpg-agent:GPG Agent:/usr/local/bin/gpg-agent:1:1:
scdaemon:Smartcard Daemon:/usr/local/bin/scdaemon:1:0:
gpgsm:GPG for S/MIME:/usr/local/bin/gpgsm:1:1:
dirmngr:Directory Manager:/usr/local/bin/dirmngr:0:0:

دستور --check-options فایل پیکربندی را به همان شیوه --check-programs بررسی می‌کند، اما فقط برای مؤلفه component.

 

هر مؤلفه شامل یک یا چند گزینه است. گزینه‌ها ممکن است در گروه‌های گزینه‌ای گردآوری شوند تا به GUI امکان دهد سرنخ‌های بصری درباره گزینه‌های مرتبط با یکدیگر را به کاربر ارائه دهد.

دستور --list-options تمام گزینه‌ها (و گروه‌هایی که به آن‌ها تعلق دارند) را در مؤلفه component، یک مورد در هر خط فهرست می‌کند. component باید رشته موجود در فیلد name در خروجی دستور --list-components باشد.

برای هر گزینه و هر گروه یک خط وجود دارد. ابتدا تمام گزینه‌هایی که در هیچ گروهی نیستند می‌آیند. سپس خطی برای توصیف یک گروه می‌آید. پس از آن تمام گزینه‌های متعلق به هر گروه می‌آیند. سپس گروه بعدی و به همین ترتیب. الزامی به وجود هیچ گروهی نیست (و در این حالت خروجی پس از آخرین گزینه غیرگروهی متوقف خواهد شد).

قالب هر خط به این صورت است:

name:flags:level:description:type:alt-type:argname:default:argdef:value

این فیلد حاوی یک برچسب نام برای گروه یا گزینه است. این برچسب نام برای مشخص کردن گروه یا گزینه در تمام ارتباطات با gpgconf استفاده می‌شود. برچسب نام باید به صورت عینی (verbatim) استفاده شود و بنابراین در هیچ فرمت اسکیپ‌شده‌ای نیست.
فیلد flags شامل یک عدد بدون علامت است. مقدار آن حاصل ترکیب بیتی (OR) مقادیر فلگ‌های زیر است:
group (1)
اگر این فلگ تنظیم شده باشد، این خط توصیف‌کننده یک گروه است نه یک گزینه.

مقادیر فلگ‌های زیر فقط برای گزینه‌ها تعریف شده‌اند (یعنی اگر فلگ group استفاده نشده باشد).

اگر این فلگ تنظیم شده باشد، آرگومان اختیاری است. این مقدار هرگز برای گزینه‌های با نوع type برابر با 0 (هیچ/none) تنظیم نمی‌شود.
اگر این فلگ تنظیم شده باشد، گزینه می‌تواند چندین بار مشخص شود.
runtime (8)
اگر این فلگ تنظیم شده باشد، گزینه می‌تواند در زمان اجرا تغییر یابد.
default (16)
اگر این فلگ تنظیم شده باشد، یک مقدار پیش‌فرض در دسترس است.
default desc (32)
اگر این فلگ تنظیم شده باشد، یک مقدار پیش‌فرض (در زمان اجرا) در دسترس است. این فلگ و فلگ default مانعة‌الجمع (mutually exclusive) هستند.
اگر این فلگ تنظیم شده باشد و فلگ optional arg نیز فعال باشد، در صورتی که هیچ آرگومانی داده نشود گزینه معنای خاصی دارد.
اگر این فلگ تنظیم شده باشد، gpgconf درخواست‌های تغییر مقدار را نادیده می‌گیرد. رابط‌های کاربری گرافیکی (GUI) باید این گزینه را خاکستری (غیرفعال) کنند. توجه داشته باشید که اعمال تغییرات دستی در فایل‌های پیکربندی همچنان امکان‌پذیر است.
این فیلد برای گزینه‌ها و گروه‌ها تعریف شده است. این فیلد شامل یک عدد بدون علامت است که سطح مهارت (expert level) موردنیاز برای نمایش گروه یا گزینه را مشخص می‌کند. سطوح مهارت زیر برای گزینه‌ها تعریف شده‌اند (و معنای مشابهی برای گروه‌ها دارند):
این گزینه همیشه باید به کاربر ارائه شود.
این گزینه ممکن است به کاربران پیشرفته ارائه گردد.
این گزینه فقط باید به کاربران متخصص ارائه شود.
این گزینه معمولاً هرگز نباید نمایش داده شود، حتی برای کاربران متخصص.
این گزینه فقط برای استفاده داخلی است. آن را نادیده بگیرید.

سطح یک گروه همیشه پایین‌ترین سطح از تمام گزینه‌های موجود در آن خواهد بود.

این فیلد برای گزینه‌ها و گروه‌ها تعریف شده است. رشته string در این فیلد شامل شرحی خوانا برای انسان از گزینه یا گروه است. می‌توان آن را برای اهداف اطلاع‌رسانی به کاربر GUI نمایش داد. این فیلد percent-escaped و localized است.
این فیلد فقط برای گزینه‌ها تعریف شده است. این فیلد شامل یک عدد بدون علامت است که نوع آرگومان گزینه را (در صورت وجود) مشخص می‌کند. انواع زیر تعریف شده‌اند:

انواع پایه:

هیچ آرگومانی مجاز نیست.
یک رشته قالب‌بندی‌نشده.
یک عدد علامت‌دار.
یک عدد بدون علامت.

انواع پیچیده:

یک رشته که مسیر یک فایل را توصیف می‌کند. فایل لزوماً نیازی به وجود داشتن ندارد.
یک رشته که یک کارساز LDAP را در این قالب توصیف می‌کند:

hostname:port:username:password:base_dn

یک رشته با اثرانگشت ۴۰ رقمی که یک گواهی را مشخص می‌کند.
یک رشته که یک گواهی را بر اساس شناسه کاربر، شناسه کلید یا اثرانگشت توصیف می‌کند.
یک رشته که یک گواهی را همراه با کلید بر اساس شناسه کاربر، شناسه کلید یا اثرانگشت توصیف می‌کند.
یک رشته که فهرست نام‌های مستعار را توصیف می‌کند، مانند موردی که با گزینه گروه در gpg استفاده می‌شود. این فهرست شامل یک کلید، علامت مساوی و مقادیر جداشده با فاصله است.

انواع بیشتری در آینده اضافه خواهند شد. لطفاً برای اطلاعات در مورد نحوه برخورد با انواع ناشناخته، فیلد alt-type را ببینید.

این فیلد با type یکسان است، با این تفاوت که فقط انواع 0 تا 31 مجاز هستند. از GUI انتظار می‌رود گزینه را در قالبی که توسط type مشخص شده به کاربر ارائه دهد. اما اگر نوع آرگومان type توسط GUI پشتیبانی نشود، همچنان می‌تواند گزینه را در نوع پایه عمومی‌تر alt-type نمایش دهد. GUI باید از تمام انواع پایه تعریف‌شده پشتیبانی کند تا بتواند همه گزینه‌ها را نمایش دهد. انواع پایه بیشتری ممکن است در نگارش‌های آینده اضافه شوند. اگر GUI با نوع پایه‌ای مواجه شود که از آن پشتیبانی نمی‌کند، باید خطایی گزارش کرده و عملیات را متوقف نماید.
این فیلد فقط برای گزینه‌هایی با نوع آرگومان type غیر از 0 تعریف شده است. در این حالت ممکن است شامل رشته‌ای با کدگذاری درصدی و محلی‌سازی‌شده (percent-escaped and localized string) باشد که نام کوتاهی برای آرگومان ارائه می‌دهد. این فیلد همچنین ممکن است خالی باشد که در این حالت نام کوتاهی شناخته‌شده نیست.
این فیلد فقط برای گزینه‌هایی تعریف شده است که فلگ default یا default desc برای آن‌ها تنظیم شده باشد. اگر فلگ default تنظیم شده باشد، قالب آن همانند یک آرگومان گزینه است. اگر مقدار پیش‌فرض خالی باشد، هیچ مقدار پیش‌فرضی شناخته نشده است؛ در غیر این صورت، این مقدار مقدار پیش‌فرض را برای این گزینه مشخص می‌کند. اگر فلگ default desc تنظیم شده باشد، این فیلد یا خالی است یا شامل شرحی از اثر در صورت مشخص نشدن گزینه است.
این فیلد فقط برای گزینه‌هایی تعریف شده است که فلگ optional arg برای آن‌ها تنظیم شده باشد. اگر فلگ no arg desc تنظیم نشده باشد، قالب آن همانند یک آرگومان گزینه است. اگر مقدار پیش‌فرض خالی باشد، هیچ پیش‌فرضی شناخته نشده است؛ در غیر این صورت، این مقدار آرگومان پیش‌فرض را برای این گزینه مشخص می‌کند. اگر فلگ no arg desc تنظیم شده باشد، این فیلد یا خالی است یا شامل شرحی از اثر این گزینه در صورت ارائه نشدن هیچ آرگومانی است.
این فیلد فقط برای گزینه‌ها تعریف شده است. قالب آن مانند یک آرگومان گزینه است. اگر خالی باشد، گزینه به‌صراحت در پیکربندی فعلی تنظیم نشده و مقدار پیش‌فرض (در صورت وجود) اعمال می‌شود. در غیر این صورت، شامل مقدار فعلی گزینه است. توجه داشته باشید که این فیلد حتی در صورتی که خود گزینه آرگومان واقعی نگیرد نیز معنادار است (در این حالت، شامل تعداد دفعات تکرار گزینه است).

 

دستور تغییر گزینه‌های مؤلفه component به مقادیر مشخص‌شده. component باید رشته موجود در فیلد name در خروجی دستور --list-components باشد. شما باید گزینه‌هایی را که باید تغییر کنند در قالب زیر روی ورودی استاندارد ارائه دهید:

name:flags:new-value

این نام گزینه‌ای است که باید تغییر کند. name باید رشته موجود در فیلد name در خروجی دستور --list-options باشد.
فیلد flags شامل یک عدد بدون علامت است. مقدار آن حاصل ترکیب بیتی (OR) مقادیر فلگ‌های زیر است:
default (16)
اگر این فلگ تنظیم شود، گزینه حذف شده و در عوض از مقدار پیش‌فرض استفاده می‌شود (در صورت کاربرد).
مقدار جدید برای گزینه. این فیلد فقط در صورتی تعریف شده است که فلگ default تنظیم نشده باشد. قالب آن مانند یک آرگومان گزینه است. اگر خالی باشد (یا فیلد حذف شود)، آرگومان پیش‌فرض استفاده می‌شود (فقط در صورتی مجاز است که آرگومان برای این گزینه اختیاری باشد). در غیر این صورت، گزینه روی مقدار مشخص‌شده تنظیم خواهد شد.

خروجی این دستور همانند خروجی دستور --check-options برای فایل پیکربندی تغییریافته است.

مثال‌ها:

برای تنظیم گزینه force که از نوع پایه none (0) است:

$ echo 'force:0:1' | gpgconf --change-options dirmngr

برای حذف گزینه force:

$ echo 'force:16:' | gpgconf --change-options dirmngr

گزینه --runtime می‌تواند بر زمان اعمال تغییرات تأثیر بگذارد.

 

برخی از برنامه‌های قدیمی به فایل پیکربندی سراسری خود ابزار gpgconf نگاه می‌کنند؛ این فایل ‘gpgconf.conf’ است. برنامه‌های امروزی نباید از آن استفاده کنند، بلکه باید از فایل‌های پیکربندی سراسری به ازای هر مؤلفه استفاده کنند که انعطاف‌پذیرتر از ‘gpgconf.conf’ هستند. استفاده هم‌زمان از هر دو فایل پیشنهاد نمی‌شود.

فرمت فهرست‌بندی جداشده با دونقطه به صورت رکورد‌محور است و از فیلد اول برای شناسایی نوع رکورد استفاده می‌کند:

این یک رکورد کلید را برای شروع تعریف یک مجموعه قوانین جدید برای یک کاربر/گروه توصیف می‌کند. قالب یک رکورد کلید به این صورت است:


k:user:group:

این فیلد کاربرِ کلید است. این فیلد دارای کدگذاری درصدی (percent escaped) است. برای جزئیات به تعریف قالب gpgconf.conf مراجعه کنید.
این فیلد گروهِ کلید است. این فیلد دارای کدگذاری درصدی (percent escaped) است.
این یک رکورد قاعده (rule) را توصیف می‌کند. تمام رکوردهای قاعده تا رکورد کلید بعدی، یک مجموعه قانون را برای آن کلید تشکیل می‌دهند. قالب یک رکورد قاعده به این صورت است:


r:::component:option:flag:value:

این بخش مؤلفه از یک قاعده است. این یک رشته ساده است.
این بخش گزینه از یک قاعده است. این یک رشته ساده است.
این بخش فلگ یک قاعده است. در هر قاعده فقط یک فلگ می‌تواند وجود داشته باشد، اما با استفاده از همان مؤلفه و گزینه، می‌توان چندین فلگ را به یک گزینه اختصاص داد. این یک رشته ساده است.
این مقدار اختیاری برای گزینه است. این یک رشته با کدگذاری درصدی است که با یک علامت نقل‌قول تکی همراه است تا رشته بودن را نشان دهد. علامت نقل‌قول فقط برای تمایز بین عدم تعیین مقدار و یک رشته خالی لازم است.

انواع رکوردهای ناشناخته باید نادیده گرفته شوند. توجه داشته باشید که تعمداً هیچ قابلیتی برای تغییر فایل گزینه‌های سراسری از طریق gpgconf وجود ندارد.

 

پروژه GnuPG یک کارساز را برای استعلام نگارش‌های فعلی بسته‌های نرم‌افزاری مرتبط با GnuPG اداره می‌کند. از gpgconf می‌توان برای دسترسی به این پایگاه داده برخط استفاده کرد. برای امکان‌پذیر ساختن عملیات آفلاین، این قابلیت به این صورت عمل می‌کند که dirmngr فایلی را از https://versions.gnupg.org بارگیری می‌کند، امضای آن فایل را بررسی کرده و فایل را در دایرکتوری خانگی GnuPG ذخیره می‌نماید. اگر از gpgconf استفاده شود و dirmngr در حال اجرا باشد، ممکن است از dirmngr بخواهد قبل از اینکه خود از فایل استفاده کند، آن فایل را تازه‌سازی نماید.

دستور --query-swdb اطلاعات مربوط به بسته داده‌شده را در قالبی جداشده با دونقطه بازمی‌گرداند:

این نام بسته بر اساس درخواست است. توجه داشته باشید که "gnupg" یک نام ویژه است که با بسته واقعی ارائه‌دهنده این نگارش GnuPG جایگزین می‌شود. برای این نام همچنین نیازی به مشخص کردن نگارش نیست زیرا gpgconf در این حالت نگارش خود را در نظر می‌گیرد.
نگارش نصب‌شده فعلی یا یک رشته خالی. این مقدار از آرگومان خط فرمان گرفته می‌شود، اما در صورت عدم ارائه ممکن است توسط gpg ارائه شود.
وضعیت بسته نرم‌افزاری بر اساس این جدول:
-
هیچ اطلاعاتی در دسترس نیست. این یا به این دلیل است که نگارش فعلی مشخص نشده یا به دلیل بروز یک خطا است.
?
نام داده‌شده در پایگاه داده برخط شناخته‌شده نیست.
یک به‌روزرسانی برای نرم‌افزار در دسترس است.
نگارش نصب‌شده نرم‌افزار به‌روز است.
نگارش نصب‌شده در حال حاضر جدیدتر از نگارش منتشرشده است.
اگر مقدار (رشته خالی باید صفر در نظر گرفته شود) بزرگتر از صفر باشد، یک به‌روزرسانی مهم در دسترس است.
این فیلد یک کد خطای gpg-error را برای تمایز بین حالات مختلف شکست بازمی‌گرداند.
این فیلد تاریخ فایل حاوی شماره‌های نگارش را در قالب استاندارد ISO (yyyymmddThhmmss) ارائه می‌دهد. تاریخ توسط dirmngr از امضای فایل استخراج شده است.
این فیلد تاریخی را در قالب ISO نشان می‌دهد که فایل بارگیری شده است. از این مقدار می‌توان برای ارزیابی تازگی اطلاعات استفاده کرد.
این فیلد رشته نگارش نرم‌افزار درخواست‌شده را از فایل بازمی‌گرداند.
این فیلد تاریخ انتشار را در قالب ISO بازمی‌گرداند.
این فیلد اندازه بسته را به عنوان یک عدد ده‌دهی از بایت‌ها بازمی‌گرداند.
این فیلد یک هش SHA-2 به صورت هگزادسیمال از بسته را بازمی‌گرداند.

ممکن است در آینده فیلدهای بیشتری به خروجی اضافه شود.

در یونیکس ‘gpgconf.ctl’ ممکن است برای تغییر برخی از دایرکتوری‌های کامپایل‌شده در برنامه که انتظار می‌رود مؤلفه‌های GnuPG در آن‌ها باشند، استفاده شود. انتظار می‌رود این فایل در همان دایرکتوری ‘gpgconf’ قرار داشته باشد. دایرکتوری‌های فیزیکی نصب ارزیابی می‌شوند و نه پیوندهای نمادین (symlinks). خطوط خالی و خطوطی که با علامت پوند (#) شروع می‌شوند در فایل نادیده گرفته می‌شوند. کلمات کلیدی باید با فاصله‌های خالی اختیاری، یک علامت مساوی، فاصله‌های خالی اختیاری و مقدار مربوطه دنبال شوند. متغیرهای محیطی به شیوه استاندارد پوسته جایگزین می‌شوند، مقدار نهایی باید با یک اسلش شروع شود و اسلش‌های پایانی حذف می‌شوند. کلمات کلیدی معتبر عبارتند از rootdir، sysconfdir، socketdir و .enable. هیچ خطایی برای کلمات کلیدی ناشناخته چاپ نمی‌شود. کلمه کلیدی .enable ویژه است: اگر از این کلمه کلیدی استفاده شود و مقدار آن درست (true) ارزیابی شود، کل فایل نادیده گرفته می‌شود.

در ویندوز این فایل برای نصب GnuPG به عنوان یک برنامه قابل حمل (portable) استفاده می‌شود. انتظار می‌رود یک فایل خالی به نام ‘gpgconf.ctl’ در همان دایرکتوری ابزار ‘gpgconf.exe’ وجود داشته باشد. ریشه نصب در این صورت آن دایرکتوری خواهد بود؛ یا اگر ‘gpgconf.exe’ مستقیماً زیر دایرکتوری با نام ‘bin’ نصب شده باشد، دایرکتوری والد آن در نظر گرفته می‌شود. همچنین باید اطمینان حاصل کنید که دایرکتوری‌های زیر وجود داشته و قابل نوشتن هستند: ‘ROOT/home’ برای دایرکتوری خانگی GnuPG و ‘ROOT/usr/var/cache/gnupg’ برای فایل‌های حافظه نهان (cache) داخلی.

/etc/gnupg/gpgconf.conf
اگر این فایل وجود داشته باشد، به عنوان یک فایل پیکربندی سراسری پردازش می‌شود. این یک سازوکار قدیمی است که نباید همراه با فایل‌های پیکربندی سراسری جدید به ازای هر مؤلفه استفاده شود. یک نمونه دارای توضیح را می‌توان در دایرکتوری ‘examples’ توزیع یافت.
فایلی با نگارش‌های فعلی نرم‌افزار. ابزار dirmngr این فایل را در صورت تقاضا از یک منبع برخط ایجاد می‌کند.

gpg(1), gpgsm(1), gpg-agent(1), scdaemon(1), dirmngr(1)

مستندات کامل این ابزار به عنوان یک راهنمای Texinfo نگهداری می‌شود. اگر GnuPG و برنامه info به درستی در سامانه شما نصب شده باشند، دستور

info gnupg

باید دسترسی شما به راهنمای کامل، شامل ساختار منو و نمایه را فراهم کند.

2025-02-19 GnuPG 2.4.9