chroot

از ویکی‌پدیا، دانشنامهٔ آزاد

chroot یک دستور و همچنین یک فراخوان سیستمی در سیستم‌عاملهای شبه یونیکس است که طی آن دایرکتوری ریشه از دید یک فرایند در حال اجرا و همچنین تمام فرزندان آن تغییر می‌کند. chroot مخفف change root و به معنای تغییر دادن دایرکتوری ریشه است. وقتی که دایرکتوری ریشه از دید یک فرایند تغییر می‌کند، فرایند مورد نظر نمی‌تواند به فایل‌هایی که در خارج از آن دایرکتوری قرار دارند دسترسی داشته باشد. به عبارتی دیگر، فرایند مورد نظر در دایرکتوری ریشه جدید خود زندانی می‌شود و تمام مسیرهای نسبی، بر اساس دایرکتوری ریشه جدید ترجمه می‌شوند و مسیر / هم معادل دایرکتوری ریشه جدید خواهد بود. فراخوان سیستمی chroot()‎ اولین بار در حین توسعه نسخه ۷ یونیکس در سال ۱۹۷۹ معرفی شد. در ۱۸ مارس ۱۹۸۲ و ۱۷ ماه قبل از انتشار ۴٫۲بی‌اس‌دی، بیل جوی این فراخوان سیستمی را به منظور آزمایش کردن سیستم کامپایل و نصب، به این سیستم‌عامل اضافه کرد. از chroot می‌توان برای ایجاد و میزبانی کردن یک کپی مستقل و مجازی از سیستم استفاده کرد.

فراخوان سیستمی[ویرایش]

فراخوان سیستمی chroot()‎ در فایل unistd.h تعریف شده است و جزئی از استاندارد پازیکس محسوب می‌شود. این فراخوان به شکل زیر اعلان شده است:

int chroot(const char *dirname);

dirname آدرس یک دایرکتوری در سیستم را مشخص می‌کند. در صورتی که این فراخوان سیستمی به درستی اجرا شود، باعث می‌شود direname به عنوان دایرکتوری ریشه جدید در نظر گرفته شود. تنها کاربر ممتاز می‌تواند از این فراخوان سیستمی استفاده کند.

جستارهای وابسته[ویرایش]

منابع[ویرایش]