'\" t
.\" Title: sbctl
.\" Author: [see the "Authors" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 08/10/2026
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: Persian
.\"
.TH "SBCTL" "8" "08/10/2026" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * 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)"
sbctl \- مدیر بوت امن (Secure Boot)
.SH "خلاصه (SYNOPSIS)"
.sp
\fBsbctl\fR
.SH "شرح (DESCRIPTION)"
.sp
\fBsbctl\fR ابزاری است که امکان ایجاد کلیدها برای بوت امن، ثبت امن آنها و رهگیری فایلهای نیازمند امضا را فراهم میسازد\&.
.SH "دستورهای امضای ایافآی (EFI SIGNING COMMANDS)"
.PP
\fBstatus\fR
.RS 4
وضعیت فعلی بوت امن سیستم را نمایش میدهد\&. بررسی میکند که آیا در حال حاضر سیستم در حالت UEFI با بوت امن بوت شده است یا خیر، و اینکه آیا Setup Mode فعال است یا نه\&.
.RE
.PP
\fBcreate\-keys\fR
.RS 4
مجموعهای از کلیدهای امضا را برای امضای باینریهای EFI ایجاد میکند\&. در حال حاضر کلیدهای زیر ایجاد میشوند:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Platform Key
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Key Exchange Key
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Signature Database Key
.PP
\fB\-e\fR, \fB\-\-export\fR
.RS 4
دایرکتوری مقصد برای ذخیره کلیدهای صادرشده\&.
.RE
.PP
\fB\-d\fR, \fB\-\-database\-path\fR
.RS 4
مسیر ذخیره فایل GUID هنگام تولید کلیدها\&.
.RE
.RE
.RE
.PP
\fBenroll\-keys\fR
.RS 4
کلیدهای ایجادشده را در متغیرهای EFI ثبت میکند\&.
.sp
.if n \{\
.RS 4
.\}
.nf
توجه داشته باشید که برخی دستگاهها دارای سفتافزار سختافزاری هستند که هنگام فعال
بودن بوت امن امضا و اعتبارسنجی میشوند. عدم اعتبارسنجی این سفتافزار میتواند
منجر به از کار افتادن کامل (brick) دستگاهها شود. توصیه میشود کلیدهای اختصاصی خود را
همراه با گواهیهای مایکروسافت ثبت نمایید.
.fi
.if n \{\
.RE
.\}
.PP
\fB\-m\fR, \fB\-\-microsoft\fR
.RS 4
گواهیهای سازنده UEFI متعلق به مایکروسافت را در پایگاهداده امضا ثبت میکند\&.
.sp
ببینید
\fBOption ROM\fR*\&.
.RE
.PP
\fB\-t\fR, \fB\-\-tpm\-eventlog\fR
.RS 4
چکسامها را از لاگ رویداد TPM در پایگاهداده امضا ثبت میکند\&.
.sp
ببینید
\fBOption ROM\fR*\&.
.sp
این قابلیت آزمایشی است\&.
.RE
.PP
\fB\-c\fR, \fB\-\-custom\fR
.RS 4
گواهیهای سفارشی KEK و db را به ترتیب از "/var/lib/sbctl/keys/custom/KEK/" و "/var/lib/sbctl/keys/custom/db/" ثبت میکند\&.
.RE
.PP
\fB\-f\fR, \fB\-\-firmware\-builtin\fR
.RS 4
امضاها را از dbDefault، KEKDefault یا PKDefault ثبت میکند\&. این گزینه زمانی کاربرد دارد که sbctl گواهیهای OEM شما را به همراه نداشته باشد یا شامل همه آنها نباشد\&.
.sp
مقادیر معتبر شامل "db"، "KEK" یا "PK" هستند که به صورت رشتهای جداشده با کاما ارسال میشوند\&.
.sp
پیشفرض: "db,KEK"
.RE
.PP
\fB\-\-yes\-this\-might\-brick\-my\-machine\fR, \fB\-\-yolo\fR
.RS 4
خطای Option ROM را نادیده گرفته و به ثبت کلیدها در سفتافزار UEFI ادامه میدهد\&.
.sp
ببینید
\fBOption ROM\fR*\&.
.RE
.PP
\fB\-i\fR, \fB\-\-ignore\-immutable\fR
.RS 4
بررسی مسیر
/sys/firmware/efi/efivars/
برای فایلهای تغییرناپذیر (immutable) را نادیده میگیرد و صفت immutable را پیش از ثبت گواهیها حذف میکند\&.
.RE
.PP
\fB\-\-export\fR
.RS 4
کلیدهایی را که قصد ثبت آنها را داریم به عنوان لیستهای امضای EFI موسوم به (esl) یا متغیرهای اصالتسنجیشده EFI موسوم به (auth) در دایرکتوری کاری فعلی صادر میکند\&.
.sp
مقادیر معتبر عبارتند از: esl, auth\&.
.RE
.PP
\fB\-p\fR, \fB\-\-partial\fR
.RS 4
کلیدها را فقط برای سلسلهمراتب مشخصشده ثبت میکند\&.
.sp
مقادیر معتبر عبارتند از: db, KEK, PK\&.
.RE
.PP
\fB\-\-custom\-bytes\fR
.RS 4
یک فایل بایتی سفارشی را با ارائه مسیر آن در متغیر efivar مشخصشده توسط partial ثبت میکند\&.
.RE
.PP
\fB\-a\fR, \fB\-\-append\fR
.RS 4
به جای جایگزینی کلیدهای ثبتشده فعلی، کلید ارائهشده را ضمیمه میکند\&.
.RE
.PP
\fB\-\-keytype\fR
.RS 4
نوع کلید را برای تمامی کلیدهای امضای مورداستفاده sbctl تعیین میکند\&. این شامل کلیدهای PK، KEK و db میشود\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-pk\-keytype\fR
.RS 4
نوع کلید PK را تعیین میکند\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-kek\-keytype\fR
.RS 4
نوع کلید KEK را تعیین میکند\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-db\-keytype\fR
.RS 4
نوع کلید db را تعیین میکند\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.RE
.PP
\fBsign\fR \&...
.RS 4
یک فایل باینری EFI را با کلید ایجادشده امضا میکند\&. فایل به منظور جلوگیری از امضاهای تکراری برای امضاهای معتبر بررسی خواهد شد\&.
.PP
\fB\-o\fR \fIPATH\fR, \fB\-\-output\fR \fIPATH\fR
.RS 4
نام فایل خروجی\&. حالت پیشفرض فایل را جایگزین میکند\&.
.RE
.PP
\fB\-s\fR, \fB\-\-save\fR
.RS 4
ذخیره فایل در پایگاهداده\&.
.RE
.RE
.PP
\fBsign\-all\fR
.RS 4
تمام باینریهای ثبتشده EFI را امضا میکند\&.
.PP
\fB\-g\fR, \fB\-\-generate\fR
.RS 4
تولید تمام بستهها (bundles) پیش از امضا کردن\&.
.RE
.RE
.PP
\fBimport\-keys\fR
.RS 4
کلیدهای موجود را وارد sbctl میکند\&.
.PP
\fB\-\-db\-cert\fR \fIPATH\fR
.RS 4
مسیر یک گواهی معتبر Database (db)\&.
.RE
.PP
\fB\-\-db\-key\fR \fIPATH\fR
.RS 4
مسیر یک کلید خصوصی معتبر Database (db)\&.
.RE
.PP
\fB\-\-kek\-cert\fR \fIPATH\fR
.RS 4
مسیر یک گواهی معتبر Key Exchange Key (KEK)\&.
.RE
.PP
\fB\-\-kek\-key\fR \fIPATH\fR
.RS 4
مسیر یک کلید خصوصی معتبر Key Exchange Key (KEK)\&.
.RE
.PP
\fB\-\-pk\-cert\fR \fIPATH\fR
.RS 4
مسیر یک گواهی معتبر Platform Key (PK)\&.
.RE
.PP
\fB\-\-pk\-key\fR \fIPATH\fR
.RS 4
مسیر یک کلید خصوصی معتبر Platform Key (PK)\&.
.RE
.PP
\fB\-\-directory\fR \fIPATH\fR
.RS 4
مسیر یک دایرکتوری کلید\&. محلهای مورد انتظار فایل درون این دایرکتوری عبارتند از:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
PK/PK\&.key
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
PK/PK\&.pem
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
KEK/KEK\&.key
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
KEK/KEK\&.pem
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
db/db\&.key
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
db/db\&.pem
.RE
.RE
.PP
\fB\-\-force\fR
.RS 4
بازنویسی دایرکتوری کلید موجود مورداستفاده توسط sbctl\&.
.RE
.RE
.PP
\fBlist\-files\fR, \fBls\-files\fR, \fBls\fR
.RS 4
فهرست کردن تمامی باینریهای EFI ثبتشده\&.
.RE
.PP
\fBremove\-file\fR , \fBrm\-file\fR , \fBrm\fR
.RS 4
حذف فایل از پایگاهداده امضا\&.
.RE
.PP
\fBlist\-enrolled\-keys\fR, \fBls\-enrolled\-keys\fR
.RS 4
فهرست کردن تمام کلیدهای ثبتشده روی سیستم\&.
.RE
.PP
\fBverify\fR [FILE\&...]
.RS 4
باینریهای EFI با نوع mime به صورت application/x\-dosexec را در پارتیشن ESP جستجو میکند و پایگاهداده فایل را بررسی مینماید\&. بررسی میکند که آیا با Signature Database Key امضا شدهاند یا خیر\&. یک آرگومان اختیاری فایل برای بررسی فایلهای خاص میپذیرد\&.
.RE
.PP
\fBreset\fR
.RS 4
کلید Platform Key را بازنشانی میکند\&. این کار دستگاه را از حالت بوت امن خارج کرده و امکان چرخش کلیدها را فراهم میسازد\&.
.PP
\fB\-p\fR, \fB\-\-partial\fR
.RS 4
کلیدها را فقط برای سلسلهمراتب مشخصشده بازنشانی میکند\&.
.sp
مقادیر معتبر عبارتند از: db, KEK, PK\&.
.RE
.RE
.PP
\fBrotate\-keys\fR
.RS 4
کلیدهای بوت امن را میچرخاند و آنها را با کلیدهای تازهتولیدشده جایگزین میکند\&. کلیدهای قدیمی را در دایرکتوریای در /var/tmp ذخیره کرده و هر فایلی را از پایگاهداده فایل مجدداً امضا میکند\&.
.PP
\fB\-\-backup\-dir\fR \fIPATH\fR
.RS 4
انتخاب دایرکتوری پشتیبان برای کلیدهای قدیمی\&.
.RE
.PP
\fB\-p\fR, \fB\-\-partial\fR
.RS 4
کلیدها را فقط برای سلسلهمراتب مشخصشده میچرخاند\&.
.sp
مقادیر معتبر عبارتند از: db, KEK, PK\&.
.RE
.PP
\fB\-k\fR, \fB\-\-key\-file\fR
.RS 4
فایل کلید برای ضمیمهشدن به سلسلهمراتب مشخصشده\&.
.RE
.PP
\fB\-c\fR, \fB\-\-cert\-file\fR
.RS 4
فایل گواهی برای ضمیمهشدن به سلسلهمراتب مشخصشده\&.
.RE
.PP
\fB\-\-keytype\fR
.RS 4
تعیین نوع کلید برای تمام کلیدهای امضای مورداستفاده توسط sbctl\&. این شامل کلیدهای PK، KEK و db است\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-pk\-keytype\fR
.RS 4
تعیین نوع کلید PK\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-kek\-keytype\fR
.RS 4
تعیین نوع کلید KEK\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.PP
\fB\-\-db\-keytype\fR
.RS 4
تعیین نوع کلید db\&.
.sp
پیشفرض: file
.sp
مقادیر معتبر عبارتند از: file, tpm
.RE
.RE
.PP
\fBexport\-enrolled\-keys\fR
.RS 4
صادر کردن کلیدهای ثبتشده قبلی از سیستم\&.
.PP
\fB\-\-dir\fR \fIPATH\fR
.RS 4
دایرکتوری خروجی برای کلیدهای صادرشده\&.
.RE
.PP
\fB\-\-format\fR \fITYPE\fR
.RS 4
فرمت کلیدهای صادرشده\&.
.sp
پیشفرض: der مقادیر معتبر: esl, auth\&.
.RE
.RE
.PP
\fBsetup\fR
.RS 4
برپایی و راهاندازی نصب sbctl\&.
.sp
.if n \{\
.RS 4
.\}
.nf
این دستور پیکربندی تعریفی sbctl را از طریق فایل پیکربندی فعال میکند.
همچنین میتواند پیکربندی فعلی و وضعیت کنونی نصب را چاپ کند.
.fi
.if n \{\
.RE
.\}
.PP
\fB\-\-setup\fR
.RS 4
برپایی نصب sbctl بر اساس فایل پیکربندی ارائهشده، یا پیکربندی پیشفرض خواندهشده از /etc/sbctl/sbctl\&.conf\&.
.sp
این گزینه به طور خودکار دستورهای create\-keys و enroll\-keys را انجام داده و همچنین پایگاهداده فایلها را برای امضا راهاندازی میکند\&.
.sp
برای جزئیات بیشتر به
\fBsbctl.conf\fR(5)
مراجعه کنید\&.
.RE
.PP
\fB\-\-migrate\fR
.RS 4
مهاجرت پیکربندی و راهاندازی sbctl به یک نگارش جدید\&.
.sp
در حال حاضر تنها مهاجرت برای sbctl انتقال از /usr/share/secureboot به /var/lib/sbctl است\&.
.RE
.PP
\fB\-\-print\-config\fR
.RS 4
نسخه سریالیشدهای از پیکربندی فعلی sbctl را چاپ میکند\&.
.sp
برای جزئیات بیشتر به
\fBsbctl.conf\fR(5)
مراجعه کنید\&.
.RE
.PP
\fB\-\-print\-state\fR
.RS 4
وضعیت نصب sbctl را چاپ میکند\&. در حال حاضر فقط چاپ میکند که آیا sbctl روی سیستم نصب شده است یا خیر\&.
.sp
نکته: این گزینه نیازمند ارسال \-\-json است\&.
.RE
.RE
.PP
\fBhelp\fR
.RS 4
یک پیام راهنما نمایش میدهد\&.
.RE
.SH "دستورهای باینری ایافآی (EFI BINARY COMMANDS)"
.PP
\fBbundle\fR [\fIFLAGS\fR]
.RS 4
یک بسته (bundle) ایجاد میکند که باید باینریهای EFI تولید کند\&. برای جزئیات بیشتر به بخش
\fBبستهها (BUNDLES)\fR
در زیر مراجعه کنید\&.
.PP
\fB\-a\fR \fIPATH\fR, \fB\-\-amducode\fR \fIPATH\fR
.RS 4
محل مایکروچپ (microcode) پردازنده AMD\&.
.RE
.PP
\fB\-c\fR \fIPATH\fR, \fB\-\-cmdline\fR \fIPATH\fR
.RS 4
محل خط فرمان هسته (cmdline)\&. (پیشفرض "/etc/kernel/cmdline")
.RE
.PP
\fB\-e\fR \fIPATH\fR, \fB\-\-efi\-stub\fR \fIPATH\fR
.RS 4
محل استاب EFI\&. (پیشفرض "/usr/lib/systemd/boot/efi/linuxx64\&.efi\&.stub")
.RE
.PP
\fB\-p\fR \fIPATH\fR, \fB\-\-esp\fR \fIPATH\fR
.RS 4
محل پارتیشن ESP\&. (پیشفرض "/efi")
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
راهنما برای bundle\&.
.RE
.PP
\fB\-f\fR \fIPATH\fR, \fB\-\-initramfs\fR \fIPATH\fR
.RS 4
محل initramfs\&. (پیشفرض "/boot/initramfs\-linux\&.img")
.RE
.PP
\fB\-i\fR \fIPATH\fR, \fB\-\-intelucode\fR \fIPATH\fR
.RS 4
محل مایکروچپ (microcode) پردازنده Intel\&.
.RE
.PP
\fB\-k\fR \fIPATH\fR, \fB\-\-kernel\-img\fR \fIPATH\fR
.RS 4
محل تصویر هسته (kernel image)\&. (پیشفرض "/boot/vmlinuz\-linux")
.RE
.PP
\fB\-o\fR \fIPATH\fR, \fB\-\-os\-release\fR \fIPATH\fR
.RS 4
محل فایل os\-release\&. (پیشفرض "/usr/lib/os\-release")
.RE
.PP
\fB\-s\fR, \fB\-\-save\fR
.RS 4
ذخیره بسته در پایگاهداده\&.
.RE
.PP
\fB\-l\fR \fIPATH\fR, \fB\-\-splash\-img\fR \fIPATH\fR
.RS 4
محل تصویر اسپلش بوت (boot splash)\&.
.RE
.RE
.PP
\fBgenerate\-bundles\fR
.RS 4
این دستور تمام بستهها را تولید میکند\&.
.PP
\fB\-s\fR, \fB\-\-sign\fR
.RS 4
امضا کردن تمام بستههای تولیدشده\&.
.RE
.RE
.PP
\fBremove\-bundle\fR , \fBrm\-bundle\fR
.RS 4
یک بسته را از لیست حذف میکند\&. این کار خود بسته را حذف نمیکند\&.
.RE
.PP
\fBlist\-bundles\fR, \fBls\-bundle\fR
.RS 4
فهرست کردن تمام بستههای ثبتشده برای تولید\&.
.RE
.SH "گزینهها (OPTIONS)"
.PP
\fB\-j\fR, \fB\-\-json\fR
.RS 4
امکان خروجی مقادیر به صورت json به جای متن قابل خواندن توسط انسان را در دستورهای پشتیبانیشده فراهم میکند\&. این ویژگی برای تجزیه دادهها با ابزارهایی مانند jq کاربردی است\&.
.RE
.PP
\fB\-c\fR, \fB\-\-config\fR
.RS 4
مسیری اختیاری به فایل پیکربندی که باید توسط sbctl استفاده شود\&.
.sp
پیشفرض: /etc/sbctl/sbctl\&.conf
.RE
.PP
\fB\-\-disable\-landlock\fR
.RS 4
قرنطینه و سندباکس landlock را در sbctl غیرفعال میکند\&.
.sp
ببینید
\fBlandlock\fR(7)\&.
.RE
.PP
\fB\-\-debug\fR
.RS 4
فعالسازی ثبت دقیق گزارشهای اشکالزدایی (debug logging)\&. این امر فرمتبندی زیبای متون را به هم خواهد زد\&.
.RE
.SH "بستهها (BUNDLES)"
.sp
نکته: این ویژگی منسوخ شده است\&. لطفاً به dracut/mkinitcpio/ukify مهاجرت کنید\&.
.sp
معمولاً فقط هسته با کلیدهای بوت امن شما امضا میشود\&. این بدان معناست که خط فرمان هسته و initramfs میتوانند بدون امکان اعتبارسنجی تغییر یابند\&.
.sp
بستهها فایلهای اجرایی EFI هستند که هر سه مورد (initramfs، kernel و cmdline) را در یک فایل منفرد بستهبندی میکنند که امضای آن آسان است\&. اجتناب از هرگونه فایل امضانشده در حین بوت، کل فرایند را در برابر دستکاری مقاومتر میسازد\&.
.sp
هنگامی که یک بسته تولید میشود، پیکربندی آن در پایگاهداده بستهها ذخیره میگردد (به بخش \fBفایلها (FILES)\fR مراجعه کنید)\&. اجراهای بعدی دستور \fBsbctl generate\-bundles\fR این بستهها را مجدداً میسازد، بنابراین نیازی نیست پس از هر بهروزرسانی سیستم تمام پارامترها را دوباره مشخص کنید\&.
.sp
نکته کاربردی: ابزار systemd\-boot به طور خودکار ورودیهای مربوط به هر بستهای را که در \fBesp/EFI/Linux/*\&.efi\fR یافت شود نمایش میدهد\&.
.SH "انواع کلید پشتیبانیشده (SUPPORTED KEY TYPES)"
.sp
در حال حاضر sbctl از ذخیره کلیدها به عنوان فایلهای ساده رمزنگارینشده یا کلیدهای محافظتشده با TPM پشتیبانی میکند\&.
.sp
فایلهای ساده رمزنگارینشده (\fBfile\fR) فقط باید زمانی استفاده شوند که پارتیشن ریشه رمزگذاری شده باشد\&. این نوع کلید به دلایل تاریخی حالت پیشفرض است\&. کلیدهای فایلی به صورت ثابت روی RSA 4096 تنظیم شدهاند\&.
.sp
کلیدهای محافظتشده با TPM موسوم به (\fBtpm\fR) درون TPM محافظت میشوند و در صورت وجود یک TPM دردسترس روی سیستم قابل استفاده هستند\&. سیاستهای TPM پشتیبانی نمیشوند، به این معنی که نمیتوان کلیدها را نسبت به وضعیت سیستم مهروموم (seal) کرد\&. توجه داشته باشید که کلیدهای TPM به صورت ثابت روی RSA 2048 تنظیم شدهاند که معمولاً بالاترین قدرت بیتی پشتیبانیشده توسط TPMها است\&.
.sp
هنگام ایجاد سلسلهمراتب کلید برای بوت امن، کاربر میتواند تصمیم بگیرد که هر یک از کلیدها در سلسلهمراتب چه نوع کلیدی دریافت کنند\&. از آنجا که TPMها در امضا کردن میتوانند کند باشند، معمولاً توصیه میشود PK و KEK در TPM نگهداری شوند، در حالی که کلید db میتواند یک کلید استاندارد \fBfile\fR باشد\&.
.sp
توجه داشته باشید که در حال حاضر محافظت با رمز عبور پشتیبانی نمیشود\&.
.SH "لندلاک (LANDLOCK)"
.sp
ابزار sbctl از landlock پشتیبانی میکند و تلاش خواهد کرد تا در طول اجرا، دسترسی به مسیرهای فایل را به بخشهایی که مورد نیاز است محدود کند\&. هرگونه تلاش برای برقراری دسترسی شبکه نیز محدود میشود\&.
.sp
این ویژگی را میتوان با تنظیم \fBlandlock: false\fR در فایل پیکربندی یا با ارسال \fB\-\-disable\-landlock\fR به sbctl غیرفعال کرد\&.
.SH "رام اختیاری (OPTION ROM)"
.sp
ببینید https://github\&.com/Foxboron/sbctl/wiki/FAQ#option\-rom
.SH "کاربرد (USAGE)"
.sp
\fIنکته\fR: برای استفاده از کلیدهای سفارشی بوت امن، مهم است که سیستم را به تنظیمات سفتافزار ریبوت کنید (systemctl reboot \-\-firmware\-setup) و به منوی \fISecure Boot\fR بروید تا وارد \fISetup Mode\fR شوید\&. این کار معمولاً با پاک کردن/حذف کلیدهای بوت امن (یا حداقل Platform Key) در حالی که حالت بوت امن فعال باقی مانده انجام میشود\&. برخی سفتافزارها دارای یک \fICustom Mode\fR هستند که فقط اعتبارسنجی امضا را غیرفعال میکند و بنابراین نباید فعال شود مگر اینکه راه دیگری برای ورود به مدیریت کلید ارائه نشده باشد\&. اگر این مرحله کامل نشود، ثبت کلیدهای سفارشی توسط سفتافزار رد خواهد شد\&.
.sp
گام بعدی ایجاد کلیدها برای بوت امن است\&. دستور \fIcreate\-keys\fR سلسلهمراتب کلید موردنیاز برای بوت امن را در "/var/lib/sbctl/keys" ایجاد میکند\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl create\-keys
Created Owner UUID a9fbbdb7\-a05f\-48d5\-b63a\-08c5df45ee70
Creating secure boot keys\&.\&.\&.✔
Secure boot keys created!
.fi
.if n \{\
.RE
.\}
.sp
گام بعدی ثبت کلیدها در سفتافزار EFI است\&. ابزار \fBsbctl\fR انجام این کار را روی یک سیستم زنده پشتیبانی میکند، بدون اینکه نیازی به بوت یا اجرای ابزار مدیریت کلید از پوسته UEFI باشد\&.
.sp
\fIنکته\fR: این کار ممکن است به دلیل مشکلات سفتافزار و گزینههای منحصربهفرد در منوی BIOS دستگاه با شکست مواجه شود\&. همچنین، برخی دستگاهها دارای سفتافزار سختافزاری هستند که هنگام فعال بودن بوت امن امضا و اعتبارسنجی میشوند\&. عدم اعتبارسنجی این سفتافزار میتواند منجر به از کار افتادن کامل دستگاهها شود\&. توصیه میشود کلیدهای خود را همراه با گواهیهای مایکروسافت با استفاده از گزینه \fI\-m\fR ثبت کنید\&. به بخش \fBOption ROM\fR* در بالا مراجعه نمایید\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl enroll\-keys
Enrolling keys to EFI variables\&.\&.\&.✔
Enrolled keys to the EFI variables!
.fi
.if n \{\
.RE
.\}
.sp
پس از ثبت موفقیتآمیز کلیدها، باید زنجیره بوت فعلی خود را امضا کنیم\&. به طور سنتی در سیستمهای UEFI میتوان یک پارتیشن سیستم EFI موسوم به (\fIESP\fR) در مسیرهای \fI/efi\fR، \fI/boot\fR یا \fI/boot/efi\fR داشت\&. معمولاً میتوان با نگاه کردن به نقاط اتصال (mount points) یا یافتن دایرکتوری \fIEFI\fR روی ESP، مسیر صحیح را پیدا کرد\&.
.sp
مهمترین فایل برای امضا، هسته (kernel) است\&. این مسیر میان توزیعهای مختلف متفاوت است اما معمولاً در ESP یا /boot یافت میشود\&. ما از \fI\-\-save\fR برای ذخیره مسیر فایل استفاده میکنیم، بنابراین نیازی نیست بعداً آن را به صورت دستی امضا کنیم\&.
.sp
توجه داشته باشید که \fBsbctl\fR تنها میتواند مسیرهای فایل را رهگیری کند\&. روی هستههای دارای شماره نسخه ممکن است این امر پیچیده باشد\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl sign \-\-save /efi/vmlinuz\-linux
✔ Signed /efi/vmlinuz\-linux
.fi
.if n \{\
.RE
.\}
.sp
گام بعدی امضای بوتلودر است\&. معمولاً میتوان آن را در مسیر استاندارد زیر یافت، اما ممکن است بین نصبهای مختلف متفاوت باشد\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl sign \-\-save /efi/EFI/BOOT/BOOTX64\&.EFI
✔ Signed /efi/EFI/BOOT/BOOTX64\&.EFI
.fi
.if n \{\
.RE
.\}
.sp
ابزار \fBsbctl\fR قادر است ESP را به همراه تمام فایلهای ذخیرهشده پیدا و بررسی کند تا تأیید نماید فایلهای موردنیاز را امضا کردهایم\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl verify
Verifying file database and EFI images in /efi\&.\&.\&.
✔ /efi/EFI/BOOT/BOOTX64\&.EFI is signed
✔ /efi/vmlinuz\-linux is signed
.fi
.if n \{\
.RE
.\}
.sp
پس از اینکه مطمئن شدیم همه چیز کار میکند، میتوانیم ریبوت کنیم\&. پس از ورود مجدد به سیستم، میتوانیم وضعیت سیستم را بررسی کنیم\&. نیازی به فعالسازی مجدد بوت امن یا ورود به User Mode در سفتافزار نخواهد بود\&.
.sp
.if n \{\
.RS 4
.\}
.nf
$ sbctl status
Installed: ✓ sbctl is installed
Owner GUID: a7b893cc\-949d\-408c\-b5cc\-6e7d0370fdb6
Setup Mode: ✓ Disabled
Secure Boot: ✓ Enabled
.fi
.if n \{\
.RE
.\}
.sp
هنگام بهروزرسانی سیستم، میتوانیم \fIsign\-all\fR را اجرا کنیم تا تمام فایلهای ذخیرهشده از قبل دوباره امضا شوند\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl sign\-all
File has already been signed /boot/vmlinuz\-linux
✓ Signed /efi/EFI/BOOT/BOOTX64\&.EFI
.fi
.if n \{\
.RE
.\}
.sp
ابزار sbctl از ساخت تصاویر هسته یکپارچه (unified kernel images) پشتیبانی میکند\&. این فایلهای اجرایی UEFI بخشهای initramfs، kernel و cmdline را در یک فایل اجرایی بستهبندی میکنند که میتواند برای بوت امن امضا شود\&. این کار به شما امکان میدهد بخشهای بزرگتری از زنجیره بوت را به جای امضا کردن صِرف هسته، اصالتسنجی کنید\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# sbctl bundle \-i /boot/intel\-ucode\&.img
\-l /usr/share/systemd/bootctl/splash\-arch\&.bmp
\-k /boot/vmlinuz\-linux
\-f /boot/initramfs\-linux\-lts\&.img
\-c /etc/kernel/cmdline
/efi/EFI/Linux/linux\-linux\&.efi
.fi
.if n \{\
.RE
.\}
.sp
توجه داشته باشید که \fBdracut\fR(8) و \fBmkinitcpio\fR(8) از قابلیتهای هسته یکپارچه پشتیبانی میکنند و باید نسبت به پیادهسازی sbctl ترجیح داده شوند\&. این قابلیت عمدتاً برای مواردی ارائه شده است که این ویژگی توسط تولیدکننده initramfs توزیع پشتیبانی نمیشود\&.
.SH "نکات (NOTES)"
.sp
تمام دستورهایی که آرگومان مسیر میگیرند، هنگام ذخیره در پایگاهداده آنها را به مسیرهای مطلق تبدیل میکنند\&.
.SH "وضعیت خروج (EXIT STATUS)"
.sp
در صورت موفقیت 0، و در غیر این صورت کد شکست غیرصفر بازگردانده میشود\&.
.SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)"
.PP
\fBSYSTEMD_ESP_PATH\fR, \fBESP_PATH\fR
.RS 4
محل پارتیشن سیستم EFI موسوم به (ESP) را تعیین میکند\&. این متغیر رفتار \fBsbctl\fR را که پارتیشن صحیح را با \fBlsblk\fR جستجو میکند بازنویسی مینماید\&. هیچ بررسی روی این مسیر انجام نمیشود و میتواند برای اهداف آزمایشی کاربردی باشد\&.
.RE
.PP
\fBSBCTL_UNICODE\fR
.RS 4
اگر این مقدار "0" باشد sbctl نمادهای یونیکد را با نمادهای معادل اسکی جایگزین میکند\&. مقدار پیشفرض 1 در نظر گرفته میشود\&.
.RE
.SH "فایلها (FILES)"
.sp
\fB/etc/sbctl/sbctl\&.conf\fR: فایل پیکربندی پیشفرض\&. ببینید \fBsbctl.conf\fR(5)
.PP
\fB/var/lib/sbctl\fR
.RS 4
دایرکتوری ذخیرهسازی پیشفرض\&.
.RE
.PP
\fB/var/lib/sbctl/GUID\fR
.RS 4
شناسه مالک\&. این یک UUID به صورت تصادفی تولیدشده است\&.
.RE
.PP
\fB/var/lib/sbctl/files\&.db\fR
.RS 4
حاوی فهرستی از باینریهای EFI است که باید توسط کلید تولیدشده امضا شوند\&.
.RE
.PP
\fB/var/lib/sbctl/bundles\&.db\fR
.RS 4
حاوی فهرستی از بستههای EFI است که باید تولید شوند\&.
.RE
.PP
\fB/var/lib/sbctl/keys/db/db\&.{pem,key}\fR
.RS 4
حاوی کلید Signature Database مورد استفاده برای امضای باینریهای EFI\&.
.RE
.PP
\fB/var/lib/sbctl/keys/KEK/KEK\&.{pem,key}\fR
.RS 4
حاوی کلید Key Exchange Key\&.
.RE
.PP
\fB/var/lib/sbctl/keys/PK/PK\&.{pem,key}\fR
.RS 4
حاوی کلید Platform Key\&.
.RE
.PP
\fB/var/lib/sbctl/keys/custom/KEK/\fR*
.RS 4
حاوی گواهیهای سفارشی که به عنوان کلیدهای تبادل کلید (KEK) اضافی به سفتافزار افزوده خواهند شد\&.
.RE
.PP
\fB/var/lib/sbctl/keys/custom/db/\fR*
.RS 4
حاوی گواهیهای سفارشی که به پایگاهداده امضای سفتافزار افزوده خواهند شد\&.
.RE
.SH "همچنین ببینید (SEE ALSO)"
.sp
\fBbootctl\fR(1) \fBjq\fR(1) \fBsbctl.conf\fR(5) \fBlandlock\fR(7)
.SH "نویسندگان (AUTHORS)"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Morten Linderud
.RE