BWRAP(1) دستورات کاربر BWRAP(1)

bwrap - ابزار راه‌اندازی و برپایی کانتینر

bwrap [گزینه...] [دستور]

دستور bwrap یک ابزار ایزوله‌سازی (sandboxing) سطح‌پایین بدون دسترسی ویژه (unprivileged) است. بعید است که مستقیماً از آن در خط فرمان استفاده کنید، هرچند این کار ممکن است.

عملکرد آن از طریق ایجاد یک فضای نام سیستم پرونده جدید و کاملاً خالی است که ریشه آن روی یک tmpfs نامرئی از سیستم میزبان قرار دارد، و پس از خروج آخرین فرآیند به‌طور خودکار پاکسازی خواهد شد. سپس می‌توانید از گزینه‌های خط فرمان برای ساخت سیستم پرونده ریشه و محیط فرآیند جهت اجرای دستور در فضای نام استفاده کنید.

به‌طور پیش‌فرض، bwrap یک فضای نام سوار کردن (mount namespace) جدید برای محیط ایزوله ایجاد می‌کند. به‌طور اختیاری همچنین فضاهای نام جدید کاربر، ipc، pid، شبکه و uts را نیز تنظیم می‌کند (اما توجه داشته باشید که اگر bwrap با دسترسی کاربر ریشه اجرا نشود، فضای نام کاربر الزامی است). برنامه درون سندباکس را می‌توان به گونه‌ای تنظیم کرد که با UID و GID متفاوتی اجرا شود.

در صورت نیاز (مانند زمان استفاده از فضای نام PID)، bwrap یک فرآیند کمینه با شناسه فرآیند ۱ (pid 1) را در سندباکس اجرا می‌کند که مسئول جمع‌آوری فرآیندهای زامبی (zombie reaping) است. همچنین متوقف شدن فرآیند اولیه برنامه (pid 2) را تشخیص داده و وضعیت خروج آن را به ایجادکننده اصلی گزارش می‌دهد. فرآیند pid 1 پس از باقی نماندن هیچ فرآیند دیگری در سندباکس خارج می‌شود تا محیط سندباکس را پاکسازی کند.

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

گزینه‌های عمومی:

--help

چاپ راهنما و خروج

--version

چاپ نسخه

--args FD

تجزیه آرگومان‌های جداشده با نویسه تهی (nul-separated) از توصیف‌گر پرونده مشخص‌شده. این گزینه می‌تواند چندین بار برای تجزیه گزینه‌ها از چندین منبع استفاده شود.

--argv0 VALUE

تنظیم مقدار argv[0] به VALUE پیش از اجرای برنامه

--level-prefix

پیشوند قرار دادن سطح اهمیت عددی درون قلاب‌های شکسته در ابتدای هر خط از خروجی تشخیصی. سطوح اهمیت استفاده‌شده بر اساس ثابت‌های به‌کاررفته در syslog(3) است: برای مثال، <4> نشان‌دهنده یک هشدار است، زیرا LOG_WARNING مقدار عددی ۴ دارد. اعداد کوچکتر از ۴ خطاهای مهلک و اعداد بزرگتر از ۴ پیام‌های اطلاعاتی را نشان می‌دهند. این پیشوندها می‌توانند توسط ابزارهای سازگار با logger --prio-prefix (نگاه کنید به logger(1)) یا systemd-cat --level-prefix=1 (نگاه کنید به systemd-cat(1)) تجزیه شوند.

گزینه‌های مربوط به فضاهای نام کرنل:

--unshare-user

ایجاد یک فضای نام کاربر (user namespace) جدید

--unshare-user-try

ایجاد فضای نام کاربر جدید در صورت امکان، در غیر این صورت صرف‌نظر کردن از آن

--unshare-ipc

ایجاد یک فضای نام ipc جدید

--unshare-pid

ایجاد یک فضای نام pid جدید

--unshare-net

ایجاد یک فضای نام شبکه (network namespace) جدید

--unshare-uts

ایجاد یک فضای نام uts جدید

--unshare-cgroup

ایجاد یک فضای نام cgroup جدید

--unshare-cgroup-try

ایجاد فضای نام cgroup جدید در صورت امکان، در غیر این صورت صرف‌نظر کردن از آن

--unshare-all

