ACL: تفاوت بین نسخه‌ها

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
سطر ۱۶: سطر ۱۶:
  
 
=== تنظیم ACL ===
 
=== تنظیم ACL ===
* برای تنظیم مجوز برای یک کاربر(میتوان از نام کاربر یا ID آن استفاده کرد):
+
* تنظیم مجوز برای یک کاربر(میتوان از نام کاربر یا ID آن استفاده کرد):
 
{{bc|$ setfacl -m "u:user:permissions" <file/dir>}}
 
{{bc|$ setfacl -m "u:user:permissions" <file/dir>}}
  
* برای تنظیم مجوز برای یک گروه(میتوان از نام گروه یا ID آن استفاده کرد):
+
* تنظیم مجوز برای یک گروه(میتوان از نام گروه یا ID آن استفاده کرد):
 
{{bc|$ setfacl -m "g:group:permissions" <file/dir>}}
 
{{bc|$ setfacl -m "g:group:permissions" <file/dir>}}
  
* برای تنظیم مجوز برای دیگران:
+
* تنظیم مجوز برای دیگران:
 
{{bc|$ setfacl -m "other:permissions" <file/dir>}}
 
{{bc|$ setfacl -m "other:permissions" <file/dir>}}
  
To allow all newly created files or directories to inherit entries from the parent directory (this will not affect files which will be copied into the directory):
+
* تنظیم مجوز بعنوان پیش‌فرض که به همه پرونده‌ها و شاخه‌های جدید که به تازگی ساخته ارث می‌رسد(اعمال می‌شوند):
 +
* این تنظیم بر روی پرونده‌ها و فایل هایی که از جای دیگر کپی، یا جابه‌جا می‌شوند،‌ تاثیر ندارد.
 +
*  مثلا: "u:user:rwx" یا "g:group:rx"
 
{{bc|$ setfacl -dm "entry" <dir>}}
 
{{bc|$ setfacl -dm "entry" <dir>}}
  
To remove a specific entry:
+
* برداشتن تنظیم‌های مشخص(مثلا: "u:user" یا "g:group"):
 
{{bc|$ setfacl -x "entry" <file/dir>}}
 
{{bc|$ setfacl -x "entry" <file/dir>}}
  
To remove the default entries:
+
* برداشتن تنظیم‌های پیش‌فرض:
 
{{bc|$ setfacl -k <file/dir>}}
 
{{bc|$ setfacl -k <file/dir>}}
  
To remove all entries (entries of the owner, group and others are retained):
+
* برداشتن همه تنظیم‌ها:
 
{{bc|$ setfacl -b <file/dir>}}
 
{{bc|$ setfacl -b <file/dir>}}
  

نسخهٔ ‏۲۴ تیر ۱۴۰۰، ساعت ۱۵:۴۷

لیست کنترل دسترسی (ACL)، سامانه‌ای برای تنظیم مجوز‌های اضافی و انعطاف پذیرتر برای سامانه‌های پرونده است. این سامانه برای کمک به مجوزهای پرونده یونیکس طراحی شده است. ACL به شما امکان می دهد برای هر کاربر یا گروهی به هر منبع دیسک مجوز دهید.

تعریف لیست‌های کنترل دسترسی در کتابچه راهنمای لینوکس ، ACL ها برای تعریف حق دسترسی صحیح‌تر برای پرونده‌ها و دایرکتوری‌ها استفاده می شوند.

نصب و راه اندازی

بسته acl یکی از وابستگی‌های سیستم‌دی است، احتمالا از پیش نصب شده است. اگر اینطور نیست، می‌توان با دستور زیر آن را نصب کرد:

$ sudo apt install acl


یادداشت: این یک ترجمه از این صفحه ویکی آرچ است.


چرا از acl استفاده کنیم؟

به حالتی فکر کنید که در آن یک کاربر خاص عضو گروه ایجاد شده توسط شما نیست، اما همچنان می‌خواهید به برخی از موارد، دسترسی خواندن یا نوشتن داشته باشد، چگونه می‌توانید این کار را بدون اینکه کاربر را عضو گروه کنید، انجام دهید؟ در اینجا می‌توان از لیست کنترل دسترسی استفاده کرد.

روش کاربرد

setfacl و getfacl به ترتیب برای تنظیم ACL و نشان دادن ACL استفاده می‌شوند.

تنظیم ACL

  • تنظیم مجوز برای یک کاربر(میتوان از نام کاربر یا ID آن استفاده کرد):
$ setfacl -m "u:user:permissions" <file/dir>
  • تنظیم مجوز برای یک گروه(میتوان از نام گروه یا ID آن استفاده کرد):
$ setfacl -m "g:group:permissions" <file/dir>
  • تنظیم مجوز برای دیگران:
$ setfacl -m "other:permissions" <file/dir>
  • تنظیم مجوز بعنوان پیش‌فرض که به همه پرونده‌ها و شاخه‌های جدید که به تازگی ساخته ارث می‌رسد(اعمال می‌شوند):
  • این تنظیم بر روی پرونده‌ها و فایل هایی که از جای دیگر کپی، یا جابه‌جا می‌شوند،‌ تاثیر ندارد.
  • مثلا: "u:user:rwx" یا "g:group:rx"
$ setfacl -dm "entry" <dir>
  • برداشتن تنظیم‌های مشخص(مثلا: "u:user" یا "g:group"):
$ setfacl -x "entry" <file/dir>
  • برداشتن تنظیم‌های پیش‌فرض:
$ setfacl -k <file/dir>
  • برداشتن همه تنظیم‌ها:
$ setfacl -b <file/dir>

نمایش ACL

  • برای نمایش ACL از دستور زیر استفاده کنید:
$ getfacl <file/dir>

مثال

تنظیم تمامی مجوزها(خواندن، نوشتن، اجرا) برای کاربر johnny در پروندهٔ abc:

$ setfacl -m "u:johnny:rwx" abc

بررسی مجوزها:

$ getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
user:johnny:rwx
group::r--
mask::rwx
other::r--

تغییر مجوزهای کاربر johnny در پروندهٔ abc:

$ setfacl -m "u:johnny:r-x" abc

بررسی مجوزها:

$ getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
user:johnny:r-x
group::r--
mask::r-x
other::r--

برداشتن همه ورودی‌های ACL:

$ setfacl -b abc

بررسی مجوزها:

$ getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
group::r--
other::r--

خروجی دستور ls

اگر در یک پرونده یا شاخه از ACL استفاده شده باشد، در خروجی فرمان ls -l با نشان دادن یک علامت + (بعلاوه) پس از مجوزهای Unix به شما اطلاع داده خواهد شد.

$ ls -l /dev/audio
crw-rw----+ 1 root audio 14, 4 nov.   9 12:49 /dev/audio
$ getfacl /dev/audio
getfacl: Removing leading '/' from absolute path names
# file: dev/audio
# owner: root
# group: audio
user::rw-
user:solstice:rw-
group::rw-
mask::rw-
other::---