Folder access rights windows

File and Directory Access Rights Constants

WMI classes that represent files or directories, such as Win32_CodecFile or CIM_DataFile, contain an AccessMask property. This property contains bit settings that specify the access rights a user or group must have for specific access or operations on the file. For more information, see File Security and Access Rights and Changing Access Security on Securable Objects.

The file or directory classes which contain an AccessMask property include:

The following list lists the values for file and directory access rights in the AccessMask property. This property is a bitmap.

FILE_READ_DATA

Grants the right to read data from the file.

FILE_LIST_DIRECTORY

Grants the right to read data from the file. For a directory, this value grants the right to list the contents of the directory.

FILE_WRITE_DATA

Grants the right to write data to the file.

FILE_ADD_FILE

Grants the right to write data to the file. For a directory, this value grants the right to create a file in the directory.

FILE_APPEND_DATA

Grants the right to append data to the file. For a directory, this value grants the right to create a subdirectory.

FILE_ADD_SUBDIRECTORY

Grants the right to append data to the file. For a directory, this value grants the right to create a subdirectory.

FILE_READ_EA

Grants the right to read extended attributes.

FILE_WRITE_EA

Grants the right to write extended attributes.

FILE_EXECUTE

Grants the right to execute a file.

FILE_TRAVERSE

Grants the right to execute a file. For a directory, the directory can be traversed.

FILE_DELETE_CHILD

Grants the right to delete a directory and all the files it contains (its children), even if the files are read-only.

FILE_READ_ATTRIBUTES

Grants the right to read file attributes.

FILE_WRITE_ATTRIBUTES

Grants the right to change file attributes.

DELETE

Grants the right to delete the object.

READ_CONTROL

Grants the right to read the information in the security descriptor for the object, not including the information in the SACL.

WRITE_DAC

Grants the right to modify the DACL in the object security descriptor for the object.

WRITE_OWNER

Grants the right to change the owner in the security descriptor for the object.

SYNCHRONIZE

Grants the right to use the object for synchronization. This enables a process to wait until the object is in signaled state. Some object types do not support this access right.

Настройка разрешений файловой системы для доступа к компоненту ядра СУБД Configure File System Permissions for Database Engine Access

Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)

В этом разделе описана процедура предоставления компоненту Компонент SQL Server Database Engine SQL Server Database Engine доступа к расположению в файловой системе, где хранятся файлы базы данных. This topic describes how to grant the Компонент SQL Server Database Engine SQL Server Database Engine file system access to the location where database files are stored. Служба компонента Компонент Database Engine Database Engine должна иметь разрешение файловой системы Windows для доступа к папке, в которой хранятся файлы базы данных. The Компонент Database Engine Database Engine service must have permission of the Windows file system to access the file folder where database files are stored. Разрешение на расположение по умолчанию задается во время установки. Permission to the default location is configured during setup. Если файла базы данных размещаются в другом расположении, то необходимо выполнить эти действия, чтобы предоставить компоненту Компонент Database Engine Database Engine разрешение полного доступа к этому расположению. If you place your database files in a different location, you might need to follow these steps to grant the Компонент Database Engine Database Engine the full control permission to that location.

Читайте также:  Asio behringer usb audio windows 10

Начиная с версии SQL Server 2012 (11.x) SQL Server 2012 (11.x) , разрешения назначаются идентификатору безопасности каждой из служб. Beginning with SQL Server 2012 (11.x) SQL Server 2012 (11.x) permissions are assigned to the per-service SID for each of its services. Эта система позволяет обеспечить изоляцию и всестороннюю защиту службы. This system helps provide service isolation and defense in depth. Идентификатор безопасности службы создается на основе имени службы и является уникальным для каждой службы. The per-service SID is derived from the service name and is unique to each service. В разделе Настройка учетных записей и разрешений службы Windows описывается идентификатор безопасности каждой службы доступа, а имена перечисляются в разделе Права и привилегии Windows. The topic Configure Windows Service Accounts and Permissions describes the per-service SID and provides the names in the section Windows Privileges and Rights. Разрешение на доступ к расположению файла назначается именно идентификатору безопасности службы. It is the per-service SID that must be assigned the access permission on the file location.

Предоставление разрешение на доступ к файловой системе идентификатору безопасности службы To Grant File System Permission to the Per-service SID

С помощью проводника Windows перейдите в папку файловой системы, в которой находятся файлы базы данных. Using Windows Explorer, navigate to the file system location where the database files are stored. Правой кнопкой мыши щелкните эту папку и выберите пункт Свойства. Right-click the file system folder, and then click Properties.

На вкладке Безопасность щелкните Изменить и затем ― Добавить. On the Security tab, click Edit, and then Add.

