Tengo un error en el que los permisos /dev/input/event*
son incorrectos, por lo que cuando uso Mumble , la aplicación no puede detectar las pulsaciones de teclas. Si ejecuto el siguiente comando, "soluciona" el problema, pero me gustaría una solución permanente.
sudo chmod a+r /dev/input/event/*
¿Qué determina los permisos /dev/input/event*
y cómo los configuro permanentemente?
permissions
papa
fuente
fuente
/dev/input/event/*
, esencialmente le está dando a todos acceso para oler su teclado, por ejemplo, las contraseñas que escriba. En un sistema de un solo usuario, esto podría no importar tanto, pero incluso en un sistema de un solo usuario, generalmente usamos a los usuarios del sistema como una capa adicional de seguridad en caso de que algún componente se vea comprometido, y al dar, por ejemplo, elnobody
acceso del usuario a su teclado flujo de entrada está debilitando esta protección. Si bien esto podría "arreglar" Mumble, no es una solución general adecuada para su problema. Debería haber una mejor manera./dev/input
están mal y cuál es la propiedad y los permisos actualmente (quizás con la salida dels -l
)? ¿El problema es que elinput
grupo no tiene permisos de lectura (o que no es el propietario del grupo)? En mi sistema, los archivos de eventos tienenroot:input
propiedad y tanto los usuarios como los propietarios de los grupos pueden leerlos. Si no tiene esto, tal vez debería intentar configurarlo de esa manera en lugar de dejar que todos los lean. Si hacer tener esto, puede ser suficiente para Mumble para funcionar con las potencias delinput
grupo.Respuestas:
Una forma más flexible de administrar los permisos en los archivos es usar ACL .
Si realmente necesita hacer esto permanente, puede usar reglas udev que lo establezcan para su dispositivo de entrada de eventos
agregue un archivo /etc/udev/rules.d/99-userdev-input.rules con:
puede verificar el permiso de ACL con
fuente
No sé qué establece inicialmente los permisos de los dispositivos de caracteres / dev / input / event *
pero sé que puede cambiar esos permisos con un software que está en su sistema de forma predeterminada como parte de coreutils. consulte el comando
man mknod
.Los permisos de mis dispositivos de eventos son:
Aquí hay algunos ejemplos de uso:
si necesita más información sobre cómo decidir sobre números mayores y menores, mire aquí
Ahora, usted dice que los permisos son incorrectos. Entonces, algo debe estar configurando mal, y esa cosa, debe ejecutarse como root. mknod podría usarse para crear un dispositivo, pero mkdev también podría. es posible que desee ver los permisos de cualesquiera que sean las acciones predeterminadas para mkdev y mknod.
Como en mis ejemplos: / dev / input / event0 tiene permisos crw-rw, pero los permisos predeterminados de lolwat se establecieron en crw-r - r--
Tengo cierta incertidumbre sobre si el tipo de dispositivo dicta los permisos originales. Puede experimentar con esto para averiguarlo.
Aquí hay otro enlace para más información sobre mknod
fuente
Básicamente, necesitaría agregar un archivo
/etc/udev/rules.d/
(podría llamarlo así75-input-events.conf
)Y agregue líneas
KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"
para cada evento en ese archivo, donde x es el número. Por ejemplo, tengo eventos del 0 al 9, por lo que personalmente lo haría para cada uno de ellos. La última respuesta en este hilo sugiere que también podría haber agregadoKERNEL==event*
(es decir, con comodín).fuente
Mi sugerencia es que instales la aplicación input-utils
Esta es una colección de utilidades que son útiles cuando se trabaja con la capa de entrada del kernel de Linux (versión 2.6 y posterior). Se incluyen utilidades para enumerar los dispositivos de entrada conocidos por el núcleo, mostrar los eventos de entrada que recibe un dispositivo y consultar o modificar los mapas del teclado.
El comando de interés es:
Descarta todos los dispositivos de entrada y los detalles asociados sobre el dispositivo.
Se pueden observar eventos de entrada usando el comando, especificando el enésimo número de dispositivo:
Luego se puede volcar el mapeo del teclado de un dispositivo de evento particular usando el comando, especificando el enésimo número de dispositivo:
Con estas herramientas, se puede depurar un sistema para ver si las entradas generan los códigos de eventos esperados y, por lo tanto, ayudan a resolver problemas como por qué las claves no funcionan o se asignan incorrectamente.
Udev es el administrador de dispositivos para el kernel de Linux. Administra nodos de dispositivos en / dev y maneja todas las acciones de espacio de usuario al agregar o eliminar dispositivos.
Evdev es una interfaz de eventos de entrada genérica en el kernel de Linux. Generaliza los eventos de entrada sin formato de los controladores de dispositivos y los hace disponibles a través de dispositivos de caracteres en el
/dev/input/
directorioCada vez que ocurre un cambio dentro de la estructura del dispositivo, el núcleo emite un evento que es recogido por udev. Luego, udev sigue las reglas declaradas en los directorios /etc/udev/rules.d, /run/udev/rules.d y /lib/udev/rules.d.
En función de la información contenida en el evento, encuentra la regla o reglas que necesita para desencadenar y realiza las acciones necesarias.
Estas acciones pueden ser crear o eliminar archivos del dispositivo, pero también pueden activar la carga de archivos de firmware particulares en la memoria del kernel.
fuente
En una ejecución de terminal:
Vaya a la línea que dice "salir 0" y en una línea arriba escriba:
Presiona Ctrl + x para salir de eso. Le preguntará si desea guardar. Dale a y. Te preguntará qué guardar como. Solo presiona Enter.
Ahora, ese comando debería iniciarse en cada arranque y, por lo tanto, otorgarle permisos a esa carpeta. El archivo /etc/rc.local tiene automáticamente privilegios de root, por lo que no necesitará ingresar una contraseña para hacerlo.
fuente