Дозволи NTFS, додані з командного рядка, створюють захищену кореневу папку


0

У мене є 2 типи груп - лише для читання і для читання-запису - з номером на папку:

GROUP1_RO
GROUP1_RW
GROUP2_RO
GROUP2_RW
(...)

Я б хотів створити таке дерево каталогів:

SHARE
|-MAIN_FOLDER1
| |-SUBFOLDERS
| |-FILES
|
|-MAIN_FOLDER2
| |-SUBFOLDERS
| |-FILES
|
|-MAIN_FOLDER3
(...)

Кожна група має доступ до власного MAIN_FOLDER *, а група _RO може читати лише файли, але _RW може створювати папки, видаляти папки та файли.

Я хочу захистити MAIN_FOLDERS * від випадкового видалення цього користувача _RW.

Основна мета - створити набір команд batch / cli, які підготують ці папки одна за одною з точними правами.

Спробував це зробити з icacls, але у мене виникли проблеми з кількома правами (недійсні параметри).

Я зробив це вручну, встановивши такі права:

    a) Enter Properties > Security > Advanced > Edit...
    b) Uncheck "Include inheritable permissions from this object's parent" and choose "Remove"
    c) Add group GROUP1_RO ( RO ) and set permissions:

            + Allow (( This Folder, subfolders and files ))

            * Traverse Folder / execute file
            * List folder / read data
            * Read attributes
            * Read extendet attributes
            * Read permissions

            - Deny

            * Delete

    e) Add group GROUP1_RW ( RW ) and set permissions:

            + Allow (( This Folder, subfolders and files ))

            * Full control
            - uncheck Take ownership

            - Deny

            * Delete

Але встановити все це вручну для великої кількості папок - болісно. Чи є спосіб встановити це за допомогою icacls (або чогось іншого) з різними групами?

Вітання & спасибі, Майк


Використовувати DENY - це погана практика і не потрібна. Призначте групі RO прочитання дозволу на "цю папку, папку та файли". Призначте груповий RW дозвіл на "Змінення" "підпапок і файлів" та "Читання" "Тільки для цієї папки." І так, це можна зробити за допомогою icacls, ймовірно, cacls та powerhell серед інших. Без наведення декількох прикладів того, що ви пробували, я не можу визначити, що ви провели достатню кількість досліджень, щоб спробувати відповісти на власне питання.
Appleoddity

@Appleoddity Ви могли б надати точні команди icacls для досягнення цієї мети? Як ви бачите нижче, є те, що я впорався з icacls. Я спробував Вашу версію з модифікацією для папок і файлів + читати лише цю папку, і щоб користувачі не могли створювати нові папки в головній папці.
Майк

Може, це допоможе? josephspurrier.com/…
Стрепсілс

Відповіді:


0

Можливо, мені вдалося це зробити двома способами:

I) З спадщиною:

mkdir MAIN_FOLDER1
icacls MAIN_FOLDER1 /inheritance:d
icacls MAIN_FOLDER1 /remove Everyone
icacls MAIN_FOLDER1 /grant GROUP1_RO:(OI)(CI)(RX)
icacls MAIN_FOLDER1 /grant GROUP1_RW:(OI)(CI)(RX,W,WDAC,DC)
icacls MAIN_FOLDER1 /deny GROUP1_RW:(OI)(CI)(DE)

II) Без спадщини:

mkdir MAIN_FOLDER1
icacls MAIN_FOLDER1 /inheritance:r
icacls MAIN_FOLDER1 /grant "DOMAIN\Domain Admins":(OI)(CI)(F)
icacls MAIN_FOLDER1 /grant "BUILTIN\Administrators":(CI)(F)
icacls MAIN_FOLDER1 /grant GROUP1_RO:(OI)(CI)(RX)
icacls MAIN_FOLDER1 /grant GROUP1_RW:(OI)(CI)(RX,W,WDAC,DC)
icacls MAIN_FOLDER1 /deny GROUP1_RW:(OI)(CI)(DE)

І петлі для цих дій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.