CHACL(1) Access Control Lists CHACL(1)

chacl - تغییر لیست کنترل دسترسی یک فایل یا دایرکتوری

chacl acl pathname...
chacl -b acl dacl pathname...
chacl -d dacl pathname...
chacl -R pathname...
chacl -D pathname...
chacl -B pathname...
chacl -l pathname...
chacl -r pathname...

دستور chacl یک ابزار سازگاری با IRIX است و برای آن دسته از کاربرانی نگهداری می‌شود که با کاربرد آن در XFS یا IRIX آشنایی دارند. برای شرح ابزارهایی که با پیش‌نویس (پس‌گرفته‌شده) استاندارد POSIX 1003.1e توصیف‌کننده لیست‌های کنترل دسترسی (ACL) تطابق بیشتری دارند، به بخش همچنین ببینید (SEE ALSO) در ادامه مراجعه فرمایید.

دستور chacl لیست(های) کنترل دسترسی (ACL) یک فایل یا دایرکتوری را تغییر می‌دهد. لیست(های) مشخص‌شده بر روی هر یک از فایل‌های تعیین‌شده در آرگومان‌های pathname اعمال می‌شوند.

هر ACL یک رشته متنی است که با استفاده از روال acl_from_text(3) تفسیر می‌گردد. این رشته‌ها از بندهایی تشکیل شده‌اند که با ویرگول از یکدیگر جدا شده و هر کدام به قالب tag:name:perm هستند. در این ساختار، tag می‌تواند یکی از مقادیر زیر باشد:

نشان‌دهنده این است که ورودی، یک مدخل ACL کاربری (user) است.
نشان‌دهنده این است که ورودی، یک مدخل ACL گروهی (group) است.
نشان‌دهنده این است که ورودی، یک مدخل ACL برای سایرین (other) است.
نشان‌دهنده این است که ورودی، یک مدخل ماسک (mask) است.

name رشته‌ای است که نام کاربر یا گروه را برای مدخل ACL تعیین می‌کند. یک name خالی در مدخل ACL کاربر یا گروه، نشان‌دهنده مالک فایل یا گروه فایل است.

perm رشته‌ای از نویسه‌های "rwx" است که در آن هر یک از نویسه‌ها می‌تواند با یک "-" جایگزین شود تا عدم دسترسی از آن نوع را نشان دهد؛ مانند "r-x"، "--x" یا "---".

نشان می‌دهد که دو ACL برای تغییر وجود دارد؛ اولی ACL دسترسی فایل و دومی ACL پیش‌فرض دایرکتوری است.
تنها برای تنظیم ACL پیش‌فرض یک دایرکتوری به کار می‌رود.
تنها ACL دسترسی فایل را حذف می‌کند.
تنها ACL پیش‌فرض دایرکتوری را حذف می‌کند.
تمام ACLها را حذف می‌کند.
لیست کنترل دسترسی و در صورت وجود، ACL پیش‌فرض مرتبط با فایل‌ها یا دایرکتوری‌های مشخص‌شده را فهرست می‌کند. این گزینه در حین پورت XFS به لینوکس افزوده شد و با IRIX سازگار نیست.
لیست کنترل دسترسی را به صورت بازگشتی برای هر زیرشاخه با ریشه در pathname تنظیم می‌کند. این گزینه نیز در حین پورت XFS به لینوکس اضافه شد و با IRIX سازگار نیست.

یک ACL پایه و حداقل:

chacl u::rwx,g::r-x,o::r-- file

در این مثال، ACL فایل به‌گونه‌ای تنظیم می‌شود که مالک فایل دارای دسترسی "rwx"، گروه فایل دارای دسترسی خواندن و اجرا (r-x) و سایرین تنها دارای دسترسی خواندن (r--) به فایل باشند.

یک ACL که فراتر از حداقل باشد—یعنی کاربری یا گروهی غیر از مالک فایل یا گروه مالک را تعیین کند—باید حتماً شامل یک مدخل ماسک (mask) باشد:

chacl u::rwx,g::r-x,o::r--,u:bob:r--,m::r-x file1 file2

برای تنظیم ACLهای دسترسی و پیش‌فرض در دایرکتوری newdir به طوری که دقیقاً مشابه olddir باشد، می‌توانید دستور زیر را وارد نمایید:

  chacl -b `chacl -l olddir | \
      sed -e 's/.*\[//' -e 's#/# #' -e 's/]$//'` newdir

دستور chacl می‌تواند ACL موجود را جایگزین کند. برای افزودن یا حذف مدخل‌ها، باید ابتدا از دستور chacl -l برای دریافت ACL موجود استفاده کرده و از خروجی آن برای تشکیل آرگومان‌های دستور chacl بهره بگیرید.

تغییر بیت‌های مجوز دسترسی یک فایل، تنظیمات ACL دسترسی فایل را تغییر خواهد داد (ببینید: chmod(1)). با این حال، ماسک‌های حالت ایجاد فایل (ببینید: umask(1)) بر تنظیمات ACL دسترسی فایل‌هایی که با استفاده از ACLهای پیش‌فرض دایرکتوری ایجاد شده‌اند، تأثیری نخواهد گذاشت.

لیست‌های کنترل دسترسی (ACLs) ویژگی‌های توسعه‌یافته سیستم‌فایل هستند و به همین دلیل معمولاً توسط ابزارهای مرسوم و سنتی پشتیبان‌گیری، ذخیره یا بازیابی نمی‌شوند. برای اطلاعات بیشتر درباره ویژگی‌های توسعه‌یافته به attr(5) و برای اطلاع از نحوه پشتیبان‌گیری از آن‌ها تحت سیستم‌فایل XFS به xfsdump(8) مراجعه فرمایید.

getfacl(1), setfacl(1), chmod(1), umask(1), acl_from_text(3), acl(5), xfsdump(8)

ACL File Utilities September 2001