windows xp Professional восстанавливает дескрипторы безопасности после cacls / t / e / p

420
Rhino

Кто-то изменил разрешения на куче машин, используя cacls, которые исправили одну проблему, но создали большую. Я ищу способы исправить это, но, похоже, не могу вернуть его к тому, что было.

Я скопировал с помощью тестовой машины, и результат ниже. Я использовал subinacl, чтобы получить вывод.

Изменение сделано с помощью:

ECHO Y|CACLS C:\APPSYS /t /e /p User1:F 

Причина, по которой были изменены разрешения, заключалась в том, что некоторые файлы были добавлены кем-то, вошедшим в систему как администратор, и пользователям также требовался полный доступ. Я все еще хотел бы знать безопасный способ добавить usergroup1 к этим файлам, не мешая другим, которые не нуждаются в изменении. Это не статический список файлов, некоторые машины имеют только 1 или 2 файла, другие имеют 20-50 файлов, для которых user1 требует полного контроля, но не имеет разрешений.

Перед запуском ECHO "Y | CACLS C: \ APPSYS / t / e / p User1: F"

==================== +File C:\APPSYS\BIN ==================== /control=0x400 /owner =PC1125230\ORGUSER /primary group =PC1125230\none /audit ace count =0 /perm. ace count =8 /pace =PC1125230\USERGROUP1 Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =builtin\administrators Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =system Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =PC1125230\ORGUSER Type=0x0 Flags=0x10 AccessMask=0x1f01ff /pace =creator owner Type=0x0 Flags=0x1b AccessMask=0x10000000 /pace =builtin\users Type=0x0 Flags=0x13 AccessMask=0x1200a9 /pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x4 /pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x2   ============================= +File C:\APPSYS\ERROR.LOG ============================= /control=0x0 /owner =PC1125230\ORGUSER /primary group =PC1125230\none /audit ace count =0 /perm. ace count =0 

После запуска ECHO "Y | CACLS C: \ APPSYS / t / e / p User1: F"

==================== +File C:\APPSYS\BIN ==================== /control=0x0 /owner =PC1125230\ORGUSER /primary group =PC1125230\none /audit ace count =0 /perm. ace count =9 /pace =PC1125230\User1 Type=0x0 Flags=0x3 AccessMask=0x1f01ff /pace =PC1125230\USERGROUP1 Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =builtin\administrators Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =system Type=0x0 Flags=0x13 AccessMask=0x1f01ff /pace =PC1125230\ORGUSER Type=0x0 Flags=0x10 AccessMask=0x1f01ff /pace =creator owner Type=0x0 Flags=0x1b AccessMask=0x10000000 /pace =builtin\users Type=0x0 Flags=0x13 AccessMask=0x1200a9 /pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x4 /pace =builtin\users Type=0x0 Flags=0x12 AccessMask=0x2   ============================= +File C:\APPSYS\ERROR.LOG ============================= /control=0x0 /owner =PC1125230\ORGUSER /primary group =PC1125230\none /audit ace count =0 /perm. ace count =1 /pace =PC1125230\User1 Type=0x0 Flags=0x0 AccessMask=0x1f01ff 

Есть много файлов и папок, которые уникальны для разных машин, поэтому я пытаюсь найти метод, который работает на них всех без указания каждого конкретного файла.

Я использовал subinacl для предоставления группам пользователей, которым, например, запрещен доступ к файлу ERROR.LOG, и ко всем файлам и папкам в папке APPSYS, потому что было много проблем с сбоями приложений. Это решило эту проблему, но я беспокоюсь о продолжительном эффекте изменений, сделанных по сравнению с исходными настройками.

Прежде чем использовать метод subinacl для предоставления разрешений, я попытался удалить разрешение User1, но снова ERROR.LOG не возвращается к тому, что было разрешением. Я пробовал подавлять также с тем же результатом без разницы. Я попытался с помощью тестового устройства сделать резервную копию перед запуском команды cacls, а затем восстановить резервную копию с помощью subinacl, но она не восстановилась должным образом из того, что я вижу, "/ pace = builtin \ users Type = 0x0 Flags = 0x12 AccessMask = 0x4 "был удален из ACL.

У меня нет опыта работы с дескрипторами безопасности, так что извините, если это до боли очевидно или я оставил детали. Я провел последние 5 дней и ночей, читая, что я могу выяснить, что пошло не так и как исправить это с помощью пакетного процесса.

Я ограничен базовыми сценариями (windows xp pro) vb, я могу использовать инструменты из набора ресурсов и, в некоторой степени, сторонние утилиты, но опять-таки придется использовать пакетные сценарии.

0

1 ответ на вопрос

0
Rhino

Мне удалось найти решение (забыл опубликовать его здесь).

Использование xcacls.vbs со следующими используемыми аргументами:

Filename = "c:\APPSYS\" /F (All Files under current directory) /S (All Sub Directories under current directory) /T (Traverse Directories) /E (Edit ACL leaving other users intact) /I (Inheritance) ENABLE 

Это восстановило наследование файлов в папке обратно к тому, что они были, и для файла, который не имел ACE (установленный, чтобы позволить всем), они унаследовали требуемые группы пользователей.

Надеюсь, что это поможет любому, кто попал в ту же позицию.

Похожие вопросы