Как с использованием команды cacls добавить права на запись для всех файлов заданной папки

Обновлено: 07.07.2024

Как я могу предоставить пользователю разрешения на каталог (чтение, запись, изменение) с помощью командной строки Windows?

по состоянию на Vista, cacls устарела. Вот первые несколько строк справки:

вы должны использовать . Вот как Ты даруешь Джону полный контроль над D:\test папка и все ее подпапки:

согласно документации do MS:

  • F = Полный Контроль
  • CI = Container Inherit-этот флаг указывает, что подчиненные контейнеры унаследуют этот ACE.
  • OI = Object Inherit-этот флаг указывает, что подчиненные файлы наследуют ACE.
  • /T = применить рекурсивно к существующим файлам и подпапкам. ( OI и CI применяется только к новым файлам и подпапкам). Кредит: комментарий @AlexSpence.

для получения всей документации вы можете запустить " icacls " без аргументов или см. документацию Microsoft здесь и здесь

вы также можете использовать ICACLS.

предоставить пользователи группа Полный Контроль в папку:

предоставить изменить разрешение пользователям IIS для C:\MyFolder (Если вам нужны ваши IIS имеет возможность R / W файлы в определенную папку):

Если у вас программа icacls /? вы сможете увидеть все доступные варианты.

использовать . Смотрите информацию здесь.

cacls files /e / p :

здесь

/P : установить новое разрешение

/ e: редактировать разрешение и сохранить старое разрешение, как оно есть, т. е. редактировать ACL вместо его замены.

: имя пользователя

: разрешение может быть:

R - Чтение

W - Запись

C-изменить (написать)

F - полный контроль

например, предоставьте Rocky Full (F) control со следующей командой (введите в командной строке Windows):

C:> cacls files /e / p rocky: f

Читать полную справку, введя следующую команду:

C:> cacls/?

Откройте командную строку и выполните следующую команду:

icacls "c:\somelocation\of\path" /q /c /t /grant Users:F

F дает полный доступ.

/q /c /t применяет разрешения к вложенным папкам.

Примечание: иногда "Запуск от имени администратора" поможет.

Я пытаюсь ниже, и это работает для меня:
1. открыть cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4. del *.* /S /Q

так что файлы могут стать моим собственным доступом и назначить" удалить", а затем я могу удалить файлы и папки.

с помощью скрипта Excel vba для подготовки и создания учетных записей. Мне нужно было предоставить полные права доступа к папке и подпапкам, которые были созданы инструментом с помощью учетной записи " X " наших администраторов нашему новому пользователю.

cacls выглядело примерно так: команды cacls \файловый сервер\Пользователи\Имя пользователя /е /г "домен\Имя_пользователя": с

Мне нужно было перенести этот код в Windows 7 и выше. Мое решение оказалось:

icacls \FileServer\Users\Users \ Username / grant:r Домен\имя пользователя: (OI) (CI)F /t

/ grant: r-предоставляет определенные права доступа пользователя. Разрешения заменяют ранее предоставленные явные разрешения. Без: r разрешения добавляются к любым ранее предоставленным явным разрешениям

(OI) (CI) - эта папка, подпапки и файлы.

F - Полный Доступ

/t-пройдите все подпапки, чтобы соответствовать файлам / каталогам.

Это дало мне папку на этом сервере, которую пользователь мог только вижу, что папки и подпапки, чтобы они могли читать и записывать файлы. А также создавать новые папки.

на всякий случай, если кто-то еще спотыкается на этой странице, если вы хотите связать различные разрешения вместе в одной команде, я использовал это:

обратите внимание на строку CSV для различных разрешений.

команда применяется к указанному каталогу.

указание пользователя " все " устанавливает максимально широкое разрешение, так как оно включает возможных пользователей.

опция " / удалить: d" удаляет все явные параметры DENY, которые могут существовать, поскольку они переопределяют явные параметры ALLOW: необходимое предварительное создание нового параметра ALLOW.

опция " / grant "создает новый параметр ALLOW, явное разрешение, которое заменяет (": r") любые явные параметры ALLOW, которые могут существовать.

параметр " F " (т. е. созданное разрешение) делает это предоставлением полного контроля.

