برخی دستورات ترمینال لینوکس بدون هشدار، سیستمعامل و اطلاعات را برای همیشه از بین میبرند؛ در این مطلب با ۷ مورد از خطرناکترین آنها آشنا شوید.
لینوکس یکی از منعطفترین سیستمعاملهای دنیا است، زیرا دقیقاً همان کاری را انجام میدهد که به آن میگویید؛ نه یک قدم بیشتر، نه یک قدم کمتر. همین ویژگی که لینوکس را برای برنامهنویسها و کاربران حرفهای جذاب کرده است، احتمالاً میتواند برای کاربران تازهکار به کابوس تبدیل شود. ترمینال لینوکس برخلاف ویندوز یا مک، سطل بازیافت ندارد و اکثر دستورات بدون هیچ هشداری اجرا میشوند. کافی است دستور اشتباهی را از سایت، انجمن گفتوگو یا حتی چتبات هوش مصنوعی کپی و در ترمینال اجرا کنید تا در چند ثانیه کل اطلاعات و سیستمعاملتان از بین برود.
در ادامه با ۷ دستور خطرناک لینوکس آشنا میشوید که هرگز نباید بدون آگاهی کامل اجرا کنید، و در پایان چند راهکار عملی برای جلوگیری از اجرای تصادفی چنین دستوراتی را بررسی میکنیم.
یکی از قدیمیترین شوخیهای اینترنتی این است که به کاربران تازهکار لینوکس گفته میشود برای حذف بستهی زبان فرانسه این دستور را اجرا کنند:
یا نسخهی مشابه آن:
این دستور هیچ ربطی به زبان فرانسه ندارد و در واقع تمام فایلهای سیستمعامل و هر درایوی که به آن متصل است را برای همیشه پاک میکند. بخش sudo دستور را با دسترسی مدیر سیستم اجرا و rm فایلها را بدون هیچ تأییدی حذف میکند، فلگهای f (اجباری) و r (بازگشتی) باعث میشوند حذف بهصورت بازگشتی از ریشهی سیستمفایل تا آخرین پوشه ادامه پیدا کند و /* هم به همهچیز داخل پوشهی ریشه اشاره دارد.
لینوکس بهطور پیشفرض نوعی مکانیزم امنیتی دارد که از حذف پوشهی روت جلوگیری میکند، اما فلگ no-preserve-root دقیقاً همین محافظ را دور میزند. جالب است بدانید حتی ابزار خلاصهساز هوش مصنوعی گوگل هم زمانی فریب این شوخی را خورد و آن را بهعنوان راهکار واقعی معرفی کرده بود.
دستور chmod برای تغییر سطح دسترسی فایلها و پوشهها در لینوکس استفاده میشود؛ اینکه یک فایل فقط خواندنی، قابل ویرایش یا قابل اجرا باشد. اما دستور زیر یک استثنا است:
دستور فوق بهصورت بازگشتی به همهی فایلها و پوشههای سیستم، از روت به بعد، دسترسی کامل خواندن، نوشتن و اجرا برای تمام کاربران و پردازشها میدهد.
نتیجهی فوری دستور کرش سیستم نیست، اما بسیاری از برنامههایی که به تنظیمات دسترسی مشخص وابستهاند از کار میافتند و امنیت سیستم کاملاً از بین میرود، چون هر برنامه یا کاربری میتواند فایلهای حساس مثل رمزهای عبور و فایلهای پیکربندی را ببیند و تغییر دهد. در بسیاری از موارد سیستم حتی دیگر بوت نمیشود و تنها راهحل، نصب دوبارهی سیستمعامل است.
لینوکس وظایف زمانبندیشده مثل پاکسازی فایلها، بهروزرسانیها و نگهداری سیستم را از طریق چیزی به نام Cron Job مدیریت میکند. دستور زیر کل این وظایف زمانبندیشده را از بین میبرد:
اجرای این دستور باعث میشود سرویسهایی که به اجرای خودکار و زمانبندیشده وابستهاند دیگر کار نکنند و بهخصوص در سرورها میتواند مشکلات جدی در نگهداری و امنیت سیستم ایجاد کند.
دستور بمب شاخهای در نگاه اول شبیه یک رشته ایموجی عجیب است، اما اجرای آن کامپیوتر را در چند ثانیه از کار میاندازد:
بخش (): یک تابع تعریف میکند، علامت | باعث میشود این تابع بهصورت بازگشتی خودش را صدا بزند و علامتهای & و ; هم هر بار یک نمونه جدید از این پردازش را در پسزمینه اجرا میکنند تا نتوان آن را بهسادگی متوقف کرد.
نتیجهی چرخهی کد فوق، تولید میلیونها پردازش در چند ثانیه است که تمام منابع پردازنده و رم سیستم را اشغال میکند. سیستم یا کاملاً فریز یا خاموش میشود و معمولاً تنها راه بازگشت، ریاستارت سختافزاری است.
دستور shred با کلمهی find شروع میشود و در نگاه اول شبیه جستوجوی ساده بهنظر میرسد، اما یکی از مخربترین دستورات لینوکس است:
بخش find / -type f تمام فایلهای سیستم را از روت پیدا میکند و دستور shred روی هرکدام اجرا میشود. ابزار shred در لینوکس فایل را با دادههای تصادفی رونویسی میکند تا حتی با نرمافزارهای بازیابی اطلاعات هم قابلبازگشت نباشد؛ فلگهای n 5-، z- و u- هم این فرایند رونویسی را چند بار تکرار کرده است و ردی از عملیات باقی نمیگذارند. برخلاف حذف سادهی فایل، اینجا حتی بازیابی اطلاعات هم عملاً غیرممکن خواهد بود.
ابزار dd در لینوکس معمولاً برای کلون کردن دیسک یا ساخت فلش بوتیبل استفاده میشود. برخلاف دستورات معمول که با سیستمفایل کار میکنند، dd بهطور مستقیم با درایوها تعامل برقرار میکند و هیچ محافظتی هم ندارد؛ بههمین دلیل بین کاربران لینوکس به «نابودگر دیسک» معروف است. برای مثال دستور زیر تمام اطلاعات یک درایو را برای همیشه از بین میبرد:
بسیاری از کاربران مسیر ورودی یا خروجی این دستور را اشتباه وارد میکنند و بدون قصد قبلی، دیسک اصلی سیستم خود را پاک میکنند.
لینوکس برای محافظت از فایلها و سختافزار در برابر خطاهای بحرانی، از مکانیزم ایمنی به نام Kernel Panic بهره میبرد که سیستم را فوراً خاموش میکند و شبیه صفحهی آبی مرگ یا BSOD در ویندوز است. دستور زیر میتواند این حالت را بهصورت دستی و آنی فعال کند:
دستور فوق با نوشتن حرف c در یک فایل حساس سیستمی، خطای غیرقابلبازگشتی ایجاد میکند که مستقیماً منجر به Kernel Panic و خاموشی سیستم میشود.
نکتهی مشترک دستورات مرگبار لینوکس این است که در نگاه اول بیخطر یا حتی بامزه بهنظر میرسند. برای اینکه گرفتار چنین اشتباهاتی نشوید:
خانواده ما
دیدگاهها