В диалоговом окне Выбор пользователей, компьютеров, учетных записей служб или групп щелкните Расположения, в начале списка расположений выберите имя своего компьютера и нажмите кнопку ОК. In the Select Users, Computer, Service Account, or Groups dialog box, click Locations, at the top of the location list, select your computer name, and then click OK.

В поле Введите имена объектов для выбора введите имя идентификатора безопасности службы, указанное в разделе Настройка учетных записей службы и разрешений Windowsэлектронной документации. In the Enter the object names to select box, type the name of the per-service SID name listed in the Books Online topic Configure Windows Service Accounts and Permissions. (В качестве идентификатора безопасности службы компонента Компонент Database Engine Database Engine используйте NT SERVICE\MSSQLSERVER для экземпляра по умолчанию или NT SERVICE\MSSQL$InstanceName — для именованного экземпляра.) (For the Компонент Database Engine Database Engine per service SID name, use NT SERVICE\MSSQLSERVER for a default instance, or NT SERVICE\MSSQL$InstanceName for a named instance.)

Читайте также:  Криптопро fox для mac os

Щелкните Проверить имена , чтобы проверить введенные данные. Click Check Names to validate the entry. Проверка зачастую выявляет ошибки, по ее окончании может появиться сообщение о том, что имя не найдено. (If the validation fails, it might advise you that the name was not found. При нажатии кнопки ОК открывается диалоговое окно Обнаружено несколько имен . When you click OK, a Multiple Names Found dialog box appears. Теперь выберите идентификатор безопасности службы MSSQLSERVER или NT SERVICE\MSSQL$InstanceName и нажмите кнопку ОК. Now select the per-service SID name, either MSSQLSERVER or NT SERVICE\MSSQL$InstanceName, and then click OK. Снова нажмите кнопку ОК , чтобы вернуться в диалоговое окно Разрешения . Click OK again to return to the Permissions dialog box.)

В поле имен Группа или пользователь выберите имя идентификатора безопасности службы, а затем в поле Разрешения для установите флажок Разрешить для параметра Полный доступ. In the Group or user names box, select the per-service SID name, and then in the Permissions for box, select the Allow check box for Full control.

Нажмите кнопку Применить, а затем дважды кнопку ОК , чтобы выполнить выход. Click Apply, and then click OK twice to exit.

Управление NTFS разрешениями на папки и файлы из PowerShell

Для управления доступом к файлам и папкам в Windows на каждый объект файловой системы NTFS (каталог или файл) назначается специальный ACL (Access Control List, список контроля доступа). В ACL объекта задаются доступные операции (разрешения), которые может совершать с этим объектом пользователь и/или группы . В большинстве случаев администраторы Window для управления NFTS разрешениями на файлы и папки используют графический интерфейс File Explorer (свойства папки/файла -> вкладка Security/Безопасность) или консольную утилиту icacls. В этой статье мы рассмотрим способы управления разрешениями на объекты файловой системы NTFS из PowerShell. Вы можете использовать эти команды в скриптах и для автоматизации управлением NTFS разрешениями на файловых серверах Windows.

Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl

В PowerShell v5 (Windows 10 / Windows Server 2016) для управления ACL имеется два отдельных встроенных командлета (входят в модуль Microsoft.PowerShell.Security):

  • Get-Acl — позволяет получить текущие ACL для конкретного объекта на файловой системе NTFS;
  • Set-Acl – используется для добавления/изменения текущих ACL объекта.

Мы не будем подробно останавливаться на этих встроенных командлетах, т.к. их функционал в большинстве случае недостаточен для управления NTFS разрешениями в реальных задачах. Рассмотрим лишь несколько типовых примеров их использования.

Выведем текущего владельца папки (файла) и список назначенных NTFS разрешений:

get-acl C:\Drivers\ |fl

Path : Microsoft.PowerShell.Core\FileSystem::C:\Drivers\
Owner : WORKSTAT1\root
Group : WORKSTAT1\Отсутствует
Access : NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
WORKSTAT1\root Allow Modify, Synchronize
Audit :
Sddl : O:S-1-5-21-3650440056-3766451173-3310994491-1001G:S-1-5-21-3650440056-766451173-3310994491-513D:PAI(A;OICI;0x 1301bf;;;AU)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;OICI;0x1301bf;;;S-1-5-21-3650440056-37664 51173-3310994491-1001)

Можно вывести только списки NTFS разрешений в более понятном формате:

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

Get-Acl C:\Drivers | Set-Acl C:\Distr

Главная проблема при использовании Set-ACL – командлет всегда пытается сменить владельца ресурса, даже если вы просто хотите изменить NTFS разрешения. В результате, чтобы добавить права на объект нужно использовать такую конструкцию:

Читайте также:  Dead cells mac os