в "/Т" параметр добавляет рекурсию, применяя эти изменения ко всем настоящее вложенные объекты в указанном каталоге (т. е. файлы и вложенные папки), а также сама папка.

параметры" (OI) "и" (CI) " также добавляют рекурсию, применяя эти изменения к подобъектам, созданным в будущем.

программы xcacls.VBS - очень мощный скрипт, который изменит / отредактирует информацию ACL. c:\windows\system32\cscript.исполняемые программы xcacls.справка vbs возвращает все переключатели и параметры.

массовое создание папок и предоставление разрешений работает со мной с помощью приведенного ниже сценария powershell.

"Импорт" -CSV-Файла "D:\Scripts\foldernames.csv " / foreach-объект < $имя пользователя._$ = foldername

Примечание: Вы должны создать то же имя пользователя домена в csv-файле, иначе вы получите вопросы разрешения

отличная точка Кэлин Дари

У меня было много скриптов для использования cacls, я перемещаю их в icacls как бы то ни было, я не смог найти сценарий для изменения примера корневых томов монтирования: d:\datafolder - . Я, наконец, упаковал сценарий ниже, который монтирует том в качестве временного диска, а затем применяет sec. затем размонтирует его. Это единственный способ, которым я обнаружил, что вы можете обновить безопасность корневого монтирования.

1 получает GUID монтирования папки во временный файл, а затем считывает GUID для монтирования Тома как временный диск X: применяет sec и регистрирует изменения, затем размонтирует том только с диска X:, чтобы смонтированная папка не изменялась или не прерывалась, кроме примененной sec.

вот пример моего скрипта:

Я администратор, и какой-то скрипт разместил разрешение "запретить" на мое имя во всех файлах и подпапках в каталоге. Выполнение icacls "D:\test" /grant John:(OI)(CI)F /T команда не сработала, потому что казалось, что она не удалила "запретить" прямо из моего имени из этого списка.

единственное, что работал для меня-это сброс всех разрешений с

вот что сработало для меня:

вручную откройте папку, доступ к которой запрещен.

выбрать исполняемый файл приложения в этой папке.

щелкните правой кнопкой мыши на нем и перейдите в свойства -> совместимость

Команда icacls позволяет отобразить или модифицировать дискретный список управления доступом для файла или файлов. Если есть подозрение, что пользователь не может получить доступ к файлу из-за проблем с правами доступа, можно воспользоваться утилитой cacls для анализа ситуации.

Когда после запуска утилиты cacls в правах доступа для файла или каталога обнаруживаются проблемы, то можно воспользоваться этой же командой для исправления списков управления доступом.

Вот синтаксис команды cacls:

cacls <имя_файла> [/t] [/e] [/c] [/g <пользователь|группа:разрешение> ] [/r <пользователь|группа>] [/p <пользователь|группа:разрешение>] [/d <пользователь|группа>]

Вот пример моего случая: мне надо было пробежаться по всем папкам и файлам в дериктории М и включить наследование:


Команда iCACLS позволяет отображать или изменять списки управления доступом (Access Control Lists (ACLs) ) к файлам и папкам файловой системы. Утилита iCACLS.EXE является дальнейшим усовершенствованием утилиты управления доступом CACLS.EXE.

Управление доступом к объектам файловой системы NTFS реализуется с использованием специальных записей в таблице MFT (Master File Table). Каждому файлу или папке файловой системы NTFS соответствует запись в таблице MFT, содержащая специальный дескриптор безопасности SD (Security Descriptor). Каждый дескриптор безопасности содержит два списка контроля доступа:

System Access-Control List (SACL) - системный список управления доступом .

Discretionary Access-Control List (DACL) - список управления избирательным доступом.

SACL управляется системой и используется для обеспечения аудита попыток доступа к объектам файловой системы, определяя условия при которых генерируется события безопасности. В операционных системах Windows Vista и более поздних, SACL используется еще и для реализации механизма защиты системы с использованием уровней целостности ( Integrity Level, IL).

DACL - это собственно и есть список управления доступом ACL в обычном понимании. Именно DACL формирует правила, определяющие, кому разрешить доступ к объекту, а кому - запретить.

Каждый список контроля доступа (ACL) представляет собой набор элементов (записей) контроля доступа - Access Control Entries, или ACE) . Записи ACE бывают двух типов (разрешающий и запрещающий доступ), и содержит три поля:

