Ich verwende Debian Wheezy auf einer eingebetteten Plattform (Beaglebone-Variante) und möchte Benutzern ermöglichen, dauerhafte Änderungen an einer Netzwerkschnittstelle vorzunehmen – z. B. von statisch auf DHCP umzustellen oder ein Gateway hinzuzufügen. Sobald die Änderung vorgenommen wurde, soll sie einen Neustart überstehen, sodass die zuletzt vom Benutzer ausgewählte Änderung übernommen wird.
Da Benutzer dies über eine webbasierte Benutzeroberfläche ändern, möchte ich die Änderungen programmgesteuert vornehmen. Ich dachte daran, eine neue „Interfaces“-Datei zu generieren und die vorhandene Datei /etc/network/interaces zu ersetzen (und dann einen Neustart zu erzwingen), fragte mich aber, ob es dafür eine weniger aufdringliche Möglichkeit gibt, beispielsweise über die Befehlszeile oder eine andere programmgesteuerte Methode. Obwohl mein integrierter Servercode alle erforderlichen Informationen zum Generieren einer Ersatzdatei /etc/network/interfaces enthält, befürchte ich, dass auftretende Fehler die Interfaces-Datei beschädigen und das System für den Benutzer effektiv blockieren könnten. Daher meine Frage nach einer weniger aufdringlichen Möglichkeit, dies zu tun.
So sieht unsere aktuelle Werkseinstellungsdatei „Schnittstellen“ aus:
# loopback network interface
auto lo
iface lo inet loopback
#primary network interface
auto eth0
iface eth0 inet static
address 192.168.168.1
netmask 255.255.255.0
hwaddress ether xx:xx:xx:xx:xx:10
#secondary network interface
auto eth1
iface eth1 inet manual
hwaddress ether xx:xx:xx:xx:xx:11
Antwort1
Sie können den Schaden begrenzen, indem Sie die festen und variablen Teile über das source
Schlüsselwort in Ihrer Hauptdatei trennen interfaces
. source-directory
Ist in Wheezy leider nicht verfügbar.