जैसा कि अन्य लोगों ने यहां कहा है, केवल कुंजी लॉगिंग से सूक्ति-टर्मिनल या अन्य टर्मिनल जैसे किसी प्रोग्राम की रक्षा करना संभव नहीं है, केवल अगर आप मानक उपयोगकर्ताओं को किसी भी कुंजी लकड़हारा को निष्पादित करने के लिए प्रतिबंधित करते हैं या यदि आप किसी भी कुंजी लकड़हारा प्रक्रिया को रोकते / रोकते हैं।
आगे मैं आपको दिखाऊंगा कि xinput
कमांड के मामले में आप ये कैसे कर सकते हैं , लेकिन वही तरीके किसी और कुंजी लकड़हारे के लिए इस्तेमाल किए जा सकते हैं। यदि एक कुंजी लकड़हारा xinput
कमांड का उपयोग करता है , तो जब तक आप इसे लागू नहीं करते तब तक इस पर विधि लागू करना आवश्यक नहीं है xinput
।
1. xinput
आदेश का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करें
आप निम्न आदेश का उपयोग करके मानक उपयोगकर्ताओं को xinput
कमांड का उपयोग करने के लिए प्रतिबंधित कर सकते हैं :
sudo chmod go-x /usr/bin/xinput
2. तर्क के xinput
साथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करेंtest-xi2
आप इस आदेश के लिए आवरण लिखकर तर्क के साथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधितxinput
test-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]
यदि आप नहीं जानते कि कैसे अपने सिस्टम पर सक्रिय कीलॉगर का पता लगाना है, तो देखें:
ये तरीके शायद सबसे अच्छा समाधान नहीं हैं, लेकिन मुझे आशा है कि आप इस बारे में एक विचार दे सकते हैं कि आप क्या कर सकते हैं ...