जैसा कि अन्य लोगों ने यहां कहा है, केवल कुंजी लॉगिंग से सूक्ति-टर्मिनल या अन्य टर्मिनल जैसे किसी प्रोग्राम की रक्षा करना संभव नहीं है, केवल अगर आप मानक उपयोगकर्ताओं को किसी भी कुंजी लकड़हारा को निष्पादित करने के लिए प्रतिबंधित करते हैं या यदि आप किसी भी कुंजी लकड़हारा प्रक्रिया को रोकते / रोकते हैं।
आगे मैं आपको दिखाऊंगा कि xinputकमांड के मामले में आप ये कैसे कर सकते हैं , लेकिन वही तरीके किसी और कुंजी लकड़हारे के लिए इस्तेमाल किए जा सकते हैं। यदि एक कुंजी लकड़हारा xinputकमांड का उपयोग करता है , तो जब तक आप इसे लागू नहीं करते तब तक इस पर विधि लागू करना आवश्यक नहीं है xinput।
1. xinputआदेश का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करें
आप निम्न आदेश का उपयोग करके मानक उपयोगकर्ताओं को xinputकमांड का उपयोग करने के लिए प्रतिबंधित कर सकते हैं :
sudo chmod go-x /usr/bin/xinput
2. तर्क के xinputसाथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करेंtest-xi2
आप इस आदेश के लिए आवरण लिखकर तर्क के साथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधितxinputtest-xi2 कर सकते हैं । ऐसा करने के लिए, टर्मिनल में जाएं और नीचे दिए गए निर्देशों का पालन करें:
रूट विशेषाधिकार प्राप्त करें:
sudo -i
xinputकिसी अन्य उपयोगकर्ता के PATH में उदाहरण के लिए फ़ाइल ले जाएँ (उदाहरण के लिए /opt):
mv /usr/bin/xinput /new/path/to/xinput
xinputकमांड के लिए अपना रैपर बनाएं /usr/bin:
gedit /usr/bin/xinput
निम्नलिखित स्क्रिप्ट को अंदर जोड़ें:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
फ़ाइल को सहेजें और इसे बंद करें।
नया आवरण निष्पादित करें:
chmod +x /usr/bin/xinput
जबकि पहली विधि सुरक्षा है, दूसरी विधि का उपयोग करते हुए, उपयोगकर्ता अभी भी मूल कॉल करके xinputसीधे इसे दरकिनार कर सकता है यदि वह अपना नया स्थान जानता है।
3. किसी भी xinputप्रक्रिया को रोकें / रोकें
आप xinputपासवर्ड या कुछ और दर्ज करने के लिए किसी भी प्रक्रिया को रोक सकते हैं या रोक सकते हैं जिसे आप लॉग इन नहीं करना चाहते हैं। ऐसा करने के लिए, अपनी ~/.bashrcफ़ाइल के अंत में निम्न बैश फ़ंक्शन जोड़ें :
processof () {
xinput_pids=" $(pidof $1) "
if [ "$xinput_pids" = " " ]; then
echo "Nothing to stop/pause/continue. $1: no such process!"
return
fi
for pid in $xinput_pids; do
case $2 in
"stop")
kill $pid
echo "$1: stopped"
;;
"pause")
kill -stop $pid
echo "$1: paused"
;;
"continue")
kill -cont $pid
echo "$1: continue"
;;
*)
echo "$1 is runnig"
;;
esac
done
}
अब, आप अपने टर्मिनल को फिर से खोलने के बाद, कभी भी आप चाहें तो इस फ़ंक्शन का उपयोग कर सकते हैं:
सभी xinputप्रक्रियाओं को रोकें / मारें :
processof xinput stop
सभी xinputप्रक्रियाओं को रोकें :
processof xinput pause
सभी xinputप्रक्रियाओं को फिर से शुरू करें :
processof xinput continue
वास्तव में, इस फ़ंक्शन के साथ आप कुछ करने से पहले किसी भी प्रक्रिया को रोक सकते हैं / रोक सकते हैं (जैसे पासवर्ड दर्ज करना):
processof [process_name] [stop|pause|continue]
यदि आप नहीं जानते कि कैसे अपने सिस्टम पर सक्रिय कीलॉगर का पता लगाना है, तो देखें:
ये तरीके शायद सबसे अच्छा समाधान नहीं हैं, लेकिन मुझे आशा है कि आप इस बारे में एक विचार दे सकते हैं कि आप क्या कर सकते हैं ...