ดังที่คนอื่น ๆ กล่าวไว้ที่นี่เป็นไปไม่ได้ที่จะป้องกันโปรแกรมเช่น gnome-terminal หรือเทอร์มินัลอื่น ๆ จากการบันทึกคีย์เท่านั้นหากคุณ จำกัด ผู้ใช้มาตรฐานให้รันตัวบันทึกคีย์ใด ๆ หรือถ้าคุณหยุด / หยุดกระบวนการล็อกคีย์
ต่อไปฉันจะแสดงให้คุณเห็นว่าคุณสามารถทำสิ่งเหล่านี้ได้อย่างไรในกรณีที่มีxinputคำสั่ง แต่สามารถใช้วิธีการเดียวกันกับตัวบันทึกคีย์อื่น ๆ ได้ ถ้าใช้ตัดไม้ที่สำคัญคำสั่งก็ไม่จำเป็นต้องใช้วิธีการที่อยู่กับมันนานเท่าที่คุณใช้มันเมื่อxinputxinput
1. จำกัด ผู้ใช้มาตรฐานให้ใช้xinputคำสั่ง
คุณสามารถจำกัด ผู้ใช้มาตรฐานให้ใช้xinputคำสั่งโดยใช้คำสั่งต่อไปนี้:
sudo chmod go-x /usr/bin/xinput
2. จำกัด ผู้ใช้มาตรฐานที่จะใช้xinputคำสั่งด้วยtest-xi2อาร์กิวเมนต์
คุณสามารถจำกัด ผู้ใช้มาตรฐานให้ใช้xinputคำสั่งด้วยการtest-xi2โต้แย้งโดยเขียน wrapper สำหรับคำสั่งนี้ หากต้องการทำสิ่งนี้ให้ไปที่เทอร์มินัลแล้วทำตามคำแนะนำด้านล่าง:
รับสิทธิ์รูท:
sudo -i
ย้ายxinputไฟล์ในไดเร็กทอรีอื่นซึ่งไม่ได้อยู่ใน PATH ของผู้ใช้ (ตัวอย่าง/opt):
mv /usr/bin/xinput /new/path/to/xinput
สร้าง wrapper ของคุณสำหรับ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
บันทึกไฟล์และปิด
กำหนดให้ wrapper ใหม่ทำงานได้:
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]
หากคุณไม่ทราบวิธีการตรวจหาวิธีการตรวจสอบ keylogger ที่ใช้งานอยู่ในระบบของคุณดู:
วิธีการเหล่านี้อาจไม่ใช่วิธีแก้ปัญหาที่ดีที่สุด แต่ฉันหวังว่าจะให้แนวคิดเกี่ยวกับสิ่งที่คุณสามารถทำได้ ...