Skip to content
Изменение прав доступа и владельца для файла (папки), используя Проводник или командную строку
Случается, что при работе с файлами или папками Вам бывает необходимо изменить для них владельца и права доступа.
Смена владельца файла или папки, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Перейдите на вкладку Владелец и нажмите кнопку Изменить.
- Выполните одно из следующих действий:
- Чтобы назначить владельцем пользователя или группу из списка, в окне «Изменить владельца на» выберите нового владельца и нажмите ОК.
- Чтобы назначить владельцем пользователя или группу, которых нет в списке:
- Нажмите кнопку Другие пользователи и группы
- Если владельцем необходимо установить службу TrustedInstaller, в качестве имени объекта в поле Введите имена выбираемых объектов (примеры) введите: NT SERVICE\TrustedInstaller и нажмите кнопку ОК.
- Если владельцем необходимо другого пользователя или группу, то нажмите кнопку Дополнительно, а затем кнопку Поиск.
- В результатах поиска выберите необходимую Вам группу или пользователя и нажмите кнопку ОК.
- В окне Изменить владельца на: выберите добавленную группу или пользователя.
- Чтобы сменить владельца всех субконтейнеров и объектов в папке, установите флажок Заменить владельца субконтейнеров и объектов и нажмите кнопку ОК.
Изменение разрешений для доступа к файлам и папкам, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Нажмите кнопку Изменить разрешения и выполните одно из следующих действий:
- Чтобы изменить разрешения для существующей группы или пользователя, выберите имя этой группы или пользователя и нажмите кнопку Изменить.
- Установите необходимые Вам флажки Разрешить или Запретить напротив каждого разрешения и нажмите кнопку ОК, а затем кнопку Применить.
- Чтобы изменить разрешения для группы или пользователя, которого нет в списке Элементы разрешений, нажмите кнопку Добавить.
- Если необходимо изменить разрешения для службы TrustedInstaller, в качестве имени объекта в поле Введите имена выбираемых объектов (примеры) введите: NT SERVICE\TrustedInstaller и нажмите кнопку ОК.
- Если необходимо изменить разрешения для другого пользователя или группы, то нажмите кнопку Дополнительно, а затем кнопку Поиск.
- В результатах поиска выберите необходимую Вам группу или пользователя и нажмите кнопку ОК.
- Установите необходимые Вам флажки Разрешить или Запретить напротив каждого разрешения и нажмите кнопку ОК, а затем кнопку Применить.
- Чтобы удалить группу или пользователя из списка Элементы разрешений, нажмите кнопку Удалить.
Далее рассказывается как можно изменить разрешения или сменить владельца, используя командную строку запущенную от имени администратора.
Если после использовании команды, разрешения или владелец не сменятся, то возможно Вам придется зайти в систему под встроенной учётной записью «Администратор» для их выполнения заново.
Изменение владельца файла (папки) на указанного Вами пользователя, используя командную строку.
- 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
Параметры:
/T — операция выполняется для всех соответствующих файлов и каталогов, расположенных в указанных в имени каталогах.
/C — выполнение операции продолжается при любых файловых ошибках. Сообщения об ошибках по-прежнему выводятся на экран.
/L — операция выполняется над самой символической ссылкой, а не над ее целевым объектом.
/Q — команда icacls подавляет сообщения об успешном выполнении.
Изменение разрешений для файла (папки), используя командную строку.
- 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 /?
Corrupt Permissions: Regaining access to a folder and its sub-objects
Although most of the answers posted in reply to the question have some merit, IMHO none of them give a complete solution. The following (might be) a perfect solution for Windows 7 if you are locked-out of a folder by corrupted permission settings:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
For Windows 10 the user/SID must be specified after the /remove:d
option:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
.
Notes:
-
The command is applied to the specified directory.
-
Specifying the user «Everyone» sets the widest possible permission, as it includes every possible user.
-
The option «/remove:d» deletes any explicit DENY settings that may exist, as those override explicit ALLOW settings: a necessary preliminary to creating a new ALLOW setting. This is only a precaution, as there is often no DENY setting present, but better safe than sorry.
-
The option «/grant» creates a new ALLOW setting, an explicit permission that replaces («:r») any and all explicit ALLOW settings that may exist.
-
The «F» parameter (i.e. the permission created) makes this a grant of FULL control.
-
The «/T» parameter adds recursion, applying these changes to all current sub-objects in the specified directory (i.e. files and subfolders), as well as the folder itself.
-
The «(OI)» and «(CI)» parameters also add recursion, applying these changes to sub-objects created subsequently.
.
ADDENDUM (2019/02/10) —
The Windows 10 command line above was kindly suggested to me today, so here it is. I haven’t got Windows 10 to test it, but please try it out if you have (and then will you please post a comment below).
The change only concerns removing the DENY setting as a first step. There might well not be any DENY setting present, so that option might make no difference. My understanding is, on Windows 7, that you don’t need to specify a user after /remove:d but I might be wrong about that!
.
ADDENDUM (2019/11/21) —
User astark recommends replacing Everyone with the term *S-1-1-0 in order for the command to be language independent. I only have an English install of Windows, so I can’t test this proposal, but it seems reasonable.
Для управления NTFS разрешениями в Windows можно использовать встроенную утилиту iCACLS. Утилита командной строки icacls.exe позволяет получить или изменить списки управления доступом (ACL — Access Control Lists) на файлы и папки на файловой системе NTFS. В этой статье мы рассмотрим полезные команды управления ntfs разрешениями в Windows с помощью icacls.
Содержание:
- Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
- Бэкап (экспорт) текущих NTFS разрешений каталога
- Восстановление NTFS разрешений с помощью iCacls
- Сброс NTFS разрешений в Windows
- Копирование NTFS прав между папками
Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
Текущие права доступа к любому объекту на NTFS томе можно вывести так:
icacls 'C:\Share\Veteran\'
Команда вернет список пользователей и групп, которым назначены права доступа. Права указываются с помощью сокращений:
- F – полный доступ
- M – изменение
- RX – чтение и выполнение
- R – только чтение
- W – запись
- D – удаление
Перед правами доступа указаны права наследования (применяются только к каталогам):
- (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
Бэкап (экспорт) текущих NTFS разрешений каталога
Перед существенным изменением разрешений (переносе, обновлении ACL, миграции ресурсов) на NTFS папке (общей сетевой папке) желательно создать резервную копию старых разрешений. Данная копия позволит вам вернуться к исходным настройкам или хотя бы уточнить старые права доступа на конкретный файл/каталог.
Для экспорта/импорта текущих NTFS разрешений каталога вы также можете использовать утилиту icacls. Чтобы получить все ACL для конкретной папки (в том числе вложенных каталогов и файлов), и экспортировать их в текстовый файл, нужно выполнить команду
icacls 'C:\Share\Veteran' /save c:\ps\veteran_ntfs_perms.txt /t /c
Примечание. Ключ /t указывает, что нужно получить ACL для всех дочерних подкаталогов и файлов, ключ /c – позволяет игнорировать ошибки доступа. Добавив ключ /q можно отключить вывод на экран информации об успешных действиях при доступе к объектам файловой системы.
В зависимости от количества файлов и папок, процесс экспорта разрешений может занять довольно продолжительное время. После окончания выполнения команды отобразится статистика о количестве обработанных и пропущенных файлов.
Successfully processed 3001 files; Failed processing 0 files
Откройте файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как вы видите, он содержит полный список папок и файлов в каталоге, и для каждого указаны текущие разрешения в формате SDDL (Security Descriptor Definition Language).
К примеру, текущие NTFS разрешения на корень папки такие:
D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;S-1-5-21-2340243621-32346796122-2349433313-23777994)(A;OICI;0x1301bf;;;S-1-5-21-2340243621-32346796122-2349433313-23777993)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)S:AI
Данная строка описывает доступ для нескольких групп или пользователей. Мы не будем подробно углубляться в SDDL синтаксис (при желании справку по нему можно найти на MSDN, или вкратце формат рассматривался в статье об управлении правами на службы Windows). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:
(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)
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])
$objUser.Value
Или командами:
Get-ADUser -Identity SID
или
Get-ADGroup -Identity SID
Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.
Восстановление NTFS разрешений с помощью iCacls
С помощью ранее созданного файла veteran_ntfs_perms.txt вы можете восстановить NTFS разрешения на каталог. Чтобы задать NTFS права на объекты в каталоге в соответствии со значениями в файле с резервной копией ACL, выполните команду:
icacls C:\share /restore c:\PS\veteran_ntfs_perms.txt /t /c
Примечание. Обратите внимание, что при импорте разрешений из файла указывается путь к родительской папке, но не имя самого каталога.
По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов:
Successfully processed 114 files; Failed processing 0 files
С учетом того, что в резервной копии ACL указываются относительные, а не абсолютные пути к файлам, вы можете восстановить разрешения в каталоге даже после его перемещения на другой диск/каталог.
Сброс NTFS разрешений в Windows
С помощью утилиты icacls вы можете сбросить текущие разрешения на указанный файл или каталог (и любые вложенные объекты):
icacls C:\share\veteran /reset /T /Q /C /RESET
Данная команда включит для указанного объекта наследование NTFS разрешений с родительского каталога, и удалит любые другие права.
Копирование 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
Если при попытке изменить, открыть или удалить папку или файл в Windows вы получаете сообщения о том, что вам отказано в доступе, «Нет доступа к папке», «Запросите разрешение на изменение этой папки» и аналогичные, то вам следует изменить владельца папки или файла, о чем и поговорим.
Есть несколько способов стать владельцем папки или файла, основные среди которых — использование командной строки и дополнительные настройки безопасности ОС. Есть также и сторонние программы, позволяющие изменить владельца папки в два клика, на одного из представителей которых тоже посмотрим. Все описанное ниже подходит для Windows 11, Windows 10, 8.1 и 7. Также может быть полезным: Как добавить пункт «Стать владельцем» в контекстное меню файлов и папок Windows
Примечания: для того, чтобы стать владельцем того или иного элемента с использованием способов ниже, вы должны иметь права администратора на компьютере. Кроме этого, не следует изменять владельца для всего системного диска — это может повлечь нестабильную работу Windows. Также, если вы хотите стать владельцем папки для того, чтобы удалить ее, а иначе она не удаляется, и пишет Запросите разрешение от TrustedInstaller или от Администраторы, используйте следующую инструкцию (там же есть видео): Запросите разрешение от Администраторы на удаление папки.
Использование команды takeown для того, чтобы стать владельцем объекта
Для того, чтобы изменить владельца папки или файла с помощью командной строки, имеются две команды, первая из них — takeown.
Для ее использования, запустите командную строку от имени Администратора, в Windows 11 и Windows 10 это можно сделать через поиск в панели задач с последующим выбором пункта «Запуск от имени администратора». В командной строке, в зависимости от того, владельцем какого объекта вам нужно стать, введите одну из команд:
- takeown /F «полный путь к файлу» — стать владельцем указанного файла. Чтобы сделать всех администраторов компьютера владельцами, используйте параметр /A после пути к файлу в команде.
- takeown /F «путь к папке или диску» /R /D Y — стать владельцем папки или диска. Путь к диску указывается в виде D: (без слэша), путь к папке — C:\Folder (также без слэша).
При выполнении данных команд вы получите сообщение о том, что вы успешно стали владельцем конкретного файла или отдельных файлов в указанной вами папке или на диске (см. скриншот).
Как изменить владельца папки или файла с помощью команды icacls
Еще одна команда, которая позволяет получить доступ к папке или файлам (изменить их владельца) и получить необходимые права — icacls, использовать которую следует так же, в командной строке, запущенной от имени администратора.
Для установки владельца используйте команду в следующем виде (пример на скриншоте):
icacls "путь к файлу или папке" /setowner "Имя_пользователя" /T /C
Пути указываются аналогично предыдущему способу. Если требуется сделать владельцами всех администраторов, то вместо имени пользователя используйте Администраторы (или, если не сработает, Administrators). Ниже пример быстрого получения полного доступа к папке с использованием сочетания команд takeown и icacls:
takeown /F D:\ПУТЬ /R /A icacls D:\ПУТЬ /T /Inheritance:e /grant Администраторы:F
Дополнительная информация: помимо того, чтобы стать владельцем папки или файла, вам может потребоваться также получить разрешения для изменения, для этого вы можете использовать следующую команду (дает полные права пользователю для папки и вложенных объектов):
ICACLS "%1" /grant:r "имя_пользователя":(OI)(CI)F
Получение доступа с помощью настроек безопасности
Следующий способ — использовать лишь мышь и интерфейс Windows, не обращаясь к командной строке.
- Кликните правой кнопкой мыши по файлу или папке, доступ к которому нужно получить (стать владельцем), в контекстном меню выберите пункт «Свойства».
- На вкладке «Безопасность» нажмите кнопку «Дополнительно».
- Напротив пункта «Владелец» нажмите «Изменить».
- В открывшемся окне нажмите кнопку «Дополнительно», а в следующем — кнопку «Поиск».
- Выберите в списке пользователя (или группу пользователей), которого нужно сделать владельцем элемента. Нажмите Ок, затем — снова Ок.
- Если вы изменяете владельца папки или диска, а не отдельного файла, отметьте также пункт «Заменить владельца подконтейнеров и объектов».
- Нажмите Ок.
На этом вы стали владельцем указанного объекта Windows и сообщения о том, что нет доступа к папке или файлу вас не должны больше потревожить.
Другие способы стать владельцем папок и файлов
Есть и другие способы решить проблему «отказано в доступе» и быстро стать владельцем, например, с помощью сторонних программ, встраивающих пункт «Стать владельцем» в контекстное меню проводника. Одна из таких программ — TakeOwnershipPro, бесплатная и, насколько я могу судить, без чего-то потенциально нежелательного. Аналогичный пункт в контекстное меню можно добавить и путем редактирования реестра Windows.
Однако, с учетом того, что подобная задача возникает сравнительно редко, я не рекомендую устанавливать стороннее ПО или вносить изменения в систему: на мой взгляд, лучше изменить владельца элемента одним из способов «вручную».
Одной из типичных задач для администратора Windows является управление разрешениями NTFS для папок и файлов в файловой системе.
Чтобы управлять разрешениями NTFS, вы можете использовать графический интерфейс Проводника (вкладка «Безопасность» в свойствах папки или файла) или встроенную утилиту командной строки iCACLS.
В этой статье мы рассмотрим пример использования команды iCACLS для просмотра и управления разрешениями на папки и файлы.
Содержание
- Использование команды iCACLS
- Настройки наследования iCACLS:
- Список основных прав доступа:
- Подробные права:
- Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки
- Примеры
Использование команды iCACLS
Команда iCACLS позволяет отображать или изменять списки управления доступом (ACL) для файлов и папок в файловой системе.
Предшественником утилиты iCACLS.EXE является команда CACLS.EXE (используется в Windows XP).
Чтобы просмотреть текущие разрешения для определенной папки (например, C: \ PS), откройте командную строку и запустите команду:
icacls c:\PS
Эта команда вернет вам список всех пользователей и групп, которым назначены права для этого каталога.
Попробуем понять синтаксис разрешений, возвращаемых командой iCACLS:
c:\PS CORP\someusername:(OI)(CI)(M) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Administrators:(I)(OI)(CI)(F) BUILTIN\Users:(I)(OI)(CI)(RX) CREATOR OWNER:(I)(OI)(CI)(IO)(F) Successfully processed 1 files; Failed processing 0 files
Права доступа указываются с использованием сокращений.
Рассмотрим разрешения для пользователя CORP \ someusername.
Для этого пользователя назначаются следующие разрешения:
(OI) – наследование объекта
(CI) – наследование контейнера
(M) – доступ на изменение
Это означает, что у этого пользователя есть права на запись и изменение данных в этом каталоге.
Эти права наследуются ко всем дочерним объектам в этом каталоге.
Ниже приведен полный список разрешений, которые можно установить с помощью утилиты icacls:
Настройки наследования iCACLS:
(OI) – наследование объекта
(CI) – наследование контейнера
(IO) – наследовать только
(NP) – не распространять наследование
(I) – разрешение, унаследованное от родительского контейнера
Список основных прав доступа:
- D – доступ на удаление
- F – полный доступ
- N – нет доступа
- M – изменение
- RX – чтение и выполнение
- R – доступ только для чтения
- W – доступ только для записи
Подробные права:
DE – удаление
RC – контроль чтения
WDAC – запись в DAC
WO – владелец записи
S – синхронизировать
AS – безопасность системы доступа
MA – максимальные права
GR – общий текст
GW – общая запись
GE – общий запуск
GA – общий
RD – чтение данных / список каталогов
WD – записать данные / добавить файл
AD – добавить данные / добавить подкаталог
REA – чтение расширенных атрибутов
WEA – писать расширенные атрибуты
X – выполнение / траверс
DC – удаление дочерних
RA – читать атрибуты
WA – атрибуты записи
Используя команду icacls, вы можете сохранить текущий ACL объекта в файле, а затем применить сохраненный список к тем же или другим объектам (своего рода резервный ACL-путь).
Чтобы экспортировать текущий ACL папки C: \ PS и сохранить их в файле PS_folder_ACLs.txt, выполните команду:
icacls C:\PS\* /save c:\temp\PS_folder_ACLs.txt /t
Эта команда сохраняет ACL не только о самом каталоге, но и о всех подпапках и файлах.
Полученный текстовый файл можно открыть с помощью блокнота или любого текстового редактора.
Чтобы применить ACL выполните команду:
icacls C:\PS /restore c:\temp\PS_folder_ACLs.txt
Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки
Таким образом, процесс передачи ACL из одной папки в другую, становится намного проще.
С помощью команды icacls вы можете изменить списки доступа для этой папки.
Примеры
Например, вы хотите предоставить пользователю John разрешения на редактирование содержимого папки C: \ PS.
Выполните команду:
icacls C:\PS /grant John:M
Вы можете удалить все права Джона, используя команду:
icacls C:\PS /remove John
Кроме того, вы можете запретить пользователю или группе пользователей доступ к файлу или папке следующим образом:
icacls c:\ps /deny "NYUsers:(CI)(M)"
Имейте в виду, что запрещающие правила имеет более высокий приоритет, чем разрешающие правила.
Используя команду icacls, вы можете изменить владельца каталога или папки, например:
icacls c:\ps\secret.docx /setowner John /T /C /L /Q
Вы можете изменить владельца всех файлов в каталоге:
icacls c:\ps\* /setowner John /T /C /L /Q
Также с помощью icacls вы можете сбросить текущие разрешения на объектах файловой системы:
ICACLS C:\ps /T /Q /C /RESET