ایمن‌سازی فایل‌ها و پوشه‌ها با ACL (Access Control Lists) در لینوکس پرینت


 

## 🛡️ ایمن‌سازی فایل‌ها و پوشه‌ها با ACL (Access Control Lists) در لینوکس

در سیستم‌های لینوکسی، به‌صورت پیش‌فرض مجوزهای دسترسی به فایل‌ها محدود به **مالک (user)، گروه (group) و سایر کاربران (others)** است. اما در بسیاری از سناریوها نیاز داریم **مجوز دسترسی خاص برای کاربران متعدد و متفاوت تعریف کنیم**. اینجاست که **ACL (Access Control List)** وارد میدان می‌شود.

---

## 📌 ACL چیست؟

ACL یک مکانیزم **کنترل دسترسی پیشرفته** است که اجازه می‌دهد به بیش از یک کاربر یا گروه خاص مجوزهایی مانند **خواندن (r)، نوشتن (w)** و **اجرا (x)** داده شود، بدون اینکه نیاز به تغییر مالک فایل یا گروه آن باشد.

---

## 🧰 فعال‌سازی ACL در پارتیشن

ابتدا باید مطمئن شوید فایل‌سیستم از ACL پشتیبانی می‌کند. بسیاری از فایل‌سیستم‌ها مانند **ext3/ext4** و **xfs** از ACL پشتیبانی دارند.

### بررسی فعال بودن ACL:

```bash
mount | grep acl
```

اگر فعال نیست، پارتیشن را با گزینه `acl` در `/etc/fstab` ویرایش کنید:

```
/dev/sda1 / ext4 defaults,acl 0 1
```

سپس پارتیشن را مجدد mount کنید:

```bash
sudo mount -o remount /
```

---

## 🔧 دستورات مدیریت ACL

### 1. **دادن مجوز ACL به کاربر خاص**

```bash
setfacl -m u:ali:r-- myfile.txt
```

📌 معنی: کاربر `ali` فقط اجازه خواندن فایل `myfile.txt` را دارد.

---

### 2. **دادن مجوز به گروه خاص**

```bash
setfacl -m g:designers:rw- myfile.txt
```

📌 گروه `designers` می‌تواند فایل را بخواند و بنویسد.

---

### 3. **مشاهده مجوزهای ACL فایل**

```bash
getfacl myfile.txt
```

---

### 4. **حذف یک ACL خاص**

```bash
setfacl -x u:ali myfile.txt
```

---

### 5. **حذف تمام ACLها و بازگردانی به مجوزهای سنتی**

```bash
setfacl -b myfile.txt
```

---

### 6. **دادن ACL پیش‌فرض به پوشه‌ها**

اگر می‌خواهید همه فایل‌هایی که در یک دایرکتوری ساخته می‌شوند یک ACL پیش‌فرض داشته باشند:

```bash
setfacl -d -m u:ali:rw- myfolder/
```

---

## 🧪 مثال عملی

فرض کنید یک تیم شامل کاربران `ali`، `zahra` و `reza` روی پروژه‌ای مشترک کار می‌کنند. به‌جای تغییر مالک فایل، می‌توانید:

```bash
setfacl -m u:ali:rw- project.doc
setfacl -m u:zahra:r-- project.doc
setfacl -m u:reza:rw- project.doc
```

---

## 🧠 نکات امنیتی و مدیریتی

* ACLها با مجوزهای سنتی POSIX تداخل ندارند بلکه **تکمیل‌کننده آن‌ها هستند**.
* اگر کاربر هم در گروه باشد و هم ACL خاصی داشته باشد، **ACL ارجحیت دارد**.
* ابزارهای `rsync` و `tar` هنگام پشتیبان‌گیری باید با گزینه حفظ ACL اجرا شوند:

```bash
rsync -a --acls source/ dest/
```

---

## ✅ جمع‌بندی

ACL راهکاری قدرتمند برای تعریف **دسترسی‌های انعطاف‌پذیر و دقیق‌تر** نسبت به مجوزهای سنتی لینوکس است. استفاده از ACL مخصوصاً در محیط‌های چندکاربره و سرورهای اشتراکی کاربرد فراوان دارد.

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت