Solaris 資料一覧

一般ユーザでsnoopを実行する(Solaris10)

2008/4/1更新

対応バージョン: 10

Solaris10で提供されている最小特権モデル(Least Privilege Model)という機構を用いて、通常管理者にしか実行できないsnoopコマンドを一般ユーザに実行させることができる。

まず通常の状態ではsnoopコマンドは失敗する。

% snoop
snoop: /dev/iprb0: Permission denied

これに対して以下のように一般ユーザのデフォルトの特権であるbasic(*)にnet_rawaccess(ネットワーク層への直接アクセスを許可する)を加えることによりsnoopが実行できるようになる。

# usermod -K defaultpriv=basic,net_rawaccess foo
% snoop
Using device /dev/iprb0 (promiscuous mode)
:

ユーザの特権設定は/etc/user_attrファイルに格納される。

foo::::type=normal;defaultpriv=basic,net_rawaccess

尚、すでに該当のユーザがログインしている場合は以下のメッセージが出て次回のログインから設定が有効になる。

UX: usermod: foo is currently logged in, some changes may not take effect until next login.

(*) basic特権は以下の特権の集合を表す。

file_link_any

プロセスの実効ユーザIDと異なるユーザIDによって所有されているファイルへのハードリンクを作成できるようにする。

proc_info

シグナルを送信できるプロセス以外のプロセスの状態を調査できるようにする。調査できないプロセスは/procに表示されないため存在していないように見える。

proc_session

プロセスのセッション外でシグナルを送信したりプロセスをtraceしたりできるようにする。

proc_fork

fork1(),forkall(),vfork()をコールできるようにする。

proc_exec

execve()をコールできるようにする。

全ての特権については以下のコマンドで参照できる。

% ppriv -lv