কোনও মেশিনে লগ ইন করার সময়, আমি প্রতিটি ব্যবহারকারীর সিউডো-টার্মিনাল ডিভাইস (গুলি) এর আউটপুট থেকে বের করতে পারি w
। সিসাদমিন হওয়ায়, ব্যবহারকারীকে অবগত না করেই কি আমার পক্ষে এই টার্মিনালে শ্রবণশক্তি সম্ভব? অন্য কথায়, আমি দেখতে চাই যে এই টার্মিনালটিতে আমার নিজের টার্মিনালের আউটপুট হিসাবে সবকিছু করা হচ্ছে।
নিম্নলিখিত নোট করুন:
- এটি ব্যবহারকারীর ক্রিয়াকলাপ পর্যবেক্ষণের ব্যবহারিক ব্যবহারের ক্ষেত্রে নয়: আমি জানি যে এর জন্য সিস্টেম অডিটিং সরঞ্জাম রয়েছে। এটা করা সম্ভব হলে আমি শুধু কৌতূহলী।
- আমি এই প্রশ্নটি সম্পর্কে সচেতন এবং এটি যে বিষয়ে জিজ্ঞাসা করছে তা কভার করে বলে মনে হচ্ছে না যে প্রস্তাবিত সমস্ত সমাধান হ'ল আক্রমণাত্মক (ব্যবহারকারী আমি কী করছি সে সম্পর্কে সচেতন হবে) বা খুব বেশি শব্দ তৈরি করবে (
strace
সমাধান)। যে সমাধানটি নিকটে আসে তা হ'ল এটি ব্যবহারের পরামর্শ দেয়gdb
। তবে এটি আমাকে কেবল অন্য টার্মিনালের স্টাডআউট দেখতে দেয়।
আমি যা চেষ্টা করেছি
আমি আমার টার্মিনাল থেকে এটি চেষ্টা করেছি:
tee /dev/pts/user_pts </dev/pts/user_pts
এটি ব্যবহারকারীকে অন্য সিউডো-টার্মিনালটিতে টাইপ করার সাথে সাথে প্রতিটি অক্ষর দেখতে দেয়। সমস্যাটি হল, প্রতি কয়েকটি অক্ষর এটি "এড়িয়ে যায়": এটি একটি টার্মিনাল ডিভাইসে একটি দুর্বৃত্ত চরিত্র প্রদর্শন করবে তবে অন্যটি নয়। এটি ব্যবহারকারীর সিউডো টার্মিনাল ডিভাইস থেকে কোনও কমান্ড কার্যকর করতে বাধা দেয়। কেন এটি হচ্ছে এবং এর উন্নতির কোনও উপায় আছে কিনা তা আমি সত্যিই নিশ্চিত নই।
আমি কি দেখতে চাই
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
বা সম্ভবতpeekfd
।