Leserartikel MAC-Adresse bei Systemstart automatisch ändern - LINUX

Ehm, ja …
Warum werde ich das Gefühl nicht los, daß Du noch immer nicht verstanden hast, was ich Dir seit zwei Seiten versuche zu erklären? Es macht sehr wohl einen Unterschied, was für eine Art von Baustein genutzt wurde, um die MAC-Adresse zu speichern.

Ist dieser ein PROM, kann die Kennung nicht geändert werden und bleibt selbst mit Soft-Mods stets nur von temporärer Natur. Ist es ein EPROM, kann man die Adresse in der Tat permanent und für alle Zukunft ändern.

Es stellt auch niemand in Abrede, daß aus der MAC-Adresse plötzlich etwas anderes wird, als eine MAC-Adresse – das habe ich doch nie gesagt …

Und auch wenn ich mich für die Blumen nur bedanken kann, als ein ROM-Fachmann würde ich mich keineswegs bezeichnet sehen wollen – da gibt's genug Andere, die tiefer in der Materie stecken. Nur möchte ich wenigstens behaupten, daß ich zumindest einen kleinen Funken gesunden Menschenverstand besäße.


In diesem Sinne

Smartcom
 
  • Gefällt mir
Reaktionen: SVΞN
Wenn man das MAC-Gewechsel so einbindet, wie im Eröffnungsbeitrag beschrieben (via WantedBy=multi-user.target), ist doch gar nicht sichergestellt, dass nicht andere Dienste bereits vorher mit der unveränderten Adresse arbeiten, also bereits die "echte" MAC in die Welt posaunen. Man sollte 100%ig sicherstellen, dass der MAC-Wechsel erfolgt, bevor das Interface up geht.

Außerdem gibts Software, die einen MAC-Wechel im laufenden Betrieb gar nicht mag. Auch dafür wäre es wichtig, den MAC-Wechsel früher in den Boot-Prozess zu legen.
 
Hallo, ich bin nach deiner Anleitung vor gegangen, aber es funktioniert bei mir auf Ubuntu 20.04 nicht.
Es kommt folgende Ausgabe nach einen Neustart:

macchange.png

Falls hier noch Interesse an einer funktionierenden Lösung besteht, habe ich eine zumindest bei mir funktinierende gefunden, die auch mit dem "macchanger" funktioniert und direkt beim Start des Networkmanagers greift.

MAC-Adresse ändern
 
Das script ist nicht executable. chmod hilft.
Zur Sinnhaftigkeit dieses Unterfangens hier schreibe ich mal nichts :)
 
foo_1337 schrieb:
Das script ist nicht executable. chmod hilft.
Zur Sinnhaftigkeit dieses Unterfangens hier schreibe ich mal nichts :)
Ist es wohl!
Sonst würde es ja nicht einmal eine Ausgabe und erst Recht keine PID und MPID geben...
"Loaded: loaded (/etc/systemd/system/macchange.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-03-02 14:56:11 EET; 22min left
Process: 1150 ExecStart=/usr/local/sbin/macchange.sh (code=exited, status=203/EXEC)
Main PID: 1150 (code=exited, status=203/EXEC)"
 
Zuletzt bearbeitet:
Das einzige was daraus hervorgeht ist, dass es nicht executable ist. Anstatt erneut zu copy/pasten, hättest du auch einfach nachschauen können. Ich zitiere mal die systemd Doku zu 203/EXEC:
The actual process execution failed (specifically, the execve(2) system call). Most likely this is caused by a missing or non-accessible executable file.
Und natürlich gibt es (sehr) kurzzeitig eine PID. Die hilft dir nur rein gar nicht, weil es dir nur aufgrund des fork() gibt.

Falls das File tatsächlich ausführbar sein sollte, liegt es an der ersten Zeile (Shebang). Aber als Experte weißt du das ja sicher und hättest dein Problem längst selbst lösen können ;)
 
Ernsthaft? Ignore weil ich recht habe? Naja, sei es drum. Falls es noch jemanden anderes interessieren sollte:

Teil 1 ist ohne executable bit und Teil 2 mit executable bit aber broken Shebang. Komisch, dass die Fehler mehr oder weniger exakt so aussehen wie bei @Atlan1000.

Code:
root@srv:~# vi /etc/systemd/system/foo.service
root@srv:~# sudo systemctl enable foo.service
Created symlink /etc/systemd/system/multi-user.target.wants/foo.service → /etc/systemd/system/foo.service.
root@srv:~# echo "^C
root@srv:~# cat <<EOF >/tmp/foo.sh
> #!/bin/sh
> touch /tmp/foo.sock
> EOF
root@srv:~# ls -l /tmp/foo.sh
-rw-r--r-- 1 root root 30 Mar  2 22:54 /tmp/foo.sh
root@srv:~# systemctl restart foo.service
root@srv:~# systemctl status foo.service
● foo.service - Change MAC address of W-LAN on system startup
     Loaded: loaded (/etc/systemd/system/foo.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-03-02 22:55:25 CET; 7s ago
    Process: 88142 ExecStart=/tmp/foo.sh (code=exited, status=203/EXEC)
   Main PID: 88142 (code=exited, status=203/EXEC)
        CPU: 1ms

Mar 02 22:55:25 srv systemd[1]: Started Change MAC address of W-LAN on system startup.
Mar 02 22:55:25 srv systemd[88142]: foo.service: Failed to locate executable /tmp/foo.sh: Permission denied
Mar 02 22:55:25 srv systemd[88142]: foo.service: Failed at step EXEC spawning /tmp/foo.sh: Permission denied
Mar 02 22:55:25 srv systemd[1]: foo.service: Main process exited, code=exited, status=203/EXEC
Mar 02 22:55:25 srv systemd[1]: foo.service: Failed with result 'exit-code'.
root@srv:~# chmod 755 /tmp/foo.sh
root@srv:~# systemctl restart foo.service
root@srv:~# ls -l /tmp/foo.sock
-rw-r--r-- 1 root root 0 Mar  2 22:56 /tmp/foo.sock
root@srv:~# sed -i s,/bin/sh,/tmp/foo.sock,g /tmp/foo.sh
root@srv:~# head -1 /tmp/foo.sh
#!/tmp/foo.sock
root@srv:~# systemctl restart foo.service
root@srv:~# systemctl status foo.service
● foo.service - Change MAC address of W-LAN on system startup
     Loaded: loaded (/etc/systemd/system/foo.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-03-02 22:58:09 CET; 1s ago
    Process: 88765 ExecStart=/tmp/foo.sh (code=exited, status=203/EXEC)
   Main PID: 88765 (code=exited, status=203/EXEC)
        CPU: 1ms

Mar 02 22:58:09 srv systemd[1]: Started Change MAC address of W-LAN on system startup.
Mar 02 22:58:09 srv systemd[88765]: foo.service: Failed to execute /tmp/foo.sh: Permission denied
Mar 02 22:58:09 srv systemd[88765]: foo.service: Failed at step EXEC spawning /tmp/foo.sh: Permission denied
Mar 02 22:58:09 srv systemd[1]: foo.service: Main process exited, code=exited, status=203/EXEC
Mar 02 22:58:09 srv systemd[1]: foo.service: Failed with result 'exit-code'.
root@srv:~# ls -l /tmp/foo.sh
-rwxr-xr-x 1 root root 36 Mar  2 22:58 /tmp/foo.sh
root@srv:~# ls -l /tmp/foo.sock
-rw-r--r-- 1 root root 0 Mar  2 22:56 /tmp/foo.sock

Qed und anstatt dir helfen zu lassen, kommst du mit unangebrachtem Tonfall und Ignore Liste daher. Wozu dann überhaupt hier angemeldet?
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: TheManneken und Raijin
Mir fällt der Einsatzzweck ein im Freifunk zu verhindern, dass Devicebewegungen über Nodes nachverfolgt werden können.
 
Mir fällt der Einsatzzweck ein bei Teamviewer zu verhindern, dass die kostenlose Nutzung eingeschränkt wird weil man sich zu oft mit der gleichen Hardware-ID verbunden hat. :D
 
Zurück
Oben