وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

لیست های کنترل دسترسی در اوبونتو

0 4
زمان لازم برای مطالعه: 5 دقیقه


حساب های کاربری با مجموعه خاصی از امتیازات و حقوق از پیش تعریف شده برای فایل ها و سرویس های سیستم ایجاد می شوند. از سوی دیگر، گروه هایی برای به اشتراک گذاری فایل ها و پوشه ها بین کاربران وجود دارند. به طور معمول، هنگامی که حساب های کاربری ایجاد می شوند، می توان آنها را به گروه های جایگزین اختصاص داد. با این حال، مواقعی وجود دارد که ممکن است نخواهید یک کاربر خاص را به یک گروه خاص اختصاص دهید، اما در همان زمان، ممکن است لازم باشد فایل ها/پوشه ها را با آن کاربر خاص به اشتراک بگذارید. اینجاست که لیست های کنترل دسترسی (ACL) به تصویر می آیند. در این آموزش با لیست های کنترل دسترسی در اوبونتو آشنا می شویم.

لیست های کنترل دسترسی (ACL)

لیست های کنترل دسترسی (ACL) به ما اجازه می دهد تا کنترل دسترسی را به دقت تنظیم کنیم. به عبارت دیگر، فرض کنید که کاربر SARA نیاز به دسترسی به یک پوشه واحد متعلق به KALYANI دارد. از نظر فنی، ما می‌توانیم SARA را به گروه KALYANI اختصاص دهیم، اما این بدان معناست که سارا به بیش از نیاز خود دسترسی خواهد داشت، و فرض کنید که KALYANI فایل‌های حساسی دارد که نمی‌خواهد سارا بخواند، بنویسد یا اجرا کند. اینجاست که لیست‌های کنترل دسترسی یا ACL در تصویر ظاهر می‌شوند. در تئوری، ما می‌توانیم مجوزها را به هم بزنیم، اما ACLها به ما اجازه می‌دهند تا دسترسی‌های متفاوتی را به کاربران مختلف بدهیم و همچنین بدون نیاز به درهم‌کاری با مجوزهای اصلی اصلی فایل یا پوشه، دسترسی را به کاربران مختلف بدهیم.

مشاهده مجوزهای فعلی

ما از دستور getfacl (دریافت لیست کنترل دسترسی به فایل) برای مشاهده مجوزهای فعلی ACL استفاده می کنیم.

getfacl <گزینه ها> فایل/پوشه

فرض کنید من یک پوشه به نام Secret با دو زیر شاخه و 5 فایل ایجاد می کنم. فرض کنید که من می خواهم مجوزهای ACL را مشاهده کنم روی پوشه مخفی

راز getfacl

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

این بدان معناست که صاحب فایل ها و پوشه ها، kalyani، متعلق به گروه kalyani، مجوزهای خواندن، نوشتن و اجرا را دارد. با این حال، بقیه هیچ اجازه ای ندارند.

تخصیص مجوزهای تنظیم دقیق به کاربر

تنظیم دقیق مجوزها با ACL با استفاده از دستور setfacl انجام می شود. سوئیچ -m، به ویژه، برای تغییر مجوزها استفاده می شود.

setfacl -m u:username:permissions نام فایل

u نشان می دهد که تغییر برای یک کاربر است و نه یک گروه. بعد از کولون، نام کاربری که مجوز برای آن اعطا شده و همچنین مجوز اعطا شده می‌نویسد. مجوزها مانند مجوزهای موجود برای chmod هستند: خواندن، نوشتن و اجرا. در نهایت، نام فایلی که مجوز برای آن اعمال شده است را می نویسیم.

پیشنهاد می‌کنیم بخوانید:  چگونه یک بسته را حذف نصب کنیم روی اوبونتو 22.04

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

setfacl -m u:sara:rwx Secret

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

حال، اگر ما به عنوان SARA وارد شویم، باید دسترسی به پوشه “secret” را بخوانیم، بنویسیم و اجرا کنیم. حالا، توجه داشته باشید، من یک مجوز 770 را برای فهرست اولیه تنظیم کردم. این مجوز حفظ شد، اما با استفاده از لیست‌های کنترل دسترسی، یک استثنا به قانون اضافه شد. اگر پوشه دیگری به نام “kali” با مجوز 770 متعلق به kalyani داشتم، کاربر SARA نمی توانست آن را لمس کند. در واقع می‌گوید «اجازه رد شد».

علاوه بر این، نکته ای که باید به آن توجه کنید این است که هنگامی که فایل به عنوان ACL اصلاح می شود، هنگامی که آن را لیست می کنید یک علامت مثبت در کنار آن وجود دارد. در این حالت، همانطور که می بینید، برای پوشه ای به نام secret می گوید drwxrwx—+. علامت مثبت نشان می دهد که با ACL ها اصلاح شده است.

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

