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 xinput
lệ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 xinput
lệ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 xinput
lệnh
Bạn có thể hạn chế người dùng chuẩn sử dụng xinput
lệ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 xinput
lệnh với test-xi2
đối số
Bạn có thể hạn chế người dùng chuẩn sử dụng xinput
lệ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 xinput
tệ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 xinput
lệ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 xinput
trự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ỳ xinput
quá trình
Bạn có thể dừng hoặc tạm dừng bất kỳ xinput
quy 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 ~/.bashrc
tệ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 xinput
quy trình:
processof xinput stop
tạm dừng tất cả các xinput
quy trình:
processof xinput pause
tiếp tục tất cả các xinput
quy 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 ...