جدا کردن (unshare) تمام فضاهای نام ممکن. در حال حاضر معادل است با: --unshare-user-try --unshare-ipc --unshare-pid --unshare-net --unshare-uts --unshare-cgroup-try

--share-net

حفظ فضای نام شبکه، لغو کردن دستور قبلی --unshare-all یا --unshare-net

--userns FD

استفاده از فضای نام کاربر موجود به جای ایجاد فضای جدید. فضای نام باید الزامات مجوز مربوط به ()setns را برآورده کند، که عموماً به این معناست که باید از نوادگان فضای نام کاربر فعال فعلی بوده و متعلق به همان کاربر باشد.

--userns2 FD

پس از راه‌اندازی فضای نام جدید، تغییر وضعیت به فضای نام مشخص‌شده. برای کارکرد صحیح، فضای نام مشخص‌شده باید از نوادگان فضای نام کاربر استفاده‌شده برای برپایی باشد، بنابراین این گزینه فقط همراه با userns-- کاربرد دارد.

این گزینه زمانی مفید است که bubblewrap فضاهای نام کاربر تودرتو ایجاد می‌کند (برای دور زدن برخی مشکلات کرنل) و می‌توان از userns2-- برای ورود به آن‌ها استفاده کرد.

--disable-userns

جلوگیری از ایجاد فضاهای نام کاربر بیشتر توسط فرآیند داخل سندباکس، به طوری که نتواند فضای نام سیستم پرونده را مجدداً سازماندهی کند یا تغییرات پیچیده‌تری در فضای نام اعمال نماید. این ویژگی در حال حاضر با تنظیم متغیر sysctl با نام user.max_user_namespaces روی ۱ و سپس ورود به فضای نام کاربر تودرتویی که قادر به افزایش آن محدودیت در فضای نام خارجی نیست پیاده‌سازی شده است. این گزینه نیاز به --unshare-user دارد.

--assert-userns-disabled

تأیید اینکه فرآیند درون سندباکس از ایجاد فضاهای نام کاربر بیشتر منع شده است، بدون انجام اقدام خاصی برای جلوگیری از آن. به عنوان مثال، می‌توان این را با --userns ترکیب کرد تا بررسی شود که آیا فضای نام کاربر داده‌شده قبلاً برای جلوگیری از ایجاد فضاهای نام بیشتر تنظیم شده است یا خیر.

--pidns FD

استفاده از فضای نام pid موجود به جای ایجاد یک فضای نام جدید. این گزینه اغلب با userns-- استفاده می‌شود، زیرا فضای نام pid باید متعلق به همان فضای نام کاربری باشد که bwrap از آن استفاده می‌کند.

توجه داشته باشید که این گزینه می‌تواند با unshare-pid-- ترکیب شود و در این صورت به این معنی است که سندباکس در فضای نام pid اختصاصی خود که فرزند فضای ارسال‌شده است قرار خواهد گرفت.

--uid UID

استفاده از شناسه کاربر (UID) سفارشی در سندباکس (نیازمند --unshare-user)

--gid GID

استفاده از شناسه گروه (GID) سفارشی در سندباکس (نیازمند --unshare-user)

--hostname HOSTNAME

استفاده از نام میزبان (hostname) سفارشی در سندباکس (نیازمند --unshare-uts)

گزینه‌های مربوط به تنظیم محیط:

--chdir DIR

تغییر دایرکتوری به DIR

--setenv VAR VALUE

تنظیم مقدار یک متغیر محیطی

--unsetenv VAR

حذف یک متغیر محیطی

--clearenv

پاک کردن تمام متغیرهای محیطی، به جز PWD و مواردی که متعاقباً توسط --setenv تنظیم می‌شوند

گزینه‌های پایش سندباکس از خارج:

--lock-file DEST

گرفتن قفل روی DEST در حین اجرای سندباکس. این گزینه می‌تواند چندین بار برای قفل کردن چند پرونده استفاده شود.

--sync-fd FD

باز نگه داشتن این توصیف‌گر پرونده در حین اجرای سندباکس

گزینه‌های مربوط به سیستم پرونده. این‌ها تمام عملیاتی هستند که سیستم پرونده را مستقیماً تغییر می‌دهند، یا مواردی را در سیستم پرونده سوار (mount) می‌کنند. این موارد به ترتیبی که به عنوان آرگومان داده شده‌اند اعمال می‌شوند.

