محافظت از فایل ها با مجوزهای NTFS در ویندوز- قسمت سوم

مجوز های مختلف: * ترکیب این مجوز ها با سه گزینه Allow و Deny و  ندان یک مجوز (خالی) حالت های بیشماری را ایجاد می کند. همچنین مجوز ها روی فایل و فلدر ها متفاوت است.

مجوز های پیشرفته

۱٫ Full Control : تمام مجوزها
۲٫ Traverse Folder/ Execute File : اجازه حرکت به داخل فلدر، آنچه در نکته ۱ توضیح داده شده بود می باشد. با داشتن این مجوز چنانچه کاربر مجوز مشاهده خود فلدر را نداشته باشد اما می تواند در صورت داشتن مجوز به فایل های داخل فلدر دسترسی پیدا کند.Execute File اجازه اجرای فایل های اجرایی exe است.
* همانطور که در نکته ۱ اشاره شد، به صورت پیش فرض گروه EveryOne دارای حق Bypass Traverse Checking هستند، و در صورت داشتن این حق، این مجوز بی اثر است.
۳٫ List Folder/ Read Data : مجوز نمایش فایل ها و فلدرهای داخلی و همچنین نمایش محتویات یک فایل غیر اجرایی است.
۴٫ Read Attributes : مجوز خواندن ویژگی ها (صفات) یک فایل یا فلدر. همانند Hidden یا Read-only یا Archive . این مجوز در امکان تغییر صفات بی اثر است. این صفات توسط NTFS تعیین می شوند.
۵٫ Read Extended Attributes : اجازه نمایش صفات اضافی و Data Stream یک فایل یا فلدر می باشد. این صفات توسط برنامه ها معین می شوند.این مجوز در امکان تغییر صفات بی اثر است.
۶٫Create File / Write Data : امکان ساختن یک فایل جدید. این همان مجوزی است که در بحث مالکیت به آن اشاره شد. همچنین امکان ویرایش را نیز تعیین می کند.
۷٫ Create Folders / Append Data : اجازه ایجاد یک فلدر در داخل فلدری که مجوز روی آن اعمال می شود. Append Data مجوز  تغییر، حذف یا بازنویسی یک فایل است و فقط روی فایل ها اعمال می شود.
۸٫ Write Attribute : اجازه ویرایش آنچه در ۴ گفته شد.
۹٫ Write Extended Attributes :اجازه ویرایش آنچه در ۵ گفته شد.
۱۰٫ Delete Subfolders and files : اجازه حذف فایل ها یا فلدر های داخلی بدون آنکه روی آن فایل یا فلدر مجوز delete وجود داشته باشد.
۱۱٫ Delete : مجوز پاک کردن یک فایل یا فلدر
۱۲٫ Read Permission : مجوز خواندن مجوز ها
۱۳٫ Change Permission : مجوز تغییر دادن مجوز ها.
۱۴٫ Take Ownership : مجوز گرفتن مالکیت  یک فایل یا فلدر. مشابه آنچه در ۲ گفته شده، به کاربرانی که حق گرفتن مالکیت را داشته باشند بی اثر است. برای اطلاعات دقیق تر بحث مالکیت را بخوانید.

مجوز های ساده

۱۵٫ Full Control : معادل ۱ است.
۱۶٫ Read & Execute : خواندن فایل ها و صفات آن ها  و اجرای فایل های اجرایی
۱۷٫ Modify : حذف یا ویرایش یک فایل یا فلدر
۱۸٫ List Folder Contents : مشاهده فایل ها و فلدر های داخلی
۱۹٫Write : ایجاد فایل و فلدر، تغییر صفات
۲۰٫Read : مشاهده فایل ها و فلدر های داخلی، نمایش مالک، مجوزهاو صفات

گرفتن مالکیت:
۱٫ روی فایل یا پوشه مورد نظر کلیک راست کنید و Properties را بزنید.
۲٫ در فسمت Security، روی دکمه Advanced کلیک کنید.
۳٫ به زبانه (Tab) تعیین مالک یعنی Owner بروید و دکمه Edit را بزنید.
۴٫ اکنون خود یا فرد دیگری را به عنوان مالک انتخاب کنید.
۵٫ چنانچه می خواهید تغییر مالکیت روی فایل و فلدر های داخلی نیز اعمال شود گزینه Replace Owner On Subcontainers and Objects را چک بزنید و سپس OK کنید.

بازبینی (Auditing):

برای Auditing روی یک resource خاص علاوه بر اعمال تنظیمات مربوطه روی آن باید ، در تنظیمات audit policy نیز auditing برای object ها نیز فعال باشد. در ضمن برای جلوگیری از افزایش حجم ، انبوه شدن گزارش ها و وقت گیر بودن و دشوار بودن خواندن log ها همواره تلاش کنید تا auditing ها را بهینه تنظیم نمایید. انتخاب گزینه های متعدد سبب این خواهد شد که تعداد بسیاری log نوشته شود، که این علاوه بر انکه ممکن است باعث شود تا برخی از لاگ ها نخوانده حذف شوند، کارایی لاگ مانیتورینگ کاهش یابد. برخی معمولا فقط دسترسی های ناموفق را لاگ می کنند چرا که ایم سوال را مهم تر می دانند: چه کسانی نتوانسته اند دسترسی پیدا کنند و می خواستند دسترسی پیدا کنند؟

برای فعال سازی بازبینی (Auditing) روی یک فایل خاص باید مراحل زیر را انجام دهید:
۱٫ روی فایل یا پوشه مورد نظر کلیک راست کنید و Properties را بزنید.
۲٫ در فسمت Security، روی دکمه Advanced کلیک کنید.
۳٫ به زبانه (Tab) تعیین مالک یعنی Auditing بروید و دکمه Edit را بزنید.
۴٫ مشابه آنچه در اعمال مجوزها انجام دادید، می توانید بازبینی را تنظیم کنید.

* تاکید می کنم باید در Audit Policy، سیاست Object Access را فعال کنید.

اکنون با استفاده از Event Viewer می توانید لاگ ها را بخوانید. برای دسترسی به Event Viewer در run وارد کنید EVENTVWR.msc و در قسمت Security می توانید لاگ ها را بخوانید. خواندن لاگ ها مهارت خاصی نیاز دارد که مجالش در اینجا نیست.

استفاده از دستور XCOPY و حل مشکل حذف شدن مجوز در زمان کپی کردن:

در گذشته در خصوص Copy و Cut کردن و تغییر مجوز ها صحبت شد. اکنون در خصوص کپی کردن همراه با مجوز ها و… بحث می کنیم.
تذکر:همانطور که گفته شده بود، باید در مقصد دارای مجوز Write و یا Create Folder باشید.

دستور XCOPY برای کپی کردن یک فایل یا فلدر همراه با فلدر ها و فایل های داخلی کاربرد دارد. ترکیب (Syntax) کلی آن به فرم زیر است.

xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s] [/e] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]

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

–  E : فایل ها و فلدر ها را کپی می کند حتی اگر خالی باشند.
–  H : فایل های مخفی (Hidden) را نیز کپی می کند.
–  k : تمام صفات را کپی می کند. به صورت پیش فرض صفت Read-only کپی نمی شود.
–  O : مالکیت ها و در مجوز ها را کپی می کند. منظور از کپی مجوز ها کپی ACL است.
–  X : تنظیمات Auditing را نیز کپی می کند.
* دانستن تمام سوییچ های این دستور بسیار مفید است.

نکته مهم : با استفاده از دستور Xcopy نمی توان از به ارث رسیدن مجوز های مقصد جلوگیری کرد. بنابراین در مقصد باید شرایط لازم ایجاد شود. به عنوان مثال مجوز های Deny ممکن است مشکل ساز شوند.

مثال: کپی کردن فلدر OldDocs که در والیوم C قرار دارد به مسیر D:erfantaheri به صورت زیر است:

xcopy c:olddocs d:erfantaheri /O /X /E /H /K

یادآوری می کنم برای اطلاعات بیشتر در زمینه این دستور می توانید از سوییچ ؟ ، Help & Support و Technet استفاده کنید.

مجوز ها روی خط فرمان:

