无法从“网络”udev 规则执行 shell 脚本来更改 MAC 地址

无法从“网络”udev 规则执行 shell 脚本来更改 MAC 地址

当添加网络接口时,我尝试从 udev 规则执行 shell 脚本,如下所示:

SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", PROGRAM="/usr/local/bin/changemac.sh", NAME="eth0"

shell脚本只是使用ifconfig命令更改eth1的MAC地址,如下:

#!/bin/sh
/sbin/ifconfig eth0 hw ether 00:cc:dd:ee:ff:e1
echo "command return status $?" > /root/changemac.log

上面的脚本在命令提示符下工作正常,但不能从 udev 规则执行。我还尝试在 udev 规则中使用 RUN 而不是 PROGRAM 但没有成功:

SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", RUN="/usr/local/bin/changemac.sh", NAME="eth0"

相同的脚本正在从我的自定义模块 udev 规则执行。

我认为有人必须知道为什么它不从网络 udev 规则执行。 :-)

相关内容