O objetivo:
Você quer um modificador MAC que você pode chamar usando um atalho de teclado e alimentá-lo com um MAC? Também deve ser capaz de lê-lo da área de transferência?
Aqui está o que você quer:
Preparação:
Paraacessaraáreadetransferência,precisamosdexsel
.Instale-ocomocomando
sudo apt-get install xsel
Os scripts:
Precisamos fazer quatro pequenos scripts de shell para fazer seu trabalho.
Crie os seguintes arquivos em /usr/local/bin
usando seu editor de texto simples favorito. Você precisará de privilégios sudo / root para salvá-los no local desejado.
-
get-mac
:#! /bin/bash ip addr show eth0 | awk '/ether/{print $2}'
-
get-mac-dialog
:#! /bin/bash zenity --info --title "MAC Changer" --text "Current MAC address: $(get-mac)" 2>/dev/null
-
change-mac
:#! /bin/bash ifconfig eth0 down && ifconfig eth0 hw ether "$@" || exit 1 ifconfig eth0 up
-
change-mac-dialog
:#! /bin/bash oldmac=$(get-mac) newmac=$(zenity --entry --title "MAC Changer" --text "New MAC address:" --entry-text $oldmac 2>/dev/null) && gksudo change-mac $newmac || zenity --error --title "MAC Changer" --text "Failed to change MAC address"
-
paste-mac
:#! /bin/bash gksudo change-mac $(xsel -ob)
Se a sua interface de rede tiver outro nome que não seja eth0
, você deve substituir todas as 4 ocorrências dele nos scripts pelo nome real!
Agora defina as propriedades e permissões corretas:
chmod 755 /usr/local/bin/get-mac /usr/local/bin/get-mac-dialog /usr/local/bin/change-mac /usr/local/bin/change-mac-dialog /usr/local/bin/paste-mac
sudo chown root: /usr/local/bin/get-mac /usr/local/bin/get-mac-dialog /usr/local/bin/change-mac /usr/local/bin/change-mac-dialog /usr/local/bin/paste-mac
Resumo de uso:
-
get-mac
:Basta imprimir o endereço MAC atual de
eth0
no terminal. -
get-mac-dialog
:Mostre uma pequena janela de diálogo exibindo o endereço MAC atual de
eth0
. -
change-mac
:Tente alterar diretamente o endereço MAC de
eth0
. Ele desconectará e reconectará a interface para fazer isso. Você deve executar isso como root!Exemplo:
sudo change-mac 12:34:56:78:9a:bc
-
change-mac-dialog
:Mostre um pequeno prompt da GUI solicitando que você digite o novo endereço MAC (o texto padrão é o MAC atual). Você será solicitado a fornecer uma senha sudo usando a GUI
gksudo
. -
paste-mac
:Chame
gksudo change-mac
com o conteúdo atual da área de transferência como argumento. Você será solicitado a fornecer uma senha sudo usando a GUIgksudo
.
Atalhos:
Suponho que você possa criar atalhos personalizados para scripts, caso contrário, consulte aqui .
Note que você provavelmente não deve criar um atalho para change-mac
(precisa ser executado como root e precisa de um MAC como argumento) ou get-mac
(imprime a saída para o terminal). Use change-mac-dialog
e get-mac-dialog
como substituição de GUI para eles. paste-mac
não precisa de nenhuma entrada nem cria saída, então você pode fazer um atalho para isso sem nenhum problema.