мне нужно из под SYSTEM
в цикле выполнять SetFileSecurity для определённого фаила...
ну тобиш выставлят разрешения для фаила NT AUTHORITY\SYSTEM:F
всё бы хорошо но когда другой процесс меняет разрешение допустим на BUILTIN\Администраторы:F
SetFileSecurity начинает кричать типа доступ запрёщён ??????
если запустить всё это от имини Администратор
то всё работает как надо другой процесс меняет разрешение
а SetFileSecurity меняет его обратно... на NT AUTHORITY\SYSTEM:F
не смотря на то что в списке доступа нет BUILTIN\Администраторы:F
а только один NT AUTHORITY\SYSTEM:F
до пустим такой пример
от имени SYSTEM
c:\>cacls aaa.exe
c:\>cacls aaa.exe BUILTIN\Администраторы:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Пользователи:R
c:\>cacls aaa.exe /g Администратор:F
разрешение поменялось....
теперь допустим
c:\>cacls aaa.exe /g SYSTEM:F
а вот теперь хрен на рыло доступ запрёщён ???
от имени Администратор
c:\>cacls aaa.exe
c:\>cacls aaa.exe BUILTIN\Администраторы:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Пользователи:R
c:\>cacls aaa.exe /g SYSTEM:F
разрешение поменялось....
теперь допустим
c:\>cacls aaa.exe /g Администратор:F
а так работает.............
так что получается что Администратор имеет большие привелегии чем SYSTEM ?
пробовал получать привелегии SE_SECURITY_NAME
тоже не какой реакции тоже самое...
вот код
bool SetFileOnlyForSystem(unsigned char *FileName)
{
SID_IDENTIFIER_AUTHORITY IdentifierAuthority=SECURITY_NT_AUTHORITY;
SID *Sid;
ACL *Acl;
SECURITY_DESCRIPTOR *SecurityDescriptor;