Управљање дозволама НТФС-а за мапе и датотеке из ПоверСхелл-а

Да бисте контролисали приступ датотекама и мапама у Виндовс-у, сваком објекту система (директоријуму или датотеци) НТФС додељен је посебан АЦЛ (Листа контроле приступа, Листа контроле приступа). Објект АЦЛ дефинира доступне операције (дозволе) које корисник и / или групе могу обављати с овим објектом. У већини случајева администратори Прозора користе ГУИ Филе Екплорер (својства фасцикле / датотеке -> картица Сигурност) или услужни програм конзоле ицацлс за управљање дозволама НФТС датотека и мапа. У овом ћемо чланку погледати начине управљања дозволама за објекте датотечног система НТФС из ПоверСхелл-а. Ове команде можете користити у скриптама и за аутоматизацију управљања дозволама НТФС на Виндовс датотечним серверима.

Садржај:

  • Уграђени цмдлети за управљање АЦЛ-овима у НТФС-у: Гет-Ацл и Сет-Ацл
  • За управљање дозволама из ПоверСхелл-а користимо НТФССецурити модул
  • Провера ефективних НТФС дозвола на објектима из ПоверСхелл-а

Уграђени цмдлети за управљање АЦЛ-овима у НТФС-у: Гет-Ацл и Сет-Ацл

У ПоверСхелл в5 (Виндовс 10 / Виндовс Сервер 2016) постоје два одвојена уграђена цмдлета за управљање АЦЛ-овима (укључена у Мицрософт.ПоверСхелл.Сецурити модул):

  • Гет-ацл - омогућава вам да добијете тренутни АЦЛ за одређени објект на датотечном систему НТФС;
  • Сет-ацл - користи се за додавање / измјену тренутних АЦЛ-ова објекта.

Нећемо се детаљно задржавати на овим уграђеним цмдлет-овима њихова функционалност у већини случајева је недовољна за управљање дозволама НТФС-а у стварним задацима. Размотримо само неколико типичних примера њихове употребе..

Наведите тренутног власника фасцикле (датотеке) и листу дозвола додељених НТФС:

гет-ацл Ц: \ Дриверс \ | фл

Пут: Мицрософт.ПоверСхелл.Цоре \ ФилеСистем :: Ц: \ Дриверс \
Власник: ВОРКСТАТ1 \ роот
Група: ВОРКСТАТ1 \ Недостаје
Приступ: НТ АУТХОРИТИ \ Аутентификовани корисници омогућавају измену, синхронизацију
НТ АУТХОРИТИ \ СИСТЕМ Дозволи ФуллЦонтрол
БУИЛТИН \ Администратори дозвољавају ФуллЦонтрол
БУИЛТИН \ Корисници омогућавају РеадАндЕкецуте, Синцхронизе
ВОРКСТАТ1 \ роот Дозволи промену, синхронизацију
Ревизија:
Сддл: О: С-1-5-21-3650440056-3766451173-3310994491-1001Г: С-1-5-21-3650440056-766451173-3310994491-513Д: ПАИ (А; ОИЦИ; 0к 1301бф ;;; АУ) ( А; ОИЦИ; ФА ;;; СИ) (А; ОИЦИ; ФА;;; БА) (А; ОИЦИ; 0к1200а9;;; БУ) (А; ОИЦИ; 0к1301бф ;; -37664 51173-3310994491-1001)

Као што видите, тренутна одобрења су такође представљена као низови СДДЛ - укратко смо испитали овај опис описа приступа у чланку Управљање правима за Виндовс услуге.

Дозволе за НТФС можете навести само у разумљивијем формату:

(гет-ацл Ц: \ Дриверс \) приступ

Помоћу следеће наредбе можете копирати НТФС дозволе из једне мапе и применити их у другу:

Гет-Ацл Ц: \ драјвери | Сет-Ацл Ц: \ Дистр

Да бисте извршили ову операцију, налог мора бити власник ресурса (Власник) и имати права преузимања власништва.

Главни проблем са коришћењем Сет-АЦЛ је тај што цмдлет увек покушава да промени власника ресурса, чак и ако желите само да промените НТФС дозволе. Као резултат, да бисте додали права на објект, потребно је да употребите следећу конструкцију:

$ патх = "ц: \ драјвери"
$ усер = "ВОРКСТАТ1 \ усер1"
$ Ригхтс = "Читајте, читајте и извршавајте, листаДиректорија"
$ ИнхеритСеттингс = "Контејнеринит, ОбјецтИнхерит"
$ ПропогатионСеттингс = "Нема"
$ РулеТипе = "Дозволи"
$ ацл = Гет-Ацл $ путања
$ перм = $ корисник, $ права, $ ИнхеритСеттингс, $ ПропогатионСеттингс, $ РулеТипе
$ руле = Нови објекат -ТипеНаме Систем.Сецурити.АццессЦонтрол.ФилеСистемАццессРуле -АргументЛист $ перм
$ ацл.СетАццессРуле ($ правило)
$ ацл | Сет-Ацл -Патх $ путања

Да бисте уклонили приступ НТФС фасцикли за корисника или групу:
$ патх = "ц: \ драјвери"
$ ацл = Гет-Ацл $ путања
$ рулес = $ ацл.Аццесс | где је Инхеритед -ек $ фалсе
$ таргетруле = $ правила | где је ИдентитиРеференце -ек "ВОРКСТАТ1 \ усер1"
$ ацл.РемовеАццессРуле ($ таргетруле)
$ ацл | Сет-Ацл -Патх $ путања

Да бисте онемогућили насљеђивање за фасциклу из ПоверСхелл-а:

