Сменить владельца папки ntfs
Случается, что при работе с файлами или папками Вам бывает необходимо изменить для них владельца и права доступа.
Используем модуль NTFSSecurity для управления разрешениями из PowerShell
Как я уже говорил, встроенный модуль для управления ACL на объекты в PowerShell не самый удобный. Для управления NTFS правами на файлы и папки в Windows лучше использовать отдельный модуль их галереи PowerShell – NTFSSecurity. Последнюю версию модуля NTFSSecurity (4.2.4 на данный момент) можно установить командой Install-Module -Name NTFSSecurity , или скачать вручную (линк). При ручной установке достаточно распаковать содержимое архива модуля в каталог C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity (не забудьте разблокировать скачанные файлы).
Импортируйте модуль NTFSSecurity в сессию PowerShell:
Выведем список команд, доступных в модуле (доступно 36 командлетов):
Get-Command -Module NTFSSecurity
Выведем текущие NTFS разрешения на каталог:
Get-Item 'c:\distr' | Get-NTFSAccess
Как вы видите, текущие разрешения представлены в более удобной форме.
Чтобы предоставить конкретному пользователю и группе группе полные права на папку, выполните команду:
Add-NTFSAccess -Path C:\distr -Account 'WORKSTAT1\confroom','BUILTIN\Администраторы' -AccessRights 'Fullcontrol' -PassThru
Совет. По умолчанию командлеты модуля NTFSSecurity не возвращают никаких данных, чтобы команда после выполнения выводила новые ACL, используйте параметр PassThru.
Чтобы предоставить права только на верхнем уровне и не изменять разрешения на вложенные объекты (только на папку), используйте команду:
Add-NTFSAccess c:\data\public -Account corp\aaivanov -AccessRights Modify -AppliesTo ThisFolderOnly
Удалить назначенные NTFS разрешения:
Remove-NTFSAccess -Path C:\distr -Account 'WORKSTAT1\confroom' -AccessRights FullControl -PassThru
Следующей командой можно лишить указанную учетную прав на все вложенные объекты в указанной папке (наследованные разрешения будут пропущены):
Get-ChildItem -Path C:\distr -Recurse | Get-NTFSAccess -Account 'WORKSTAT1\confroom' -ExcludeInherited |Remove-NTFSAccess -PassThru
Следующей командой можно назначить учетную запись Administrator владельцем всех вложенных объектов в каталоге:
Get-ChildItem -Path C:\distr -Recurse -Force | Set-NTFSOwner -Account 'Administrator'
Чтобы очистить все разрешения, назначенные на объекты каталога вручную (не будет удалены унаследованные разрешения):
Get-ChildItem -Path C:\distr -Recurse -Force | Clear-NTFSAccess
Включить NTFS наследование для всех объектов в каталоге:
Get-ChildItem -Path C:\distr -Recurse -Force | Enable-NTFSAccessInheritance
Чтобы вывести все разрешения, которые назначены вручную, исключая унаследованные разрешения:
dir C:\distr | Get-NTFSAccess –ExcludeInherited
Можно вывести разрешения, назначенные для определенного аккаунта (не путайте с эффективными разрешениями, речь о них ниже):
dir C:\distr | Get-NTFSAccess -Account corp\aaivanov
Использование команды takeown для того, чтобы стать владельцем объекта
Для того, чтобы изменить владельца папки или файла с помощью командной строки, имеются две команды, первая из них — takeown.
Для ее использования, запустите командную строку от имени Администратора (в Windows 8 и Windows 10 это можно сделать из меню, вызываемого правым кликом по кнопке Пуск, в Windows 7 — с помощью правого клика по командной строке в стандартных программах).
В командной строке, в зависимости от того, владельцем какого объекта вам нужно стать, введите одну из команд:
- takeown /F “полный путь к файлу” — стать владельцем указанного файла. Чтобы сделать всех администраторов компьютера владельцами, используйте параметр /A после пути к файлу в команде.
- takeown /F “путь к папке или диску” /R /D Y — стать владельцем папки или диска. Путь к диску указывается в виде D: (без слэша), путь к папке — C:\Folder (также без слэша).
Смена владельца файла или папки, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Перейдите на вкладку Владелец и нажмите кнопку Изменить.
- Выполните одно из следующих действий:
Изменение владельца файла (папки) на указанного Вами пользователя, используя командную строку.
- icacls папка\файл /setowner Пользователь параметры
Примеры:
icacls «C:\Test\file.exe» /setowner Administrtator /C /L /Q
icacls «C:\Test\file.exe» /setowner «NT SERVICE\TrustedInstaller» /C /L /Q
icacls «C:\Test\*» /setowner система /T /C /L /Q
icacls «C:\Test» /setowner Vince /T /C /L /Q
Параметры:
Сброс NTFS разрешений в Windows
С помощью утилиты icacls вы можете сбросить текущие разрешения на указанный файл или каталог (и любые вложенные объекты):
icacls C:\share\veteran /reset /T /Q /C /RESET
Данная команда включит для указанного объекта наследование NTFS разрешений с родительского каталога, и удалит любые другие права.
Восстановление NTFS разрешений с помощью iCacls
С помощью ранее созданного файла veteran_ntfs_perms.txt вы можете восстановить NTFS разрешения на каталог. Чтобы задать NTFS права на объекты в каталоге в соответствии со значениями в файле с резервной копией ACL, выполните команду:
icacls C:\share /restore c:\PS\veteran_ntfs_perms.txt /t /c
Примечание. Обратите внимание, что при импорте разрешений из файла указывается путь к родительской папке, но не имя самого каталога.
По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов:
С учетом того, что в резервной копии ACL указываются относительные, а не абсолютные пути к файлам, вы можете восстановить разрешения в каталоге даже после его перемещения на другой диск/каталог.
Другие способы стать владельцем папок и файлов
Есть и другие способы решить проблему «отказано в доступе» и быстро стать владельцем, например, с помощью сторонних программ, встраивающих пункт «Стать владельцем» в контекстное меню проводника. Одна из таких программ — TakeOwnershipPro, бесплатная и, насколько я могу судить, без чего-то потенциально нежелательного. Аналогичный пункт в контекстное меню можно добавить и путем редактирования реестра Windows.
Однако, с учетом того, что подобная задача возникает сравнительно редко, я не рекомендую устанавливать стороннее ПО или вносить изменения в систему: на мой взгляд, лучше изменить владельца элемента одним из способов «вручную».
12.05.2021
itpro
Windows 10, Windows Server 2016
комментариев 12
Для управления NTFS разрешениями в Windows можно использовать встроенную утилиту iCACLS. Утилита командной строки icacls.exe позволяет получить или изменить списки управления доступом (ACL — Access Control Lists) на файлы и папки на файловой системе NTFS. В этой статье мы рассмотрим полезные команды управления ntfs разрешениями в Windows с помощью icacls.
Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
Текущие права доступа к любому объекту на NTFS томе можно вывести так:
Команда вернет список пользователей и групп, которым назначены права доступа. Права указываются с помощью сокращений:
Перед правами доступа указаны права наследования (применяются только к каталогам):
- (OI)— наследование объектами
- (CI)— наследование контейнерами
- (IO)— только наследование
- (I)– разрешение унаследовано от родительского объекта
С помощью icacls вы можете изменить права доступа на папку.
Чтобы предоставить группе fs01_Auditors домена resource права чтения и выполнения (RX) на каталог, выполните:
icacls 'C:\Share\Veteran\' /grant resource\fs01_Auditors:RX
Чтобы удалить группу из ACL каталога:
icacls 'C:\Share\Veteran\' /remove resource\fs01_Auditors
С помощью icacls вы можете включить наследование NTFS прав с родительского каталога:
icacls 'C:\Share\Veteran\' /inheritance:e
Или отключить наследование с удалением всех наследованных ACEs:
icacls 'C:\Share\Veteran\' /inheritance:r
Также icacls можно использовать, чтобы изменить владельца файла или каталога:
icacls 'C:\Share\Veteran\' /setowner resource\a.ivanov /T /C /L /Q
Получение доступа с помощью настроек безопасности
Следующий способ — использовать лишь мышь и интерфейс Windows, не обращаясь к командной строке.
- Кликните правой кнопкой мыши по файлу или папке, доступ к которому нужно получить (стать владельцем), в контекстном меню выберите пункт «Свойства».
- На вкладке «Безопасность» нажмите кнопку «Дополнительно».
- Напротив пункта «Владелец» нажмите «Изменить».
- В открывшемся окне нажмите кнопку «Дополнительно», а в следующем — кнопку «Поиск».
- Выберите в списке пользователя (или группу пользователей), которого нужно сделать владельцем элемента. Нажмите Ок, затем — снова Ок.
- Если вы изменяете владельца папки или диска, а не отдельного файла, отметьте также пункт «Заменить владельца подконтейнеров и объектов».
- Нажмите Ок.
Бэкап (экспорт) текущих NTFS разрешений каталога
Перед существенным изменением разрешений (переносе, обновлении ACL, миграции ресурсов) на NTFS папке (общей сетевой папке) желательно создать резервную копию старых разрешений. Данная копия позволит вам вернуться к исходным настройкам или хотя бы уточнить старые права доступа на конкретный файл/каталог.
Для экспорта/импорта текущих NTFS разрешений каталога вы также можете использовать утилиту icacls. Чтобы получить все ACL для конкретной папки (в том числе вложенных каталогов и файлов), и экспортировать их в текстовый файл, нужно выполнить команду
icacls 'C:\Share\Veteran' /save c:\ps\veteran_ntfs_perms.txt /t /c
Примечание. Ключ /t указывает, что нужно получить ACL для всех дочерних подкаталогов и файлов, ключ /c – позволяет игнорировать ошибки доступа. Добавив ключ /q можно отключить вывод на экран информации об успешных действиях при доступе к объектам файловой системы.
В зависимости от количества файлов и папок, процесс экспорта разрешений может занять довольно продолжительное время. После окончания выполнения команды отобразится статистика о количестве обработанных и пропущенных файлов.
Откройте файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как вы видите, он содержит полный список папок и файлов в каталоге, и для каждого указаны текущие разрешения в формате SDDL (Security Descriptor Definition Language).
К примеру, текущие NTFS разрешения на корень папки такие:
Данная строка описывает доступ для нескольких групп или пользователей. Мы не будем подробно углубляться в SDDL синтаксис (при желании справку по нему можно найти на MSDN, или вкратце формат рассматривался в статье об управлении правами на службы Windows). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:
A – тип доступа (Allow)
OICI – флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)
FA – тип разрешения (SDDL_FILE_ALL – все разрешено)
S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID учетной записи или группы в домене, для которой заданы разрешения. Чтобы преобразовать SID в имя учетной записи или группы, воспользуйтесь командой:
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.
Копирование NTFS прав между папками
Вы можете использовать текстовый файл с резервной копией ACL для копирования NTFS разрешений с одного каталога на другой/
Сначала создайте бэкап NTFS разрешений корня папки:
icacls 'C:\Share\Veteran' /save c:\ps\save_ntfs_perms.txt /c
А замет примените сохраненные ACL к целевой папке:
icacls e:\share /restore c:\ps\save_ntfs_perms.txt /c
Это сработает, если исходная и целевая папка называются одинаково. А что делать, если имя целевой папки отличается? Например, вам нужно скопировать NTFS разрешения на каталог E:\PublicDOCS
Проще всего открыть файл save_ntfs_perms.txt в блокноте и отредактировать имя каталога. С помощью функции Replace замените имя каталога Veteran на PublicDOCS.
Затем импортируйте NTFS разрешения из файла и примените их к целевому каталогу:
icacls e:\ /restore c:\ps\save_ntfs_perms.txt /c
Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'
Предыдущая статья Следующая статья
Компьютер неожиданно перезагрузился, или возникла непредвиденная ошибка
Windows не видит компьютеры в сетевом окружении
Ошибка 0x80070035: Не найден сетевой путь в Windows 10
Восстановление загрузчика BCD и записи MBR в Windows 10/ 11
Если не нужно специальных «извращений» с правами, то можно воспользоваться и предыдущей, более простой и удобной утилитой — cacls.exe, которая все еще входит в состав Windows
Возможно ее вывод разрешений и проще чем у icacls, но вот экспорт, импорт разрешений и рекурсию она все же не поддерживает.
И да, я же написал
«Если не нужно специальных «извращений» с правами»
cacls.exe освоить в разы проще/ Правд. если дружишь с правильным текстовым редактором, а не с ГУЁвым.
Экспорт/Импорт — в чем проблема?
Экспорт — переадресация вывода в файл
Импорт — запуск bat-ника после обработки в FAR (любом редакторе с макросами)
Правда сегодняшние «новички» они все больше «мышиные» (ГУЁ-вые) пользователи 🙂 А не админы 🙂
Админ обязан уметь писать батники любой сложности.
А уж из регулярной структуры, которую выдает cacls, слепить батник в FAR’е, с использованием макросов, проще простого
Спасибо за статью.
Вопрос — прокатал процедуру на одном из своих фс. из 1,5 млн. файлов около 1600 в ошибке. Как можно узнать что это за файлы?
А что если путь к файлу превышает 256 символов, как обойти ограничение?
Строить фалйовое хранилище на Windows 10 …. О! Это что-то запредельное 🙂 Поэтому отключили там ограничение или нет, не так существенно. 🙂
Жаль у icacls не хватает одного ключа. Сохранять разрешения только для папок. Файлы, то так и так вложенные получать теже самые разрешения, что и у их папки. Я не быру в расчет «странные» разрешения на файл.папки внутри папки, отличные от нее самой (кроме прав на корневую)
А старый вариант cacls не умеет ходить по вложенным папкам.
В итоге выкручиваемся используя оба средства 🙂
icacls не сохраняет ВЛАДЕЛЬЦЕВ, банально в SDDL-строках отсутствует O:S-1-……… как можно заметить, а при /restore тогда «Отказано в доступе!». А с cacls и подавно…
Когда в свойствах файла во вкладке Безопасность такое:
«У вас нет разрешения на просмотр текущих разрешений для этого объекта»;
Не удалось отобразить текущего владельца.
а так же в колонке «Владелец» (System.FileOwner или ,4) проводника пустое значение напротив объекта — короче говоря, нет прав READ_CONTROL (RC или 0x00020000) — придётся вслепую менять владельца (чтобы сохранить разрешения), если кнопка [Изменить] так же недоступна (даже icacls …… /grant *S-1-5-32-544:(RC) не удалось обработать ……
cacls …… /E /G Администраторы:F — Отказано в доступе).
А если [Изменить] разрешения всё-таки позволяет (не показывая владельца), то тут уже сразу сужается круг предположительного владельца.
А ещё, как же «обязательная метка уровня неприкасаемости» (Mandatory Integrity Label)?
Интересная штука SDDLGen.exe с SDK-пакета — можно загрузить ключ реестра/папку и увидеть не только владельца (если запущено с соотетствующими правами) и аудиты, но даже группу и «уровни целостности»! Что-то мне захотелось увидеть такую колонку в проводнике…
Помимо папок/файлов/ключей реестра хотелось бы ещё управлять параметрами безопасности
• журналов = wevtutil set-log … /channelaccess:…;
• служб = sc sdshow | sc sdset (или только задавать .inf-политикой в MMC\Шаблоны безопасности\Системные службы) и устройств;
ну и хранящихся в REG_BINARY / REG_NONE такие параметры безопасности:
‼ «Службы компонентов\Настройки DCOM\» [HKCR\AppID\\]
LaunchPermission и AccessPermission; хорошо, что «Разрешения на изменение настроек» = Power sH ell Get-ACL -Path hklm:\software\classes\appid\ | format-list ;
‼ «Поставщики отслеживания» и сами «Группы сборщиков данных» (что в perfmon.msc) — [HKLM\SYSTEM\CurrentControlSet\Control\WMI\Security];
• принтеры [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers];
• общие файлы [HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Shares\Security];
думаю, это ещё далеко не всё перечисленное, ведь в реестре могут содержаться и любые другие двоичные параметры, значения которых напоминают ACE`шки… А вот «Назначение прав пользователя» (что с secpol.msc) совсем на ACE не похоже [HKLM\SECURITY\Policy\Accounts\…\Privilgs] — тут уже лучше .inf файлом в секции [Privilege Rights] (что даже удобнее любого другого редактора – главное не промахнуться и подписать нужный SID пользователя/группы в нужную Se…привилегию, а то можно случайно воткнуть в SeDenyInteractiveLogonRight вместо SeDenyRemoteInteractiveLogonRight)…
Хотя вот с принтерами и общими файлами можно было и в SubInACL…
Что может быть проще, чем разграничить права на папку в NTFS? Но эта простая задача может превратиться в настоящий кошмар, когда подобных папок сотни, если не тысячи, а изменение прав к одной папке «ломает» права на другие. Чтобы эффективно работать в подобных условиях, требуется определенная договоренность, или стандарт, который бы описывал, как решать подобные задачи. В данной статье мы как раз и рассмотрим один из вариантов подобного стандарта.
Стандарт управления правами доступа к корпоративным файловым информационным ресурсам (далее – Стандарт) регламентирует процессы предоставления доступа к файловым информационным ресурсам, размещенным на компьютерах, работающих под управлением операционных систем семейства Microsoft Windows. Стандарт распространяется на случаи, когда в качестве файловой системы используется NTFS, а в качестве сетевого протокола для совместного доступа к файлам SMB/CIFS.
Информационный ресурс – поименованная совокупность данных, к которой применяются методы и средства обеспечения информационной безопасности (например, разграничение доступа).
Файловый информационный ресурс – совокупность файлов и папок, хранящихся в каталоге файловой системы (который называется корневым каталогом файлового информационного ресурса), доступ к которой разграничивается.
Составной файловый информационный ресурс – это файловый информационный ресурс, содержащий в себе один или несколько вложенных файловых информационных ресурсов, отличающихся от данного ресурса правами доступа.
Вложенный файловый информационный ресурс – это файловый информационный ресурс, входящий в составной информационный ресурс.
Точка входа в файловый информационный ресурс – каталог файловой системы, к которому предоставляется сетевой доступ (shared folder) и который используется для обеспечения доступа к файловому информационному ресурсу. Данный каталог обычно совпадает с корневым каталогом файлового информационного ресурса, но может быть и вышестоящим.
Промежуточный каталог – каталог файловой системы, находящийся на пути от точки входа в файловый информационной ресурс к корневому каталогу файлового информационного ресурса. Если точка входа в файловый информационный ресурс является вышестоящим каталогом по отношению к корневому каталогу файлового информационного ресурса, то она также будет являться промежуточным каталогом.
Группа доступа пользователей – локальная или доменная группа безопасности, содержащая в конечном счете учетные записи пользователей, наделенные одним из вариантов полномочий доступа к файловому информационному ресурсу.
- Доступ разграничивается только на уровне каталогов. Ограничение доступа к отдельным файлам не проводится.
- Назначение прав доступа выполняется на базе групп безопасности. Назначение прав доступа на отдельные учетные записи пользователей не проводится.
- Явно запрещающие полномочия доступа (deny permissions) не применяются.
- Разграничение прав доступа проводится только на уровне файловой системы. На уровне сетевых протоколов SMB/CIFS права не разграничиваются (Группа «Все» – полномочия «Чтение/Запись» / Everyone – Change).
- При настройке сетевого доступа к файловому информационному ресурсу в настройках SMB/CIFS устанавливается опция «Перечисление на основе доступа (Access based enumeration)».
- Создание файловых информационных ресурсов на рабочих станциях пользователей недопустимо.
- Не рекомендуется размещать файловые информационные ресурсы на системных разделах серверов.
- Не рекомендуется создавать несколько точек входа в файловый информационный ресурс.
- Следует по возможности избегать создание вложенных файловых информационных ресурсов, а в случаях, когда имена файлов или каталогов содержат конфиденциальную информацию, это вовсе недопустимо
Доступ пользователей к файловому информационному ресурсу предоставляется путем наделения их одним из вариантов полномочий:
- Доступ «Только на чтение (Read Only)».
- Доступ «Чтение и запись (Read & Write)».
Имена групп доступа пользователей формируются по шаблону:
FILE-Имя файлового информационного ресурса–аббревиатура полномочий
Имя файлового информационного ресурса
должно совпадать с UNC именем ресурса или состоять из имени сервера и локального пути (если сетевой доступ к ресурсу не предоставляется). При необходимости в данном поле допускаются сокращения. Символы «\\» опускаются, а «\» и «:» заменяются на «-».
Аббревиатуры полномочий:
- RO — для варианта доступа «Только на чтение (Read Only)»
- RW — для варианта доступа «Чтение и запись (Read & Write)».
Пример 2
Имя группы доступа пользователей, имеющих полномочия «Чтение и запись» для файлового информационного ресурса, размещенного на сервере TERMSRV по пути D:\UsersData, будет:
FILE-TERMSRV-D-UsersData-RW
Таблица 1 – Шаблон NTFS-прав доступа для корневого каталога файлового информационного ресурса.
Субъекты | Права | Режим наследования |
Наследование прав доступа от вышестоящих каталогов отключено | ||
А) Обязательные права | ||
Специальная учетная запись: «СИСТЕМА (SYSTEM)» | Полный доступ (Full access) | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Локальная группа безопасности: «Администраторы (Administrators)» | Полный доступ (Full access) | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Б.1) Полномочия «Только чтение (Read Only)» | ||
Группа доступа пользователей: «FILE-Имя ресурса-RO» | Базовые права: а) чтение и выполнение (read & execute); б) список содержимого папки (list folder contents); в) чтение (read); | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Б.2) Полномочия «Чтение и запись (Read & Write)» | ||
Группа доступа пользователей: «FILE-Имя ресурса-RW» | Базовые права: а) изменение (modify); б) чтение и выполнение (read & execute); в) список содержимого папки (list folder contents); г) чтение (read); д) запись (write); | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Б.3) Другие полномочия при их наличии | ||
Группа доступа пользователей: «FILE-Имя ресурса-аббревиатура полномочий» | Согласно полномочиям | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Табилца 2 – Шаблон NTFS-прав доступа для промежуточных каталогов файлового информационного ресурса.
Субъекты | Права | Режим наследования |
Наследование прав доступа от вышестоящих каталогов включено, но если данный каталог является вышестоящим по отношению к файловым информационным ресурсам и не входит ни в один другой файловый информационный ресурс, то наследование отключено | ||
А) Обязательные права | ||
Специальная учетная запись: «СИСТЕМА (SYSTEM)» | Полный доступ (Full access) | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Локальная группа безопасности: «Администраторы» | Полный доступ (Full access) | Для этой папки, ее подпапок и файлов (This folder, subfolders and files) |
Б.1) Полномочия «Проход через каталог (TRAVERSE)» | ||
Группы доступа пользователей информационных ресурсов, для которых этот каталог является промежуточным | Дополнительные параметры безопасности: а) траверс папок / выполнение файлов (travers folder / execute files); б) содержимое папки / чтение данных (list folder / read data); в) чтение атрибутов (read attributes); в) чтение дополнительных атрибутов (read extended attributes); г) чтение разрешений (read permissions); | Только для этой папки (This folder only) |
- Создаются группы доступа пользователей. Если сервер, на котором размещен файловый информационный ресурс, является членом домена, то создаются доменные группы. Если нет, то группы создаются локально на сервере.
- На корневой каталог и промежуточные каталоги файлового информационного ресурса назначаются права доступа согласно шаблонам прав доступа.
- В группы доступа пользователей добавляются учетные записи пользователей в соответствии с их полномочиями.
- При необходимости для файлового информационного ресурса создается сетевая папка (shared folder).
В. Изменение доступа пользователя к файловому информационному ресурсу
Учетная запись пользователя перемещается в другую группу доступа пользователей в зависимости от указанных полномочий.
Г. Блокирование доступа пользователя к файловому информационному ресурсу
Учетная запись пользователя удаляется из групп доступа пользователей файлового информационного ресурса. Если работник увольняется, то членство в группах не меняется, а блокируется учетная запись целиком.
- Регистрируется вложенный файловый информационный ресурс (согласно процессу А)
- В группы доступа пользователей вложенного файлового информационного ресурса добавляются группы доступа пользователей вышестоящего составного файлового информационного ресурса.
- Регистрируется вложенный файловый информационный ресурс (согласно процессу А)
- В группы доступа пользователей создаваемого информационного ресурса помещаются те учетные записи пользователей, которым требуется предоставить доступ.
- Организационными (или техническими, но не связанными с изменением прав доступа к каталогам файловой системы) мерами блокируется доступ пользователей к данному и всем вложенным файловым информационным ресурсам.
- К корневому каталогу файлового информационного ресурса назначаются новые права доступа, при этом заменяются права доступа для всех дочерних объектов (активируется наследие).
- Перенастраиваются права доступа для всех вложенных информационных ресурсов.
- Настраиваются промежуточные каталоги для данного и вложенных информационных ресурсов.
Рассмотрим применение данного стандарта на примере гипотетической организации ООО «ИнфоКриптоСервис», где для централизованного хранения файловых информационных ресурсов выделен сервер с именем «FILESRV». Сервер работает под управлением операционной системы Microsoft Windows Server 2008 R2 и является членом домена Active Directory с FQDN именем «domain.ics» и NetBIOS именем «ICS».
Подготовка файлового сервера
На диске «D:» сервера «FILESRV» создаем каталог «D:\SHARE\». Этот каталог будет единой точкой входа во все файловые информационные ресурсы, размещенные на данном сервере. Организуем сетевой доступ к данной папке (используем апплет «Share and Storage Management»):
Создание файлового информационного ресурса
Постановка задачи.
Пусть в составе организации ООО «ИнфоКриптоСервис» имеется Отдел разработки информационных систем в составе: начальника отдела Иванова Сергея Леонидовича (SL.Ivanov@domain.ics), специалиста Маркина Льва Борисовича (LB.Markin@domain.ics), и для них нужно организовать файловый информационный ресурс для хранения данных подразделения. Обоим работникам требуется доступ на чтение и запись к данному ресурсу.
- «FILE-FILESRV-SHARE-Отд. разр. ИС-RO»
- «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»
Предоставление доступа пользователю к файловому информационному ресурсу
Постановка задачи.
Предположим, в отдел разработки приняли еще одного работника – специалиста Егорова Михаила Владимировича (MB.Egorov@domain.ics), и ему, как и остальным работникам отдела, требуется доступ на чтение и запись к файловому информационному ресурсу отдела.
Решение.
Учетную запись работника необходимо добавить в группу «FILE-FILESRV-SHARE-Отд. разр. ИС-RW»
Создание вложенного информационного ресурса. Расширение доступа
Постановка задачи.
Предположим, Отдел разработки информационных систем решил улучшить качество взаимодействия с Отделом маркетинга и предоставить руководителю последнего — Кругликовой Наталье Евгеньевне (NE.Kruglikova@domain.ics) — доступ на чтение к актуальной документации на продукты, хранящейся в папке «Документация» файлового информационного ресурса Отдела разработки информационных систем.
Решение.
Для решения данной задачи необходимо сделать вложенный ресурс «\\FILESRV\share\Отдел разработки информационных систем\Документация», доступ к которому на чтение и запись должен быть (остаться) у всех пользователей, имевших доступ к «\\FILESRV\share\Отдел разработки информационных систем\ и добавиться доступ на чтение для пользователя Кругликовой Натальи Евгеньевне (NE.Kruglikova@domain.ics)
- «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO»
- «FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW»
Теперь, если Кругликова Наталья Евгеньевна (NE.Kruglikova@domain.ics) обратится по ссылке «\\FILESRV\share\Отдел разработки информационных систем\Документация», то она сможет попасть в интересующую ее папку, но обращаться по полному пути не всегда удобно, поэтому настроим сквозной проход к данной паке от точки входа «\\FILESRV\share\» («D:\SHARE\»). Для этого настроим права доступа на промежуточные каталоги «D:\SHARE\» и «D:\SHARE\Отдел разработки информационных систем\».
Проведем настройку «D:\SHARE\»:
Дамп NTFS разрешений, полученных командой cacls:
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-RO:R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-RW:R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
NT AUTHORITY\SYSTEM:(OI)(CI)F
BUILTIN\Administrators:(OI)(CI)F
и «D:\SHARE\Отдел разработки информационных систем»:
Дамп NTFS разрешений, полученных командой cacls:
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RO:R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-Документация-RW:R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-RO:(OI)(CI)R
ICS\FILE-FILESRV-SHARE-Отд. разр. ИС-RW:(OI)(CI)C
NT AUTHORITY\SYSTEM:(OI)(CI)F
BUILTIN\Administrators:(OI)(CI)F
Создание вложенного информационного ресурса. Сужение доступа
Постановка задачи
В целях организации резервного копирования наработок Отдела разработки информационных систем начальнику отдела Иванову Сергею Леонидовичу (SL.Ivanov@domain.ics), в рамках файлового информационного ресурса отдела, понадобилась сетевая папка «Архив», доступ к которой был бы только у него.
Решение.
Для решения данной задачи в файловом информационном ресурсе отдела требуется сделать вложенный ресурс «Архив» («\\FILESRV\share\Отдел разработки информационных систем\Архив»), доступ к которому предоставить только начальнику отдела.
Как изменить владельца папки или файла с помощью команды icacls
Еще одна команда, которая позволяет получить доступ к папке или файлам (изменить их владельца) — icacls, использовать которую следует так же, в командной строке, запущенной от имени администратора.
Для установки владельца используйте команду в следующем виде (пример на скриншоте):
Icacls “путь к файлу или папке” /setowner “Имя_пользователя” /T /C
Пути указываются аналогично предыдущему способу. Если требуется сделать владельцами всех администраторов, то вместо имени пользователя используйте Администраторы (или, если не сработает, Administrators).
Дополнительная информация: помимо того, чтобы стать владельцем папки или файла, вам может потребоваться также получить разрешения для изменения, для этого вы можете использовать следующую команду (дает полные права пользователю для папки и вложенных объектов): ICACLS «%1» /grant:r «имя_пользователя»:(OI)(CI)F
Изменение разрешений для файла (папки), используя командную строку.
- icacls папка\файл /grant:r Пользователь:разрешение
Разрешения:
F — полный доступ
M — доступ на изменение
RX — доступ на чтение и выполнение
R — доступ только на чтение
W — доступ только на запись
D — доступ на удаление
Примеры:
icacls «C:\Windows\file.exe» /grant:r Vince:F
icacls «C:\Windows\file.exe» /grant:r Vince:M
icacls «C:\Windows» /grant:r Vince:F
icacls «C:\Windows» /grant:r Vince:RX /T
Об остальных возможностях команды icacls Вы сможете узнать введя команду: icacls /?
17.01.2020
itpro
PowerShell, Windows 10, Windows Server 2016
комментариев 14
Для управления доступом к файлам и папкам в Windows на каждый объект файловой системы NTFS (каталог или файл) назначается специальный ACL (Access Control List, список контроля доступа). В ACL объекта задаются доступные операции (разрешения), которые может совершать с этим объектом пользователь и/или группы . В большинстве случаев администраторы Window для управления NFTS разрешениями на файлы и папки используют графический интерфейс File Explorer (свойства папки/файла -> вкладка Security/Безопасность) или консольную утилиту icacls. В этой статье мы рассмотрим способы управления разрешениями на объекты файловой системы NTFS из PowerShell. Вы можете использовать эти команды в скриптах и для автоматизации управлением NTFS разрешениями на файловых серверах Windows.
Смена владельца файла или папки, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Перейдите на вкладку Владелец и нажмите кнопку Изменить.
- Выполните одно из следующих действий:
Проверка эффективных NTFS разрешений на объекты из PowerShell
Вы можете проверить эффективные NTFS разрешения на конкретный файл или папку с помощью командлета Get-EffectiveAccess . Допустим вы предоставили доступ на некоторую папку нескольким группам безопасности AD и теперь хотите понять, есть ли у конкретного аккаунта (SID) доступ к данной папке или нет. Как это сделать, не выводя состав групп AD, в которых входит его учетная запись? В этой ситуации как раз поможет функция проверки эффективные NTFS разрешений. Допустим, нужно проверить эффективные права на все вложенные папки в каталоге для пользователя confroom.
Get-ChildItem -Path c:\distr -Recurse -Directory | Get-NTFSEffectiveAccess -Account 'WORKSTAT1\confroom' | select Account, AccessControlType, AccessRights, FullName
Либо вы можете проверить эффективные разрешения на конкретный файл:
Get-Item -Path 'C:\distr\mstsc.exe.manifest' | Get-NTFSEffectiveAccess -Account 'WORKSTAT1\confroom' | Format-List
Есть несколько способов стать владельцем папки или файла, основные среди которых — использование командной строки и дополнительные настройки безопасности ОС. Есть также и сторонние программы, позволяющие изменить владельца папки в два клика, на одного из представителей которых тоже посмотрим. Все описанное ниже подходит для Windows 7, 8 и 8.1, а также Windows 10.
Примечания: для того, чтобы стать владельцем того или иного элемента с использованием способов ниже, вы должны иметь права администратора на компьютере. Кроме этого, не следует изменять владельца для всего системного диска — это может повлечь нестабильную работу Windows.
Дополнительная информация: если вы хотите стать владельцем папки для того, чтобы удалить ее, а иначе она не удаляется, и пишет Запросите разрешение от TrustedInstaller или от Администраторы, используйте следующую инструкцию (там же есть видео): Запросите разрешение от Администраторы на удаление папки.
Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl
В PowerShell v5 (Windows 10 / Windows Server 2016) для управления ACL имеется два отдельных встроенных командлета (входят в модуль Microsoft.PowerShell.Security):
- Get-Acl — позволяет получить текущие ACL для конкретного объекта на файловой системе NTFS;
- Set-Acl – используется для добавления/изменения текущих ACL объекта.
Мы не будем подробно останавливаться на этих встроенных командлетах, т.к. их функционал в большинстве случае недостаточен для управления NTFS разрешениями в реальных задачах. Рассмотрим лишь несколько типовых примеров их использования.
Выведем текущего владельца папки (файла) и список назначенных NTFS разрешений:
get-acl C:\Drivers\ |fl
Path : Microsoft.PowerShell.Core\FileSystem::C:\Drivers\
Owner : WORKSTAT1\root
Group : WORKSTAT1\Отсутствует
Access : NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
WORKSTAT1\root Allow Modify, Synchronize
Audit :
Sddl : O:S-1-5-21-3650440056-3766451173-3310994491-1001G:S-1-5-21-3650440056-766451173-3310994491-513D:PAI(A;OICI;0x 1301bf;;;AU)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;OICI;0x1301bf;;;S-1-5-21-3650440056-37664 51173-3310994491-1001)
Как вы видите, текущие разрешения также представлены в виде SDDL строки – мы вкратце рассматривали этот формат описания доступа в статье Управление правами на службы Windows.
Можно вывести только списки NTFS разрешений в более понятном формате:
С помощью следящей команды можно скопировать NTFS разрешения с одной папки и применить их на другую:
Get-Acl C:\Drivers | Set-Acl C:\Distr
Для выполнения этой операции учетная запись должна быть владельцем ресурса (Owner) и обладать правами Take Ownership.
Главная проблема при использовании Set-ACL – командлет всегда пытается сменить владельца ресурса, даже если вы просто хотите изменить NTFS разрешения. В результате, чтобы добавить права на объект нужно использовать такую конструкцию:
$path = "c:\drivers"
$user = "WORKSTAT1\user1"
$Rights = "Read, ReadAndExecute, ListDirectory"
$InheritSettings = "Containerinherit, ObjectInherit"
$PropogationSettings = "None"
$RuleType = "Allow"
$acl = Get-Acl $path
$perm = $user, $Rights, $InheritSettings, $PropogationSettings, $RuleType
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path $path
Чтобы убрать NTFS доступ к папке для пользователя или группы:
$path = "c:\drivers"
$acl = Get-Acl $path
$rules = $acl.Access | where IsInherited -eq $false
$targetrule = $rules | where IdentityReference -eq "WORKSTAT1\user1"
$acl.RemoveAccessRule($targetrule)
$acl | Set-Acl -Path $path
Чтобы отключить наследование для папки из PowerShell:
Также с помощью Get-acl и Set-Acl можно управлять параметрами NTFS-аудита объектов (см. статью Кто удалил файл на сервере?), либо информацией о текущих разрешениях на OU в AD.
Изменение разрешений для доступа к файлам и папкам, используя Проводник.
Далее рассказывается как можно изменить разрешения или сменить владельца, используя командную строку запущенную от имени администратора.
Если после использовании команды, разрешения или владелец не сменятся, то возможно Вам придется зайти в систему под встроенной учётной записью «Администратор» для их выполнения заново.
Читайте также: