اگر خواسته باشیم قسمت های مختلف این مجموعه آموزشی را بشماریم، این قسمت ۷۰ام از مجموعه آموزشیِ مدیریت سرور لینوکس می باشد. با یکی دیگر از مباحث پایه ای لینوکس به نام Symlink در خدمت شما هستم که شاید عنوان آن را زیاد شنیده باشید اما ندانید که Symlink ها در لینوکس چه کار می کنند. پس با آموزشی سیملینک چیست هم همراه با وبنولوژی باشید.
تا اینجای کار ما بیشتر به مباحث پایه ای و پیش نیازها اشاره کردیم که شاید از خودتان بپرسید که پس کی به کارهای اساسیِ ساخت سرور وب لینوکس می رسد؟ قابل ذکر است که اگر بنده خواسته باشم مبحث راه اندازی یک سایت روی سرور لینوکس را به شما آموزش دهم، شاید در ۳ الی ۵ مقالۀ آموزشی این کار شدنی باشد. اما پس از آن اگر مشکلی برای سرور شما پیش آید، قادر به برطرف کردن آن مشکل نخواهید بود! چون مباحث اصلی و مهم لینوکس را یاد ندارید. البته مباحث پایه ای لینوکس بسیار زیاد می باشد. ولی سعی می کنم شما را با مهم ترین آنها آشنا کنم که یکی از آن Symlink است. پس همچنان با این مجموعۀ آموزشی همراه باشید تا به قسمت های شیرین تر برسید!
معادل Symlink در ویندوز
قبل از اینکه خواسته باشم وارد تعریف نظریِ سیملینک بشوم، بهتر است معادل Symlink در ویندوز را به شما معرفی کنم. چون بیشتر شماها ویندوز کار هستید، با این معادل سازی بقیۀ این آموزش را بهتر متوجه خواهید شد.
در ویندوز ما اصطلاحی داریم به نام ShortCut ؛ به معنای میانبر. اگر خواسته باشیم یک سند یا یک برنامه را از جای دیگری که بهتر به آنجا دسترسی داریم باز کنیم، می توانیم از میانبرها یا همان ShortCut ها استفاده کنیم. به عنوان مثال زمانی که یک نرم افزار را روی ویندوز نصب می کنید، معمولاً یک نماد از آن نرم افزار روی میز کار ویندوز (Desktop) نقش می بنند که با دو بار کلیک روی آن، برنامه اجرا می شود. اما این فقط یک میانبر به پروندۀ اصلی که در مسیر نصبیِ نرم افزار قرار گرفته است، می باشد.
دقیقاً ما یک همچنین چیزی هم در لینوکس داریم که به آن link گفته می شود. Link ها در لینوکس به دو دسته تقسیم می شوند که هر کدام دارای ویژگی هایی برای خود هستند:
- Soft Link یا Symbolic Link یا Symlink : پیوند نرم
- Hard Link : پیوند سخت
پس الان متوجه شدیم که Soft Link و Symbolic Link معادل هایی برای Symlink هستند. یعنی همۀ آنها یک معنا دارند.
اما اختلاف این دو نوع پیوند (Soft Link و Hard Link) یا همان میانبرها در چیست؟ در ادامه موضوع را به طور کامل برای شما باز خواهم کرد.
Soft Link ؛ پیوند نرم
پیوند نرم یا همان سیملینک نوعی اشاره به یک پروندۀ منبع است که در هر کجای سیستم فایل لینوکس می تواند قرار گیرد و به پروندۀ منبع اشاره کند. در اصل خود یک نوع پرونده است. زمانی که با استفاده از دستور ls فهرست محتویات موجود در یک مسیر را می گیرید، پیوندهای نرم کاملاً مشهود هستد و در ابتدای جواز دسترسی (Permission) آنها نویسۀ L درج شده است (به صورت کوچک).
Symlink ها یا همان پیوندهای نرم حاویِ محتویات پروندۀ منبع نیستند؛ فقط به آنها اشاره می کنند. یعنی اگر پروندۀ اصلی حذف شود، Symlink دیگر قابل استفاده نیست و با باز کردن آن خطا داده می شود. همین امر مهمترین اختلاف بین Soft Link ها و Hard Link ها را تشکیل می دهد.
چطور Symlink بسازیم؟
برای ساخت Symlink کافی است از دستور ln استفاده کنیم. طریقۀ استفاده از این دستور بسیار ساده و به طور زیر می باشد:
ln -s source_file myfile
مشخصۀ s نشان از سیمبلیک بودن این پیوند یا میانبر است. در صورتی که اگر از آن استفاده نکنید، یک پیوند سخت ایجاد می شود. source_file نام پرونده ای است که همینک وجود دارد و می توانید شامل مسیر کامل یا مطلق پروندۀ مبدا باشد. ما می خواهیم برای این پرونده یک میانبر در جایی دیگر بسازیم. myfile هم نام پروندۀ سیملینک می باشد که در اصل با باز کردن آن محتویات source_file نشان داده می شود. به همین راحتی می توانید برای هر پرونده ای که فکر می کنید باید در دسترس شخصِ شما یا یک برنامۀ خاص باشد Symlink یا پیوند نرم بسازید.
در پیوند نرم شما قادر به اشاره به پوشه هم هستید. این هم از دیگر اختلاف های مهم پیوند نرم با پیوند سخت می باشد. در صورتی که در پیوند سخت نمی توانید پوشه ها را Link کنید.
Hard Link ؛ پیوند سخت
برای ایجاد پیوند سخت کافی است از همان دستوری که در بالا به آن اشاره کردم استفاده کنید. با این تفاوت که از مشخصۀ s استفاده نکنید. یکی از محدودیت های دیگر پیوند سخت علاوه بر عدم توانایی ایجاد پیوند برای پوشه ها، عدم ایجاد پیوند در تمامیِ جاهای سیستم فایلِ لینوکس می باشد. پیوندهای سخت دقیقاً محتویات پروندۀ منبع را شامل می شوند. پس با حذف کردن پروندۀ منبع، پیوند هنوز کار می کند و شاید اصلاً به همین دلیل هم باشد که به آنها صفتِ سخت داده شده است.
ln source_file myfile
زمانی که با استفاده از دستور ls فهرست محتویات را می گیریم، نتیجه ای به مانند خطوط زیر نمایش داده می شود که اگر در بین آنها پیوندی هم باشد، در ابتدای جواز دسترسیِ آن l نوشته شده است:
total 152 ۱۰۴۸۶۰۲ lrwxrwxrwx 1 vivek vivek 11 2008-12-09 20:24 alink.conf -> resolv.conf ۱۰۴۸۶۰۱ -rwxr-xr-x 1 vivek vivek 129 2008-12-09 20:19 resolv.conf
در بالا پروندۀ alink.conf به عنوان یک پیوند به پروندۀ resolv.conf اشاره می کند. حالا می توانید resolv.conf را حذف کنید و ببینید که چه اتفاقی به سر alink.conf می افتد.
نکته: در دنیای هک و هکری نقش پیوندهای نرم یا همان Symlink ها در تامین ابزار برای هک کردن سیستم های لینوکسی مفهوم بسیار پرکاربردی است. الان باید بدانید که یک هکر چطور می تواند با استفاده از پیوندهای نرم به دیگر اسناد حساس موجود روی سیستم دسترسی پیدا کند. البته اگر موارد امنیتی به اندازۀ کافی روی سرور لینوکس اعمال نشده باشد.
امیدوارم که با این توضیحات هر چند ناقص توانسته باشید با مفاهیم Symlink یا سیملینک ها به طور شایسته آشنا شده باشید و آماده باشید برای دنبال کردن دیگر مقاله های آموزشیِ مدیریت و پیکربندی سرور لینوکس از وبنولوژی.
با سلام وخسته نباشید خدمت جناب مهندس
خواهشمندم که مباحث مربوط به کانفیگ سرور رو ادامه بدید
مطالبتون خیلی مفیده
در هیچ سایتی این قدر کامل توضیح داده نمیشه
با تشکر
سالار خدایی دمت گرم اصن حال کردم من تو کل زندگیم واسه هیچ مطلبی کامنت نذاشته بود اصن حال میکنم با سبک نوشتنت
خیلی روشن و واضح،البته فکرکنم میشد یک سری نکات ریز دیگه هم بهش اضافه کنید
به هرحال خیلی ممنون
نکات ریز که خیلی میشه بهش اضافه کرد. نه به این مقاله، بلکه به تمامی مقالات آموزشی سایت!
ولی باید طوری باشه که بشه جمعش کرد و برای خواننده هم قابل هضم باشه.
مرسییییییی