دادن مجوزهای مختلف به کابران لینوکس با استفاده از روش ACL

ACL

acl چیست و

نحوه دادن اجازه های خواندن / نوشتن یا اجرای یک فایل یا یک دایرکتوری به یک کاربر با استفاده از روش ACL یا Access Control List

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

 

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

زمانیکه ما از دستوراتی مانند chmod , chgrp  به منظور ایجاد مجوزهای لازم به یک کاربر یا یک گروه خاص میکنیم عموما این اجازه ها برای کلیه اعضا آن مسیر قابل استفاده میباشد اما فرض کنید که یک شاخه یا دایرکتوری مثلا /u01/app/Product داریم و میخواهیم که کاربری بنام saeid در این مسیر فقط اجازه خواندن داشته باشد اما اجازه نوشتن یا تغییر فایلی را نداشته باشد حالا حتی اگر در سطح بالاتر قبلابا دستوراتی مانند chmod –R  775 /u01/app/product اجازه خواندن و نوشتن را به اعضا گروه هم داده باشیم اما با استفاده از acl  میتوانیم اجازه های کاربر مورد نظر را محدود نماییم

بدین منظور ابتدا بررسی میکنیم که نوع فایل سیستم ما چیست یعنی ext3,ext4, xfs  و یا انواع دیگر

# df     -T  |   awk   ‘{print $1,$2,$NF}’ | grep   ‘^/dev’

این دستور به ما نشان میدهد که نوع فایل سیستم ما چیست

حالا با دستور زیر بررسی میکنیم که آیا کرنل سیستم ما ، acl را پشتیبانی میکند یا خیر یعنی آیا میتوانیم از فرامین acl روی این فایل سیستم استفاده نماییم یا خیر

#grep   -i      acl     /boot/config*

حالا چک میکنیم ببینیم که آیا فایل سیستمی که Mount شده است acl را پشتیبانی میکنید یا نه

مثلا فرض کنید که میخواهیم روی فایل سیستم /home که به /dev/sda5  متصل شده است این بررسی را انجام دهیم بدین منظور از دستور زیر استفاده میکنیم

# tune2fs     -i    /dev/sda5 |  grep   acl

 

 

 

چنانچه فایل سیستم ما این ویژگی را پشتیبانی نمیکرد با دستورات زیر کاری میکنیم که acl را پشتیبانی نماید

بدین منظور فرض کنید که  /dev/sda5  همان نام device ما دیسک ما است که میخواهیم به /home متصل یا mount نماییم و میخواهیم خصوصیت acl  را پشتیبانی نماید بدین منظور

# mount    -o   remount,acl   /home

# tune2fs     -o acl   /dev/sda5

حالا نوبت به دادن اجازه دسترسی به کابری خاص روی مسیری خاص میرسد

ابتدا با دستور زیر مقادیر پیش فرض acl روی این مسیر یا فایل را بررسی میکنیم

#getfacl    /home/develop

و با دستور زیر به کاربر amir دسترسی خواندن و نوشتن در این مسیر را میدهیم

#setfacl     -m    user:amir:rw   /home/develop

یا مثلا اگر میخواهیم در مسیر /u01/app/product به کابری بنام deeba  اجازه فقط خواندن در این مسیر را بدهیم از دستور

#setfacl    -m   user:deeba:r    /u01/app/product

استفاده میکنیم

و بعد با دستور

#getfacl     /u01/app/product

#getfacl     /home/develop

بررسی میکنیم که آیا اجازه های جدیدی که به کابران دادیم درست ست شده است یا خیر .

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *