Sponsored LinksКатегорииLinksUnix Tutorial
Personal Development Ruslan Valiev Solaris Performance Team Damien Farnham Fintan Ryan Nicky Veitch Niall Mullen Sean McGrath DTrace Bryan Cantrill Brendan Gregg ZFS Tim Foster General Ben Rockwood Learning Solaris 10 Privacy policy |
Wednesday, 1 December. 2004DTrace и настройка привилегий
Одним из нововведений Solaris 10 являются привилегии - механизм, позволяющий легко ограничивать возможности пользователей или процессов в системе.
man privileges содержит список всех доступных привилегий, я же здесь пока затрону лишь те, которые относятся к DTrace. Смысл всего этого вот в чём - DTrace это довольно опасное оружие в умелых руках, и потому простые пользователи Solaris не должны иметь к нему доступ так же, как и они не должны иметь доступа к файлам других пользователей. Поэтому, попытка выполнить команду типа dtrace -l из-под обычного пользователя приведёт к такой вот ошибке: dtrace: failed to initialize dtrace: DTrace requires additional privileges По умолчанию, только root может пользоваться DTrace. Чтобы позволить другим пользователям тоже как-то использовать DTrace, существуют три привилегии, которые им может выдавать администратор: dtrace_proc - даёт пользователю лишь доступ к провайдеру pid. Естественно, доступна будет лишь информация о процессах, принадлежащих этому пользователю. dtrace_user - даёт пользователю доступ к провайдерам profile и syscall, опять же в рамках процессов, принадлежащих этому пользователю. dtrace_kernel - даёт доступ ко всем провайдерам, кроме pid, если он не позволен привилегией dtrace_proc. Губительные для ядра (kernel-destructive) функции недоступны. Вот эти три функции считаются kernel-destructive: breakpoint() - выбросит систему в отладчик ядра. На Sparc-системах вы окажетесь в ok приглашении OBP, а на x86 системах можете оказаться в kadb panic() - вызовет панику ядра (смешно переводить слова, которые никогда по-русски не говорятся) в целях получения крэш-дампа chill() - глобальный sleep, если хотите. Заставляет DTrace ждать указанное количество наносекунд. Естественно, это отразится на всей системе. Так вот, обычному пользователю, какие бы вы ему привилегии не давали, доступа к этим трём функциям нет. Вкратце, привилегии выдаются так: Нужно добавить в файлик /etc/user_attr строку с указанием привилегий для конкретного пользователя. Скажем, если имя пользователя - greys, то вот эта строчка даст ему возможность творить с помощью DTrace всё, что только можно позволить с помощью привилегий простому пользователю: greys::::defaultpriv=basic,dtrace_proc,dtrace_user,dtrace_kernel ну, или если не хочется пользователю надолго давать такие привилегии, можно осчастливить лишь процесс его командной оболочки командой: ppriv -s A+dtrace_user PID В этом случае пользователь сможет провести необходимые ему эксперименты, но по выходу из оболочки он эти волшебные свойства утратит до следующего вашего приступа душевной доброты. Defined tags for this entry: dtrace Комментарии
Показывать комментарии
(Как список | Древовидной структурой)
Мне trackback понравился. :-) Чувак прав, этот блог мог бы быть написан даже на кыргызском. :)))
;) Джон, этот товарищ - один из авторов DTrace :) Можешь себе представить, как я тут горжусь! :)
|





I ran across a fantastic DTrace blog . The only problem: it's in Russian. (Or rather, it's in Cyrillic -- I suppose it could be any one of several dozen languages , but it seems unlikely that it's in Mansi or Yakut .) Even if you only underst
Tracked: Dec 02, 09:45