icacls отказано в доступе
Для ограничения возможности пользователю ставить и запускать "левые" сертификаты с токенов были ограничены права на запись каталога %appdata%\Microsoft\SystemCertificates\My\Certificates, что не позволяло использовать даже вставленные токены, кроме того что уже записан в папку.
Сейчас необходимо сделать такое-же ограничение, но с помощью .bat файла, путем проб и ошибок пришел в команде вида:
icacls %appdata%\Microsoft\SystemCertificates\My\Certificates /deny %username%:(OI)(CI)(W) /T /C /L /Q
При использовании этой команды выдает ошибку "отказано в доступе" на вложенные файлы
C:\Users\seregina>icacls %appdata%\Microsoft\SystemCertificates\My\Certificates /deny %username%:(OI)(CI)(W) /T /L
обработанный файл: C:\Users\seregina\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates
C:\Users\seregina\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates\*: Отказано в доступе.
Успешно обработано 1 файлов; не удалось обработать 1 файлов
Если смотреть через графический интерфейс, то все права совпадают, но нельзя войти в папку Certificates. И система не видит сертификат.
Базовые права папки:
C:\Users\seregina\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates NT AUTHORITY\СИСТЕМА:(I)(OI)(CI)(F)
BUILTIN\Администраторы:(I)(OI)(CI)(F)
CompName\seregina:(I)(OI)(CI)(F)
Обязательная метка\Средний обязательный уровень:(NW)
Успешно обработано 1 файлов; не удалось обработать 0 файлов
Права при использовании проводника, сертификат система видит, можно пользоваться:
C:\Users\seregina\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates CompName\seregina:(OI)(CI)(DENY)(W)
NT AUTHORITY\СИСТЕМА:(I)(OI)(CI)(F)
BUILTIN\Администраторы:(I)(OI)(CI)(F)
CompName\seregina:(I)(OI)(CI)(F)
ЦЕНТР ПАКЕТОВ ПРИЛОЖЕНИЙ\Программные или аппаратные сертификаты, смарт-карта:(I)(OI)(CI)(RX)
Обязательная метка\Средний обязательный уровень:(NW)
Успешно обработано 1 файлов; не удалось обработать 0 файлов
Права при использовании команды icacls, сертификат не виден системой:
C:\Users\seregina\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates CompName\seregina:(OI)(CI)(DENY)(W)
NT AUTHORITY\СИСТЕМА:(I)(OI)(CI)(F)
BUILTIN\Администраторы:(I)(OI)(CI)(F)
CompName\seregina:(I)(OI)(CI)(F)
Обязательная метка\Средний обязательный уровень:(NW)
Успешно обработано 1 файлов; не удалось обработать 0 файлов
Где может крыться подвох и почему при идентичных правах итог совершенно разный?
Ответы (1 шт):
Решения решения вопроса при помощи cmd так и не нашел, разрешил проблему при помощи скрипта запрета на powershell.
$path = "$env:APPDATA\Microsoft\SystemCertificates\My\Certificates"
$user = "$env:UserName"
$Rights = "Write"
$InheritSettings = "Containerinherit, ObjectInherit"
$PropogationSettings = "None"
$RuleType = "Deny"
$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