هرگونه دایرکتوری والد گم‌شده که برای ایجاد یک مقصد معین مورد نیاز باشد، به صورت خودکار ایجاد می‌شود. مجوزهای آن‌ها معمولاً روی 0755 (rwxr-xr-x) تنظیم می‌شود. با این حال، اگر گزینه --perms اعمال شده باشد و مجوز گروه یا دیگران را روی صفر تنظیم کند، دایرکتوری‌های والد تازه ایجادشده نیز مجوز مربوطه خود را روی صفر خواهند داشت. گزینه --size اندازه نقطه سوارشدن ایجادشده را هنگام قرار گرفتن پیش از یک عمل --tmpfs تغییر می‌دهد؛ --perms و --size می‌توانند ترکیب شوند.

--perms OCTAL

این گزینه به خودی خود کاری انجام نمی‌دهد و باید بعد از آن یکی از گزینه‌هایی که تحت تأثیر قرار می‌دهد آورده شود. مجوزها را برای عملیات بعدی به صورت هشت‌هشتی OCTAL تنظیم می‌کند. عملیات بعدی تحت تأثیر قرار نمی‌گیرند: برای مثال، --perms 0700 --tmpfs /a --tmpfs /b مسیر /a را با مجوزهای 0700 سوار می‌کند، سپس به مجوزهای پیش‌فرض برای /b بازمی‌گردد. توجه داشته باشید که --perms و --size می‌توانند ترکیب شوند: --perms 0700 --size 10485760 --tmpfs /s مجوزها و همچنین حداکثر اندازه را روی tmpfs ایجادشده اعمال می‌کند.

--size BYTES

این گزینه به خودی خود کاری انجام نمی‌دهد و باید پیش از tmpfs-- بیاید. اندازه را بر حسب بایت برای tmpfs بعدی تعیین می‌کند. به عنوان مثال، --size 10485760 --tmpfs /tmp یک tmpfs در /tmp با اندازه ۱۰ مگابایت ایجاد می‌کند. عملیات بعدی تحت تأثیر قرار نمی‌گیرند: برای مثال، --size 10485760 --tmpfs /a --tmpfs /b مسیر /a را با اندازه ۱۰ مگابایت سوار می‌کند، سپس به اندازه پیش‌فرض برای /b بازمی‌گردد. توجه داشته باشید که --perms و --size می‌توانند ترکیب شوند: --size 10485760 --perms 0700 --tmpfs /s مجوزها و حداکثر اندازه را روی tmpfs ایجادشده اعمال می‌کند.

--bind SRC DEST

سوار کردن متصل (Bind mount) مسیر مبدا میزبان SRC بر روی مقصد DEST

--bind-try SRC DEST

معادل --bind است اما در صورت عدم وجود مسیر SRC از آن صرف‌نظر می‌کند.

--dev-bind SRC DEST

سوار کردن متصل مسیر مبدا میزبان SRC روی DEST همراه با اجازه دسترسی به دستگاه‌ها

--dev-bind-try SRC DEST

معادل --dev-bind است اما در صورت عدم وجود مسیر SRC از آن صرف‌نظر می‌کند.

--ro-bind SRC DEST

سوار کردن متصل مسیر مبدا میزبان SRC به صورت فقط‌خواندنی روی مقصد DEST

--ro-bind-try SRC DEST

معادل --ro-bind است اما در صورت عدم وجود مسیر SRC از آن صرف‌نظر می‌کند.

--remount-ro DEST

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

--overlay-src SRC

این گزینه به خودی خود کاری انجام نمی‌دهد و باید بعد از آن یکی از دیگر گزینه‌های overlay آورده شود. مسیر میزبانی را مشخص می‌کند که در صورت عدم وجود پرونده‌ها در لایه بالاتر، پرونده‌ها باید از آن خوانده شوند.

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

(برای کاربرانی که با overlayfs آشنا هستند، توجه داشته باشید که این ترتیب برعکس ترتیبی است که توسط گزینه سوارشدن lowerdir کرنل استفاده می‌شود.)

--overlay RWSRC WORKDIR DEST

--tmp-overlay DEST

--ro-overlay DEST

استفاده از overlayfs برای سوار کردن مسیرهای میزبان مشخص‌شده توسط RWSRC و تمام گزینه‌های بلافاصله ماقبل --overlay-src روی DEST. مقصد DEST شامل اجتماع تمام پرونده‌ها در تمامی لایه‌ها خواهد بود.

با استفاده از --overlay تمام عملیات نوشتن به مسیر RWSRC هدایت می‌شود. عملیات خواندن ترجیحاً از RWSRC و سپس از مسیرهای مشخص‌شده در --overlay-src انجام می‌گیرد. مسیر WORKDIR باید یک دایرکتوری خالی روی همان سیستم پرونده RWSRC باشد، و به صورت داخلی توسط کرنل استفاده می‌شود.

با استفاده از --tmp-overlay تمام عملیات نوشتن به tmpfs که میزبان ریشه سندباکس است می‌رود، در مکانی که نه از میزبان و نه از فرآیند فرزند قابل دسترسی نیست. بنابراین نوشته‌ها در طول اجراهای مکرر باقی نمی‌مانند.

با استفاده از --ro-overlay سیستم پرونده به صورت فقط‌خواندنی سوار می‌شود. این گزینه نیاز دارد که حداقل دو گزینه --overlay-src پیش از آن آمده باشند.

استفاده از --ro-overlay یا مشخص کردن بیش از یک --overlay-src نیازمند کرنل لینوکس نسخه ۴.۰ یا بالاتر است.

به دلیل محدودیت‌های overlayfs، هیچ دایرکتوری میزبانی که از طریق overlay-src-- یا overlay-- داده شده است، نباید پس از تفکیک پیوندهای نمادین، والد یا جد دیگری باشد. بسته به نسخه، کرنل لینوکس ممکن است این مورد را اعمال کند یا نکند، اما اگر اعمال نکند رفتار overlayfs تعریف‌نشده خواهد بود.

برای اطلاعات بیشتر، اسناد Overlay Filesystem را در کرنل لینوکس در نشانی https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt ببینید.

--proc DEST

سوار کردن procfs روی DEST

--dev DEST

سوار کردن devtmpfs جدید روی DEST

--tmpfs DEST

سوار کردن tmpfs جدید روی DEST. اگر گزینه قبلی --perms بوده باشد، حالت مجوز tmpfs را تعیین می‌کند؛ در غیر این صورت، tmpfs دارای حالت 0755 خواهد بود. اگر گزینه قبلی --size بوده باشد، اندازه بر حسب بایت tmpfs را تعیین می‌کند؛ در غیر این صورت tmpfs اندازه پیش‌فرض را خواهد داشت.

--mqueue DEST

سوار کردن mqueue جدید روی DEST

--dir DEST

ایجاد یک دایرکتوری در مسیر DEST. اگر دایرکتوری از قبل وجود داشته باشد، مجوزهای آن بدون تغییر باقی می‌ماند و از --perms صرف‌نظر می‌شود (اگر نیاز به تغییر مجوزهای یک دایرکتوری موجود باشد از --chmod استفاده کنید). اگر دایرکتوری به تازگی ایجاد شده باشد و گزینه قبلی --perms بوده باشد، حالت دایرکتوری را تنظیم می‌کند؛ در غیر این صورت، دایرکتوری‌های تازه‌تأسیس دارای حالت 0755 هستند.

--file FD DEST

کپی از توصیف‌گر پرونده FD به DEST. اگر گزینه قبلی --perms بوده باشد، حالت پرونده جدید را تنظیم می‌کند؛ در غیر این صورت پرونده دارای حالت 0666 است (توجه داشته باشید که این با --bind-data یکسان نیست).

--bind-data FD DEST

کپی از توصیف‌گر پرونده FD به پرونده‌ای که به صورت bind-mount روی DEST سوار می‌شود. اگر گزینه قبلی --perms بوده باشد، حالت پرونده جدید را تنظیم می‌کند؛ در غیر این صورت پرونده دارای حالت 0600 است (توجه داشته باشید که این با --file یکسان نیست).

--ro-bind-data FD DEST

کپی از توصیف‌گر پرونده FD به پرونده‌ای که به صورت bind-mount فقط‌خواندنی روی DEST سوار می‌شود. اگر گزینه قبلی --perms بوده باشد، حالت پرونده جدید را تنظیم می‌کند؛ در غیر این صورت پرونده دارای حالت 0600 است (توجه داشته باشید که این با --file یکسان نیست).

--symlink SRC DEST

ایجاد پیوند نمادین در DEST با هدف SRC.

از نسخه 0.9.0 به بعد، اگر DEST از قبل به عنوان پیوند نمادین وجود داشته باشد و هدف آن دقیقاً SRC باشد، خطا در نظر گرفته نمی‌شود.

قبل از نسخه 0.9.0، اگر DEST از قبل وجود داشت، این به عنوان خطا تلقی می‌شد (حتی اگر هدف آن با SRC یکسان بود).

--chmod OCTAL PATH

تنظیم مجوزهای مسیر PATH (که باید از قبل وجود داشته باشد) به مقدار هشت‌هشتی OCTAL.

گزینه‌های قفل امنیتی (Lockdown):

--seccomp FD

بارگذاری و استفاده از قوانین seccomp از توصیف‌گر FD. قوانین باید در قالب یک برنامه کامپایل‌شده cBPF باشند، همان‌طور که توسط seccomp_export_bpf تولید می‌شود. اگر این گزینه بیش از یک بار داده شود، فقط آخرین مورد استفاده می‌شود. در صورت نیاز به چندین برنامه seccomp از --add-seccomp-fd استفاده کنید.

--add-seccomp-fd FD

بارگذاری و استفاده از قوانین seccomp از FD. قوانین باید در قالب یک برنامه کامپایل‌شده cBPF باشند، همان‌طور که توسط seccomp_export_bpf تولید می‌شود. این گزینه می‌تواند تکرار شود، که در این حالت تمام برنامه‌های seccomp به ترتیبی که داده شده‌اند بارگذاری می‌شوند (توجه داشته باشید که کرنل آن‌ها را به ترتیب معکوس ارزیابی می‌کند، بنابراین آخرین برنامه در خط فرمان bwrap اول ارزیابی می‌شود). همه آن‌ها به جز احتمالاً آخرین مورد، باید اجازه استفاده از فراخوانی prctl دستور PR_SET_SECCOMP را بدهند. این گزینه نمی‌تواند با --seccomp ترکیب شود.

--exec-label LABEL

برچسب اجرایی از سندباکس. در یک سیستم SELinux می‌توانید زمینه (context) مربوط به SELinux را برای فرآیند(های) سندباکس مشخص کنید.

--file-label LABEL

برچسب پرونده برای محتوای موقت سندباکس. در یک سیستم SELinux می‌توانید زمینه SELinux را برای محتوای سندباکس مشخص کنید.

--block-fd FD

مسدود کردن اجرای سندباکس روی خواندن از FD تا زمانی که داده‌ای در دسترس قرار گیرد.

--userns-block-fd FD

عدم مقداردهی اولیه فضای نام کاربر و انتظار روی FD تا آماده شدن آن. این به فرآیندهای خارجی (مانند newuidmap/newgidmap) اجازه می‌دهد تا فضای نام کاربر را قبل از استفاده توسط فرآیند سندباکس تنظیم کنند.

--info-fd FD

نوشتن اطلاعات مربوط به سندباکس با قالب JSON در FD.

--json-status-fd FD

چندین سند JSON در FD نوشته می‌شود، هر سند در یک خط (قالب JSON Lines). هر خط یک شیء منفرد JSON است. پس از اینکه bwrap فرآیند فرزند را درون سندباکس راه‌اندازی کرد، شیئی با عضو child-pid در --json-status-fd می‌نویسد (این کارکرد گزینه قدیمی‌تر --info-fd را تکرار می‌کند). مقدار متناظر، شناسه فرآیند (PID) فرزند در فضای نام pid است که bwrap از آن اجرا شده است. در صورت وجود، شناسه‌های فضای نام نیز در شیء همراه با child-pid گنجانده می‌شوند؛ این نیز گزینه قدیمی‌تر --info-fd را تکرار می‌کند. هنگامی که فرآیند فرزند داخل سندباکس خارج می‌شود، bwrap شیئی با عضو exit-code می‌نویسد و سپس --json-status-fd را می‌بندد. مقدار متناظر با exit-code وضعیت خروج فرزند با کدگذاری معمول شل است (n اگر به طور عادی با وضعیت n خارج شود، یا 128+n اگر با سیگنال n خاتمه یافته باشد). اعضای دیگری ممکن است در نسخه‌های بعدی bwrap به این اشیاء افزوده شوند، و اشیاء JSON دیگری ممکن است قبل یا بعد از اشیاء فعلی اضافه شوند، بنابراین خوانندگان باید اعضا و اشیایی را که متوجه نمی‌شوند نادیده بگیرند.

--new-session

ایجاد یک نشست ترمینال جدید برای سندباکس (فراخوانی ()setsid). این کار سندباکس را از ترمینال کنترل‌کننده قطع می‌کند، به این معنی که سندباکس نمی‌تواند به عنوان مثال ورودی به ترمینال تزریق کند.

نکته: در یک سندباکس عمومی، اگر از new-session-- استفاده نکنید، توصیه می‌شود از seccomp برای غیرمجاز کردن ioctl فرمان TIOCSTI استفاده کنید، در غیر این صورت برنامه می‌تواند ورودی صفحه‌کلید را به ترمینال وارد کند که می‌تواند منجر به اجرای دستور خارج از سندباکس شود (نگاه کنید به CVE-2017-5226).

--die-with-parent

اطمینان از متوقف شدن فرآیند فرزند (COMMAND) هنگام خروج یا مرگ والد bwrap. تمام فرآیندهای سندباکس bwrap را به ترتیب از والد به فرزند از جمله فرآیند COMMAND در هنگام مرگ bwrap یا والد آن با سیگنال SIGKILL متوقف می‌کند. نگاه کنید به prctl, PR_SET_PDEATHSIG.

--as-pid-1

فرآیندی با PID=1 در سندباکس برای درو کردن فرآیندهای فرزند ایجاد نکن.

--cap-add CAP

افزودن قابلیت (capability) مشخص‌شده CAP مانند CAP_DAC_READ_SEARCH هنگام اجرا به عنوان کاربر دارای دسترسی ویژه. مقدار ویژه ALL را برای افزودن تمامی قابلیت‌های مجاز می‌پذیرد.

--cap-drop CAP

حذف قابلیت مشخص‌شده هنگام اجرا به عنوان کاربر دارای دسترسی ویژه. مقدار ویژه ALL را برای حذف تمام قابلیت‌ها می‌پذیرد. به‌طور پیش‌فرض هیچ قابلیتی در فرآیند سندباکس‌شده باقی نمی‌ماند. گزینه‌های --cap-add و --cap-drop به ترتیبی که در خط فرمان مشخص شده‌اند پردازش می‌شوند. لطفاً به ترتیب مشخص‌کردن آن‌ها دقت فرمایید.

--not-a-security-boundary

اعلام اینکه این فراخوانی از bwrap برای ایجاد یک مرز امنیتی بین سندباکس و سیستم میزبان در نظر گرفته نشده است. هنگامی که این گزینه داده شود، برخی از خرابی‌های غیرمهلک راه‌اندازی سندباکس (مانند ناموفق بودن سوار شدن مجدد یک زیرشاخه به دلیل پاسخ ندادن به موقع automounter) به جای ایجاد خطا و خروج bwrap، یک هشدار تولید کرده و نادیده گرفته می‌شوند. در نسخه‌های بعدی bubblewrap ممکن است اثر این گزینه برای غیرمهلک کردن سایر عملیات راه‌اندازی سندباکس گسترش یابد.

این گزینه برای برنامه‌های فراخواننده‌ای مانند xdg-dbus-proxy یا Steam در نظر گرفته شده است که از bwrap برای تنظیم چیدمان سیستم پرونده برای یک فرآیند استفاده می‌کنند، اما برای ایجاد مرز امنیتی به آن متکی نیستند.

سایر عملیاتی که برای ایجاد سندباکس اساسی هستند (ایجاد فضاهای نام، pivot_root، حذف قابلیت‌ها) صرف‌نظر از این گزینه همچنان باعث خطای قطعی خواهند شد.

HOME

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

دستور bwrap وضعیت خروج فرآیند اولیه برنامه (pid 2 در سندباکس) را برمی‌گرداند.

1.
قالب "JSON lines"
Containers