برای دریافت اطلاعات بیشتر و خرید آموزش خط فرمان ویندوز به تی ام ال مارکت مراجعه کنید.

مشخص کردن سطح دسترسی به فایلها با CMD

مشخص کردن سطح دسترسی به فایلها با CMD (ویرایش فایل پرمیشن ویندوز با CMD)

مجوز فایل ها یا File Permission یکی از ویژگیهای مهم ویندوز میباشد که سطح دسترسی کاربران به فایلها را در درایو های NTFS مشخص میکند. یعنی با استفاده از این ویژگی میتوانید سطح دسترسی به تک تک فایلهای کامپیوتر خود را برای کاربران آن تعیین کنید. مثلا مشخص کنید کاربر A به کلیه فایلهای پوشه Apps دسترسی داشته باشد اما کاربر B نتواند به این فایلها دسترسی داشته باشد.

در این آموزش قصد ندارم به مباحث تئوری File Permission ویندوز بپردازم چرا که قبلا اینکار را در پستی با نام مشخص کردن مجوز فایل ها در ویندوز انجام داده ام و در فصل دوم آن یعنی پست آموزش ویرایش مجوزها در ویندوز به مباحث عملی آن پرداخته ام. در این آموزش قصد دارم نحوه ویرایش مجوز ها را با دستور ICACLS توضیح دهم که از طریق CMD سطوح دسترسی به فایلهای خود را برای کاربران تان مشخص کنید. در ادامه همراه با تی ام ال منیجر باشید.

بررسی نمودن سطوح دسترسی کاربران

ابتدا بگذارید نحوه بررسی کردن File Permission را با CMD توضیح دهم. برای بررسی نمودن مجوز فایلها باید از دستور ICACLS به همراه نام پوشه مورد نظر خود استفاده کنید. برای مثال:

ICACLS Windows

icacls-software

