18.04: Как udev может управлять сетью доступа к скрипту RUN

У меня есть правило udev, которое загружает файл при подключении USB-устройства:

ACTION=="add", ATTRS{idVendor}=="cafe", MODE="0660", GROUP="root", SUBSYSTEM=="usbmisc", RUN+="/home/me/udev-net.sh"

Сценарий выполняет простой wget:

#!/bin/sh
wget -o /tmp/wget.log -O /tmp/index.html http://www.google.com

Это хорошо работает в Ubuntu. 16.04, но 18.04 wget не удается разрешить www.google.com - после запуска сценария /tmp/wget.log содержит:

--2019-08-19 14:49:43--  http://www.google.com/
Resolving www.google.com (www.google.com)... failed: Name or service not known.
wget: unable to resolve host address 'www.google.com'

Если я добавлю запись '172.217.23.164 mygoogle' в / etc / hosts разрешение разрешено, но затем wget блокируется в сокете connect (), и через некоторое время процесс wget завершается.

Есть ли способ разрешить это в Ubuntu 18.04, чтобы поведение было таким же, как в 16.04?

1
задан 19 August 2019 в 16:00

1 ответ

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

я рекомендовал бы высокоуровневый сценарий, которые работают на уровне пользователя, как Python/pyudev.

Ссылка: man udev

Примечание, которое запущение программ, которые получают доступ к сети или монтируют/размонтируют файловые системы, не позволяется в правилах udev, из-за песочницы по умолчанию, которая осуществляется на systemd-udevd.service.

0
ответ дан 23 October 2019 в 15:19

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

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