Я пишу код на C ++ для платформы Windows (XP / 7), чтобы проверить разрешение, связанное с файлом.Я хочу убедиться, что файл, который я читаю, не может быть записан учетными записями с повышенными привилегиями.Вот что я сейчас делаю:
- Я получаю DACL, связанный с файлом, вызывающим GetNamedSecurityInfo
- Я вызываю CreateWellKnownSid с хорошоизвестные Sids, такие как WinAuthenticatedUserSid (группа Пользователи)
- Я звоню BuildTrusteeWithSid , чтобы построить TRUSTEE с предыдущим SID
- Я звоню GetEffectiveRightsFromAcl с ранее созданным доверенным лицом для получения действующего acl
- Я проверяю, что ACL не содержит установленный флаг записи.
Этот код отлично работает дляГруппа пользователей.А как насчет других групп, таких как «Все», «Гости» или других конкретных пользователей, которые могут иметь определенный доступ для записи в файл?Я хотел бы найти решение, в котором мне не нужно перечислять все возможные SID и проверять их все.Могу ли я использовать SID, например «что угодно, но не администратор»?
С уважением, Ant