.TH FIREJAIL 1 "Mar 2026" "0.9.80" "firejail man page" .SH "نام (NAME)" Firejail \- برنامه سندباکس فضاهای نام لینوکس (Linux namespaces) .SH "خلاصه دستور (SYNOPSIS)" شروع یک سندباکس: .PP .RS firejail [OPTIONS] [برنامه و آرگومان‌ها] .RE .PP شروع یک برنامه AppImage: .PP .RS firejail [OPTIONS] --appimage [OPTIONS] [فایل appimage و آرگومان‌ها] .RE .PP انتقال فایل از یک سندباکس موجود: .PP .RS firejail {\-\-\ls | \-\-\get | \-\-\put | \-\-\cat} dir_or_filename .RE .PP شکل‌دهی ترافیک شبکه برای یک سندباکس موجود: .PP .RS firejail \-\-\bandwidth={name|pid} bandwidth-command .RE .PP پایش و مانیتورینگ: .PP .RS firejail {\-\-\list | \-\-\netstats | \-\-\top | \-\-\tree} .RE .PP متفرقه: .PP .RS firejail {\-? | \-\-\debug-caps | \-\-\debug-errnos | \-\-\debug-syscalls | \-\-\debug-syscalls32 | \-\-\debug-protocols | \-\-\help | \-\-\version} .RE .SH "توضیحات (DESCRIPTION)" دستور Firejail یک برنامه سندباکس دارای دسترسی SUID است که خطر رخنه و نفوذهای امنیتی را از طریق محدود ساختن محیط اجرای برنامه‌های غیرقابل‌اعتماد با استفاده از فضاهای نام لینوکس (namespaces)، مکانیزم seccomp-bpf و قابلیت‌های لینوکس (Linux capabilities) کاهش می‌دهد. این ابزار به یک فرآیند و تمام فرزندان آن امکان می‌دهد تا نمایی اختصاصی از منابع اشتراکی سراسری هسته مانند پشته شبکه (network stack)، جدول فرآیندها (process table) و جدول سوارکردن (mount table) داشته باشند. ابزار Firejail می‌تواند در محیط‌های SELinux یا AppArmor به کار گرفته شود و با گروه‌های کنترلی لینوکس (Linux Control Groups) نیز یکپارچه شده است. .PP این نرم‌افزار به زبان C و تقریباً بدون هیچ وابستگی جانبی نوشته شده است و روی هر رایانه لینوکسی با نسخه هسته 3.x یا جدیدتر اجرا می‌شود. این ابزار قادر است انواع مختلف فرآیندها را در سندباکس قرار دهد: سرورها، برنامه‌های گرافیکی و حتی نشست‌های ورود کاربران. .PP دستور Firejail به کاربر اجازه می‌دهد تا امنیت برنامه‌ها را با استفاده از پروفایل‌های امنیتی مدیریت کند. هر پروفایل مجموعه‌ای از مجوزها را برای یک برنامه خاص یا گروهی از برنامه‌ها تعریف می‌کند. این نرم‌افزار شامل پروفایل‌های امنیتی برای شماری از برنامه‌های پرکاربرد لینوکس مانند Mozilla Firefox، Chromium، VLC، Transmission و غیره است. .\" TODO: Explain the security/usability tradeoffs from #4601. .PP در حال حاضر Firejail به صورت یک باینری SUID پیاده‌سازی شده است؛ این بدان معناست که اگر یک حساب کاربری مخرب یا نفوذیافته موفق شود از نقصی در Firejail سوءاستفاده کند، این امر می‌تواند در نهایت به ارتقای دسترسی به کاربر ریشه (root) منجر شود. برای کاهش این ریسک، توصیه می‌شود فقط به کاربران مورد اعتماد اجازه اجرای firejail داده شود (برای جزئیات چگونگی دستیابی به این هدف، راهنمای firejail-users(5) را ببینید). برای جزئیات بیشتر درباره توازن میان امنیت و سهولت کاربری در Firejail، به نشانی زیر مراجعه کنید: .UR https://github.com/netblue30/firejail/discussions/4601 #4601 .UE . .PP فناوری‌های جایگزین سندباکس مانند Snap (ببینید .UR https://snapcraft.io .UE ) و Flatpak (ببینید .UR https://flatpak.org .UE ) پشتیبانی نمی‌شوند. بسته‌های Snap و Flatpak ابزارهای مدیریتی بومی خود را دارند و هنگام قرار گرفتن در سندباکس با Firejail کار نخواهند کرد. .SH "نحوه استفاده (USAGE)" بدون مشخص کردن هیچ گزینه‌ای، سندباکس از یک سیستم فایل ساخته‌شده در یک فضای نام سوارکردن (mount namespace) جدید، و فضاهای نام جدید PID و UTS تشکیل می‌شود. فضاهای نام IPC، شبکه و کاربر را می‌توان با استفاده از گزینه‌های خط فرمان اضافه کرد. سیستم فایل پیش‌فرض Firejail بر پایه سیستم فایل میزبان بنا شده است که دایرکتوری‌های اصلی سیستم در آن به صورت فقط‌خواندنی سوار می‌شوند. این دایرکتوری‌ها عبارتند از /etc، /var، /usr، /bin، /sbin، /lib، /lib32، /libx32 و /lib64. فقط دایرکتوری‌های /home و /tmp قابل‌نوشتن هستند. .PP هنگام اجرا، Firejail ابتدا در مسیر ~/.config/firejail/ به دنبال پروفایل می‌گردد و در صورت نیافتن، مسیر /etc/firejail/ را جستجو می‌کند. اگر پروفایل مناسبی پیدا نشود، Firejail از یک پروفایل پیش‌فرض استفاده خواهد کرد. پروفایل پیش‌فرض بسیار محدودکننده است. در صورتی که برنامه کار نکرد، از گزینه --noprofile برای غیرفعال کردن آن استفاده کنید. .PP اگر هیچ آرگومان برنامه‌ای مشخص نشود، Firejail شل ترجیحی کاربر را اجرا می‌کند. مثال‌ها: .PP $ firejail [OPTIONS] # اجرای برنامه مشخص‌شده در متغیر $SHELL، معمولاً /bin/bash .PP $ firejail [OPTIONS] /usr/bin/firefox # اجرای Mozilla Firefox .PP # sudo firejail [OPTIONS] /etc/init.d/nginx start .PP هنگامی که یک گزینه چندین بار مشخص شود (چه در یک پروفایل، چه در خط فرمان، یا هر دو) یا با یک گزینه مرتبط تداخل داشته باشد، اولویت و رفتار مربوطه مختص همان گزینه بوده و معمولاً در بخش \fBگزینه‌ها (OPTIONS)\fR در ادامه مستند شده است. توجه داشته باشید که گزینه‌ای که در یک پروفایل مشخص شده است را معمولاً می‌توان در خط فرمان با استفاده از \fB--ignore\fR لغو و غیرفعال کرد. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-\-\ پایان گزینه‌ها را اعلام کرده و پردازش گزینه‌های بعدی را غیرفعال می‌کند. .TP \fB\-\-\allow-bwrap به‌طور پیش‌فرض، firejail فایل اجرایی /usr/bin/bwrap را با برنامه‌ای که هیچ کاری انجام نمی‌دهد جایگزین می‌کند. جایگزین ما فقط هدف bubblewrap را اجرا می‌کند و تنها در داخل سندباکس firejail قابل مشاهده است. از این گزینه برای غیرفعال کردن این رفتار پیش‌فرض استفاده کنید. .br .br مثال: .br $ firejail \-\-\noprofile \-\-\allow\-bwrap bwrap \-\-\help .br firejail version 0.9.77 .br .br Parent pid 44129, child pid 44130 .br Base filesystem installed in 0.04 ms .br Child process initialized in 5.02 ms .br usage: bwrap [OPTIONS...] [--] COMMAND [ARGS...] .br .br \-\-\help Print this help .br \-\-\version Print version .br \-\-\args FD Parse NUL-separated args from FD .br .TP \fB\-\-\allow-debuggers اجازه دادن به ابزارهایی مانند strace و gdb درون سندباکس با افزودن فراخوان‌های سیستمی ptrace و process_vm_readv به فهرست سفید. این گزینه تنها هنگام اجرا روی هسته‌های لینوکس نسخه 4.8 یا جدیدتر در دسترس است - یک نقص هسته در فراخوان سیستمی ptrace امکان دور زدن کامل فیلتر seccomp را فراهم می‌سازد. .br .br مثال: .br $ firejail --allow-debuggers --profile=/etc/firejail/firefox.profile strace -f /usr/bin/firefox .br .br همچنین \fB\-\-\private-etc\fR و \fB\-\-\trace\fR را ببینید. .TP \fB\-\-\allusers تمام دایرکتوری‌های زیر /home درون سندباکس قابل مشاهده خواهند بود. به‌طور پیش‌فرض، فقط دایرکتوری خانگی کاربر جاری قابل مشاهده است. .br .br مثال: .br $ firejail \-\-\allusers .TP \fB\-\-\apparmor فعال‌سازی محدودسازی AppArmor با پروفایل "firejail-default". برای اطلاعات بیشتر، لطفاً بخش \fBAPPARMOR\fR را در زیر ببینید. .TP \fB\-\-\apparmor=profile_name فعال‌سازی محدودسازی AppArmor با یک پروفایل سفارشی. توجه داشته باشید که پروفایل مورد نظر باید از قبل در هسته بارگذاری شده باشد. برای اطلاعات بیشتر، لطفاً بخش \fBAPPARMOR\fR را در زیر ببینید. .TP \fB\-\-\apparmor.print=name|pid چاپ وضعیت محدودسازی AppArmor برای سندباکس مشخص‌شده با نام یا با PID. .br .br مثال: .br $ firejail \-\-\apparmor.print=browser .br 5074:netblue:/usr/bin/firejail /usr/bin/firefox-esr .br AppArmor: firejail-default enforce .TP \fB\-\-\appimage اجرای یک برنامه AppImage (ببینید .UR https://appimage.org .UE ) درون سندباکس. اگر سندباکس به عنوان یک کاربر عادی اجرا شود، nonewprivs و فیلتر پیش‌فرض قابلیت‌ها فعال می‌شوند. هنگام اجرای appimageها گزینه‌های private-bin و private-lib به‌طور پیش‌فرض غیرفعال هستند. .br .br مثال: .br $ firejail \-\-\appimage \-\-\profile=krita krita\-3.0\-x86_64.appimage .br $ firejail \-\-\quiet \-\-\appimage \-\-\private \-\-\profile=krita krita\-3.0\-x86_64.appimage .br $ firejail \-\-\appimage \-\-\net=none \-\-\x11 \-\-\profile=krita krita\-3.0\-x86_64.appimage .br .br نکته: هنگام استفاده هم‌زمان از هر دو گزینه \fB\-\-\appimage\fR و \fB\-\-\profile\fR، توصیه می‌شود همیشه اولی پیش از دومی مشخص شود تا هرگونه شرط \fB?HAS_APPIMAGE\fR درون پروفایل با مقدار درست ارزیابی شود (بخش \fB?CONDITIONAL\fR در firejail\-profile(5) را ببینید). .TP \fB\-\-\bandwidth=name|pid تنظیم محدودیت‌های پهنای باند برای سندباکس مشخص‌شده با نام یا PID، برای جزئیات بیشتر بخش \fBTRAFFIC SHAPING\fR را ببینید. .TP \fB\-\-\bind=filename1,filename2 سوار کردن اتصالی (Mount-bind) فایل filename1 بر روی filename2. این گزینه تنها هنگام اجرا به عنوان کاربر ریشه در دسترس است. .br .br مثال: .br # firejail \-\-\bind=/config/etc/passwd,/etc/passwd .TP \fB\-\-\blacklist=dirname_or_filename افزودن دایرکتوری یا فایل به فهرست سیاه. این کار باعث می‌شود فایل یا دایرکتوری کاملاً غیرقابل‌دسترس گردد. سایر فایل‌ها و دایرکتوری‌ها دست‌نخورده باقی می‌مانند. فایل یا دایرکتوری قرارگرفته در فهرست سیاه همچنان روی سیستم فایل قابل مشاهده است، حتی اگر دسترسی‌ناپذیر باشد. .br .br مدیریت پیوندهای نمادین: افزودن مسیری که یک پیوند نمادین است به فهرست سیاه، مسیری را نیز که به آن اشاره می‌کند در فهرست سیاه قرار خواهد داد. برای نمونه، اگر ~/foo در فهرست سیاه قرار گیرد و به /bar اشاره داشته باشد، /bar نیز در فهرست سیاه قرار می‌گیرد. .br .br تطبیق الگوهای فایلی (Globbing) پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\blacklist=/sbin \-\-\blacklist=/usr/sbin .br $ firejail \-\-\blacklist=~/.mozilla .br $ firejail \-\-\blacklist="/home/username/My Virtual Machines" .TP \fB\-\-\build این دستور یک پروفایل بر پایه فهرست سفید می‌سازد. پروفایل روی صفحه نمایش داده می‌شود. برنامه در یک سندباکس بسیار منعطف اجرا می‌شود که تنها گزینه‌های \-\-\caps.drop=all و \-\-\seccomp=!chroot روی آن اعمال شده است. برنامه‌هایی که امتیازات کاربر را ارتقا می‌دهند پشتیبانی نمی‌شوند. .br .br نکته: این گزینه برای اشکال‌زدایی و توسعه پروفایل طراحی شده است. پروفایل تولیدشده ممکن است ناقص، ناکارآمد و فاقد امنیت لازم باشد. اگر می‌خواهید ساخت یک پروفایل جدید را امتحان کنید، فایل CONTRIBUTING.md را ببینید. .br .br مثال: .br $ firejail \-\-\build /usr/bin/vlc ~/Videos/test.mp4 .br $ firejail \-\-\build \-\-\appimage ~/Downloads/Subsurface.AppImage .TP \fB\-\-\build=profile-file این دستور یک پروفایل بر پایه فهرست سفید می‌سازد و آن را در profile-file ذخیره می‌کند. برنامه در یک سندباکس بسیار منعطف اجرا می‌شود که تنها گزینه‌های \-\-\caps.drop=all و \-\-\seccomp=!chroot روی آن اعمال شده است. برنامه‌هایی که امتیازات کاربر را ارتقا می‌دهند پشتیبانی نمی‌شوند. .br .br نکته: این گزینه برای اشکال‌زدایی و توسعه پروفایل طراحی شده است. پروفایل تولیدشده ممکن است ناقص، ناکارآمد و فاقد امنیت لازم باشد. اگر می‌خواهید ساخت یک پروفایل جدید را امتحان کنید، فایل CONTRIBUTING.md را ببینید. .br .br مثال: .br $ firejail \-\-\build=vlc.profile /usr/bin/vlc ~/Videos/test.mp4 .br $ firejail \-\-\build=Subsurface.profile \-\-\appimage ~/Downloads/Subsurface.AppImage .TP \fB\-c گزینه سازگاری با شل لاگین. این گزینه توسط برخی برنامه‌های ورود هنگام اجرای شل لاگین به کار می‌رود، مانند مواقعی که firejail به عنوان شل لاگین محدودشده استفاده می‌شود. این گزینه در حال حاضر تاثیری در نحوه اجرای firejail ایجاد نمی‌کند. .TP \fB\-\-\caps قابلیت‌های لینوکس (Linux capabilities) یکی از امکانات هسته است که برای تفکیک امتیازات کاربر ریشه به مجموعه‌ای از امتیازات مجزا طراحی شده است. این امتیازات می‌توانند به طور مستقل فعال یا غیرفعال شوند، و بدین ترتیب آنچه را که یک فرآیند در حال اجرا با دسترسی ریشه می‌تواند در سیستم انجام دهد محدود سازند. برای جزئیات بیشتر به capabilities(7) مراجعه فرمایید. به‌طور پیش‌فرض، برنامه‌های ریشه با تمامی قابلیت‌های فعال اجرا می‌شوند. گزینه \-\-\caps قابلیت‌های زیر را غیرفعال می‌کند: CAP_SYS_MODULE, CAP_SYS_RAWIO, CAP_SYS_BOOT, CAP_SYS_NICE, CAP_SYS_TTY_CONFIG, CAP_SYSLOG, CAP_MKNOD, CAP_SYS_ADMIN. این فیلتر روی تمامی فرآیندهای آغازشده در سندباکس اعمال می‌گردد. .br .br مثال: .br $ sudo firejail \-\-\caps /etc/init.d/nginx start .TP \fB\-\-\caps.drop=all حذف تمامی قابلیت‌ها برای فرآیندهای در حال اجرا در سندباکس. این گزینه برای اجرای برنامه‌های گرافیکی (GUI) یا هر برنامه دیگری که به امتیازات ریشه نیاز ندارد توصیه می‌شود. این یک گزینه ضروری برای اجرای امن برنامه‌های غیرقابل‌اعتماد نصب‌شده از منابع غیررسمی (مانند بازی‌ها، برنامه‌های جاوا و غیره) در سندباکس است. .br .br مثال: .br $ firejail \-\-\caps.drop=all /usr/bin/warzone2100 .TP \fB\-\-\caps.drop=capability,capability,capability تعریف یک فیلتر فهرست سیاه سفارشی برای قابلیت‌های لینوکس. .br .br مثال: .br $ firejail \-\-\caps.drop=net_broadcast,net_admin,net_raw .TP \fB\-\-\caps.keep=capability,capability,capability تعریف یک فیلتر فهرست سفید سفارشی برای قابلیت‌های لینوکس. .br .br مثال: .br $ sudo firejail \-\-\caps.keep=chown,net_bind_service,setgid,\\ setuid /etc/init.d/nginx start .TP \fB\-\-\caps.print=name|pid چاپ فیلتر قابلیت‌ها برای سندباکس مشخص‌شده با نام یا PID. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\caps.print=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\caps.print=3272 .TP \fB\-\-\cat=name|pid filename چاپ محتوای فایل از ظرف سندباکس، برای جزئیات بیشتر بخش FILE TRANSFER را ببینید. .TP \fB\-\-\chroot=dirname تغییر ریشه (Chroot) سندباکس به یک سیستم فایل ریشه. بر خلاف ظرف سیستم فایل معمولی، دایرکتوری‌های سیستمی به صورت خواندنی-نوشتنی سوار می‌شوند. اگر سندباکس به عنوان یک کاربر عادی اجرا شود، nonewprivs و فیلتر پیش‌فرض قابلیت‌ها فعال می‌شوند. .br .br مثال: .br $ firejail \-\-\chroot=/media/ubuntu /usr/bin/warzone2100 .br .br جهت سوار کردن خودکار سوکت‌های X11 و PulseAudio متغیرهای محیطی FIREJAIL_CHROOT_X11 و FIREJAIL_CHROOT_PULSE را تنظیم نمایید. .br .br نکته: پشتیبانی از این دستور در firejail.config با گزینه \fBchroot\fR کنترل می‌شود. .TP \fB\-\-\cpu=cpu\-number,cpu\-number,cpu\-number تنظیم وابستگی پردازنده (CPU affinity). .br .br مثال: .br $ firejail \-\-\cpu=0,1 /usr/bin/handbrake .TP \fB\-\-\cpu.print=name|pid چاپ هسته‌های پردازنده مورد استفاده توسط سندباکس مشخص‌شده با نام یا PID. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\cpu.print=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\cpu.print=3272 .TP \fB\-\-\dbus-log=file مشخص کردن مسیر فایل لاگ DBus. .br .br در صورتی که هر دو گزینه --dbus-system.log و --dbus-user.log مشخص شده باشند، فایل لاگ شامل رویدادهای مربوط به هر دو گذرگاه سیستم و نشست خواهد بود. اگر مسیری برای فایل لاگ داده نشود، لاگ‌ها به جای آن در خروجی استاندارد نوشته می‌شوند. .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.log \\ .br \-\-\dbus-log=dbus.txt .TP \fB\-\-\dbus-system=filter|none تنظیم خط‌مشی سندباکس DBus سیستمی. .br .br خط‌مشی \fBfilter\fR فیلتر DBus سیستمی را فعال می‌کند. این گزینه نیازمند نصب ابزار کمکی xdg-dbus-proxy است. مجوزهای نام‌های شناخته‌شده را می‌توان با گزینه‌های --dbus-system.talk و --dbus-system.own تعیین کرد. .br .br خط‌مشی \fBnone\fR دسترسی به DBus سیستم را غیرفعال می‌سازد. .br .br تنها سوکت یونیکس معمولی DBus سیستم توسط این گزینه مدیریت می‌شود. برای غیرفعال کردن سوکت‌های انتزاعی (و اجبار برنامه‌ها به استفاده از سوکت فیلترشده یونیکس) باید با استفاده از دستور \-\-\net یک فضای نام جدید شبکه درخواست کنید. گزینه دیگر حذف unix از مجموعه \-\-\protocol است. .br .br مثال: .br $ firejail \-\-\dbus-system=none .TP \fB\-\-\dbus-system.broadcast=name=[member][@path] به برنامه اجازه می‌دهد تا سیگنال‌های پخشی (broadcast) را از عضو رابط مشخص‌شده در مسیر شیء مشخص‌شده که توسط نام گذرگاهِ مشخص‌شده روی DBus سیستم عرضه شده است، دریافت کند. نام می‌تواند پسوند .* داشته باشد تا با تمامی نام‌های زیرمجموعه آن، شامل خودش، مطابقت یابد. عضو رابط می‌تواند دارای .* باشد تا با تمام اعضای یک رابط تطبیق یابد، یا * باشد تا با همه رابط‌ها مطابقت کند. مسیر می‌تواند پسوند /* داشته باشد تا کلیه اشیاء زیرمجموعه آن، شامل خودش را در بر گیرد. حذف عضو رابط یا مسیر شیء به ترتیب با کلیه اعضا و مسیرهای شیء مطابقت خواهد داشت. .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.broadcast=\\ .br org.freedesktop.Notifications=\\ .br org.freedesktop.Notifications.*@/org/freedesktop/Notifications .TP \fB\-\-\dbus-system.call=name=[member][@path] به برنامه اجازه می‌دهد تا عضو رابط مشخص‌شده را در مسیر شیء مشخص‌شده که توسط نام گذرگاه مشخص‌شده روی DBus سیستم عرضه شده است، فراخوانی کند. نام می‌تواند پسوند .* داشته باشد تا با تمام نام‌های زیرمجموعه آن، از جمله خودش، مطابقت یابد. عضو رابط می‌تواند دارای .* باشد تا با تمامی اعضای یک رابط مطابقت کند، یا * باشد تا با تمام رابط‌ها تطبیق یابد. مسیر می‌تواند پسوند /* داشته باشد تا کلیه اشیاء زیرمجموعه آن، شامل خودش را نشان دهد. حذف عضو رابط یا مسیر شیء به ترتیب با تمام اعضا و مسیرهای شیء مطابقت خواهد داشت. .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.call=\\ .br org.freedesktop.Notifications=\\ .br org.freedesktop.Notifications.*@/org/freedesktop/Notifications .TP \fB\-\-\dbus-system.log روشن کردن لاگ‌گیری DBus برای DBus سیستم. این گزینه به --dbus-system=filter نیاز دارد. .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus-system.log .TP \fB\-\-\dbus-system.own=name به برنامه اجازه می‌دهد تا مالکیت نام شناخته‌شده مشخص‌شده را روی DBus سیستم در اختیار بگیرد. نام می‌تواند پسوند .* داشته باشد تا با کلیه نام‌های زیر آن، شامل خودش مطابقت کند (مثلاً "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" تطبیق می‌یابد، اما نه با "foobar"). .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.own=\\ .br org.gnome.ghex.* .TP \fB\-\-\dbus-system.see=name به برنامه امکان می‌دهد تا نام شناخته‌شده مشخص‌شده روی DBus سیستم را مشاهده کند، اما قادر به برقراری ارتباط با آن نباشد. نام می‌تواند پسوند .* داشته باشد تا با تمام نام‌های زیر آن، شامل خودش تطبیق یابد (مثلاً "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" تطبیق می‌یابد، اما نه با "foobar"). .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.see=\\ .br org.freedesktop.Notifications .TP \fB\-\-\dbus-system.talk=name به برنامه اجازه می‌دهد با نام شناخته‌شده مشخص‌شده روی DBus سیستم ارتباط برقرار کند. نام می‌تواند پسوند .* داشته باشد تا با تمام نام‌های زیر آن، شامل خودش مطابقت داشته باشد (مثلاً "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" مطابقت می‌کند، اما نه با "foobar"). .br .br مثال: .br $ firejail \-\-\dbus\-system=filter \-\-\dbus\-system.talk=\\ .br org.freedesktop.Notifications .TP \fB\-\-\dbus-user=filter|none تنظیم خط‌مشی سندباکس DBus نشست (session). .br .br خط‌مشی \fBfilter\fR فیلتر DBus نشست را فعال می‌کند. این گزینه نیازمند نصب ابزار کمکی xdg-dbus-proxy است. مجوزها برای نام‌های شناخته‌شده را می‌توان با گزینه‌های --dbus-user.talk و --dbus-user.own اضافه کرد. .br .br خط‌مشی \fBnone\fR دسترسی به DBus نشست را غیرفعال می‌سازد. .br .br تنها سوکت یونیکس معمولی DBus نشست توسط این گزینه مدیریت می‌شود. برای غیرفعال کردن سوکت‌های انتزاعی (و اجبار برنامه‌ها به استفاده از سوکت یونیکس فیلترشده) باید با استفاده از دستور \-\-\net یک فضای نام جدید شبکه درخواست کنید. گزینه دیگر حذف unix از مجموعه \-\-\protocol است. .br .br مثال: .br $ firejail \-\-\dbus-user=none .TP \fB\-\-\dbus\-user.broadcast=name=[member][@path] به برنامه اجازه می‌دهد تا سیگنال‌های پخشی (broadcast) را از عضو رابطِ مشخص‌شده در مسیر شیءِ مشخص‌شده که توسط نام گذرگاهِ مشخص‌شده روی DBus نشست (session) ارائه شده است، دریافت کند. نام می‌تواند پسوند .* داشته باشد تا با تمام نام‌های زیرمجموعه آن، از جمله خودش، مطابقت یابد. عضو رابط می‌تواند دارای .* باشد تا با تمامی اعضای یک رابط تطبیق یابد، یا * باشد تا با تمام رابط‌ها مطابقت کند. مسیر می‌تواند پسوند /* داشته باشد تا کلیه اشیاء زیرمجموعه آن، شامل خودش را در بر گیرد. حذف عضو رابط یا مسیر شیء به ترتیب با کلیه اعضا و مسیرهای شیء مطابقت خواهد داشت. .br .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.broadcast=\\ .br org.freedesktop.Notifications=\\ .br org.freedesktop.Notifications.*@/org/freedesktop/Notifications .TP \fB\-\-\dbus\-user.call=name=[member][@path] به برنامه اجازه می‌دهد تا عضو رابط مشخص‌شده را در مسیر شیء مشخص‌شده که توسط نام گذرگاه مشخص‌شده روی DBus نشست ارائه شده است، فراخوانی کند. نام می‌تواند پسوند .* داشته باشد تا با کلیه نام‌های زیر آن، شامل خودش، مطابقت کند. عضو رابط می‌تواند دارای .* باشد تا با تمامی اعضای یک رابط تطبیق یابد، یا * باشد تا با تمام رابط‌ها مطابقت کند. مسیر می‌تواند پسوند /* داشته باشد تا کلیه اشیاء زیر آن، شامل خودش را نشان دهد. حذف عضو رابط یا مسیر شیء به ترتیب با تمامی اعضا و مسیرهای شیء تطبیق خواهد یافت. .br .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.call=\\ .br org.freedesktop.Notifications=\\ .br org.freedesktop.Notifications.*@/org/freedesktop/Notifications .TP \fB\-\-\dbus-user.log روشن کردن لاگ‌گیری DBus برای DBus نشست. این گزینه به --dbus-user=filter نیاز دارد. .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.log .TP \fB\-\-\dbus\-user.own=name به برنامه اجازه می‌دهد تا مالکیت نام شناخته‌شده مشخص را روی DBus نشست در اختیار گیرد. نام می‌تواند دارای پسوند .* باشد تا با تمامی نام‌های زیرمجموعه آن، شامل خودش، مطابقت یابد (مثلاً "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" مطابقت دارد، اما با "foobar" تطبیق ندارد). .br .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.own=org.gnome.ghex.* .TP \fB\-\-\dbus-user.see=name به برنامه اجازه می‌دهد تا نام شناخته‌شده مشخص را روی DBus نشست ببیند، اما نتواند با آن گفتگو کند. نام می‌تواند پسوند .* داشته باشد تا با تمامی نام‌های زیر آن، شامل خودش مطابقت داشته باشد (برای نمونه "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" تطبیق دارد، اما نه با "foobar"). .br .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.see=\\ .br org.freedesktop.Notifications .TP \fB\-\-\dbus-user.talk=name به برنامه اجازه می‌دهد با نام شناخته‌شده مشخص روی DBus نشست گفتگو و ارتباط برقرار کند. نام می‌تواند دارای پسوند .* باشد تا با کلیه نام‌های زیر آن، از جمله خودش، مطابقت یابد (مثلاً "foo.bar.*" با "foo.bar"، "foo.bar.baz" و "foo.bar.baz.quux" تطبیق دارد، ولی نه با "foobar"). .br .br مثال: .br $ firejail \-\-\dbus\-user=filter \-\-\dbus\-user.talk=\\ .br org.freedesktop.Notifications .TP \fB\-\-\debug\fR چاپ پیام‌های اشکال‌زدایی (دیباگ). .br .br مثال: .br $ firejail \-\-\debug /usr/bin/firefox .TP \fB\-\-\debug\-blacklists\fR اشکال‌زدایی فهرست‌های سیاه (blacklists). .br .br مثال: .br $ firejail \-\-\debug\-blacklists /usr/bin/firefox .TP \fB\-\-\debug\-caps چاپ تمامی قابلیت‌های شناسایی‌شده در بیلد جاری نرم‌افزار Firejail و خروج. .br .br مثال: .br $ firejail \-\-\debug\-caps .TP \fB\-\-\debug\-errnos چاپ تمامی شماره‌های خطای شناخته‌شده در بیلد جاری نرم‌افزار Firejail و خروج. .br .br مثال: .br $ firejail \-\-\debug\-errnos .TP \fB\-\-\debug\-protocols چاپ تمامی پروتکل‌های شناخته‌شده در بیلد جاری نرم‌افزار Firejail و خروج. .br .br مثال: .br $ firejail \-\-\debug\-protocols .TP \fB\-\-\debug-syscall-groups[=@group1,@group2,@all,...] چاپ تمامی گروه‌های فراخوان سیستمی و توضیحات آن‌ها، سپس خروج. .br .br گروه‌های seccomp را با کاما جدا کنید تا فراخوان‌های سیستمی آن‌ها در بیلد جاری نرم‌افزار Firejail چاپ شده و برنامه خارج شود. گروه ویژه @all می‌تواند جهت چاپ تمام گروه‌های seccomp و فراخوان‌های سیستمی مربوطه به کار رود. .br .br مثال: .br $ firejail \-\-\debug-syscall-groups .br $ firejail \-\-\debug-syscall-groups=@chown,@mount,@swap .br $ firejail \-\-\debug-syscall-groups=@all .TP \fB\-\-\debug-syscalls چاپ تمامی فراخوان‌های سیستمی شناخته‌شده در بیلد جاری نرم‌افزار Firejail و خروج. .br .br مثال: .br $ firejail \-\-\debug\-syscalls .br .br نکته: نگاشت فراخوان‌های سیستمی مستقیماً از فایل‌های .tbl مختص معماری در سورس‌های هسته لینوکس گرفته شده است، که به فایل‌های هدر در src/include تبدیل شده و درون firejail ساخته شده‌اند. تنها فراخوان‌های سیستمی برای معماری هدفِ ساخت و گونه‌های ۳۲ بیتی (در صورت کاربرد) در ساخت گنجانده شده‌اند، مانند x86_64 و x86 (به ترتیب). اگر شماره یا نام یک فراخوان سیستمی در فهرست نباشد، توسط firejail شناخته نمی‌شود. این امر ممکن است به دلیل عدم وجود فراخوان سیستمی در فایل .tbl (مانند فراخوان‌های سیستمی منسوخ)، اضافه نشدن آن به firejail تا این لحظه، یا بیش از حد قدیمی بودن بیلد فعلی firejail باشد. .br .br فایل‌های نمونه .tbl برای x86_64 و x86 در لینوکس v6.19: .br .br .UR https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/entry/syscalls/syscall_64.tbl?h=v6.19 .UE .br .UR https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/entry/syscalls/syscall_32.tbl?h=v6.19 .UE .TP \fB\-\-\debug\-syscalls32 چاپ تمامی فراخوان‌های سیستمی ۳۲ بیتی شناخته‌شده در بیلد جاری نرم‌افزار Firejail و خروج. این گزینه همانند \fB\-\-\debug-syscalls\fR است، اما برای فراخوان‌های سیستمی ۳۲ بیتی کاربرد دارد. .TP \fB\-\-\debug\-whitelists\fR اشکال‌زدایی فهرست‌های سفید (whitelists). .br .br مثال: .br $ firejail \-\-\debug\-whitelists /usr/bin/firefox .TP \fB\-\-\defaultgw=address استفاده از این آدرس به عنوان درگاه پیش‌فرض (default gateway) در فضای نام جدید شبکه. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\defaultgw=10.10.20.1 /usr/bin/firefox .TP \fB\-\-\deterministic\-exit\-code همیشه با وضعیت خروجِ نخستین فرزند، از firejail خارج شوید. رفتار پیش‌فرض استفاده از وضعیت خروج آخرین فرزندِ پایان‌یافته است که می‌تواند نامعین باشد. .br .TP \fB\-\-\deterministic\-shutdown همیشه پس از خاتمه یافتن نخستین فرزند، سندباکس را خاموش کنید. رفتار پیش‌فرض این است که سندباکس تا زمانی که حاوی فرآیندهای در حال اجرا باشد زنده نگه داشته شود. .br .TP \fB\-\-\disable\-mnt قرار دادن دسترسی به مسیرهای /mnt، /media، /run/mount و /run/media در فهرست سیاه. .br .br مثال: .br $ firejail \-\-\disable\-mnt /usr/bin/firefox .TP \fB\-\-\dns=address تنظیم یک سرور DNS برای سندباکس. تا سه سرور DNS قابل تعریف است. اگر به پیکربندی DNS در شبکه خود اطمینان ندارید از این گزینه بهره بگیرید. .br .br مثال: .br $ firejail \-\-\dns=8.8.8.8 \-\-\dns=8.8.4.4 /usr/bin/firefox .br .br نکته: این ویژگی روی پیکربندی‌های مبتنی بر systemd-resolved پشتیبانی نمی‌شود. .TP \fB\-\-\dns.print=name|pid چاپ پیکربندی DNS برای سندباکس مشخص‌شده با نام یا با PID. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\dns.print=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\dns.print=3272 .TP \fB\-\-\dnstrace[=name|pid] پایش پرس‌وجوهای DNS. سندباکس می‌تواند با نام یا pid تعیین شود. تنها سندباکس‌های شبکه‌ای ایجادشده با \-\-\net پشتیبانی می‌شوند. این گزینه تنها هنگام اجرای سندباکس با دسترسی ریشه در دسترس است. .br .br بدون مشخص کردن نام/pid، فایرجیل فضای نام شبکه اصلی سیستم را پایش خواهد کرد. .br .br مثال: .br $ sudo firejail \-\-\dnstrace .br 11:31:43 9.9.9.9 linux.com (type 1) .br 11:31:45 9.9.9.9 fonts.googleapis.com (type 1) NXDOMAIN .br 11:31:45 9.9.9.9 js.hs-scripts.com (type 1) NXDOMAIN .br 11:31:45 9.9.9.9 www.linux.com (type 1) .br 11:31:45 9.9.9.9 fonts.googleapis.com (type 1) NXDOMAIN .br 11:31:52 9.9.9.9 js.hs-scripts.com (type 1) NXDOMAIN .br 11:32:05 9.9.9.9 secure.gravatar.com (type 1) .br 11:32:06 9.9.9.9 secure.gravatar.com (type 1) .br 11:32:08 9.9.9.9 taikai.network (type 1) .br 11:32:08 9.9.9.9 cdn.jsdelivr.net (type 1) .br 11:32:08 9.9.9.9 taikai.azureedge.net (type 1) .br 11:32:08 9.9.9.9 www.youtube.com (type 1) .br .TP \fB\-\-\env=name=value تنظیم متغیر محیطی در سندباکس جدید. .br .br مثال: .br $ firejail \-\-\env=LD_LIBRARY_PATH=/opt/test/lib .TP \fB\-\-\fs.print=name|pid چاپ لاگ سیستم فایل برای سندباکس مشخص‌شده با نام یا با PID. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\fs.print=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\fs.print=3272 .TP \fB\-\-\get=name|pid filename دریافت یک فایل از ظرف سندباکس، برای جزئیات بیشتر بخش \fBFILE TRANSFER\fR را ببینید. .TP \fB\-?\fR, \fB\-\-\help\fR چاپ گزینه‌ها و خروج. .TP \fB\-\-\hostname=name تنظیم نام میزبان (hostname) سندباکس. .br این گزینه با \fB\-\-\hostname\-randomize\fR ناسازگار است. .br برای نام‌های معتبر، بخش \fBNAME VALIDATION\fR را ببینید. .br .br مثال: .br $ firejail \-\-\hostname=officepc /usr/bin/firefox .TP \fB\-\-\hostname\-randomize تنظیم نام میزبان سندباکس به یک مقدار تصادفی تولیدشده توسط firejail. .br این گزینه با \fB\-\-\hostname\fR ناسازگار است. .br .br مثال: .br $ firejail \-\-\hostname-randomize /usr/bin/firefox .br نکته: تغییر نام میزبان ممکن است منجر به بروز اشکالات مرتبط با شبکه گردد (ببینید .UR https://github.com/netblue30/firejail/issues/7048 #7048 .UE ) و همچنین ممکن است سبب خرابی برنامه‌های X11 در زمان راه‌اندازی به دلیل ناتوانی در احراز هویت با سرور X شود (ببینید .UR https://github.com/netblue30/firejail/issues/7062 #7062 .UE ). .TP \fB\-\-\hosts-file=file استفاده از file به عنوان /etc/hosts. .br .br مثال: .br $ firejail \-\-\hosts-file=~/myhosts /usr/bin/firefox .TP \fB\-\-\icmptrace[=name|pid] پایش ترافیک ICMP. سندباکس را می‌توان با نام یا pid مشخص کرد. تنها سندباکس‌های شبکه‌ای ایجادشده با \-\-\net پشتیبانی می‌شوند. این گزینه تنها هنگام اجرای سندباکس با دسترسی ریشه در دسترس است. .br .br بدون مشخص کردن نام/pid، فایرجیل فضای نام شبکه اصلی سیستم را پایش خواهد کرد. .br .br مثال: .br $ sudo firejail \-\-\icmptrace .br 20:53:54 192.168.1.60 -> 142.250.65.174 - 98 bytes - Echo request/0 .br 20:53:54 142.250.65.174 -> 192.168.1.60 - 98 bytes - Echo reply/0 .br 20:53:55 192.168.1.60 -> 142.250.65.174 - 98 bytes - Echo request/0 .br 20:53:55 142.250.65.174 -> 192.168.1.60 - 98 bytes - Echo reply/0 .br 20:53:55 192.168.1.60 -> 1.1.1.1 - 154 bytes - Destination unreachable/Port unreachable .br .TP \fB\-\-\ignore=command نادیده گرفتن دستور مشخص‌شده در فایل پروفایل. .br .br مثال: .br $ firejail \-\-\ignore=seccomp \-\-\ignore=caps /usr/bin/firefox .br $ firejail \-\-\ignore="net eth0" /usr/bin/firefox .TP \fB\-\-\include=file.profile افزودن یک فایل پروفایل پیش از استفاده از پروفایل‌های معمولی. .br .br مثال: .br $ firejail \-\-\include=/etc/firejail/disable-devel.inc /usr/bin/gedit .TP \fB\-\-\interface=interface انتقال رابط شبکه به یک فضای نام جدید شبکه. حداکثر تا چهار گزینه --interface قابل تعیین است. نکته: دستگاه‌های wlan برای این گزینه پشتیبانی نمی‌شوند. .br .br مثال: .br $ firejail \-\-\interface=eth1 \-\-\interface=eth0.vlan100 .TP \fB\-\-\ip=address اختصاص نشانی IP به آخرین رابط شبکه تعریف‌شده توسط یک گزینه \-\-\net. یک درگاه پیش‌فرض به صورت خودکار تعیین می‌شود. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\ip=10.10.20.56 /usr/bin/firefox .TP \fB\-\-\ip=dhcp دریافت آدرس IP و درگاه پیش‌فرض برای آخرین رابط تعریف‌شده با گزینه \-\-\net، و همچنین تنظیم سرورهای DNS طبق پاسخ DHCP. این گزینه نیازمند نصب کلاینت ISC dhclient است و آن را درون سندباکس به طور خودکار اجرا می‌کند. .br .br مثال: .br $ firejail \-\-\net=br0 \-\-\ip=dhcp .br .br این گزینه در صورتی که سرور DHCP اقدام به پیکربندی سرورهای DNS برای کلاینت‌ها نماید، نباید همراه با گزینه \-\-\dns استفاده شود، زیرا سرورهای DNS مشخص‌شده به صورت دستی بازنویسی خواهند شد. .br کلاینت DHCP با پایان یافتن سندباکس اجاره DHCP (lease) را آزاد نخواهد کرد. اگر سرور DHCP شما نیازمند آزادسازی صریح اجاره‌ها است، اجرای یک کلاینت DHCP و آزادسازی دستی اجاره در کنار گزینه \-\-\net=none را مد نظر قرار دهید. .TP \fB\-\-\ip=none هیچ نشانی IP و درگاه پیش‌فرضی برای آخرین رابط تعریف‌شده توسط یک گزینه \-\-\net پیکربندی نمی‌شود. در صورتی که قصد دارید یک کلاینت DHCP خارجی را درون سندباکس اجرا نمایید از این گزینه استفاده کنید. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\ip=none .br .br اگر برای رابط متناظر هیچ نشانی IP پیکربندی نشده باشد، این گزینه به صورت پیش‌فرض فعال خواهد بود. .TP \fB\-\-\ip6=address اختصاص نشانی‌های IPv6 به آخرین رابط شبکه تعریف‌شده توسط یک گزینه \-\-\net. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\ip6=2001:0db8:0:f101::1/64 /usr/bin/firefox نکته: اگر نشانی ip6 خود را از روتر از طریق SLAAC دریافت می‌کنید به این گزینه نیازی ندارید (نشانی ip6 و مسیر پیش‌فرض شما به صورت خودکار توسط هسته پیکربندی می‌شود). .TP \fB\-\-\ip6=dhcp دریافت نشانی IPv6 و درگاه پیش‌فرض برای آخرین رابط تعریف‌شده توسط یک گزینه \-\-\net، و همچنین تنظیم سرورهای DNS بر اساس پاسخ DHCP. این گزینه نیازمند نصب کلاینت DHCP یعنی ISC dhclient است و آن را به طور خودکار درون سندباکس اجرا می‌کند. .br .br مثال: .br $ firejail \-\-\net=br0 \-\-\ip6=dhcp .br .br این گزینه نباید هم‌زمان با گزینه \-\-\dns به کار رود اگر سرور DHCP برای پیکربندی سرورهای DNS روی کلاینت‌ها تنظیم شده باشد، زیرا سرورهای DNS دستی رونویسی خواهند شد. .br کلاینت DHCP با پایان سندباکس اجاره DHCP را آزاد نخواهد کرد. اگر سرور DHCP شما نیازمند آزادسازی صریح اجاره‌هاست، اجرای کلاینت DHCP و آزادسازی دستی اجاره را مد نظر قرار دهید. .TP \fB\-\-\iprange=address,address اختصاص یک نشانی IP در محدوده ارائه‌شده به آخرین رابط شبکه تعریف‌شده با یک گزینه \-\-\net. یک درگاه پیش‌فرض به صورت خودکار اختصاص می‌یابد. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\iprange=192.168.1.100,192.168.1.150 .TP \fB\-\-\ipc\-namespace فعال‌سازی یک فضای نام جدید IPC در صورتی که سندباکس به عنوان یک کاربر عادی اجرا شده باشد. فضای نام IPC به طور پیش‌فرض برای سندباکس‌هایی که با دسترسی ریشه اجرا می‌شوند فعال است. .br .br نکته: این مورد تنها بر منابع IPC ذکرشده در \fBipc_namespaces\fR(7) اثر می‌گذارد. بر سایر منابع IPC مانند سوکت‌های یونیکس (ببینید \fBunix\fR(7)) اثری ندارد. .br .br مثال: .br $ firejail \-\-\ipc\-namespace /usr/bin/firefox .TP \fB\-\-\join=name|pid پیوستن به سندباکس مشخص‌شده با نام یا PID. به طور پیش‌فرض پس از پیوستن به سندباکس یک شل /bin/bash اجرا می‌شود. اگر برنامه‌ای مشخص شود، آن برنامه درون سندباکس اجرا خواهد شد. اگر دستور \-\-\join به عنوان یک کاربر عادی صادر شود، تمامی فیلترهای امنیتی برای فرآیند جدید به همان شکلی که در سندباکس تنظیم شده‌اند پیکربندی می‌شوند. اگر دستور \-\-\join با دسترسی ریشه صادر شود، فیلترهای امنیتی و پیکربندی‌های پردازنده‌ها (cpus) روی فرآیند ملحق‌شده به سندباکس اعمال نخواهند شد. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\join=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\join=3272 .TP \fB\-\-\join-filesystem=name|pid پیوستن به فضای نام سوارکردن (mount namespace) مربوط به سندباکس مشخص‌شده با نام یا PID. به طور پیش‌فرض پس از پیوستن به سندباکس، یک شل /bin/bash اجرا می‌شود. اگر برنامه‌ای مشخص شود، آن برنامه در سندباکس اجرا خواهد شد. این دستور تنها برای کاربر ریشه (root) در دسترس است. فیلترهای امنیتی و پیکربندی‌های پردازنده‌ها (cpus) روی فرآیند ملحق‌شده به سندباکس اعمال نمی‌شوند. .TP \fB\-\-\join-network=name|pid پیوستن به فضای نام شبکه مربوط به سندباکس مشخص‌شده با نام. به طور پیش‌فرض پس از پیوستن به سندباکس یک شل /bin/bash اجرا می‌گردد. اگر برنامه‌ای مشخص شود، آن برنامه درون سندباکس اجرا خواهد شد. این دستور فقط برای کاربر ریشه در دسترس است. فیلترهای امنیتی و پیکربندی‌های cpus بر روی فرآیند ملحق‌شده به سندباکس اعمال نخواهند شد. مثال: .br .br # شروع firefox .br $ firejail \-\-\net=eth0 \-\-\name=browser /usr/bin/firefox & .br .br # تغییر پیکربندی netfilter .br $ sudo firejail \-\-\join-network=browser bash -c "cat /etc/firejail/nolocal.net | /sbin/iptables-restore" .br .br # اعتبارسنجی پیکربندی netfilter .br $ sudo firejail \-\-\join\-network=browser /sbin/iptables \-vL .br .br # بررسی نشانی‌های IP .br $ sudo firejail \-\-\join-network=browser ip addr .br Switching to pid 1932, the first child process inside the sandbox .br 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default .br link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 .br inet 127.0.0.1/8 scope host lo .br valid_lft forever preferred_lft forever .br inet6 ::1/128 scope host .br valid_lft forever preferred_lft forever .br 2: eth0-1931: mtu 1500 qdisc noqueue state UNKNOWN group default .br link/ether 76:58:14:42:78:e4 brd ff:ff:ff:ff:ff:ff .br inet 192.168.1.158/24 brd 192.168.1.255 scope global eth0-1931 .br valid_lft forever preferred_lft forever .br inet6 fe80::7458:14ff:fe42:78e4/64 scope link .br valid_lft forever preferred_lft forever .TP \fB\-\-\join-or-start=name پیوستن به سندباکس مشخص‌شده با نام یا آغاز یک سندباکس جدید. اگر سندباکسی با نام مشخص‌شده از قبل موجود باشد مشابه "firejail --join=name" عمل می‌کند، و در غیر این صورت همانند "firejail --name=name ..." خواهد بود. برای جزئیات بیشتر به \fB\-\-\name\fR مراجعه کنید. .br توجه داشته باشید که بر خلاف دیگر گزینه‌های join، برای این گزینه یک معادل در فایل پروفایل وجود دارد. .TP \fB\-\-\keep\-config\-pulse غیرفعال کردن مقداردهی خودکار ~/.config/pulse برای راه‌اندازی‌های پیچیده مانند سرورهای راه دور pulse یا مسیرهای سوکت غیرمعمول. .br .br مثال: .br $ firejail \-\-\keep-config-pulse /usr/bin/firefox .TP \fB\-\-\keep\-dev\-ntsync اجازه دسترسی به دستگاه کاراکتری /dev/ntsync (حتی همراه با \fB\-\-\private\-dev\fR) که به صورت پیش‌فرض مسدود است. این دستگاه عمدتاً جهت بهبود کارایی و سازگاری هنگام اجرای برخی برنامه‌ها از طریق Wine به کار می‌رود. .br .br مثال: .br $ firejail \-\-\keep\-dev\-ntsync \-\-\private-dev .TP \fB\-\-\keep\-dev\-shm دایرکتوری /dev/shm دست‌نخورده باقی می‌ماند (حتی در حضور \-\-\private-dev). .br .br مثال: .br $ firejail \-\-\keep\-dev\-shm \-\-\private-dev .TP \fB\-\-\keep-dev-tpm اجازه دسترسی به دستگاه‌های ماژول رمزنگاری مورد اعتماد (TCM) و ماژول بستر معتمد (TPM) (حتی همراه با \fB\-\-\private-dev\fR) که به‌طور پیش‌فرض مسدود هستند. .br .br مسیرها: .br /dev/tcm[0-9]* .br /dev/tcmrm[0-9]* .br /dev/tpm[0-9]* .br /dev/tpmrm[0-9]* .br .br مثال: .br $ firejail \-\-\keep\-dev\-tpm \-\-\private-dev .TP \fB\-\-\keep\-fd=all انتقال و به ارث رسیدن تمام توصیف‌کننده‌های فایلِ باز به درون سندباکس. به‌طور پیش‌فرض فقط توصیف‌کننده‌های فایل ۰، ۱ و ۲ به سندباکس به ارث می‌رسند و سایر توصیف‌کننده‌ها بسته می‌شوند. .br .br مثال: .br $ firejail \-\-\keep\-fd=all .TP \fB\-\-\keep\-fd=file_descriptor عدم بستن توصیف‌کننده‌های فایل باز مشخص‌شده. به‌طور پیش‌فرض تنها توصیف‌کننده‌های فایل ۰، ۱ و ۲ به سندباکس به ارث می‌رسند و بقیه بسته خواهند شد. .br .br مثال: .br $ firejail \-\-\keep\-fd=3,4,5 .TP \fB\-\-\keep\-shell\-rc به‌طور پیش‌فرض، هنگام استفاده از دایرکتوری خانگی خصوصی، firejail فایل‌ها را از الگوی کاربر سیستم (/etc/skel) درون آن کپی می‌کند که این امر تلاش‌ها برای افزودن فایل‌های اصلی (مانند ~/.bashrc و ~/.zshrc) به فهرست سفید را بی‌اثر می‌سازد. این گزینه این قابلیت را غیرفعال کرده و به کاربر امکان می‌دهد تا فایل‌های اصلی را در فهرست سفید قرار دهد. .TP \fB\-\-\keep\-var\-tmp دایرکتوری /var/tmp دست‌نخورده باقی می‌ماند. .br .br مثال: .br $ firejail \-\-\keep\-var\-tmp .TP \fB\-\-\landlock.enforce\fR (آزمایشی) اجرای اجباری مجموعه قوانین Landlock. بدون این گزینه، سایر دستورات Landlock اثری نخواهند داشت. برای اطلاعات بیشتر بخش \fBLANDLOCK\fR را در ادامه ببینید. .TP \fB\-\-\landlock.fs.read=path\fR (آزمایشی) ایجاد یک مجموعه قوانین Landlock (اگر قبلاً وجود نداشته باشد) و افزودن یک قانون دسترسی خواندن برای path. .TP \fB\-\-\landlock.fs.write=path\fR (آزمایشی) ایجاد یک مجموعه قوانین Landlock (در صورت عدم وجود) و افزودن قانون دسترسی نوشتن برای path. .TP \fB\-\-\landlock.fs.makeipc=path\fR (آزمایشی) ایجاد یک مجموعه قوانین Landlock (اگر از قبل موجود نباشد) و افزودن قانونی که ساخت لوله‌های نام‌گذاری‌شده (FIFOs) و سوکت‌های دامنه یونیکس را در زیر مسیر ارائه‌شده مجاز می‌سازد. .TP \fB\-\-\landlock.fs.makedev=path\fR (آزمایشی) ایجاد یک مجموعه قوانین Landlock (اگر وجود نداشته باشد) و افزودن قانونی که ایجاد دستگاه‌های بلوکی و کاراکتری را در زیر مسیر مشخص‌شده مجاز می‌کند. .TP \fB\-\-\landlock.fs.execute=path\fR (آزمایشی) ایجاد یک مجموعه قوانین Landlock (در صورت عدم وجود) و افزودن قانون مجوز اجرا برای path. .br .br مثال: .br $ firejail \-\-\landlock.fs.read=/ \-\-\landlock.fs.write=/home \-\-\landlock.fs.execute=/usr \-\-\landlock.enforce .TP \fB\-\-\list فهرست کردن تمامی سندباکس‌ها، برای جزئیات بیشتر بخش \fBMONITORING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\list .br 7015:netblue:browser:firejail /usr/bin/firefox .br 7056:netblue:torrent:firejail \-\-\net=eth0 /usr/bin/transmission-gtk .br 7064:netblue::firejail \-\-\noroot /usr/bin/xterm .br .TP \fB\-\-\ls=name|pid dir_or_filename فهرست کردن فایل‌ها درون ظرف سندباکس، برای جزئیات بیشتر بخش \fBFILE TRANSFER\fR را ببینید. .TP \fB\-\-\mac=address اختصاص نشانی‌های MAC به آخرین رابط شبکه تعریف‌شده توسط یک گزینه \-\-\net. این گزینه برای رابط‌های بی‌سیم پشتیبانی نمی‌شود. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\mac=00:11:22:33:44:55 /usr/bin/firefox .TP \fB\-\-\machine-id جعل شناسه موجود در فایل /etc/machine-id - یک شناسه تصادفی جدید درون سندباکس تولید می‌شود. توجه داشته باشید که این گزینه پشتیبانی از صدا را از کار می‌اندازد. زمانی آن را فعال کنید که نیازی به صدا نیست. .br .br مثال: .br $ firejail \-\-\machine-id .TP \fB\-\-\memory-deny-write-execute نصب یک فیلتر seccomp برای مسدودسازی تلاش‌ها جهت ایجاد نگاشت‌های حافظه‌ای که هم‌زمان قابل نوشتن و قابل اجرا هستند، یا تغییر نگاشت‌ها به حالت قابل اجرا، یا ایجاد حافظه مشترکِ قابل اجرا. این فیلتر آرگومان‌های فراخوان‌های سیستمی mmap، mmap2، mprotect، pkey_mprotect، memfd_create و shmat را بررسی کرده و در صورت لزوم خطای EPERM را به فرآیند بازمی‌گرداند (یا آن را خاتمه داده یا اقدام را لاگ می‌کند؛ گزینه \-\-\seccomp\-error\-action را در ادامه ببینید). .br .br نکته: فراخوان سیستمی shmat روی برخی بسترها از جمله i386 پیاده‌سازی نشده است و توسط seccomp\-bpf قابل مدیریت نیست. .TP \fB\-\-\mkdir=dirname ایجاد یک دایرکتوری در خانه کاربر. دایرکتوری‌های والد در صورت نیاز ایجاد می‌شوند. .br .br مثال: .br $ firejail \-\-\mkdir=~/work/project .TP \fB\-\-\mkfile=filename ایجاد یک فایل خالی در خانه کاربر. .br .br مثال: .br $ firejail \-\-\mkfile=~/work/project/readme .TP \fB\-\-\mtu=number اختصاص مقدار MTU به آخرین رابط شبکه تعریف‌شده توسط یک گزینه \-\-\net. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\mtu=1492 .TP \fB\-\-\name=name تعیین نام سندباکس. چندین گزینه مانند \-\-\join و \-\-\shutdown می‌توانند از این نام برای شناسایی یک سندباکس استفاده کنند. نام نمی‌تواند تنها حاوی ارقام باشد، زیرا در سایر گزینه‌ها مانند \-\-\join به عنوان یک PID تلقی می‌شود. .br برای نام‌های معتبر، بخش \fBNAME VALIDATION\fR را ببینید. .br .br در صورتی که نام ارائه‌شده توسط کاربر پیش‌تر توسط سندباکس دیگری در حال استفاده باشد، Firejail نام جدیدی را به شکل "name-PID" اختصاص می‌دهد که در آن PID شناسه فرآیند سندباکس است. این ویژگی می‌تواند در زمان اجرا در فایل /etc/firejail/firejail.config با قرار دادن فلگ "name-change" روی "no" غیرفعال شود. .br .br مثال: .br $ firejail \-\-\name=browser /usr/bin/firefox & .br $ firejail \-\-\name=browser \-\-\private \\ /usr/bin/firefox \-\-\no-remote & .br $ firejail \-\-\list .br 1198:netblue:browser:firejail --name=browser /usr/bin/firefox .br 1312:netblue:browser-1312:firejail --name=browser --private /usr/bin/firefox --no-remote .br .TP \fB\-\-\net=bridge_interface فعال‌سازی یک فضای نام جدید شبکه و اتصال آن به این رابط پل (bridge). مگر در مواردی که با گزینه‌های \-\-\ip و \-\-\defaultgw مشخص شده باشد، یک آدرس IP و یک درگاه پیش‌فرض به طور خودکار به سندباکس اختصاص می‌یابد. آدرس IP پیش از تخصیص با استفاده از ARP اعتبارسنجی می‌شود. آدرسی که به عنوان درگاه پیش‌فرض پیکربندی می‌شود آدرس IP دستگاه پل است. حداکثر تا چهار گزینه \-\-\net قابل تعیین است. .br .br مثال: .br $ sudo brctl addbr br0 .br $ sudo ifconfig br0 10.10.20.1/24 .br $ sudo brctl addbr br1 .br $ sudo ifconfig br1 10.10.30.1/24 .br $ firejail \-\-\net=br0 \-\-\net=br1 .TP \fB\-\-\net=ethernet_interface|wireless_interface فعال‌سازی یک فضای نام جدید شبکه و اتصال آن به این رابط اترنت با استفاده از درایور استاندارد macvlan|ipvlan لینوکس. مگر اینکه با گزینه‌های \-\-\ip و \-\-\defaultgw تعیین شده باشد، یک آدرس IP و درگاه پیش‌فرض به صورت خودکار به سندباکس اختصاص می‌یابد. آدرس IP پیش از تخصیص توسط ARP بررسی می‌شود. آدرس پیکربندی‌شده به عنوان درگاه پیش‌فرض، درگاه پیش‌فرض میزبان خواهد بود. تا چهار گزینه \-\-\net قابل تعیین است. پشتیبانی از درایور ipvlan در هسته نسخه 3.19 لینوکس معرفی شده است. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\ip=192.168.1.80 \-\-\dns=8.8.8.8 /usr/bin/firefox .br $ firejail \-\-\net=wlan0 /usr/bin/firefox .TP \fB\-\-\net=none فعال‌سازی یک فضای نام جدید و غیرمتصل شبکه. تنها رابط موجود در فضای نام جدید، یک رابط لوپ‌بک (lo) جدید است. از این گزینه برای سلب دسترسی شبکه از برنامه‌هایی که واقعاً به شبکه نیازی ندارند استفاده نمایید. .br .br مثال: .br $ firejail \-\-\net=none /usr/bin/vlc .br .br نکته: گزینه \-\-\net=none ممکن است روی برخی پلتفرم‌ها موجب کرش کردن برنامه شود. در این موارد می‌توان آن را با \-\-\protocol=unix جایگزین نمود. .TP \fB\-\-\net=tap_interface فعال‌سازی فضای نام جدید شبکه و اتصال آن به این رابط اترنت tap با استفاده از درایور استاندارد macvlan لینوکس. اگر رابط tap پیکربندی نشده باشد، سندباکس تلاشی برای پیکربندی رابط درون سندباکس نخواهد کرد. لطفاً از \-\-\ip، \-\-\netmask و \-\-\defaultgw برای مشخص کردن پیکربندی استفاده فرمایید. .br .br مثال: .br $ firejail \-\-\net=tap0 \-\-\ip=10.10.20.80 \-\-\netmask=255.255.255.0 \-\-\defaultgw=10.10.20.1 /usr/bin/firefox .TP \fB\-\-\net.print=name|pid در صورت فعال بودن یک فضای نام جدید شبکه، پیکربندی رابط شبکه را برای سندباکس مشخص‌شده با نام یا PID چاپ می‌کند. مثال: .br .br $ firejail \-\-\net.print=browser .br Switching to pid 1853, the first child process inside the sandbox .br Interface MAC IP Mask Status .br lo 127.0.0.1 255.0.0.0 UP .br eth0-1852 5e:fb:8e:27:29:26 192.168.1.186 255.255.255.0 UP .br .TP \fB\-\-\netfilter فعال‌سازی فایروال پیش‌فرض در صورت ایجاد فضای نام جدید شبکه درون سندباکس. این گزینه برای سندباکس‌هایی که از فضای نام شبکه سیستم استفاده می‌کنند بی اثر است. .br .br فایروال پیش‌فرض برای برنامه‌های رومیزی متداول بهینه‌سازی شده است. هیچ اتصال ورودی پذیرفته نمی‌شود: .br .br *filter .br :INPUT DROP [0:0] .br :FORWARD DROP [0:0] .br :OUTPUT ACCEPT [0:0] .br \-A INPUT \-i lo \-j ACCEPT .br \-A INPUT \-m state \-\-\state RELATED,ESTABLISHED \-j ACCEPT .br # allow ping .br \-A INPUT \-p icmp \-\-\icmp-type destination-unreachable \-j ACCEPT .br \-A INPUT \-p icmp \-\-\icmp-type time-exceeded \-j ACCEPT .br \-A INPUT \-p icmp \-\-\icmp-type echo-request \-j ACCEPT .br # drop STUN (WebRTC) requests .br -A OUTPUT \-p udp \-\-\dport 3478 \-j DROP .br \-A OUTPUT \-p udp \-\-\dport 3479 \-j DROP .br \-A OUTPUT \-p tcp \-\-\dport 3478 \-j DROP .br \-A OUTPUT \-p tcp \-\-\dport 3479 \-j DROP .br COMMIT .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\netfilter /usr/bin/firefox .TP \fB\-\-\netfilter=filename فعال‌سازی فایروال مشخص‌شده توسط filename در صورت ایجاد فضای نام جدید شبکه درون سندباکس. این گزینه روی سندباکس‌هایی که از فضای نام شبکه سیستم استفاده می‌کنند تاثیری ندارد. .br .br لطفاً از فرمت استاندارد iptables-save/iptables-restore برای فایل فیلتر استفاده کنید. مثال‌های زیر در دایرکتوری /etc/firejail در دسترس هستند: .br .br .B webserver.net یک فایروال سرور وب است که تنها به درگاه‌های TCP شماره ۸۰ و ۴۴۳ اجازه دسترسی می‌دهد. مثال: .br .br $ firejail \-\-\netfilter=/etc/firejail/webserver.net \-\-\net=eth0 \\ .br /etc/init.d/apache2 start .br .br .B nolocal.net/nolocal6.net یک فایروال کلاینت دسکتاپ است که دسترسی به شبکه محلی را غیرفعال می‌سازد. مثال: .br .br $ firejail \-\-\netfilter=/etc/firejail/nolocal.net \\ .br \-\-\net=eth0 /usr/bin/firefox .TP \fB\-\-\netfilter=filename,arg1,arg2,arg3 ... این نسخه قالبی (template) از دستور قبلی است. متغیرهای $ARG1, $ARG2, $ARG3 ... در اسکریپت فایروال با مقادیر arg1, arg2, arg3 ... ارسال‌شده در خط فرمان جایگزین می‌شوند. حداکثر تا ۱۶ آرگومان پشتیبانی می‌شود. مثال: .br .br $ firejail \-\-\net=eth0 \-\-\ip=192.168.1.105 \\ .br \-\-\netfilter=/etc/firejail/tcpserver.net,5001 server-program .br .TP \fB\-\-\netfilter.print=name|pid چاپ فایروال نصب‌شده در سندباکس مشخص‌شده با نام یا PID. مثال: .br .br $ firejail \-\-\name=browser \-\-\net=eth0 \-\-\netfilter /usr/bin/firefox & .br $ firejail \-\-\netfilter.print=browser .TP \fB\-\-\netfilter6=filename فعال‌سازی فایروال IPv6 مشخص‌شده توسط filename در صورت ایجاد فضای نام جدید شبکه درون سندباکس. این گزینه برای سندباکس‌هایی که از فضای نام شبکه سیستم استفاده می‌کنند اثری ندارد. لطفاً از فرمت استاندارد iptables-save/iptables-restore برای فایل فیلتر استفاده فرمایید. .TP \fB\-\-\netfilter6.print=name|pid چاپ فایروال IPv6 نصب‌شده در سندباکس مشخص‌شده با نام یا PID. مثال: .br .br $ firejail \-\-\name=browser \-\-\net=eth0 \-\-\netfilter /usr/bin/firefox & .br $ firejail \-\-\netfilter6.print=browser .TP \fB\-\-\netlock بسیاری از انواع برنامه‌ها (کلاینت‌های ایمیل، بازی‌های چندنفره و...) با تعداد بسیار اندکی از آدرس‌های IP ارتباط برقرار می‌کنند. اما بهترین نمونه مرورگر tor است. این مرورگر تنها با یک گره نگهبان (guard node) گفتگو می‌کند، و دو یا سه گره آماده‌باش دیگر نیز برای مواقع خرابی گره اصلی در نظر دارد. در حین راه‌اندازی، مرورگر با تمامی آن‌ها ارتباط برقرار می‌کند، و پس از آن به ارتباط خود با گره اصلی ادامه می‌دهد... برای چندین هفته! از قابلیت قفل شبکه (netlock) برای ایجاد و استقرار یک فایروال شبکه سفارشی در سندباکس خود بهره ببرید. این فایروال تنها ترافیک به سمت نشانی‌های IP شناسایی‌شده در حین راه‌اندازی برنامه را مجاز می‌داند. ترافیک به سوی هر نشانی دیگری بی‌صدا دور انداخته می‌شود (drop). به طور پیش‌فرض زمان پایش شبکه یک دقیقه است. وجود یک فضای نام شبکه (\-\-\net=eth0) برای کارکرد این قابلیت ضروری است. مثال: .br .br $ firejail \-\-\net=eth0 \-\-\netlock \\ .br \-\-\private=~/tor-browser_en-US ./start-tor-browser.desktop .br .br .TP \fB\-\-\netmask=address از این گزینه زمانی استفاده کنید که می‌خواهید یک آدرس IP در یک فضای نام جدید اختصاص دهید و رابط والد مشخص‌شده توسط --net پیکربندی نشده باشد. یک آدرس IP و یک آدرس درگاه پیش‌فرض نیز باید اضافه شوند. به طور پیش‌فرض رابط فضای نام جدید بدون آدرس IP و درگاه پیش‌فرض پیکربندی‌شده عرضه می‌شود. مثال: .br .br $ sudo /sbin/brctl addbr br0 .br $ sudo /sbin/ifconfig br0 up .br $ firejail \-\-\ip=10.10.20.67 \-\-\netmask=255.255.255.0 \-\-\defaultgw=10.10.20.1 .TP \fB\-\-\netns=name اجرای برنامه در یک فضای نام شبکه نام‌گذاری‌شده و پایدار. این فضاها می‌توانند با استفاده از "ip netns" ایجاد و پیکربندی شوند. .TP \fB\-\-\netstats پایش آمارهای فضای نام شبکه، برای جزئیات بیشتر بخش \fBMONITORING\fR را ببینید. .br .br مثال: .br .br $ firejail \-\-\netstats .br PID User RX(KB/s) TX(KB/s) Command .br 1294 netblue 53.355 1.473 firejail \-\-\net=eth0 /usr/bin/firefox .br 7383 netblue 9.045 0.112 firejail \-\-\net=eth0 /usr/bin/transmission .TP \fB\-\-\nettrace[=name|pid] پایش ترافیک‌های دریافتی TCP، UDP و ICMP. سندباکس را می‌توان با نام یا pid تعیین نمود. تنها سندباکس‌های شبکه‌ای ایجادشده با \-\-\net پشتیبانی می‌شوند. این گزینه فقط هنگام اجرای سندباکس با دسترسی ریشه در دسترس است. .br .br بدون مشخص کردن نام/pid، ابزار Firejail فضای نام شبکه اصلی سیستم را پایش خواهد کرد. .br .br مثال: .br $ sudo firejail \-\-\nettrace .br 93 KB/s address:port (protocol) network .br 14 B/s ** 104.24.8.4:443(QUIC) Cloudflare .br 80 KB/s ***************** 192.187.97.90:443(TLS) BitChute .br 1 B/s 149.56.228.45:443(DoH) Canada .br (D)isplay, (S)ave, (C)lear, e(X)it .br .br در صورتی که /usr/bin/geoiplookup نصب باشد (بسته geoip-bin در دبیان)، کشوری که ترافیک از آن سرچشمه می‌گیرد به ردگیری اضافه می‌شود. ما همچنین از نگاشت IP ایستا در مسیر /usr/lib/firejail/static-ip-map جهت چاپ نام دامنه‌های برخی از وب‌سایت‌ها و بسترهای ابری رایج‌تر بهره می‌گیریم. هیچ سرویس خارجی برای جستجوی معکوس IP فراخوانی نمی‌شود. .TP \fB\-\-\nice=value تنظیم مقدار nice برای تمامی فرآیندهای در حال اجرا در داخل سندباکس. تنها کاربر ریشه می‌تواند یک مقدار منفی تعیین کند. .br .br مثال: .br $ firejail \-\-\nice=2 /usr/bin/firefox .TP \fB\-\-\no3d غیرفعال ساختن شتاب‌دهنده سخت‌افزاری سه‌بعدی (3D). .br .br مثال: .br $ firejail \-\-\no3d /usr/bin/firefox .TP \fB\-\-\noautopulse\fR (منسوخ‌شده) به \-\-\keep-config-pulse مراجعه فرمایید. .TP \fB\-\-\noblacklist=dirname_or_filename غیرفعال‌سازی فهرست سیاه برای این دایرکتوری یا فایل. .br توجه داشته باشید که ورودی‌های فهرست سیاه حاوی ${PATH} در حال حاضر نمی‌توانند به صورت جزئی برای مسیرهای بسط‌یافته مجزا غیرفعال شوند. فقط کل مسیر بسط‌نیافته شامل ${PATH} می‌تواند غیرفعال گردد که سپس بر تمامی بسط‌ها اعمال می‌شود. این محدودیت برای بسط‌های متغیرهای دیگر یا کاراکترهای عمومی صدق نمی‌کند. برای جزئیات، ببینید: .UR https://github.com/netblue30/firejail/issues/6360 #6360 .UE . .br .br مثال: .br $ firejail .br $ nc dict.org 2628 .br bash: /bin/nc: Permission denied .br $ exit .br .br $ firejail \-\-\noblacklist=/bin/nc .br bash: /bin/nc: Permission denied .br $ exit .br .br $ firejail \-\-\noblacklist='${PATH}/nc' .br $ nc dict.org 2628 .br 220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 .br .TP \fB\-\-\nodbus\fR (منسوخ‌شده) غیرفعال کردن دسترسی به D-Bus (هر دو گذرگاه سیستم و نشست). معادل با --dbus-system=none --dbus-user=none. .br .br مثال: .br $ firejail \-\-\nodbus \-\-\net=none .TP \fB\-\-\nodvd غیرفعال ساختن دستگاه‌های DVD و CD صوتی. .br .br مثال: .br $ firejail \-\-\nodvd .TP \fB\-\-\noexec=dirname_or_filename سوار کردن مجدد دایرکتوری یا فایل با گزینه‌های noexec، nodev و nosuid. تطبیق الگوی فایلی پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\noexec=/tmp .br .br در صورتی که سندباکس به عنوان یک کاربر عادی اجرا شده باشد، دایرکتوری‌های /etc و /var به طور پیش‌فرض noexec هستند. .TP \fB\-\-\nogroups غیرفعال کردن گروه‌های تکمیلی (supplementary groups). بدون این گزینه، گروه‌های تکمیلی برای کاربری که سندباکس را راه‌اندازی می‌کند فعال هستند. برای کاربر ریشه گروه‌های تکمیلی همواره غیرفعال هستند. .br .br نکته: به‌طور پیش‌فرض تمامی گروه‌های کاربر عادی به استثنای کاربر جاری حذف می‌شوند. این مورد با استفاده از گزینه \-\-\allusers قابل تغییر است. .br .br مثال: .br $ id .br uid=1000(netblue) gid=1000(netblue) groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio) .br $ firejail \-\-\nogroups .br Parent pid 8704, child pid 8705 .br Child process initialized .br $ id .br uid=1000(netblue) gid=1000(netblue) groups=1000(netblue) .br $ .TP \fB\-\-\noinput غیرفعال ساختن دستگاه‌های ورودی. .br .br مثال: .br $ firejail \-\-\noinput .TP \fB\-\-\nonewprivs تنظیم فلگ NO_NEW_PRIVS در prctl. این ویژگی تضمین می‌کند که فرآیندهای فرزند نتوانند با استفاده از execve(2) امتیازات جدیدی کسب نمایند؛ به ویژه، این بدان معناست که فراخوانی یک باینری suid (یا برنامه‌ای با قابلیت‌های فایلی) منجر به افزایش سطح دسترسی نخواهد شد. این گزینه در صورت فعال بودن فیلتر seccomp به صورت پیش‌فرض فعال است. .TP \fB\-\-\noprinters غیرفعال ساختن چاپگرها. .TP \fB\-\-\noprofile عدم استفاده از پروفایل امنیتی. .br .br مثال: .br $ firejail .br Reading profile /etc/firejail/default.profile .br Parent pid 8553, child pid 8554 .br Child process initialized .br [...] .br .br $ firejail \-\-\noprofile .br Parent pid 8553, child pid 8554 .br Child process initialized .br [...] .TP \fB\-\-\noroot نصب یک فضای نام کاربر با یک کاربر منفرد - کاربر جاری. کاربر ریشه در فضای نام جدید وجود ندارد. این گزینه به نگارش 3.8 هسته لینوکس یا بالاتر نیاز دارد. این گزینه برای پیکربندی‌های \-\-\chroot و \-\-\appimage، یا برای سندباکس‌هایی که به عنوان ریشه اجرا می‌شوند پشتیبانی نمی‌گردد. .br .br مثال: .br $ firejail \-\-\noroot .br Parent pid 8553, child pid 8554 .br Child process initialized .br $ ping google.com .br ping: icmp open socket: Operation not permitted .br $ .TP \fB\-\-\nosound غیرفعال کردن سامانه صوتی. .br .br مثال: .br $ firejail \-\-\nosound /usr/bin/firefox .\" TODO: Fully remove notpm after 0.9.76. .TP \fB\-\-\notpm\fR (منسوخ‌شده) برای سازگاری نادیده گرفته می‌شود. .br دستگاه‌های TPM در حال حاضر به صورت پیش‌فرض مسدود هستند، \fB\-\-\keep-dev-tpm\fR را ببینید. .TP \fB\-\-\notv غیرفعال ساختن دستگاه‌های تلویزیون DVB (پخش ویدیوی دیجیتال). .br .br مثال: .br $ firejail \-\-\notv /usr/bin/vlc .TP \fB\-\-\nou2f غیرفعال ساختن دستگاه‌های U2F. .br .br مثال: .br $ firejail \-\-\nou2f .TP \fB\-\-\novideo غیرفعال ساختن دستگاه‌های ویدیویی (دوربین و وبکم). .br .TP \fB\-\-\nowhitelist=dirname_or_filename غیرفعال کردن فهرست سفید برای این دایرکتوری یا فایل. .TP \fB\-\-\oom=value پیکربندی امتیاز قاتل کمبود حافظه هسته (OutOfMemory-killer) برای این سندباکس. مقادیر امتیاز مجاز بین 0 تا 1000 برای کاربران عادی، و -1000 تا 1000 برای کاربر ریشه است. برای اطلاعات بیشتر در خصوص ویژگی OOM هسته به \fBman choom\fR رجوع فرمایید. .br .br مثال: .br $ firejail \-\-\oom=300 /usr/bin/firefox .TP \fB\-\-\output=logfile لاگ‌گیری خروجی استاندارد (stdout) و چرخش لاگ‌ها. رونوشت خروجی استاندارد در logfile قرار می‌گیرد و با استفاده از چرخش لاگ حجم فایل زیر ۵۰۰ کیلوبایت نگه داشته می‌شود. پنج فایل با پسوندهای .1 تا .5 در این چرخش به کار می‌روند. .br .br مثال: .br $ firejail \-\-\output=sandboxlog /bin/bash .br [...] .br $ ls -l sandboxlog* .br -rw-r--r-- 1 netblue netblue 333890 Jun 2 07:48 sandboxlog .br -rw-r--r-- 1 netblue netblue 511488 Jun 2 07:48 sandboxlog.1 .br -rw-r--r-- 1 netblue netblue 511488 Jun 2 07:48 sandboxlog.2 .br -rw-r--r-- 1 netblue netblue 511488 Jun 2 07:48 sandboxlog.3 .br -rw-r--r-- 1 netblue netblue 511488 Jun 2 07:48 sandboxlog.4 .br -rw-r--r-- 1 netblue netblue 511488 Jun 2 07:48 sandboxlog.5 .TP \fB\-\-\output\-stderr=logfile مشابه \-\-\output، ولی خطای استاندارد (stderr) نیز ذخیره می‌گردد. .TP \fB\-\-\private سوار کردن دایرکتوری‌های جدید /root و /home/user در سیستم‌های فایل موقت. تمامی تغییرات پس از بسته شدن سندباکس دور ریخته می‌شوند. .br .br مثال: .br $ firejail \-\-\private /usr/bin/firefox .TP \fB\-\-\private=directory استفاده از directory به عنوان دایرکتوری خانگی کاربر. گزینه‌های \-\-\private و \-\-\private=directory هم‌زمان قابل استفاده نیستند. .br .br مثال: .br $ firejail \-\-\private=/home/netblue/firefox-home /usr/bin/firefox .br .br نقص فنی: حتی در صورت فعال بودن این گزینه، برخی دستورات firejail (مانند \fBmkdir\fR، \fBmkfile\fR و \fBprivate-cache\fR) همچنان بر روی دایرکتوری خانگی اصلی عمل خواهند کرد. راه‌حل: دستورات ناسازگار را با استفاده از "ignore mkdir" و "ignore mkfile" غیرفعال نمایید. برای جزئیات، ببینید: .UR https://github.com/netblue30/firejail/issues/903 #903 .UE . .TP \fB\-\-\private-bin=file,file ساخت یک /bin جدید در یک سیستم فایل موقت، و کپی کردن برنامه‌های فهرست‌شده در آن. فایل‌های موجود در فهرست باید به صورت نسبی نسبت به دایرکتوری‌های /bin، /sbin، /usr/bin، /usr/sbin یا /usr/local/bin بیان شوند. اگر هیچ فایلی از فهرست یافت نشود، دایرکتوری /bin خالی خواهد ماند. همین دایرکتوری بر روی /sbin، /usr/bin، /usr/sbin و /usr/local/bin نیز bind-mount می‌شود. تمامی تغییرات با بسته شدن سندباکس دور ریخته می‌شوند. چندین دستور private-bin مجاز است و اثر آن‌ها متراکم می‌شود. تطبیق الگوی فایلی پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\private\-bin=bash,cat,ls,sed .br Parent pid 20841, child pid 20842 .br Child process initialized .br $ ls /bin .br bash cat ls sed .TP \fB\-\-\private\-cache سوار کردن یک سیستم فایل موقت خالی بر روی دایرکتوری .cache در خانه کاربر. تمامی تغییرات با بسته شدن سندباکس دور ریخته می‌شوند. .br .br مثال: .br $ firejail \-\-\private\-cache /usr/bin/openbox .TP \fB\-\-\private\-cwd تنظیم دایرکتوری کاری درون سندباکس به دایرکتوری خانگی، و در صورت شکست به دایرکتوری ریشه. بر دایرکتوری کاری مسیرهای include در فایل پروفایل تاثیری نمی‌گذارد. .br .br مثال: .br $ pwd .br /tmp .br $ firejail \-\-\private\-cwd .br $ pwd .br /home/user .br .TP \fB\-\-\private\-cwd=directory تنظیم دایرکتوری کاری درون سندباکس. مسیر کامل دایرکتوری الزامی است. پیوندهای نمادین مجاز نیستند. بر دایرکتوری کاری مسیرهای include در فایل پروفایل اثری ندارد. .br .br مثال: .br $ pwd .br /tmp .br $ firejail \-\-\private\-cwd=/opt .br $ pwd .br /opt .br .TP \fB\-\-\private\-dev ایجاد یک دایرکتوری جدید /dev. تنها دستگاه‌های disc، dri، dvb، full، hidraw، log، null، ptmx، pts، random، shm، snd، tty، urandom، usb، video و zero در دسترس خواهند بود. از گزینه‌های \-\-\no3d، \-\-\nodvd، \-\-\nosound، \-\-\notv، \-\-\nou2f و \-\-\novideo برای محدودیت‌های تکمیلی استفاده فرمایید. .br .br مثال: .br $ firejail \-\-\private\-dev .br Parent pid 9887, child pid 9888 .br Child process initialized .br $ ls /dev .br cdrom cdrw dri dvd dvdrw full log null ptmx pts random shm snd sr0 tty urandom zero .br $ .TP \fB\-\-\private-etc, \-\-\private-etc=@group,file,directory فایل‌های نصب‌شده توسط \-\-\private-etc رونوشت‌هایی از فایل‌های اصلی سیستم از دایرکتوری /etc هستند. به‌طور پیش‌فرض، این دستور اسکلتی از فایل‌ها و دایرکتوری‌های مورد استفاده اکثر ابزارهای کنسول را به همراه می‌آورد: $ firejail \-\-\private\-etc /usr/bin/dig debian.org برای برنامه‌های X11/GTK/QT/Gnome/KDE گروه @x11 را به عنوان یک پارامتر اضافه کنید. مثال: $ firejail \-\-\private\-etc=@x11,gcrypt,python* /usr/bin/gimp دایرکتوری‌های gcrypt و /etc/python* بخشی از گروه عمومی @x11 نیستند. تطبیق الگوی فایلی (Globbing) پشتیبانی می‌شود. برای بازی‌ها، گروه @games را بیفزایید: $ firejail \-\-\private\-etc=@games,@x11 /usr/bin/warzone2100 فایل‌های صوتی و شبکه به طور خودکار گنجانده می‌شوند، مگر اینکه \-\-\nosound یا \-\-\net=none تعیین شده باشد. فایل‌های مربوط به پروتکل‌های رمزگذاری‌شده TLS/SSL در گروه @tls-ca قرار دارند: $ firejail \-\-\private\-etc=@tls\-ca,wgetrc /usr/bin/wget https://debian.org نکته: ساده‌ترین راه برای استخراج فهرست فایل‌های /etc که توسط برنامه شما فراخوانی می‌شوند، بهره‌گیری از ابزار \fBstrace\fR است. مثال: $ strace \-f \-\-\trace=%file /usr/bin/transmission-qt 2>&1 | grep etc $ firejail \-\-\allow\-debuggers \-\-\profile=/etc/firejail/transmission\-qt.profile strace \-f \-\-\trace=%file /usr/bin/transmission-qt 2>&1 | grep etc همچنین \fB\-\-\allow-debuggers\fR و \fB\-\-\trace\fR را ببینید. .TP \fB\-\-\private\-home=file,directory ساخت یک خانه کاربر جدید در یک سیستم فایل موقت، و کپی کردن فایل‌ها و دایرکتوری‌های موجود در فهرست به داخل خانه جدید. فایل‌ها و دایرکتوری‌های موجود در فهرست باید به صورت نسبی نسبت به دایرکتوری خانه کاربر جاری بیان شوند. تمامی تغییرات با بسته شدن سندباکس دور ریخته خواهند شد. .br .br مثال: .br $ firejail \-\-\private\-home=.mozilla /usr/bin/firefox .TP \fB\-\-\private\-opt=file,directory ساخت یک دایرکتوری /opt جدید در یک سیستم فایل موقت، و کپی کردن فایل‌ها و دایرکتوری‌های موجود در فهرست. فایل‌ها و دایرکتوری‌های موجود در فهرست باید به صورت نسبی نسبت به دایرکتوری /opt بیان شوند، و نباید حاوی نویسه / باشند (مثلاً /opt/foo باید به صورت foo نوشته شود، اما /opt/foo/bar که به شکل foo/bar نوشته شود غیرمجاز است). اگر هیچ فایل فهرست‌شده‌ای یافت نشود، دایرکتوری /opt خالی خواهد بود. تمامی تغییرات پس از بسته شدن سندباکس دور ریخته می‌شوند. .br .br مثال: .br $ firejail \-\-\private\-opt=firefox /opt/firefox/firefox .br .br نکته: برنامه‌های نصب‌شده در /opt معمولاً نسبتاً حجیم هستند و private-opt کل مسیر(ها) را درون حافظه رم کپی می‌کند که ممکن است مصرف RAM را به طور چشمگیری افزایش دهد و محدودیت \fBfile-copy-limit\fR در firejail.config را نقض کند. از این رو، به طور کلی توصیه می‌شود به جای "private-opt PATH" از "whitelist /opt/PATH" استفاده گردد. برای جزئیات، ببینید: .UR https://github.com/netblue30/firejail/discussions/5307 #5307 .UE . .TP \fB\-\-\private\-srv=file,directory ساخت یک دایرکتوری /srv جدید در یک سیستم فایل موقت، و کپی کردن فایل‌ها و دایرکتوری‌های موجود در فهرست. فایل‌ها و دایرکتوری‌های موجود در این فهرست باید به صورت نسبی نسبت به دایرکتوری /srv بیان شوند و نباید حاوی نویسه / باشند (مثلاً /srv/foo باید به صورت foo بیان شود، ولی /srv/foo/bar که به شکل srv/bar بیان شود غیرمجاز است). اگر هیچ فایلی یافت نشود، دایرکتوری /srv خالی خواهد بود. تمام تغییرات با بستن سندباکس دور ریخته می‌شوند. .br .br مثال: .br # firejail \-\-\private-srv=www /etc/init.d/apache2 start .TP \fB\-\-\private\-tmp سوار کردن یک سیستم فایل موقت خالی بر روی دایرکتوری /tmp با قرار دادن سوکت‌های X11 و PulseAudio در فهرست سفید. .br .br مثال: .br $ firejail \-\-\private\-tmp .br $ ls -al /tmp .br drwxrwxrwt 4 nobody nogroup 80 Apr 30 11:46 . .br drwxr-xr-x 30 nobody nogroup 4096 Apr 26 22:18 .. .br drwx------ 2 nobody nogroup 4096 Apr 30 10:52 pulse-PKdhtXMmr18n .br drwxrwxrwt 2 nobody nogroup 4096 Apr 30 10:52 .X11-unix .br .TP \fB\-\-\profile=filename|appname بارگذاری یک پروفایل امنیتی سفارشی از filename، یا استفاده از نام یک برنامه خاص. .br .br اگر گزینه خط فرمان \-\-\profile ارائه نشود، Firejail تلاش خواهد کرد نام برنامه (appname) را از نام فایل برنامه هدف استخراج کند. سپس دایرکتوری ~/.config/firejail را برای یک پروفایل مناسب جستجو کرده، و پس از آن دایرکتوری /etc/firejail را جستجو خواهد کرد. .br .br مثال: .br $ firejail /usr/bin/firefox .br Reading profile /home/netblue/.config/firejail/firefox.profile .br Reading profile /etc/firejail/firefox.profile .br Reading profile /etc/firejail/firefox-common.profile .br [...] .br .br هنگام استفاده از یک نام فایل، لطفاً یک مسیر کامل یا یک مسیر نسبی را درج فرمایید. .br .br $ firejail \-\-\profile=./firefox.profile /usr/bin/firefox .br Reading profile ./firefox.profile .br Reading profile /etc/firejail/firefox.profile .br Reading profile /etc/firejail/firefox-common.profile .br [...] .br .br گزینه \-\-\profile=appname هنگام اجرای appimageها بسیار سودمند است: .br .br $ firejail \-\-\appimage \-\-\profile=firefox firefox-nightly-148.0.r20260103-x86_64.AppImage .br Reading profile /home/netblue/.config/firejail/firefox.profile .br Reading profile /etc/firejail/firefox.profile .br Reading profile /etc/firejail/firefox-common.profile .br [...] .br .br برای اطلاعات مربوط به ساختار نحوی فایل پروفایل به \fBman 5 firejail\-profile\fR مراجعه فرمایید. برای جزئیات نحوه تشخیص و تطبیق پروفایل، ببینید: .UR https://github.com/netblue30/firejail/wiki/Creating-Profiles .UE .TP \fB\-\-\profile.print=name|pid چاپ نام فایل پروفایل برای سندباکس مشخص‌شده با نام یا با PID. .br .br مثال: .br $ firejail \-\-\profile.print=browser .br /etc/firejail/firefox.profile .br .TP \fB\-\-\protocol=protocol,protocol,protocol فعال‌سازی فیلتر پروتکل. این فیلتر بر پایه seccomp بوده و نخستین آرگومانِ ارسالی به فراخوان سیستمی socket را بررسی می‌کند. مقادیر شناسایی‌شده: unix، inet، inet6، netlink، packet و bluetooth. این گزینه برای معماری i386 پشتیبانی نمی‌شود. تعریف چندباره دستور protocol مجاز است و به صورت تجمعی اعمال می‌شوند. .br .br مثال: .br $ firejail \-\-\protocol=unix,inet,inet6 /usr/bin/firefox .TP \fB\-\-\protocol.print=name|pid چاپ فیلتر پروتکل برای سندباکس مشخص‌شده با نام یا PID. .br .br مثال: .br $ firejail \-\-\name=mybrowser /usr/bin/firefox & .br $ firejail \-\-\protocol.print=mybrowser .br unix,inet,inet6,netlink .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\protocol.print=3272 .br unix,inet,inet6,netlink .TP \fB\-\-\put=name|pid src-filename dest-filename قرار دادن یک فایل در ظرف سندباکس، برای جزئیات بیشتر بخش \fBFILE TRANSFER\fR را ببینید. .TP \fB\-\-\quiet خاموش کردن خروجی متنی Firejail. .br .br همین اثر را می‌توان با تنظیم متغیر محیطی FIREJAIL_QUIET روی مقدار yes به دست آورد. .TP \fB\-\-\read\-only=dirname_or_filename تنظیم دایرکتوری یا فایل به حالت فقط‌خواندنی. تطبیق الگوی فایلی پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\read\-only=~/.mozilla /usr/bin/firefox .TP \fB\-\-\read-write=dirname_or_filename تنظیم دایرکتوری یا فایل به صورت خواندنی-نوشتنی. تنها فایل‌ها یا دایرکتوری‌های متعلق به کاربر جاری برای این عملیات مجاز هستند. تطبیق الگوی فایلی پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. مثال: .br .br $ mkdir ~/test .br $ touch ~/test/a .br $ firejail \-\-\read\-only=~/test \-\-\read\-write=~/test/a .TP \fB\-\-\restrict\-namespaces نصب یک فیلتر seccomp که تلاش‌ها برای ایجاد فضاهای نام جدید cgroup، ipc، net، mount، pid، time، user یا uts را مسدود می‌کند. .br .br مثال: .br $ firejail \-\-\restrict\-namespaces .TP \fB\-\-\restrict\-namespaces=cgroup,ipc,net,mnt,pid,time,user,uts نصب یک فیلتر seccomp که تلاش‌ها برای ایجاد هر یک از فضاهای نام مشخص‌شده را مسدود می‌سازد. فیلتر آرگومان‌های فراخوان‌های سیستمی clone، unshare و setns را بررسی کرده و در صورت نیاز خطای EPERM را به فرآیند بازمی‌گرداند (یا آن را خاتمه داده یا تلاش را لاگ می‌کند، گزینه \-\-\seccomp\-error\-action را در ادامه ببینید). توجه داشته باشید که فیلتر قادر به بررسی آرگومان‌های فراخوان‌های سیستمی clone3 نیست و همواره به این فراخوان‌ها با خطای ENOSYS پاسخ می‌دهد. .br .br مثال: .br $ firejail \-\-\restrict\-namespaces=user,net .TP \fB\-\-\rlimit\-as=number تنظیم حداکثر اندازه حافظه مجازی فرآیند (فضای آدرس) بر حسب بایت. می‌توانید از پسوندهای K (کیبی‌بایت)، M (مبی‌بایت) یا G (گیبی‌بایت) استفاده کنید، مانند "100M" (که معادل 104857600 بایت است). .TP \fB\-\-\rlimit\-cpu=number تنظیم حداکثر حد مجاز، بر حسب ثانیه، برای میزان زمان پردازنده‌ای که هر فرآیند درون سندباکس می‌تواند مصرف کند. با رسیدن به این حد، فرآیندها متوقف می‌شوند. محدودیت CPU محدودیتی بر روی ثانیه‌های CPU است نه زمان سپری‌شده تقویمی. ثانیه‌های CPU اساساً بیانگر این است که پردازنده چند ثانیه مورد استفاده قرار گرفته است و لزوماً ارتباط مستقیمی با زمان سپری‌شده واقعی ندارد. هسته لینوکس ثانیه‌های CPU را برای هر فرآیند به طور مستقل ردیابی می‌کند. .TP \fB\-\-\rlimit\-fsize=number تنظیم حداکثر اندازه فایلی که می‌تواند توسط یک فرآیند ایجاد شود. می‌توانید از پسوندهای K (کیبی‌بایت)، M (مبی‌بایت) یا G (گیبی‌بایت) بهره ببرید، مانند "100M" (که معادل 104857600 بایت است). .TP \fB\-\-\rlimit\-nofile=number تنظیم حداکثر تعداد فایل‌هایی که می‌تواند توسط یک فرآیند باز شود. .TP \fB\-\-\rlimit\-nproc=number تنظیم حداکثر تعداد فرآیندهایی که می‌تواند برای شناسه کاربری واقعی (real user ID) فرآیند فراخواننده ایجاد شود. .TP \fB\-\-\rlimit\-sigpending=number تنظیم حداکثر تعداد سیگنال‌های معلق برای یک فرآیند. .TP \fB\-\-\rmenv=name حذف متغیر محیطی در سندباکس جدید. .br .br مثال: .br $ firejail \-\-\rmenv=DBUS_SESSION_BUS_ADDRESS .TP \fB\-\-\scan اسکن ARP تمامی شبکه‌ها از داخل یک فضای نام شبکه. این کار امکان شناسایی درایورهای دستگاه هسته macvlan در حال اجرا روی میزبان جاری را فراهم می‌سازد. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\scan .TP \fB\-\-\seccomp فعال‌سازی فیلتر seccomp و قرار دادن فراخوان‌های سیستمی فهرست پیش‌فرض در فهرست سیاه، که برابر با @default-nodebuggers است مگر اینکه \-\-\allow-debuggers مشخص شده باشد که در آن صورت @default خواهد بود. .br برای تسهیل در ایجاد فیلترهای seccomp سودمند، گروه‌های فراخوان سیستمی زیر تعریف شده‌اند: @aio, @basic-io, @chown, @clock, @cpu-emulation, @debug, @default, @default-nodebuggers, @default-keep, @file-system, @io-event, @ipc, @keyring, @memfd, @memlock, @module, @mount, @network-io, @obsolete, @privileged, @process, @raw-io, @reboot, @resources, @sandbox, @setuid, @swap, @sync, @system-service و @timer. اطلاعات بیشتر درباره این گروه‌ها را می‌توانید در فایل /usr/share/doc/firejail/syscalls.txt بیابید، همچنین \-\-\debug-syscall-groups را ببینید. .br .br فهرست پیش‌فرض قابل سفارشی‌سازی است، برای توضیحات به \-\-\seccomp= مراجعه فرمایید. همچنین می‌توان آن را به صورت سراسری در فایل /etc/firejail/firejail.config سفارشی کرد. .br .br معماری سیستم تنها زمانی به طور اکید اعمال می‌شود که فلگ \-\-\seccomp.block-secondary به کار رود. فیلتر در زمان اجرا تنها در صورتی اعمال می‌شود که معماری صحیح شناسایی شده باشد. در خصوص I386 و AMD64 هر دو فیلتر ۳۲ بیتی و ۶۴ بیتی نصب می‌شوند. .br .br اگر هسته با پشتیبانی از audit کامپایل شده باشد (فلگ CONFIG_AUDIT)، Firejail تخلفات seccomp را در لاگ audit چاپ خواهد کرد. .br .br مثال: .br $ firejail \-\-\seccomp .TP \fB\-\-\seccomp=syscall,@group,!syscall2 فعال‌سازی فیلتر seccomp، قرار دادن فهرست پیش‌فرض و فراخوان‌های سیستمی یا گروه‌های فراخوان سیستمی تعیین‌شده توسط دستور در فهرست سیاه، اما استثنا کردن "syscall2" از فهرست سیاه. در یک معماری ۶۴ بیتی، یک فیلتر تکمیلی برای فراخوان‌های سیستمی ۳۲ بیتی می‌تواند با \-\-\seccomp.32 نصب گردد. .br .br مثال: .br $ firejail \-\-\seccomp=utime,utimensat,utimes /usr/bin/firefox .br $ firejail \-\-\seccomp=@clock,mkdir,unlinkat /usr/bin/transmission-gtk .br $ firejail '\-\-\seccomp=@ipc,!pipe,!pipe2' audacious .br .br فراخوان‌های سیستمی را می‌توان در صورت درج پیشوند "$" با شماره آن‌ها مشخص کرد، بنابراین برای نمونه "$165" متناظر با "mount" در معماری x86_64 است. .br .br شماره‌ها و نام‌های فراخوان‌های سیستمی برای \fB\-\-\seccomp\fR را می‌توان با استفاده از \fB\-\-\debug-syscalls\fR و برای \fB\-\-\seccomp.32\fR با \fB\-\-\debug-syscalls32\fR یافت. .br .br به جای دور انداختن فراخوان سیستمی با بازگرداندن EPERM، می‌توان شماره خطای دیگری را با نحو \fBsyscall:errno\fR بازگرداند. این مورد را می‌توان به صورت سراسری نیز با \-\-\seccomp-error-action یا در فایل /etc/firejail/firejail.config تغییر داد. فرآیند را همچنین می‌توان با نحو \fBsyscall:kill\fR متوقف کرد، یا تلاش صورت‌گرفته را با \fBsyscall:log\fR ثبت نمود. .br .br مثال: .br $ firejail \-\-\seccomp=unlinkat:ENOENT,utimensat,utimes .br Parent pid 10662, child pid 10663 .br Child process initialized .br $ touch testfile .br $ ls testfile .br testfile .br $ rm testfile .br rm: cannot remove `testfile': No such file or directory .br .br اگر فراخوان‌های سیستمی مسدودشده مانع از عملکرد خود Firejail نیز بشوند، با افزودن یک کتابخانه از پیش بارگذاری‌شده (preload) مدیریت می‌گردند که فراخوان‌های سیستمی seccomp را دیرتر اجرا می‌کند. با این وجود، این روش با فیلترهای seccomp ۳۲ بیتی ناسازگار است. .br .br مثال: .br $ firejail \-\-\noprofile \-\-\seccomp=execve sh .br Parent pid 32751, child pid 32752 .br Post-exec seccomp protector enabled .br list in: execve, check list: @default-keep prelist: (null), postlist: execve .br Child process initialized in 46.44 ms .br $ ls .br Operation not permitted .TP \fB\-\-\seccomp.block\-secondary فعال‌سازی فیلتر seccomp و فیلتر کردن معماری‌های فراخوان سیستمی به گونه‌ای که تنها معماری بومی مجاز باشد. برای نمونه در amd64، فراخوان‌های سیستمی i386 و x32 مسدود می‌شوند و همچنین تغییر دامنه اجرا با فراخوان سیستمی personality(2) مسدود می‌گردد. .br .TP \fB\-\-\seccomp.drop=syscall,@group فعال‌سازی فیلتر seccomp، و قرار دادن فراخوان‌های سیستمی یا گروه‌های فراخوان سیستمی مشخص‌شده توسط دستور در فهرست سیاه. در یک معماری ۶۴ بیتی، یک فیلتر اضافی برای فراخوان‌های سیستمی ۳۲ بیتی را می‌توان با \-\-\seccomp.32.drop نصب کرد. .br .br مثال: .br $ firejail \-\-\seccomp.drop=utime,utimensat,utimes,@clock .br .br به جای دور انداختن فراخوان سیستمی با بازگرداندن EPERM، شماره خطای دیگری را می‌توان با استفاده از نحو \fBsyscall:errno\fR بازگرداند. این مورد را می‌توان به صورت سراسری با \-\-\seccomp\-error\-action یا در فایل /etc/firejail/firejail.config نیز تغییر داد. فرآیند همچنین می‌تواند با ساختار \fBsyscall:kill\fR خاتمه یابد، یا اقدام مربوطه با \fBsyscall:log\fR لاگ شود. .br .br مثال: .br $ firejail \-\-\seccomp.drop=unlinkat:ENOENT,utimensat,utimes .br Parent pid 10662, child pid 10663 .br Child process initialized .br $ touch testfile .br $ ls testfile .br testfile .br $ rm testfile .br rm: cannot remove `testfile': No such file or directory .br .TP \fB\-\-\seccomp.keep=syscall,@group,!syscall2 فعال‌سازی فیلتر seccomp، قرار دادن تمامی فراخوان‌های سیستمی فهرست‌نشده در فهرست سیاه به جز "syscall2". فراخوان‌های سیستمی مورد نیاز Firejail (گروه @default-keep: prctl, execve, execveat) با کتابخانه پیش‌بارگذاری مدیریت می‌شوند. در یک معماری ۶۴ بیتی، یک فیلتر تکمیلی برای فراخوان‌های سیستمی ۳۲ بیتی را می‌توان با \-\-\seccomp.32.keep نصب کرد. .br .br مثال: .br $ firejail \-\-\seccomp.keep=poll,select,[...] /usr/bin/transmission-gtk .TP \fB\-\-\seccomp.print=name|pid چاپ فیلتر seccomp برای سندباکس مشخص‌شده با نام یا PID. .br .br مثال: .br $ firejail \-\-\name=browser /usr/bin/firefox & .br $ firejail \-\-\seccomp.print=browser .br line OP JT JF K .br ================================= .br 0000: 20 00 00 00000004 ld data.architecture .br 0001: 15 01 00 c000003e jeq ARCH_64 0003 (false 0002) .br 0002: 06 00 00 7fff0000 ret ALLOW .br 0003: 20 00 00 00000000 ld data.syscall-number .br 0004: 35 01 00 40000000 jge X32_ABI true:0006 (false 0005) .br 0005: 35 01 00 00000000 jge read 0007 (false 0006) .br 0006: 06 00 00 00050001 ret ERRNO(1) .br 0007: 15 41 00 0000009a jeq modify_ldt 0049 (false 0008) .br 0008: 15 40 00 000000d4 jeq lookup_dcookie 0049 (false 0009) .br 0009: 15 3f 00 0000012a jeq perf_event_open 0049 (false 000a) .br 000a: 15 3e 00 00000137 jeq process_vm_writev 0049 (false 000b) .br 000b: 15 3d 00 0000009c jeq _sysctl 0049 (false 000c) .br 000c: 15 3c 00 000000b7 jeq afs_syscall 0049 (false 000d) .br 000d: 15 3b 00 000000ae jeq create_module 0049 (false 000e) .br 000e: 15 3a 00 000000b1 jeq get_kernel_syms 0049 (false 000f) .br 000f: 15 39 00 000000b5 jeq getpmsg 0049 (false 0010) .br 0010: 15 38 00 000000b6 jeq putpmsg 0049 (false 0011) .br 0011: 15 37 00 000000b2 jeq query_module 0049 (false 0012) .br 0012: 15 36 00 000000b9 jeq security 0049 (false 0013) .br 0013: 15 35 00 0000008b jeq sysfs 0049 (false 0014) .br 0014: 15 34 00 000000b8 jeq tuxcall 0049 (false 0015) .br 0015: 15 33 00 00000086 jeq uselib 0049 (false 0016) .br 0016: 15 32 00 00000088 jeq ustat 0049 (false 0017) .br 0017: 15 31 00 000000ec jeq vserver 0049 (false 0018) .br 0018: 15 30 00 0000009f jeq adjtimex 0049 (false 0019) .br 0019: 15 2f 00 00000131 jeq clock_adjtime 0049 (false 001a) .br 001a: 15 2e 00 000000e3 jeq clock_settime 0049 (false 001b) .br 001b: 15 2d 00 000000a4 jeq settimeofday 0049 (false 001c) .br 001c: 15 2c 00 000000b0 jeq delete_module 0049 (false 001d) .br 001d: 15 2b 00 00000139 jeq finit_module 0049 (false 001e) .br 001e: 15 2a 00 000000af jeq init_module 0049 (false 001f) .br 001f: 15 29 00 000000ad jeq ioperm 0049 (false 0020) .br 0020: 15 28 00 000000ac jeq iopl 0049 (false 0021) .br 0021: 15 27 00 000000f6 jeq kexec_load 0049 (false 0022) .br 0022: 15 26 00 00000140 jeq kexec_file_load 0049 (false 0023) .br 0023: 15 25 00 000000a9 jeq reboot 0049 (false 0024) .br 0024: 15 24 00 000000a7 jeq swapon 0049 (false 0025) .br 0025: 15 23 00 000000a8 jeq swapoff 0049 (false 0026) .br 0026: 15 22 00 000000a3 jeq acct 0049 (false 0027) .br 0027: 15 21 00 00000141 jeq bpf 0049 (false 0028) .br 0028: 15 20 00 000000a1 jeq chroot 0049 (false 0029) .br 0029: 15 1f 00 000000a5 jeq mount 0049 (false 002a) .br 002a: 15 1e 00 000000b4 jeq nfsservctl 0049 (false 002b) .br 002b: 15 1d 00 0000009b jeq pivot_root 0049 (false 002c) .br 002c: 15 1c 00 000000ab jeq setdomainname 0049 (false 002d) .br 002d: 15 1b 00 000000aa jeq sethostname 0049 (false 002e) .br 002e: 15 1a 00 000000a6 jeq umount2 0049 (false 002f) .br 002f: 15 19 00 00000099 jeq vhangup 0049 (false 0030) .br 0030: 15 18 00 000000ee jeq set_mempolicy 0049 (false 0031) .br 0031: 15 17 00 00000100 jeq migrate_pages 0049 (false 0032) .br 0032: 15 16 00 00000117 jeq move_pages 0049 (false 0033) .br 0033: 15 15 00 000000ed jeq mbind 0049 (false 0034) .br 0034: 15 14 00 00000130 jeq open_by_handle_at 0049 (false 0035) .br 0035: 15 13 00 0000012f jeq name_to_handle_at 0049 (false 0036) .br 0036: 15 12 00 000000fb jeq ioprio_set 0049 (false 0037) .br 0037: 15 11 00 00000067 jeq syslog 0049 (false 0038) .br 0038: 15 10 00 0000012c jeq fanotify_init 0049 (false 0039) .br 0039: 15 0f 00 00000138 jeq kcmp 0049 (false 003a) .br 003a: 15 0e 00 000000f8 jeq add_key 0049 (false 003b) .br 003b: 15 0d 00 000000f9 jeq request_key 0049 (false 003c) .br 003c: 15 0c 00 000000fa jeq keyctl 0049 (false 003d) .br 003d: 15 0b 00 000000ce jeq io_setup 0049 (false 003e) .br 003e: 15 0a 00 000000cf jeq io_destroy 0049 (false 003f) .br 003f: 15 09 00 000000d0 jeq io_getevents 0049 (false 0040) .br 0040: 15 08 00 000000d1 jeq io_submit 0049 (false 0041) .br 0041: 15 07 00 000000d2 jeq io_cancel 0049 (false 0042) .br 0042: 15 06 00 000000d8 jeq remap_file_pages 0049 (false 0043) .br 0043: 15 05 00 00000116 jeq vmsplice 0049 (false 0044) .br 0044: 15 04 00 00000087 jeq personality 0049 (false 0045) .br 0045: 15 03 00 00000143 jeq userfaultfd 0049 (false 0046) .br 0046: 15 02 00 00000065 jeq ptrace 0049 (false 0047) .br 0047: 15 01 00 00000136 jeq process_vm_readv 0049 (false 0048) .br 0048: 06 00 00 7fff0000 ret ALLOW .br 0049: 06 00 01 00000000 ret KILL .br $ .TP \fB\-\-\seccomp-error-action= kill | ERRNO | log به‌طور پیش‌فرض، اگر یک فیلتر seccomp یک فراخوان سیستمی را مسدود سازد، فرآیند خطای EPERM را دریافت می‌کند. با \-\-\seccomp-error-action=error، شماره خطای دیگری مانند ENOSYS یا EACCES قابل بازگردانی است. همچنین می‌توان فرآیند را (همانند نسخه‌های قبل از 0.9.63 نرم‌افزار Firejail) با ساختار \-\-\seccomp-error-action=kill متوقف کرد، یا تلاش صورت‌گرفته را با \-\-\seccomp-error-action=log ثبت نمود. متوقف نکردن فرآیند در هنگام مهار نفوذ اندکی Firejail را تضعیف می‌کند، ولی اگر تنها راهکار جایگزین مجاز دانستن یک فراخوان سیستمی باشد، امکان اعمال فیلترهای سخت‌گیرانه‌تر را فراهم می‌سازد. .br .TP \fB\-\-\shutdown=name|pid خاموش کردن سندباکس مشخص‌شده با نام یا PID. .br .br مثال: .br $ firejail \-\-\name=mygame \-\-\caps.drop=all /usr/bin/warzone2100 & .br $ firejail \-\-\shutdown=mygame .br .br مثال: .br $ firejail \-\-\list .br 3272:netblue::firejail \-\-\private /usr/bin/firefox .br $ firejail \-\-\shutdown=3272 .TP \fB\-\-\snitrace[=name|pid] پایش نشانگر نام سرور (TLS/SNI). سندباکس را می‌توان با نام یا pid مشخص کرد. تنها سندباکس‌های شبکه‌ای ایجادشده با \-\-\net پشتیبانی می‌شوند. این گزینه تنها هنگام اجرای سندباکس به عنوان ریشه در دسترس است. .br .br بدون مشخص کردن نام/pid، ابزار Firejail فضای نام شبکه اصلی سیستم را پایش خواهد کرد. .br .br مثال: .br $ sudo firejail \-\-\snitrace .br 07:49:51 23.185.0.3 linux.com .br 07:49:51 23.185.0.3 www.linux.com .br 07:50:05 192.0.73.2 secure.gravatar.com .br 07:52:35 172.67.68.93 www.howtoforge.com .br 07:52:37 13.225.103.59 sf.ezoiccdn.com .br 07:52:42 142.250.176.3 www.gstatic.com .br 07:53:03 173.236.250.32 www.linuxlinks.com .br 07:53:05 192.0.77.37 c0.wp.com .br 07:53:08 192.0.78.32 jetpack.wordpress.com .br 07:53:09 192.0.77.32 s0.wp.com .br 07:53:09 192.0.77.2 i0.wp.com .br 07:53:10 192.0.77.2 i0.wp.com .br 07:53:11 192.0.73.2 1.gravatar.com .TP \fB\-\-\tab فعال‌سازی تکمیل با کلید Tab در شل درون سندباکس‌هایی که از دایرکتوری‌های خانگی خصوصی یا موجود در فهرست سفید استفاده می‌کنند. .br .br $ firejail \-\-\private \-\-\tab .TP \fB\-\-\timeout=hh:mm:ss خاتمه خودکار سندباکس پس از سپری شدن زمان معین. زمان در قالب ساعت:دقیقه:ثانیه تعیین می‌گردد. .br .br $ firejail \-\-\timeout=01:30:00 /usr/bin/firefox .TP \fB\-\-\tmpfs=dirname سوار کردن یک سیستم فایل موقتِ قابل‌نوشتن tmpfs بر روی دایرکتوری dirname. دایرکتوری‌های خارج از دایرکتوری خانگی کاربر یا دایرکتوری‌هایی که متعلق به کاربر نیستند مجاز نمی‌باشند. سندباکس‌های در حال اجرا به عنوان ریشه از این محدودیت‌ها مستثنی هستند. تطبیق الگوی فایلی پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\tmpfs=~/.local/share .TP \fB\-\-\top پایش سندباکس‌های دارای بیشترین میزان مصرف پردازنده، برای جزئیات بیشتر بخش \fBMONITORING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\top .TP \fB\-\-\trace[=filename] ردگیری فراخوان‌های سیستمی open، access و connect. اگر filename تعیین شده باشد، خروجی ردگیری در filename ذخیره می‌شود؛ در غیر این صورت در کنسول ثبت می‌گردد. .br .br مثال: .br $ firejail \-\-\trace /usr/bin/wget \-q www.debian.org .br Reading profile /etc/firejail/wget.profile .br 3:wget:fopen64 /etc/wgetrc:0x5c8e8ce6c0 .br 3:wget:fopen /etc/hosts:0x5c8e8cfb70 .br 3:wget:socket AF_INET SOCK_DGRAM IPPROTO_IP:3 .br 3:wget:connect 3 8.8.8.8 port 53:0 .br 3:wget:socket AF_INET SOCK_STREAM IPPROTO_IP:3 .br 3:wget:connect 3 130.89.148.14 port 80:0 .br 3:wget:fopen64 index.html:0x5c8e8d1a60 .br .br parent is shutting down, bye... .br .br همچنین \fB\-\-\allow\-debuggers\fR و \fB\-\-\private\-etc\fR را ببینید. .TP \fB\-\-\tracelog این گزینه بازرسی فایل‌ها و دایرکتوری‌های قرارگرفته در فهرست سیاه را فعال می‌سازد. در صورت دسترسی به فایل یا دایرکتوری، پیامی به syslog فرستاده می‌شود. .br .br مثال: .br $ firejail \-\-\tracelog /usr/bin/firefox .br .br پیام‌های نمونه: .br $ sudo tail \-f /var/log/syslog .br [...] .br Dec 3 11:43:25 debian firejail[70]: blacklist violation - sandbox 26370, exe firefox, syscall open64, path /etc/shadow .br Dec 3 11:46:17 debian firejail[70]: blacklist violation - sandbox 26370, exe firefox, syscall opendir, path /boot .br [...] .br .br نکته: پشتیبانی از این دستور در firejail.config با گزینه \fBtracelog\fR کنترل می‌شود. .TP \fB\-\-\tree چاپ ساختار درختی تمامی فرآیندهای درون سندباکس، برای جزئیات بیشتر بخش \fBMONITORING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\tree .br 11903:netblue:firejail /usr/bin/iceweasel .br 11904:netblue:iceweasel .br 11957:netblue:/usr/lib/iceweasel/plugin-container .br 11969:netblue:firejail \-\-\net=eth0 /usr/bin/transmission-gtk .br 11970:netblue:transmission-gtk .TP \fB\-\-\unhide\-pid1 شناسه فرآیند ۱ (Pid 1) همواره درون سندباکس Firejail وجود دارد. با محدود ساختن دسترسی به رابط هسته /proc، ابزارهای عمومی مانند ps قادر به مشاهده و دسترسی به این فرآیند نیستند. گزینه \-\-\unhide\-pid1 این قابلیت را غیرفعال می‌سازد. مثال: .br .br $ firejail \-\-\name=test ### به صورت پیش‌فرض pid 1 قابل مشاهده نیست .br [...] .br Child process initialized in 59.41 ms .br $ ps a .br PID TTY STAT TIME COMMAND .br 4 ? S 0:00 /bin/bash .br 5 ? R+ 0:00 ps a .br $ exit .br Parent is shutting down, bye… .br .br .br $ firejail \-\-\name=test \-\-\unhide\-pid1 ### اکنون pid 1 قابل مشاهده است .br [...] .br Child process initialized in 58.29 ms .br $ ps a .br PID TTY STAT TIME COMMAND .br 1 ? S 0:00 firejail \-\-\name=test \-\-\unhide\-pid1 .br 4 ? S 0:00 /bin/bash .br 6 ? R+ 0:00 ps a .br $ exit .br Parent is shutting down, bye… .br .br .TP \fB\-\-\version چاپ نسخه برنامه/پشتیبانی زمان کامپایل و خروج. .br .br مثال: .br $ firejail \-\-\version .br firejail version 0.9.27 Compile time support: - AppArmor support is enabled - AppImage support is enabled - chroot support is enabled - file and directory whitelisting support is enabled - file transfer support is enabled - firetunnel support is enabled - networking support is enabled - private-home support is enabled - seccomp-bpf support is enabled - user namespace support is enabled - X11 sandboxing support is enabled .br .TP \fB\-\-\veth\-name=name استفاده از این نام برای رابط متصل به پل برای دستورات \-\-\net=bridge_interface به جای نام پیش‌فرض. .br .br مثال: .br $ firejail \-\-\net=br0 \-\-\veth\-name=if0 .TP \fB\-\-\whitelist=dirname_or_filename قرار دادن دایرکتوری یا فایل در فهرست سفید. یک سیستم فایل موقت بر روی دایرکتوری بالادست (top directory) سوار می‌شود. در زمینه عملکرد firejail، دایرکتوری بالادست بدین معناست که اگر مسیر فایل موجود در فهرست سفید برای نمونه /etc/somedir/somefile باشد، آنگاه دایرکتوری بالادست /etc خواهد بود. تمام دایرکتوری‌های بالادست دیگر مانند /opt، /usr و غیره تغییر نیافته باقی می‌مانند، بنابراین تمامی فایل‌های موجود در آن‌ها همچنان قابل‌دسترس خواهند بود، مگر اینکه فایلی یا دایرکتوری در درون آن‌ها نیز در فهرست سفید قرار گیرد. به همین دلیل گاهی اوقات استفاده از فهرست سیاه در ترکیب با فهرست سفید در صورتی که برای دایرکتوری‌های بالادست متفاوتی به کار روند سودمند است. .br .br فایل‌های قرارگرفته در فهرست سفید به صورت mount-bind در داخل متصل می‌شوند. تغییرات روی فایل‌های فهرست سفید ماندگار هستند؛ هر چیز دیگری در همان دایرکتوری بالادست هنگام بستن سندباکس دور ریخته می‌شود. .br .br دایرکتوری بالادست می‌تواند اکثر دایرکتوری‌های موجود در / باشد، اما برخی موارد خاص نیز وجود دارد. دایرکتوری‌های بالادست /proc و /sys مجاز نیستند، اما /sys/module مجاز است. همچنین /run/user/$UID، $HOME و تمامی دایرکتوری‌های موجود در /usr به عنوان دایرکتوری بالادست تلقی می‌شوند. .br .br مدیریت پیوندهای نمادین: قرار دادن مسیری که یک پیوند نمادین است در فهرست سفید، مسیری را نیز که به آن اشاره دارد در فهرست سفید قرار خواهد داد. برای نمونه، اگر ~/foo در فهرست سفید قرار گیرد و به ~/bar اشاره کند، ~/bar نیز در فهرست سفید قرار می‌گیرد. .br محدودیت‌ها: به استثنای دایرکتوری خانه کاربر، هر دو پیوند و فایل واقعی باید در یک دایرکتوری بالادست قرار داشته باشند. برای پیوندهای نمادین در دایرکتوری خانه کاربر، هر دو پیوند و فایل واقعی باید متعلق به کاربر باشند. .br .br تطبیق الگوی فایلی (Globbing) پشتیبانی می‌شود، برای جزئیات بیشتر بخش \fBFILE GLOBBING\fR را ببینید. .br .br مثال: .br $ firejail \-\-\noprofile \-\-\whitelist=~/.mozilla .br $ firejail \-\-\whitelist=/tmp/.X11-unix \-\-\whitelist=/dev/null .br $ firejail \-\-\whitelist="/home/username/My Virtual Machines" .br $ firejail \-\-\whitelist=/home/username/My\\ Virtual\\ Machines .br $ firejail \-\-\whitelist=~/work* \-\-\whitelist=/var/backups* .TP \fB\-\-\writable-etc سوار کردن دایرکتوری /etc به صورت خواندنی-نوشتنی. .br .br مثال: .br $ sudo firejail \-\-\writable-etc .TP \fB\-\-\writable\-run\-user غیرفعال‌سازی قرارگیری پیش‌فرض /run/user/$UID/systemd و /run/user/$UID/gnupg در فهرست سیاه. .br .br مثال: .br $ sudo firejail \-\-\writable\-run\-user .TP \fB\-\-\writable\-var سوار کردن دایرکتوری /var به صورت خواندنی\-نوشتنی. .br .br مثال: .br $ sudo firejail \-\-\writable\-var .TP \fB\-\-\writable\-var\-log استفاده از دایرکتوری واقعی /var/log به جای نسخه شبیه‌سازی‌شده آن. به‌طور پیش‌فرض یک tmpfs بر روی دایرکتوری /var/log سوار می‌شود و یک سیستم فایل اسکلتی بر اساس /var/log اصلی ساخته می‌شود. .br .br مثال: .br $ sudo firejail \-\-\writable\-var\-log .TP \fB\-\-\x11 قرار دادن برنامه در سندباکس با استفاده از افزونه‌های امنیتی Xpra، Xephyr، Xvfb یا Xorg. این سندباکس از دسترسی برنامه‌های عکس‌برداری از صفحه و ثبت‌کننده کلید (کی‌لاگر) اجراشده در داخل سندباکس به کلاینت‌های در حال اجرا در خارج از سندباکس ممانعت به عمل می‌آورد. ابزار Firejail ابتدا Xephyr را امتحان می‌کند، و اگر روی سیستم نصب نباشد، Xpra را جستجو خواهد کرد. اگر هیچ‌کدام یافت نشد، Firejail تلاشی برای استفاده از Xvfb یا افزونه امنیتی X11 نخواهد نمود. .br .br حالت‌های Xpra، Xephyr و Xvfb برای غیرفعال ساختن سوکت یونیکس انتزاعی X11 نیازمند نمونه‌سازی از یک فضای نام شبکه هستند. اگر این امر مقدور نباشد، کاربر می‌تواند سوکت انتزاعی را با افزودن "-nolisten local" در خط فرمان Xorg در سطح سیستم غیرفعال نماید. .br .br مثال: .br $ firejail \-\-\x11 \-\-\net=eth0 /usr/bin/firefox .TP \fB\-\-\x11=none قرار دادن دایرکتوری /tmp/.X11-unix، فایل ${HOME}/.Xauthority و فایل مشخص‌شده در متغیر محیطی ${XAUTHORITY} در فهرست سیاه. حذف متغیرهای محیطی DISPLAY و XAUTHORITY. توقف با پیام خطا در صورتی که سوکت انتزاعی X11 در سندباکس قابل دسترس باشد. .TP \fB\-\-\x11=xephyr راه‌اندازی Xephyr و متصل کردن سندباکس به این سرور. سرور Xephyr یک سرور نمایش است که پروتکل سرور نمایش X11 را پیاده‌سازی می‌کند. جهت سلب دسترسی به سوکت دامنه یونیکس انتزاعی X11، یک فضای نام شبکه باید نمونه‌سازی شود. .br .br سرور Xephyr درست همانند هر برنامه X11 دیگری در یک پنجره اجرا می‌شود. اندازه پیش‌فرض پنجره 800x600 است. این مورد در فایل /etc/firejail/firejail.config قابل تغییر است. .br .br شیوه پیشنهادی برای بهره‌گیری از این ویژگی اجرای یک مدیر پنجره درون سندباکس است. یک پروفایل امنیتی برای OpenBox ارائه شده است. .br .br سرور Xephyr توسط پروژه Xorg توسعه داده شده است. در سیستم‌های دبیان با دستور \fBsudo apt-get install xserver-xephyr\fR نصب می‌گردد. این قابلیت هنگام اجرا با دسترسی ریشه در دسترس نیست. .br .br مثال: .br $ firejail \-\-\x11=xephyr --net=eth0 /usr/bin/openbox .TP \fB\-\-\x11=xorg قرار دادن برنامه در سندباکس با استفاده از حالت غیرقابل‌اعتمادِ پیاده‌سازی‌شده توسط افزونه امنیتی X11. این افزونه در بسته Xorg ارائه شده و به صورت پیش‌فرض در اکثر توزیع‌های لینوکس نصب است. این افزونه از یک مدل ارتباطی ساده معتمد/نامعتمد پشتیبانی می‌کند. کلاینت‌های غیرقابل‌اعتماد از روش‌های خاصی برای جلوگیری از خواندن محتوای پنجره‌های سایر کلاینت‌ها، ربودن رویدادهای ورودی و غیره محدود می‌شوند. حالت غیرقابل‌اعتماد دارای چندین محدودیت است. بسیاری از برنامه‌های متداول فرض می‌کنند که یک کلاینت مورد اعتماد X11 هستند و در صورت اجرا در حالت غیرقابل‌اعتماد دچار خرابی یا قفل می‌شوند. مرورگر Chromium و xterm دو نمونه از این دست هستند. به نظر می‌رسد Firefox و transmission-gtk به خوبی کار می‌کنند. برای این گزینه به یک فضای نام شبکه نیازی نیست. .br .br مثال: .br $ firejail \-\-\x11=xorg /usr/bin/firefox .TP \fB\-\-\x11=xpra راه‌اندازی Xpra (ببینید .UR https://xpra.org .UE ) و متصل ساختن سندباکس به این سرور. ابزار Xpra یک سرور نمایش و کلاینت راه دور ماندگار برای هدایت برنامه‌های X11 و صفحات دسکتاپ است. برای سلب دسترسی به سوکت دامنه یونیکس انتزاعی X11 نیاز به نمونه‌سازی یک فضای نام شبکه است. .br .br در پلتفرم‌های دبیان ابزار Xpra با دستور \fBsudo apt-get install xpra\fR نصب می‌شود. این ویژگی هنگام اجرا با دسترسی ریشه در دسترس نیست. .br .br مثال: .br $ firejail \-\-\x11=xpra \-\-\net=eth0 /usr/bin/firefox .TP \fB\-\-\x11=xvfb راه‌اندازی سرور X11 یعنی Xvfb و متصل کردن سندباکس به این سرور. سرور Xvfb که مخفف X virtual framebuffer است، تمامی عملیات گرافیکی را در حافظه و بدون نمایش هیچ‌گونه خروجی روی صفحه انجام می‌دهد. سرور Xvfb عمدتاً برای دسترسی راه دور و آزمون نرم‌افزار روی سرورهای فاقد نمایشگر (headless) به کار می‌رود. .br .br در پلتفرم‌های دبیان Xvfb با دستور \fBsudo apt\-get install xvfb\fR نصب می‌گردد. این قابلیت هنگام اجرا با دسترسی ریشه در دسترس نمی‌باشد. .br .br مثال: دسترسی راه دور با VNC .br .br روی سرور یک سندباکس را با استفاده از Xvfb و مدیر پنجره openbox راه‌اندازی می‌کنیم. اندازه پیش‌فرض صفحه Xvfb برابر 800x600 است که می‌تواند در /etc/firejail/firejail.config (xvfb-screen) تغییر یابد. نوعی شبکه (--net) به منظور جداسازی سوکت‌های انتزاعی مورد استفاده سایر سرورهای X مورد نیاز است. .br .br $ firejail \-\-\net=none \-\-\x11=xvfb /usr/bin/openbox .br .br *** Attaching to Xvfb display 792 *** .br .br Reading profile /etc/firejail/openbox.profile .br Reading profile /etc/firejail/disable-common.inc .br Reading profile /etc/firejail/disable-common.local .br Parent pid 5400, child pid 5401 .br .br بر روی سرور همچنین یک سرور VNC را آغاز کرده و آن را به نمایشگری که توسط سرور Xvfb ما مدیریت می‌شود (792) متصل می‌کنیم. .br .br $ x11vnc \-display :792 .br .br روی ماشین کلاینت یک نرم‌افزار مشاهده VNC اجرا کرده و با استفاده از آن به سرور خود متصل می‌شویم: .br .br $ vncviewer .br .TP \fB\-\-\xephyr\-extra\-params=OPTIONS تنظیم پارامترهای اضافی دستور سرور Xephyr برای \-\-\x11=xephyr. این تنظیم مقدار پیش‌فرض تعیین‌شده در /etc/firejail/firejail.config را برای سندباکس جاری رونویسی می‌کند. جهت مشاهده فهرست گزینه‌های موجود Xephyr -help را اجرا فرمایید. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\x11=xephyr \-\-\xephyr\-extra\-params="\-title firefox" /usr/bin/firefox .br .TP \fB\-\-\xephyr\-screen=WIDTHxHEIGHT تنظیم اندازه صفحه نمایش برای \-\-\x11=xephyr. این تنظیم مقدار پیش‌فرض در /etc/firejail/firejail.config را برای سندباکس جاری رونویسی می‌کند. جهت دریافت فهرست وضوح‌های پشتیبانی‌شده روی رایانه خود xrandr را اجرا نمایید. .br .br مثال: .br $ firejail \-\-\net=eth0 \-\-\x11=xephyr \-\-\xephyr\-screen=640x480 /usr/bin/firefox .br .\" Note: Keep this in sync with invalid_name() in src/firejail/util.c. .SH "اپ‌آرمور (APPARMOR)" .TP پشتیبانی از AppArmor به طور پیش‌فرض در زمان کامپایل غیرفعال است. از گزینه پیکربندی \-\-\enable-apparmor برای فعال‌سازی آن استفاده کنید: .br .br $ ./configure \-\-\prefix=/usr \-\-\enable-apparmor .TP در زمان نصب نرم‌افزار، یک فایل پروفایل عمومی AppArmor به نام firejail-default در دایرکتوری /etc/apparmor.d قرار داده می‌شود. سفارشی‌سازی‌های محلی باید در /etc/apparmor.d/local/firejail-local قرار گیرند. این پروفایل باید با بارگذاری مجدد apparmor.service، راه‌اندازی مجدد سیستم یا اجرای دستور زیر به عنوان کاربر ریشه در هسته بارگذاری شود: .br .br # apparmor_parser \-r /etc/apparmor.d/firejail\-default .TP پروفایل نصب‌شده مکمل عملکردهای اصلی firejail است و علاوه بر سایر موارد، اقدامات زیر را انجام می‌دهد: .br .br - غیرفعال کردن ptrace. با ptrace امکان بازرسی و ربودن برنامه‌های در حال اجرا وجود دارد. معمولاً این قابلیت فقط برای اشکال‌زدایی مورد نیاز است. شما نباید مشکلی در اجرای Chromium یا Firefox داشته باشید. این ویژگی فقط روی هسته‌های اوبونتو در دسترس است. .br .br - قرار دادن دسترسی نوشتن به چندین فایل در زیر مسیرهای /run، /proc و /sys در فهرست سفید. .br .br - اجازه اجرای برنامه‌ها تنها از مسیرهای شناخته‌شده سیستم، مانند /bin، /sbin، /usr/bin و غیره. این مسیرها به صورت فقط‌خواندنی در دسترس هستند. اجرای برنامه‌ها و اسکریپت‌ها از دایرکتوری خانگی کاربر یا سایر دایرکتوری‌های قابل‌نوشتن توسط کاربر مجاز نیست. .br .br - جلوگیری از استفاده از سوکت‌های شبکه غیراستاندارد. تنها سوکت‌های unix، inet، inet6، netlink، raw و packet مجاز هستند. .br .br - رد دسترسی به مسیرهای حساس شناخته‌شده مانند .snapshots. .TP جهت فعال‌سازی محدودسازی AppArmor بر روی ویژگی‌های امنیتی فعلی Firejail خود، فلگ \fB\-\-\apparmor\fR را به خط فرمان Firejail ارسال کنید. همچنین می‌توانید دستور \fBapparmor\fR را در یک فایل پروفایل Firejail درج فرمایید. مثال: .br .br $ firejail --apparmor /usr/bin/firefox .SH "یکپارچه‌سازی با میزکار (DESKTOP INTEGRATION)" یک پیوند نمادین به /usr/bin/firejail با نام یک برنامه، آن برنامه را درون سندباکس Firejail اجرا خواهد کرد. پیوند نمادین باید در نخستین موقعیت متغیر $PATH قرار گیرد. در اکثر سیستم‌ها، یک مکان مناسب دایرکتوری /usr/local/bin است. مثال: .PP .RS .br .br ایجاد یک پیوند نمادین firefox به /usr/bin/firejail: .br .br $ sudo ln \-s /usr/bin/firejail /usr/local/bin/firefox .br .br بررسی $PATH: .br .br $ which \-a firefox .br /usr/local/bin/firefox .br /usr/bin/firefox .br .br اجرای firefox در این لحظه، به طور خودکار “firejail /usr/bin/firefox” را فراخوانی می‌کند. .RE .br .br این سازوکار هنگام کلیک کردن روی آیکون‌های محیط میزکار، منوها و غیره کار می‌کند. از "firejail \-\-\tree" برای بررسی سندباکس بودن برنامه استفاده نمایید. .PP .RS .br .br .br $ firejail \-\-\tree .br 1189:netblue:firejail /usr/bin/firefox .br 1190:netblue:firejail /usr/bin/firefox .br 1220:netblue:/bin/sh -c "/usr/lib/firefox/firefox" .br 1221:netblue:/usr/lib/firefox/firefox .RE ما ابزاری ارائه می‌دهیم که تمام این یکپارچه‌سازی را به صورت خودکار انجام می‌دهد؛ لطفاً برای جزئیات بیشتر به \fBfirecfg\fR(1) مراجعه کنید. .SH "مثال‌ها (EXAMPLES)" .TP \fBfirejail اجرای یک نشست شل معمولی در سندباکس. .TP \fBfirejail /usr/bin/firefox اجرای Mozilla Firefox. .TP \fBfirejail \-\-\debug /usr/bin/firefox اشکال‌زدایی سندباکس Firefox. .TP \fBfirejail \-\-\private /usr/bin/firefox اجرای Firefox با یک دایرکتوری خانگی جدید و خالی. .TP \fBfirejail \-\-\net=none /usr/bin/vlc اجرای VLC در یک فضای نام شبکه متصل‌نشده. .TP \fBfirejail \-\-\net=eth0 /usr/bin/firefox اجرای Firefox در یک فضای نام جدید شبکه. یک آدرس IP به صورت خودکار تخصیص می‌یابد. .TP \fBfirejail \-\-\net=br0 \-\-\ip=10.10.20.5 \-\-\net=br1 \-\-\net=br2 شروع یک نشست شل در یک فضای نام جدید شبکه و اتصال آن به دستگاه‌های پل میزبان br0، br1 و br2. آدرس‌های IP به صورت خودکار برای رابط‌های متصل به br1 و br2 تخصیص می‌یابند. .TP \fBfirejail \-\-\list فهرست کردن تمامی فرآیندهای درون سندباکس. .SH "تطبیق الگوی فایل (FILE GLOBBING)" .TP تطبیق الگو (Globbing) عملیاتی است که یک الگوی کاراکتر عمومی را به فهرستی از مسیرهای مطابق با الگو بسط می‌دهد. این الگو در زمان \fBشروع\fR firejail مطابقت داده می‌شود و در زمان اجرا \fBبه‌روزرسانی نمی‌شود\fR. \fBفایل‌هایی که با یک فهرست سیاه مطابقت دارند اما پس از شروع firejail ایجاد می‌شوند، درون سندباکس قابل دسترس خواهند بود.\fR مطابقت به صورت زیر تعریف می‌شود: .br .br - '?' با هر تک‌نویسه‌ای مطابقت دارد .br - '*' با هر رشته‌ای مطابقت دارد .br - '[' محدوده‌ای از نویسه‌ها را مشخص می‌کند .br .TP قابلیت تطبیق الگو با استفاده از دستور glob در glibc پیاده‌سازی شده است. برای اطلاعات بیشتر در مورد نحو نویسه‌های عمومی به man 7 glob مراجعه فرمایید. .br .br .TP گزینه‌های زیر در خط فرمان پشتیبانی می‌شوند: \-\-\blacklist، \-\-\private-bin، \-\-\noexec، \-\-\read-only، \-\-\read-write، \-\-\tmpfs و \-\-\whitelist. .br .br .TP مثال‌ها: .br .br $ firejail \-\-\private\-bin=sh,bash,python* .br $ firejail \-\-\blacklist=~/dir[1234] .br $ firejail \-\-\read-only=~/dir[1-4] .br .SH "انتقال فایل (FILE TRANSFER)" این قابلیت‌ها به کاربر اجازه می‌دهند تا سیستم فایل ظرفِ یک سندباکس موجود را بازرسی نموده و فایل‌ها را میان ظرف و سیستم فایل میزبان منتقل سازد. .TP \fB\-\-\cat=name|pid filename نوشتن محتوای یک فایل درون ظرف در خروجی استاندارد. ظرف با نام یا PID مشخص می‌شود. اگر خروجی استاندارد یک ترمینال باشد، تمامی نویسه‌های کنترلی ASCII به جز خط جدید و تب افقی جایگزین می‌شوند. .TP \fB\-\-\get=name|pid filename دریافت فایل از ظرف و ذخیره آن روی میزبان در دایرکتوری کاری جاری. ظرف با نام یا PID مشخص می‌شود. .TP \fB\-\-\ls=name|pid dir_or_filename فهرست کردن فایل‌های ظرف. ظرف با نام یا PID مشخص می‌شود. .TP \fB\-\-\put=name|pid src-filename dest-filename قرار دادن src-filename در ظرف سندباکس. ظرف با نام یا PID مشخص می‌شود. .TP مثال‌ها: .br .br $ firejail \-\-\name=mybrowser \-\-\private /usr/bin/firefox .br .br $ firejail \-\-\ls=mybrowser ~/Downloads .br drwxr-xr-x netblue netblue 4096 . .br drwxr-xr-x netblue netblue 4096 .. .br -rw-r--r-- netblue netblue 7847 x11-x305.png .br -rw-r--r-- netblue netblue 6800 x11-x642.png .br -rw-r--r-- netblue netblue 34139 xpra-clipboard.png .br .br $ firejail \-\-\get=mybrowser ~/Downloads/xpra-clipboard.png .br .br $ firejail \-\-\put=mybrowser xpra-clipboard.png ~/Downloads/xpra-clipboard.png .br .br $ firejail \-\-\cat=mybrowser ~/.bashrc .br .SH "لندلاک (LANDLOCK)" هشدار: پشتیبانی از Landlock در firejail آزمایشی و ناپایدار تلقی می‌شود. محتویات landlock-common.inc احتمالاً تغییر خواهد کرد و این قابلیت همچنان در هسته لینوکس در حال گسترش است. همچنین توجه داشته باشید که عملکرد آن با قابلیت‌های موجود در firejail مانند دستورات \fBblacklist\fR، \fBread-only\fR و \fBread-write\fR هم‌پوشانی دارد. قواعد دسترسی به سیستم فایل آن در حال حاضر تنها می‌تواند دسترسی مستقیم به مسیرها را محدود سازد؛ قادر نیست همانند دستورات \fBwhitelist\fR و \fBprivate-etc\fR تنها مسیرهای برگزیده را در سندباکس نمایان کند (همچنین unveil(2) را در OpenBSD ببینید). در نهایت، توجه داشته باشید که بسته به نسخه هسته لینوکس، ممکن است Landlock از تمامی فراخوان‌های سیستمی مربوطه محافظت به عمل نیاورد (برای جزئیات مستندات Landlock در هسته را بررسی فرمایید). از این رو، توصیه می‌شود با Landlock به عنوان یک لایه حفاظتی تکمیلی برخورد شود تا همراه با سایر قابلیت‌های firejail به کار رود (نه به عنوان یک سازوکار کاملاً نفوذناپذیر به تنهایی). .PP ماژول امنیتی Landlock یک ماژول امنیتی لینوکس است که نخستین بار در نگارش 5.13 هسته لینوکس معرفی گردید. این ابزار به فرآیندهای بدون امتیاز اجازه می‌دهد تا دسترسی خود به سیستم فایل را محدود سازند. پس از اعمال، این محدودیت‌ها هرگز قابل لغو نیستند، و کلیه فرآیندهای فرزند ایجادشده توسط یک فرآیند محدودشده با Landlock این محدودیت‌ها را به ارث می‌برند. ابزار Firejail از Landlock به عنوان یک ویژگی سندباکس تکمیلی پشتیبانی می‌کند. می‌توان از آن جهت اطمینان از اینکه یک برنامه سندباکس‌شده تنها قادر است به فایل‌ها و دایرکتوری‌هایی که صراحتاً مجاز دانسته شده‌اند دسترسی یابد، استفاده کرد. دستور Firejail از بارگذاری مجموعه قوانین چه با یک مجموعه قوانین پایه‌ای (landlock-common.inc را ببینید) و چه با یک مجموعه قوانین سفارشی پشتیبانی می‌کند. .TP نکات مهم: .PP .RS - در حال حاضر تنها نسخه 1 از Landlock ABI پشتیبانی می‌شود. .PP - اگر در خط فرمان هسته از "lsm=" استفاده شده باشد، باید حاوی "landlock" باشد (مانند "lsm=apparmor,landlock")، در غیر این صورت غیرفعال خواهد بود. .PP - یک فرآیند تنها در صورتی می‌تواند یک مجموعه قوانین Landlock را نصب کند که یا دارای \fBCAP_SYS_ADMIN\fR در مجموعه قابلیت‌های مؤثر خود باشد، یا محدودیت "No New Privileges" برای آن فعال شده باشد. به همین دلیل، فعال‌سازی قابلیت Landlock همچنین موجب خواهد شد Firejail محدودیت "No New Privileges" را صرف‌نظر از فایل پروفایل یا گزینه خط فرمان \fB\-\-\nonewprivs\fR فعال سازد. .PP - دسترسی به دایرکتوری /etc به طور خودکار مجاز است. جهت بازنویسی این رفتار، از گزینه خط فرمان \fB\-\-\writable\-etc\fR استفاده کنید. همچنین می‌توانید از گزینه \fB\-\-\private\-etc\fR جهت محدود ساختن دسترسی به دایرکتوری /etc بهره ببرید. .RE .PP جهت فعال‌سازی خود‌محدودسازی Landlock افزون بر قابلیت‌های امنیتی فعلی Firejail خود، فلگ \fB\-\-\landlock.enforce\fR را به خط فرمان Firejail ارسال فرمایید. بدون این گزینه، سایر دستورات Landlock تاثیری نخواهند داشت. مثال: .PP $ firejail \-\-\landlock.enforce \-\-\landlock.fs.read=/media /usr/bin/mc .PP جهت غیرفعال‌سازی خود‌محدودسازی Landlock، از \fB\-\-\ignore=landlock.enforce\fR استفاده نمایید. .SH "پایش (MONITORING)" گزینه \-\-\list فهرستی از تمامی سندباکس‌ها را چاپ می‌کند. قالب هر مدخل فرآیند به شرح زیر است: PID:USER:Sandbox Name:Command گزینه \-\-\tree ساختار درختی فرآیندهای در حال اجرا در سندباکس را چاپ می‌کند. قالب هر مدخل فرآیند به قرار زیر است: PID:USER:Sandbox Name:Command گزینه \-\-\top شبیه به دستور top در یونیکس است، با این تفاوت که تنها روی سندباکس‌ها اعمال می‌شود. گزینه \-\-\netstats آمارهای شبکه را برای سندباکس‌های فعالی که فضاهای نام جدید شبکه نصب کرده‌اند چاپ می‌کند. فیلدهای (ستون‌های) در دسترس به ترتیب الفبا برای گزینه‌های \-\-\top و \-\-\netstats به شرح زیر هستند: .TP Command دستوری که برای راه‌اندازی سندباکس به کار رفته است. .TP CPU% میزان مصرف پردازنده، سهم سندباکس از زمان سپری‌شده پردازنده از آخرین به‌روزرسانی صفحه. .TP PID شناسه یکتای فرآیند (PID) برای وظیفه کنترل‌کننده سندباکس. .TP Prcs تعداد فرآیندهای در حال اجرا در سندباکس، از جمله فرآیند کنترل‌کننده. .TP RES اندازه حافظه مقیم (KiB)، حافظه فیزیکی سواپ‌نشده سندباکس. این مقدار مجموع مقادیر RES برای تمامی فرآیندهای در حال اجرا در سندباکس است. .TP RX(KB/s) سرعت دریافت شبکه. .TP Sandbox Name نام سندباکس، در صورت وجود. .TP SHR اندازه حافظه اشتراکی (KiB)، حافظه به اشتراک گذاشته‌شده با سایر فرآیندها را منعکس می‌سازد. این مقدار مجموع مقادیر SHR برای تمامی فرآیندهای در حال اجرا در سندباکس، از جمله فرآیند کنترل‌کننده است. .TP TX(KB/s) سرعت ارسال شبکه. .TP Uptime مدت‌زمان کارکرد سندباکس در قالب ساعت:دقیقه:ثانیه. .TP USER مالک سندباکس. .SH "اعتبارسنجی نام (NAME VALIDATION)" برای سادگی، اعتبارسنجی نام یکسانی برای گزینه‌های متعدد به کار گرفته می‌شود. قوانین: .PP طول نام باید بین ۱ تا ۲۵۳ نویسه باشد. نام تنها می‌تواند شامل حروف ASCII، ارقام و نویسه‌های ویژه "-._" باشد (یعنی نام نمی‌تواند حاوی فاصله‌ها یا نویسه‌های کنترلی باشد). نام نمی‌تواند تنها از ارقام تشکیل شده باشد. نویسه‌های نخست و پایانی باید یک حرف ASCII یا رقم باشند و نام می‌تواند نویسه‌های ویژه را در میانه خود جای دهد. .SH "پوسته محدود (RESTRICTED SHELL)" برای پیکربندی یک شل محدودشده، /bin/bash را با /usr/bin/firejail در فایل /etc/passwd برای هر کاربری که باید محدود گردد جایگزین نمایید. همچنین می‌توانید /usr/bin/firejail را در دستور adduser مشخص کنید: adduser \-\-\shell /usr/bin/firejail username آرگومان‌های اضافی ارسالی به باینری اجرایی firejail پس از ورود، در فایل /etc/firejail/login.users اعلان می‌شوند. .SH "شکل‌دهی ترافیک (TRAFFIC SHAPING)" پهنای باند شبکه یک منبع گران‌بها است که میان تمامی سندباکس‌های در حال اجرا بر روی یک سیستم به اشتراک گذاشته می‌شود. شکل‌دهی ترافیک به کاربر امکان می‌دهد با کنترل میزان داده‌های ورودی و خروجی به سندباکس‌ها، عملکرد شبکه را بهبود بخشد. ابزار Firejail یک شکل‌دهنده محدودکننده نرخ ساده بر پایه دستور tc لینوکس پیاده‌سازی می‌کند. این شکل‌دهنده در سطح سندباکس عمل می‌کند و تنها برای سندباکس‌های پیکربندی‌شده با فضاهای نام جدید شبکه قابل استفاده است. تنظیم محدودیت‌های نرخ: $ firejail \-\-\bandwidth=name|pid set network download upload پاک کردن محدودیت‌های نرخ: $ firejail \-\-\bandwidth=name|pid clear network وضعیت: $ firejail \-\-\bandwidth=name|pid status که در آن: .br name - نام سندباکس .br pid - شناسه فرآیند (pid) سندباکس .br network - رابط شبکه همان‌طور که توسط گزینه \-\-\net استفاده شده است .br download - سرعت دانلود به KB/s (کیلوبایت بر ثانیه) .br upload - سرعت آپلود به KB/s (کیلوبایت بر ثانیه) مثال: .br $ firejail \-\-\name=mybrowser \-\-\net=eth0 /usr/bin/firefox & .br $ firejail \-\-\bandwidth=mybrowser set eth0 80 20 .br $ firejail \-\-\bandwidth=mybrowser status .br $ firejail \-\-\bandwidth=mybrowser clear eth0 .SH "مجوز (LICENSE)" این برنامه نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌گونه که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز یا (به انتخاب خود) هر نسخه بعدی، بازتوزیع نموده و/یا تغییر دهید. .PP صفحه وب: .UR https://firejail.wordpress.com .UE .SH "همچنین ببینید (SEE ALSO)" .BR firemon (1), .BR firecfg (1), .BR firejail-profile (5), .BR firejail-login (5), .BR firejail-users (5), .BR jailcheck (1) .UR https://github.com/netblue30/firejail/wiki .UE , .UR https://github.com/netblue30/firejail .UE .\" vim: set filetype=groff :