SID пользователя или группы, к которому применяется данное правило

Вид доступа, на которое распространяется данное правило

Тип ACE - разрешающий или запрещающий.

SID - Security ID – уникальный идентификатор, который присваивается каждому пользователю или группе пользователей в момент их создания. Посмотреть примеры SID можно , например с помощью команды WHOAMI /ALL. Как видим, система управления доступом к объектам NTFS оперирует не именами, а идентификаторами SID. Поэтому, например нельзя восстановить доступ к файлам и папкам, существовавший для удаленного из системы пользователя, создав его заново с тем же самым именем – он получит новый SID и правила записей ACE, применяемые к старому идентификатору SID, выполняться не будут.

При определении результатов запросов на доступ к объектам файловой системы NTFS применимы следующие правила:

Если в дескрипторе безопасности отсутствует DACL , то объект считается незащищенным, т.е. все имеют к нему неограниченный доступ.

Если DACL существует, но не содержит ни одного элемента ACE, то доступ к объекту закрыт для всех.

Для того чтобы изменить DACL объекта, пользователь (процесс) должен обладать правом записи в DACL (WRITE_DAC - WDAC). Право записи может быть разрешено или запрещено, с помощью утилиты icalc.exe, но даже если установлен запрет, все равно разрешение на запись имеется хотя бы у одного пользователя владельца файла или папки (поле Owner в дескрипторе безопасности), так как владелец всегда имеет право изменять DAC.

Варианты применения команды iCACLS:

ICACLS имя /save ACL_файл [/T] [/C] [/L] [/Q] - сохранение DACL для файлов и папок, соответствующих имени, в ACL-файл для последующего использования с командой /restore. Обратите внимание, что метки SACL, владельца и целостности не сохраняются.

ICACLS каталог [/substitute SidOld SidNew [. ]] /restore ACL_файл [/C] [/L] [/Q] - применение ранее сохраненных DACL к файлам в каталоге.

ICACLS имя /setowner пользователь [/T] [/C] [/L] [/Q] - смена владельца всех соответствующих имен. Этот параметр не предназначен для принудительной смены владельца; используйте для этой цели программу takeown.exe.

ICACLS имя /findsid Sid [/T] [/C] [/L] [/Q] - поиск всех соответствующих имен, содержащих ACL с явным упоминанием ИД безопасности.

ICACLS имя /verify [/T] [/C] [/L] [/Q] - поиск всех файлов с неканоническими ACL или длинами, не соответствующими количеству ACE.

ICACLS имя /reset [/T] [/C] [/L] [/Q] - замена ACL на унаследованные по умолчанию для всех соответствующих файлов.

ICACLS имя [/grant[:r] Sid:perm[. ]] [/deny Sid:perm [. ]] [/remove[:g|:d]] Sid[. ]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[. ]]

/grant[:r] Sid:perm — предоставление указанных прав доступа пользователя. С параметром :r эти разрешения заменяют любые ранее предоставленные явные разрешения. Без параметра :r разрешения добавляются к любым ранее предоставленным явным разрешениям.

/deny Sid:perm — явный отзыв указанных прав доступа пользователя. Добавляется ACE явного отзыва для заявленных разрешений с удалением этих же разрешений в любом явном предоставлении.

/remove[:[g|:d]] Sid — удаление всех вхождений ИД безопасности в ACL. С параметром :g удаляются все вхождения предоставленных прав в этом ИД безопасности. С параметром :d удаляются все вхождения отозванных прав в этом ИД безопасности.

/setintegritylevel [(CI)(OI)]уровень — явное добавление ACE уровня целостности ко всем соответствующим файлам. Уровень задается одним из следующих значений:

Уровню могут предшествовать параметры наследования для ACE целостности, применяемые только к каталогам.