همانطور که در تصویر بالا مشاهده میکنید ابتدا نام حساب های کاربری ذکر شده و در جلوی آنها در علامت پرانتز یک حرف نمایش داده میشود (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

icacls-deny-access

در دستور بالا گفته شده کاربر TMLMANAGER نتواند به پوشه Software و تمام فایلها و پوشه های زیر مجموع آن دسترسی داشته باشد.

همچنین از پارامتر /Q برای نمایش ندادن پیام های موفقیت آمیز بودن عملکرد برای تک تک فایلها استفاده شده است.

حذف مجوزهای صادر شده برای فایلها

همانطور که میتوانید مجوز دسترسی Grant یا Deny را به یک فایل اضافه کنید میتوانید این مجوزها را حذف کنید. برای مثال در بالا مجوز دسترسی کامل به پوشه Software داده شده است. برای حذف این مجوز باید از پارامتر /Remove استفاده کنید.

نحوه استفاده از پارامتر Remove با دیگر پارامتر های دستور ICACLS متفاوت است. به مثال زیر توجه کنید:

ICACLS Software /Remove:d TMLMANAGER /T /Q

icacls-remove-deny

در دستور بالا گفته شده دسترسی 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

در صورت داشتن هر گونه سوال یا انتقاد تی ام ال منیجر را از محبت خود محروم نکنید.


برای دریافت نسخه PDF مقاله های سایت ابتدا در سایت ثبت نام کنید تا بتوانید به کلیه مقالات به صورت کاملا رایگان دسترسی پیدا کنید. ورود به سایت | ثبت نام در سایت

 

به نظر شما ممکنه کسی با استفاده از کلید های زیر این مطلب رو به اشتراک بذاره؟
انجمن آی تی یاران
محمد برغمدی

محمد برغمدی

امام علی علیه السلام: با مردم آنگونه معاشرت كنيد، كه اگر مرديد بر شما اشك ريزند، و اگر زنده مانديد، با اشتياق سوي شما آيند.

22 دیدگاه روی “مشخص کردن سطح دسترسی به فایلها با CMD

  • آذر 2, 1395 در 10:18
    Permalink

    لطفا نحوه تغییر مالکیت فایلها رو هم بگید در ضمن باید بگم پارامتر Reset واقعا کمک کننده است چون خیلی وقت ها پرمیشن ها خراب میشن و باید دسترسی ها رو تصحیح کرد.
    عالی بود.

    پاسخ
    • محمد برغمدی
      آذر 2, 1395 در 10:27
      Permalink

      میتونید از دستور Takeown برای اینکار استفاده کنید. البته یکی از پارامترهای دستور ICACLS میتونه مالکیت فایلها رو تغییر بده اما دستور Takeown خیلی بهتر کار میکنه
      بله بارها برای خود من چنین اتفاقی افتاده ویندوز عوض شده و تمامی Permission ها خراب شدن و مجبور شدم به صورت دستی به حالت اولیه برگردونمشون.
      موفق و پیروز باشید.

      پاسخ
  • بهمن 17, 1395 در 01:36
    Permalink

    سلام خسته نباشید
    این روش رو برای فولدر windowsapps استفاده کردم جواب نداد
    ادمین هم هستم اما بعضی فولدر ها در ویندوز رو دسترسی ندارم
    روشی برای دسترسی به فولدری که گفتم میدونید؟
    ممنونم

    پاسخ
    • محمد برغمدی
      بهمن 17, 1395 در 02:59
      Permalink

      سلام جلال جان
      میشه بگید چه روشی رو استفاده کردید؟
      پوشه WindowsApp کجاست؟ منظور شما همون پوشه C:\Windows یا چیز دیگه؟
      لطفا دستور که استفاده کردید رو بنویسید

      پاسخ
  • بهمن 17, 1395 در 03:08
    Permalink

    سلام مجدد
    C:\Program Files\windowsapps
    ویندوز 10 فکر میکنم داره این فولدر رو
    البته ویندوز 8 هم استور داره احتمالا باشه
    دسترسی رو خود ویندوز فکر میکنم محدود کرده
    دستور دقیقا همون چیزی که شما گفتید استفاده کردم اما failed داد
    چند تا فولدر دیگه هم هست داخل درایو C که آنتی ویروس دسترسی داره چیزی رو پاک کنه اما ریستور نمیتونه بکنه برام جالب بود چطوری میتونم دسترسی پیدا کنم بهشون
    ممنونم از پیگیریتون <3

    پاسخ
  • محمد برغمدی
    بهمن 17, 1395 در 05:12
    Permalink

    علیک سلام 🙂
    مالک پوشه ای ذکر شده خود ویندوز (TrustedInstaller) که برای امنیت بیشتر دسترسی شما رو به این پوشه منع کرده، برای تغییر Permission و دسترسی به این پوشه اول از همه باید ماکلیتش رو از TrustedInstaller به حساب کاربری خودتون یا گروه Administrators تغییر بدید. بعد میتونید با دستور بالا دسترسی کامل رو به این پوشه بدید. برای تغییر مالکیت هم میتونید از دستور Icacls به همراه پارامتر /setowner استفاده کنید هم از دستور takeown ولی فکر کنم اگر تغییر مالکیت بدید برگشت مالکیت به TrustedInstaller سخت باشه

    پاسخ
  • مرداد 7, 1396 در 02:29
    Permalink

    با دستور cmd زیر میتونین دسترسی پوشه ها رو به حالت عادی برگردونین
    CACLS *.* /Grant Users:F /t

    پاسخ
  • مهر 6, 1396 در 09:53
    Permalink

    بسیار عالی
    ممنون از جناب برغمدی

    پاسخ
  • دی 12, 1396 در 18:18
    Permalink

    سلام خسته نباشید
    من یکسری فایل دارم تو پوشه ای بنام user که تو درایو f هارد دیسکم هست
    خودم قبلا deny زدم الان allow نمیتونم بزنم چون کلا اون قسمتو نمیاره و باید تک تک فایل هارو برم از قسمت advance درست کنم که تعدادشون زیاده و این کار غیر ممکن
    این دستور هم که میزنم میگه این فولدر پیدا نشد
    چکار کنم؟

    پاسخ
  • بهمن 3, 1396 در 16:58
    Permalink

    سلام و خسته نباشید
    مدتی هست که مشکل بزرگ گریبان گیرم شده لطفا کمک کنید

    تا زمانی که ویندوز و آنتی ویروس اصلی بود هیچ مشکلی نداشتم اما از موقعی که ویندوز عوض کردم
    مشکلات پشت سر هم …
    مثلا بعد از ریستارت درایوها شیر میشن
    یا خود به خود یوزر اکانت ساخته میشه
    یا کیبورد و موس بیشتر اوقات موس عملکرد خوبی نداره و سیستم کند میشه

    اگر هم درایوها یا ادمین یا آی پی سی رو از حالت share با دستور net share متوقف میکنم بعد از ریست همه چیز به حالت اول برمیگرده لطفا کمک کنید

    اکثر راهها رو امتحان کردم
    فقط fdisk نکردم
    چکار کنم
    واقعا باید هزینه های هنگفت بدم و از ویندوز اصلی استفاده کنم
    با تشکر از سایت کامل و خوبتون
    ببخشید اگه مطلب مرتبط نیست

    پاسخ
    • محمد برغمدی
      بهمن 4, 1396 در 08:30
      Permalink

      سلام سلامت باشید
      مشکلی که برای ویندوز تون پیش اومده هیچ ربطی به اورجینال بودن یا کرکی بودن ویندوز نداره
      سیستم عامل شما ویروسی شده به همین خاطر که بعد از ریست دوباره ویروسهای که در استارت اپ هستند اجرا میشن و درایو هاتون رو به اشتراک میزارن
      اگر کارهای که بهتون میگم رو به درستی انجام بدید مشکل سیستم تون برطرف میشه:
      ۱- ابتدا Startup ویندوز تون رو بررسی کنید ببینید آیا برنامه یا فایل ناشناسی وجود داره یا خیر، اگر وجود داشت باید همشو پاک کنید. (مدیریت استارتاپ ویندوز)
      ۲- بخش Task Scheduler رو بررسی کنید و در صورت وجود Task های ناشناس یا مشکوک، هرچی که بهش شک دارید رو حذف کنید. (آموزش Task Scheduler)
      ۳- بخش سرویس های سیستم تون رو بررسی کنید و در صورتیکه سرویس ناشناسی رو پیدا کردید غیر فعالش کنید. (از ابزار msconfig استفاده کنید و از بخش Services تیک مربوط به سرویس ها رو مخفی سازی سرویسهای مایکروسافت رو بذارید و باقی سرویس هاشو غیر فعال کنید)
      ۴- یک آنتی ویروس خوب مثل Bitdefender یا Kaspersky نصب کنید و بعد از بروزرسانی، سیستم تون رو کاملا باهاش اسکن کنید. (از نسخه trail یا ۳۰ روزه استفاده کنید و کرکش هم نکنید)
      ۵- دوباره درایوهاتون رو از اشتراک دربیارید اما نه با CMD بلکه به صورت گرافیکی و بعد سیستم تون رو ریستارت کنید.
      موارد بالا جزو راه حل اولی که میتونید انجامش بدید، راه حل دوم:
      ۱- با یک سیستم که مطمئن هستید ویروسی نیست سیستم عامل ویندوز رو از سایت soft98 دانلود کنید و روی یک رسانه (USB – DVD) رایت یا بوتیبلش کنید.
      ۲- پارتیشن های مربوط به ویندوز تون رو فرمت کنید و ویندوز جدید رو نصب کنید.
      ۳- یک آنتی ویروس خوب مثل Kaspersky یا Bitdefender رو دانلود و نصب کنید بعد به غیر از پارتیشن ویندوز کلیه درایو هاتون رو باهاش اسکن کنید.
      نکته: به هیچ وجه قبل از اسکن سیستم تون وارد درایوهای هارد دیسک تون نشید.
      ترجیحا کلیه فایلهای اجرایی مثل نرم افزار ها رو هم از سیستم تون حذف کنید.
      موفق باشید.

      پاسخ
      • بهمن 6, 1396 در 14:44
        Permalink

        ممنون از لطفتون
        من اکثر موارد رو انجام دادم مثلا با همین وویروس اسکن ها که فرمودید اما ویروسی پیدا نشد
        و یک سرویس که به نظرم مشکوک بود هر کاری کردم متوقف نمیشد
        rpcss
        و در مورد یک در رابطه با ویندوز امکانش هست که چون ویندوز از نسخه غیر اورجینال استفاده میشه و از طریق kms اکتیو میشه این مشکلات رو داشته
        در ضمن از طریق cmd
        با دستورات مختلف متوجه پورت های مشکوک مثل 443.139.135 و از این قبیل شدم که در حال شنود هستند و سرعت نت رو خیلی کند کردند
        در زمانی که متوقفشون میکنم خوبن اما بعد از چند دقیقه سیستم ریست میشه
        میفهمم که حمله اینترنتی صورت میگیره اما نمیتونم جلوشو بگیرم
        تشکر از لطفتون

        پاسخ
        • محمد برغمدی
          بهمن 7, 1396 در 07:47
          Permalink

          سلام
          سرویس RpCss یا Remote Procedure Call مربوط به خود ویندوز و به صورت پیشفرض هم فعاله، از این بابت نگران نباشید.
          ببینید در کل نمیشه گفت KMS صدردصد امنیت داره چون ممکنه ویروسی بشه یا اینکه هکر ها ازش سوء استفاده کنند و … اگر بخواهیم اینطور حساب کنیم باید ویندوز و کل برنامه های که داریم استفاده میکنیم رو خریداری کنیم.
          پورتهای که نام بردید همه مربوط به خود ویندوز هستند. 135 مربوط به سرویس RpCss و پورت 139 و 445 هم مربوط به سرویس SMB و سرویس NetBIOS هستند. (فعال بودن این پورت ها مشکلی رو پیش نمیاره)
          برای امنیت بیشتر و راحت شدن خیال خودتون میتونید از یک Internet Security یا Firewall جداگانه مثل Kaspersky Internet Security یا GlassWire استفاده کنید.
          موفق باشید

          پاسخ
  • بهمن 4, 1396 در 11:10
    Permalink

    باسلام
    بنده نیاز دارم از طریق سرور یک پوشه در درایو ویندوز کلاینت ها ایجاد کنم و دسترسی full به آن پوشه بدهم.از دستور icacls استفاده کردم بعضی جاها کار میکنه بعضی جاها نه
    و مشکل دیگه هم اینه که لازم یوزر و پسورد ادمین رو جهت اعمال دسترسی در batch فایل بیارم.

    پاسخ
    • محمد برغمدی
      بهمن 5, 1396 در 08:58
      Permalink

      سلام
      لطفا اطلاعات کاملی رو ارائه کنید. دستور icacls جاهایی که کار نمیکنه چه خطایی میده؟
      اگر فایل batch شما فقط در دسترس خودتون قرار داره مشکلی نیست میتونید بیارید اما اگر قرار کلاینت هاتون هم دسترسی داشته باشند …

      پاسخ
      • بهمن 10, 1396 در 08:59
        Permalink

        با سلام
        ممنون بابت جوابتون
        کلا من نیازمندیم الان اینه که لازم دارم یک برنامه رو به صورت run as administrator اجرا کنم!اگه نتونم نیاز است روی پوشه نصبی دسترسی اعمال کنم!
        خطایی هم که الان دارم عدم دسترسی است

        پاسخ
  • بهمن 30, 1396 در 12:11
    Permalink

    سلام اگر سیستم شبکه باشد باید برای همه تعریف کنیم که دسترسی به چه صورت باشد؟
    و اینکه من میخوام هیچ کسی به این سیستم دسترسی نداشته باشد

    پاسخ
    • محمد برغمدی
      بهمن 30, 1396 در 17:18
      Permalink

      سلام
      خیر نیاز نیست برای همه تعریف کنید که چطور به سیستم شما دسترسی داشته باشند، کافیه هیچ فایلی رو به اشتراک نذارید همین.

      پاسخ
  • بهمن 30, 1396 در 16:31
    Permalink

    با سلام
    چرا من نمیتونم مثلا در درایو c یه فایل با حجم مشخص بسازم(fsutil file createnew c:\a 99999)؟ ارور میده
    نمیشه یکار کنم انجام بده و از حالت فک کنم امنیتی خارج شه(البته بتونم از طریق cmd انجام بدم و کد دستوری باشه)؟؟؟

    پاسخ
  • مهر 16, 1397 در 00:36
    Permalink

    سلام خسته نباشید
    ببخشید مدتی هست که ویندوز من هر 10 دقیقه یکبار ارور میده
    make sure you typed the name correctly.and then try again
    این متن اروره و من واقعا کلاه شدم از دستش ممنون میشم کمکم کنید

    پاسخ
    • محمد برغمدی
      مهر 16, 1397 در 12:03
      Permalink

      سلام دوست عزیز
      لطفا پیام خطا رو کامل وارد کنید، ولی در کل ممکنه خطا مروبط به بخش Task Scheduler باشه
      ممکنه در Task Scheduler وظیفه زمانبندی شده ای وجود داشته باشه که هر 10 دقیقه بخواهد اجرا بشه اما فایل اجرایی که از طریق بخش Action آدرس دهی شده، حذف شده باشه (برای اطلاعات بیشتر به آموزش Task Scheduler مراجعه کنید)
      یا ممکنه یکی از فایلهای مورد نیاز خود سیستم عامل خراب یا حذف شده باشند و این خطا مربوط به اون باشه، برای تعمیر سیستم عامل هم میتونید از آموزش تعمیر ویندوز با DISM یا SFC استفاده کنید.
      موفق باشید.

      پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *