cacls چیست؟
در ویندوز مایکروسافت، cacls و جایگزین جدیدتر آن، icacls، ابزارهای داخلی خط فرمانی هستند که برای نمایش و تغییر توصیفگرهای امنیتی فایلها و پوشهها به کار میروند. در نگاه کلی، icacls ابزار بهروزتر و پیشرفتهتری است، اما از نظر فنی همه قابلیتهای cacls را به شکل یکبهیک پوشش نمیدهد.
دستور cacls در ReactOS نیز در دسترس است.
فهرست کنترل دسترسی یا ACL چیست؟
فهرست کنترل دسترسی یا ACL، فهرستی از مجوزهاست که مشخص میکند چه کاربر یا گروهی و با چه سطح دسترسی میتواند از یک منبع قابل حفاظت، مانند فایل یا پوشه، استفاده کند. این مجوزها میتوانند شامل خواندن، نوشتن، اجرا، حذف یا تغییر مالکیت باشند.
دستور cacls در ویندوز
برنامه cacls.exe یک ویرایشگر خط فرمانی منسوخشده برای مدیریت توصیفگرهای امنیتی پوشهها و فایلها در Windows NT 3.5 و سیستمعاملهای بعدی خانواده Windows NT بود.
برای پشتیبانی از تغییراتی که با NTFS نسخه ۳.۰ وارد شد، مایکروسافت ابزارهای جدیدتری معرفی کرد؛ برخی از آنها نیز بعدها کنار گذاشته شدند:
xcacls.exeدر ویندوز 2000 و نسخههای بعدی پشتیبانی میشد و امکاناتی مانند تعیین مجوزهای اجرا، حذف و تصاحب مالکیت را اضافه کرد.xcacls.vbsنسخه مبتنی بر VBScript برای مدیریت ACL بود.fileacl.exeابزاری برای کار با مجوزهای فایل و پوشه محسوب میشد.icacls.exeاز Windows Server 2003 SP2 به بعد همراه ویندوز ارائه شد.SubInAcl.exeابزاری از مجموعه Resource Kit برای تنظیم و جایگزینی مجوزها روی انواع شیء، از جمله فایلها، سرویسها و کلیدهای رجیستری است.- Windows PowerShell با cmdletهای
Get-AclوSet-Aclگزینهای مدرنتر برای مدیریت ACLهاست.
نسخه ReactOS
نسخه موجود از cacls در ReactOS توسط توماس وایدنمولر توسعه داده شده و تحت مجوز GNU Lesser General Public License یا GNU LGPL منتشر شده است.
icacls چیست؟
icacls مخفف عبارت Integrity Control Access Control List است. از Windows Server 2003 SP2 به بعد، این ابزار بهعنوان یک ابزار خط فرمان داخلی در ویندوز قرار گرفت.
icacls میتواند ACLهای فایلها و پوشهها را نمایش دهد، تغییر دهد، از آنها پشتیبان بگیرد و آنها را بازیابی کند. همچنین در ویندوز ویستا و نسخههای بعدی، امکان تنظیم سطحهای یکپارچگی و مالکیت را نیز فراهم میکند.
نکته: با وجود کاربرد گسترده،
icaclsجایگزین کاملی برایcaclsنیست.
تفاوت cacls و icacls
مهمترین تفاوت این دو ابزار در سطح پشتیبانی از قابلیتهای قدیمی و جدید است. برای نمونه، icacls ساختار SDDL یا زبان تعریف توصیفگر امنیتی را مستقیماً در پارامترهای خط فرمان نمیپذیرد و فقط هنگام استفاده از گزینه /restore از آن پشتیبانی میکند.
- cacls: ابزار قدیمیتر و سادهتر برای نمایش و تغییر مجوزها
- icacls: ابزار جدیدتر با قابلیت پشتیبانگیری، بازیابی، مدیریت مالکیت و سطح یکپارچگی
- PowerShell: گزینه مناسبتر برای خودکارسازی و مدیریت حرفهای ACLها
ابزارهای مرتبط
برای مدیریت مجوزها، مالکیت و تنظیمات امنیتی میتوان از ابزارهای زیر نیز استفاده کرد:
SetACLبرای مدیریت پیشرفته ACLchmodبرای تغییر مجوزها، بهویژه در محیطهای شبهیونیکسtakeownبرای گرفتن مالکیت فایلها و پوشهها در ویندوز
منابع و مطالعه بیشتر
- مستندات رسمی Microsoft Docs درباره
cacls - مستندات رسمی Microsoft Docs درباره
icacls - زبان تعریف توصیفگر امنیتی؛ بخش اول
- دستورهای ReactOS
جمعبندی
cacls هنوز در محیطهای قدیمی و مستندات گذشته دیده میشود، اما برای مدیریت امنیتی ویندوزهای جدید، icacls و PowerShell گزینههای بهروزتر و قابلاعتمادتری هستند.