straceがbashのPIDを追加すると、sudoコマンドは機能しません。

straceがbashのPIDを追加すると、sudoコマンドは機能しません。

BASHのPIDをstrace

$ strace -q -f -e execve -p $$ -o <outputFile>

うまく動作し、出力ファイルにすべてのコマンドのリストが表示されます。

しかし、別の問題に直面しています。 BASH PIDを接続するとコマンドを実行できませんsudostrace

次のエラーが発生します。

sudo: effective uid is not 0, is sudo installed setuid root?

バイナリsetuidに設定されていることを確認してください。sudo

---s--x--x. 1 root root 123832 Mar 22 11:35 /usr/bin/sudo

sudo私が止まるとうまくいきますstrace

これはバグですか、それとも技術的な理由がありますか?この問題を解決するのに役立ちます。

ベストアンサー1

これマニュアルstrace話す:

間違い
setuidビットを使用するプログラムは、トレース時に有効なユーザーID権限を持っていません。

バグではなく、setuidプロセスのデバッグのセキュリティ影響に関連していると思われます。私の記憶が正しい場合は、strace同じトレースインターフェイスが使用され、それをgdb実行しているプロセスのメモリを変更できます。必要以上の権限で実行されるプロセスに対してこれを行うことはできません。

おすすめ記事