Правила udev не различают

Контекст SELinux хранится в расширенных атрибутах файла ( xattr , атрибут man 5 ). Инструменты для работы с ними доступны в пакете core / attr .

Атрибуты, включая контекст SELinux, можно получить с помощью getfattr . Однако есть предостережение: по умолчанию getfattr перечисляет только атрибуты пользователя . пространство имен; а нужный нам атрибут selinux находится в пространстве имен security . Поэтому нам нужно передать параметр -m - , чтобы запросить атрибуты для всех пространств имен ( -d - это сбросить значения, а также имена):

$ getfattr -m - -d bin/sh
# file: bin/sh
security.selinux="u:object_r:system_file:s0"

Чтобы изменить контекст selinux, я использовал Инструмент setfattr , для которого требуются привилегии суперпользователя:

$ sudo setfattr -n security.selinux -v u:object_r:shell_exec:s0 bin/sh
$ getfattr -m - -d bin/sh
# file: bin/sh
security.selinux="u:object_r:shell_exec:s0"
4
29.12.2016, 07:21
2 ответа

Запустив sudo udevadm control --log-priority=info, затем посмотрев вывод tail -f /var/log/syslog, я заметил несколько ошибок.

Jan 23 21:22:05 raspberrypi systemd-udevd[1587]: invalid key/value pair in file /etc/udev/rules.d/80-arduinouno.rules on line 1, starting at character 17 ('\n') Jan 23 21:22:05 raspberrypi systemd-udevd[1587]: invalid key/value pair in file /etc/udev/rules.d/80-arduinouno.rules on line 2, starting at character 50 ('\n') Jan 23 21:22:05 raspberrypi systemd-udevd[1587]: invalid key/value pair in file /etc/udev/rules.d/80-arduinouno.rules on line 3, starting at character 12 ('\n') Jan 23 21:22:05 raspberrypi systemd-udevd[1587]: invalid key/value pair in file /etc/udev/rules.d/80-arduinouno.rules on line 4, starting at character 23 ('\n')

и

Jan 23 21:23:01 raspberrypi systemd-udevd[1646]: unknown key 'ENV(ID_SERIAL_SHORT)' in /etc/udev/rules.d/90-neatolidar.rules:1
Jan 23 21:23:01 raspberrypi systemd-udevd[1646]: invalid rule '/etc/udev/rules.d/90-neatolidar.rules:1'
Jan 23 21:23:01 raspberrypi systemd-udevd[1646]: invalid key/value pair in file /etc/udev/rules.d/90-neatolidar.rules on line 2, starting at character 77 ('\n') Jan 23 21:23:01 raspberrypi systemd-udevd[1646]: invalid key/value pair in file /etc/udev/rules.d/90-neatolidar.rules on line 3, starting at character 36 ('\n')

Из этого я сделал вывод, что (1) мое правило ENV(ID_SERIAL_SHORT) не работает, и (2) у меня не должно быть новых строк. Поэтому я перешел на следующие однострочные файлы .rules:

/etc/udev/rules.d/80-arduinouno.rules:

SUBSYSTEM=="tty", ATTRS{idProduct}=="7523", ATTRS{idVendor}=="1a86", MODE="0666", OWNER="pi", GROUP="pi", SYMLINK+="arduinouno"

and /etc/udev/rules.d/90-neatolidar. rules:

SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ATTRS{serial}=="AL01OTZS", MODE="0666", OWNER="pi", GROUP="pi", SYMLINK+="neatolidar"

После перезагрузки (или просто sudo service udev restart и/или sudo udevadm control --reload), это, кажется, работает.

1
27.01.2020, 20:57

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

Кроме того: я использую следующий сценарий bash для перезагрузки моих правил udev и повторного запуска, поэтому мне даже не нужно отключать и повторно подключать устройство:

#!/bin/bash

sudo udevadm control --reload-rules
sudo udevadm trigger
2
27.01.2020, 20:57

Теги

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