مقدمه
موارد زیادی وجود دارد که ممکن است بخواهید برنامه های خاص ، کاربر یا محیط هایی را در یک سیستم لینوکس ایزوله کنید. سیستم عامل های مختلف روش های مختلف دستیابی به این جداسازی را دارند و در لینوکس یک روش کلاسیک از طریق یک محیط chroot انجام می شود.
در این راهنما، ما در مورد چگونگی راه اندازی یک محیط ایزوله با استفاده از chroot به منظور ایجاد یک مانع بین سیستم عامل معمول و یک محیط موجود بحث خواهیم کرد. این کار عمدتاً برای اهداف آزمایشی مفید است. ما در مورد اینکه چه زمانی مایل به استفاده از این فناوری هستید، و چه زمانی بهتر است از راه حل دیگری استفاده کنید بحث خواهیم کرد. ما در مورد این مراحل به طور مثال در Ubuntu 12.04 x86_64 VPS بحث خواهیم کرد.
بیشتر مدیران سیستم از آگاهی در مورد نحوه اجرای یک محیط سریع و آسان chroot بهره مند می شوند و داشتن این مهارت ارزشمند است.
محیط Chroot چیست؟
محیط chroot یک فراخوانی سیستم عامل است که مکان روت را به طور موقت به یک پوشه جدید تغییر می دهد. به طور معمول ، مفهوم سیستم عامل دیرکتوری اصلی روت واقعی در “/” است. با این حال ، با chroot ، می توانید یک دیرکتوری راهنما دیگری را تعیین کنید تا به عنوان دیرکتوری سطح بالا برای مدت زمان یک chroot سرویس دهد.
هر برنامه ای که از داخل chroot اجرا شود ، نمی تواند بقیه سیستم عامل را بطور اصولی مشاهده کند. به طور مشابه ، یک کاربر غیر روت که محدود به محیط Chroot است ، قادر نخواهد بود بیشتر به سلسله مراتب دایرکتوری حرکت کند.
چه موقع از محیط Chroot استفاده کنیم؟
در شرایط متنوعی مفید است. به عنوان مثال ، به شما امکان می دهد نرم افزارهایی را در محیطی که از سیستم عامل عادی شما جدا است ، بسازید ، نصب و آزمایش کنید. همچنین می تواند به عنوان روشی برای اجرای برنامه های 32 بیتی در یک محیط 64 بیتی مورد استفاده قرار گیرد.
به طور کلی ، شما باید chroot را به عنوان راهی برای بازآفرینی موقت محیط سیستم عامل از زیر مجموعه سیستم فایل خود در نظر بگیرید. این به معنای تبدیل برنامه های معمولی شما به نسخه های آزمایشی میباشد، که به شما امکان می دهد تا ببینید که چگونه برنامه ها در یک محیط غیر آلوده رفتار می کنند و می تواند به شما در انجام عملیات ریکاوری ، راه اندازی مجدد سیستم یا ایجاد یک مانع اضافی در برابر حملات احتمالی کمک کند.
چه زمان از یک محیط Chroot استفاده نکنیم؟
محیط های chroot لینوکس نباید تنها به عنوان یک ویژگی امنیتی مورد استفاده قرار گیرند. در حالی که می توان از آنها به عنوان مانع استفاده کرد ، به اندازه کافی منزوی نیستند که به عنوان یک محافظ مطمئن عمل کنند تا یک حمله را از سیستم بزرگتر دور نگه دارد. این امر به دلیل شیوه اجرا شدن chroot و شیوه پردازش آن است و اشخاص ممکن است از محیط خارج شوند.
در حالی که مطمئناً محیط های chroot دردسر اضافی را برای کاربر بدون مزایا ایجاد می کنند ، باید به جای ویژگی امنیتی ، آنها را به عنوان ویژگی سخت افزاری در نظر بگیرید ، به این معنی که آنها سعی می کنند به جای ارائه یک راه حل کامل ، تعداد بردارهای حمله را کاهش دهند. اگر به ایزوله سازی کامل نیاز دارید ، یک راه حل کامل تر مانند کانتینرهای Linux ، Docker ، vservers و غیره را در نظر بگیرید.
تنظیم ابزارها
برای به دست آوردن بیشترین بهره وری از محیط chroot خود ، از برخی ابزارهایی استفاده خواهیم کرد که به نصب برخی از فایلهای توزیع اصلی در محیط جدید ما کمک خواهد کرد. این باعث می شود روند سریعتر انجام شود و اطمینان حاصل شود که library ها و بسته های اساسی ساده را در دسترس داریم.
از ابزاری به نام dchroot یا schroot برای مدیریت محیط های مختلف Chroot استفاده می شود. این ابزار می تواند برای اجرای آسان دستورات در یک محیط chroot مورد استفاده قرار گیرد. دستور dchroot یک فرمان جاافتاده است و در این مرحله در واقع به عنوان یک رپر سازگاری برای schroot ، نوع مدرن تر در اکثر سیستم ها اجرا می شود.
ابزار دیگر debootstrap نام دارد که یک سیستم عامل پایه را در زیر مجموعه سیستم دیگری ایجاد می کند. این امر به ما امکان می دهد تا سریعاً پیش برویم چرا که یک محیط Chroot به عملکرد و کتابخانه های خاصی در محیط احتیاج دارد تا بتواند عملکرد مناسبی داشته باشد.
بیایید اکنون این دو بسته را نصب کنیم. ما dchroot را نصب خواهیم کرد ، زیرا درواقع باعث توقفschroot می شود و انعطاف پذیری استفاده از آن را به ما می دهد:
sudo apt-get update
sudo apt-get install dchroot debootstrap

