.\" 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\-PTY" "1" "2026\-09\-01" .PP .SH "نام (NAME)" .PP \fBsyd\-pty\fR \- فورواردر دوطرفه از PTY به STDIO .PP .SH "شرح مختصر (SYNOPSIS)" .PP \fBsyd\-pty\fR \fI[\-dh]\fR \fI\-i \fR \fI[\-x ]\fR \fI[\-y ]\fR .PP .SH "توضیحات (DESCRIPTION)" .PP داده‌ها را بین توصیف‌گر فایل اصلی \fIpty\fR(7) و \fIstdio\fR(3) فوروارد می‌کند.\& .PP .SH "گزینه‌ها (OPTIONS)" .PP .TS l lx l lx l lx l lx l lx l lx. T{ \fB\-h\fR T} T{ نمایش راهنما.\& T} T{ \fB\-d\fR T} T{ اجرا در حالت اشکال‌زدایی (debug) بدون محدودسازی (confinement).\& T} T{ T} T{ این حالت تنها در صورتی مجاز است که Syd با ویژگی بار Cargo به نام \fBtrusted\fR ساخته شده باشد.\& T} T{ \fB\-i\fR \fBpty\-fd\fR T} T{ توصیف‌گر فایل اصلی PTY.\& T} T{ \fB\-x\fR \fBx\-size\fR T} T{ مشخص کردن اندازه سطر پنجره (پیش‌فرض: به ارث‌رسیده).\& T} T{ \fB\-y\fR \fBy\-size\fR T} T{ مشخص کردن اندازه ستون پنجره (پیش‌فرض: به ارث‌رسیده).\& T} .TE .sp 1 .SH "کاربرد (USAGE)" .PP ابزار \fIsyd\-pty\fR(1) قرار نیست به عنوان یک ابزار مستقل استفاده شود.\& برنامه Syd در زمان راه‌اندازی هنگامی که سندباکس PTY با \fBsandbox/pty:on\fR فعال باشد، \fIsyd\-pty\fR(1) را فراخوانی می‌کند.\& برای اطلاعات بیشتر بخش PTY SANDBOXING را در صفحه راهنمای \fIsyd\fR(7) ببینید.\& اگر می‌خواهید از \fIsyd\-pty\fR(1) در پروژه خود استفاده کنید، یک پایانه کاذب جدید با \fIposix_openpt\fR(3) یا \fIopenpty\fR(3) ایجاد کنید و انتهای اصلی جفت توصیف‌گر فایل را با آرگومان \fB\-i \fR به \fIsyd\-pty\fR(1) پاس دهید.\& برنامه \fIsyd\-pty\fR(1) پایانه را در حالت خام (raw) قرار می‌دهد و هیچ تلاشی برای ذخیره یا بازنشانی تنظیمات اولیه پایانه نمی‌کند که این کار مسئولیت فراخوان‌کننده است.\& .PP .SH "پیاده‌سازی (IMPLEMENTATION)" .PP برنامه \fIsyd\-pty\fR(1) برای کارایی، امنیت و حریم خصوصی طراحی شده است و از مکانیزم \fIepoll\fR(7) حساس به لبه (edge-triggered) برای اعلان رویدادها و عملیات کاملاً ناهمگام جهت مدیریت فعالیت‌های پایانه کاذب بدون مسدودسازی استفاده می‌کند.\& داده‌ها را با انتقال بدون کپی \fIsplice\fR(2) جابه‌جا می‌کند و بایت‌ها را مستقیماً بین توصیف‌گرهای فایل درون هسته انتقال می‌دهد بدون اینکه متن آشکار در فضای کاربر افشا شود.\& دو جفت لوله (pipe) ترافیک دوطرفه بین \fIpty\fR(7) و \fIstdio\fR(3) را حمل می‌کنند.\& محیط اجرا با \fIseccomp\fR(2) و \fIlandlock\fR(7) محدود شده است تا فراخوان‌های سیستمی و دسترسی به فایل را به حداقل لازم محدود کند.\& .PP .SH "امنیت (SECURITY)" .PP برنامه \fIsyd\-pty\fR(1) چندین لایه محدودسازی را برای کاهش خطرات مرتبط با اجرا در خارج از سندباکس Syd اعمال می‌کند تا از حملات احتمالی مرد میانی (MITM) علیه کانتینرها جلوگیری کند.\& قابلیت‌های لینوکس \fIcapabilities\fR(7) در مراحل اولیه رها می‌شوند و مشخصه no-new-privs تنظیم می‌شود تا هیچ قابلیت ناخواسته‌ای به فرایند نشت نکند.\& پرچم \fBTOSTOP\fR برای پایانه‌ای که \fIsyd\-pty\fR(1) از آن می‌خواند تنظیم می‌شود تا فرایندهای پس‌زمینه نتوانند در آن بنویسند.\& محدودیت‌های منابع \fBRLIMIT_CORE\fR، \fBRLIMIT_FSIZE\fR، \fBRLIMIT_NOFILE\fR، \fBRLIMIT_NPROC\fR، \fBRLIMIT_LOCKS\fR، \fBRLIMIT_MEMLOCK\fR و \fBRLIMIT_MSGQUEUE\fR روی صفر تنظیم می‌شوند تا از ایجاد core dump و ساخت فایل/توصیف‌گر فایل/فرایند/صف پیام درون حلقه اصلی جلوگیری شود.\& فیلترهای \fIseccomp\fR(2) به گونه‌ای پیکربندی شده‌اند که تنها فراخوان‌های سیستمی مورد نیاز مجاز باشند.\& این فهرست فراخوان‌های مربوط به حافظه، فایل سیستم و شبکه را حذف می‌کند.\& \fIlandlock\fR(7) و \fInamespaces\fR(7) در صورت در دسترس بودن، محدودیت‌های بیشتری را با ممنوع کردن کلیه دسترسی‌های فایل‌سیستمی و شبکه اعمال می‌کنند و لایه امنیتی مضاعفی فراهم می‌سازند.\& دایرکتوری ریشه با \fIpivot_root\fR(2) به \fI/proc/self/fdinfo\fR منتقل می‌شود و ریشه قدیمی با \fBMNT_DETACH\fR جدا می‌شود، بنابراین هیچ مسیری به فایل‌سیستم میزبان در فضای نام mount باقی نمی‌ماند.\& ترکیب این تکنیک‌ها تضمین می‌کند که حتی در صورت نفوذ به \fIsyd\-pty\fR(1)، دامنه اقدامات مخرب به طور قابل توجهی محدود بوده و یکپارچگی و امنیت سیستم حفظ شود.\& .PP .SH "متغیرهای محیطی (ENVIRONMENT)" .PP .TS l lx l lx. T{ \fBSYD_PTY_DEBUG\fR T} T{ اجرا در حالت اشکال‌زدایی بدون محدودسازی، معادل با گزینه \fB\-d\fR.\& T} T{ T} T{ این متغیر نادیده گرفته می‌شود مگر اینکه Syd با ویژگی Cargo به نام \fBtrusted\fR کامپایل شده باشد.\& T} .TE .sp 1 .SH "اشکالات (BUGS)" .PP پشتیبانی از \fIsplice\fR(2) برای ttyها در کامیت 36e2c7421f02a22f71c9283e55fdb672a9eb58e7 (ادغام‌شده برای لینوکس 6.5) حذف شد و بعداً در کامیت 9bb48c82aced07698a2d08ee0f1475a6c4f6b266 (ادغام‌شده برای لینوکس 6.6) بازگردانی شد.\& هنگام اجرا تحت یک هسته لینوکس مشکل‌دار، \fIsyd\-pty\fR(1) با کد 22 معروف به \fBEINVAL\fR یا \fBInvalid argument\fR خارج می‌شود.\& برای اطلاعات بیشتر پیوندهای زیر را ببینید: .PP .PD 0 .IP \(bu 4 https://git.\&kernel.\&org/linus/36e2c7421f02a22f71c9283e55fdb672a9eb58e7 .IP \(bu 4 https://git.\&kernel.\&org/linus/9bb48c82aced07698a2d08ee0f1475a6c4f6b266 .PD .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fIsyd\fR(1), \fIsyd\fR(2), \fIsyd\fR(7), \fIstdio\fR(3), \fIpty\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 ارسال کرد.\& گفتگو در #sydbox در Libera Chat یا در #sydbox:mailstation.\&de در Matrix.\&