Налаштування дозволів файлової системи NTFS.
Файлова система NTFS використовується в Windows з незапам'ятних часів. Якщо бути точніше, то перша версія NTFS з'явилася ще в Windows NT 3.1, в далекому 1993 році. Але не дивлячись на свій солідний вік, NTFS досі є основною файловою системою в Windows і заміни їй поки не передбачається. NTFS підтримує безліч корисних функцій, однією з яких є система розмежування доступу до даних з використанням списків контролю доступу (access control list, ACL).Про те, як грамотно налаштовувати дозволу на файли і папки в файлової системі NTFS і піде сьогодні мова.
Для початку трохи теорії.
Інформація про всі об'єкти файлової системи NTFS, розташованих на томі, зберігається в головній таблиці файлів (Master File Table, MFT). Кожному файлу або папці відповідає запис в MFT, в якій міститься спеціальний дескриптор безпеки (Secirity Descriptor).Дескриптор безпеки включає в себе два списки ACL:
• System Access Control List (SACL) - системний список контролю доступу. Використовується в основному для аудиту доступу до об'єктів файлової системи;
• Discretionary Access Control List (DACL) - дискретний (виборчий) список контролю доступу. Саме цей список формує дозволу файлової системи, за допомогою яких відбувається управління доступом до об'єкту.Надалі кажучи ACL ми будемо мати на увазі саме DACL.
Кожен список ACL містить в собі набір записів контролю доступу (Access Control Entry, ACE). Кожен запис включає в себе наступні поля:
• Ідентифікатор безпеки (SID) користувача або групи, до яких застосовується ця запис;
• Маска доступу, визначає набір дозволів на даний об'єкт;
• Набір прапорів, що визначають, чи можуть дочірні об'єкти успадковувати дану ACE;
• Тип ACE (дозвіл, заборона або аудит).
Примітка. Якщо в дескрипторі безпеки відсутній ACL, то об'єкт вважається незахищеним і отримати до нього доступ можуть всі бажаючі. Якщо ж ACL є, але в ньому відсутні ACE, то доступ до об'єкта закритий для всіх.
І коротко про те, як відбувається доступ до об'єкта, захищеного ACL.При вході користувача в систему підсистема безпеки збирає дані про його облікового запису і формує маркер доступу (access token). Маркер містить ідентифікатор (SID) користувача і ідентифікатори всіх груп (як локальних, так і доменних), в які користувач входить. І коли користувач запитує доступ до об'єкта, інформація з маркера доступу порівнюється з ACL об'єкта і на підставі отриманої інформації користувач отримує (або не отримує) необхідний доступ.
Закінчимо з теорією і перейдемо до практики. Для знущань створимо в корені диска C папку RootFolder.
Базові дозволу
Для управління дозволами ми будемо використовувати вбудовані засоби провідника. Для того, щоб дістатися до ACL, в провіднику вибираємо папку, натискаємо на ній правою клавішею миші і в контекстному меню вибираємо пункт Properties (Властивості).
Потім переходимо на вкладку Security (Безпека), на якій можна побачити поточні дозволу. Ось це власне і є ACL папки (в злегка скороченому вигляді) - зверху користувачі і групи, знизу їх дозволу. Зверніть увагу, що замість SID-а в таблиці відображаються імена.Це зроблено виключно для зручності користувачів, адже сама система при визначенні доступу оперує ідентифікаторами. Тому, наприклад, неможливо відновити доступ до файлів віддаленого користувача, створивши нового користувача з таким же ім'ям, адже новий користувач отримає новий SID і буде для операційної системи абсолютно іншим користувачем.
Для переходу до редагування дозволів треба натиснути кнопку «Edit».
як приклад я видам права на папку користувачеві Kirill (тобто себе). Перше, що нам треба зробити - це додати нового користувача в список доступу. Для цього тиснемо кнопку «Add»
вибираємо потрібного користувача і тиснемо ОК.
Користувач доданий і тепер треба видати йому необхідні дозволи. Але перед цим давайте розглянемо детальніше основні (базові) дозволу файлової системи:
• List Folder Contents (Перегляд вмісту директорії) - дозволяє зайти в папку і переглянути її вміст;
• Read (Читання) - дає право на відкриття файлу \ папки на читання, без можливості зміни;
• Read & execute (читання і виконання) - дозволяє відкривати файли на читання, а також запускати виконувані файли;
• Write (Запис) - дозволяє створювати файли \ папки і редагувати файли, без можливості видалення;
• Modify (Зміна) - включає в себе всі перераховані вище дозволу.Маючи дозвіл Modify можна створювати, редагувати і видаляти будь-які об'єкти файлової системи;
• Full Control (Повний доступ) - включає в себе дозвіл Modify, крім того дозволяє змінювати поточні дозволу об'єкта.
При додаванні користувача в список доступу йому автоматично видаються права на читання і запуск.
Я скористаюся службовим становищем