İzx'in dediği gibi , bunun yalnızca bir çekirdek hatası nedeniyle olması gerekir. Bu nedenle , şu anda bu sorunu üretebilecek olan kişiye - özellikle de bu sorunun orijinal posteri de dahil olmak üzere - bu sayfayı iyice ve dikkatlice okuyarak ve etkilenen makinede çalışarak bir hata olarak bildirmesi tavsiye edilirubuntu-bug linux . Bu , bir ana hat çekirdeğinde ( yüklü olması gerekir ) üretemediğiniz sürece, bir ana hat (yukarı akış) çekirdeğine karşı değillinux , Ubuntu'da bildirilmelidir .yama
Ubuntu 10.10 ile başlayan her Ubuntu sürümünde beklenen davranış, B'nin A'nın (veya A'nın farklı olarak çalıştığı root) doğrudan bir çocuğu olmadığı sürece, A işleminin B işlemini izleyememesidir . Bu, bir saldırgan tarafından ele geçirilen bir işlemin, diğer işlemlerden bilgi bulmak için çekirdek tarafından sağlanan hata ayıklama olanaklarını kullanamayacağı şekilde bir güvenlik geliştirmesidir. Bu, Güvenlik Özellikleri topluluğu wiki sayfasının ptrace kapsamı bölümünde açıklanmıştır .
Bu kısıtlayıcı davranış varsayılandır, ancak işlem A'nın işlem A'nın kendisiyle aynı kullanıcı kimliğiyle çalışan herhangi bir B işlemini izlemesini sağlamak için değiştirilebilir. Yani, sisteminizi, herhangi bir işleminizin birbirini ayıklamasını sağlayacak şekilde yapılandırabilirsiniz. Bu, çalışmakta olan işlemlere hata ayıklayıcıları eklemeyi basitleştirir.
Bunun için ayar /proc/sys/kernel/yama/ptrace_scope sysctl tarafından gösterilir . 1daha kısıtlayıcı davranışı ve 0daha az kısıtlayıcı davranışı ifade eder . Ayar ile okunabilir:
cat /proc/sys/kernel/yama/ptrace_scope
Daha az kısıtlayıcı (varsayılan olmayan) davranış ile ayarlanabilir:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Ve daha kısıtlayıcı (varsayılan) davranış şu şekilde ayarlanabilir (veya geri ayarlanabilir):
echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Bu sorunun yalnızca orijinal posteri, straceşu anda çalışan bir işleme ptrace-scopeayarlanan bir örneği ekleyemedi 0, ancak orijinal poster o zamanki stracegibi çalışırken de yapamadı root. Bunun bir hatadan başka nasıl bir şey olabileceğini görmek zor - bir tane olarak bildirmenizi şiddetle tavsiye ederim.
İlk başta, bir ptrace_scopeortamın 0yok sayıldığı ve olduğu gibi ele alındığı problemi yeniden oluşturabileceğimi düşündüm 1. Ama artık aynı şeyleri tekrar yaptığımdan ve problemi tekrar edemediğimden, durumun bu olduğuna inanmıyorum. Bunu üzerinde test ettim:
- Ana kutum olarak günlük kullandığım Lubuntu Precision amd64 fiziksel makine.
- Lubuntu Precise i386 (12.04) canlı CD çalıştıran VirtualBox sanal makinesi.
- Günlük olarak Quantal i386 (Ubuntu + 1) çalıştıran (20120608) aynı VirtualBox sanal makinesi.
Her üç makinede de beklenen davranış gerçekleşiyor ve bu sorunun orijinal posterinin sorduğu durumu tekrar üretemiyorum. Terminalden bazı metinler (Hassas canlı sistemden):
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 beklediğim gibi, askıya alınana kadar mesajlar üretmeye devam ettim.
Bunu bir hata olarak bildirmek için tekrar tavsiye ederek varıyorum. A maksimum kapsayıcı arama https://bugs.launchpad.net metin için (herhangi bir rapor Ubuntu hataları içerir) ptrace_scopeüretir açıkça hiçbiri bu hata için raporlar olduğu sonuçların sadece bir avuç, . Hatayı bildirmek başkalarına yardımcı olabilir, geçici çözümlere veya düzeltmeye yol açabilir ve muhtemelen bu sorun üzerinde çalışmaya devam etmenin tek anlamlı yoludur (sorunun hala devam ettiğini varsayarak).
strace /bin/echo test? Bu aynı hata mesajını veriyor mu?