Показать полную графическую версию : Как сделать наглядный листинг папок и файлов с указанием всех прав доступа
chickaboo
31-01-2008, 10:51
На Microsoft Windows Server 2000 SP4 имеется шара со сложной структурой доступа. В разделе Security прописаны доступы на порядка 20 локальных групп, несколько глобальных, а также доступ к папкам и ФАЙЛАМ разграничивается и на уровне пользователей. Причём у всех папок и файлов настройки доступов абсолютно разные. Необходимо составить наглядную схему вида: папка/файл - кому доступ - какой доступ... Для внесения изменений, упрощения структуры и отказа от локальных групп доступа с последующим переносом шары на 2003 server.
Я думал в Windows Server 2003 Resource Kit Tools есть что-то для решения моих задач, но что-то не нашёл.
И ещё. Наверняка ведь есть продукт типа Microsoft Printer Migrator только для переноса шар? Но с этим есть грабли. На новом сервере мы отказываемся от локальных групп.
При копировании шары с сохранением прав доступа на новом сервере вместо локальных групп вижу просто номера SIDов локальных групп от старого сервера.
dimich22
31-01-2008, 11:33
Для просмотра разрешений может оказаться полезной ACLView (http://www.nativecs.com/page.en.php?f=data/en/aclview.desc)
на новом сервере вместо локальных групп вижу просто номера SIDов локальных групп от старого сервера. »если речь о тупой замене SID'ов, то может пригодиться статья:
You cannot resolve local groups when you migrate files between member servers of different domains (http://support.microsoft.com/kb/250267)
ACLView (http://nativecs.ru/page.en.php?f=data/en/aclview.desc), может?
Долго я рылся )))
Вопрос вдогонку: как найти папки/файлы с потерянными правами?
Есть сервер, который админился долгое время разными людьми.
На нем ~3000 папок, ~500000 файлов
На некоторые файлы/папки права раздавались не группами, а персонально пользователям.
Многие пользователей уже давно удалены, соответственно в "security" показываются просто левые SIDы.
Оно, в принципе, не мешает, но хотелось бы всё причесать.
cacls *.* /T | find "{" >1.txt и разгребание руками не подходит: в итоге получается куча сидов, но непонятно к каким объектам они относятся =(
Может, кто-нибудь встречал в природе какой-нибудь утиль, который покажет только папки/файлы с неопознанными сидами? (с возможностью посмотра папки/файла и корректировки ACL)
chickaboo
31-01-2008, 13:51
Проблему решил благодаря Extended Change Access Control List (http://support.microsoft.com/kb/825751/ru)
Он мне вывел подробную информацию по шаре с подпапками с помощью команды:
xcacls.vbs путь к шаре /F /S > файл отчёта
...дальше уже сделаю его более наглядным в Excel.
Спасибо за ссылку на ACLView (http://nativecs.ru/page.en.php?f=data/en/aclview.desc) и kb250267 (http://support.microsoft.com/kb/250267) тоже пригодятся!
Добавлю, что есть ещё AccessEnum ( http://technet.microsoft.com/ru-ru/sysinternals/bb897332(en-us).aspx) от sysinternals
ещё бы наоборот, найти утилиту, позволяющую собрать инф-ию по пользователям на права в директориях (как в Novell Netware есть)
как найти папки/файлы с потерянными правами? »
1. Создать список потерянных SID'ов в текстовом файле, например при помощи CACLS, хотя у меня почему-то твой пример вместо SID выдает "<Домен для учетной записи не найден>" :dont-know ;
2. С помощью SUBINACL для каждого SID найти файлы;
3. С помощью того же SUBINACL удалить "левый" ACE.
Вот пример скрипта для п.2 и 3 - он не правит ACL, а только формирует команду... Т.е. можно вывести все в CMD-файл, проверить и только потом запустить на выполнение:@echo off
SetLocal EnableDelayedExpansion
:: файл со списком SID и путь к корню/маска
SET SIDF=SIDs.txt
SET MASK=D:\Share\*
For /F "Tokens=* Delims=" %%i In (%SIDF%) Do (
subinacl /noverbose /outputlog="%~n0.tmp" /subdirec %MASK% /findsid=%%i /display=dacl
CALL :SUPRESS_SID "%%i"
)
:: =
EXIT
:SUPRESS_SID
:: ---
For /F "UseBackQ Tokens=* Delims=" %%A In (`Type %~n0.tmp^|Find "+File"`) Do (
SET LINE_SHIFT=!LINE!
SET LINE=%%A
IF NOT "!LINE!"=="!LINE_SHIFT!" (
SET FILE=!LINE:~6!
@echo subinacl /file "!FILE!" /suppresssid="%~1"
)
)
:: ---
GOTO :EOF
ещё бы наоборот, найти утилиту, позволяющую собрать инф-ию по пользователям на права в директориях »можно постановку задачи конкретней?
можно постановку задачи конкретней? »
Куда уж конкретней ) Выбирается пользователь домена, нажимаешь кнопку типа "scan", выдает список каталогов (опционально с подкаталогами), где этот пользователь имеет права, с указанием какие конкретно права (по флажкам R, W и т.п.) Такое есть в Nowell Netware (возможность встроена в Netware Administrator)
Выбирается пользователь домена, нажимаешь кнопку типа "scan", выдает список каталогов (опционально с подкаталогами), где этот пользователь имеет права, с указанием какие конкретно права (по флажкам R, W и т.п.) »отобрать список файлов/каталогов для пользователя с маской доступа можно и через SubInACL... для детальной фильтрации прав подойдет любой язык с поддержкой битовых операций.
Такое есть в Nowell Netware (возможность встроена в Netware Administrator) »в курсе, 10 лет стажа под неТварью... зато там не было WSH... :)
А можно ли отобрать список файлов/каталогов для пользователя с маской доступа через ACLView?
Не могу там ничего подобного найти.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.