پس از تنظیم ACL ها، یک ماسک نیز ایجاد می شود. ماسک حداکثر مجوزی است که یک کاربر یا گروه ACL به طور بالقوه می تواند داشته باشد روی یک دایرکتوری یا یک فایل

تخصیص مجوزهای تنظیم شده به گروه ها

درست مانند اعطای مجوز ویژه به کاربران، می‌توانیم به گروه‌ها مجوز ویژه نیز اختصاص دهیم. این بدان معنی است که ما می توانیم مجوزهای پایه خود را همانطور که هست حفظ کنیم و با استفاده از ACL به یک گروه خاص مجوز اضافی اختصاص دهیم.

setfacl -m g:group_name:permissions نام فایل

سابق:

setfacl -m g:john:r راز

در این حالت به گروه JOHN اجازه خواندن پوشه مخفی را می دهیم. این بدان معنی است که همه اعضای گروه JOHN مجوز خواندن پوشه مخفی و فقط پوشه مخفی را خواهند داشت. همه چیز دیگر زیر قفل و کلید خواهد بود.

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

تکلیف بازگشتی

پوشه مخفی با 3 فایل به طور مستقیم در آن و 2 زیرمجموعه که هر کدام دارای یک فایل در آن است طراحی شده است.

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

وقتی مجوزها را به کاربر SARA و گروه JOHN اختصاص دادیم، این کار را به صورت بازگشتی انجام ندادیم، بنابراین اجازه دهید مجوزهای ACL زیرمجموعه‌های موجود را بررسی کنیم (پس از اختصاص مجوز به فهرست مخفی).

پیشنهاد می‌کنیم بخوانید:  روش ایجاد ISO از نصب فعلی در اوبونتو 20.04

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

همانطور که می بینید، مجوزهای ACL فقط برای پوشه مخفی اعمال می شود و نه زیر شاخه ها. منظور این است که کاربر SARA و گروه JOHN مجوزهای داده شده را ندارند روی دایرکتوری های فرعی! در این حالت، اگر بخواهیم به کل دایرکتوری (از جمله زیر شاخه ها) مجوز بدهیم، باید یک تخصیص بازگشتی انجام دهیم. برای این کار از سوئیچ -R استفاده می کنیم.

setfacl -m u:username:permissions نام فایل

سابق:

setfacl -m u:sara:rwX راز

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

حذف مجوزهای تنظیم شده

همچنین ممکن است بخواهید مجوزهای داده شده را لغو کنید، و انجام این کار به همان سادگی است که به آنها داده می شود. شما از سوئیچ -x به جای سوئیچ -m برای لغو مجوزها استفاده می کنید.

برای حذف یک ورودی خاص:

setfacl -ایکس u: نام کاربری نام فایل
setfacl -ایکس g:group_name نام فایل

در این صورت می نوشتم:

setfacl -ایکس u:sara Secret

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

setfacl -ایکس g:جان راز

لیست های کنترل دسترسی در اوبونتولیست های کنترل دسترسی در اوبونتو

برای حذف تمام ورودی ها در یک شات:

setfacl نام فایل

مثلا:

setfacl راز

با این حال، این حقوق را حذف نمی کند روی دایرکتوری های فرعی برای حذف حقوق از دایرکتوری های فرعی، باید از Recursion استفاده کنید.

setfacl راز

خلاصه

همه چیزهایی که یاد گرفتیم به این خلاصه می شود:

برای مشاهده مجوزهای ACL:

نام فایل getfacl

برای تنظیم مجوزهای ACL:

setfacl <گزینه ها> <ورود> نام فایل

گزینه ها:
-m، -modify اصلاح ACL
-x، -حذف حذف ورودی ACL
-b، –remove-all تمام ورودی های ACL را حذف کنید
انتساب بازگشتی -R

ورودی:
u:username: مجوز برای کاربران
g:group_name: مجوز برای گروه ها

اگرچه chmod برای اعطای مجوز به فایل‌ها و پوشه‌ها وجود دارد، اما انتخابی نیست. نمی تواند به کاربران مختلف امتیازات متفاوتی بدهد. علاوه بر این، مواقعی وجود دارد که فرد نمی‌خواهد افراد تصادفی را به گروه‌ها اضافه کند. ACL یا Access Control Lists فقط برای این مناسبت اختراع شد. می تواند به کاربران یا گروه های خاصی اجازه دسترسی به فایل ها و/یا پوشه های خاص را بدهد. در این آموزش یاد گرفتیم که چگونه به کاربران و گروه ها مجوزهای ویژه بدهیم، به صورت بازگشتی مجوزها را اختصاص دهیم و مجوزهای گفته شده را لغو کنیم. پس بروید و مجوزها را تنظیم کنید روی فایل ها و پوشه ها از اینجا روی به پیش!

کد نویسی مبارک!

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-01-01 02:08:12

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید