BASHのPIDをstrace
。
$ strace -q -f -e execve -p $$ -o <outputFile>
うまく動作し、出力ファイルにすべてのコマンドのリストが表示されます。
しかし、別の問題に直面しています。 BASH PIDを接続するとコマンドを実行できませんsudo
。strace
次のエラーが発生します。
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
実行しているプロセスのメモリを変更できます。必要以上の権限で実行されるプロセスに対してこれを行うことはできません。