
گاهی اوقات اتفاق می افتد که شما به طور تصادفی فایل ها یا پوشه های سیستم عامل لینوکس را حذف می کنید. اما در این آموزش به شما خواهیم گفت که چگونه از حذف فایل ها یا پوشه ها در لینوکس جلوگیری کنید؟ اگر از کاربران سیستم عامل محبوب لینوکس هستید، این مقاله برای شما مفید خواهد بود. پس در این مقاله با تهران سرور همراه باشید. این آموزش را با هم گام به گام ادامه خواهیم داد.
1. نرم افزار را دانلود کنید
برای دانلود این اپلیکیشن دستور زیر را وارد کنید:
wget https://launchpad.net/safe-rm/trunk/1.1.0/+download/safe-rm-1.1.0.tar.gz
سپس با استفاده از دستور زیر فایل دانلود شده را استخراج کنید:
tar -zxvf safe-rm-1.1.0.tar.gz
2. بسته نرم افزاری را نصب کنید
سپس با استفاده از دستورات زیر بسته های مورد نیاز را نصب کنید:
بر اساس RedHat (CentOS، AlmaLinux، RockyLinux)
yum install cargo
اوبونتو/دبیان
apt update
apt-get install cargo
OpenSUSE
zypper install cargo
3. نمایش مسیرها
سپس دستور زیر را تایپ کنید تا ببینید دستور rm در کجا قرار دارد و PATH در سیستم لینوکس شما قرار دارد:
whereis rm
echo $PATH
4. یک فایل پیکربندی ایجاد کنید
در مرحله بعد، یک فایل پیکربندی برای برنامه safe-rm ایجاد کنید که در آن مشخص کنید کدام پوشه ها نمی توانند فایل ها و پوشه های موجود در آن پوشه ها را حذف کنند. دستور زیر را وارد کنید:
vi /etc/safe-rm.conf
سپس پوشههایی را وارد کنید که کاربر نمیتواند فایلها یا پوشههایی را حذف کند:
/etc/*
/var/*
/usr/*
/usr/lib/*
شما باید بین پوشه ها و زیر پوشه ها تمایز قائل شوید. بنابراین اگر می خواهید کسی نتواند فایل ها یا پوشه های موجود در پوشه /var/lib/mysql را حذف کند، پوشه زیر را با تایپ دستور زیر به فایل فوق اضافه کنید:
/var/lib/mysql/*
زیرا اگر فقط /var/* را در این فایل قرار دهید، فایل های موجود در پوشه /var همچنان حذف می شوند.
5. فایل main.rs را پیکربندی کنید
به پوشه safe-rm رفته و با وارد کردن دستورات زیر فایل main.rs را باز کنید:
cd safe-rm-1.1.0
vi src/main.rs
در این فایل مسیر rm را تغییر دهید تا با مسیر rm در سیستم لینوکس شما مطابقت داشته باشد:
const REAL_RM: &str = '/usr/bin/rm';
6. safe-rm را نصب کنید
سپس با وارد کردن دستورات زیر برنامه را نصب کنید:
cargo build --release
هنگامی که فرآیند ساخت کامل شد، یک فایل safe-rm در پوشه target/release ایجاد می شود.
7. فایل را کپی کنید
سپس فایل safe-rm را در پوشه ای که فایل rm در آن قرار دارد کپی می کنیم. از آنجایی که در سیستم لینوکس من فایل rm در پوشه /usr/bin است، فایل را در آن پوشه کپی می کنم:
cp /root/safe-rm-1.1.0/target/release/safe-rm /usr/bin
8. فایل bashrc. تغییر دادن
سپس با وارد کردن دستور زیر فایل .bashrc را باز کنید:
vi ~/.bashrc
سپس اسکریپت زیر را تغییر دهید یا به فایل اضافه کنید:
alias rm='safe-rm -f'
فایل را ذخیره کنید و دستور زیر را وارد کنید:
source ~/.bashrc
9. برنامه را تست کنید
سپس اپلیکیشن safe-r را تست کنید. سعی کنید یکی از فایل ها یا پوشه های موجود در پوشه /etc را حذف کنید و کاربر نباید بتواند فایل ها یا پوشه های موجود در پوشه های فایل /etc/safe-rm.conf را حذف کند.
بنابراین برنامه safe-rm به درستی روی سرور نصب شده است.
نکات مهم
1. اگر می خواهید سایر کاربران نیز بتوانند از این برنامه استفاده کنند، در bashrc. اسکریپت زیر را برای این کاربر وارد کنید:
alias rm='safe-rm -f'
و دستور زیر را اجرا کنید:
source ~/. bashrc
2. در نسخه های قبلی (نسخه 0.13 یا پایین تر) فقط فایل safe-rm را کپی می کنید و نیازی به کامپایل نیست. اما قبل از اجرای این اپلیکیشن ابتدا باید پرل را روی سرور خود نصب کنید.
3. در واقع دستوری در سیستم لینوکس وجود دارد که عملکردی مشابه برنامه safe-rm یعنی دستور chattr دارد که در تصویر زیر مشاهده می شود.
اما من فکر می کنم این دستور ممکن است برای sysadmin ها یا سایر کاربران دردسرساز باشد زیرا من نمی توانم محتویات فایل را تغییر دهم مگر با استفاده از دستور chattr دیگر برای تغییر محتویات فایل. در همین حال، برنامه safe-rm فقط برای جلوگیری از حذف فایل کار می کند، اما این فایل را می توان در هر زمان بدون نیاز به وارد کردن مجدد دستور تغییر داد.