Symbolic Link و Hark Link در سیستم عامل

سیمبولینک و هارد لینک

اشتراک گذاری پست

با یکی دیگر از مباحث پایه ای لینوکس به نام Symlink در خدمت شما هستم که شاید عنوان آن را زیاد شنیده باشید اما ندانید که Symlink ها در لینوکس چه کار می کنند. پس با آموزشی سیملینک چیست هم همراه با ما باشید.

معادل Symlink در ویندوز

قبل از اینکه خواسته باشم وارد تعریف نظریِ سیملینک بشوم، بهتر است معادل Symlink در ویندوز را به شما معرفی کنم. چون بیشتر شماها ویندوز کار هستید، با این معادل سازی بقیۀ این آموزش را بهتر متوجه خواهید شد.

در ویندوز ما اصطلاحی داریم به نام ShortCut ؛ به معنای میانبر. اگر خواسته باشیم یک سند یا یک برنامه را از جای دیگری که بهتر به آنجا دسترسی داریم باز کنیم، می توانیم از میانبرها یا همان ShortCut ها استفاده کنیم. به عنوان مثال زمانی که یک نرم افزار را روی ویندوز نصب می کنید، معمولاً یک نماد از آن نرم افزار روی میز کار ویندوز (Desktop) نقش می بنند که با دو بار کلیک روی آن، برنامه اجرا می شود. اما این فقط یک میانبر به پروندۀ اصلی که در مسیر نصبیِ نرم افزار قرار گرفته است، می باشد.

دقیقاً ما یک همچنین چیزی هم در لینوکس داریم که به آن link گفته می شود. Link ها در لینوکس به دو دسته تقسیم می شوند که هر کدام دارای ویژگی هایی برای خود هستند:

  1. Soft Link یا Symbolic Link یا Symlink : پیوند نرم
  2. Hard Link : پیوند سخت

پس الان متوجه شدیم که Soft Link و Symbolic Link معادل هایی برای Symlink هستند. یعنی همۀ آنها یک معنا دارند.

اما اختلاف این دو نوع پیوند (Soft Link و Hard Link) یا همان میانبرها در چیست؟ در ادامه موضوع را به طور کامل برای شما باز خواهم کرد.

بیشتر بخوانید: سرویس مانیتورینگ ZABBIX

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 کنید.

بیشتر بخوانید: دستور screen در لینوکس

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 ها در تامین ابزار برای هک کردن سیستم های لینوکسی مفهوم بسیار پرکاربردی است. الان باید بدانید که یک هکر چطور می تواند با استفاده از پیوندهای نرم به دیگر اسناد حساس موجود روی سیستم دسترسی پیدا کند. البته اگر موارد امنیتی به اندازۀ کافی روی سرور لینوکس اعمال نشده باشد.

تفاوت هارد لینک و سافت لینک به صورت جامع:

زمانیکه شما یک Shortcut یا Link در لینوکس بصورت Hard Link ایجاد می کنید ، این Shortcut شما به Inode فایل مورد نظر اشاره می کند و این یعنی اگر فایل شما جابجا شود و یا تغییر نام بدهد اصلا مهم نیست و Link شما همیشه درست کار می کند زیرا اصلا ارتباطی به اسم فایل شما ندارد و به inode متصل شده است . از ویژگی های Hard Link می توان به این اشاره کرد که شما هر تغییری که بر روی Hard Link یا فایل اصلی انجام بدهید بر روی هر دو اعمال می شود ، اگر شما اسم فایل اصلی را تغییر بدهید Hard Link شما با توجه به اینکه به ماهیت Inode اشاره می کند تغییر نخواهد کرد. اما از معایب استفاده از Hard Link این است که نمی توان از آن در بین چند فایل سیستم یا پارتیشن استفاده کرد ، با توجه به اینکه در هر فایل سیستم ساختار inode ها متفاوت است و شماره گذاری ها نیز تفاوت دارد Hard Link ها فقط در یک فایل سیستم قابل پیاده سازی هستند.

