Solaris のシステム管理 (セキュリティサービス)

setuid アクセス権

ユーザー ID 設定 (setuid) のアクセス権を実行可能ファイルに設定すると、このファイルを実行するプロセスには、その実行可能ファイルを実行しているユーザーではなく、ファイルの所有者 (通常は root) に基づいてアクセス権が与えられます。この特殊なアクセス権を使用すると、通常は所有者しか利用できないファイルやディレクトリにアクセスできます。たとえば次に示すように、passwd コマンドは rootsetuid アクセス権が設定されているので、ユーザーは root ID の権限でパスワードを変更できます。


-r-sr-sr-x   3 root     sys       104580 Sep 16 12:02 /usr/bin/passwd

この特殊なアクセス権は、プロセスの実行が終了したあとでも、高度な知識のあるユーザーは setuid プロセスによって与えられたアクセス権を維持する手段を見つけることができるため、セキュリティ上の危険が存在します。


注 –

プログラムから予約済み UID (0 – 99) で setuid アクセス権を使用しても、実効 UID は正しく設定されない場合があります。シェルスクリプトを代わりに使用するか、setuid アクセス権では予約済み UID を使用しないようにしてください。