Eu tenho um erro em que as permissões /dev/input/event*
estão incorretas; portanto, quando eu uso o Mumble , o aplicativo não consegue detectar as teclas pressionadas. Se eu executar o seguinte comando, ele "corrige" o problema, mas eu gostaria de uma correção permanente.
sudo chmod a+r /dev/input/event/*
O que determina as permissões /dev/input/event*
e como faço para defini-las permanentemente?
permissions
popey
fonte
fonte
/dev/input/event/*
, estará essencialmente dando a todos acesso para cheirar seu teclado, por exemplo, senhas digitadas. Em um sistema de usuário único, isso pode não importar muito, mas mesmo em um sistema de usuário único, geralmente usamos os usuários do sistema como uma camada extra de segurança, caso algum componente seja comprometido, e fornecendo, por exemplo,nobody
acesso do usuário ao teclado fluxo de entrada você está enfraquecendo essa proteção. Embora isso possa "consertar" o Mumble, não é uma solução geral apropriada para o seu problema. Deve haver uma maneira melhor./dev/input
estão incorretas e qual é a propriedade e as permissões atualmente (talvez com a saída dels -l
)? O problema é que oinput
grupo não tem permissões de leitura (ou que não é o proprietário do grupo)? No meu sistema, os arquivos de eventos têmroot:input
propriedade e os usuários e os proprietários do grupo podem ler deles. Se você não tiver isso, talvez deva tentar configurá-lo dessa maneira, em vez de deixar que todos os leiam. Se você fazer tem isso, pode ser suficiente para Mumble para correr com os poderes doinput
grupo.Respostas:
Uma maneira mais flexível de gerenciar a permissão nos arquivos é usar a ACL .
Se você realmente precisar tornar isso permanente, poderá usar as regras do udev que o definem para o seu dispositivo de entrada de eventos
adicione um arquivo /etc/udev/rules.d/99-userdev-input.rules com:
você pode verificar a permissão das ACLs com
fonte
Não sei o que inicialmente define as permissões dos dispositivos de caracteres / dev / input / event *
mas sei que você pode alterar essas permissões com um software que esteja no seu sistema por padrão como parte do coreutils. consulte o comando
man mknod
.As permissões dos meus dispositivos de eventos são:
Aqui estão alguns exemplos de uso:
se você precisar de mais informações para decidir sobre números maiores e menores, veja aqui
Agora, você diz que as permissões estão erradas. Então, algo deve estar definindo-os erradamente, e isso deve ser executado como raiz. O mknod pode ser usado para criar um dispositivo, mas o mkdev também. convém consultar as permissões de quaisquer ações padrão para mkdev e mknod.
Como nos meus exemplos: / dev / input / event0 tem permissões crw-rw, mas as permissões padrão de lolwat foram definidas como crw-r - r--
Tenho alguma incerteza, se o tipo de dispositivo determina as permissões originais. Você pode experimentar isso para descobrir.
Aqui está outro link para mais informações sobre mknod
fonte
Basicamente, você precisaria adicionar um arquivo
/etc/udev/rules.d/
(você poderia nomear algo como75-input-events.conf
)E adicione linhas
KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"
para cada evento nesse arquivo, onde x é o número. Por exemplo, eu tenho eventos de 0 a 9, então eu pessoalmente faria por cada um deles. A última resposta neste tópico sugere que você poderia ter adicionadoKERNEL==event*
(ou seja, com curinga) também.fonte
Minha sugestão é que você instale o aplicativo input-utils
Esta é uma coleção de utilitários que são úteis ao trabalhar com a camada de entrada do kernel do Linux (versão 2.6 e posterior). Estão incluídos utilitários para listar os dispositivos de entrada conhecidos pelo kernel, mostrar os eventos de entrada recebidos por um dispositivo e consultar ou modificar mapas do teclado.
O comando de interesse é:
Despeja todos os dispositivos de entrada e os detalhes associados sobre o dispositivo.
Pode-se observar eventos de entrada usando o comando, especificando o enésimo número do dispositivo:
É possível despejar o mapeamento do teclado de um dispositivo de evento específico usando o comando, especificando o número de dispositivo Nésimo:
Com essas ferramentas, pode-se depurar um sistema para ver se as entradas geram os códigos de eventos esperados e, portanto, ajudar a resolver problemas, como por que as chaves não funcionam ou são mapeadas incorretamente.
O Udev é o gerenciador de dispositivos do kernel do Linux. Ele gerencia nós de dispositivo em / dev e lida com todas as ações de espaço do usuário ao adicionar ou remover dispositivos.
O Evdev é uma interface genérica de eventos de entrada no kernel do Linux, que generaliza os eventos de entrada brutos dos drivers de dispositivo e os disponibiliza através de dispositivos de caracteres no
/dev/input/
diretório.Toda vez que ocorre uma alteração na estrutura do dispositivo, o kernel emite um evento que é captado pelo udev. O udev segue as regras declaradas nos diretórios /etc/udev/rules.d, /run/udev/rules.d e /lib/udev/rules.d.
Com base nas informações contidas no evento, ele encontra a regra ou regras necessárias para acionar e executa as ações necessárias.
Essas ações podem criar ou excluir arquivos de dispositivo, mas também podem acionar o carregamento de arquivos de firmware específicos na memória do kernel.
fonte
Em uma execução de terminal:
Desça até a linha que diz "exit 0" e, na linha acima, digite:
Pressione Ctrl + x para sair disso. Ele perguntará se você deseja salvar. Aperte y. Ele perguntará o que salvar como. Basta pressionar Enter.
Agora, esse comando deve iniciar a cada inicialização e, assim, conceder permissões para essa pasta. O arquivo /etc/rc.local possui privilégios de root automaticamente, portanto você não precisará digitar uma senha para fazer isso.
fonte