.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "SYD" "5" "2026\-09\-01" "" "فایل‌های پیکربندی" .PP .SH "نام (NAME)" .PP \fBsyd\fR \- قالب مستندات برای نگارش پروفایل‌های Syd .PP .SH "رابط برنامه‌نویسی (API)" .PP نسخه فعلی رابط برنامه‌نویسی دستورات Syd برابر با \fB3\fR است.\& این نسخه \fBپایدار\fR (\fBstable\fR) است.\& .PP .SH "پیکربندی (CONFIGURATION)" .PP ابزار Syd از طریق دستورات جعبه‌شنی پیکربندی می‌شود.\& در صورت وجود چندین قانون منطبق (برای نمونه دو قانون منطبق بر یک مسیر یکسان)، آخرین قانون منطبق برنده است (اولویت دارد).\& دو روش برای ارائه دستورات جعبه‌شنی وجود دارد.\& نخست، Syd می‌تواند با استفاده از یک فایل پیکربندی تنظیم شود.\& مسیر فایل پیکربندی با استفاده از سوییچ خط فرمان \fB\-P\fR مشخص می‌شود.\& از این طریق می‌توان بیش از یک فایل پیکربندی را مشخص کرد.\& دستورات منفرد نیز می‌توانند از طریق سوییچ خط فرمان \fB\-m\fR ارسال شوند.\& پروفایل‌های پیکربندی را می‌توان با استفاده از سوییچ خط فرمان \fB\-p\fR اعمال نمود.\& برای اطلاعات بیشتر به بخش «پروفایل‌ها (PROFILES)» مراجعه کنید.\& دوم، Syd می‌تواند با استفاده از فراخوانی‌های جادویی \fIstat\fR(2) در زمان اجرا پیکربندی شود.\& این کار با اجرای فراخوانی سیستمی \fIstat\fR(2) روی مسیر ویژه \fB/dev/syd\fR و به دنبال آن دستور جعبه‌شنی انجام می‌گیرد.\& پیکربندی زمان اجرا تنها در صورتی ممکن است که قفل جعبه‌شنی در وضعیت \fBoff\fR (خاموش) باشد.\& فراخوانی سیستمی \fIstat\fR(2) به این دلیل انتخاب شده است که فراخوانی آن با استفاده از دستورات توکار پوسته عملی است، مانند: .PP .nf .RS 4 ; test \-c /dev/syd/sandbox/read:on .fi .RE .PP که «سندباکس خواندن» (\fBRead Sandboxing\fR) را برای پوسته‌ای که تحت نظارت Syd اجرا می‌شود فعال می‌کند.\& همچنین می‌توان مقادیر مشخصی را با استفاده از مقدار بازگشتی فراخوانی \fIstat\fR(2) استعلام کرد: .PP .nf .RS 4 test \-c /dev/syd/sandbox/read? && echo read sandboxing on || echo read sandboxing off .fi .RE .PP برخی از این دستورات توکار پوسته ممکن است در عمل فراخوانی‌های سیستمی دیگری مانند \fIfstat\fR(2)، \fIlstat\fR(2)، \fInewfstatat\fR(2) یا \fIstatx\fR(2) را فراخوانی کنند.\& Syd به‌طور شفاف از همین رابط از طریق تمامی این فراخوانی‌های سیستمی پشتیبانی می‌کند.\& برای شرح رابط \fIstat\fR(2) به صفحه راهنمای \fIsyd\fR(2) مراجعه کنید.\& .PP .SH "نام‌گذاری (NAMING)" .PP نام‌گذاری فایل‌های پیکربندی Syd از یک الگوی نام‌گذاری پیروی می‌کند که استخراج نسخه رابط برنامه‌نویسی دستور را از نام فایل امکان‌پذیر می‌سازد.\& یک فایل پیکربندی Syd باید دارای پسوند \fBsyd\-\fR و به دنبال آن نسخه رابط برنامه‌نویسی باشد (برای مثال \fB"syd\-3"\fR برای نسخه رابط برنامه‌نویسی \fB3\fR).\& .PP .SH "نحو (SYNTAX)" .PP فایل‌های ورودی باید از کدگذاری UTF\-8 استفاده کنند.\& قالب پیکربندی خط‌محور است.\& کامنت‌ها با "#" آغاز می‌شوند.\& کامنت‌های درون‌خطی پشتیبانی \fIنمی‌شوند\fR.\& خطوط خالی نادیده گرفته می‌شوند.\& با تمامی خطوط دیگر به‌گونه‌ای رفتار می‌شود که گویی از طریق سوییچ خط فرمان \fB\-m\fR به Syd ارسال شده‌اند.\& برای فهرستی از دستورات جعبه‌شنی در دسترس، به \fIsyd\fR(2) مراجعه نمایید.\& برای دریافت فایل نحو VIM ویژه پروفایل‌های Syd به این نشانی مراجعه کنید: https://gitlab.\&exherbo.\&org/sydbox/sydbox/\-/tree/main/vim .PP از نسخه 3.\&15.\&1، برنامه Syd دو قابلیت دیگر را به تجزیه فایل پیکربندی اضافه می‌کند: .PP .PD 0 .IP \(bu 4 گسترش متغیرهای محیطی روی آرگومان‌ها با استفاده از کریت \fBshellexpand\fR انجام می‌شود.\& متغیرهای محیطی تنظیم‌نشده به رشته‌های خالی گسترش نمی‌یابند.\& در صورت بروز خطای جستجوی متغیر محیطی و خطاهای رمزگشایی UTF\-8، برنامه Syd تجزیه را متوقف کرده و با خطا خارج می‌شود.\& این کار برای حفظ امنیت انجام می‌گیرد چرا که گسترش ناخواسته به رشته خالی می‌تواند به‌طور بالقوه باعث شود قانون جعبه‌شنیِ حاصل، مسیرهای ناخواسته را بدون اینکه کاربر به‌سادگی متوجه شود در فهرست مجاز قرار دهد.\& به کاربر توصیه می‌شود مقادیر پیش‌فرضی را برای متغیرهای محیطی با استفاده از نمادگذاری آشنای \fB${HOME:\-/var/empty}\fR تعیین کند.\& اگر واقعاً خواهان گسترش رشته خالی برای متغیرهای محیطی تعیین‌نشده هستید، می‌توانید با استفاده از نمادگذاری \fB${HOME:\-}\fR به این اثر دست یابید، اما این روش توصیه نمی‌شود و باید با احتیاط استفاده شود.\& .IP \(bu 4 دستورالعمل‌های \fBinclude\fR می‌توانند برای درخواست گنجاندن یک فایل پیکربندی دیگر استفاده شوند.\& با خواندن خط include، برنامه Syd تجزیه فایل جاری را متوقف کرده، مسیر include ارائه‌شده را اعتبارسنجی می‌کند و تجزیه فایل پیکربندی جدید را آغاز می‌نماید.\& فایل به دلایل امنیتی نباید توسط گروه یا دیگران قابل نوشتن باشد.\& برای فایل‌های گنجانده‌شده با مسیرهای نسبی، Syd به منظور امنیت و سهولت در پیکربندی، فایل را به جای دایرکتوری کاری جاری، در زیر دایرکتوریِ فایل پیکربندی قبلی جستجو می‌کند.\& حلقه‌ها در دستورالعمل‌های include با کش کردن شناسه دستگاه (device id) و اینود (inode) فایل‌های پیکربندی شناسایی می‌شوند.\& این دستورالعمل هنگام بارگذاری پیکربندی از یک توصیف‌گر فایل با استفاده از دستور \fBload\fR مجاز نیست.\& .PD .PP از نسخه 3.\&17.\&6، ابزار Syd دستورالعمل \fBinclude_profile\fR را اضافه می‌کند که می‌تواند برای گنجاندن یک پروفایل Syd به کار رود.\& برای مشاهده فهرست پروفایل‌ها، به \fBsyd\-cat \-plist\fR مراجعه کنید.\& .PP .SH "پروفایل‌ها (PROFILES)" .PP ابزار Syd دارای تعدادی پروفایل از پیش‌تعریف‌شده برای آسان‌تر ساختن پیکربندی است.\& این پروفایل‌ها می‌توانند به‌صورت مستقل یا پشته‌سازی‌شده با دیگر پروفایل‌ها و پیکربندی‌های سفارشی استفاده شوند تا سطوح گوناگونی از ایزولاسیون و محدودسازی ایجاد گردد.\& برای مشاهده فهرست کامل پروفایل‌ها، از \fBsyd\-cat \-plist\fR استفاده کنید.\& برای فهرست کردن قوانین یک پروفایل، از \fBsyd\-cat \-p\fR استفاده نمایید.\& در زیر فهرست کوتاهی از پروفایل‌های متداول و کارکرد آن‌ها آمده است: .PP .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fBcontainer\fR T} T{ فضاهای نام لینوکس (Linux namespaces) را فعال می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBc\fR به این پروفایل اشاره کنید.\& T} T{ \fBimmutable\fR T} T{ فضاهای نام لینوکس را فعال می‌کند و دایرکتوری‌های زیر را در فضای نام اتصال جدید به‌صورت \fIفقط‌خواندنی\fR (\fIread only\fR) مجدداً متصل می‌نماید: T} T{ T} T{ \fB/etc\fR، \fB/home\fR، \fB/media\fR، \fB/mnt\fR، \fB/opt\fR، \fB/srv\fR و \fB/usr\fR.\& T} T{ T} T{ گزینه‌های اتصال دیگری مانند \fBnodev\fR، \fBnoexec\fR، \fBnosuid\fR و \fBnoatime\fR نیز در صورت نیاز اعمال می‌شوند.\& T} T{ T} T{ علاوه بر این، \fB/dev/shm\fR و \fB/tmp\fR به‌صورت خصوصی متصل می‌شوند و سیستم‌فایل‌های هسته ماسک (پنهان) می‌گردند.\& T} T{ T} T{ برای فهرست کامل گزینه‌های اتصال، \fBsyd\-cat \-p immutable\fR را ببینید.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBi\fR به این پروفایل اشاره کنید.\& T} T{ \fBprivileged\fR T} T{ قابلیت‌های لینوکس را در هنگام راه‌اندازی سلب (drop) نمی‌کند.\& برای ساخت کانتینرهای ممتاز (دارای دسترسی ویژه) استفاده می‌شود.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBp\fR به این پروفایل اشاره کنید.\& T} T{ \fBreadonly\fR T} T{ تمام قابلیت‌های نوشتن جعبه‌شنی را برای کل سیستم‌فایل ریشه سلب می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBro\fR به این پروفایل اشاره کنید.\& T} T{ \fBlandlock\fR T} T{ قابلیت \fBLandLock\fR را فعال می‌کند و دایرکتوری‌های سیستم را برای «سندباکس قفل» (\fBLock Sandboxing\fR) مجاز می‌سازد.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBl\fR به این پروفایل اشاره کنید.\& T} T{ \fBlinux\fR T} T{ پروفایل عمومی سیستم لینوکس، مورداستفاده در پروفایل‌های \fBoci\fR، \fBpaludis\fR و \fBuser\fR.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBL\fR به این پروفایل اشاره کنید.\& T} T{ \fBoci\fR T} T{ توسط \fIsyd\-oci\fR(1) به عنوان پروفایل پیش‌فرض کانتینر استفاده می‌شود.\& T} T{ \fBpaludis\fR T} T{ توسط مدیر بسته \fBPaludis\fR استفاده می‌شود.\& T} T{ \fBlocal\fR T} T{ شبکه‌سازی محلی را اجبار می‌کند، تمام آدرس‌ها را در bind/connect به آدرس لوپ‌بک بازنویسی می‌نماید؛ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fB@\fR به این پروفایل اشاره کنید.\& T} T{ \fBnoipv4\fR T} T{ اتصال \fBIPv4\fR را غیرفعال می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fB6\fR به این پروفایل اشاره کنید.\& T} T{ \fBnoipv6\fR T} T{ اتصال \fBIPv6\fR را غیرفعال می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fB4\fR به این پروفایل اشاره کنید.\& T} T{ \fBcwd\fR، \fBpwd\fR T} T{ تمام دسترسی‌ها را به دایرکتوری کاری جاری اعطا می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBd\fR به این پروفایل اشاره کنید.\& T} T{ T} T{ برنامه Syd پیش از تجزیه این پروفایل، متغیر محیطی \fBSYD_PWD\fR را مقداردهی می‌کند.\& T} T{ T} T{ اگر فرایند دایرکتوری کاری جاری نداشته باشد، متغیر \fBSYD_PWD\fR روی \fB/proc/self/fdinfo\fR تنظیم می‌شود.\& T} T{ \fBcore\fR T} T{ تولید فایل‌های تخلیه حافظه (coredump) را مجاز می‌سازد.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBC\fR به این پروفایل اشاره کنید.\& T} T{ \fBdebug\fR T} T{ دیباگرها را درون جعبه‌شنی مجاز می‌داند.\& T} T{ T} T{ برنامه Syd در این پروفایل از \fIptrace\fR(1) استفاده نمی‌کند، بنابراین ردگیرها (tracers) می‌توانند متصل شوند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBD\fR به این پروفایل اشاره کنید.\& T} T{ \fBnomem\fR T} T{ حافظه ناامن را مجاز می‌سازد (بدون W\(haX، بدون Memory\-Deny\-Write\-Execute، و مجاز بودن مواردی چون JITها).\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBM\fR به این پروفایل اشاره کنید.\& T} T{ \fBnopie\fR T} T{ محدودیت PIE (کد اجرایی مستقل از موقعیت) را کاهش می‌دهد.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBP\fR به این پروفایل اشاره کنید.\& T} T{ \fBnomagic\fR T} T{ عدم استفاده از پیوندهای جادویی (magic links) را در حین حل مسیر اعمال می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBS\fR به این پروفایل اشاره کنید.\& T} T{ T} T{ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ \fBnoscm\fR T} T{ دریافت توصیف‌گرهای فایل از طریق \fBSCM_RIGHTS\fR با استفاده از گزینه سوکت \fBSO_PASSRIGHTS\fR را مسدود می‌کند.\& T} T{ T} T{ این پروفایل در هسته‌های قدیمی‌تر از لینوکس 6.\&16 بی‌اثر است.\& T} T{ T} T{ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ \fBnoxdev\fR T} T{ عدم عبور از اتصالات دیگر (cross mounts) را در حین حل مسیر اجبار می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBX\fR به این پروفایل اشاره کنید.\& T} T{ T} T{ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ \fBquiet\fR T} T{ تمامی نقض‌های دسترسی را بی‌صدا (خاموش) می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBq\fR به این پروفایل اشاره کنید.\& T} T{ \fBhide\fR T} T{ سندباکس‌های Chdir، List، Stat، Readlink، Notify و Walk را برای پنهان‌سازی مسیرها فعال می‌کند.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBh\fR به این پروفایل اشاره کنید.\& T} T{ \fBfs\fR T} T{ جعبه‌شنی سیستم‌فایل را برای تحدید باز کردن فایل‌ها بر پایه نوع سیستم‌فایل فعال می‌کند.\& T} T{ T} T{ دسترسی به تمام انواع سیستم‌فایل را به‌جز برخی انواع خاص مجاز می‌سازد.\& T} T{ T} T{ برای فهرست انواع سیستم‌فایل‌های مسدودشده، به خروجی \fIsyd\-cat \-pfs\fR مراجعه کنید.\& T} T{ T} T{ توسط پروفایل \fBlinux\fR استفاده می‌شود.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBf\fR به این پروفایل اشاره کنید.\& T} T{ \fBgui\fR T} T{ جعبه‌شنی PTY را غیرفعال کرده و متغیرهای محیطی ناامن واسط گرافیکی (GUI) را عبور می‌دهد.\& T} T{ T} T{ توسط پروفایل‌های \fBchrome\fR و \fBfirefox\fR استفاده می‌شود.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBg\fR به این پروفایل اشاره کنید.\& T} T{ \fBlang\fR T} T{ متغیرهای محیطی زبان و منطقه زمانی را مجاز می‌سازد.\& T} T{ T} T{ توسط پروفایل‌های \fBchrome\fR و \fBfirefox\fR استفاده می‌شود.\& T} T{ \fBldd\fR T} T{ تنظیم \fBAT_SECURE\fR را غیرفعال می‌کند و تغییر مسیر اجرای \fIld.\&so\fR(8) را مجاز می‌سازد.\& T} T{ T} T{ توسط \fIsyd\-ldd\fR(1) استفاده می‌شود.\& T} T{ \fBrand\fR T} T{ توصیف‌گرهای تصادفی فایل را فعال می‌کند؛ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ T} T{ برای اطلاعات بیشتر، بخش «Force Randomized File Descriptors» در صفحه راهنمای \fIsyd\fR(7) را ببینید.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBr\fR به این پروفایل اشاره کنید.\& T} T{ \fBwx\fR T} T{ محدودسازی نوشتن یا اجرای انحصاری (W\(haX) را برای سیستم‌فایل فعال می‌کند؛ توسط پروفایل \fBuser\fR استفاده می‌شود.\& T} T{ T} T{ این پروفایل از ایجاد فایل‌های اجرایی و نوشتن روی فایل‌های اجرایی جلوگیری می‌کند.\& T} T{ \fBxdg\fR T} T{ متغیرهای محیطی XDG را مجاز می‌سازد.\& T} T{ T} T{ توسط پروفایل‌های \fBgui\fR و \fBfirefox\fR استفاده می‌شود.\& T} T{ \fBoff\fR T} T{ تمامی جعبه‌شنی‌ها را خاموش می‌کند.\& T} T{ \fBlib\fR T} T{ پروفایل کمکی \fBlibsyd\fR.\& تمام قابلیت‌های جعبه‌شنی را غیرفعال کرده و قفل جعبه‌شنی را روی \fBexec\fR تنظیم می‌کند.\& T} T{ T} T{ برای پیکربندی Syd درون برنامه‌ای که از \fBlibsyd\fR استفاده می‌کند مفید است.\& T} T{ \fBuser\fR T} T{ دایرکتوری‌ها و اتصالات ویژه کاربر را مجاز می‌سازد و فایل‌های T} T{ T} T{ \fB/etc/user.\&syd\-3\fR و \fB\(ti/.\&user.\&syd\-3\fR را در صورت وجود پردازش می‌کند.\& T} T{ T} T{ جهت اعمال تنظیمات سراسری سیستم، عبارت \fBlock:on\fR را در پایان \fB/etc/user.\&syd\-3\fR قرار دهید.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBu\fR به این پروفایل اشاره کنید.\& T} T{ \fBkvm\fR T} T{ پروفایلی برای قرار دادن درخواست‌های \fIioctl\fR(2) مربوط به KVM در فهرست مجاز بدون بررسی مسیر.\& T} T{ T} T{ مطالعه کنید: https://www.\&kernel.\&org/doc/Documentation/virtual/kvm/api.\&txt T} T{ \fBtty\fR T} T{ پروفایلی برای مجاز ساختن دسترسی TTY؛ توسط پروفایل‌های \fBoci\fR، \fBpaludis\fR و \fBuser\fR استفاده می‌شود.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBt\fR به این پروفایل اشاره کنید.\& T} T{ \fBchrome\fR T} T{ پروفایلی جهت کاهش محدودیت‌ها برای اجرای مرورگرهای خانواده کروم.\& T} T{ T} T{ جعبه‌شنی Syd با جعبه‌شنی کروم سازگار نیست، بنابراین باید از \fB\-\-no\-sandbox\fR استفاده شود.\& T} T{ \fBfirefox\fR T} T{ پروفایلی جهت کاهش محدودیت‌ها برای اجرای مرورگرهای خانواده فایرفاکس.\& T} T{ T} T{ می‌توانید برای کوتاه‌نویسی تنها با \fBff\fR به این پروفایل اشاره کنید.\& T} .TE .sp 1 .SS "پشته‌سازی پروفایل‌ها (Stacking Profiles)" .PP می‌توان چندین پروفایل را روی یکدیگر پشته‌سازی (ترکیب) کرد تا جعبه‌شنی محدودتری پیکربندی شود.\& به یاد داشته باشید که ترتیب پشته‌سازی پروفایل‌ها اهمیت دارد، \fIآخرین قانون منطبق برنده است (اولویت دارد)\fR.\& در ادامه چند مثال آورده شده است: .PP .PD 0 .IP \(bu 4 syd \-puser \-pimmutable \-mroot:/mnt/gnu .\&.\&.\& .IP \(bu 4 syd \-ppaludis \-plandlock \-mallow/lock/write+/var/tmp .\&.\&.\& .PD .PP همچنین می‌توان میانبرهای تک‌کاراکتریِ پروفایل‌های کمکی را به منظور ترکیب آن‌ها با یکدیگر ادغام نمود.\& در زیر چند مثال آورده شده است: .PP .PD 0 .IP \(bu 4 syd \-pMPX .\&.\&.\& # غیرفعال‌سازی محدودیت‌های MDWE، PIE و اجرا.\& .IP \(bu 4 syd \-puiq .\&.\&.\& # تجزیه پروفایل کاربر، ایجاد کانتینر تغییرناپذیر و بی‌صدا کردن نقض‌های دسترسی.\& .PD .PP .SS "پوسته ورود و پروفایل کاربر (Login shell and the User Profile)" .PP هنگامی که برنامه بدون آرگومان فراخوانی شود، \fIrbash\fR(1) تحت نظارت Syd با پروفایل \fBuser\fR به عنوان پوسته ورود (login shell) اجرا می‌گردد؛ از متغیر محیطی \fBSYD_SHELL\fR برای بازتعریف پوسته اجرایی استفاده کنید.\& .PP .SH "امنیت (SECURITY)" .PP از نسخه 3.\&30.\&0، اگر مسیر فایل پیکربندی مشخص‌شده در \fIهر یک\fR از اجزای مسیر خود دارای پیوند نمادین (symbolic link) باشد، Syd با خطا متوقف می‌شود.\& بنابراین، کاربر \fIباید\fR مسیرهای استانداردسازی‌شده (canonicalized) را به عنوان آرگومان‌های فایل پیکربندی ارائه دهد.\& از نسخه 3.\&46.\&0، وجود بخش والد (".\&.\&") در مسیر فایل پیکربندی مجاز نبوده و فایل‌های پیکربندی باید فایل‌های عادی (regular files) باشند.\& .PP از نسخه 3.\&56.\&0، Syd حل مسیر دستورالعمل \fBinclude\fR را با استفاده از فلگ‌های \fBRESOLVE_IN_ROOT\fR و \fBRESOLVE_NO_XDEV\fR از \fIopenat2\fR(2) به دایرکتوری حاوی فایل پیکربندی محدود می‌کند.\& این بدان معناست که فایل‌های گنجانده‌شده باید در همان دایرکتوری (یا زیرشاخه‌های آن) که فایل پیکربندی اصلی قرار دارد مستقر باشند، و مسیرهای مطلق در دستورالعمل‌های \fBinclude\fR به جای ریشه واقعی سیستم‌فایل، به عنوان مسیر نسبی نسبت به ریشه آن دایرکتوری تفسیر می‌شوند.\& پیوندهای نمادین، پیمایش مسیر از طریق ".\&.\&" و گنجاندن‌های بین‌دستگاهی (cross\-device) رد می‌شوند.\& این تدبیر مقاوم‌سازی از تزریق پیکربندی از دایرکتوری‌های خارج از درخت پیکربندی مورد اعتماد جلوگیری می‌کند.\& .PP .SH "محیط (ENVIRONMENT)" .PP برنامه Syd متغیرهای محیطی زیر را برای پیکربندی در دسترس قرار می‌دهد: .PP .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fBSYD_ID\fR T} T{ شناسه جعبه‌شنی که ۶۴ رقم هگزادسیمال است.\& T} T{ T} T{ این شناسه با استفاده از بایت‌های \fBAT_RANDOM\fR در هنگام راه‌اندازی Syd تولید می‌شود.\& T} T{ \fBSYD_UID\fR T} T{ شناسه واقعی کاربر (Real user identity) T} T{ \fBSYD_GID\fR T} T{ شناسه واقعی گروه (Real group identity) T} T{ \fBSYD_EUID\fR T} T{ شناسه موثر کاربر (Effective user identity) T} T{ \fBSYD_EGID\fR T} T{ شناسه موثر گروه (Effective group identity) T} T{ \fBSYD_USER\fR T} T{ نام کاربری، معادل با \fBUSER\fR است.\& T} T{ T} T{ هیچ جستجویی در \fIpasswd\fR(5) انجام نمی‌شود.\& T} T{ T} T{ اگر \fBUSER\fR در زمان راه‌اندازی تنظیم نشده باشد، روی \fInobody\fR تنظیم می‌گردد.\& T} T{ \fBSYD_HOME\fR T} T{ دایرکتوری خانگی، معادل با \fBHOME\fR است.\& T} T{ T} T{ هیچ جستجویی در \fIpasswd\fR(5) انجام نمی‌شود.\& T} T{ T} T{ اگر \fBHOME\fR در زمان راه‌اندازی تنظیم نشده باشد، روی \fI/var/empty\fR تنظیم می‌گردد.\& T} T{ \fBSYD_PWD\fR T} T{ دایرکتوری کاری جاری به‌صورت استانداردسازی‌شده (canonicalized).\& T} T{ T} T{ در صورت بروز خطا در \fIgetcwd\fR(2) و استانداردسازی مسیر، روی \fI/proc/self/fdinfo\fR تنظیم می‌شود.\& T} T{ \fBSYD_PAGE_SIZE\fR T} T{ اندازه صفحه حافظه سیستم (System page size) T} T{ T} T{ در صورت بروز خطا در \fIsysconf\fR(3)، روی ۴۰۹۶ تنظیم می‌گردد.\& T} T{ \fBSYD_PIPE_MAX\fR T} T{ حداکثر اندازه بافر pipe(2) در سیستم T} T{ T} T{ در صورت بروز خطا در خواندن از \fIproc\fR(5)، روی اندازه صفحه سیستم تنظیم می‌شود.\& T} T{ \fBSYD_XATTR_MAX\fR T} T{ حداکثر اندازه مقدار صفت گسترش‌یافته (extended attribute) T} T{ T} T{ روی حداکثر مقدار در سیستم برابر با ۶۵۵۳۶ بایت تنظیم می‌گردد.\& T} T{ \fBSYD_HAVE_FORCE\fR T} T{ اگر Syd با ویژگی \fBforce\fR در Cargo ساخته شده باشد روی ۱ و در غیر این صورت روی ۰ تنظیم می‌گردد.\& T} T{ \fBSYD_HAVE_SO_PASSRIGHTS\fR T} T{ در لینوکس 6.\&16 یا جدیدتر روی ۱ و در غیر این صورت روی ۰ تنظیم می‌گردد.\& T} .TE .sp 1 متغیرهای محیطی با پیشوند \fBSYD_\fR به فرایند جعبه‌شنی منتقل نمی‌شوند.\& از دستور \fIsetenv!\&\fR برای ارسال صریح آن‌ها استفاده کنید، برای نمونه: \fIsetenv!\&PWD=$SYD_PWD\fR.\& برای اطلاعات بیشتر به بخش \fBsetenv\fR در صفحه راهنمای \fIsyd\fR(2) مراجعه نمایید.\& .PP .SH "مثال (EXAMPLE)" .PP .nf .RS 4 # پروفایل Syd برای OpenNTPD # جعبه‌شنی Seccomp sandbox/read,stat,write,exec,net:on # قابلیت Landlock sandbox/lock:on # ایجاد ایزولاسیون با استفاده از فضاهای نام\&. unshare/mount,uts,pid,ipc,cgroup:1 # مجاز ساختن adjtimex و نگه‌داشتن CAP_SYS_TIME\&. trace/allow_unsafe_time:1 # متصل کردن همه بخش‌ها به‌صورت ro به جز /var bind+tmpfs:/dev/shm:nodev,nosuid,noexec bind+tmpfs:/tmp:nodev,nosuid bind+/etc:/etc:ro,nodev,noexec,nosuid,noatime bind+/home:/home:ro,nodev,noexec,nosuid,noatime bind+/media:/media:ro,nodev,noexec,nosuid,noatime bind+/mnt:/mnt:ro,nodev,noexec,nosuid,noatime bind+/opt:/opt:ro,nodev,nosuid,noatime bind+/srv:/srv:ro,nodev,noexec,nosuid,noatime bind+/usr:/usr:ro,nodev,noatime # پنهان‌سازی Syd deny/read,stat,write+/proc/1/*** # مجاز ساختن شنود روی پورت ntp در لوپ‌بک\&. allow/net/bind+loopback!123 # مجاز ساختن اتصالات به سرورهای NTP\&. allow/net/connect+any!53 allow/net/connect+any!123 allow/net/connect+any!65535 # مجاز ساختن ثبت وقایع در syslog\&. allow/net/connect+/dev/log # مجاز ساختن «listen wildcard» allow/net/bind+0\&.0\&.0\&.0!0 allow/net/connect+0\&.0\&.0\&.0!0 # مجاز ساختن شنود روی سوکت ntpd\&. allow/net/bind+/run/ntpd\&.sock allow/net/bind+/var/run/ntpd\&.sock allow/write+/run/ntpd\&.sock allow/write+/var/run/ntpd\&.sock # مجاز ساختن دسترسی به مسیرهای سیستم allow/read,stat+/dev/urandom allow/lock/read+/dev/urandom allow/read,stat+/etc/hosts allow/lock/read+/etc/hosts allow/read,stat+/etc/ntpd\&.conf allow/lock/read+/etc/ntpd\&.conf allow/read,stat+/etc/passwd allow/lock/read+/etc/passwd allow/read,stat+/etc/resolv\&.conf allow/lock/read+/etc/resolv\&.conf allow/read,stat+/etc/services allow/lock/read+/etc/services allow/read,stat+/usr/share/zoneinfo\-posix/UTC # chroot /var/empty && cd / allow/stat+/ allow/stat+/var/empty allow/write+/dev/null allow/lock/write+/dev/null # مجاز ساختن اجرای باینری ntp\&. allow/lock/read+/proc allow/lock/read+/usr allow/lock/write+/run allow/lock/write+/var/run allow/exec+/usr/**/bin/openntpd* # مجاز ساختن نوشتن فایل drift\&. allow/write+/var/db/ntpd\&.drift allow/lock/write+/var/db/ntpd\&.drift # قفل کردن پیکربندی lock:on .fi .RE .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fIsyd\fR(1)، \fIsyd\fR(2)، \fIsyd\fR(7) .PP صفحه اصلی \fBsyd\fR: https://sydbox.\&exherbo.\&org .PP .SH "نویسندگان (AUTHORS)" .PP نگهداری‌شده توسط Ali Polatel.\& سورس‌کدهای به‌روز را می‌توان در https://gitlab.\&exherbo.\&org/sydbox/sydbox.\&git و روی Radicle در rad:z38HCnbmcDegA2BMxuPaPRPMdp6wF یافت.\& گزارش خطاها و وصله‌ها را می‌توان به https://gitlab.\&exherbo.\&org/groups/sydbox/\-/issues ارسال نمود.\& برای بحث و گفتگو به کانال \fB#sydbox\fR در Libera Chat یا به \fB#sydbox:mailstation.\&de\fR در Matrix بپیوندید.\&