Секрети ntfs - права, дозволу і їх успадкування, білі віконця
Секрети NTFS - права, дозволу і їх успадкування
До ак і в реальному світі, в світі комп'ютерів і інтернету є речі, якими ми можемо мати і є речі, якими ми володіти не можемо. А не можемо тому, що не маємо на них прав. Пояснювати, для чого власне були придумані всі ці дозволи і права доступу, вважаємо, не потрібно. Якби їх не було, будь-який користувач міг би переглядати, змінювати і видаляти будь-які не належать йому файли не тільки на локальних машинах, але і на серверах.
З поняттями прав і дозволів на файли більш-менш знайомі всі користувачі. Але що насправді вони собою представляють і як система визначає, який файл можна переглядати або змінювати, а який ні? Давайте спробуємо розібратися.

Почнемо з того, що велика частина всіх даних зберігається на дисках у вигляді файлів, до яких користувачі тим чи іншим чином отримують доступ. Приклад, коли користувач отримує доступ до файлів не безпосередньо, а через веб-сервер, ми розглядати не будемо. Скажемо лише, що такі дані, крім інших дозволів, також мають спеціальний дозвіл share. наявність якого перевіряється при зверненні до віддаленого сервера.
Атрибути і ACL
При роботі через сервер права доступу видаються сервером, при безпосередній же роботі з дисками через інтерфейс локальної машини права доступу видаються на рівні файлової системи NTFS. Як це працює? А ось як. Кожен записаний в NTFS файл являє собою не тільки дані, крім них він також зберігає службову інформацію - атрибути і ACL (Access Control List). До речі, атрибути і ACL мають не тільки файли, але і папки.

Що таке атрибути файлу, ви, в принципі, повинні знати самі. Прихований, системний, індексований або Неіндексований, доступний тільки для читання, готовий до архівування - все це називається атрибутами і проглядається у властивостях файлу або папки. За права ж доступу відповідають метадані ACL. І якщо атрибути описують властивості об'єкта, то ACL вказує, хто саме і які дії з цим об'єктом може виробляти. ACL також називають дозволами.
Структуру ACL можна представити у вигляді таблиці з трьома колонками.

Перша колонка містить унікальний ідентифікатор користувача (SID). друга - опис прав (read, write і т.д.). третя - прапор. вказує дозволено конкретному SID користуватися цими правами чи ні. Він може приймати два значення: true (так) і false (немає).

Основних прав доступу в NTFS чотири:
• Read дозволяє тільки читання файлу.
• Write дозволяє читання та запис.
• Modify дозволяє читання, запис, перейменування, видалення і редагування атрибутів.
• Full Control дає користувачеві необмежену владу над файлом. Крім усього перерахованого, має права Full Control користувач може редагувати метадані ACL. Всі інші права доступу можливість зміни ACL не пропонують.
власник об'єкта
Крім атрибутів і дозволів, кожен об'єкт в файлової системі NTFS має свого власника. Таким може виступати локальний адміністратор, користувач, TrustedInstaller, система і т.д. Власник може змінювати права доступу до свого файлу, однак локальний адміністратор має право призначити власником такого файлу самого себе, отже, отримати на нього повні права, тобто Full Control.
спадкування
Так як файлів на диску може бути дуже багато і велика їх частина розташовується у вкладених каталогах, для зручного і швидкого зміни їх прав доступу необхідний якийсь механізм. Для цього в NTFS є така річ як успадкування.

Правило успадкування просте і укладається воно в одну формулювання: при своєму створенні кожен дочірній об'єкт автоматично успадковує дозволу найближчого батьківського об'єкта. Наведемо приклад. Якщо ви створили папку «А». а в ній папку «Б». то папка «Б» матиме ті ж дозволу, що і папка «А». Отже, всі файли в папці «Б» отримають дозволу папки «А».

Явні і неявні дозволу
Всі дозволи, які успадковуються автоматично, іменуються неявними (implicit). І навпаки, дозволу, які встановлюються вручну шляхом зміни ACL. називаються явними (explicit). Звідси випливають два правила:
• На одному рівні вкладеності забороняє дозвіл має більш високий пріоритет. Якщо для одного SID було задано і дозволяє, і забороняє дозвіл, то діяти буде заборона.
• Явна дозвіл має більш високий пріоритет, ніж неявне. Якщо заборона на якийсь об'єкт був успадкований від батька, а потім на нього було встановлено явне дозвіл, то воно отримає пріоритет.
Таким чином в NTFS формуються комбінації дозволів і заборон. І якщо розташувати пріоритети дозволів в порядку убування, то отримаємо приблизно таку картину:

Особливості успадкування при копіюванні і переміщенні файлів
До цього моменту ми говорили про спадкування при створенні файлів в батьківських або дочірніх каталогах. У випадках копіювання або переміщення об'єкта правила успадкування змінюються.
• При копіюванні об'єкта з одного тому на інший, наприклад, з диска «С» на диск «D» копіюється об'єкт завжди отримує права або дозволу того розділу або розташованого в ньому каталогу, в який він копіюється. Ті ж правила діють при переміщенні файлів між різними томами.
• При копіюванні в межах одного тому копіюється об'єкт отримує ACL від найближчого вищого батьківського каталогу.
Для початку цього цілком достатньо, щоб мати більш-менш чітке уявлення про те, як працюють закони дозволів в NTFS. Насправді дозволів в файлової системі існує набагато більше дозволів. Більшості простих користувачів їх знати необов'язково, а ось майбутнім системним адміністраторам такі знання можуть дуже навіть стане в нагоді.