'\" 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