Механизм целостности Windows Vista и более поздних версий ОС, расширяет архитектуру безопасности путём определения нового типа элемента списка доступа ACE для представления уровня целостности в дескрипторе безопасности объекта (файла, папки). Новый ACE представляет уровень целостности объекта. Он содержится в системном ACL (SACL), который ранее используемом только для аудита. Уровень целостности также назначается токену безопасности в момент его инициализации. Уровень целостности в токене безопасности представляет уровень целостности (Integrity Level, IL) пользователя (процесса). Уровень целостности в токене сравнивается с уровнем целостности в дескрипторе объекта когда монитор безопасности выполняет проверку доступа. Система ограничивает права доступа в зависимости от того выше или ниже уровень целостности субъекта по отношению к объекту, а также в зависимости от флагов политики целостности в соответствующей ACE объекта. Уровни целостности (IL) представлены идентификаторами безопасности (SID), которые представляют также пользователей и группы, уровень которых закодирован в относительном идентификаторе (RID) идентификатора SID. Наиболее распространенные уровни целостности:

SID = S-1-16-4096 RID=0x1000 - уровень Low (Низкий обязательный уровень)

SID= S-1-16-8192 RID=0x2000 – уровень Medium (Средний обязательный уровень)

SID= S-1-16-12288 RID=0x3000 – уровень High (Высокий обязательный уровень)

SID= S-1-16-16384 RID=0x4000 – уровень системы (Обязательный уровень системы).

e - включение наследования

d - отключение наследования и копирование ACE

r - удаление всех унаследованных ACE

ИД безопасности могут быть в числовой форме (SID), либо в форме понятного имени (username). Если задана числовая форма, добавьте * в начало ИД безопасности, например - *S-1-1-0. Параметры командной строки iCACLS:

/T - операция выполняется для всех соответствующих файлов и каталогов, расположенных в заданном каталоге.

/L - операция выполняется над самой символьной ссылкой, а не над ее целевым объектом.

Утилита ICACLS сохраняет канонический порядок записей ACE:

разрешение - это маска разрешения, которая может задаваться в одной из двух форм:

последовательность простых прав:

N - доступ отсутствует

F - полный доступ

M - доступ на изменение

RX - доступ на чтение и выполнение

R - доступ только на чтение

W - доступ только на запись

D - доступ на удаление

список отдельных прав через запятую в скобках:

DE - удаление
RC - чтение
WDAC - запись DAC
WO - смена владельца
S - синхронизация
AS - доступ к безопасности системы
MA - максимально возможный
GR - общее чтение
GW - общая запись
GE - общее выполнение
GA - все общие
RD - чтение данных, перечисление содержимого папки
WD - запись данных, добавление файлов
AD - добавление данных и вложенных каталогов
REA - чтение дополнительных атрибутов
WEA - запись дополнительных атрибутов
X - выполнение файлов и обзор папок
DC - удаление вложенных объектов
RA - чтение атрибутов
WA - запись атрибутов

Права наследования могут предшествовать любой форме и применяются только к каталогам:

(OI) - наследование объектами

(CI) - наследование контейнерами

(IO) - только наследование

(NP) - запрет на распространение наследования

(I) - наследование разрешений от родительского контейнера

Примеры использования iCACLS:

icacls - запуск без ключей используется для получения краткой справки по использованию команды.

Успешно обработано 1 файлов; не удалось обработать 0 файлов

Пример данных сохраненных списков доступа ACL:

В тех случаях, когда при выполнении команды iCACLS возникает ошибка, вызванная отказом в доступе к обрабатываемому объекту, можно продолжить выполнение команды, если задан параметр /C:

iCACLS.exe (2003 sp2, Vista+)

Change file and folder permissions - display or modify Access Control Lists (ACLs) for files and folders.
iCACLS resolves various issues that occur when using the older CACLS & XCACLS

Syntax
Add or remove permissions:
ICACLS Name
[/grant[:r] User:Permission[. ]]
[/deny User:Permission[. ]]
[/remove[:g|:d]] User[. ]]
[/inheritance:e|d|r ]
[/setintegritylevel Level[. ]]
[/T] [/C] [/L] [/Q]

Restore ACLs to all files in directory:
ICACLS directory [/substitute SidOld SidNew [. ]]
/restore aclfile [/C] [/L] [/Q]

Change Owner:
ICACLS name /setowner user [/T] [/C] [/L] [/Q]

Find items with an ACL that mentions a specific SID:
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]

Find files whose ACL is not in canonical form or with a length inconsistent with the ACE count:
ICACLS name /verify [/T] [/C] [/L] [/Q]

