Ich habe einen Fehler, bei dem die Berechtigungen /dev/input/event*
falsch sind. Wenn ich also Mumble verwende , kann die Anwendung keine Tastendrücke erkennen. Wenn ich den folgenden Befehl ausführe, wird das Problem "behoben", aber ich möchte eine dauerhafte Lösung.
sudo chmod a+r /dev/input/event/*
Was bestimmt die Berechtigungen /dev/input/event*
und wie setze ich sie dauerhaft?
permissions
Papst
quelle
quelle
/dev/input/event/*
Wesentlichen jedem Zugriff zum Schnüffeln Ihrer Tastatur gewähren, z. B. von Ihnen eingegebene Kennwörter. Auf einem Einzelbenutzersystem ist dies möglicherweise nicht so wichtig, aber selbst auf einem Einzelbenutzersystem verwenden wir Systembenutzer im Allgemeinen als zusätzliche Sicherheitsebene für den Fall, dass eine Komponente kompromittiert wird, und indem wir beispielsweise demnobody
Benutzer Zugriff auf Ihre Tastatur gewähren Eingabestream Sie schwächen diesen Schutz. Dies könnte Mumble zwar "beheben", ist jedoch keine geeignete allgemeine Lösung für Ihr Problem. Es sollte einen besseren Weg geben./dev/input
falsch sind und wie die Eigentumsrechte und Berechtigungen derzeit sind (möglicherweise mit der Ausgabe vonls -l
)? Ist das Problem, dass dieinput
Gruppe keine Leseberechtigungen hat (oder dass sie nicht der Gruppeneigentümer ist)? Auf meinem System sind die Ereignisdateienroot:input
Eigentum und sowohl der Benutzer als auch die Gruppenbesitzer können daraus lesen. Wenn Sie dies nicht haben, sollten Sie vielleicht versuchen, es so einzurichten, anstatt es von allen lesen zu lassen. Wenn Sie dies haben, kann es für Mumble ausreichen, mit den Kräften derinput
Gruppe zu rennen .Antworten:
Eine flexiblere Möglichkeit zum Verwalten von Berechtigungen für Dateien ist die Verwendung von ACL .
Wenn Sie dies wirklich dauerhaft machen müssen, können Sie udev-Regeln verwenden, die es für Ihr Ereigniseingabegerät festlegen
Fügen Sie eine Datei /etc/udev/rules.d/99-userdev-input.rules hinzu mit:
Sie können die ACLs-Berechtigung mit überprüfen
quelle
Ich weiß nicht, was anfänglich die Berechtigungen der Zeichengeräte / dev / input / event * festlegt.
Ich weiß jedoch, dass Sie diese Berechtigungen mit einer Software ändern können, die sich standardmäßig als Teil von coreutils auf Ihrem System befindet. siehe den Befehl
man mknod
.Die Berechtigungen meiner Ereignisgeräte sind:
Hier sind einige Anwendungsbeispiele:
Wenn Sie weitere Informationen zur Entscheidung für Dur- und Moll-Nummern benötigen, klicken Sie hier
Sie sagen jetzt, die Berechtigungen sind falsch. Also muss etwas sie falsch setzen, und das Ding muss als root laufen. Mit mknod kann ein Gerät erstellt werden, mit mkdev jedoch auch. Möglicherweise möchten Sie die Berechtigungen der Standardaktionen für mkdev und mknod überprüfen.
Wie in meinen Beispielen: / dev / input / event0 hat crw-rw-Berechtigungen, aber die Standardberechtigungen von lolwat wurden auf crw-r - r-- gesetzt
Ich habe einige Unsicherheiten, ob der Gerätetyp die ursprünglichen Berechtigungen vorschreibt. Sie können damit experimentieren, um dies herauszufinden.
Hier ist ein weiterer Link für weitere Informationen über mknod
quelle
Grundsätzlich müssten Sie eine Datei hinzufügen
/etc/udev/rules.d/
(Sie könnten sie so nennen75-input-events.conf
)Fügen Sie
KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"
dieser Datei Zeilen für jedes Ereignis hinzu, wobei x die Zahl ist. Zum Beispiel habe ich Ereignisse 0 bis 9, also würde ich persönlich für jedes von ihnen tun. Die letzte Antwort auf diesen Thread legt nahe, dass Sie auch hinzugefügt haben könntenKERNEL==event*
(dh mit Platzhalter).quelle
Mein Vorschlag ist, dass Sie die Anwendungseingabe-Utils installieren
Dies ist eine Sammlung von Dienstprogrammen, die nützlich sind, wenn Sie mit der Eingabeebene des Linux-Kernels (Version 2.6 und höher) arbeiten. Enthalten sind Dienstprogramme zum Auflisten der dem Kernel bekannten Eingabegeräte, zum Anzeigen der von einem Gerät empfangenen Eingabeereignisse und zum Abfragen oder Ändern von Tastaturzuordnungen.
Der Befehl von Interesse ist:
Es gibt alle Eingabegeräte und die zugehörigen Details zum Gerät aus.
Mit dem Befehl können Eingabeereignisse beobachtet werden, indem die N-te Gerätenummer angegeben wird:
Mit dem Befehl kann dann die Tastaturzuordnung eines bestimmten Ereignisgeräts ausgegeben werden, indem die N-te Gerätenummer angegeben wird:
Mit diesen Tools kann ein System debuggt werden, um festzustellen, ob Eingaben die erwarteten Ereigniscodes generieren, und um Probleme zu lösen, z. B. warum Schlüssel nicht funktionieren oder falsch zugeordnet sind.
Udev ist der Geräte-Manager für den Linux-Kernel. Es verwaltet Geräteknoten in / dev und verarbeitet alle Benutzerbereichsaktionen beim Hinzufügen oder Entfernen von Geräten.
Evdev ist eine generische Eingabeereignisschnittstelle im Linux-Kernel. Sie verallgemeinert rohe Eingabeereignisse von Gerätetreibern und stellt sie über Zeichengeräte im
/dev/input/
Verzeichnis zur Verfügung.Jedes Mal, wenn eine Änderung innerhalb der Gerätestruktur auftritt, gibt der Kernel ein Ereignis aus, das von udev erfasst wird. udev folgt dann den Regeln, die in den Verzeichnissen /etc/udev/rules.d, /run/udev/rules.d und /lib/udev/rules.d deklariert sind.
Basierend auf den im Ereignis enthaltenen Informationen findet es die Regel oder Regeln, die es auslösen muss, und führt die erforderlichen Aktionen aus.
Diese Aktionen können das Erstellen oder Löschen von Gerätedateien sein, aber auch das Laden bestimmter Firmware-Dateien in den Kernelspeicher auslösen.
quelle
In einem Terminallauf:
Gehen Sie zu der Zeile mit der Aufschrift "exit 0" und geben Sie in einer Zeile darüber Folgendes ein:
Drücken Sie Strg + x, um das zu beenden. Sie werden gefragt, ob Sie speichern möchten. Hit y. Sie werden gefragt, als was Sie speichern möchten. Drücken Sie einfach die Eingabetaste.
Dieser Befehl sollte nun bei jedem Start gestartet werden und Ihnen somit Berechtigungen für diesen Ordner erteilen. Die Datei /etc/rc.local verfügt automatisch über Root-Rechte, sodass Sie hierfür kein Kennwort eingeben müssen.
quelle