Очередная относительно типовая задача: нужно дать пользователю право на чтение Event Log, при этом, не дай бог, права эти нужны на котроллере домена или на другом критичном для безопасности сервере, и предоставить полномочий больше чем нужно мы не желаем ни в какую. А, если мне память не изменяет, для удаленного просмотра логов пользователь должен быть как минимум power user (поправьте меня, если я не прав). GUI по моим данным для такой задачи нет, CLI тоже, так что остается старыми дедовскими методами, то есть ручками. Что нам для этого нужно? На самом деле произвести достаточно простые процедуры:
1) определить SID пользователя, которому мы желаем предоставить права. Есть утилиты навроде user2sid, а я пользуюсь PowerShell. Например, и
Get-User "Vasya Pupkin" select name, sid
и
Get-QADUser "Vasya Pupkin" select name, sid
дадут нам табличку из имен подходящих учетных записей и их SID'ов. Наливай да пей Выделяй и вставляй.
2) Поправить реестр.
----------------------------------------------------------------------------------
Предупреждение. При неправильном использовании редактора реестра могут возникнуть серьезные неполадки, требующие переустановки операционной системы. Корпорация Майкрософт не несет ответственности за неправильное использование редактора реестра. При изменении реестра полагайтесь на свой опыт и знания.
----------------------------------------------------------------------------------
Собственно, нужно найти ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ (предполагая, что мы даем права на application log) и найти там ключ CustomSD. Он выглядит приблизительно вот так: O:BAG:SYD:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3) К этому ключу нужно добавить (повторяю, добавить, не заменить его!!!) запись вида (A;;0x1;;;<SID>), где SID это как раз то значение, которое мы выяснили на первом шагу. Если этого ключа не существует, то можно его создать, тогда он будет выглядеть так: O:BAG:SYD:(A;;0x1;;;<SID>) Вот такая вот ерундовина. А об этих страшных буквах (D;;0xf0007;;;BG) я напишу чуть позже - понимать, что они означают, может быть полезным навыком. P.S. Работает как на Windows 2003, так и на Windows 2008.
11 комментариев:
Можно ли просто дать право на чтение evt-файлов?
Увы, не поможет. Ну по крайней мере, если мы говорим об одном и том же - об удаленном доступе. =)
Но я на всякий случай еще раз попробую.
Неа, не помогает. Пока только как я написал. =)
Да, я тоже попробовал.
Задачка интересная.
Кстати, хороший вышел бы метод обучения администрированию - на таких вот задачах.
Ну вот я и учусь... А по поводу организации обучения... Таки задачи придумать-то не всегда получается, они просто сами появляются из ниоткуда =)
кстати говоря, в висте/сервере 2008 это значение можно (и нужно) задавать не в реестре, а через политику: http://blogs.technet.com/askds/archive/2008/08/12/event-logging-policy-settings-in-windows-server-2008-and-vista.aspx
Да, как раз сегодня прочитал =)
Кто ж знал-то? =)
В Windows 2008 Server появилась группа Event Log Readers :-)
Павел, спасибо большое за замечание: нужно было, разумеется, упомянуть это в статье. И упомянул бы, если бы был в курсе =)))
Есть только маленькое но:
1) моя статья рассчитана и на работу с 2003
2) включение в данную группу позволяет пользователю читать все логи. Даже Security. А это в большинстве случаев совсем не то, что нужно, увы.
Но еще раз - большое спасибо =)
способ для win2003 через групповую политику (с учетом этой же статьи):
http://support.microsoft.com/kb/323076
(Настройка безопасности журнала событий локально или при помощи групповой политики в Windows Server 2003)
Отправить комментарий