Khi đăng nhập vào máy, tôi có thể tìm ra (các) thiết bị đầu cuối giả của người dùng từ đầu ra của w
. Là một sysadmin, tôi có thể nghe lén thiết bị đầu cuối này mà không cần người dùng biết không? Nói cách khác, tôi muốn xem mọi thứ được thực hiện trên thiết bị đầu cuối này là đầu ra trên thiết bị đầu cuối của riêng tôi.
Xin lưu ý những điều sau:
- Đây không phải là trường hợp sử dụng thực tế để giám sát các hoạt động của người dùng: Tôi biết có các công cụ kiểm toán hệ thống cho việc đó. Tôi chỉ tò mò nếu nó có thể được thực hiện.
- Tôi biết câu hỏi này và dường như nó không bao gồm những gì tôi đang hỏi vì tất cả các giải pháp được đề xuất đều có xâm lấn (người dùng sẽ nhận thức được những gì tôi đang làm) hoặc tạo ra quá nhiều tiếng ồn (
strace
giải pháp). Một giải pháp gần gũi là giải pháp gợi ý sử dụnggdb
. Nhưng điều này chỉ cho phép tôi thấy thiết bị đầu cuối của thiết bị đầu cuối khác.
Những gì tôi đã cố gắng
Tôi đã thử điều này từ thiết bị đầu cuối của tôi:
tee /dev/pts/user_pts </dev/pts/user_pts
Điều này cho phép tôi xem từng ký tự mà người dùng nhập vào thiết bị đầu cuối giả khác khi họ nhập nó. Vấn đề là, cứ vài ký tự, nó sẽ "bỏ qua": nó sẽ hiển thị một ký tự giả mạo trên một thiết bị đầu cuối chứ không phải cái kia. Nó cũng ngăn chặn việc thực hiện bất kỳ lệnh nào từ thiết bị đầu cuối giả của người dùng. Tôi không thực sự chắc chắn tại sao điều này xảy ra và liệu có cách nào để cải thiện nó hay không.
Những gì tôi muốn thấy
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
hoặc có thểpeekfd
.