gdbの内部構造とsetuidビット

gdbの内部構造とsetuidビット

setuidプログラムの場合、root権限がないとptraceが正しく機能しないことがわかります。もしそうなら、gdbはsetuidビットが有効になり、root以外の権限を持つ実行可能ファイルとどのように機能しますか?

ナビゲートするために、単純なexec( " / bin / id "、 " id "、NULL)実行可能ファイルを使用してテストしました。

root以外の権限でgdbから実行可能ファイルを実行すると、実行は成功しますが、euidはroot(= 0)に変わりません。したがって、setuid ビットがセットされると、gdb 内で実行可能なバイナリが実行前に一時ファイルにコピーされることが疑われます。実行可能ファイルに対する「読み取り」権限が削除されると、root以外のユーザーがgdbを使用して実行可能ファイルを実行すると、gdbが「Permission Denied」を印刷するため、これは正しいようです。

gdbに精通している人はこのアイデアを確認または修正できますか?

ご協力ありがとうございます!

psそして私はgdb(Debian 8.3.1-1)8.3.1を使用しました。

関連情報