Hostname neu setzen

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Sir Basso I

Hostname neu setzen

Beitrag von Sir Basso I » 05.06.2006 19:43:02

Hallo!

Habe mal eine Frage. Ich habe einen alten PC geschenkt bekommen auf dem ein reines Debian derzeit installiert ist, allerdings möchte ich den PC nun umbenennen ohne eine neuinstallation durchzuführen. Gibt es dafür irgend einen Befehl, wenn ja welchen?

Danke

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 05.06.2006 19:48:10

eine liste der dateien, wo das geändert werden sollte, bekommst du hier

Code: Alles auswählen

grep -R /etc/ -e "<hostname>"
vorsicht bei chroot`s , die sollte man natürlich auch mal abscannen sofern
welche vorhanden sind (z.B. Postfix in /var/spool/postfix/etc).

Edit by Snoopy:
Code-Tags für die Leserlichkeit eingefügt.
Zuletzt geändert von finupsen am 05.06.2006 19:50:35, insgesamt 1-mal geändert.
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 05.06.2006 19:50:12

Hmm;

mit

Code: Alles auswählen

# base-config
geht das sicherlich, aber das hieße ja mit Kanonen auf Spatzen schießen :roll:

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 05.06.2006 19:53:34

Code: Alles auswählen

apt-cache search base-config
debian-edu-install - Override base-config to install Debian-Edu without questions
?
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 05.06.2006 20:03:26

äh ...
es reicht ein (als root)

Code: Alles auswählen

hostname <foobar>


Man sollte allerdings neu booten wenn man das gemacht hat, da jeder Prozess (auch daemons die sehr lange laufen) nur beim starten/forken die Environment Variable $HOSTNAME auslesen bzw. was der Idealfall wäre es schlauer machen und die funktion

Code: Alles auswählen

gethostname()
aufrufen.

BTW - die "base-config" Idee kann ich nicht nachvollziehen

markus

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 05.06.2006 20:04:38

@finupsen

Code: Alles auswählen

# apt-cache show base-config
...
Description: Debian base system configurator
 This package handles setting up the Debian base system. It contains the
 configuration program you see when you install Debian for the first time
 and boot up your new Debian system.
 .
 It can be removed with no ill effects -- once your Debian system is
 installed, this package's only useful function is to allow you to
 reconfigure some things.
...
:!:

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 05.06.2006 20:10:33

@garibaldi

ah ok.. habsch nicht gewusst. Aber , woher weiss base-config denn was ich
alles installiert habe ? Z.b. wenn ich aus irgendwelchen gründen ein apache
selbst compilieren musste.
Dieses base-config klingt für mich irgendwie nach yast für debian ;)

@meandtheshell

das klingt dann doch etwas sauberer und vor allem einfacher als die grep-variante
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 05.06.2006 20:14:48

finupsen hat geschrieben: das klingt dann doch etwas sauberer und vor allem einfacher als die grep-variante
what ever - aber was hätte die grep Geschichte für einen Sinn ...

Für Environment Variablen etc. gibt es EINE (=1) Stelle an der sie gesetze werden. Jeder Prozess, User, Zylon holt sich die Information von dort. Wie soll man sonst ein konsistentes System gewärhleisten? Ginge nicht.

markus

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 05.06.2006 20:22:04

ja , hast ja recht.

Also ist es so, das meine postfix-conf angefasst wird (beim reload), wenn ich
die env-variable "hostname" verändere ?

Ich wills jetzt nicht ausprobieren ;)
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 05.06.2006 22:03:00

Environment Variablen haben die Form:

Code: Alles auswählen

name = value


Ein daemon holt sich Informationen wie z.B. den hostname vom Betriebssystem entweder
- duch auslesen der Environment Variable so machen es manche daemons oder besser
- innerhalb von Programmen durch

Code: Alles auswählen

#include <stdlib.h>

char *getenv(const char *<name>)
Letzeres retourniert einen Pointer auf "value" dem der Wert "name" zugewiesen ist.

So oder so - die Information kommt nur EINMAL vor. Du musst an einem config file eines daemons gar nichts ändern. Wenn der daemon nach dem setzen einer Environment Variable restarted wird, dann liest er auch die Environment Variable neu ein.

Es kommt aber auch auf die Variable an - manche werden beim booten gesetzt d.h. ein restart des damons nutzt nichts.

markus

Benutzeravatar
Aresius
Beiträge: 65
Registriert: 25.07.2004 17:22:09
Wohnort: Heidelberg

Beitrag von Aresius » 08.06.2006 10:54:47

Hallo

@meandtheshell
Erklär mir doch mal bitte was passiert wenn ich

Code: Alles auswählen

hostname xyz
ausführe und dann mein System neu starte?

Nach dem Neustart wird das Skript

Code: Alles auswählen

/etc/rcS.d/S40hostname.sh -> ../init.d/hostname.sh
ausgeführt und setzt den hostname auf den, der in /etc/hostname eingetragen ist. Aufruf von 'hostname' ändert diesen Eintrag nicht.

Des weiteren sollte man z.B. /etc/hosts anpassen, falls der eigene hostname zur Namensauflösung dort eingetragen ist. Je nach installierten Paketen könnten noch weitere Anpassungen notwenig sein (z.B. bind), weswegen ein 'grep' auf '/etc' keineswegs eine dumme Idee ist.

@finupsen
Du willst eine Systemlösung für das Ändern des Hostname die auch Software berücksichtigt, die nicht korrekt ins System integriert ist (Stichwort sebst kompilierter Apache der nicht korrekt paketiert wurde)? Wie stellst Du Dir das denn vor?

Gruß
- Es gewinnt immer der, der den vorletzen Fehler macht -

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 08.06.2006 13:43:07

Aresius hat geschrieben:
@finupsen
Du willst eine Systemlösung für das Ändern des Hostname die auch Software berücksichtigt, die nicht korrekt ins System integriert ist (Stichwort sebst kompilierter Apache der nicht korrekt paketiert wurde)? Wie stellst Du Dir das denn vor?
Systemlösung ? Ich hab doch lediglich gesagt man sollte mit
grep -R /etc/ -e "<hostname>" nach config-einträgen suchen.

Ja gut, kann man auch als systemlösung bezeichnen

Das beispiel mit apache bezog sich auf base-conf .... augen auf ;)
Und davon abgesehen, es gibt sehr wohl software die es nicht als deb-paket
gibt. Da debian-linux in erster line ein GNU-Linux ist, laufen auch programme,
die nicht speziell für debian gedacht sind.
Von daher kann eigentlich keine rede von einem "nicht korrekt paketiert" sein,
sondern eher von "garnicht paketiert" ...
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Beitrag von xcomm » 02.08.2006 15:32:36

Hi finupsen, hi all,

1)
Ich finde hier auf dem Unstable kein base-config mehr, kann mich aber erinnern, dass ich es früher auf einem Stable schon vorhanden war. Weiss jemand warum?

2)
Da debian-linux in erster line ein GNU-Linux ist, laufen auch programme,
die nicht speziell für debian gedacht sind.
Von daher kann eigentlich keine rede von einem "nicht korrekt paketiert" sein,
sondern eher von "garnicht paketiert" ...
Du kannst eigene Dummy-Pakete mit equivs erstellen. Deine Dummies haben z.B: einfach höhere Versionsnummern (etwa libpcap 5.23) und werden nicht überschrieben, erfüllen aber die Abhängigkeiten der anderen Pakete. Dadurch kannst Du die Debian Paketverwaltung weiter zum Aktualisieren der anderen Pakete verwenden.

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 02.08.2006 16:01:31

Hi

Zu 1.)
Der Befehl bzw das Paket

Code: Alles auswählen

base-config
wurde vor geraumer Zeit entfernt.
Das existiert schon in keinem aktuellen Testing mehr.
Irgendwo gab es auch eine dementsprechende Stellungnahme...evtl mal im Forum nachschauen.

Antworten