Иногда, чтобы поменять что-то в реестре (выполнить твик или просто внести нужное вам изменение) в первую очередь требуется получить доступ к ветке/ключу реестра. Казалось бы, для администратора это не проблема. Но нюанс в том, что в некоторые ветки реестра Windows не может внести изменения даже администратор. Доступ к таким веткам ограничивается ACL, в которых либо отсутствуют права записи для группы локальных администраторов, либо владельцем таких разделов назначены TrustedInstaller или System. В этом руководстве мы покажем несколько простых способов предоставить администратору права владельца и полные права на защищенный таким образом раздел реестра.
Не будем рассматривать графический способ смены владельца и назначения права через утилиту regedit.exe, и остановимся на возможностях смены владельца любого ключа реестра и предоставления доступа из командной строки. Все описанные ниже методы работают во всех версиях Windows!
Содержание:
- Получение прав владельца на ключ реестра с использованием утилиты SubInACL
- Смена владельца и прав на ключ реестра с помощью утилиты SetACL
- Получение прав владельца на ключ реестра с использованием встроенной команды REGINI
- Пример использования
Получение прав владельца на ключ реестра с использованием утилиты SubInACL
SubInACL – это официальная утилита от Microsoft, которую можно использовать для просмотра и изменения прав, владельца и информации о безопасности и т.д. для файлов, папок, ключей реестра, сервисов и т.д. в ОС Windows .
Утилита была написана для Windows 2000, XP и Server 2003, однако ее можно использовать и со всеми новыми версиями Windows.
ШАГ 1:
Скачайте утилиту с сайта Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=23510
ШАГ 2:
Это стандартный MSI инсталлятор, который копирует SubInACL.exe file в папку «C:Program Files (x86)Windows Resource KitsTools» в Windows x64 и в папку «C:Program FilesWindows Resource KitsTools» в Windows х86.
Но никто не мешает вам просто распаковать MSI файл (например, с помощью 7-Zip) в любое место без необходимости его установки.
ШАГ 3:
Вы можете выбрать как запускать SubInACL.exe. Из места установки (cd C:Program Files (x86)Windows Resource KitsTools), или из места куда вы сами его распаковали, да хоть с флэшки 🙂 . Или можете скопировать SubInACL.exe в папку С:WindowsSystem32 и тогда он будет запустится по имени. Мы предлагаем скопировать subinacl.exe файл в папку C:WindowsSystem32 (C:WindowsSysWOW64) чтобы была возможность запустить SubInACL из любого удобного места.
ШАГ 4:
Давайте научимся, как работать с SubInACL.exe. Синтаксис утилиты (в командной строке с правами администратора):
SubInACL /type name /action
/type: Укажите нужный тип объекта. Если надо сменить владельца файла или папки используем file, а если надо поменять владельца ключа реестра, то используем keyreg или subkeyreg. Разница между keyreg и subkeyreg в том, что keyreg меняет владельца только конкретного ключа, а subkeyreg меняет владельца этого ключа и всех подчиненных ключей.
name: Замените этот параметр на название файла, папки или ключа реестра.
/action: Этот параметр определяет то действие, которое будет произведено над объектом. Ну а раз мы собрались менять владельца ключа и прав на ключ, будем использовать /setowner=administrators /grant=administrators=f в качестве действия.
Смотрим на пример.
SUBINACL /keyreg "HKEY_LOCAL_MACHINESOFTWAREMozilla" /setowner=Администраторы /grant=Администраторы=f
Примечание. В английской версии Windows вместо Администраторы нужно указывать Administrators.
Эта команда означает, что меняется владелец данного ключа и Администратор получает полные права управления данным ключом.
Ну а вам остается только заменить название ключа из примера, на ваш собственный и запустить команду..
PS: Если интересно посмотреть весь доступный синтаксис, ключи и параметры команды SubInACL, запустите с таким ключом SubInACL /help
Смена владельца и прав на ключ реестра с помощью утилиты SetACL
SetACL является бесплатной консольной утилитой. Вам нужно скачать программку и затем запустить нужные команды.
ШАГ 1:
Качаем программу SetACL: https://helgeklein.com/download/#setacl
ШАГ 2:
После скачивания распакуйте ZIP файл и увидите две версии утилиты: для x86 и для x64 версий Windows. Вам надо использовать правильный SetACL.EXE для вашей версией Windows. Посмотреть какая версия Windows можно в Свойствах Системы (System Properties).
ШАГ 3:
Есть два способа использовать приложение. Вы можете, например, сохранить утилиту в папке E:SetACL, затем открыть Командную строку от имени Администратора и перейти в эту папку используя стандартные команды или ввести полный путь для запуска утилиты, например E:SetACLSetACL.exe. Или вы можете скопировать SetACL.exe в системную папку C:WindowsSystem32 (C:WindowsSysWOW64) тогда можно запускать команду SetACL из любого места. Мы предлагаем скопировать EXE файл в папку C:WindowsSystem32 (C:WindowsSysWOW64).
ШАГ 4:
Теперь, когда вы сделали все предварительные процедуры, вы можете запустить SetACL:
SetACL -on name -ot type -actn action
Синтаксис:
То что выделено жирным остается неизменным, то что выделено курсивом будем менять:
—on: Этот параметр указывает на полный путь к фалу или ключ реестра, владельца которого надо изменить.
—ot: Этот параметр определяет тип объекта. Если меняем владельца файла, то меняем параметр на file. Если ключ реестра, то указываем reg
—actn: Этот параметр указывает, что именно сделать. Возможно много вариантов, но так как мы говорим о ключах реестра, в частности о смене владельца или назначении других прав на ключ, будем использовать только значения setowner или ace.
Чтобы лучше понять как это работает, посмотрим пример:
Предположим, что нужно сменить владельца ключа HKEY_LOCAL_MACHINESOFTWAREMozilla. Для этого нам надо запустить SetACL со следующими параметрами:
SetACL.exe -on "HKEY_LOCAL_MACHINESOFTWAREMozilla" -ot reg -actn setowner -ownr "n:Администраторы"
SetACL.exe -on "HKEY_LOCAL_MACHINESOFTWAREMozilla" -ot reg -actn ace -ace "n:Администраторы;p:full"
Первая команда сделает группу локальных администраторов владельцем ключа, а вторая предоставит полный доступ к ключу.
Вам просто надо поменять значение ключа между кавычками(«»), на тот, который вам нужен.
Примечание: SetACL имеет много параметров, но об этом почитайте самостоятельно здесь (https://helgeklein.com/setacl/documentation/command-line-version-setacl-exe/).
Получение прав владельца на ключ реестра с использованием встроенной команды REGINI
Эта команда идет в составе любой Windows и мы можем ее использовать для назначения разрешений на ключи реестра. Использование команды очень простое. Создаем файл скрипта с необходимыми параметрами и передаем этот файл для обработки команде REGINI.
ШАГ 1:
Открываем Блокнот (Notepad) и вписываем название необходимого ключа и ACL (Access Control List) используя вот такой вот формат:
Key_name [ACL]
Меняем Key_name на название нужного ключа, но смотрите, чтобы название ключа была корректным, как показано ниже:
Registrymachinesoftwareclasses (для ключей раздела HKEY_CLASSES_ROOT)
Registrymachine (для ключей раздела HKEY_LOCAL_MACHINE)
Registryuseruser_sid (для ключей раздела HKEY_CURRENT_USER) (замените user_sid на правильный Security ID этого пользователя)
Registryuser (для ключей раздела HKEY_USERS)
Для примера, давайте рассмотрим ключ «HKEY_LOCAL_MACHINESOFTWAREMozilla» и запишем скрипт:
RegistrymachineSOFTWAREMozilla
Заменяем ACL на те, которые нам необходимы list:
1 | (to provide Administrators Full Access) | Дать Администраторам полный доступ |
2 | (to provide Administrators Read Access) | Дать Администраторам доступ только на чтение |
3 | (to provide Administrators Read and Write Access ) | Дать Администраторам право на изменение |
4 | (to provide Administrators Read, Write and Delete Access) | Дать Администраторам право на изменение и удаление |
5 | (to provide Creator/Owner Full Access) | Дать Создателю/Владельцу полный доступ |
6 | (to provide Creator/Owner Read and Write Access) | Дать Создателю/Владельцу доступ на изменение |
7 | (to provide Everyone Full Access) | Дать Всем полный доступ |
8 | (to provide Everyone Read Access) | Дать Всем доступ только на чтение |
9 | (to provide Everyone Read and Write Access) | Дать Всем право на изменение |
10 | (to provide Everyone Read, Write and Delete Access) | Дать Всем право на изменение и удаление |
17 | (to provide System Full Access) | Дать Системе полный доступ |
18 | (to provide System Read and Write Access) | Дать Системе право на изменение |
19 | (to provide System Read Access) | Дать Системе доступ только на чтение |
Сейчас [ACL] в скрипте будет установлен как-то так:
[1 6 9 17]
Как показано в таблице это даст полный доступ Администраторам и Системе, а также право на изменение создателю ключа и все остальным.
Окончательно строка будет выглядеть так:
RegistrymachineHKEY_LOCAL_MACHINESOFTWAREMozilla [1 6 9 17]
Вы можете использовать любые комбинации ACL как вам нужно.
Примечание: Помните, что существующие разрешения для указанного в скрипте ключа будут заменены на новые. Не забывайте включить в скрипт разрешения для всех аккаунтов. Если вы забудете дать права аккаунту СИСТЕМА, то этот аккаунт будет удален из списка предоставления доступа.
ШАГ 2:
Сохраняем скрипт под именем ACL.TXT затем открываем командную строку от имени администратора и запускаем нашу команду:
REGINI full_path_of_script_file
Или, в нашем случае, это будет выглядеть так
REGINI c:installacl.txt
И все. Разрешения будут немедленно изменены.
Ну вот как-то так. Метод 1 наиболее эффективен и работает на все 100%.
Пример использования
Было необходимо запустить Remote Desktop Host, предоставить группе разработчиков совместный доступ к серверу для настройки определенных приложений и базы данных. В дальнейшем, предоставлять удаленный к доступ к этому серверу не планировалось. Разработчиков было более 2-х и все хотели работать одновременно. И клятвенно обещали закончить менее чем за 4 месяца.
Сказано-сделано. Был поднят Remote Desktop Host на Windows 2012 R2 и мы начали пользоваться 120-ти дневным бесплатным периодом. Но … 4 месяцев не хватило (как всегда). Использовать же легальный ключ для TS не хотелось, так как работа, временная, как я уже сказал ранее. Пришлось … воспользоваться знаниями, которые вы только что получили.
Ключ реестра, отвечающий за отсчет 120-ти дневного Grace Period расположен здесь:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerRCMGracePeriod
У группы Администраторы есть доступ только на чтение этого ключа.
Был использован Метод 1. Так сказать, Microsoft сами себя и наказали : )
SUBINACL /keyreg "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerRCMGracePeriod" /setowner=administrators /grant=administrators=f
Сменили владельца и дали полный доступ администраторам
Дальше проще.
Удаляем содержимое этого ключа
reg delete "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerRCMGracePeriod" /va /f
И после перезагрузки получаем …. Правильно! 120 дней нового бесплатного периода.
Например, можно эту команду оформить в виде скрипта и запускать каждые 115 дней по расписанию.
Пользоваться этим или нет – решать вам, на основании консультаций с вашей совестью и жабой 🙂
Managing security is probably the number-one headache for Windows administrators. Between the file system, registry, and services, IT Pros have their hands full managing access control, especially if they want to script from the command line. There are certainly a number of command line tools to manage these different areas, but because I’m an old-school kind of guy, I tend to fall back to an old resource kit tool: SubInACL, or subinacl.exe, the veritable Swiss Army knife when it comes to managing permissions.
SubInACL: Download, Limitations, and Requirements
Because it’s not part of the operating system, you will first need to download the subinacl.axe tool. The download file is an MSI file which will install by default to C:Program Files (x86)Windows Resource KitsTools. The tool is a single file that you can move to C:WindowsSystem32 so that you always have access to it.
C:Program Files (x86)Windows Resource KitsTools>move subinacl.exe c:windowssystem32
Note: I need to point out that, officially, subinacl.exe is not supported on anything later than Windows Server 2003. But in my experience, I’ve never had a problem running it on newer operating systems. Still, I strongly recommend first testing in a non-production environment and understand that Microsoft may not be able to help you if you run into problems.
To use subinacl.exe, the assumption is that you have administrator credentials. If you are delegating administration using subinacl.exe, you will need to make sure the account has the following privileges:
- SeBackupPrivilege (Back Up Files and Directories)
- SeChangeNotifyPrivilege (Bypass Traverse Checking)
- SeRestorePrivilege (Restore Files and Directories)
- SeSecurityPrivilege (Manage Auditing and Security Log)
- SeTakeOwnershipPrivilege (Take Ownership of Files or Other Objects)
- SeTcbPrivilege (Act As Part of the Operating System)
Getting Help in SubInACL
I won’t sugar coat it: Subinacl.exe is a very complex tool. But fortunately the command help is thorough. One way to access the help is to open the subinacl.htm file (C:Program Files (x86)Windows Resource KitsToolssubinacl.htm) that should also have been installed. I encourage you to take the time to read it.
From the command prompt you can get help directly from the tool.
You can ask for help on any keyword or command element. Try these help commands after you’ve installed subinacl.exe.
C:>subinacl /help syntax C:>subinacl /help /testmode C:>subinacl /help /keyreg C:>subinacl /help /display
Or to see really complete help run this:
C:>subinacl /help /full
Basic Syntax
To use SubInACL, there are three components to a command. I’ll go over each one.
SubInACL /Option <options> /object <object> /action
Options
The default option is simply to display what the command terms “statistic” in verbose mode. The statistic is how long it took the command to run. After running a command you’ll see something like this:
Elapsed Time: 00 00:00:00 Done: 1, Modified 0, Failed 0, Syntax errors 0 Last Done : \serenitywork
If you don’t need this you can turn it off with /nostatistic. You may also want to turn off verbose mode (/noverbose) or direct output to a text file (/outputlog=mylog.txt).
Objects
Subinacl.exe can be used against a number of different object types such as files, shares, printers, registry items, and directories. Generally, you need to specify the type of object followed by a path to that object.
C:>subinacl /noverbose /nostatistic /file c:work
Even though C:Work is a folder, I can specify it as a “file” object.
Or something like this:
C:>subinacl /share Work
Actions
Finally, as the name implies, the action is what you want to do with or to the object. The default action is to display the current permissions, which you can see in the screenshots above. But you might want to grant, modify, or remove permissions. SubInACL has its roots in the days when domain migrations presented challenges in transferring permissions. Perhaps you still run into that issue. If so, then subinacl.exe might be the right tool.
Sample Usage
Let’s look at a sample usage. I have a share WORK where currently the Everyone group has READ access. I want to give the group CHANGE permission to the share. First, I can test my change.
C:>subinacl /share Work /grant=Everyone=C /testmode Work : delete Perm. ACE 0 everyone Work : new ace for everyone Work (TestMode) : 2 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : Work
This shows me that subinacl.exe wants to delete a permission and then apply a new one. The /testmode switch is like –WhatIf in PowerShell. Now to make the change for real, and I’ll have SubInACL ask me for confirmation.
C:>subinacl /share Work /grant=Everyone=C /confirm Work : delete Perm. ACE 0 everyone Work : new ace for everyone 009044A8 : Continue (Yes,No) ?yes Work : 2 change(s) Elapsed Time: 00 00:00:13 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : Work
SubInACL can appear a bit daunting at first. But with a little patience and testing you can quickly get the hang of it. Fortunately, PowerShell in Windows 8 and Windows Server 2012 offer new tools to handle complex tasks where we might have used subinacl.exe in the past. But, if you run into a complicated permission issue, especially one you are trying to automate, subinacl.exe might be just what you need.
Ⅰ | This article along with all titles and tags are the original content of AppNee. All rights reserved. To repost or reproduce, you must add an explicit footnote along with the URL to this article! |
Ⅱ | Any manual or automated whole-website collecting/crawling behaviors are strictly prohibited. |
Ⅲ | Any resources shared on AppNee are limited to personal study and research only, any form of commercial behaviors are strictly prohibited. Otherwise, you may receive a variety of copyright complaints and have to deal with them by yourself. |
Ⅳ | Before using (especially downloading) any resources shared by AppNee, please first go to read our F.A.Q. page more or less. Otherwise, please bear all the consequences by yourself. |
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. |
SubInACL is a tiny tool from Microsoft for performing permission management on folders, files, registries, services, and other objects. It was released as one of the tools in Windows Resource Kits. It is very powerful and practical, and much more powerful than cacls and its replacement, icacls. It is considered to be an edge tool for setting access permissions, suitable for professionals such as programmers and administrators.
When you encounter a situation where a file/folder is not accessible even to the system administrator, it is usually caused by the fact that the owner of this file/folder is not set and the permission of system administrator has been removed. The only way to access this folder or file is to set its owner to system administrator and add the full control permission of administrator. In another case, if a user does not have the administrator permission, when installing Windows service, its Start, Stop and other functions are disabled (in gray state). In cases like these, you can use SubInACL to increase/elevate the permissions of an account to solve the problem with precision.
// Key Features //
- If used properly, it does not tamper any existing permission.
- Can change permission/ owner to those subfolders where inheritance is disabled.
- Can change permission even if we do not have access to a folder/subfolder.
- Output log and error log can be enabled.
// Main Applications //
- Display security information associated with files, registry keys, or services. This information includes owner, group, permission access control list (ACL), discretionary ACL (DACL), and system ACL (SACL).
- Change the owner of an object.
- Replace the security information for one identifier (account, group, well-known security identifier (SID)) with that of another identifier.
- Migrate security information about objects. This is useful if you have reorganized a network’s domains and need to migrate the security information for files from one domain to another.
// Main Parameters //
Parameter | Description |
/view_mode | Specifies the amount of information to be displayed during the run. There are two quantity levels to choose from: verbose=1 or verbose=2. Default is the latter, at which point most of the information is displayed. |
/test_mode | Indicates whether commands interact directly with the operating system when they are run or tested for successful execution. The default option is that all commands interact directly with the OS. |
/object_type | Specifies which Windows object is executed for this operation. Optional objects include services, registry keys, registry subkeys, files, subdirectories, shares, printers, and so on. There is no default value for this parameter, but it is required. |
/action | Specify the operations of SubInACL. The default option is to display the corresponding information for the specified object. Options include display, replace, changedomain, migratetodomain, findsid, grant, deny, revoke, accesscheck, and ifchangecontinue, and so on. |
// Some Use Examples //
Action | Command line |
Sets the owner of directory | subinacl /subdirectories=directoriesonly directory name*.* /setowner=administrators |
Sets the owner of file | subinacl /subdirectories directory name*.* /setowner=administrators |
Sets full control permission of directory | subinacl /subdirectories=directoriesonly directory name*.* /grant=administrators=f |
Sets full control permission of file | subinacl /subdirectories directory name*.* /grant=administrators=f |
Clears the unused user SID of the specified directory and files |
|
Sets registry | subinacl /keyreg “HKEY_LOCAL_MACHINEsystemControlSet001Services” /grant=administrators=f |
Sets folder | subinacl /file d: /grant=administrators=F |
Starts mysql service with normal user | subinacl.exe /service SERVICENAME /grant=USER=f |
// Prompts //
- The most complete instructions from the official are available in the software directory.
- The installation version will automatically attach this program to the “Path” system variable of environment variables.
- Copy subinacl.exe to C:WindowsSystem32, then you can use it by running “subinacl” directly in the CMD.
- Permissions for files and directories need to be set separately, they do not support extending up or down.
- It is also wise to test the changes with the “/testmode” parameter before using the tool on a running operating system.
- Run “subinacl /help /full” to see a descriptive help file, which describes the objects and operations of SubInACL, as well as how they are used in some specific circumstances.
// Related Links //
- SubInACL Online Help (by SS64)
- SubInACL Complete Tutorial (by TechNet)
// Download URLs //
License | Version | Download | Size |
Freeware | v5.2.3790 Final | Setup + Portable | 129 KB | 89.3 KB |
(No Homepage)
If some download link is missing, and you do need it, just please send an email (along with post link and missing link) to remind us to reupload the missing file for you. And, give us some time to respond. | |
If there is a password for an archive, it should be «appnee.com». | |
Most of the reserved downloads (including the 32-bit version) can be requested to reupload via email. |
Recommend high-quality, practical, portable freeware, free game, free eBook, and more
SubInAcl — одна из программ корпорации Microsoft, позволяющая администрировать операционные системы, относящиеся к разным версиям Windows. Она позволяет переназначать права доступа различным пользователям, группам к объектам операционной системы Windows: файлам, папкам, различным устройствам, реестру, процессам, сетевым ресурсам и другим.
Для приложения характерен очень обширный функционал: для нее присущи возможности, отсутствующие в Windows по умолчанию. Большое количество функций приводит к появлению сложности в использовании. Скачать SubInAcl.exe (Windows 10) можно с официального сайта Microsoft.
Особенности
SubInAcl не имеет графического интерфейса и выполняется в командной строке. Возможности приложения позволяют изменить владельца и права на доступ к определенным ресурсам: можно перенести сведения о безопасности объекта, снизить нагрузку на сеть. В последнем случае используется один командный режим вместо нескольких, включающих в себя идентификаторы SID.
SubInAcl преобразует SID и сохраняет данные, что повышает эффективность сетевого трафика, значительно снижая нагрузку на сеть. Заданный SID не проверяется на существование. Поддерживается локальный список его идентификаторов, что сводит к минимуму сетевые запросы при преобразовании SID-идентификаторов в имена. Если выполнять разные команды по отношению к одному и тому же SID, приложение будет преобразовывать этот SID столько раз, сколько введено команд. Но, если разместить их в одном командном файле, то SID-идентификаторы преобразуются единожды.
При выполнении всех команд список очищается в автоматическом режиме. Пользователь имеет возможность ознакомиться со справкой по используемым командам, которая вызывается ключом /help после указания имени команды. Чтобы получить полную подробную справку по всем возможным командам, после ключа /help указывается ключ /full.
Программа позволяет при переходе пользователя с одного домена на другой осуществлять замену в сведениях о безопасности для файлов пользователя. Приложение устанавливается обычным способом, присущим Windows. Для предотвращения возникновения ошибок пользователь должен иметь следующие привилегии:
- владение различными объектами;
- восстановление файлов и папок;
- менеджмент журналов безопасности и аудита;
- обход перекрестной проверки;
- работа в режиме операционной системы;
- архивирование файлов и каталогов.
Синтаксис программы аналогичен приложению find в Linux. Для изменяемого объекта она получает имя_объекта и выполняет команды. Их выполнение осуществляется в том порядке, в котором они прописаны в командной строке. Как минимум, нужно указывать первые три символа каждой команды. К регистру синтаксис не чувствителен.
Вывод
SubInAcl — приложение, позволяющее изменить права доступа пользователю, группе, перенести информацию о безопасности объекта, преобразовать SID, повысить эффективность сетевого трафика. Обладает широким функционалом, но используется только в командной строке, графического интерфейса не имеет. Официальная программа корпорации Microsoft с более широким набором выполняемых задач по сравнению с заложенными в операционной системе.
Ни для кого не секрет, что операционные системы Windows собирают и отправляют данные в Microsoft. Но Windows 10 переплюнула всех предшественниц. Отправка диагностических, а может и не только, сведений осуществляется постоянно и огромными объемами, что отрицательно сказывается на конфиденциальности пользовательских данных. Этот факт подрывает доверие к данной операционной системе и напрочь отбивает желание устанавливать ее на компьютер. Вдобавок, обновления, выпускаемые производителем, порой абсолютно неожиданным образом нарушают работу системы. Но так ли все неисправимо? В этой статье мы расскажем, как добиться снижения рисков утечки сведений и отключить автоматическое обновление.
Прежде чем приступить к настройке Windows 10 создадим бэкап ресстра.
Бэкапим реестр
Рекомендуется делать резервную копию (он же — бэкап) реестра каждый раз, прежде чем производить какие бы то ни было манипуляции. Для этого в строке поиска введите команду regedit. Щелкните правой кнопкой мыши и выберите Запуск от имени администратора.
В окне редактора реестра нажмите правой клавишей на Компьютер и выберите пункт Экспортировать.
Укажите название бэкапа и путь для его хранения. Диапазон экспорта — Весь реестр. В результате получится файл .reg. В дальнейшем для восстановления реестра щелкните дважды на файле, подтвердите действие.
Получаем доступ к реестру
Доступ ко многим веткам реестра ограничен даже для пользователей, имеющих администраторские права. Чтобы вносить в них изменения необходимо получить полный доступ к реестру. Это можно сделать используя редактор реестра regedit, запустив его от имени администратора, либо используя штатную утилиту SubInACL.
Доступ к реестру через regedit
В редакторе реестра regedit находим необходимый ключ реестра, щелкаем по нему правой кнопкой мыши и настраиваем разрешения.
Для смены владельца жмем кнопку Дополнительно.
В верхней части окна жмем Изменить для изменения владельца.
Вводим имена объектов, жмем кнопку Проверить имена. Готово. Жмем кнопку ОК. Даем разрешения. Аналогичным образом настраиваем разрешения для всех необходимых ключей реестра.
Доступ к реестру через штатную утилиту SubInACL
Для использования утилиты SubInACL, скачиваем ее с сайта Microsoft, устанавливаем. Чтобы не вводить каждый раз путь до нее, скопируйте ее в системный каталог Windows: запустите командную строку от имени администратора и введите команду:
copy «C:Program Files (x86)Windows Resource KitsToolssubinacl.exe» %Windir%System32
Меняем владельца командой вида:
subinacl /keyreg «HKEY_LOCAL_MACHINESYSTEM ControlSet001ControlWMIAutoLogger» /setowner=Имя учетной записи /grant=Имя учетной записи=f
Разблокируем реестр:
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=Имя учетной записи=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=Имя учетной записи=f
Меняем Имя учетной записи на вашу учетную запись. Аналогично поступаем со всеми ветками реестра.
Отключаем Кортану
Кортана — виртуальный голосовой помощник с элементами искусственного интеллекта от Microsoft. Она сильно интегрирована в систему, поэтому ее удаление может повлиять на стабильность операционной системы. Для ее отключения воспользуйтесь следующими командами или добавьте соответствующие параметры вручную через редактор реестра.
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows Windows Search» /v «AllowCortana» /t REG_DWORD /d 0 /f
reg add»HKEY_LOCAL_MACHINESOFTWAREMicrosoftPolicyManager default Experience AllowCortana» /v «value» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionSearch» /v «CortanaEnabled» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftWindows CurrentVersionSearch» /v «CortanaEnabled» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftWindows CurrentVersionSearch» /v «CanCortanaBeEnabled» /t REG_DWORD /d 0 /f
Отключаем сбор данных
Windows 10 собирает и отправляет в Microsoft очень много данных. Таким образом неизбежно нарушается конфиденциальность пользователей. Чтобы ограничить отправку сведений о системе необходимо отключить службы, которые производят сбор и отправку данных. Для этого откроем Службы, например, введя в поисковую строку services.msc.
В списке служб найдем те, которые необходимо остановить и запрещаем их автозапуск.
Список служб всегда подбирается индивидуально, в первую очередь отключаем Diagnostic Execution Service, которая выполняет диагностические мероприятия для устранения неполадок.
Список служб, которые будете останавливать, необходимо определить самостоятельно. Вышеуказанные службы актуальны на момент написания статьи, но есть прецеденты, когда Microsoft переименовывала свои службы и они загружались с очередным обновлением. Имеет смысл периодически просматривать список служб после обновления.
Внести изменения в реестр можно вручную, переходя по редактору реестра, либо создать файл .bat или .cmd, который выполнит все изменения.
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows DataCollection» /v AllowTelemetry /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices diagnosticshub.standardcollector.service» /v «Start» /t REG_DWORD /d 4 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftPersonalizationSettings» /v «AcceptedPrivacyPolicy» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESYSTEMControlSet001ControlWMIAutoLogger AutoLogger-Diagtrack-Listener» /v «Start» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWMIAutoLogger AutoLogger-Diagtrack-Listener» /v «Start» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWMIAutoLogger SQMLogger» /v «Start» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsAppCompat» /v «AITEnable» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsAppCompat» /v «DisableUAR» /t REG_DWORD /d 1 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftInputPersonalization» /v «RestrictImplicitInkCollection» /t REG_DWORD /d 1 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftInputPersonalization» /v «RestrictImplicitTextCollection» /t REG_DWORD /d 1 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftInputPersonalization TrainedDataStore» /v «HarvestContacts» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsTabletPC» /v «PreventHandwritingDataSharing» /t REG_DWORD /d 1 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows HandwritingErrorReports» /v «PreventHandwritingErrorReports» /t REG_DWORD /d 1
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSQMClientWindows» /v «CEIPEnable» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSQMClient» /v «CorporateSQMURL» /t REG_SZ /d «0.0.0.0» /f
reg add «HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftOffice16.0osm» /v «Enablelogging» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftOffice16.0osm» /v «EnableUpload» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftMediaPlayerPreferences» /v «UsageTracking» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftSiufRules» /v «NumberOfSIUFInPeriod» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftSiufRules» /v «PeriodInNanoSeconds» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows DataCollection» /v «DoNotShowFeedbackNotifications» /t REG_DWORD /d 1 /f
reg add «HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftAssistanceClient1.0» /v «NoExplicitFeedback» /t REG_DWORD /d 1 /f
reg add «HKEY_LOCAL_MACHINESOFTWAREMicrosoftInputTIPC» /v «Enabled» /t REG_DWORD /d 0 /f
reg add «HKEY_CURRENT_USERSOFTWAREMicrosoftInputTIPC» /v «Enabled» /t REG_DWORD /d 0 /f
Отключаем небезопасные сервисы
Убираем из автозагрузки лишние сервисы типа RemoteRegistry, TermService, TrkWks, DPS, SensorDataService, SensorService, SensrSvc, XblAuthManager, XblGameSave, XboxNetApiSvc. Данное действие позволит не только повысить безопасность вашей windows 10, но и ускорит ее загрузку.
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun — автозагрузка текущего пользователя
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun — автозагрузка всех пользователей
Отключаем удаленного помощника:
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlRemote Assistance» /v «fAllowToGetHelp» /t REG_DWORD /d 0 /f
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlRemote Assistance» /v «fAllowFullControl» /t REG_DWORD /d 0 /f
Удаляем предустановленные приложения
Любой компонент Windows 10 можно удалить через командную строку. Завершаем процесс и затем удаляем компонент.
taskkill /f /im OneDrive.exe
start %SystemRoot%SysWOW64OneDriveSetup.exe /uninstall
Режим бога (делаем быстрый вызов любых настроек)
Доступ ко всем настройкам в один клик или «режим бога» настраивается так: от имени администратора создадим рабочем столе папку с именем Любой текст.{ED7BA470-8E54-465E-825C-99712043E01C}. После сохранения имя папки скроется и ярлык изменится. Вы получите быстрый доступ к настройкам операционной системы.
Отключаем автообновления
Для отключения автоматического обновления введите в командной строке:
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows WindowsUpdateAU» /v » AUOptions» /t REG_DWORD /d 2 /f
Итоги
Теперь вы знаете, как настроить операционную систему Windows 10 таким образом, чтобы снизить риски утечки данных и отключить автоматические обновления. Также эти настройки помогут повысить производительность системы, ускорить ее загрузку. Безусловно, это далеко не полный перечень действий, которые можно предпринять. После каждого обновления системы рекомендуем вам просматривать основные параметры, к примеру, службы на предмет каких-то изменений.
Понравилась статья? Делитесь ею со своими знакомыми, чтобы они тоже могли воспользоваться нашими советами и настроить свою Windows 10, тем самым повысив ее безопасность.
Жду ваших вопросов в комментариях, ваш Mr. Whoer
Смотрите наше видео, где Mr. Whoer, более подробно рассказывает как безопасно настроить Windows 10, и как включить GodMode:
Ручная правка реестра является одним из самых распространённых способов получить доступ к скрытым настройкам Windows, причём прибегают к нему не только администраторы, но также и простые пользователи. Однако вот так просто взять и отредактировать можно далеко не все ключи. В реестре есть немало ключей, редактирование которых невозможно вследствие отсутствия прав записи для локальных администраторов, либо их владельцами являются объекты TrustedInstaller или Система.
Внести изменения в такие ключи можно только заменив их владельца. Наиболее удобным с точки зрения автора способом получения доступа к ключам реестра является использование утилиты RegOwnershipEx, сводящей всю процедуру к паре кликов мышью. На втором месте стоит использование самого редактора реестра, наконец, в качестве альтернативы можно воспользоваться командной строкой, а точнее консольными утилитами, позволяющими заменять владельца и изменять права доступа для ключей реестра, не открывая сам реестр.
В Windows для этого имеется специальная команда REGINI, однако её использование связано с массой неудобств, поэтому будет лучше, если вы прибегнете к сторонним утилитам, например, SubInACL или SetACL. Утилита SubInACL, разработчиком которой является Microsoft, предназначается для просмотра и изменения прав, владельца и прочих метаданных для файлов, каталогов, ключей реестра, сервисов в Windows. Создавалась она для Windows 2000, XP и Server 2003, но с таким же успехом её можно применять во всех версиях системы, включая Windows 10.
Как работать с SubInACL
Синтаксис утилита имеет следующий:
SubInACL /type name /action
Параметр /type определяет тип обрабатываемого объекта. Если это папка или файл, используется параметр file, если же мы имеем дело с ключом реестра, применяем keyreg или subkeyreg. Разница между этими двумя параметрами заключается в том, что первый заменяет владельца конкретного раздела реестра, а второй — владельца раздела и всех вложенных в него подразделов, то есть в данном случае имеет место наследование.
Параметр name это имя объекта: папки, файла или ключа реестра.
Параметр /action определяет, какое действие будет применено к объекту. Для замены владельца и смены прав используется /setowner=username/grant=username=f, где username — имя нового владельца (пользователя).
А теперь, как это всё выглядит на практике.
Заменим для примера владельца ключа HKEY_LOCAL_MACHINESYSTEMActivationBroker.
По умолчанию владельцем является Система, мы же передадим права пользователю с именем компик.
Открываем от имени администратора командную строку и переходим в каталог установки утилиты. По умолчанию это C:Program FilesWindows Resource KitsTools.
Теперь выполняем такую команду:
subinacl.exe /keyreg «HKEY_LOCAL_MACHINESYSTEMActivationBroker» /setowner=компик /grant=компик=f
Готово! Владелец ключа заменён.
Примечание: вы можете распаковать установочный MSI-файл утилиты и скопировать исполняемый файл subinacl.exe в каталог System32, что даст вам возможность запускать утилиту в командной строке без предварительного перехода в Program Files. Просмотреть полный список параметров для утилиты можно командой SubInACL /help.
Как работать с SetACL
Похожим образом работает утилита SetACL. В отличие от SubInACL она не требует установки и имеет несколько иной синтаксис. Распространяется она в двух редакциях — отдельно для 32-битных и отдельно для 64-битных систем.
После скачивания и распаковки архива с исполняемыми файлами утилиты, рекомендуем сразу забросить файл setacl.exe в каталог System32, дабы иметь возможность запускать утилиту без перехода в каталог с исполняемым файлом.
SetACL имеет следующий синтаксис:
SetACL -on name -ot type -actn action
Параметр -on name указывает полный путь к объекту, при этом имя объекта подставляется на место name.
Параметр -ot type определяет тип объекта. Если это файл, используется ключевое слово file, если ключ реестра — слово reg. И в том, и в другом случае оно подставляется на место type.
Параметр -actn action определяет выполняемое действие. В случае замены владельца и установкой прав доступа используются значения setowner или ace.
А вот и конкретный пример.
В прошлый раз мы сделали владельцем каталога ActivationBroker пользователя компик, теперь вернем его законному хозяину, то есть системе. Открываем от имени администратора командную строку и одну за другой выполняем эти две команды:
setacl.exe -on «HKEY_LOCAL_MACHINESYSTEMActivationBroker» -ot reg -actn setowner -ownr «n:система»
setacl.exe -on «HKEY_LOCAL_MACHINESYSTEMActivationBroker» -ot reg -actn ace -ace «n:система;p:full»
Всё готово.
Первая команда вернула права на ключ системе, а вторая предоставила ей полный к нему доступ.
SubInACL: www.microsoft.com/en-us/download/details.aspx?id=23510
SetACL: helgeklein.com/download/#setacl
Загрузка…
Table of Contents
- Introduction
- Installation
- Understanding the Syntax
- Case Studies
- Scenario 1 : Change owner of Folder, Subfolders, and Files
- Scenario 2 : Add permission of Folder, Subfolders, and Files
- Scenario 3 : Change existing permission of Folder, Subfolders, and Files
- Scenario 4 : Completely remove an existing ACE from an ACL
- Scenario 5 : Set Windows Service Permission
- Scenario 6 : Configure Audit Permission on Folders and Files
- Summary
Introduction
Managing security permission in a Windows environment is a challenging task.
The task becomes more complex if any / all of the below scenarios are true:
- There are large folders with size in TBs or GBs, along with numerous sub-folders with a deep folder hierarchy.
- Permission inheritance is disabled in many subfolders and exclusive permissions are defined on those subfolders.
- The owners of many subfolders have been changed and our account is removed from ACL, so we are not able to see the existing ACL. We are also not able to see that subfolder size (Might be in TBs ! )
- There are a few thousand users, who are using those folders.
In this scenario, the first thing to remember is:
We will NOT try to change the ACL of the parent folder (or any big subfolder) through GUI. Things will go worse if we try to do so in a complex folder structure, and there will be a huge impact. We have faced this scenario in production for
a big folder, and it took 1 week to restore the permission and resolve the issue! For this kind of scenario, we should always go for a command line utility rather than GUI.
Also, we should enable logging; so that we can refer the log file and know what ACEs got changed. The log file would help us to troubleshoot and mitigate any possible issue.
Note |
---|
SubInACL is a little-known command line tool from Microsoft, yet it is one of the best tools to work with security permissions in Windows. This tool is capable of changing permissions of files, folders, registry keys, services, printers, cluster shares and various other types of objects. |
Some of the notable advantages of SubInACL are:
- If used properly, it does not tamper any existing permission.
- Can change permission/ owner to those subfolders where inheritance is disabled.
- Can change permission even if we do not have access to a folder/subfolder.
- Output log and error log can be enabled.
Installation
SubInACL is not an inbuilt windows tool, we need to download it from the Microsoft website. It is a free tool from Microsoft.
Installation is simple, and in our lab, we have installed it in “C:SubInACL” folder.
Once we go to that directory and run “subinacl /help”, it should display command syntax and arguments. This ensures that installation is successful.
Understanding the Syntax
SubInACL is not difficult to use. However, we strongly recommend testing it before executing it in production.
If we see the help menu of the command, we will notice there are three major sections in this command:
SubInAcl <options> <object_type> <action>
• <options>
: This is an optional parameter. Here we can enable different kind of logging and verbose mode.
• <object_type> :
This is a mandatory parameter. As mentioned before, SubInAcl can change ACL of folder, file, registry key, service, process etc. Here we are specifying the object type.
/file: Stands for a single folder or file. We generally use it to specify the parent folder.
/subdirectories : Stands for subfolders. When applied with <Parent_foldername>*.*, it stands for all subfolders and files within the parent folder. /service : Stands for a Windows Service
/keyreg : Stands for a Registry Key
• <action> : This is a
mandatory parameter. This defines the required action on the specified object.
Ex: /setowner= domain/user1 : Will set the owner to user1.
Similarly, there are other actions like Grant, Revoke, Deny etc.
The type of action depends upon the type of object which we have specified before. Not all actions are valid for all object type.
Case Studies
Now that we have the basic understanding of the SubInACL tool, we will do some hands-on and will configure permission based on multiple scenarios.
Scenario 1 : Change owner of Folder, Subfolders, and Files
We have created a folder “E:scripts”, which contains other subfolders and files.
Permission inheritance is disabled for one of the subfolder “PowerGroup”. For other subfolders , permission inheritance is enabled.
At present, the owner of the scripts folder (and all subfolders) is “subhroadministrator”.
We will change the owner to the AD group ‘AWSAdmins”, for the parent folder as well as for all subfolders. It should also change the owner of the subfolder PowerGroup, where inheritance is disabled.
So we will execute below command first, which will change the owner to “subhro/awsadmins” on the folder “E:scripts”. It will also create output and error log files at the specified location.
subinacl /errorlog="c:temperrorlog.txt" /outputlog="c:tempoutputlog.txt" /file "E:scripts" /setowner=subhroawsadmins
Please note, that above command has not changed the owner of subfolders and files, it has only changed the owner of the parent folder “E:Scripts”.
Now, we want to set the owner to subfolders of “E:Scripts”. To do that, we need to execute below command:
subinacl /errorlog="c:temperrorlog.txt" /outputlog="c:tempoutputlog.txt" /subdirectories "E:scripts*.*" /setowner=subhroawsadmins
This command will change the owner of all subfolders and files within “E:scripts”, including the folder “PowerGroup” where permission inheritance is blocked.
Scenario 2 : Add permission of Folder, Subfolders, and Files
Now we are going to add an ACE (Access Control Entry) in the ACL (Access Control List) of the folder “E:Scripts”, and all its subfolders.
We will grant Full Control to the group “subhroAwsAdmins”. We will execute below two commands one by one:
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/file
"E:scripts"
/grant=subhroawsadmins=F
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/subdirectories
"E:scripts*.*"
/grant=subhroawsadmins=F
As we can see, it has changed ACL for the parent folders, subfolders, and files; including the subfolder where inheritance is disabled.
Scenario 3 : Change existing permission of Folder, Subfolders, and Files
If the previous example, we have granted the group “subhroAwsAdmins” full control access on the folder “E:Scripts”, including subfolders and files.
Now, if we want to change the permission from “Full Control” to “Modify”, what should we do?
First, let’s run a command subinacl /grant /help. This is a useful command, which lists all permission options for action “Grant”, for each type of object.
Using this command, we can see that the syntax for “Modify” option is “C”.
So we will execute below two commands:
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/file
"E:scripts"
/grant=subhroawsadmins=C
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/subdirectories
"E:scripts*.*"
/grant=subhroawsadmins=C
As we can see, now the permission “Full Control” has been changed to “Modify” for parent folder and all subfolders.
If we examine the log file carefully, we will notice that the command has actually deleted the old permission and then added new permission.
Scenario 4 : Completely remove an existing ACE from an ACL
Now, there is a requirement to remove the entry “subhroAWSAdmins” from the permission list of “E:Scripts”, including all its subfolders and files.
So, instead of the “/grant” switch, we need to use “/revoke” switch here.
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/file
"E:scripts"
/revoke=subhroawsadmins
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/subdirectories
"E:scripts*.*"
/revoke=subhroawsadmins
This would revoke the ACE of “subhroawsadmins” from the permission list.
Scenario 5 : Set Windows Service Permission
So far, we have changed owner and configured permissions on files and folders. Although file and folder permission is the most common scenario, there are various other scenarios where the SubInACL utility can be used.
Sometimes, we need to control who can (or cannot) start or stop specific services. In this example, we are going to configure that.
First, we will check the current ACL of the “spooler” service using the below command:
subinacl /service
"spooler"
/display=dacl > c:spool.txt
(We have redirected the output to a text file so that it would be easy to read the output).
Here is the result:
Now, we are going to add “subhroawsadmins” group to this ACL, and this group member should be able to start and stop this service.
So we will execute below command:
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/service
"spooler"
/GRANT=subhroawsadmins=TO
Here, T= Start Service and O=Stop Service. Please use subinacl /grant /help for the complete list.
From the output log, we can see that ACL has been updated with the new ACE.
Now, if we see the ACL once again, we will find that the new ACE has been added with “Start Service” and “Stop Service” access.
If our requirement is to “deny” this group to start and stop the spooler services, then we will run below command:
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/service
"spooler"
/deny=subhroawsadmins=TO
We can see the ACL and verify that it has been updated with the “deny” option.
Scenario 6 : Configure Audit Permission on Folders and Files
This is another common requirement, to enable “Success” or “Failure” audit on a folder, including all subfolders and files.
We are now going to enable success and failure auditing on the folder “Escripts” (with all subfolders) for the group “subhroawsadmins”.
As we can see, at present no auditing is enabled for this folder.
We will execute below commands:
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/file E:scripts /sallowdeny=subhroawsadmins=F
subinacl /errorlog=
"c:temperrorlog.txt"
/outputlog=
"c:tempoutputlog.txt"
/subdirectories
"E:scripts*.*"
/sallowdeny=subhroawsadmins=F
As we can see, the Auditing ACL has been updated.
Please remember below four switches in this context:
- /salllowdeny will remove all existing ACEs from the Auditing tab, and add an ACE for both Success and Failure events for the mentioned user/group.
- /sgrant will remove all existing ACEs from the Auditing tab, and add an ACE for only “Success” events for the mentioned user/group.
- /sdeny will remove all existing ACEs from the Auditing tab, and add an ACE for only “Failure” events for the mentioned user/group.
- /audit will remove all existing ACEs from the Auditing tab.
↑
Back To Top
Summary
In this article, we have covered the utility SubInAcl and multiple usage scenarios. There are many other options available in this utility, which can be useful in various scenarios. We will add those scenarios and options in
the forthcoming versions of this article.
As mentioned before, please do not forget to test each command before using in production.
Содержащаяся в наборах Microsoft Windows 2000 Server
Resource Kit и Microsoft Widows NT Server 4.0 Resource Kit утилита Subinacl –
это один из самых мощных и полезных инструментов командной строки, который
позволяет непосредственно редактировать практически любую информацию,
относящуюся к сфере безопасности – разрешения, принадлежность, аудит – для всех
типов объектов. С помощью Subinacl можно изменять эту информацию не только для
файлов, папок и сетевых принтеров, но и управлять разрешениями в разделах
реестра, системных службах и метабазе IIS.
Просмотр списков ACL
Основное достоинство Subinacl — возможность просматривать
разрешения и настройки безопасности объекта в целом. Список управления доступом
ACL позволяет управлять полномочиями; каждая запись в ACL называется записью
управления доступом (ACE). Если, например, разрешения на файл в домене дают
полный контроль администраторам и Мэри, а Джону доступ полностью запрещен, то
список ACL этого файла содержит три ACE, описывающих права доступа
администраторов, Мэри и Джона. Чтобы увидеть ACL файла, используйте команду
Subinacl /verbose=1 /file c:testfile.txt /display
где testfile.txt — имя файла. На Экране
1 показан результат выполнения этой команды. За именем файла следует имя
владельца файла. Информация о первичной группе обычно требуется только для
POSIX-приложений. Далее выводится число записей аудита и число записей
разрешений, а затем предоставляется информация из этих ACE. Windows 2000 и NT
позволяют точно указывать, что подлежит аудиту – например, каждый случай, когда
Мэри не удается записать данные в файл или когда Джону не удается открыть его.
Subinacl узнает о наличии заданных условий из ACE аудита. ACE разрешений
описывают разрешения, которые дают пользователям возможность просматривать или
изменять файл или папку.
В примере показано три записи о разрешениях: одна запись ACE
для администраторов, одна для Мэри и одна — для Джона. Значение параметра Type
указывает, является ли запись ACE разрешающей или запрещающей: значение . 0x1
указывает на запрещающую запись (Deny ACE), а 0x0 — на разрешающую (Allow ACE).
Значение параметра AccessMask определяет разрешения, накладываемые данной ACE.
Чтобы преобразовать значение параметра AccessMask в конкретные разрешения,
можно либо исследовать это значение поразрядно, либо выполнить команду Subinacl
с ключом /verbose=2. Эти значения соответствуют разрешениям самого низкого
уровня для файлов. Администраторы оперируют в основном составными разрешениями;
такие разрешения покрывают одно или несколько разрешений низкого уровня.
Например, разрешение на чтение (Read) состоит из нескольких разрешений низкого
уровня – чтение данных (Read Data), чтение атрибутов (Read Attributes), чтение
расширенных атрибутов (Read Extended Attributes), чтение разрешений (Read
Permissions). Для просмотра разрешений низкого уровня списка ACL с помощью
графического интерфейса откройте Windows Explorer, затем диалоговое окно
Properties любого файла или папки NTFS и перейдите на вкладку Security. Нажмите
Advanced для перехода к диалоговому окну Advanced Control Settings, щелкните
любую запись ACE, затем View/Edit.
Добавление записей ACE
Subinacl может использоваться для изменения разрешений,
наложенных на файлы и папки. Все, что делается с помощью таких инструментов как
Xcalcs и Calcs, можно сделать и используя Subinacl. Утилита может изменять
существующие записи ACE, а также создавать новые разрешающие или запрещающие
ACE. Следующая команда добавляет запись ACE, предоставляющую право на чтение
новому пользователю Ларри из компании Example.
Subinacl /file c:testfile.txt /grant=examplelarry=R
Ключ /file в этой команде сообщает утилите Subinacl, что
команда будет работать с ACE файла. Также могут использоваться следующие ключи:
системной службы (/service), раздела реестра (/keyreg или /subkeyreg), группы
папок и всех подпапок в них (/subdirectories), папки совместного доступа
(/share), файла общего доступа на кластере (/clustershare), объекта ядра
(/kernelobject) или метабазы IIS (/metabase). Параметр c:testfile.txt
указывает файл, с которым будет работать команда. В имени файла могут
использоваться шаблоны.
Параметр /grant означает, что создается новая разрешающая
запись, а не создается запрещающая запись (/deny) или редактируется
существующая (/replace). Следующий параметр указывает имя учетной записи, и
последний символ определяет назначаемое разрешение. Subinacl воспринимает R
(чтение), F (полный доступ), C (изменение), P (изменение полномочий), O (стать
владельцем), X (запуск на выполнение), E (чтение и запуск программы), W
(запись), D (удаление). Замечу, что хотя Subinacl позволяет просматривать
только разрешения низкого уровня, она дает возможность назначать разрешения
только высокого уровня. В приведенном примере параметр /grant=examplelarry=R
означает, что Subinacl создает запись ACE, которая дает учетной записи
examplelarry разрешение на чтение.
Для создания запретов используется команда /deny. Например,
следующая команда запрещает Ларри производить запись в файл:
Subinacl /file c:testfile.txt /deny=examplelarry=W
Возможно создание сразу нескольких разрешающих или
запрещающих ACE. Например, для присвоения Ларри полномочий на чтение и запись
достаточно просто перечислить подряд параметры, соответствующие разрешениям:
examplelarry=RW. С другой стороны, Subinacl не может оперировать одновременно
с ACE обоих типов для одного и того же человека. Возможно, и хотелось бы дать
Ларри разрешение на чтение и тут же запретить запись, но нельзя использовать
комбинацию из разрешающей ACE и запрещающей ACE. Это ограничение присутствует и
в Xcalcs, и в Calcs, возможно, потому, что все три инструмента сначала
появились в NT 4.0, где разрешающая и запрещающая ACE обрабатывались по
разному. Не исключено, что следующий урожай утилит восполнит этот пробел.
Изменение разрешений для нескольких файлов выполняется с
использованием шаблонов в именах файлов. Но что если требуется внести изменения
для целого диска или для дерева каталогов в пределах диска? В таком случае
следует использовать параметр /subdirectories. Например, если необходимо
предоставить Мэри полный доступ ко всем папками и файлами в C:testfolder, то
нужно ввести следующую команду:
Subinacl /subdirectories C:testfolder* /grant=examplemare=F
Обратите внимание, что использование слэша и шаблона после
C:testfolder обязательно, иначе Subinacl назначит разрешения указанной папке,
а вовсе не всем файлам и подпапкам в этой папке.
Замена, удаление и очистка содержимого SID
Предположим, что есть набор файлов, к которым имеет доступ только
один сотрудник – Лаура. Лаура покидает компанию, а ее место занимает Джанет.
Джанет нужен доступ ко всем этим файлам. Для решения этой проблемы (не упадите
со стула) обычно необходимо редактировать ACL каждого файла по отдельности
через графический интерфейс. Хорошо еще если вы являетесь владельцем файлов.
Если же нет, то предстоит сначала стать владельцем, а уж потом стирать до
основания мышь, переписывая ACL. В качестве альтернативы можно использовать
Subinacl и выполнить задачу, введя одну строку:
Subinacl /file * /replace=examplelaurie= examplejanet
Эта команда проверяет каждую запись ACE каждого файла в
текущем каталоге и делает замену – вместо SID Лауры записываются SID Джанет в
каждой ACE, имеющей отношение к Лауре. Заменяющий SID может быть даже из
другого домена, при условии, конечно, что между доменами установлены
доверительные отношения.
Допустим, вместо того, чтобы менять SID Лауры на SID Джанет,
нужно удалить все ACE Лауры. Для этого используется Subinacl с параметром
/revoke. К примеру, для удаления всех следов Лауры с диска C: сервера, следует
ввести:
Subinacl /subdirectories C:* /revoke=examplelaurie
Subinacl также поддерживает почти идентичный параметр
/suppresssid, обладающий одним дополнительным свойством. Использование Subinacl
с этим ключом, когда пользователь, учетная запись которого удаляется, владеет
файлом, позволяет назначить владельцем файла группу Everyone.
Иногда, открывая список разрешений файла, приходится видеть
вместо обычной учетной записи пользователя запись Account Unknown (неизвестная
учетная запись). Появление этой записи означает, что учетная запись, обладавшая
разрешениями, удалена. Предположим, например, что вместо блокирования
пользовательской учетной записи Лауры ее удалили. При вызове ACL файла,
содержащего ACE Лауры, Windows Explorer видит запись ACE с определенным SID – c
тем, который соответствует старой учетной записи Лауры – и запрашивает у
контроллера домена (DC) имя пользователя для этой учетной записи. Данный
процесс можно заметить на загруженном домене: при открытии диалогового окна
Properties некоторого файла и переходе на вкладку Security сначала видны только
SID, а затем, через несколько секунд, появляются имена учетных записей.
Задержка объясняется тем, что запрос сервера к DC на поиск имен учетных записей
и ответ контроллера домена требуют некоторого времени. Поскольку учетная запись
Лауры удалена, никакое имя не может прийти в ответ на указанный SID – так
появляется Account Unknown. Со временем списки ACL компании могут переполниться
этими обрывками. Subinacl поможет очистить их, нужно только выполнить команду с
параметром /cleandeletedsidsfrom (обязательно указывается домен):
Subinacl /subdirectories c:* /cleandeletedsidsfrom=example
Кое-что в запасе
Subinacl — исключительно полезная команда, и с ее помощью
можно сделать больше, чем было описано в данной статье. В следующих статьях я
расскажу о других возможностях этого инструмента. Но нет необходимости ждать –
используя команду с параметром /help, можно исследовать возможности Subinacl
самостоятельно. Кроме того, ключ /testmode позволяет запускать команду в
тестовом режиме:
Subinacl /testmode /subdirectories c:testfolder* /grant=examplemary=F
В этом режиме на экран выводятся те же результаты, что и в
обычном режиме, но Subinacl не вносит каких-либо изменений на диск.
Марк Минаси — редактор Windows NT Magazine, имеет
сертификат MCSE; является автором книги «Mastering Windows NT Server 4.0»
(издательство Sybex). С ним можно связаться по адресу: mark@minasi.com.