Etc udev rules d как назвать файл
Перейти к содержимому

Etc udev rules d как назвать файл

  • автор:

Название интерфейса

Приветствую всех!
На машине два встроенных интерфейса. Установил debian 9.8. Один интерфейс называется «eno1», другой «rename3».
Мне всё равно как они называются, только вот беда, при перезапуске «rename3» может неожиданно превратиться в «rename2» со всеми вытекающими. После следующей перезагрузки он может опять стать «rename3».
Помогите победить.

speed_vm
08.05.19 09:19:16 MSK
Deleted
( 08.05.19 09:23:11 MSK )
Ответ на: комментарий от Deleted 08.05.19 09:23:11 MSK

cat: /etc/udev/rules.d/70-persistent-net.rules: Нет такого файла или каталога

speed_vm
( 08.05.19 09:28:40 MSK ) автор топика
Ответ на: комментарий от Deleted 08.05.19 09:23:11 MSK

Этот каталог вообще пустой.

speed_vm
( 08.05.19 09:29:10 MSK ) автор топика

dmidecode -t 41 lspci 

Deleted
( 08.05.19 09:29:24 MSK )
Последнее исправление: Deleted 08.05.19 09:29:34 MSK (всего исправлений: 1)

Ответ на: комментарий от Deleted 08.05.19 09:29:24 MSK

Handle 0x008C, DMI type 41, 11 bytes Onboard Device Reference Designation: ServerEngines Pilot III Type: Video Status: Enabled Type Instance: 1 Bus Address: 0000:03:00.0 Handle 0x008D, DMI type 41, 11 bytes Onboard Device Reference Designation: Intel 82579LM VPRO Type: Ethernet Status: Enabled Type Instance: 1 Bus Address: 0000:00:19.0 Handle 0x008E, DMI type 41, 11 bytes Onboard Device Reference Designation: Intel 82574L Type: Ethernet Status: Enabled Type Instance: 1 Bus Address: 0000:02:00.0 Handle 0x008F, DMI type 41, 11 bytes Onboard Device Reference Designation: PCH Integrated SATA Controller Type: SATA Controller Status: Enabled Type Instance: 1 Bus Address: 0000:00:1f.2
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 Processor Family DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 05) 00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05) 00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5) 00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5) 00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5) 00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) 00:1f.0 ISA bridge: Intel Corporation C204 Chipset Family LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05) 00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430] 01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Как переименовать сетевые интерфейсы при помощи udev-правил

Сегодня мы расскажем, как установить правила udev с дальнейшим переименованием сетевых интерфейсов на виртуальных серверах под управлением ОС Linux.

udev — менеджер устройств в ОС Linux, предназначенный для управления файлами различных устройств в директории /dev и действиями при подключении или отключении периферии.

Нода-устройства. В unix-подобных ОС каталог /dev применяется для хранения файлов, которые называются нодами, и соответствующим подключенным внешним устройствам. Так, ноды используются прикладными приложениями для работы с периферией.

Файлы конфигурации правил

Правила именования подключаемых устройств и возможные дополнительные действия располагаются в файлах конфигурации менеджера, находящихся в каталоге /etc/udev/rules.d и имеющих расширение .rules. Правила занимают строго одну строку, если они начинаются с символа # — это комментарии. Несколько правил в разных файлах могут принадлежать разным устройствам.

Внимание: считывание правил udev из файлов осуществляется в алфавитном порядке, для применения ваших правил до правил по умолчанию следует прописать их в файле с соответствующим названием.

Настройка сетевых интерфейсов

На вашем виртуальном сервере всегда расположено несколько сетевых интерфейсов, предназначенных для выхода в глобальную или локальную сеть. Вы можете просмотреть их имена и настройки параметров, воспользовавшись командой ifconfig:

Ноды интерфейсов по умолчанию не создаются. Проверить их наличие позволяет команда udevadm:
udevadm info -n /sys/class/net/

Пример
udevadm info -n /sys/class/net/ens192

Необходимо создать правило udev для сетевого интерфейса, в нашем примере использован ens192. Далее в каталоге /etc/udev/rules.d надо создать файл с именем 1-user-udev.rules, в который оптимально записывать собственные правила:
touch /etc/udev/rules.d/1-user-udev.rules

