Atualmente, estou tentando obter udev
para fazer algumas coisas (iniciar o airmon-ng) depois de conectar uma placa de rede USB específica. Mas estou tendo problemas para fazer com que scripts in-line funcionem. O problema pode ser reproduzido usando o seguinte exemplo simples:
Crie o seguinte script executável /test.sh
:
#!/bin/sh
echo hello > /tmp/test.txt
Crie o seguinte arquivo /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'"
Use o seguinte comando para recarregar o arquivo .rules
:
sudo udevadm control --reload
Eu simplesmente não consigo entender por que o script externo funciona, mas não o script in-line. Os scripts embutidos funcionam se eu o executar no meu terminal.