2014-01-21 1 views
3

Мне нужно уметь проверять все права и привилегии these.Как получить права пользователя и привилегии учетной записи пользователя Windows

Я попытался использовать токен для доступа к ним, но это только выполняет список привилегий. Я проверил this library, а также this one, но не смог найти решение. Единственный способ выполнить это тестирование каждого указанного права/привилегии самостоятельно? Или я могу просто быть невежественным.

Любая помощь в правильном направлении будет оценена!

+1

Права доступа к файлам хранятся вместе с файлом, а не с учетной записью пользователя. В общем, вам придется перечислить все файлы. Итак, это вопрос XY? Зачем вам это нужно? – MSalters

+2

Например, SeLogonRight не извлекается через токен доступа, поскольку он является правом, а не привилегией. Использование токена доступа - единственный способ, которым я могу это сделать, поэтому я не знаю, как проверить, включено ли это право для пользователя. Я не уверен, на что вы ссылаетесь в списке. – Jon

ответ

5

Я считаю, что единственный способ сделать это - использовать либо LsaEnumerateAccountsWithUserRight, либо LsaEnumerateAccountRights для запроса политики LSA.

Поскольку права не должны быть назначены непосредственно (то есть, они могут быть отнесены к группе, или к безопасности примитив, такие как Everyone или INTERACTIVE USERS) вам необходимо перечислить SIDs в лексемы и перекрестных ссылок пользователя этой с политикой НУА.

+0

Awesome! Я дам это, спасибо за ответ! – Jon

+0

Но что, если в группе есть группа? Нужно ли рекурсивно проходить их? –

+1

@zespri: нет, если у вас есть токен пользователя для работы, потому что он уже включает в себя все вложенные группы. Если у вас нет ничего, кроме имени пользователя, вам нужно будет сделать рекурсию самостоятельно. –

 Смежные вопросы

  • Нет связанных вопросов^_^