Bir makineye giriş yaptığınızda, her kullanıcının sahte terminal cihazlarını çıkışından öğrenebilirim w
. Bir sistem yöneticisi olarak, kullanıcının farkında olmadan bu terminalde gizlice dinlemem mümkün mü? Başka bir deyişle, bu terminalde her şeyin kendi terminalimde çıktı olarak yapıldığını görmek istiyorum.
Lütfen aşağıdakilere dikkat edin:
- Bu, kullanıcı faaliyetlerini izlemek için pratik bir kullanım durumu değildir: Bunun için sistem denetim araçları olduğunun farkındayım. Sadece yapılıp yapılamayacağını merak ediyorum.
- Bu sorunun farkındayım ve sorduğum şeyleri kapsadığı gibi görünmüyor, çünkü önerilen tüm çözümler ya invaziv (kullanıcı ne yaptığımın farkında olacak) ya da çok fazla gürültü (
strace
çözüm). Yaklaşan tek çözüm, kullanmayı öneren çözümdürgdb
. Ama bu sadece diğer terminalin stdout'unu görmeme izin veriyor.
Ne denedim
Bunu terminalimden denedim:
tee /dev/pts/user_pts </dev/pts/user_pts
Bu, kullanıcının yazdığı diğer sahte terminalde yazdığı her karakteri görmemi sağlar. Sorun şu, her birkaç karakterde bir "atlayacak": bir terminal aygıtında bir hileli karakter gösterecekti, diğerinde göstermeyecekti. Ayrıca, kullanıcının sözde terminal aygıtından herhangi bir komutun yürütülmesini de engeller. Bunun neden olduğundan ve onu iyileştirmenin bir yolu olup olmadığından emin değilim.
Ne görmek istiyorum
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
ya da muhtemelenpeekfd
.