SIOCSIFFLAGS: Operation not permitted
SIOCSIFHWADDR: Operation not permitted
SIOCSIFFLAGS: Operation not permitted
Для включения/выключения интерфейса или смены MAC-адреса необходимы права суперпользователя.
2 варианта:
1) Запуск скрипта от рута, тогда ничего править не нужно в скрипте.
2) Поднять привилегии пользователю, от которого запускается скрипт, нужно добавить
sudo перед командами в
subprocess.call.
#!/usr/bin/env python
import subprocess
subprocess.call("sudo ifconfig eth0 down", shell=True)
subprocess.call("sudo ifconfig eth0 hw ether 00:11:22:33:44:66", shell=True)
subprocess.call("sudo ifconfig eth0 up", shell=True)
Не забыв разрешить пользователю поднимать привилегии без ввода пароля, либо добавить в скрипт проверку:
если <требуется ввести пароль>
<ввести пароль>