Replace ACL with default inherited acls for all matching files:
ICACLS name /reset [/T] [/C] [/L] [/Q]
This is equivalent to “Replace all child permission entries with inheritable permission from this object” in the GUI.

Key
name The File(s) or folder(s) the permissions will apply to.

/T Traverse all subfolders to match files/directories. This will apply permission changes to
all subfolders whether or not they are set to inherit permissions from the parent. On very large
directory structures this may take some time as the command has to traverse the entire tree.

/C Continue on file errors (access denied) Error messages are still displayed.

/L Perform the operation on a symbolic link itself, not its target.

/Q Quiet - supress success messages.

/grant :r user:permission
Grant access rights, with :r, the permissions
will replace any previouly granted explicit permissions (for the given user).
Otherwise the permissions are added.

/deny user:permission
Explicitly deny the specified user access rights.
This will also remove any explicit grant of the
same permissions to the same user.

/remove[:[g|d]] User
Remove all occurrences of User from the acl.
:g remove all granted rights to that User/Sid.
:d remove all denied rights to that User/Sid.

/inheritance:e|d|r
e - Enable inheritance
d - Disable inheritance and copy the ACEs
r - Remove all inherited ACEs

/setintegritylevel [(CI)(OI)]Level
Add an integrity ACE to all matching files.
level is one of L,M,H (Low Medium or High)

A Directory Inheritance option for the integrity ACE can precede the level
and is applied only to directories:

user A user account, Group or a SID

/restore Apply the acls stored in ACLfile to the files in directory

permission is a permission mask and can be specified in one of two forms:
a sequence of simple rights:
D - Delete access
F - Full access (Edit_Permissions+Create+Delete+Read+Write)
N - No access
M - Modify access (Create+Delete+Read+Write)
RX - Read and eXecute access
R - Read-only access
W - Write-only access
a comma-separated list in parenthesis of specific rights:
DE - Delete
RC - read control
WDAC - write DAC
WO - write owner
S - synchronize
AS - access system security
MA - maximum allowed
GR - generic read
GW - generic write
GE - generic execute
GA - generic all
RD - read data/list directory
WD - write data/add file
AD - append data/add subdirectory
REA - read extended attributes
WEA - write extended attributes
X - execute/traverse
DC - delete child
RA - read attributes
WA - write attributes
inheritance rights can precede either form and are applied
only to directories:
(OI) - object inherit
(CI) - container inherit
(IO) - inherit only
(NP) - don’t propagate inherit
(I) - Permission inherited from parent container
Unlike earlier command-line tools, iCACLS correctly preserves the canonical ordering of ACE entries:

An access control list (ACL) is a list of access control entries (ACE). When backing up or restoring an ACL with iCACLS, you must do so for an entire directory (using /save and /restore) even if you are only interested in the ACEs for a few individual files. In practice most permissions are set at the per-directory level.

Multiple /Grant /Deny /Remove clauses can be included in a single icacls command, on a large directory tree this has the advantage that the tree only has to be traversed once, rather than multiple times if you were to issue several consecutive icacls commands instead.

OI - Object inherit - This folder and files. (no inheritance to subfolders)
CI - Container inherit - This folder and subfolders.
IO - Inherit only - The ACE does not apply to the current file/directory

It is worth spending some time working out which permissions can be inherited and which need to be applied directly. On large/complex directory structures, minimising the number of ACLs can improve fileserver performance.

Built-In Groups
A command which addresses a built-in group by name like ICACLS foldername /GRANT Everyone:F /T
will only work when the system language is English.

To make this language independent, use an asterisk followed by the well-known SID for the group, see Q243330 for a list.

For example, to grant full control to Everyone on a folder: ICACLS foldername /GRANT *S-1-1-0:F /T

or you can combine grants like:

Backup the ACLs of every file in the current directory:

icacls * /save Myacl_backup.txt

Restore ACLS using a previously saved acl file:

icacls /restore Myacl_backup.txt

Change the Integrity Level (IL) of a file to High:

icacls MyReport.doc /setintegritylevel H

The above does set the correct permissions, but an undesired bug/side effect is that within the top level folder the Windows Explorer right click option to create New files will be empty - only New Folder is shown:

на форумах довольно часто встает вопрос о том как получить доступ к какому либо объекту Windows.
рассмотрим возможные варианты.

