以下のようizxはコメントしている、これが唯一のカーネルのバグが原因起こることができるはずです。そのため、現在この問題(特にこの質問の元のポスターを含む)を作成できる人は、そのページを注意深く読みubuntu-bug linux
、影響を受けるマシンで実行することでバグとして報告することをお勧めします。これは、メインラインカーネル(ロードする必要がある)で生成できない限り、メインライン(アップストリーム)カーネルに対してではなくlinux
、Ubuntu に対して報告する必要があります。yama
Ubuntu 10.10以降のUbuntuのすべてのバージョンで予想される動作は、BがAの直接の子でない限り(またはAがとして実行されない限り)、プロセスAは実行中のプロセスBを追跡できないことroot
です。これはセキュリティの強化です。これにより、攻撃者によって侵害されたプロセスは、カーネルが提供するデバッグ機能を使用して他のプロセスから情報を検出できなくなります。これは、セキュリティ機能コミュニティwikiページのptraceスコープセクションで説明されています。
この制限的な動作はデフォルトですが、プロセスAがプロセスA自身と同じユーザーIDで実行されている実行中のプロセスBをトレースできるように変更できます。つまり、プロセスを相互にデバッグできるようにシステムを構成できます。これにより、すでに実行中のプロセスにデバッガーを簡単に接続できます。
この設定は/proc/sys/kernel/yama/ptrace_scope
sysctlによって公開されます。1
は、制限の厳しい動作と0
制限の少ない動作を示します。設定は次の方法で読み取ることができます。
cat /proc/sys/kernel/yama/ptrace_scope
制限の少ない(デフォルトではない)動作は、次のように設定できます。
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
そして、より制限的な(デフォルトの)動作は次のように設定(または元に戻す)できます:
echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
この質問の元のポスターはstrace
、ptrace-scope
setを使用して現在実行中のプロセスにインスタンスを添付0
できなかっただけでなく、strace
として実行しているときに元のポスターをまだ添付できませんでしたroot
。これがバグではないことを確認するのは困難です。バグとして報告することを強くお勧めします。
最初は、のptrace_scope
設定0
が無視され、のように扱われる問題を再現できると思っていました1
。しかし、私はすべて同じことを再び行ったため、これが事実であるとはもはや信じていません。問題を再現できません。私はこれをテストしました:
- 毎日メインボックスとして使用するLubuntu Precise amd64物理マシン。
- Lubuntu Precise i386(12.04)ライブCDを実行しているVirtualBox仮想マシン。
- Quantal i386(Ubuntu + 1)を毎日実行している同一のVirtualBox仮想マシン(20120608)。
3台すべてのマシンで、予期される動作が発生し、この質問の元のポスターが尋ねている状態を再現できません。ターミナル(正確なライブシステム)からのテキストを次に示します。
lubuntu@lubuntu:~$ nano&
[1] 3492
lubuntu@lubuntu:~$ strace -p 3492
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process. If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf
[1]+ Stopped nano
lubuntu@lubuntu:~$ cat /proc/sys/kernel/yama/ptrace_scope
1
lubuntu@lubuntu:~$ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
0
lubuntu@lubuntu:~$ strace -p 3492
Process 3492 attached - interrupt to quit
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
strace
予想どおり、中断するまでメッセージの生成を続けました。
これをバグとして報告することを再度推奨することで結論を出します。https://bugs.launchpad.net(報告されたUbuntuのバグを含む)でテキストptrace_scope
を最大限に検索すると、ほんの一握りの結果が得られますが、明らかにこのバグの報告はありません。バグを報告することは他の人を助け、回避策または修正につながる可能性があり、おそらくこの問題の作業を進めるための唯一の意味のある方法です(問題がまだ発生していると仮定)。
strace /bin/echo test
?同じエラーメッセージが表示されますか?