Работа с операциями чтения / записи USB-накопителя в сценариях без привилегий sudo

Я согласен с thrig , это действительно похоже на ошибку. Прямая запись в procfs - очевидный обходной путь. Если вам нужно использовать утилиту sysctl , другой обходной путь - добавить новую строку:

sysctl -w net.ipv4.ip_local_reserved_ports="
"

Завершающая новая строка не влияет на большинство, если не на все настройки sysctl.

0
05.06.2019, 13:57
1 ответ

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

  1. Одно правило udev для действия вставки USB.

  2. Сценарии, поступающие тем временем, сами монтируют/размонтируют диск.

  3. Одно правило udev для действия удаления USB.

USB вставляется

Я выполняю один скрипт, который просто сохраняет имя устройства в файл. Я могу добавить любой другой скрипт в это правило:

ACTION=”add”, KERNEL=”sd*[0-9]*”, SUBSYSTEMS=”usb”,  RUN+=”/bin/sh my-usb-inserted.sh”,  RUN+=”/bin/sh myownscript.sh” 

Здесь myownscript.shбудет монтировать устройство с помощью pmount , что позволяет обычным пользователям монтировать/демонтировать съемные диски. Я могу вызывать любые другие скрипты после них, пока я размонтирую модуль в каждом из них до того, как его использует следующий.

USB удаляется

Здесь простой скрипт удаляет файл, созданный my-usb-inserted.sh, так что мы знаем, что внутри скриптов не было вставлено никаких флешек.

ACTION=”remove”, KERNEL=”sd*[0-9]*”, SUBSYSTEMS=”usb”,  RUN+=”/bin/sh usb-removed.sh” 

Этот обходной путь не учитывает необходимость работы с более чем одним USB-накопителем.

См. также:

0
28.01.2020, 03:37

Теги

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