2012-11-04 13 views
7

W programie linuksowym, na konsoli (jak w Xorg itp.) Używam/dev/input/event * do odczytu klawiatury i myszy, jednak muszę być rootem, aby móc je odczytać. Czy istnieje alternatywna forma czytania tych rzeczy bez konieczności posiadania uprawnień roota (bez konieczności zmieniania pozwoleń i plików konfiguracyjnych itp.)?Linux nieprzetworzone dane wejściowe bez uprawnień roota?

Rozumiem, dlaczego robi to domyślnie, nie trzeba tego wyjaśniać.

+1

Zawsze będziesz musiał mieć uprawnienia root, aby to zrobić. W przeciwnym razie możliwy byłby rejestrator klawiatury/sniffer/szpieg. A Unix został zaprojektowany jako bezpieczny, wieloużytkownikowy system ... –

Odpowiedz

6

Sprawdź, do jakiej grupy należą pliki urządzeń. Na przykład tutaj otrzymuję:

 
$ 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 
... 

Użytkownik wykonujący program musi należeć do grupy plugdev w tym systemie. Coś podobnego jest prawdopodobnie w twoim systemie.

Jeśli pytasz o sposób obejścia tego (czytanie lub pisanie na urządzenie bez bycia w grupie), to nie. To oczywiście pokonałoby cel bezpieczeństwa poprzez grupy użytkowników.

Zamiast bezpośrednio odczytywać urządzenia zdarzeń, należy użyć odpowiedniego interfejsu API przestrzeni użytkownika. Na przykład, aby odczytać klawiaturę, należy użyć ncurses, a do odczytu myszy użyć GPM.

7

tak, jest to możliwe poprzez stworzenie regułę udev, zobacz ten HowTo

Na przykład jako root utwórz /etc/udev/rules.d/99-input.rules plików:

KERNEL == "zdarzenie *", NAZWA = "wejście /% k", MODE = "660", GRUPA = "wejście"

Uwaga: prawdopodobnie konieczne będzie najpierw utworzenie grupy "input".

+1

Cóż, potrzebujesz root'a do stworzenia reguły udev. – theomega

+0

@theomega tak, oczywiście, ale to wystarczy tylko raz i jest o wiele lepiej niż zmiana trybu. – iabdalkader

Powiązane problemy