Как я могу изменить разрешения для папки, включая подпапки?
2 ответа
Если вы не хотите делать это из графического интерфейса, вы можете использовать программные cacls
командной строки, используя параметр /T.
(или используйте icacls
который является новой версией cacls).
Если вы хотите использовать графический интерфейс, щелкните правой кнопкой мыши папку, выберите "Свойства", затем перейдите на вкладку "Безопасность". Нажмите Advanced, затем нажмите Change Permissions. Добавьте пользователя / группу, для которых вы хотите дать разрешения (и выберите разрешения, которые вы хотите предоставить), затем установите флажок "Заменить все разрешения дочернего объекта на унаследованные разрешения от этого объекта".
ОБНОВЛЕНИЕ: вчера я ел собачью еду, еще один сценарий реального мира, когда нам нужно было сбросить все разрешения для папки с несколькими миллионами файлов в ней (и удалить наследование):
Это было на Windows Server 2008 R2, поэтому вам нужно запустить CMD Prompt от имени администратора (рекомендуется для Server 2008 R2 и выше). По приглашению CMD:
icacls E:\Store\*.* /grant:r "OURDOMAIN\Domain Admins":F /grant OURDOMAIN\ITAdmins:F /T /C /inheritance:r /Q
,
Чтобы объяснить каждую часть этой команды:
- Icacls
- команда
- E:\Store\*.*
- папка и файлы, которые требуют сброса прав
- / Грант: г
- предоставить разрешения и заменить все существующие разрешения
- "OURDOMAIN\Администраторы домена"
- пользователь / группа, которой мы даем разрешения (кавычки необходимы, потому что у "Администраторов домена" есть пробел)
- : F
- предоставить разрешения на полный доступ
- / грант
- предоставить дополнительные разрешения (не нужно: r на этот раз)
- OURDOMAIN\ITAdmins
- дополнительный пользователь / группа, чтобы дать разрешения
- : F
- предоставить разрешения на полный доступ
- / Т
- применить к подпапкам тоже
- / C
- Продолжить при ошибках файла (например, Отказано в доступе)
- / Q
- Подавить все сообщения об успехе, т.е. не сообщать мне о миллионах файлов, для которых были применены разрешения, просто скажите, какие из них не удалось
Для любых файлов, которые терпят неудачу, вам может потребоваться запустить TAKEOWN
затем снова запустить команду icacls (для файлов с ошибками):
takeown /F E:\\Store /A /R /D Y
Возможно, вы захотите направить вывод в файл, потому что нет "тихой" опции при takeown
.
Использовать takeown /?
чтобы увидеть другие доступные варианты.
Просто используйте:
ICACLS "PATH OF DIRECTORY (FOLDER)" /grant "USER":F /T
В следующем примере я устанавливаю разрешение для всех для всех подпапок / файлов в папке с именем Hardik на моем диске D. тогда мой cmd-код будет таким,
ICACLS "D:\Hardik\*" /grant "Everyone":F /T
Для более подробной информации, пожалуйста, перейдите по этой ссылке.