2012-11-04 27 views
7

Trên một chương trình Linux, trên bàn điều khiển (như không có xorg, vv), tôi đang sử dụng/dev/input/event * để đọc bàn phím và chuột, tuy nhiên tôi cần phải root để có thể đọc chúng. Có một hình thức thay thế để đọc những thứ mà không cần quyền root (mà không cần phải thay đổi permisons và cấu hình tập tin, vv)?Nguyên liệu đầu vào Linux không có quyền root?

Tôi hiểu tại sao nó thực hiện điều đó theo mặc định không cần phải giải thích điều đó.

+1

Bạn sẽ luôn cần có quyền root để thực hiện việc này. Nếu không, một bàn phím logger/sniffer/spy có thể được có thể. Và Unix được thiết kế để trở thành một hệ thống an toàn, đa người dùng ... –

Trả lời

6

Kiểm tra xem nhóm tệp thiết bị thuộc về nhóm nào. Ví dụ: tại đây tôi nhận được:

 
$ ls -l /dev/input/ 
... 
crw-rw---- 1 root plugdev 13, 64 Nov 4 18:01 event0 
crw-rw---- 1 root plugdev 13, 65 Nov 4 18:01 event1 
crw-rw---- 1 root plugdev 13, 66 Nov 4 18:01 event2 
crw-rw---- 1 root plugdev 13, 67 Nov 4 18:01 event3 
crw-rw---- 1 root plugdev 13, 68 Nov 4 18:01 event4 
... 

Người dùng thực thi chương trình của bạn cần nằm trong nhóm plugdev trên hệ thống này. Một cái gì đó tương tự có lẽ là trường hợp trên hệ thống của bạn.

Nếu bạn đang yêu cầu cách phá vỡ điều đó (đọc hoặc ghi vào thiết bị mà không có trong nhóm), thì không. Điều đó rõ ràng sẽ đánh bại mục đích bảo mật mặc dù nhóm người dùng.

Cách thay thế để đọc thiết bị sự kiện trực tiếp sẽ là sử dụng API không gian người dùng thích hợp thay thế. Ví dụ, để đọc bàn phím bạn sẽ sử dụng ncurses, và để đọc con chuột bạn sẽ sử dụng GPM.

7

vâng, có thể bằng cách tạo ra một quy tắc udev, thấy điều này HowTo

Ví dụ như là người chủ, tạo /etc/udev/rules.d/99-input.rules file:

KERNEL == "sự kiện *", NAME = "đầu vào /% k", MODE = "660", GROUP = "đầu vào"

Lưu ý: có thể bạn sẽ cần phải tạo nhóm "đầu vào" đầu tiên.

+1

Vâng, bạn cần root để tạo quy tắc udev. – theomega

+0

@theomega có tất nhiên, nhưng đó chỉ là một lần và nó tốt hơn nhiều so với thay đổi chế độ. – iabdalkader

Các vấn đề liên quan