$path = «c:\drivers»
$user = «WORKSTAT1\user1»
$Rights = «Read, ReadAndExecute, ListDirectory»
$InheritSettings = «Containerinherit, ObjectInherit»
$PropogationSettings = «None»
$RuleType = «Allow»
$acl = Get-Acl $path
$perm = $user, $Rights, $InheritSettings, $PropogationSettings, $RuleType
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path $path

Чтобы убрать NTFS доступ к папке для пользователя или группы:
$path = «c:\drivers»
$acl = Get-Acl $path
$rules = $acl.Access | where IsInherited -eq $false
$targetrule = $rules | where IdentityReference -eq «WORKSTAT1\user1»
$acl.RemoveAccessRule($targetrule)
$acl | Set-Acl -Path $path

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

$path = ‘C:\dist’
$acl = Get-ACL -Path $path
$acl.SetAccessRuleProtection($True, $True) # первый $True указывает, является ли данный каталог защищенным, второй $True – нужно ли скопировать текущие NTFS разрешения
Set-Acl -Path $path -AclObject $acl

Используем модуль NTFSSecurity для управления разрешениями из PowerShell

Как я уже говорил, встроенный модуль для управления ACL на объекты в PowerShell не самый удобный. Для управления NTFS правами на файлы и папки в Windows лучше использовать отдельный модуль их галереи PowerShell – NTFSSecurity. Последнюю версию модуля NTFSSecurity (4.2.4 на данный момент) можно установить командой Install-Module -Name NTFSSecurity , или скачать вручную (линк). При ручной установке достаточно распаковать содержимое архива модуля в каталог C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity (не забудьте разблокировать скачанные файлы).

Импортируйте модуль NTFSSecurity в сессию PowerShell:

Выведем список команд, доступных в модуле (доступно 36 командлетов):

Get-Command -Module NTFSSecurity

Выведем текущие NTFS разрешения на каталог:
Get-Item ‘c:\distr’ | Get-NTFSAccess

Как вы видите, текущие разрешения представлены в более удобной форме.

Чтобы предоставить конкретному пользователю и группе группе полные права на папку, выполните команду:
Add-NTFSAccess -Path C:\distr -Account ‘WORKSTAT1\confroom’,’BUILTIN\Администраторы’ -AccessRights ‘Fullcontrol’ -PassThru

Чтобы предоставить права только на верхнем уровне и не изменять разрешения на вложенные объекты (только на папку), используйте команду:

Add-NTFSAccess c:\data\public -Account corp\aaivanov -AccessRights Modify -AppliesTo ThisFolderOnly

Удалить назначенные NTFS разрешения:

Remove-NTFSAccess -Path C:\distr -Account ‘WORKSTAT1\confroom’ -AccessRights FullControl -PassThru

Следующей командой можно лишить указанную учетную прав на все вложенные объекты в указанной папке (наследованные разрешения будут пропущены):

Get-ChildItem -Path C:\distr -Recurse | Get-NTFSAccess -Account ‘WORKSTAT1\confroom’ -ExcludeInherited |Remove-NTFSAccess -PassThru

Следующей командой можно назначить учетную запись Administrator владельцем всех вложенных объектов в каталоге:

Get-ChildItem -Path C:\distr -Recurse -Force | Set-NTFSOwner -Account ‘Administrator’

Чтобы очистить все разрешения, назначенные на объекты каталога вручную (не будет удалены унаследованные разрешения):

Get-ChildItem -Path C:\distr -Recurse -Force | Clear-NTFSAccess

Включить NTFS наследование для всех объектов в каталоге:

Get-ChildItem -Path C:\distr -Recurse -Force | Enable-NTFSAccessInheritance

Чтобы вывести все разрешения, которые назначены вручную, исключая унаследованные разрешения:

dir C:\distr | Get-NTFSAccess –ExcludeInherited

Можно вывести разрешения, назначенные для определенного аккаунта (не путайте с эффективными разрешениями, речь о них ниже):

dir C:\distr | Get-NTFSAccess -Account corp\aaivanov

Проверка эффективных NTFS разрешений на объекты из PowerShell

Вы можете проверить эффективные NTFS разрешения на конкретный файл или папку с помощью командлета Get-EffectiveAccess . Допустим вы предоставили доступ на некоторую папку нескольким группам безопасности AD и теперь хотите понять, есть ли у конкретного аккаунта (SID) доступ к данной папке или нет. Как это сделать, не выводя состав групп AD, в которых входит его учетная запись? В этой ситуации как раз поможет функция проверки эффективные NTFS разрешений. Допустим, нужно проверить эффективные права на все вложенные папки в каталоге для пользователя confroom.

Get-ChildItem -Path c:\distr -Recurse -Directory | Get-NTFSEffectiveAccess -Account ‘WORKSTAT1\confroom’ | select Account, AccessControlType, AccessRights, FullName

Либо вы можете проверить эффективные разрешения на конкретный файл:

Оцените статью