Главная > Windows > Изменение NTFS прав на папки и файлы из командной строки
Изменение NTFS прав на папки и файлы из командной строки25 декабря 2010. Разместил: dimon |
Давайте попробуем разобраться, как можно настраивать NTFS права на папки и файлы, используя командную строку Windows (cmd).
Для тех кто не знает, что ни когда не слышал о NTFS правах попробую кратко и просто объяснить что это такое. NTFS права, они же Access Control List — список контроля доступа, это список прав пользователей при доступе к файлам и папка. Это способ ОС защитить файлы и папки от несанкционированного доступа. Когда пользователь пытается получить доступ к файлу, ОС открывает таблицу NTFS прав (ACL) и смотрит что разрешено данному пользователю делать с данным файлом. Например, для файла доступ, к которому пользователь пытается получить, ему даны права только на чтение. В этом случае он сможет открыть файл, что-нибудь в нем изменить, но при попытке сохранить изменения он получит сообщение о том, что у него нет прав на выполнение данной операции. Более подробно вы можете почитать Википедию. Для управления ACL (NTFS правами на файлы и папки) в операционной системе есть встроенная консольная утилита CACLS. Вот ее man: D:\>cacls /? Просмотр и изменение таблиц управления доступом (ACL) к файлам CACLS имяФайла [/T] [/E] [/C] [/G имя:доступ] [/R имя [...]] [/P имя:доступ [...]] [/D имя [...]] имяФайла Вывод таблиц управления доступом. /T Замена таблиц управления доступом для указанных файлов в текущем каталоге и всех подкаталогах. /E Изменение таблицы управления доступом вместо ее замены. /C Продолжение при ошибках отказа в доступе. /G имя:доступ Определение разрешений для указанных пользователей. "доступ": R Чтение W Запись C Изменение (запись) F Полный доступ /R имя Отзыв разрешений для пользователя (только вместе с /E). /P имя:доступ Замена разрешений для указанного пользователя. "доступ": N Отсутствует R Чтение W Запись C Изменение (запись) F Полный доступ /D имя Запрет на доступ для указанного пользователя. Для выбора нескольких файлов используются подстановочные знаки. В команде можно указать несколько пользователей. Сокращения: CI - Наследование контейнерами (Container Inherit). ACE будет унаследован папками. OI - Наследование объектами (Object Inherit). ACE будет унаследован файлами. IO - Только наследованное (Inherit Only). ACE не будет применим к текущему файлу/папке. D:\> Почитав ман, мы можем заметить, что с помощью этой утилиты можно изменять, создавать, удалять NTFS права для файлов и папок из cmd. Чтобы понять, как работает данная утилита, давайте рассмотрим возможности CACLS на примерах. У нас на диске D:\ есть тестовая папочка с именем Papka. Посмотрим NTFS права, назначенные для этой папки: D:\>cacls d:\papka d:\papka NT AUTHORITY\SYSTEM:(OI)(CI)F BUILTIN\Администраторы:(OI)(CI)F BUILTIN\Пользователи:(OI)(CI)R СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ:(OI)(CI)(IO)F D:\> Для того чтобы разобраться, что же нам выдала cacls, рассмотрим по строкам ее ответ и эти же права если смотреть их из под GUI: NT AUTHORITY\SYSTEM:(OI)(CI)F – см. следующую строку – там такие же права; BUILTIN\Администраторы:(OI)(CI)F – группа Администраторы имеет полные права (буква F), права наследуются файлами (буквы OI), наследуются папками (буквы CI): BUILTIN\Пользователи:(OI)(CI)R – группа Пользователи имеет права только чтение (буква R), права наследуются файлами (буквы OI), наследуются папками (буквы CI): СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ:(OI)(CI)(IO)F – владелец файла (тот пользователь, который создал файл) имеет полные права (буква F), права наследуются файлами (буквы OI), наследуются папками (буквы CI) и имеют только наследование (буквы IO): А вот более подробно: Чтобы дать полные права новому пользователю на нашу тестовую папку из командной строки нужно выполнить cacls с такими параметрами: D:\>cacls d:\papka /E /G dimon:F обработан каталог: d:\papka D:\> А теперь проверим результат: D:\>cacls d:\papka d:\papka NT AUTHORITY\SYSTEM:(OI)(CI)F BUILTIN\Администраторы:(OI)(CI)F BUILTIN\Пользователи:(OI)(CI)R СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ:(OI)(CI)(IO)F COMP\dimon:(OI)(CI)F D:\> Можно заметить, что появилась новая строка, которая говорит нам, что локальный пользователь dimon имеет полные права (буква F), права наследуются файлами (буквы OI), наследуются папками (буквы CI). Проверим это и в проводнике: Удалить доступ юзеру dimon к нашей тестовой папочке можно командой: D:\>cacls d:\papka /E /R dimon обработан каталог: d:\papka Проверим: D:\>cacls d:\papka d:\papka NT AUTHORITY\SYSTEM:(OI)(CI)F BUILTIN\Администраторы:(OI)(CI)F BUILTIN\Пользователи:(OI)(CI)R СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ:(OI)(CI)(IO)F D:\> Строка, соответствующая правам пользователя dimon, исчезла. А теперь и удалим папку совсем: D:\>rmdir d:\papka D:\> Надеюсь, что я все просто и подробно расписал. Если есть вопросы – добро пожаловать в комментарии Вернуться назад |