setcifsacl(1) General Commands Manual setcifsacl(1)

setcifsacl - ابزار کمکی فضای کاربری برای تغییر مؤلفه‌های توصیف‌گر امنیت CIFS

setcifsacl [-v|-U|-a|-A|-D|-M|-S|-o|-g] ""{یک یا چند مدخل ACE یا یک SID}"" {شیء سیستم فایل}

این ابزار بخشی از مجموعه cifs-utils است.

ابزار setcifsacl یک برنامه کمکی در فضای کاربری برای کلاینت سیستم فایل CIFS در لینوکس است. این ابزار برای تغییر یک ACL یا تنظیم SID مالک/گروه در توصیف‌گر امنیت یک شیء در سیستم فایل طراحی شده است. اعمال یا عدم اعمال توصیف‌گر امنیتی تنظیم‌شده توسط کارساز (سرور) CIFS/SMB تعیین می‌شود.

این برنامه از یک افزونه برای مدیریت نگاشت نام‌های کاربر و گروه به SID استفاده می‌کند. مسیر /etc/cifs-utils/idmap-plugin باید یک پیوند نمادین باشد که به افزونه صحیح مورد استفاده اشاره می‌کند.

چاپ پیام راهنمای استفاده و خروج.
چاپ شماره نسخه و خروج.
اعمال عملیات ویرایش ACE (شامل -a، -D، -M، -S) روی فهرست بازرسی امنیتی یا SACL (مخفف aUdit ACL). در صورت عدم تعیین -U، این عملیات روی DACL اعمال می‌شوند.
افزودن یک یا چند ACE به ACL در توصیف‌گر امنیت. مدخل ACE حتی در صورت وجود داشتن ACE یکسان در ACL افزوده خواهد شد.
افزودن یک یا چند ACE به ACL در توصیف‌گر امنیت، ضمن حفظ ترتیب ترجیحی مدخل‌های ACE. ترتیب ترجیحی مدخل‌های ACE در مستندات زیر تشریح شده است: https://docs.microsoft.com/en-us/windows/win32/secauthz/order-of-aces-in-a-dacl
حذف یک یا چند ACE از ACL در توصیف‌گر امنیت. تمام اجزای ACE باید با ACL موجود مطابقت داشته باشند تا مدخل‌های مشخص‌شده حذف شوند.
ویرایش یک یا چند ACE از ACL در توصیف‌گر امنیت. از SID و نوع (type) برای یافتن و تطبیق ACEهای موجود با فهرست ACEهای ارائه‌شده استفاده می‌شود.
تنظیم ACL توصیف‌گر امنیت با فهرست ACEهای مشخص‌شده. فهرست ACL موجود به طور کامل با ACEهای تعیین‌شده جایگزین می‌شود.
تنظیم SID مالک به مقداری که در آرگومان خط فرمان مشخص شده است.
تنظیم SID گروه به مقداری که در آرگومان خط فرمان مشخص شده است.

مقدار SID مالک/گروه را می‌توان به صورت یک نام یا مقدار خام SID مشخص کرد. هر مدخل ACE با ""ACL:"" آغاز می‌شود. یک یا چند مدخل ACE درون علامت نقل قول دوتایی (Double Quote) مشخص می‌شوند. چند مدخل ACE با کاما از یکدیگر جدا می‌گردند.

فیلدهای زیر از یک مدخل DACL ACE همراه با مقادیر مجاز آن‌ها قابل تغییر است:

  • SID - یک نام یا مقدار خام SID.
  • type - شامل ALLOWED (0x0)، DENIED (0x1)، OBJECT_ALLOWED (0x5)، OBJECT_DENIED (0x6).
  • flags - شامل OBJECT_INHERIT_FLAG (OI یا 0x1)، CONTAINER_INHERIT_FLAG (CI یا 0x2)، NO_PROPAGATE_INHERIT_FLAG (NI یا 0x4)، INHERIT_ONLY_FLAG (IO یا 0x8)، INHERITED_ACE_FLAG (IA یا 0x10) یا ترکیبی از این مقادیر با OR منطقی.
  • mask - یکی از FULL، CHANGE، READ، ترکیبی از حروف R W X D P O، یا یک مقدار هگزادسیمال.

فیلدهای زیر از یک مدخل SACL ACE همراه با مقادیر مجاز آن‌ها قابل تغییر است:

  • SID - یک نام یا مقدار خام SID.
  • type - شامل AUDIT (0x2)، AUDIT_OBJECT (0x7)، AUDIT_CALLBACK (0xD)، AUDIT_CALLBACK_OBJECT (0xF)، MANDATORY_LABEL (0x11)، RESOURCE_ATTRIBUTE (0x12)، SCOPED_POLICY_ID (0x13).
  • flags - شامل SUCCESSFULL_ACCESS (SA یا 0x40)، FAILED_ACCESS (FA یا 0x80).
  • mask - یکی از FULL، CHANGE، READ، ترکیبی از حروف R W X D P O، یا یک مقدار هگزادسیمال.

setcifsacl -a "ACL:CIFSTESTDOM\user2:DENIED/0x1/D" <file_name>
setcifsacl -a "ACL:CIFSTESTDOM\user1:ALLOWED/OI|CI|NI/D" <file_name>
setcifsacl -U -a "ACL:CIFSTESTDOM\user1:AUDIT/SA/D" <file_name>

setcifsacl -A "ACL:CIFSTESTDOMuser3:ALLOWED/OI/FULL" <file_name>
setcifsacl -A "ACL:CIFSTESTDOMuser2:DENIED/0x1/D" <file_name>
setcifsacl -A "ACL:CIFSTESTDOMuser1:ALLOWED/OI|CI|NI/D" <file_name>

پس از اعمال ACEهای ذکرشده در بالا، خروجی getcifsacl به صورت زیر خواهد بود:

ACL:CIFSTESTDOMuser2:DENIED/0x1/D
ACL:CIFSTESTDOMuser3:ALLOWED/OI/FULL
ACL:CIFSTESTDOMuser1:ALLOWED/OI|CI|NI/D

setcifsacl -D "ACL:S-1-1-0:0x1/OI/0x1201ff" <file_name>
setcifsacl -U -D "ACL:S-1-1-0:0x2/FA/0xf01ff" <file_name>

setcifsacl -M "ACL:CIFSTESTDOM\user1:ALLOWED/0x1f/CHANGE" <file_name>
setcifsacl -U -M "ACL:CIFSTESTDOM\user1:AUDIT_OBJECT/SA/CHANGE" <file_name>

setcifsacl -S "ACL:CIFSTESTDOM\Administrator:0x0/0x0/FULL,ACL:CIFSTESTDOM\user2:0x0/0x0/FULL" <file_name>
setcifsacl -U -S "ACL:CIFSTESTDOM\Administrator:AUDIT/SA/FULL,ACL:CIFSTESTDOM\user2:0x7/0x80/FULL" <file_name>

setcifsacl -o "S-1-5-21-3338130290-3403600371-1423429424-2102" <file_name>

setcifsacl -g "<Administrators@BUILTIN>" <file_name>

پشتیبانی هسته از ابزارهای getcifsacl/setcifsacl نخستین بار در هسته نسخه 2.6.37 معرفی شد.

mount.cifs(8), getcifsacl(1)

برنامه setcifsacl توسط Shirish Pargaonkar نوشته شده است.

فهرست پستی Linux CIFS Mailing list مکان پیشنهادی برای طرح پرسش‌ها در خصوص این برنامه‌ها است.