حتما در مورد اهمیت داستن دستور ها و کارکردن با خط فرمان اطلاعات کافی دارید. در گذشته از ابزار cacls استفاده می شد. از ویندوز ویستا دستور icacls نیز اضافه شده. در اینجا با چند مثال قصد داریم با دستور icacls قدری آشنا شویم.

ترکیب (Syntax) کلی به شکل زیر است:

icacls <FileName> [/grant[:r] <Sid>:<Perm>[…]] [/deny <Sid>:<Perm>[…]] [/remove[:g|:d]] <Sid>[…]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<Policy>[…]]

icacls <Directory> [/substitute <SidOld> <SidNew> […]] [/restore <ACLfile> [/c] [/l] [/q]]

برخی از سوییچ ها:

t : عملیات را برای تمام فایل ها و فلدر های داخلی انجام می دهد.
c : عملیات را بدون توجه به هر error انجام می دهد. البته error ها نمایش داده می شوند.
–  save : تمام acl ها را برای استفاده های بعدی در یک فایل acl ذخیره می کند.
restore : از یک فایل acl مجوز ها را اعمال می کند.
– setowner : مالک یک فایل را تغییر می دهد.
– reset : تمام مجوز ها را به مجوز های به ارث رسیده باز می گرداند.
– grant : چنانچه با r همراه باشد، تضمین می کند که کاربر یا گروه معین شده مجوز لازم را دارد، و مجوز جدید روی مجوز قبلی نوشته می شود. چنانچه بدون r باشد، مجوز های جدید به acl اضافه می شوند.
– deny : دسترسی را سلب می کند. یک ACE جدید برای سلب مجوز اضافه می کند.
– remove : تمام ACE های مربوط به یک SID را حذف می کند. چنانچه با g همراه باشد، فقط ACE های allow یا در واقع ACE های مربوط به سوییچ Grant را حذف می کند. اگر با d همراه باشد فقط ACE های Deny یا در واقع ACE های مربوط به سوییچ Deny را حذف می کند.

لیست معادل مجوز ها در خط فرمان:

مجوز های ساده

F  معادل Full Control – M  معادل Modify – RX  معادل Read & Execute – R  معادل Read W  معادل Write

مجوز های پیشرفته

D (delete) – RC (read control)WDAC (write 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 (delete child)RA (read attributes)WA (write attributes)

مثال ۱: دستور زیر، تمام مجوز های مربوط به فلدر erfantaheri و فلدرها و فایل های داخل آن را در یک فایل ACL ذخیره می کند.

icacls c:erfantaheri  /save aclfile /t

مثال ۲: دستور زیر، تمام مجوز های فایل ها و پوشه های درون فلدر erfantaheri را از روی تمام فایل های ACL که در آن فلدر وجود دارد، باز می گرداند.

icacls c:erfantaheri /restore aclfile


مثال ۳:
دستور زیر، تضمین می کند که کاربر erfan دارای مجوز Delete و Write نسبت به فلدر erfantaheri و تمام محتویات آن  است.

icacls c:erfantaheri /grant User1:(d,w) /t


مثال ۴:
دستور زیر، دسترسی کاربر BadUser را نسبت به فایل important سلب می کند. در واقع معادل Deny Full Control است.

icacks important.doc /deny BadUser:f

تذکر مهم: فراموش نکنید که CMD را با مجوز مدیریتی باز کنید.( Run as administrator ) برای اطلاعات بیشتر اینجا را بخوانید.

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

10 دیدگاه در محافظت از فایل ها با مجوزهای NTFS در ویندوز- قسمت سوم

  1. سلام خسته نباشید
    ممنون از وبلاگ علی و خوبتون

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

    sajad_syd@yahoo.com

  2. slam dost golam moshkel man ine k mikham hardamo b system haye dg bzanam va nmikham k virous be on nofoz kone nazaram in bod k faghat permition red be hard bdam ama moshkel ine k har useri ejaze taghir in permition ha ro dare aya rahi hast ta az taghir in permition ha dar tamam system ha joro giri kard ya sharayet jori bashe k baraye taghir pass beporse va lazem be taghir dar gp nabashe ?
    mamnon misham k javab ro baram email koni merci az saite khobet

پاسخ دهید

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