$ патх = 'Ц: \ дист'
$ ацл = Гет-АЦЛ-Пут $ пута
$ ацл.СетАццессРулеПротецтион ($ Труе, $ Труе) # прва $ Труе означава да ли је овај директоријум заштићен, друга $ Труе - да ли да копирате тренутне дозволе НТФС
Сет-Ацл -Патх $ патх -АцлОбјецт $ ацл

Такође, помоћу Гет-ацл и Сет-Ацл, можете контролисати параметре НТФС ревизије објеката (погледајте чланак Ко је избрисао датотеку на серверу) или информације о тренутним ОУ дозволама у АД-у..

За управљање дозволама из ПоверСхелл-а користимо НТФССецурити модул

Као што рекох, уграђени модул за управљање АЦЛ-овима на објектима у ПоверСхелл-у није најприкладнији. За управљање правима НТФС датотека и фасцикли на Виндовс-у, боље је користити засебни модул галерије ПоверСхелл - НТФССсигурност. Најновија верзија НТФСС сигурносног модула (4.2.4 тренутно) може се инсталирати помоћу команде Инсталл-Модуле -Наме НТФССецурити, или преузмите ручно (линк). За ручну инсталацију довољно је да распакујете садржај архиве модула у директоријум Ц: \ Виндовс \ Систем32 \ ВиндовсПоверСхелл \ в1.0 \ Модулес \ НТФССецурити (не заборавите да откључате преузете датотеке).

Увезите НТФСС сигурносни модул у ПоверСхелл сесију:

Импорт-модул НТФССсигурност

Наведимо наредбе доступне у модулу (доступно је 36 цмдлета):

Гет-Цомманд - модул НТФСС сигурности

Листа тренутних дозвола директорија НТФС:
Гет-Итем 'ц: \ дистр' | Гет-НТФСАццесс

Као што видите, тренутна одобрења представљена су у погоднијем облику..

Да бисте одређеном кориснику одобрили и груписали групу пуна права на фасциклу, покрените наредбу:
Адд-НТФСАццесс -Патх Ц: \ дистр -Рачун 'ВОРКСТАТ1 \ цонфроом', 'БУИЛТИН \ Администраторс' -АццессРигхтс 'Фуллцонтрол' -ПассТхру

Савет. Подразумевано, цмдлети НТФСС сигурносног модула не враћају никакве податке тако да наредба приказује нове АЦЛ-ове након извршења, користите параметар Пасстхру.

Да бисте додијелили права само на највишем нивоу и не промијенили дозволе за угнијежђене објекте (само у мапи), користите наредбу:

Адд-НТФСАццесс ц: \ дата \ публиц-Цорп Цорп \ ааиванов -АццессРигхтс Измени -АпплиесТо ТхисФолдерОнли

Избришите дозволе додељене НТФС:

Ремове-НТФСАццесс -Патх Ц: \ дистр -Рачун 'ВОРКСТАТ1 \ цонфроом' -АццессРигхтс ФуллЦонтрол -ПассТхру

Сљедећа наредба може лишити наведена права на рачун за све угнијежђене објекте у наведеној мапи (наслијеђена дозвола ће се прескочити):

Гет-ЦхилдИтем -Патх Ц: \ дистр -Рецурсе | Гет-НТФСАццесс -Рачун 'ВОРКСТАТ1 \ цонфроом' -ЕкцлудеИнхеритед | Уклони-НТФСАццесс -ПассТхру

Следећа наредба може да учини администраторски рачун власником свих угнежђених објеката у директорију:

Гет-ЦхилдИтем -Патх Ц: \ дистр -Рецурсе -Форце | Сет-НТФСОвнер -Рачун 'Администратор'

Да бисте ручно избрисали сва дозвола додељена објектима директорија (наслеђена дозвола неће бити избрисана):

Гет-ЦхилдИтем -Патх Ц: \ дистр -Рецурсе -Форце | Цлеар-НТФСАццесс

Омогућите НТФС насљеђивање за све објекте у директорију:

Гет-ЦхилдИтем -Патх Ц: \ дистр -Рецурсе -Форце | Омогући-НТФСАццессИнхеританце

Да бисте приказали сва дозвола која су додељена ручно, искључујући наслеђене дозволе:

дир Ц: \ дистр | Гет-НТФСАццесс -ЕкцлудеИнхеритед

Можете да прикажете дозволе додељене одређеном налогу (немојте мешати ефективне дозволе; о њима ћемо говорити у наставку):

дир Ц: \ дистр | Гет-НТФСАццесс -Аццоунт цорп \ ааиванов

Провера ефективних НТФС дозвола на објектима из ПоверСхелл-а

Можете проверити ефективна НТФС дозвола у одређену датотеку или мапу помоћу цмдлет-а Гет-ЕффецтивеАццесс. Претпоставимо да сте дозволили приступ одређеној мапи неколико безбедносних група АД-а и сада желите да разумете да ли одређени налог (СИД) има приступ овој мапи или не. Како то постићи без пописа група АД које укључују његов налог? У овој ситуацији, функција провере ефективних дозвола НТФС помоћи ће. Рецимо да треба да проверите ефективна права на све подмапе у директорију за корисничку собу.

Гет-ЦхилдИтем -Патх ц: \ дистр -Рецурсе -Дирецтори | Гет-НТФСЕффецтивеАццесс -Рачун 'ВОРКСТАТ1 \ цонфроом' | изаберите Аццоунт, АццессЦонтролТипе, АццессРигхтс, ФуллНаме

Или можете да проверите ефективна одобрења за одређену датотеку:

Гет-Итем-Пут 'Ц: \ дистр \ мстсц.еке.манифест' | Гет-НТФСЕффецтивеАццесс -Рачун 'ВОРКСТАТ1 \ цонфроом' | Формат-лист