С помощью текстового редактора (можно использовать nano) откройте файл для редактирования:
nano /etc/udev/rules.d/1-user-udev.rules

Вставьте эту строку:
KERNEL= , ATTR= , NAME=”удобное для вас имя»

Пример:
KERNEL==»ens192″, ATTR==»00:50:56:01:27:c2″, NAME=»wan»

Внимание: вы можете найти MAC-адрес интерфейса в выводе команды ifconfig справа от параметра HWaddr (на изображении выше подчеркнуто).

После внесенных корректировок отредактируйте файл /etc/networking/interfaces, откройте его с помощью текстового редактора (тот же nano):
nano /etc/network/interfaces

Следует заменить все вхождения имени вашего интерфейса на указанное в параметре NAME
389 160
До:

После:

Перезагрузите сервер, чтобы изменения вступили в силу:
sudo reboot

Затем подключитесь к серверу по ssh и проверьте выполненные корректировки с помощью команды ifconfig:
ifconfig -a

Не нашли ответа на Ваш вопрос? Напишите нам!

sales@cloudlite.ru — вопросы по услугам, оплате, документам и партнерству

Переводы страниц руководства

udev предоставляет каталог динамических устройств, содержащий только файлы для устройств, имеющихся на самом деле. Он создаёт или удаляет файлы устройств в каталоге /dev, или переименовывает из сетевые интерфейсы.

Обычно udev запускается как udevd(8) и принимает события прямо от ядра, если устройство добавлено или удалено из системы.

Если udev принимает событие об устройстве, подходящее к правилам, имеющимся в его настройках, то атрибуты устройства, имеющиеся в sysfs, используются для его идентификации. Подходящие правила, могут предоставлять дополнительную информацию об устройстве или указывать имя файла устройства, несколько ссылок, предписание udev запустить дополнительные программы для обработки события устройства.

НАСТРОЙКА

Все файлы настройки udev находятся в /etc/udev/ и /lib/udev/. Все пустые строки или строки, начинающиеся с ‘#’, игнорируются.

ФАЙЛ НАСТРОЙКИ

udev ожидает главный файл конфигурации в /etc/udev/udev.conf. Он состоит из набора переменных, позволяющих пользователю заменять значения по умолчанию. Могут быть заданы следующие переменные:

udev_root

Указывает место расположения файлов устройств в файловой системе. Значение по умолчанию — /dev.

Приоритет журналирования. Правильными значениями являются числовые приоритеты syslog или их текстовые представления: err, info и debug.

ФАЙЛЫ ПРАВИЛ

Правила udev читаются из файлов, находящихся в каталоге /lib/udev/rules.d/, из особого каталога праивл /lib/udev/rules.d/ и из временного каталога правил /dev/.udev/rules.d/. Все файлы правил сортируются и обрабатываются в алфавитном порядке, вне зависимости от каталога, из которого они взяты. Каждая строка файла правил состоит из по меньшей мере одной пары ключ-значение. Существует два типа ключей — шаблоны и назначения. Если все ключи-шаблоны совпадут с их значениями, применится правило и ключи-назначения зададут назначаемые значения.

Подходящие правила могут задавать имя файла устройства, добавлять ссылки, указывающие на файл устройства, или запускать указанные команды в составе обработки события. Если подходящее правило не найдено, используется имя файла по умолчанию.

Правило может состоять из списка пар ключ-значение, разделённых запятыми. Каждый ключ отдельные операции, зависящие от используемого оператора. Правильными значениями являются:

==

Сравнить на равенство.

Сравнить на не-равенство.

Назначить значение ключу. Ключи, которые представляются списком, сбрасываются, их значением становится единственное указанное значение.

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

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

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

Совпадает с именем произошедшего события.

Совпадает с путём к файлу устройства для данного события.

Совпадает с названием устройства в событии.

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

Совпадает с подсистемой, в которой произошло событие на устройстве.

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

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

Восходящий поиск подходящего имени устройства в пути к устройству.

Восходящий поиск подходящего имени подсистемы в пути к устройству.

Восходящий поиск подходящего названия драйвера в пути к устройству.

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

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

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

Выполнить внешнюю программу. Ключ — истина, если программа завершается с нулевым кодом возврата. Всё событие доступно выполняемой программе в переменных окружения. Вывод программы направляется на стандартный поток вывода, который доступен в ключе RESULT.

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

Большинство полей поддерживают совпадение с шаблонами в стиле shell. Поддерживаются следующие символы шаблонов:

Совпадает с нулём или любым количеством символов.

Совпадает с любым единственным символом.

Совпадает с любым из символов, указанным внутри квадратных скобок. Например, строка с шаблоном ‘tty[SR]’ будет совпадать с ‘ttyS’ или ‘ttyR’. Также шаблоном поддерживаются диапазоны, которые задаются символом ‘-‘. Например, для совпадения с любой цифрой можно использовать шаблон [0-9]. Если первый символ, следующий за ‘[‘ — это ‘!’, совпадают любые символы вне диапазона.

Следующие ключи могут принимать назначаемые значения:

Имя создаваемого файла устройства или имя сетевого интерфейса, в которое он должен быть переименован. Только одно правило может задать имя файла устройства, все последующие правила с ключом NAME будут проигнорированы.

Имя символической ссылки, указывающей на файл устройства. Каждое подходящее правило может добавлять значение ко списку создаваемых символических ссылок, которые будут указывать на файл устройства. Можно указать несколько символических ссылок, азделённых пробелами.

OWNER, GROUP, MODE

Права доступа к файлу устройства. Каждое из указанных значений заменяет значения по-умолчанию, заданные в процессе компиляции.

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

Экспортировать переменную в окружение. В зависимости от типа оператора, этот ключ может использоваться для совпадения со значением переменной окружения.

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

Если указана строка, начинающаяся с socket:путь, все текущие значения событий будут переданы в указанный сокет, в виде такого же сообщения, которое ядро отправляет в uevent. Если первый символ указанного пути является символом @, вместо существующего файла сокета будет использован сокет абстрактного пространства имён.

Именованная метка, на которую можно перейти из GOTO.

Переход к следующей метке, указанной в LABEL, при совпадении имени.

Импорт множества переменных в окружение для обработки события, в зависимости от типа:

program

Выполнить внешнюю программу, указанную в назначении, и импортировать вывод, который должен иметь формат переменных окружения.

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

Импортировать сохранённые ключи из родительского устройства, прочитав базу данных родительского устройства. Значение, присваиваемое IMPORT , используется в качестве фильтра имён импортируемых ключей (в том же стиле, в котором происходит сравнение в shell).

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

Ожидать доступности файла.

Правило и опции устройства:

last_rule

Прекратить применять последующие правила. Последующие правила не будут оказывать какого-либо эффекта.

ignore_device

Полностью проигнорировать данное событие.

ignore_remove

Проигнорировать, а затем — удалить событие для данного устройства. Это можно использовать как временное решение проблем с неработающими драйверами устройств.

link_priority=значение

Указывает приоритет созданных символических ссылок. Устройства с более высоким приоритетом заменяют существующие символические ссылки других устройств. По умолчанию 0.

all_partitions

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

event_timeout=

Количество секунд ожидания завершения действий по обработке события, до собственного завершения.

string_escape=none|replace

Указывает, нужно ли заменять небезопасные символы в имени устройства. Режим замены можно указать с помощью данной опции.

Поля NAME, SYMLINK, PROGRAM, OWNER, GROUP и RUN поддерживают простую подстановку, похожую на ту, которую выполняет printf. Формат символов RUN будет применён после того, как все правила были обработаны, но перед запуском программы. Это позволяет использовать полный набор переменных окружения, совпавших с более ранними правилами. Для всех других полей, подстановка выполняется в процессе обработки правила. Доступны следующие подстановки:

$kernel, %k

Имя, выданное ядром данному устройству.

$number, %n

Номер, выданный ядром данному устройству. Например, ‘sda3’ имеет номер ‘3’.

$devpath, %p

Путь к устройству.

Имя устройства, совпавшее в процессе восходящего поиска в пути к устройству с атрибутами SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

Имя драйвера устройства, совпавшего в процессе восходящего поиска в пути к устройству с атрибутами SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

Значение атрибута устройства, найденное в sysfs, где все ключи в правиле совпали. Если все совпадающие устройства не имеют такого атрибута, будет произведён поиск аттрибута у всех родительских устройств в цепочке. Если атрибут — это символическая ссылка, в качестве значения будет возвращён последний элемент цели символической ссылки.

Значение переменной окружения.

$major, %M

Старший номер, выданный устройству ядром.

$minor, %m

Младший номер, выданный устройству ядром.

$result, %c

Строка, возвращённая внешней программой, вызванной из PROGRAM. Одна часть строки, отделённая пробелом, может быть выбрана указанием номера части в виде атрибута: %c . Если за числом следует символ ‘+’, в результирующую строку будут подставлены эта часть и все, следующие за ней: %c

$parent, %P

Имя файла родительского устройства.

Текущее имя файла устройства. Если имя не было изменено правилом, то это имя устройства, данное ядром.

Список текущих символических ссылок, разделённых пробелами. Имеет значение только в том случае, если оно было назначено предыдущим праивлом или при событии удаления.

$root, %r

Значение udev_root.

$sys, %S

Точка монтирования sysfs.

$tempnode, %N

Имя временно созданного файла устройства, для предоставления доступа к устройству из внешней программы, перед тем как будет создан настоящий файл устройства.

Символ процента — ‘%’.

Символ доллара — ‘$’.

Количество символов, подлежащих замене, можно ограничить, указав значение длины формата. Например, ‘%3s’ вставит только первые три символа атрибута sysfs.

АВТОР

Написано Грегом Кроа-Хартманом (Greg Kroah-Hartman) и Кеем Сиверсом (Kay Sievers) при существенной помощи от Дэна Стеклоффа (Dan Stekloff) и многих других.

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин .

СМОТРИ ТАКЖЕ

udev UDEV (7) Август 2005

Перейти в начало страницы | Раздел 7 | Главный указатель.
Сгенерировано manServer 1.07 из /home/stupin/man/man7/udev.7.gz с использованием макросов man.

UDEV

udev предоставляет системному программному обеспечению события устройств, управляет правами доступа к файлам устройств и может создавать дополнительные символические ссылки в каталоге /dev, или переименовывать сетевые интерфейсы. Ядро обычно просто назначает непредсказуемые имена устройств, основываясь на порядке обнаружения. Смысл символических ссылок и имён сетевых устройств позволяют надёжно идентифицировать устройства, основываясь на их свойствах или текущей конфигурации.

Демон udev, systemd−udevd.service(8), принимает события устройства прямо от ядра, каждый раз при добавлении или удалении устройства из системы или при изменении его состояния. Когда udev принимает событие устройства, оно сравнивается с настроенным набором правил на предмет совпадения различных атрибутов устройства, идентифицирующих его. Совпадающие правила могут предоставлять дополнительную информацию об устройстве, хранящуюся в базе данных udev или используемую для создания осмысленных имён символических ссылок.

Вся обработанная udev информация сохраняется в базе данных udev и отправляется возможным подписчикам на событие. Доступ ко всем сохранённым данным и исходным событиям предоставляется библиотекой libudev.

ФАЙЛЫ ПРАВИЛ

Правила udev читаются из файлов, находящихся в системном каталоге правил /lib/udev/rules.d/, из особого каталога правил /run/udev/rules.d/ и из местного каталога администрирования /etc/udev/rules.d/. Все файлы правил совместно сортируются и обрабатываются в алфавитном порядке, вне зависимости от каталога, из которого они взяты. Однако, файлы с одинаковыми именами заменяют друг друга. Файлы в каталоге /etc имеют наивысший приоритет, файлы в каталоге /run имеют приоритет над файлами с таким же именем из каталога /lib. Это используется чтобы при необходимости заменить системные файлы правил на местные; символические ссылки в каталоге /etc с именем как у файла правил из каталога /lib, указывающие на /dev/null, целиком отключают файл правил. Файлы правил должны иметь расширение .rules, а другие расширения игнорируются.

Каждая строка в файле правил содержит по меньшей мере одну пару ключ−значение. Исключение − пустые строки и строки, начинающиеся с символа «#», которые игнорируются. Есть два вида ключей: сравнения и назначения. Если все сравнивающие ключи совпадают с их значениями, то правило применяется и назначает ключам указанные назначаемые значения.

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

Правило может состоять из списка из одной и более пар ключ−значение, разделённых запятыми. Каждый ключ обладает определённым действием, зависящим от используемого оператора. Правильными операторами являются:

«= margin-left:17%;»>Сравнить на равенство.

«! margin-left:17%;»>Сравнить на неравенство.

» margin-left:17%;»>Назначить значение ключу. Ключи, которые представляются списком, сбрасываются, их значением становится единственное указанное значение.

«+ margin-left:17%;»>Добавляет значение к ключу, который содержит список элементов.

«: margin-left:17%;»>Назначает ключу окончательное значение, запрещая дальнейшие изменения.

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

Совпадает с именем произошедшего события.

Совпадает с путём к файлу устройства для данного события.

Совпадает с названием устройства в событии.

Совпадает с именем узла или сетевого интерфейса. Ключ NAME может использоваться сразу после установки в одном из предыдущих правил.

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

Совпадает с подсистемой, в которой произошло событие на устройстве.

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

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

Восходящий поиск подходящего имени устройства в пути к устройству.

Восходящий поиск подходящего имени подсистемы в пути к устройству.

Восходящий поиск подходящего названия драйвера в пути к устройству.

Восходящий поиск значений атрибутов в sysfs в пути к устройству. Если указано несколько условий совпадения ATTRS, то все они должны совпадать с одним и тем же устройством. Завершающие пробельные символы в значениях атрибутов игнорируются, если указанное подходящее значение само не содержит пробельный символ.

Восходящий поиск подходящей метки устройства в пути к устройству.

Совпадает со значением свойства устройства.

Совпадает с меткой устройства.

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

Выполнить внешнюю программу для определения наличия совпадения. Ключ − истина, если программа завершается успешно. Все свойства устройства доступны выполняемой программе через переменные окружения. Стандартный вывод программы доступен в ключе RESULT.

Может использоваться только для очень быстро работающих интерактивных задач. За деталями обратитесь к RUN.

Совпадение со строкой, возвращённой последним вызовом PROGRAM. Этот ключ может использоваться в том же или в любом более позднем правиле после вызова PROGRAM.

Большинство полей поддерживают совпадение с шаблонами в стиле shell. Поддерживаются следующие символы шаблонов:

Совпадает с нулём или любым количеством символов.

Совпадает с любым единственным символом.

Совпадает с любым из символов, указанным внутри квадратных скобок. Например, строка с шаблоном ´tty[SR]´ будет совпадать с ´ttyS´ или ´ttyR´. Также шаблоном поддерживаются диапазоны, которые задаются символом ´−´. Например, для совпадения с любой цифрой можно использовать шаблон [0−9]. Если первый символ, следующий за ´[´ − это ´!´, совпадают любые символы вне диапазона.

Следующие ключи могут принимать назначаемые значения:

Имя для сетевого интерфейса. Обратитесь к systemd.link(5) за описанием вышеуровневого механизма настройки имени интерфейса. Имя файла устройства не может быть изменено udev, но он может создать дополнительные символические ссылки.

Имя символической ссылки, указывающей на файл устройства. Каждое подходящее правило добавляет это значение к списку создаваемых символических ссылок.

Набор символов для имени символических ссылок ограничен. Разрешены символы «0−9A−Za−z#+−.:=@_/», правильные последовательности символов UTF−8 и шестнадцатеричное кодирование «\x00». Все остальные символы заменяются символом «_».

Можно указать несколько символических ссылок, разделив их символом пробела. В случае нескольких устройств, претендующих на одно и то же имя, ссылка всегда будет указывать на устройство с наивысшим приоритетом link_priority. Если текущее устройство пропадает, ссылки будут вычислены заново и владельцем ссылки станет устройство со следующим наибольшим значением приоритета link_priority. Если приоритет ссылки link_priority не указан, порядок устройств (и которое из них будет владеть ссылкой) не определён.

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

OWNER, GROUP, MODE

Права доступа к файлу устройства. Каждое из указанных значений заменяет значения по−умолчанию, заданные в процессе компиляции.

Применить указанную метку модуля безопасности Linux (Linux Security Module) к указанному фаул устройства.

Значение должно быть записано в атрибут sysfs события устройства.

Задать значение свойства устройства. Имена свойств, начинающиеся с «.» не сохраняются в базе данных и не экспортируются в событие или внешние утилиты (запущенные, например, ключом совпадения PROGRAM).

Присоединить метку к устройству. Полезно для фильтрации событий пользователями функций наблюдения libudev или для нумерации групп помеченных устройств. Реализация может работать эффективно только если к устройству присоединены небольшое количество меток. Метки подходят для использования в контексте фильтрации особенных устройств, но не в качестве флага для обычного использования. Чрезмерное использование может привести к неэффективности обработки событий.

Добавить программу к списку программ, выполняемых после обработки всех правил для указанного события, в зависимости от «типа».

Выполнить внешнюю программу, указанную в качестве назначаемого значения. Если не указан абсолютный путь, ожидается что программа находится в /lib/udev; в противном случае должен быть указан абсолютный путь.

По умолчанию, если не указан тип.

Как и в случае program, но использовать встроенную программу вместо внешней.

Имя программы и последующие агрументы разделяются пробелами. Если аргументы содержат пробелы, можно использовать одиночные кавычки.

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

udev не подходит для запуска демонов или других долго работающих процессов; разделившиеся процессы, отсоединившиеся или нет, безусловно завершаются после завершения обработки события.

Именованная метка, на которую можно перейти из GOTO.

Переход на следующую метку LABEL с совпадающим именем.

Импорт множества переменных как свойств устройства, в зависимости от типа:

Выполнить внешнюю программу, указанную в значении, и импортировать её вывод, который должен иметь формат переменных окружения. Указание пути, разделение команды и аргументов и кавычки обрабатываются как в случае RUN.

Подобно «program», но использует встроенную программу вместо внешней.

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

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

Импортировать одно свойство из командной строки ядра. В случае простых флагов свойству присваивается значение «1».

Импортировать сохранённые ключи из родительского устройства, прочитав базу данных родительского устройства. Значение, присваиваемое IMPORT , используется в качестве фильтра имён импортируемых ключей (в том же стиле, в котором происходит сравнение с шаблонами shell).

Может использоваться только для быстро работающих интерактивных задач. За подробностями обратитесь к RUN.

Подождать, когда файл станет доступным или когда истекут 10 секунд. Путь относителен устройства sysfs. Если путь не указан, ожидать появления атрибута.

Правило и опции устройства:

link_priority=значение

Указывает приоритет созданных символических ссылок. Устройства с более высоким приоритетом заменяют существующие символические ссылки других устройств. По умолчанию 0.

event_timeout=

Количество секунд ожидания завершения действий по обработке события, до собственного завершения.

string_escape=none|replace

Обычно управляющие и другие потенциально небезопасные символы заменяются в строке, используемой для именования устройства. Режим замены можно указать с помощью данной опции.

static_node=

Применить права, указанные в правиле к статическому файлу стройства с указанным именем. Также, для каждой указанной в правиле метки, создать символическую ссылку в каталоге /run/udev/static_node−tags/метка, указывающую на статический файл устройства с указанным именем. Создание файла статического устройства производится systemd−tmpfiles перед запуском systemd−udevd. Статические файлы устройств могут не иметь соответствующего устройства в ядре, они используются для автоматической загрузки модуля ядра при доступе к таким файлам устройств.

Наблюдать за файлом устройства при помощи inotify. Когда файл устройства будет закрыт после того, как он был открытым для записи, синтезировать событие uevent об изменении.

Отключить наблюдение за файлом устройства через inotify.

Поля NAME, SYMLINK, PROGRAM, OWNER, GROUP, MODE и RUN поддерживают простую подстановку. Подстановка в RUN производится после обработки всех правил, но перед запуском программы. Это позволяет использовать полный набор свойств устройства, совпавших с более ранними правилами. Для всех других полей подстановка выполняется в процессе обработки правила. Доступны следующие подстановки:

$kernel, %k

Имя, выданное ядром данному устройству.

$number, %n

Номер, выданный ядром данному устройству. Например, ´sda3´ имеет номер ´3´.

$devpath, %p

Путь к устройству.

Имя устройства, совпавшее в процессе восходящего поиска в пути к устройству с SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

Имя драйвера устройства, совпавшего в процессе восходящего поиска в пути к устройству с SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

Значение атрибута устройства, найденное в sysfs, где все ключи в правиле совпали. Если все совпадающие устройства не имеют такого атрибута, а предыдущие проверки KERNELS, SUBSYSTEMS, DRIVERS или ATTRS выбрали родительское устройство, то будет использоваться атрибут родительского устройства.

Если атрибут − это символическая ссылка, в качестве значения возвращается последний элемент цели символической ссылки.

Значение свойства устройства.

$major, %M

Старший номер, выданный устройству ядром.

$minor, %m

Младший номер, выданный устройству ядром.

$result, %c

Строка, возвращённая внешней программой, вызванной из PROGRAM. Одна часть строки, отделённая пробелом, может быть выбрана указанием номера части в виде атрибута: %c . Если за числом следует символ «+», в результирующую строку будут подставлены эта часть и все, следующие за ней: %c

$parent, %P

Имя файла родительского устройства.

Текущее имя файла устройства. Если имя не было изменено правилом, то это имя устройства, данное ядром.

Список текущих символических ссылок, разделённых пробелами. Значение назначается только в процессе события удаления или если предыдущее правило назначило значение.

$root, %r

$sys, %S

Точка монтирования sysfs.

$devnode, %N

Имя файла устройства.

ФАЙЛЫ БАЗЫ ДАННЫХ ОБОРУДОВАНИЯ

Файлы hwdb читаются из файлов, находящихся в системном каталоге hwdb /lib/udev/hwdb.d, в каталоге, изменяемом в процессе работы − /run/udev/hwdb.d и в локальном каталоге администрирования − /etc/udev/hwdb.d. Все файлы hwdb совместно сортируются и обрабатываются в алфавитном порядке, вне зависимости от каталога, в которых они лежат. Однако, файлы с одинаковыми именами заменяют друг друга. Файлы в каталоге /etc имеют наивысший приоритет, файлы в каталоге /run предпочитаются файлам с таким же именем в каталоге /lib. При необходимости они могут использоваться для замены файлов hwdb, предоставляемых системой, на локальные файлы. Символическая ссылка в каталоге /etc с таким же именем как hwdb−файл в каталоге /lib, указывающая на /dev/null, отключает hwdb−файл целиком. hwdb−файлы должны иметь расширение .hwdb, а другие расширения игнорируются.

Файлы hwdb содержат записи данных, состоящие из сопоставляющих и назначающих пар ключ−значение. Каждая запись в hwdb начинается с одной или более строк совпадения, указывающих шаблон оболочки shell для сравнения с базой данных строки поиска. Несколько строк сопоставления указываются в дополнительных последующих строках. Каждая строка совпадения сравнивается индивидуально, они комбинируются логической операцией ИЛИ. Каждая совпадающая строка должна начинаться на первом символе строки.

Совпадающие строки продолжаются одной или более строками с парами ключ−значение, которые распознаются по ведущему символу пробела. Имя ключа и имя значения разделяются символом «=». Пустые строки обозначают конец записи. Строки, начинающиеся с символа «#», игнорируются.

Содержимое всех файлов hwdb читается udevadm(8) и компилируется в двоичный файл базы данных, находящейся в файле /etc/udev/hwdb.bin или в файле /lib/udev/hwdb.bin, если нужно поместить скомпилированную базу данных в неизменяемый образ. В процессе работы используется только двоичная база данных.

СМОТРИ ТАКЖЕ

systemd−udevd.service(8), udevadm(8)systemd.link(5)

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *