SYD-PTY(1) General Commands Manual SYD-PTY(1)

syd-pty - فورواردر دوطرفه از PTY به STDIO

syd-pty [-dh] -i <pty-fd> [-x <x-size>] [-y <y-size>]

داده‌ها را بین توصیف‌گر فایل اصلی pty(7) و stdio(3) فوروارد می‌کند.

-h نمایش راهنما.
-d اجرا در حالت اشکال‌زدایی (debug) بدون محدودسازی (confinement).
این حالت تنها در صورتی مجاز است که Syd با ویژگی بار Cargo به نام trusted ساخته شده باشد.
-i pty-fd توصیف‌گر فایل اصلی PTY.
-x x-size مشخص کردن اندازه سطر پنجره (پیش‌فرض: به ارث‌رسیده).
-y y-size مشخص کردن اندازه ستون پنجره (پیش‌فرض: به ارث‌رسیده).

ابزار syd-pty(1) قرار نیست به عنوان یک ابزار مستقل استفاده شود. برنامه Syd در زمان راه‌اندازی هنگامی که سندباکس PTY با sandbox/pty:on فعال باشد، syd-pty(1) را فراخوانی می‌کند. برای اطلاعات بیشتر بخش PTY SANDBOXING را در صفحه راهنمای syd(7) ببینید. اگر می‌خواهید از syd-pty(1) در پروژه خود استفاده کنید، یک پایانه کاذب جدید با posix_openpt(3) یا openpty(3) ایجاد کنید و انتهای اصلی جفت توصیف‌گر فایل را با آرگومان -i <pty-fd> به syd-pty(1) پاس دهید. برنامه syd-pty(1) پایانه را در حالت خام (raw) قرار می‌دهد و هیچ تلاشی برای ذخیره یا بازنشانی تنظیمات اولیه پایانه نمی‌کند که این کار مسئولیت فراخوان‌کننده است.

برنامه syd-pty(1) برای کارایی، امنیت و حریم خصوصی طراحی شده است و از مکانیزم epoll(7) حساس به لبه (edge-triggered) برای اعلان رویدادها و عملیات کاملاً ناهمگام جهت مدیریت فعالیت‌های پایانه کاذب بدون مسدودسازی استفاده می‌کند. داده‌ها را با انتقال بدون کپی splice(2) جابه‌جا می‌کند و بایت‌ها را مستقیماً بین توصیف‌گرهای فایل درون هسته انتقال می‌دهد بدون اینکه متن آشکار در فضای کاربر افشا شود. دو جفت لوله (pipe) ترافیک دوطرفه بین pty(7) و stdio(3) را حمل می‌کنند. محیط اجرا با seccomp(2) و landlock(7) محدود شده است تا فراخوان‌های سیستمی و دسترسی به فایل را به حداقل لازم محدود کند.

برنامه syd-pty(1) چندین لایه محدودسازی را برای کاهش خطرات مرتبط با اجرا در خارج از سندباکس Syd اعمال می‌کند تا از حملات احتمالی مرد میانی (MITM) علیه کانتینرها جلوگیری کند. قابلیت‌های لینوکس capabilities(7) در مراحل اولیه رها می‌شوند و مشخصه no-new-privs تنظیم می‌شود تا هیچ قابلیت ناخواسته‌ای به فرایند نشت نکند. پرچم TOSTOP برای پایانه‌ای که syd-pty(1) از آن می‌خواند تنظیم می‌شود تا فرایندهای پس‌زمینه نتوانند در آن بنویسند. محدودیت‌های منابع RLIMIT_CORE، RLIMIT_FSIZE، RLIMIT_NOFILE، RLIMIT_NPROC، RLIMIT_LOCKS، RLIMIT_MEMLOCK و RLIMIT_MSGQUEUE روی صفر تنظیم می‌شوند تا از ایجاد core dump و ساخت فایل/توصیف‌گر فایل/فرایند/صف پیام درون حلقه اصلی جلوگیری شود. فیلترهای seccomp(2) به گونه‌ای پیکربندی شده‌اند که تنها فراخوان‌های سیستمی مورد نیاز مجاز باشند. این فهرست فراخوان‌های مربوط به حافظه، فایل سیستم و شبکه را حذف می‌کند. landlock(7) و namespaces(7) در صورت در دسترس بودن، محدودیت‌های بیشتری را با ممنوع کردن کلیه دسترسی‌های فایل‌سیستمی و شبکه اعمال می‌کنند و لایه امنیتی مضاعفی فراهم می‌سازند. دایرکتوری ریشه با pivot_root(2) به /proc/self/fdinfo منتقل می‌شود و ریشه قدیمی با MNT_DETACH جدا می‌شود، بنابراین هیچ مسیری به فایل‌سیستم میزبان در فضای نام mount باقی نمی‌ماند. ترکیب این تکنیک‌ها تضمین می‌کند که حتی در صورت نفوذ به syd-pty(1)، دامنه اقدامات مخرب به طور قابل توجهی محدود بوده و یکپارچگی و امنیت سیستم حفظ شود.

SYD_PTY_DEBUG اجرا در حالت اشکال‌زدایی بدون محدودسازی، معادل با گزینه -d.
این متغیر نادیده گرفته می‌شود مگر اینکه Syd با ویژگی Cargo به نام trusted کامپایل شده باشد.

پشتیبانی از splice(2) برای ttyها در کامیت 36e2c7421f02a22f71c9283e55fdb672a9eb58e7 (ادغام‌شده برای لینوکس 6.5) حذف شد و بعداً در کامیت 9bb48c82aced07698a2d08ee0f1475a6c4f6b266 (ادغام‌شده برای لینوکس 6.6) بازگردانی شد. هنگام اجرا تحت یک هسته لینوکس مشکل‌دار، syd-pty(1) با کد 22 معروف به EINVAL یا Invalid argument خارج می‌شود. برای اطلاعات بیشتر پیوندهای زیر را ببینید:

syd(1), syd(2), syd(7), stdio(3), pty(7)

صفحه خانگی syd: https://sydbox.exherbo.org/

نگه‌داری شده توسط 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.

2026-09-01