Что определяет права доступа в / dev?

У меня есть ошибка, когда права на /dev/input/event* неверны, поэтому, когда я использую Mumble , приложение не может обнаружить нажатия клавиш. Если я запускаю следующую команду, это «исправляет» проблему, но я бы хотел навсегда ее исправить.

sudo chmod a+r /dev/input/event/*

Что определяет разрешения для /dev/input/event* и как их постоянно устанавливать?

11
задан 11 April 2015 в 12:53

5 ответов

Мое предложение - то, что Вы устанавливаете вход-utils приложения

sudo -i
apt-get update
apt-get install input-utils

, Это - набор утилит, которые полезны при работе с входным слоем ядра Linux (версия 2.6 и позже). Включенный утилиты, чтобы перечислить устройства ввода данных, известные ядру, показать входные события, которые получены устройством, и запрашивают или изменяют карты клавиатуры.

команда интереса:

sudo -i 
lsinput

Это разгрузило все устройства ввода данных и связанные детали об устройстве.

можно наблюдать входные события с помощью команды specifing Энный номер устройства:

sudo -i
input-events <device number>

можно тогда разгрузить отображение клавиатуры конкретного устройства события с помощью команды specifing Энный номер устройства:

sudo -i
input-kyb <device number>

С этими инструментами можно отладить систему, чтобы видеть, генерируют ли исходные данные ожидаемые коды события и следовательно помогают разобраться в проблемах такой как, почему ключи не работают или отображаются неправильно.

Udev является диспетчером устройств для ядра Linux. Это управляет узлами устройства в/dev и обрабатывает все действия пространства пользователя при добавлении или удалении устройств.

Evdev является универсальным входным интерфейсом события в ядре Linux. Это обобщает необработанные входные события из драйверов устройств и делает их доступными через устройства посимвольного ввода-вывода в /dev/input/ каталог.

Каждый раз, когда изменение происходит в структуре устройства, ядро испускает uevent, который взят udev. udev, тогда следует правилам, как объявлено в/etc/udev/rules.d,/run/udev/rules.d и/lib/udev/rules.d каталогах.

На основе информации, содержавшей в uevent, это находит правило или постановляет, что должно инициировать и выполняет необходимые действия.

Эти действия могут создавать или удалять файлы устройств, но могут также инициировать загрузку конкретных микропрограммных файлов в память ядра.

0
ответ дан 11 April 2015 в 12:53

В выполненном терминале:

sudo нано-b/etc/rc.local

Снижается до строки, которая говорит "выход 0" и в строке выше его тип:

Хит sudo chmod a+r/dev/input/event

Ctrl+x для выхода из этого. Это спросит Вас, если Вы захотите сохранить. Хит y. Это спросит Вас, что сохранить как. Просто хит Входит.

Теперь, та команда должна запустить при каждой начальной загрузке и таким образом дать Вам полномочия той папке./etc/rc.local файл автоматически имеет полномочия пользователя root, таким образом, Вы не должны будете вводить пароль, чтобы сделать это.

0
ответ дан 11 April 2015 в 12:53

В основном необходимо было бы добавить файл в /etc/udev/rules.d/ (Вы могли назвать его чем-то как 75-input-events.conf)

, И добавьте строки KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777" для каждого события в тот файл, где x является числом. Например, у меня есть события 0 до 9, таким образом, я лично сделал бы для каждого из них. Последний ответ на этот поток предполагает, что Вы, возможно, добавили KERNEL==event* (т.е. с подстановочным знаком), также.

1
ответ дан 11 April 2015 в 12:53

Я не знаю то, что первоначально устанавливает полномочия устройств посимвольного ввода-вывода/dev/input/event*

, но, я действительно знаю, что можно изменить те полномочия с программным обеспечением, которое находится в системе по умолчанию, поскольку часть coreutils. видит команду man mknod.

, полномочия моих устройств события:

корень crw-rw----1 ввел 13, 64 14 апреля, 6:39/dev/input/event0

здесь является некоторыми примерами использования:

~$ sudo mknod lolwat c 4 64 
~$ sudo mknod lolwatnow c 4 64  -m 777
~$ ls -l lolwat*
crw-r--r-- 1 root root 4, 64 Apr 14 08:07 lolwat
crwxrwxrwx 1 root root 4, 64 Apr 14 08:08 lolwatnow

при необходимости в большем количестве информации о для выбора главных и незначительных чисел посмотрите здесь

Теперь, Вы говорите, что полномочия являются неправильными. Таким образом, что-то должно устанавливать их неправильно и ту вещь, должен работать как корень. mknod мог использоваться для создания устройства, но mkdev мог также. можно хотеть посмотреть на полномочия того, что действия по умолчанию для mkdev и mknod.

Как в моих примерах:/dev/input/event0 имеет crw-rw полномочия, но полномочия по умолчанию, lolwat были установлены на crw-r - r -

у меня есть некоторая неуверенность, диктует ли тип устройства исходные полномочия. Можно экспериментировать с этим для обнаружения.

Вот другая ссылка для большего количества информации о mknod

2
ответ дан 11 April 2015 в 12:53

Больше гибкий способ управлять разрешением на файлах должно использовать ACL.

sudo setfacl -m u:popey:rw /dev/input/eventx

, Если действительно необходимо сделать это постоянным затем, можно использовать правила udev, которые устанавливают его для устройства ввода событий

, добавляет файл /etc/udev/rules.d/99-userdev-input.rules с:

KERNEL=="event*", SUBSYSTEM=="input", RUN+="/usr/bin/setfacl -m u:popey:rw $env{DEVNAME}"

можно проверить разрешение ACLs с

getfacl /dev/input/event*
5
ответ дан 11 April 2015 в 22:53

Другие вопросы по тегам:

Похожие вопросы: