Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Как сделать наглядный листинг папок и файлов с указанием всех прав доступа (http://forum.oszone.net/showthread.php?t=99522)

chickaboo 31-01-2008 10:51 729685

Как сделать наглядный листинг папок и файлов с указанием всех прав доступа
 
На 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 729725

Для просмотра разрешений может оказаться полезной ACLView

amel27 31-01-2008 11:38 729733

Цитата:

Цитата chickaboo
на новом сервере вместо локальных групп вижу просто номера SIDов локальных групп от старого сервера. »

если речь о тупой замене SID'ов, то может пригодиться статья:
You cannot resolve local groups when you migrate files between member servers of different domains

monkkey 31-01-2008 12:23 729769

ACLView, может?
Долго я рылся )))

HLT 31-01-2008 13:51 729843

Вопрос вдогонку: как найти папки/файлы с потерянными правами?

Есть сервер, который админился долгое время разными людьми.
На нем ~3000 папок, ~500000 файлов
На некоторые файлы/папки права раздавались не группами, а персонально пользователям.
Многие пользователей уже давно удалены, соответственно в "security" показываются просто левые SIDы.
Оно, в принципе, не мешает, но хотелось бы всё причесать.

cacls *.* /T | find "{" >1.txt и разгребание руками не подходит: в итоге получается куча сидов, но непонятно к каким объектам они относятся =(

Может, кто-нибудь встречал в природе какой-нибудь утиль, который покажет только папки/файлы с неопознанными сидами? (с возможностью посмотра папки/файла и корректировки ACL)

chickaboo 31-01-2008 13:51 729845

Проблему решил благодаря Extended Change Access Control List
Он мне вывел подробную информацию по шаре с подпапками с помощью команды:
xcacls.vbs путь к шаре /F /S > файл отчёта
...дальше уже сделаю его более наглядным в Excel.

Спасибо за ссылку на ACLView и kb250267 тоже пригодятся!

Pili 31-01-2008 16:43 730008

Добавлю, что есть ещё AccessEnum от sysinternals
ещё бы наоборот, найти утилиту, позволяющую собрать инф-ию по пользователям на права в директориях (как в Novell Netware есть)

amel27 01-02-2008 05:34 730388

Цитата:

Цитата HLT
как найти папки/файлы с потерянными правами? »

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

Цитата:

Цитата Pili
ещё бы наоборот, найти утилиту, позволяющую собрать инф-ию по пользователям на права в директориях »

можно постановку задачи конкретней?

Pili 01-02-2008 08:16 730431

Цитата:

Цитата amel27
можно постановку задачи конкретней? »

Куда уж конкретней ) Выбирается пользователь домена, нажимаешь кнопку типа "scan", выдает список каталогов (опционально с подкаталогами), где этот пользователь имеет права, с указанием какие конкретно права (по флажкам R, W и т.п.) Такое есть в Nowell Netware (возможность встроена в Netware Administrator)

amel27 01-02-2008 09:47 730479

Цитата:

Цитата Pili
Выбирается пользователь домена, нажимаешь кнопку типа "scan", выдает список каталогов (опционально с подкаталогами), где этот пользователь имеет права, с указанием какие конкретно права (по флажкам R, W и т.п.) »

отобрать список файлов/каталогов для пользователя с маской доступа можно и через SubInACL... для детальной фильтрации прав подойдет любой язык с поддержкой битовых операций.
Цитата:

Цитата Pili
Такое есть в Nowell Netware (возможность встроена в Netware Administrator) »

в курсе, 10 лет стажа под неТварью... зато там не было WSH... :)

Snegaa 15-02-2008 16:54 740864

А можно ли отобрать список файлов/каталогов для пользователя с маской доступа через ACLView?
Не могу там ничего подобного найти.


Время: 12:28.

Время: 12:28.
© OSzone.net 2001-