ACL мониторинг и отчетность
Мне нужен инструмент / скрипт, который будет сообщать в настоящее время определенные разрешения для данного пути.
- Если разрешения для поддерева такие же, как и для его родителя, все поддерево должно быть опущено.
- Файлы должны быть перечислены только в том случае, если права доступа отличаются от содержимого каталога.
- Вывод должен быть компактным (в отличие от cacls/icacls) и в виде простого текста, чтобы я мог передать его в SVN.
Существует ли что-то подобное?
2 ответа
Звучит так, как будто это может сделать то, что вы после. Это не код PowerShell, но я люблю игрушки sysinternals.
Утилита setacl сделает то, что вы ищете, с дополнительным преимуществом возможности "восстановить" списки ACL, сохраненные в файле, в действующей файловой системе. Я использовал setacl аналогично тому, что вы описываете, включая автоматическое "восстановление" списков ACL как части скрипта для извлечения и развертывания приложения из-под контроля версий.
Синтаксис командной строки для setacl, возможно, запутанный и сложный. Чтобы сохранить ACL из иерархии папок в файл, который вы будете делать:
SetACL.exe -on "\\server\share\source-folder" -ot file -actn list -lst "f:sddl;w:d,s,o,g" -rec cont -bckp "output-file.txt"
Объекты (файлы или папки), которые наследуют все свои списки ACL от родительского объекта, не будут перечислены в выходных данных (поэтому будут отображаться только объекты, для которых установлены ACL).