معرفی اجمالی ACL Access Control List

فرض کنید یک فایل دارید که قصد به اشتراک گزاری آن را برای کاربر یا گروه خاصی را دارید. این کار با استفاده از acl به راحتی میسر است.

acl سطحی از دسترسی به منابع را فراهم میکند که ریزتر از دیگر امکانات است. برای اطلاعات بیشتر میتوان به مستندات مربوطه مراجعه کنید.

برای شروع یک گروه کاربری جدید بسازید و یک کاربر جدید هم معرفی کرده و به گروه اضافه کنید. در این مثال نام گروه mygrp و نام کاربر user1 میباشد.
حال یک فایل ساده بسازید (به هر روشی که مایل هستید) و مجوز آن را 700 قرار دهید.
در این مثال نام فایل a.txt میباشد.

کد:

$ chmod 700 a.txt


در این مرحمه با استفاده از دستور getfacl اقدام به مشاهده مجوزهای فایل مذکور میکنیم:

کد:

$ getfacl a.txt
# file: a.txt
#owner: ali
#group: ali
user::rwx
group::---
other::---


حال میخواهیم به گروه mygrp مجوز نوشتن و خواندن این فایل را بدهیم:
برای این کار ابتدا امکان استفاده از acl در پوشه ریشه را میسر میکنیم:
فایل fstab را باز کرده و در خطی که پوشه ریشه را مانت میکند, عبارت acl را اضافه میکنیم:

کد:

$ sudo vi /etc/fstab
UUID=...... / ext3 relatime,errors=remount -ro,acl 0 1


فایل را ذخیره کرده و به این صورت دوباره مانت میکنیم:

کد:

$ sudo mount -o remount /
$ mount

بعد از اجرای این دستور عبارت

کد:

/dev/sda1 on / type ext3 (rw,ralatime,errors=remount -ro,acl)
...
....


در خروجی چاپ میشود که نشان دهنده این است که کار صحیح انجام شده!

حال قبل از اینکه مجوز اعطا شود, سعی کنید با کاربر user1 به فایل a.txt دسترسی داشته باشید. نتیجه منفی است!

در این مرحله همه چیز برای اعطای مجوز به گروه mygrp فراهم میباشد.

کد:

$ setfacl -m g:mygrp:rw a.txt


کار تمام شد, حال بررسی میکنیم.



کد:

$ getfacl a.txt
# file: a.txt
#owner: ali
#group: ali
user::rwx
group::---
group:mygrp:rw-
mask::rw-
other::---

بدین صورت کار اعطای مجوز انجام شد و کاربران گروه mygrp قادر هستند فایل a.txt را بخوانند یا تغییر دهند.