J'ai un bug où les autorisations /dev/input/event*
sont incorrectes, donc lorsque j'utilise Mumble , l'application ne peut pas détecter les pressions sur les touches. Si j'exécute la commande suivante, cela «résout» le problème, mais j'aimerais un correctif permanent.
sudo chmod a+r /dev/input/event/*
Qu'est-ce qui détermine les autorisations /dev/input/event*
et comment les définir définitivement?
permissions
popey
la source
la source
/dev/input/event/*
vous autorisez essentiellement tout le monde à flairer votre clavier, par exemple les mots de passe que vous saisissez. Sur un système mono-utilisateur, cela peut ne pas être très important, mais même sur un système mono-utilisateur, nous utilisons généralement les utilisateurs du système comme une couche de sécurité supplémentaire au cas où un composant serait compromis, et en donnant par exemple à l'nobody
utilisateur l'accès à votre clavier. flux d'entrée vous affaiblissez cette protection. Bien que cela puisse "corriger" Mumble, ce n'est pas une solution générale appropriée à votre problème. Il devrait y avoir une meilleure façon./dev/input
sont incorrectes, et sur la propriété et les autorisations actuellement (peut-être avec la sortie dels -l
)? Le problème est-il que leinput
groupe n'a pas d'autorisations de lecture (ou qu'il n'est pas le propriétaire du groupe)? Sur mon système, les fichiers d'événements sontroot:input
propriétaires et les propriétaires d'utilisateurs et de groupes peuvent les lire. Si vous ne l'avez pas, vous devriez peut-être essayer de le configurer de cette façon plutôt que de laisser tout le monde les lire. Si vous n'avez cela, il peut être suffisant pour Mumble pour fonctionner avec les puissances du groupe.input
Réponses:
Une manière plus flexible de gérer les autorisations sur les fichiers consiste à utiliser ACL .
Si vous avez vraiment besoin de le rendre permanent, vous pouvez utiliser des règles udev qui le définissent pour votre périphérique d'entrée d'événement
ajoutez un fichier /etc/udev/rules.d/99-userdev-input.rules avec:
vous pouvez vérifier l'autorisation des ACL avec
la source
Je ne sais pas ce qui définit initialement les autorisations des périphériques de caractères / dev / input / event *
mais, je sais que vous pouvez modifier ces autorisations avec un logiciel qui est sur votre système par défaut dans le cadre de coreutils. voir la commande
man mknod
.Les autorisations de mes appareils d'événement sont:
voici quelques exemples d'utilisation:
si vous avez besoin de plus d'informations pour décider des nombres majeurs et mineurs, regardez ici
Maintenant, vous dites que les autorisations sont incorrectes. Donc, quelque chose doit les mettre mal, et cette chose, doit fonctionner en tant que root. mknod pourrait être utilisé pour créer un périphérique, mais mkdev pourrait également. vous voudrez peut-être examiner les autorisations de toutes les actions par défaut pour mkdev et mknod.
Comme dans mes exemples: / dev / input / event0 a les autorisations crw-rw, mais les autorisations par défaut de lolwat ont été définies sur crw-r - r--
J'ai une certaine incertitude, si le type d'appareil dicte les autorisations d'origine.Vous pouvez l'expérimenter pour le savoir.
Voici un autre lien pour plus d'informations sur mknod
la source
Fondamentalement, vous devez ajouter un fichier
/etc/udev/rules.d/
(vous pouvez le nommer quelque chose comme75-input-events.conf
)Et ajoutez des lignes
KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"
pour chaque événement dans ce fichier, où x est le nombre. Par exemple, j'ai des événements 0 à 9, donc je le ferais personnellement pour chacun d'eux. La dernière réponse sur ce fil suggère que vous auriez pu ajouterKERNEL==event*
(c'est-à-dire avec un caractère générique) aussi.la source
Ma suggestion est d'installer les utilitaires d'entrée d'application
Il s'agit d'une collection d'utilitaires qui sont utiles lorsque vous travaillez avec la couche d'entrée du noyau Linux (version 2.6 et ultérieure). Sont inclus des utilitaires pour répertorier les périphériques d'entrée connus du noyau, afficher les événements d'entrée reçus par un périphérique et interroger ou modifier les mappages de clavier.
La commande d'intérêt est:
Il vide tous les périphériques d'entrée et les détails associés sur le périphérique.
On peut observer les événements d'entrée en utilisant la commande, en spécifiant le Nième numéro de périphérique:
On peut ensuite vider le mappage du clavier d'un périphérique d'événement particulier à l'aide de la commande, en spécifiant le Nième numéro de périphérique:
Avec ces outils, on peut déboguer un système pour voir si les entrées génèrent les codes d'événement attendus et donc aider à trier les problèmes tels que pourquoi les clés ne fonctionnent pas ou sont mappées de manière incorrecte.
Udev est le gestionnaire de périphériques pour le noyau Linux. Il gère les nœuds de périphérique dans / dev et gère toutes les actions de l'espace utilisateur lors de l'ajout ou de la suppression de périphériques.
Evdev est une interface générique d'événement d'entrée dans le noyau Linux qui généralise les événements d'entrée bruts des pilotes de périphérique et les rend disponibles via des périphériques de caractères dans le
/dev/input/
répertoire.Chaque fois qu'un changement se produit dans la structure du périphérique, le noyau émet un uevent qui est capté par udev. udev suit ensuite les règles déclarées dans les répertoires /etc/udev/rules.d, /run/udev/rules.d et /lib/udev/rules.d.
Sur la base des informations contenues dans uevent, il trouve la ou les règles dont il a besoin pour se déclencher et effectue les actions requises.
Ces actions peuvent être la création ou la suppression de fichiers de périphérique, mais peuvent également déclencher le chargement de fichiers de firmware particuliers dans la mémoire du noyau.
la source
Dans une exécution de terminal:
Descendez jusqu'à la ligne qui dit "exit 0" et dans une ligne au-dessus, tapez:
Appuyez sur Ctrl + x pour quitter cela. Il vous demandera si vous souhaitez enregistrer. Appuyez sur y. Il vous demandera quoi enregistrer sous. Appuyez simplement sur Entrée.
Maintenant, cette commande devrait démarrer à chaque démarrage et vous donner ainsi des autorisations sur ce dossier. Le fichier /etc/rc.local dispose automatiquement des privilèges root, vous n'aurez donc pas besoin d'entrer un mot de passe pour ce faire.
la source