## 🎯 آموزش آرشیو و فشردهسازی فایلها + تنظیم ویژگیهای فایل در لینوکس (سطح پیشرفته)
در دنیای مدیریت سیستمهای لینوکسی، دانستن نحوهی آرشیو/فشردهسازی فایلها و همچنین مدیریت ویژگیهای (Attributes) فایلها، نقش کلیدی در امنیت، عملکرد و نگهداری دادهها دارد.
این مقاله به صورت پیشرفته این مباحث را پوشش میدهد.
---
# بخش اول: 🗜️ آرشیو و فشردهسازی فایلها
### ✅ ترکیب دستورات tar و فشردهسازیهای مختلف
- **فشردهسازی با Gzip:**
```bash
tar -czvf archive.tar.gz /path/to/directory
```
- **فشردهسازی با Bzip2 (بالاترین سطح فشردهسازی در حجم):**
```bash
tar -cjvf archive.tar.bz2 /path/to/directory
```
- **فشردهسازی با XZ (حرفهایترین فشردهسازی):**
```bash
tar -cJvf archive.tar.xz /path/to/directory
```
- **آرشیو بدون فشردهسازی (فقط جمعآوری فایلها):**
```bash
tar -cvf archive.tar /path/to/directory
```
---
### ✅ نکات حرفهای در آرشیو/فشردهسازی
| تکنیک | توضیح |
|------|-------|
| فیلتر کردن فایلها حین آرشیو | `tar --exclude='*.log' -czvf backup.tar.gz /var/log/` |
| تقسیم آرشیو بزرگ به قطعات کوچک | `split -b 700M backup.tar.gz backup_part_` |
| ساخت آرشیو incremental | `tar --listed-incremental=snapshot.file -czvf backup.tar.gz /path` |
| ساخت آرشیو فقط فایلهای تغییر یافته | `find /path -newer timestamp.file | tar -czvf changed.tar.gz -T -` |
---
# بخش دوم: 🛡️ تنظیم ویژگیهای فایل (File Attributes)
در لینوکس، فایلها فراتر از پرمیشنها (rwx) ویژگیهای (Attributes) بیشتری دارند که کنترل دقیقتری فراهم میکند. ابزار اصلی برای این کار `chattr` است.
### ✅ مشاهده ویژگیهای فایل با `lsattr`
```bash
lsattr filename
```
نمونه خروجی:
```
----i--------e-- filename
```
---
### ✅ تغییر ویژگیهای فایل با `chattr`
| ویژگی | توضیح |
|-------|-------|
| `i` | فایل غیرقابل تغییر (immutable) میشود |
| `a` | فقط اجازه اضافه کردن داده (append only) |
| `d` | فایل از بکاپهای معمولی حذف میشود |
| `e` | فایل برای عملیات خاص رزرو میشود |
---
### 🎯 مثالهای واقعی:
- **قفل کردن فایل (هیچکس حتی root نتواند حذف یا تغییر دهد):**
```bash
sudo chattr +i important.doc
```
- **باز کردن قفل فایل:**
```bash
sudo chattr -i important.doc
```
- **تنظیم حالت Append-only روی لاگها (هیچ چیزی پاک نشود، فقط اضافه شود):**
```bash
sudo chattr +a /var/log/secure
```
- **حذف ویژگی append:**
```bash
sudo chattr -a /var/log/secure
```
---
## ✨ ترکیب حرفهای: آرشیو + تغییر ویژگی
سناریوی رایج: میخواهی یک آرشیو بکاپ شده را غیرقابل تغییر کنی.
۱. ساخت آرشیو:
```bash
tar -czvf /backups/important_backup.tar.gz /etc /var/www
```
۲. قفل کردن آرشیو:
```bash
sudo chattr +i /backups/important_backup.tar.gz
```
✅ حالا حتی اگر کسی اشتباهی بخواهد آن را پاک کند، سیستم اجازه نمیدهد!
---
## 🧠 نکات حرفهای بیشتر:
- تغییر ویژگیهای فایل به صورت بازگشتی روی دایرکتوری:
```bash
sudo chattr -R +i /path/to/directory
```
- بعضی فایل سیستمها مثل `ext4` این ویژگیها را پشتیبانی میکنند، ولی مثلاً در `NTFS` روی لینوکس ممکن است پشتیبانی نشود.
- `chattr` ابزار بسیار خطرناکی هم هست! چون اگر فراموش کنید ویژگی `immutable` را بردارید، حتی با `root` هم نمیتوانید فایل را حذف کنید مگر ویژگی را تغییر دهید.
---
## ✅ نتیجهگیری
- آرشیو و فشردهسازی فایلها با ابزارهای ترکیبی `tar`, `gzip`, `bzip2`, `xz` در لینوکس قدرت مانور بالایی ایجاد میکند.
- با استفاده از `chattr` و `lsattr` میتوان امنیت فایلها را در بالاترین سطح ممکن کنترل کرد.
تسلط به این مفاهیم یکی از نشانههای حرفهای بودن مدیر سیستم (SysAdmin) در لینوکس است! 🚀