اکنون که ابزارهای مناسبی در اختیار داریم ، فقط کافی است دایرکتوری را مشخص کنیم که می خواهیم از آن به عنوان روت محیط استفاده کنیم. ما دایرکتوری به نام test در فهرست اصلی خود را ایجاد خواهیم کرد:
sudo mkdir /test

همانطور که قبلاً بیان کردیم ، فرمان dchroot در سیستم های مدرن در واقع به عنوان یک رپر در اطراف فرمان توانمندتر schroot اجرا می شود. به همین دلیل ، فایل پیکربندی schroot را با اطلاعات خود اصلاح خواهیم کرد.
بیایید اکنون فایل را با امتیازات ادمین باز کنیم:
sudo nano /etc/schroot/schroot.conf

در داخل ، ما باید گزینه های پیکربندی ایجاد کنیم که با سیستمی که می خواهیم ایجاد کنیم مطابقت داشته باشد. برای یک سیستم اوبونتو ، ما می خواهیم نسخه و موارد دیگر را مشخص کنیم. مقادیر خوش تفسیری برای سیستم های دبیان وجود دارد که ایده خوبی در اختیار شما قرار میدهد.
ما در حال حاضر در سیستم اوبونتو 12.04 هستیم ، اما بیایید بگوییم که می خواهیم برخی از بسته های موجود در اوبونتو 13.10 را با کد “Saucy Salamander” آزمایش کنیم. ما می توانیم این کار را با ایجاد ورودی شبیه زیر انجام دهیم:
[saucy]
description=Ubuntu Saucy
location=/test
priority=3
users=demouser
groups=sbuild
root-groups=root

فایل را ذخیره کنید و ببندید.
جمع کردن محیط Chroot با یک سیستم عامل اسکلتی
اکنون ، تمام کاری که باید برای نصب سیستمی تحت هدف chroot انجام دهیم تایپ این دستور است:
sudo debootstrap –variant=buildd –arch amd64 saucy /test/ http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/

در دستور فوق ، فلگ –variant نوع chroot را که می خواهید بسازید مشخص می کند. گزینه buildd مشخص می کند که باید ابزارهای ساخت داخل بسته build-essential را نیز نصب کنید تا امکان استفاده از خارج از جعبه برای ایجاد نرم افزار فراهم شود. با تایپ کردن دستور زیر می توانید گزینه های بیشتری را بیابید:
man debootstrap

توضیحات –variant را جستجو کنید.
–arch معماری سیستم مشتری را مشخص می کند. اگر معماری متفاوت با معماری والدین باشد ، باید از فلگ –foreign نیز عبور کنید! پس از آن ، برای تکمیل نصب ، باید بار دیگر با فرمان debootstrap تماس بگیرید ، با استفاده از دستوری مانند:
sudo chroot /test /debootstrap/debootstrap –second-stage

این کار نصب واقعی را انجام می دهد ، در حالی که اولین دستور فقط در صورت وجود اختلافات معماری ، بسته ها را دانلود می کند. اگر معماری ها مطابقت ندارند ، فلگ –foreign را برای debootstrap  اولیه فراموش نکنید.
saucy  موجود در دستور باید با عنوانی که برای پیکربندی خود در پرونده schroot.conf انتخاب کرده اید مطابقت داشته باشد. / test / هدف را مشخص می کند ، و URL آدرس اینترنتی منشا است که حاوی فایل های مورد نظر شماست. اینها معمولاً همان فرمتی است که در فایل /etc/apt/source.list خود پیدا خواهید کرد.
پس از اتمام این کار ، می توانید تمام فایل هایی که دانلود و نصب شده را با چک کردن دایرکتوری هدف مشاهده کنید:
ls /test
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

همانطور که مشاهده می کنید ، این دقیقاً شبیه به یک سیستم فایل معمولی است. اخیرا در یک دیرکتوری غیر معمول ایجاد شده است.

پیکربندی نهایی و گذار به محیط جدید
پس از نصب سیستم ، برای اطمینان از عملکرد صحیح سیستم ، باید تنظیمات نهایی را انجام دهیم.
ابتدا بهتر است مطمئن شویم که fstab هاست ما از برخی شبه سیستم ها در guest ما آگاه است. خط هایی مانند اینها را در قسمت پایین fstab خود اضافه کنید:
sudo nano /etc/fstab
proc /test/proc proc defaults 0 0
sysfs /test/sys sysfs defaults 0 0

ذخیره کنید و فایل را ببندید.
اکنون ، نیاز داریم که این سیستم فایلها را در guest خود سوار کنیم:
sudo mount proc /test/proc -t proc
sudo mount sysfs /test/sys -t sysfs

ما همچنین می خواهیم فایل / etc / hosts را کپی کنیم تا به اطلاعات صحیح شبکه دسترسی داشته باشیم:
cp / etc / host / test / etc / host
سرانجام ، ما می توانیم از طریق دستوری مانند این وارد محیط chroot شویم:
sudo chroot /test/ /bin/bash

شما را به محیط جدید chroot خود می برد. می توانید این کار را با رفتن به فهرست root و سپس تایپ کردن این دستور تست کنید:
cd /
ls -di

اگر به هر شماره ای به جز 2 برخوردید ، در یک محیط chroot قرار دارید. از درون این محیط ، می توانید نرم افزاری را نصب کنید ، و بسیاری از کارها را انجام دهید بدون اینکه روی سیستم عامل هاست تأثیر بگذارد (علاوه بر گرفتن منابع)
خروج از یک Chroot
برای خارج شدن از یک محیط Chroot ، کافی است برخی از مراحل را که قبلاً پیکربندی کرده اید معکوس کنید.
اول از همه ، شما مانند هر محیط shell دیگر ، به عنوان روت از محیط chroot خارج می شوید:
exit

پس از آن ، باید سیستم فایل های proc و sys خود را از هم جدا کنیم:
sudo umount /test/proc
sudo umount /test/sys

اگر قصد ندارید مرتباً از این مورد استفاده کنید ، می توانید خطوط اضافی را از فایل / etc / fstab حذف کنید.
اگر هیچ کاری با این محیط ندارید ، با آسودگی خاطر دیرکتوری را که همه چیز در آن ذخیره شده است حذف کنید:
rm -rf /test/

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

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18.04

نحوه بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04

چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظیم كرد (شروع سریع)

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی خود استفاده کرد

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو 18.4 تنظیم کرد

نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی

برچسب‌ها: