Như những người khác đã nói ở đây, không thể chỉ bảo vệ một chương trình như gnome-terminal hoặc thiết bị đầu cuối khác khỏi việc ghi nhật ký khóa, chỉ khi bạn hạn chế người dùng chuẩn thực hiện bất kỳ trình ghi nhật ký khóa nào hoặc nếu bạn dừng / tạm dừng bất kỳ quy trình ghi nhật ký khóa nào.
Tiếp theo tôi sẽ chỉ cho bạn cách bạn có thể thực hiện những điều này trong trường hợp xinputlệnh, nhưng các phương thức tương tự có thể được sử dụng cho bất kỳ trình ghi nhật ký khóa nào khác. Nếu một trình ghi nhật ký khóa sử dụng xinputlệnh, thì không cần thiết phải áp dụng phương thức đó miễn là bạn áp dụng nó xinput.
1. Hạn chế người dùng chuẩn sử dụng xinputlệnh
Bạn có thể hạn chế người dùng chuẩn sử dụng xinputlệnh bằng lệnh sau:
sudo chmod go-x /usr/bin/xinput
2. Hạn chế người dùng chuẩn sử dụng xinputlệnh với test-xi2đối số
Bạn có thể hạn chế người dùng chuẩn sử dụng xinputlệnh với test-xi2đối số bằng cách viết trình bao bọc cho lệnh này. Để làm điều này, đi trong thiết bị đầu cuối và làm theo hướng dẫn dưới đây:
Nhận quyền root:
sudo -i
 
Di chuyển xinputtệp trong thư mục khác không có trong bất kỳ PATH nào của người dùng (ví dụ /opt):
mv /usr/bin/xinput /new/path/to/xinput
 
Tạo trình bao bọc của bạn cho xinputlệnh trong /usr/bin:
gedit /usr/bin/xinput
Thêm đoạn script sau vào bên trong:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
    echo "`basename $0` $@: Permission denied"
else
    /new/path/to/xinput $@
fi
Lưu file và đóng nó lại.
 
Làm cho trình bao bọc mới thực thi:
chmod +x /usr/bin/xinput
 
Mặc dù phương thức đầu tiên là an toàn, sử dụng phương pháp thứ hai, người dùng vẫn có thể phá vỡ nó bằng cách gọi xinputtrực tiếp bản gốc nếu anh ta biết vị trí mới của nó.
3. Dừng / tạm dừng bất kỳ xinputquá trình
Bạn có thể dừng hoặc tạm dừng bất kỳ xinputquy trình nào trước khi nhập mật khẩu hoặc bất cứ điều gì khác mà bạn không muốn đăng nhập. Để thực hiện việc này, hãy thêm chức năng bash sau vào cuối ~/.bashrctệp của bạn :
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
}
Bây giờ, sau khi bạn mở lại thiết bị đầu cuối của mình, bất cứ lúc nào bạn muốn, sử dụng chức năng này, bạn có thể:
dừng / hủy tất cả các xinputquy trình:
processof xinput stop
 
tạm dừng tất cả các xinputquy trình:
processof xinput pause
 
tiếp tục tất cả các xinputquy trình:
processof xinput continue
 
Trên thực tế, với chức năng này, bạn có thể dừng / tạm dừng bất kỳ quy trình nào bạn muốn trước đó để làm điều gì đó (chẳng hạn như nhập mật khẩu):
processof [process_name] [stop|pause|continue]
Nếu bạn không biết cách phát hiện cách phát hiện keylogger đang hoạt động trên hệ thống của mình, hãy xem:
Những phương pháp này có thể không phải là giải pháp tốt nhất, nhưng tôi hy vọng sẽ cho bạn ý tưởng về những gì bạn có thể làm ...