внимание!
обязательно создайте точку восстановления перед манипуляциями на доступом к ресурсам/файлам
инструкция

Для того чтобы создать точку восстановления необходимо открыть панель свойств системы - Панель управления->Система->Защита системы->Создать. в появившемся окне ввести название точки (дата и время будут проставлены автоматически), после окончания работы утилиты достаточно нажать кнопку Закрыть.
Для того чтобы восстановить и откатить систему до нужной точки, необходимо воспользоваться другим инструментом - Панель управления->Восстановление->Запуск восстановления системы, в окне мастера нажать Далее и выбрать в списке нужную точку, снова Далее и убедившись в правильности своего выбора нажать Готово.

самый простой способ
Способ 1.
Использование графического интерфейса (GUI)

1)
Откройте проводник (или редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.

для файла или папки

Установите курсор на группу Администраторы или на имя своей учетной записи и нажмите ОК. В случае с папкой также, вероятно, вам понадобится отметка параметра "Заменить владельца подконтейнеров и объектов".

Для раздела реестра.


Способ 2.
Использование утилит командной строки takeown и icacls (применим только к файлам, папкам и дискам)
для windows xp -команда cacls

Нажмите Пуск - в строке поиска введите cmd – на найденном файле нажмите правую клавишу мыши и выберите пункт
Запуск от имени администратора

Примечание.
Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена.

вариант А
используем команду takeown

Команда takeown использует следующий синтаксис:
takeown /f <файл> [/s <система>] [/u <домен\пользователь>] [/p <пароль>]

рассмотрим возможные параметры команды.

параметр /f <файл>
Используется для указания файла, который принимается во владение. Можно использовать символ

параметр /s <система>
Используется для предоставления имени или адреса IP удаленного компьютера, на котором будет запущена команда. По умолчанию команда будет запущена на локальной системе.

парметр /u <домен\пользователь>
Используется для запуска команды от имени другого пользователя. Это может потребоваться, когда команда запускается на изолированной системе от имени локального администратора.

параметр /p <пароль>
Используется для указания пароля учетной записи пользователя, если предоставлен параметр /u.

пример:
Чтобы принять на себя владения всеми файлами в каталоге D:\Game введите такую команду:

внимание!
Сразу после принятия на себя владения файлом или папкой администратор может получать доступ к файлу. Если к папке должны получать доступ множество пользователей, не забудьте обновить права доступа для папки с помощью команды cacls или с помощью Проводника Windows (Windows Explorer).

Полный синтаксис утилиты вы можете получить по команде takeown /?

утилита icacls (для windows xp cacls)

синтаксис команды icacls выглядит следующим образом:

icacls папка\файл /setowner Пользователь параметры

Посмотрим несколько конкретных примеров, как можно изменить владельца файла или папки.

icacls "C:\Program Files (x86)\UltraISO\UltraISO.exe" /setowner Administrator /C /L /Q

icacls "C:\Program Files (x86)\UltraISO\UltraISO.exe" /setowner "NT SERVICE\TrustedInstaller" /C /L /Q

icacls "C:\Program Files (x86)\UltraISO\" /setowner Medvedev /T /C /L /Q

icacls "C:\Program Files (x86)\UltraISO\" /setowner Putin /T /C /L /Q
Теперь разберемся, что это за параметры используются в каждой команде.

А вот как можно изменять разрешения для файла или папки:

icacls папка_или_файл /grant:r пользователь:разрешение

Список разрешений выглядит следующим образом:

D – удаление;
F – полный доступ;
M – изменение;
RX – чтение и выполнение;
R – чтение;
W – запись.
В качестве примера можно привести следующие команды:

icacls "C:\Program Files (x86)\UltraISO\UltraISO.exe" /grant:r Putin:F

icacls "C:\Program Files (x86)\UltraISO\UltraISO.exe" /grant:r Putin:M

icacls "C:\Program Files (x86)\UltraISO\" /grant:r Putin:F

icacls "C:\Program Files (x86)\UltraISO\" /grant:r Putin:RX /T

Чтобы узнать больше, введите в командной строке команду icacls /? и вы получите полный перечень ее команд.

Пункт смены владельца объекта в контекстном меню проводника.


Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
В предлагаемом варианте также используются утилиты командной строки takeown и icacls с определенными параметрами, а полученная команда установит владельцем объекта, на котором будет применяться пункт меню, группу Администраторы (или Administrators в английской версии ОС).

Для добавления пункта меню «Смена владельца» примените этот твик реестра:

Как я могу предоставить пользователю права доступа к каталогу (чтение, запись, изменение) с помощью командной строки Windows?

Начиная с Vista, cacls устарел. Вот первая пара строк помощи:

Вместо этого вам следует использовать icacls . Вот как вы предоставляете Джону полный контроль над папкой D:\test и всеми ее подпапками:

Согласно документации MS:

  • F = Полный доступ
  • CI = Наследование контейнера - этот флаг указывает, что подчиненные контейнеры унаследуют этот ACE.
  • OI = Object Inherit - этот флаг указывает, что подчиненные файлы наследуют ACE.
  • /T = рекурсивно применять к существующим файлам и подпапкам. ( OI и CI применяются только к новым файлам и подпапкам). Кредит: комментарий @AlexSpence.

Для получения полной документации вы можете запустить " icacls " без аргументов или просмотреть документацию Microsoft здесь и здесь

Вы также можете использовать ICACLS.

Чтобы предоставить группе Полный доступ Пользователи к папке:

Чтобы предоставить пользователям IIS разрешение на изменение для C:\MyFolder (если вам нужно, чтобы ваш IIS мог записывать / записывать файлы в определенную папку):

Если вы сделаете ICACLS /? , вы сможете увидеть все доступные параметры.

Откройте командную строку, затем выполните эту команду:

icacls "c:\somelocation\of\path" /q /c /t /grant Users:F

F дает полный доступ.

/q /c /t применяет разрешения к подпапкам.

Примечание. Иногда может помочь "Запуск от имени администратора".

Используйте команду cacls . См. Информацию здесь.

Файлы CACLS / e / p :

Где,

/ p: установить новое разрешение

/ e: разрешение на редактирование и сохранение старого разрешения как есть, то есть редактировать ACL вместо его замены.

: имя пользователя

: разрешение может быть:

R - Читать

W - Написать

C - Изменить (написать)

F - Полный контроль

Например, предоставьте управление Rocky Full (F) с помощью следующей команды (введите в командной строке Windows):

C:> Файлы CACLS / e / p rocky: f

Прочтите полную справку, набрав следующую команду:

C:> cacls /?

Я пробую способ ниже, и он работает для меня:
1. откройте cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4. del *.* /S /Q

Так что файлы могут стать моим собственным доступом и назначить «Удалить», а затем я могу удалить файлы и папки.

Поврежденные разрешения: восстановление доступа к папке и ее подобъектам

Для Windows 10 пользователь / SID необходимо указать после параметра /remove:d :

.
Примечания :

Команда применяется к указанному каталогу.

Указание пользователя «Все» устанавливает максимально широкие права доступа, так как включает каждого возможного пользователя.

Параметр «/ remove: d» удаляет любые явные настройки ЗАПРЕТЕНИЯ, которые могут существовать, поскольку они переопределяют явные настройки РАЗРЕШЕНИЯ: необходимая предварительная подготовка для создания новой настройки РАЗРЕШЕНИЯ. Это всего лишь мера предосторожности, поскольку зачастую параметр ОТКАЗАТЬ отсутствует, но лучше перестраховаться, чем сожалеть.

Параметр «/ grant» создает новый параметр РАЗРЕШЕНИЯ, явное разрешение, которое заменяет («: r») любые и все явные настройки РАЗРЕШЕНИЯ, которые могут существовать.

Параметр «F» (т. Е. Созданное разрешение) делает это предоставлением ПОЛНОГО управления.

Параметр «/ T» добавляет рекурсию, применяя эти изменения ко всем текущим подобъектам в указанном каталоге (то есть файлам и подпапкам), а также к самой папке.

Параметры «(OI)» и «(CI)» также добавляют рекурсию, применяя эти изменения к подобъектам, создаваемым впоследствии.
.

ДОБАВЛЕНИЕ (10.02.2019) -

Командная строка Windows 10 выше была любезно предложена мне сегодня, так что вот она. У меня нет Windows 10, чтобы протестировать его, но, пожалуйста, попробуйте, если у вас есть (а затем вы, пожалуйста, оставьте комментарий ниже).

Изменение касается только удаления настройки DENY в качестве первого шага. Вполне может быть, что какой-либо настройки DENY не существует, поэтому этот параметр может не иметь никакого значения. Насколько я понимаю, в Windows 7 вам не нужно указывать пользователя после / remove: d , но я могу ошибаться в этом!

ДОБАВЛЕНИЕ (21.11.2019) -

Пользователь astark рекомендует заменить Все термином * S-1-1-0, чтобы команда не зависела от языка. У меня только английская версия Windows, поэтому я не могу протестировать это предложение, но оно кажется разумным.

С помощью сценария Excel vba для подготовки и создания учетных записей. Мне нужно было предоставить полные права доступа к папке и подпапкам, которые были созданы инструментом с использованием учетной записи нашего администратора «x» нашему новому пользователю.

Cacls выглядел примерно так: cacls \ FileServer \ Users \ Username / e / g Domain \ Username: C

Мне нужно было перенести этот код на Windows 7 и выше. Мое решение оказалось таким:

Icacls \ FileServer \ Users \ Имя пользователя / грант: r Домен \ Имя пользователя: (OI) (CI) F / t

/ grant: r - Предоставляет указанные права доступа пользователю. Разрешения заменяют ранее предоставленные явные разрешения. Без: r разрешения добавляются к любым ранее предоставленным явным разрешениям.

(OI) (CI) - это папка, подпапки и файлы.

F - Полный доступ

/ t - пройти по всем подпапкам, чтобы найти файлы / каталоги.

Это дало мне папку на этом сервере, в которой пользователь мог видеть только эту папку и создавать подпапки, в которых они могли читать и записывать файлы. А также создавать новые папки.

На всякий случай, если кто-то еще наткнется на эту страницу, если вы хотите объединить различные разрешения в одну команду, я использовал это:

Обратите внимание на строку csv для различных разрешений.

XCACLS.VBS - очень мощный скрипт, который изменяет / редактирует информацию ACL. c: \ windows \ system32 \ cscript.exe xcacls.vbs help возвращает все переключатели и параметры.

Вы можете получить официальное распространение на странице поддержки Microsoft

Массовое создание папки и предоставление разрешений позволяют мне использовать приведенный ниже сценарий PowerShell.

Примечание. Вам необходимо создать такое же имя пользователя домена в файле CSV, иначе возникнут проблемы с разрешениями.

Отличная точка Кэлин Дари

У меня было много сценариев для использования cacls. Я перемещаю их в icacls, но мне не удалось найти сценарий для изменения корневых томов, например: d: \ datafolder. Наконец, я создал сценарий ниже, который монтирует том как временный диск, а затем применяет сек. затем размонтирует его. Я обнаружил, что это единственный способ обновить безопасность корневого монтирования.

1 получает GUID монтирования папки во временный файл, затем считывает GUID для монтирования тома в качестве временного диска X: применяет sec и регистрирует изменения, затем отключает том только с диска X :, чтобы смонтированная папка не была изменена или прервана другим затем применяемый сек.

Вот образец моего скрипта:

Я являюсь администратором, и какой-то сценарий поместил разрешение «Запретить» на мое имя во всех файлах и подпапках в каталоге. Выполнение команды icacls "D:\test" /grant John:(OI)(CI)F /T не сработало, потому что казалось, что она не удалила "Запретить" прямо с моего имени из этого списка.

Единственное, что у меня сработало, это сброс всех разрешений с помощью команды icacls "D:\test" /reset /T .

  1. перейдите в каталог верхнего уровня, для которого вы хотите установить разрешения с помощью проводника
  2. введите cmd в адресной строке окна проводника
  3. введите icacls . /grant John:(OI)(CI)F /T , где Джон - имя пользователя
  4. прибыль

Просто добавьте это, потому что это казалось в высшей степени простым, и другие могут получить прибыль - вся заслуга принадлежит Călin Darie .

В windows 10 работает без "c:>" и ">"

cacls "путь к файлу или папке" / e / p Имя пользователя: F

(также это исправляет ошибки 2502 и 2503)

cacls "C: \ Windows \ Temp" / e / p Имя пользователя: F

Читайте также: