Поэтому в настоящее время я пытаюсь заставить udev
сделать некоторые вещи (запустить airmon-ng) после того, как я подключил определенную сетевую карту USB Wi-Fi. Но у меня возникают проблемы с работой встроенных скриптов. Проблема может быть воспроизведена на следующем простом примере:
Создайте следующий исполняемый скрипт /test.sh
:
#!/bin/sh
echo hello > /tmp/test.txt
Создайте следующий файл /etc/udev/rules.d/85-auto-monitor.rules
:
# This works:
ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="/test.sh"
# This does not work:
# ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="sh -c 'echo hello > /tmp/test.txt'"
Используйте следующую команду для перезагрузки файла .rules
:
sudo udevadm control --reload
Я просто не могу понять, почему работает внешний скрипт, но не встроенный. Встроенные сценарии работают, если я запускаю его в своем терминале.