از لحاظ فنی inode ابرداده ای است که در فایل های سیستمی یونیکس ذخیره می شود (سرورهای لینوکس و رایانه های اپل مبتی بر یونیکس). Inode ها مقادیری هستند که به صورت جدولی ذخیره شده و با دایرکتوری ها و فایل های سیستمی مرتبط هستند. Inode ها حاوی اطلاعات متعددی هستند. این ابرداده شامل:
اندازه فایل (به صورت بایت)
مکان فیزیکی Inode (یعنی آدرس بلوک های ذخیره سازی حاوی داده های پرونده بر روی هارد)
مالک و گروه فایل
مجوزهای دسترسی پرونده (به عنوان مثال کدام کاربر مجاز به خواندن، نوشتن و  یا اجرای فایل است)
برچسب های زمانی که شامل زمان ایجاد شدن اینود، آخرین اصلاحات اعمال شده و آخرین دسترسی ها هستند.

تعداد لینک هایی که به به inode اشاره دارند.

اما Soft Link ها که آنها را به عنوان Symbolic Link هم می شناسیم چیزی مشابه یا تقریبا همان مفهوم shortcut را در ویندوز برای ما تداعی می کنند ، شما آدرس یک فایل را دارید و به سیستم Soft Link با مسیر کوچکتر و دسترسی راحت تر معرفی می کنید ، ساختار Soft Link ها بسیار انعطاف پذیر است و شما از هر جایی می توانید به جای دیگر Soft Link بزنید و هیچگونه مشکلی در خصوص محل و فایل سیستم در Soft Link ها وجود ندارد ، اما معایبی هم در این نوع Link وجود دارد ، زمانیکه شما اسم فایل اصلی را تغییر بدهید Soft Link شما خراب یا در اصطلاح Broke می شود و دیگر نمی توانید از آن استفاده کنید زیرا ماهیت اصلی آن اتصال به اسم فایل است نه inode فایل ، برای اینکه بتوانید راحت تر از برخی از فایل ها استفاده کنید شما می توانید برای آنها با استفاده از Soft Link ها اسم مستعار هم بسازید ، برای مثال در سیستم عامل های خانواده RedHat ممکن است شما فایل grub.cfg را نداشته باشید و به جایش فایل دیگری جایگزین شده باشد ، شما می توانید فایل جدید را به اسم grub.cfg در دایرکتوری مورد نظر خودتان link کنید و برای خودتان یک میانبر از فایل جدید ایجاد کنید. معمولا در سرویس های پر کاربرد ما از Link ها در پروفایل های کاربری خودمان برای دسترسی سریعتر به فایل ها استفاده می کنیم. به تصویر بالا دقت کنید تفاوت این دو نوع Link نمایش داده شده است.

امیدوارم که با این توضیحات هر چند ناقص توانسته باشید با مفاهیم Symlink یا سیملینک ها به طور شایسته آشنا شده باشید و از شما کاربران عزیز انتظار داریم سوالات و نکات خود را در زیر همین پست کامنت بگذارید.

مقالات مرتبط را مطالعه کنید😍

حواله یوان
حواله یوان
شاید وقتی صحبت از نقل‌وانتقالات ارزی مانند ارسال حواله یوان به چین باشد، خیلی‌ها این کار را دشوار و طاقت‌فرسا و پرریسک بدانند. در واقع
حواله روپیه
حواله روپیه به هند ارسال و دریافت حواله روپیه به هند با کمترین نرخ ارسال و دریافت حواله روپیه در کمترین زمان ممکن امکان ارسال
حواله ایران به رومانی
حواله ایران به رومانی شرکت فناوران امید استعلام نرخ ساعت 12 ظهر برای آگاهی از نرخ با پشتیبانی ما در ارتباط باشید:پشتیبان تلگرام @fanavaraneomid_supportپشتیبانی واتساپ:
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x
اسکرول به بالا