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

با NTFS Permissions کاربران می توانند به File ها و Folder ها دسترسی پیدا کنند و سطح دسترسی آن ها معین شود. بدیهی است که از NTFS Permissions تنها روی Volume های NTFS می توان استفاده کرد.

تذکر:Windows XP home edition امکان دسترسی به Volume های NTFS را دارا است اما امکان مشاهده و یا تغییر مجوز ها وجود ندارد.البته در شرایط خاص و یا با دستورات خاص این امر امکان پذیر است.

ACL ;Access Control List, ACE ;Access Control Entry:

NTFS با هر File و Folder ای که در یک NTFS Volume باشد یک ACL در همان Volume ذخیره می کند. ACL شامل لیستی از User ها و Group ها است که به آن ها Permission هایی داده شده. زمانی که یک User می خواهد به یک Resource دسترسی پیدا کند ACL باید دارای یک ACE باشد تا میزان دسترسی تعریف شده برای آن User مشخص شود. با توجه به این مطلب بدیهی به نظر می رسد که اگر هیچ ACE تعریف نشده باشد هیچ کدام از User های تعریف شده نمی توانند به Resource مذکور دسترسی پیدا کند. در ادامه این دو مفهوم را بهتر درک خواهید کرد. تصویر ۱

دو مجوز مختلف در اختیار داریم : Allow , Deny
– برای دسترسی داشتن مجوز Allow  می دهیم.
– برای ممانعت از دسترسی مجوز  Deny می دهیم.
– برای دسترسی نداشتن مجوز  Allow  نمی دهیم.
* برای دسترسی نداشتن از دادن مجوز Deny پرهیز می کنیم.

گزینه های متعددی برای تعیین سطح دسترسی در اختیار داریم:
با در اختیار داشتن گزینه های متعدد  می توان به هزاران شکل متمایز مجوز ها را تنظیم کرد مثلا:
– فقط قابل مشاهده باشد.
– قابل نوشتن و مشاهده باشد اما نتوان حذف کرد.
– قابل ویرایش باشد اما Attribute ها قابل ویرایش نباشند.
– قابل ویرایش باشد اما امکان ساخت فلدر جدیدی وجود نداشته باشد.
– …

تذکر: هر چند در بسیاری از  Resource ها امکان تخصیص مجوز ها وجود دارد اما NTFS Permission تنها مختص فایل ها و فلدر ها در پارتیشن های NTFS است و سایر موارد مثل Printer و یا Object ها در Active Directory Users & Computers مجوز های خاص خود را دارند که با روشی مشابه اعمال می شود اما از NTFS Permission متمایز اند.

ویرایش مجوز ها:

با ساختن یک فایل/فلدر جدید، مجوزهایی به صورت پیش فرض به آن اعمال خواهد شد که در ادامه در خصوص آن صحبت خواهیم کرد. برای ویرایش مجوز های  فعلی روی فایل یا فلدر مورد نظر خود کلیک راست کنید و سپس properties را بزنید. به زبانه (Tab) به نام Security بروید. آنچه در این زبانه مشاهده می کنید، جهت سهولت و تسریع در اعمال مجوز ها خلاصه شده است. برای دسترسی به تمام قابلیت ها در اینجا قصد داریم به حالت Advanced برویم. روی دکمه Advanced کلیک می کنیم. چنانچه در ویندوز ویستا و سرور ۲۰۰۸ هستید باید دکمه Edit را برای ویرایش بزنید و پنجره ای جدید باز خواهد شد که در آن می توانید مجوز ها را ویرایش کنید و ممکن است با UAC رو به رو شوید.

با دکمه Add می توانید یک ACE جدید ایجاد کنید. با Edit می توانید یک ACE موجود را ویرایش کنید و با Remove می توان یک ACE موجود را حذف کرد.
تذکر: هرچند هنوز در خصوص وراثت صحبت نکرده ام اما به یاد داشته باشید که برخی مجوز های به ارث برده شده قابل حذف کردن با دکمه Remove نیستند.

افزودن یک مجوز:

۱) دکمه add را می زنیم.
۲) در پنجره باز شده نام کاربر یا گروه دلخواه را وارد کنید. با گزینه Check Names می توانید اسامی وارد شده را خودکار تصحیح کنید. با زدن Advanced می توانید در میان Users و Groups و برخی از  عناصر پیش ساخته جستجو کنید. همواره توصیه می شود به علت حجم query ها وارده تا حد امکان در محیط دامین های بزرگ از جستجو در Entire Directory بپرهیزید. تصویر ۲
۳) با زدن OK پنجره Entry مربوط به Resource  باز خواهد شد. در اینجا مجوز های مورد نظر خود را اعمال کنید در آینده در خصوص برخی از پر کاربرد ترین مجوز ها صحبت خواهد شد. در قسمت Apply to می توان معین کرد که مجوز ها به چه تکه هایی اعمال شود. مثلا فقط به Subfolder ها و یا فقط به File ها درون فلدر. البته این گزینه برای فایل ها غیر فعال است. تصویر ۳
۴) OK را بزنید. با این کار یک ACE به ACL اضافه کردیم.

