اخطار: دستورهای زیر را در خط فرمان سیستمعامل خود وارد نکنید!
توزیعهای سیستمعامل لینوکس دست کاربر را در اجرای هر نوع فرمانی آزاد میگذارند. چنانچه شما کاربر root بوده و اطلاعات کافی از عملکرد دستورها نداشته باشید، میتوانید با اجرای بعضی دستورها سیستم عامل خود را نابود کنید! در زیر چند نمونه از دستور خط فرمان خطرناک(!) را معرفی میکنیم.
۱- rm:
rm -rf / cd /; rm -rf . rm -rf *
1
2
3rm -rf /
cd /; rm -rf .
rm -rf *
دستور بالا فایلها و دایرکتوریهای / را بدون اخطار پاک میکند. بعد از اجرای این دستور سیستمعامل به همراه کلیه فایلها و دایرکتوریهای درایوهای مونت شده پاک میشود.
نکته: بهتر است هیچگاه دستور rm را با پارامتر r استفاده نکنیم.
۲- chmod:
chmod 000 -Rf / cd /; chmod 000 -Rf
1
2chmod 000 -Rf /
cd /; chmod 000 -Rf
این دستور مجوز همه فایلها و دایرکتوریهای / را به ۰ تغییر میدهد! در نتیجه بعد از اجرای این دستور هیچ دستوری قابل اجرا نخواهد بود (حتی chmod) و امکان بازگردانی مجوز به حالت پیش فرض ممکن نیست.
۳- Fork Bomb:
: () { :|: & };:
1 : () { :|: & };:
این اسکریپت به ظاهر عجیب یک دستور بازگشتی است که بعد از اجرا RAM و CPU سیستم شما را درگیر میکند. تنها راه نجات سیستم شما از این دستور ریبوت سختافزاری است!
این دستور چگونه کار میکند: در این اسکریپت ابتدا یک تابع به نام : تعریف میکنیم.
: () { }
1
2
3: () {
}
سپس درون این تابع، خود تابع را فراخوانی میکنم و خروجی تابع را به تابع ارسال میکنیم!
: | :
1 : | :
در انتها بعد از تعرییف تابع، تابع را اجرا میکنیم.
: ;
1 : ;
۴- ارسال خروجی دستورات به هارد:
ارسال خروجی هر دستوری به هارد دیسک و یا پارتیشن خطرناک است و باعث پاک شدن اطلاعات روی هارد خواهد شد. در ادامه چند دستور از این دسته را مشاهده خواهیم کرد:
cat file.txt > /dev/sda wget http://iranserver.com > /dev/sda ls -la / > /dev/sda
1
2
3cat file.txt > /dev/sda
wget http://iranserver.com > /dev/sda
ls -la / > /dev/sda
نکته: عموما آدرسدهی اشتباه فایل log و یا استفاده از space در نام فایل log باعث بروز خطا میشود. این مثال را ببینید:
find / -iname "*.php" > /dev/sda1/ log.txt
1 find / -iname "*.php" > /dev/sda1/ log.txt
در مثال بالا دستور find پس از اجرا خروجی خود را به جای فایل /dev/sda1/log.txt به دلیل وجود space به اشتباه در /dev/sda1 دخیره میکند. در نتیجه اطلاعات درایو sda1 حدف خواهد شد.
۵- حذف بستهها:
حذف بستهها با توجه به نیازمندی بستهها به هم میتواند باعث پاک شدن بستههای حیاتی سیستم شود. هنگام حذف بستهها باید لیست بستههای حذف شده را به دقت بررسی کرد.
yum remove linux* apt-get purge selinux apt-get remove linux-header
1
2
3yum remove linux*
apt-get purge selinux
apt-get remove linux-header
۶- دستور dd:
دستور dd قدرتمندترین و البته خطرناکترین دستور خط فرمان است! این دستور محتویات یک ابزار را به ابرازی دیگر کپی میکند!
برای مثال دستور زیر اطلاعات درایو /dev/sda2 را به صورت کامل حذف میکند.
dd if=/dev/zerro of=/dev/sda2 dd if=/dev/sda1 of=/dev/sda2 dd if=/dev/urandom of=/dev/sdb
1
2
3dd if=/dev/zerro of=/dev/sda2
dd if=/dev/sda1 of=/dev/sda2
dd if=/dev/urandom of=/dev/sdb
۷- دستور mv:
دستور mv محتویات یک فایل یا دایرکتوری را به محل مشخص شده منتقل میکند. این دستور زمانی خطرناک است که یک دایرکتوری را به /dev/null منتقل کنیم. در این صورت فایل یا دایرکتوری حذف میشود!
mv /home /dev/null
1 mv /home /dev/null
۸- base64:
هر دستوری که برای اجرا به base64 ارسال شود خطرناک است! برای مثال دستور زیر معادل rm -rf / است. (تنها دلیلی که یک برنامهنویس دستوری را به رمز میکند محدود کردن شما و یا صدمه زدن به شماست)
echo cm0gLXJmIH4vKg== | base64 -d
1 echo cm0gLXJmIH4vKg== | base64 -d