GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ändern Sie die Identität eines Linux-Systems

Ich möchte Ihnen einen Zaubertrick zeigen. Gehen Sie zu Ihrem bevorzugten Shell-Prompt und geben Sie Folgendes ein:

[skipworthy@showme ~]$ hostname
showme

Der hostname Befehl wird in Linux bereitgestellt, um abzufragen, "für wen" sich der Computer hält. Wie ist das passiert? Woher weiß mein Computer, wie er heißt? Ich zeige Ihnen gleich, wie der Trick funktioniert, aber lassen Sie mich Ihnen zuerst einen anderen zeigen:

[root@showme skipworthy]# hostnamectl set-hostname spot
[root@showme skipworthy]# hostname
spot

Nochmals vielen Dank an systemd (das in den meisten, aber nicht allen modernen GNU/Linux-Distributionen, einschließlich Red Hat-basierten Systemen, implementiert ist) Das Ändern des Namens Ihres Linux-Computers ist ziemlich einfach. (Übrigens ändert sich der Name in der Eingabeaufforderung bei der nächsten Anmeldung.) Ich habe besprochen, wie DNS es uns ermöglicht, einen Computer im Netzwerk zu identifizieren, indem wir einen Namen einer IP-Adresse zuordnen. Dies ist auf der anderen Seite davon. Hier sehen Sie, wie sich der Computer identifiziert, was wichtig ist, damit Dinge wie die Authentifizierung richtig funktionieren, wenn der Computer Teil einer Domäne ist.

[ Vielleicht gefällt Ihnen auch die Lektüre: 10 grundlegende Linux-Befehle, die Sie kennen müssen ]

Nachdem die Hardware aufgelistet und die Treiber beim Booten geladen wurden, lädt der Bootloader bei einer systemd-basierten Distribution den systemd und führt ihn aus Skripte. Am Anfang dieses Prozesses steht das Festlegen des Hostnamens:

  2.653601] rtc_cmos 00:00: setting system clock to 2020-11-17 19:36:44 UTC (
1605641804)
[  2.654885] Freeing unused kernel memory: 1980k freed
[  2.655179] Write protecting the kernel read-only data: 12288k
[  2.657125] Freeing unused kernel memory: 416k freed
[  2.658710] Freeing unused kernel memory: 552k freed
[  2.663220] random: systemd: uninitialized urandom read (16 bytes read)
[  2.663530] random: systemd: uninitialized urandom read (16 bytes read)
[  2.663543] random: systemd: uninitialized urandom read (16 bytes read)
[  2.667147] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SEL
INUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +
XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[  2.667189] systemd[1]: Detected virtualization kvm.
[  2.667200] systemd[1]: Detected architecture x86-64.
[  2.667204] systemd[1]: Running in initial RAM disk.
[  2.667250] systemd[1]: Set hostname to <showme>.
[  2.701020] random: systemd: uninitialized urandom read (16 bytes read)

Abgesehen davon, in Systemen, in denen systemd den Benutzerbereich nicht verwaltet, können Sie den Hostnamen in einigen Dateien konfigurieren. Diese Dateien befinden sich tatsächlich dort, wo systemd sucht nach diesen Informationen und zeichnet sie auf, wenn Sie hostnamectl verwenden Befehl. Der hostname und hostnamectl Befehle verwenden tatsächlich Systemaufrufe auf Kernel-Ebene mit dem Namen gethostname , getdomainname , und einige Funktionen, die vom resolver bereitgestellt werden Systemaufruf. Diese gibt es schon ziemlich früh in der Geschichte des Linux-Kernels. Dies sind dieselben Systemaufrufe, die von der Shell verwendet werden, um unter anderem den Namen der Maschine in die Eingabeaufforderung einzufügen.

Beide Dateien, die Sie sich ansehen werden, befinden sich in /etc , an die Sie sich erinnern werden, der Standardspeicherort für die meisten Dateien, die zum Konfigurieren und Verwalten eines Linux-Systems verwendet werden. Der erste heißt passenderweise /etc/hostname :

[root@showme skipworthy]# cat /etc/hostname
showme

Ganz einfach:Wenn Sie hostname aufrufen Vom Shell-Prompt aus schaut Linux nach /etc/hostname Datei für die Antwort. Sie können auch den hostname verwenden Befehl, um den Computernamen zu ändern, aber in systemd-verwalteten Kerneln wird im Allgemeinen die Verwendung von hostnamectl bevorzugt Befehl statt.

Die andere Datei ist /etc/hosts , wo Linux versucht, IP-Adressen in Namen zu übersetzen, bevor es /etc/resolv.conf überprüft für DNS-Informationen. Hier ist die /etc/hosts Datei:

[skipworthy@showme ~]$ cat /etc/hosts
127.0.0.1       showme.forest showme
192.168.11.111  showme.forest showme
192.168.0.200      Jupiter
192.168.0.100      uhura

Die ersten Zeilen sind das, was Sie sich ansehen möchten. Beachten Sie das Format:

ip address   fqdn alias

Sie haben also die IP-Adresse , dann hostname.domainname (oder Fully Qualified Domain Name ), gefolgt vom Hostnamen . Sie können auch Aliase oder zusätzliche Domain-Aliase hinzufügen, wenn sie in der Umgebung verwendet werden.

Verwenden Sie das -f wechseln, wenn Sie den hostname aufrufen Befehl, um den FQDN Ihres Hosts anzuzeigen:

[skipworthy@showme ~]$ hostname -f
showme.forest

[ Jetzt herunterladen:Eine Anleitung für Systemadministratoren zum Bash-Skripting. ] 

Die hostnamectl Der Befehl hat einige andere interessante und nützliche Schalter und Flags:Sie können den Umgebungstyp festlegen (z. B. Entwicklung vs. Produktion) und Sie können sogar Standortnotizen setzen (z. B. Rack 3, Raum 200). Diese können Sie aus der Ferne abfragen und einstellen. Wie üblich können Sie alle möglichen coolen Dinge von den guten alten Manpages lernen.


Linux
  1. So ändern Sie die Farbe Ihres Linux-Terminals

  2. So ändern Sie ein Systemgebietsschema unter RHEL7 Linux

  3. So legen Sie den System-Hostnamen unter Linux fest oder ändern ihn

  4. So ändern Sie die PATH-Variable in Linux

  5. So ändern Sie die Standard-Shell in Linux

So ändern Sie die Sudo-Eingabeaufforderung in Linux

So ändern Sie die Standard-Shell im Linux-System

So verwenden Sie den fd-Befehl auf einem Linux-System

So ändern Sie das Root-Passwort unter Linux

So ändern Sie den Hostnamen unter Debian Linux

So ändern Sie den Benutzernamen und den Hostnamen auf einem Linux-System