نکته۱: برای آسان تر شدن مدیریت، کاربران را در گروه هایی قرار دهید و به گروه ها مجوز اعمال کنید.
نکته۲:برای آسان تر شدن مدیریت،فایل ها را در چند گروه دسته بندی کنید. این در تهیه نسخه پشتیبان، ویروس یابی و… نیز به شما کمک می کند.
نکته۳:حداقل مجوز ها را اعمال کنید. مثلا اگر مجوز Allow Read کفایت می کند مجوز Allow Write ندهید.
نکته۴: از مجوز Deny بپرهیزید. و فقط در مواردی مثل سناریوی زیر از Deny استفاده کنید:
کاربر U به منابع R با توجه به مجوز های به ارث رسیده یا مجوز های گروه هایی که U عضو آن است، دسترسی دارد و می خواهید از آن جلوگیری کنید. برای دسترسی نداشتن یک کاربر فقط به او مجوز Allow ندهید. زیاده روی استفاده از Deny مدیریت را پیچیده و گاهی با مشکل رو به رو می کند. تاکید می کنم Deny کردن امنیت فرا تر از Allow ندادن را ایجاد نمی کند.

مجوز های موثر:
می توان چندین مجوز مختلف را به یکUser اختصاص داد، در این صورت مجموعی از مجوز های اختصاص یافته بر کاربر اعمال می شوند. مجوز های موثر، مجوز نهایی است که به کاربر اعمال می شود. برای محاسبه مجوز های موثر باید قوانین الویت ها را یاد بگیریم.

فرمول محاسبه: مجوزهای موثر یک کاربر نسبت به یک Resource برابر است با مجموع مجوز هایی که به خود User و گروه های که آن User در آن عضو هستند.

گاهی این فرمول به منظور سهولت درک چنین بیان می شود:
ابتدا مجوز های Allow که به کاربر و گروه هایی که کاربر در آن عضو است را اجتماع می گیریم و سپس تفاضل آن را با مجوز های Deny محاسبه می کنیم.

نکته۱٫ مجوز های File ها نسبت به مجوز های Folder ها در اولویت است.
یعنی زمانی که User به File ای که درون یک Folderاست دسترسی داشته باشد اما به Folder دسترسی نداشته باشد می تواند به File دسترسی پیدا کند. مثلا از طریق آدرسی UNC و…

\Computer_nameshareFile.*در شبکه
Drive_letter:folderfile.*محلی

البته محدود به شرایطی است که حق Bypass Traverse Checking به کاربر داده شده است. توجه کنید که در اینجا Share نامی است که Folder با آن Share شده است.

نکته۲٫ مجوز های Allow افزایشی اند!
مثلا اگر کاربری به نام U عضو دو گروه G1 و G2 باشد و گروه G1 به Resource دارای مجوز Read Allowو گروه G2 به Resource دارای مجوز Write Allowباشند User دارای هر دو مجوز خواهد بود. که

نکته۳. مجوز های Deny دارای الویت بیشتری نسبت به مجوزهای Allow هستند.
مثلا اگر کاربری به نام U عضو دو گروه G1 و G2 باشد و گروه G1 به Resource دارای مجوز Read Allowو گروه G2 دارای مجوز Read Deny به Resourceباشند User دارای مجوز Deny خواهد بود.

نکته۴٫ارث بری:
By default ، تمام مجوزها که به Folder های والد اعمال می شود بهSub-Folder ها و file های فرزند به ارث می رسد. البته می توانید فرزندان را از ارث محروم کنید و یا فرزندان خودشان ارث را قبول نکنند. درست است که ویژگی ارث بری موجود است اما حقیقتا ACL برای هر Resource متعلق به خودش است در واقع زیرساخت امنیتی برای تشخیص مجوزها به والد Resource مراجعه نمی کند. فقط جهت سهولت این خاصیت را به عنوان قانون ارث بری عنوان می شود (توسط مایکروسافت) و معمولا به متخصصین این مطلب تذکر داده می شود.

نکته۵. مجوز های مستقیم دارای الویت بالاتری نسبت به مجوز های ارث برده هستند.
مثلا اگر کاربری به نام User عضو دو گروه G1 و G2 باشد و گروه G1 به والد یک Resource دارای مجوز Read Denyو گروه G2 به خود Resource دارای مجوز Read Allowباشند User دارای مجوز allow خواهد بود.

– برای جلوگیری به ارث بردن یک فرزند از والد خود ، گزینه Inherit From Parent The Permission Entries That Apply to Child Objects را غیر فعال می کنیم. برای اجبار کردن فرزندان حتی اگر گزینه فوق را فعال شده باشد، گزینه Replace Permission Entries On All Child Objects With Shown Here That Apply to Child Object را فعال می کنیم .

مثال تصویری ۱ | مثال تصویری ۲
این مطلب ادامه دارد

پاسخ دهید

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