cacls چیست؟ آشنایی با دستور مدیریت مجوزهای ویندوز

Cacls
📅 26 خرداد 1405 📄 452 کلمه 🔗 منبع اصلی

چکیده

cacls ابزار قدیمی خط فرمان ویندوز برای نمایش و تغییر مجوزهای فایل و پوشه است. در نسخه‌های جدیدتر، icacls جایگزین توانمندتر آن شده و امکاناتی مانند پشتیبان‌گیری و بازیابی ACLها را ارائه می‌دهد.

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 برای مدیریت پیشرفته ACL
  • chmod برای تغییر مجوزها، به‌ویژه در محیط‌های شبه‌یونیکس
  • takeown برای گرفتن مالکیت فایل‌ها و پوشه‌ها در ویندوز

منابع و مطالعه بیشتر

  • مستندات رسمی Microsoft Docs درباره cacls
  • مستندات رسمی Microsoft Docs درباره icacls
  • زبان تعریف توصیفگر امنیتی؛ بخش اول
  • دستورهای ReactOS

جمع‌بندی

cacls هنوز در محیط‌های قدیمی و مستندات گذشته دیده می‌شود، اما برای مدیریت امنیتی ویندوزهای جدید، icacls و PowerShell گزینه‌های به‌روزتر و قابل‌اعتمادتری هستند.

جمع‌بندی

اگر با cacls در اسکریپت‌های قدیمی روبه‌رو شدید، آن را درک کنید؛ اما برای مدیریت جدید، icacls یا PowerShell انتخاب امن‌تر و کامل‌تری است.