
مشخص کردن سطح دسترسی به فایلها با CMD (ویرایش فایل پرمیشن ویندوز با CMD)
مجوز فایل ها یا File Permission یکی از ویژگیهای مهم ویندوز میباشد که سطح دسترسی کاربران به فایلها را در درایو های NTFS مشخص میکند. یعنی با استفاده از این ویژگی میتوانید سطح دسترسی به تک تک فایلهای کامپیوتر خود را برای کاربران آن تعیین کنید. مثلا مشخص کنید کاربر A به کلیه فایلهای پوشه Apps دسترسی داشته باشد اما کاربر B نتواند به این فایلها دسترسی داشته باشد.
در این آموزش قصد ندارم به مباحث تئوری File Permission ویندوز بپردازم چرا که قبلا اینکار را در پستی با نام مشخص کردن مجوز فایل ها در ویندوز انجام داده ام و در فصل دوم آن یعنی پست آموزش ویرایش مجوزها در ویندوز به مباحث عملی آن پرداخته ام. در این آموزش قصد دارم نحوه ویرایش مجوز ها را با دستور ICACLS توضیح دهم که از طریق CMD سطوح دسترسی به فایلهای خود را برای کاربران تان مشخص کنید. در ادامه همراه با تی ام ال منیجر باشید.
بررسی نمودن سطوح دسترسی کاربران
ابتدا بگذارید نحوه بررسی کردن File Permission را با CMD توضیح دهم. برای بررسی نمودن مجوز فایلها باید از دستور ICACLS به همراه نام پوشه مورد نظر خود استفاده کنید. برای مثال:
ICACLS Windows
همانطور که در تصویر بالا مشاهده میکنید ابتدا نام حساب های کاربری ذکر شده و در جلوی آنها در علامت پرانتز یک حرف نمایش داده میشود (F) که این حرف مشخص میکند سطح دسترسی به این پوشه چقدر است.
حروف اختصاری | سطح دسترسی |
(F) | دسترسی کامل (خواندن – نوشتن – حذف – ویرایش) |
(M) | اصلاح کردن (Modify) |
(RX) | خواندی و اجرایی (Read & Execute) |
(R) | فقط خواندنی (Read Only) |
(W) | فقط نوشتنی (Write Only) |
خب شاید بپرسید غیر از حروف ذکر شده حرف های دیگری هم در پرانتز های مختلف دیده میشود پس آنها به چه معنا هستند؟ معنا و کاربرد باقی حروف را در جدول پایانی صفحه بخوانید.
مجوز دادن به کاربران برای دسترسی به فایلها
فرض کنید یک کاربر با نام TMLMANAGER در ویندوز دارید و میخواهید این کاربر به پوشه Software دسترسی کامل داشته باشد. برای اینکه به TMLMANAGER مجوز دسترسی کامل بدهیم باید از دستور ICACLS با پارامتر Grant استفاده کنیم. برای مثال:
ICACLS Software /Grant TMLMANAGER:F
در دستور بالا ابتدا به پوشه Software اشاره شده سپس از پارامتر Grant برای دادن مجوز دسترسی به حساب کاربری TMLMANAGER استفاده شده است. که سطح دسترسی آن با علامت : در جلوی نام حساب کاربری مشخص شده.
همانطور که در جدول میبینید حرف F مشخص کننده دسترسی کامل یا Full Access میباشد. در صورتی که میخواهید از باقی سطوح دسترسی استفاده نمایید باید از حروف اختصاری مربوط به آنها استفاده کنید.
نکته: در دستور بالا گفته شده TMLMANAGER فقط به پوشه Software دسترسی کامل داشته باشد. در صورتی که میخواهید کاربر مورد نظر شما به پوشه ها و فایلهای زیر مجموع پوشه ها هم دسترسی داشته باشد باید از پارامتر /T در آخر دستور استفاده کنید. برای مثال:
ICACLS Software /Grant TMLMANAGER:F /T
منع کردن کاربران از دسترسی به فایلها
برای جلوگیری از دسترسی کاربران به فایلها و پوشه ها میتوانید از دو حالت استفاده کنید. یک دادن دسترسی Deny به فایلها، دو گرفتن دسترسی Grant از فایلها. مثلا برای اینکه کاربر A به پوشه Software دسترسی نداشته باشد باید از دستور ICACLS به همراه پارامتر /Deny استفاده کنید. به مثال زیر توجه کنید:
ICACLS Software /Deny TMLMANAGER:F /T /Q
در دستور بالا گفته شده کاربر TMLMANAGER نتواند به پوشه Software و تمام فایلها و پوشه های زیر مجموع آن دسترسی داشته باشد.
همچنین از پارامتر /Q برای نمایش ندادن پیام های موفقیت آمیز بودن عملکرد برای تک تک فایلها استفاده شده است.
حذف مجوزهای صادر شده برای فایلها
همانطور که میتوانید مجوز دسترسی Grant یا Deny را به یک فایل اضافه کنید میتوانید این مجوزها را حذف کنید. برای مثال در بالا مجوز دسترسی کامل به پوشه Software داده شده است. برای حذف این مجوز باید از پارامتر /Remove استفاده کنید.
نحوه استفاده از پارامتر Remove با دیگر پارامتر های دستور ICACLS متفاوت است. به مثال زیر توجه کنید:
ICACLS Software /Remove:d TMLMANAGER /T /Q
در دستور بالا گفته شده دسترسی Deny از حساب TMLMANAGER به پوشه Software حذف شود. در صورتی که از حرف g در جلوی علامت : استفاده میشد دسترسی Grant حذف میشد. پس حرف g مشخص کنند Grant میباشد و حرف d مشخص کننده Deny
نکته: استفاده از حروف بزرگ g و d در جلوی پارامتر /Remove صحیح نمیباشد. و در صورت استفاده از حروف بزرگ دستور به درستی عمل نخواهد کرد.
بازگرداندن مجوزها به حالت پیشفرض
یکی از مزیت های کاربردی دستور ICACLS ریست کردن یا بازگرداندن مجوزها به حال پیشفرض میباشد. مثلا زمانی که شما از دستورات مختلف برای اضافه نمودن مجوزها به یک یا چند فایل استفاده میکنید ممکن است بخواهید مجوز های اضافه شده را به حالت اولیه باز گردانید برای اینکار باید از پارامتر /Reset در دستور ICACLS استفاده کنید. به مثال زیر توجه کنید.
ICACLS Software /Reset /T /Q
تهیه نسخه پشتیبان از مجوز فایلها
یکی دیگر از مزیت های دستور ICACLS گرفتن نسخه پشتیبان از مجوز فایلها و پوشه ها میباشد. یعنی میتوانید از مجوز فایلهای کامپیوتر تان نسخه پشتیبان تهیه کنید تا در صورت بروز هر گونه مشکل از آن نسخه استفاده کنید.
برای تهیه نسخه پشتیبان از مجوز ها باید از پارامتر /Save استفاده کنید. به مثال زیر توجه کنید:
ICACLS Software /Save Permission /T
در مثال بالا از مجوزهای پوشه Software و تمام فایلها و پوشه های زیر مجموع آن یک نسخه پشتیبان در فایلی با نام Permission تهیه میشود.
برای بازگردانی مجوزهای ذخیره شده باید از پارامتر /Restore استفاده کنید. به مثال زیر توجه کنید:
ICACLS Software /Restore Permission
پارامترهای کمک کننده دستور ICACLS
از پارامتر /Q برای از بین بردن پیام های موفقیت استفاده میشود.
از پارامتر /T برای مشخص کردن فایلها و پوشه های زیر مجموع استفاده میشود.
از پارامتر /C برای رد کردن خطاها و ادامه عملکرد تغییر مجوزها استفاده میشود.
از پارامتر /L برای اعمال تغییر مجوزها روی Symbolic Link ها استفاده میشود.
حروف اختصاری مجوزها و عملکرد آنها
حروف اختصاری | عملکرد |
DE | حذف یا Delete |
RC | خواندن کنترل یا Read Control |
WDAC | نوشتن DAC |
WO | نوشتن مالکیت یا Write Owner |
S | همگامسازی یا synchronize |
AS | دسترسی به سیستم امنیتی یا access system security |
MA | نهایت اجازه یا maximum allowed |
GR | خواندن عمومی یا Generic Read |
GW | نوشتن عمومی یا Generic Write |
GE | اجرای عمومی Generic Execute |
GA | عمومی بودن همه یا Generic All |
RD | خواندن داده ها و فهرست گیری از دایرکتوری یا read data/list directory |
WD | نوشتن داده ها و اضافه کردن فایل یا write data/add file |
AD | اضافه کردن پوشه و پوشه زیر مجموع یا append data/add subdirectory |
REA | خواندن ویژگیهای تمدید شده یا read extended attributes |
WEA | نوشتن ویژگیهای تمدید شده یا write extended attributes |
X | اجرا و انتقال یا execute/traverse |
DC | حذف Child |
RA | خواندن ویژگیها یا read attributes |
WA | نوشتن ویژگیها یا write attributes |
حروف اختصاری | عملکرد |
(OI) | object inherit |
(CI) | container inherit |
(IO) | inherit only |
(NP) | don’t propagate inherit |
(I) | permission inherited from parent container |