Старый ящик Windows 2003, содержащий общие папки, которые выводятся из эксплуатации. Есть общая папка, внутри этой папки по одной папке на пользователя. В каждой папке этот пользователь добавлен в систему безопасности с полными разрешениями. Затем любой пользователь создал подпапки ниже этого ...
Я хочу сделать так, чтобы они могли только читать из своих папок в течение следующего месяца до вывода из эксплуатации. Поэтому удалите полные права доступа и права записи для каждого пользователя.
В Linux это будет chmod -R 550. (где раньше было что-то вроде 770)
Похоже, что CACLS - это то, что я хочу использовать в мире Windows, но похоже, что вам нужно будет указать для него имя пользователя. Я не могу просто лишить права записи для *. Поэтому мне понадобится какой-то рекурсивный пакетный сценарий в окне Windows 2003 для нескольких тысяч папок, чтобы прочитать имя пользователя, файл и изменить права доступа к файлам для этого имени пользователя.
Это похоже на головную боль, даже если это работает (я не уверен, что это не сломает все).
Есть способ попроще? Например, если я добавлю разрешения для объекта «Все» в корневую папку и откажу ему в разрешении на запись, будет ли это иметь приоритет над отдельными разрешениями пользователей, указанными ниже? Или есть способ, которым я не вижу, чтобы лишить разрешения на запись, не определяя каждого пользователя / папки в сценарии?
Я считаю, что нашел подходящий несложный сценарий, способный делать то, что мне нужно.
for /F "tokens=1,2,3 delims=:" %%i in (fixacl.lst) do xcacls d:\share\%%i /T /g CONTOSO\%%i:R Administrators:F /Y
Это должно взять список имен пользователей (или список каталогов, так как каждый каталог имеет связанного пользователя, и наоборот, 1: 1) и перезаписать разрешения, рекурсивно с доменом \ username: readonly и Administrator: full control. Поскольку он основан на списке, мне не нужно беспокоиться о подкаталогах с разными именами.
В грубом коде psudo ...
For each line in the file fixacl.lst
Grab the name and set it to the variable %%i
then xcalcs on the directory of that name
With xcalcs options for recursive and replace
Read Only for that user
Full control for the administrator
and Yes to everything
Один из способов сделать это - предоставить Domain Users
сгруппируйте соответствующие разрешения в родительской папке и проверьте Replace all existing inheritable permissions on all descendants with inheritable permissions from this object
Установите флажок в расширенных параметрах безопасности в родительской папке. Это заменит разрешения для всех дочерних папок разрешениями из родительской папки.
Самый простой ответ - изменить права доступа к самому общему ресурсу. Измените группу пользователей или пользователей по отдельности, если они были добавлены в общий ресурс таким образом, из того, что они должны читать.