[Umfassende Erklärung der Linux-Befehle] 193.Linux-Befehlsanalyse: Verwendung und Beispiele von Chroot und Clock

chroot

Ändern Sie das Stammverzeichnis in das angegebene Zielverzeichnis.

Weitere Informationen

chrootDer Befehl wird verwendet, um Anweisungen im angegebenen Stammverzeichnis auszuführen. chrootEs ist die Abkürzung für „Change Root Directory“. In Linux-Systemen beginnt die Standardverzeichnisstruktur /mit . Nach der Verwendung chrootverwendet die Systemverzeichnisstruktur den angegebenen Speicherort als neues Stammverzeichnis.

Durch chrootden Befehl liest das System das Verzeichnis und die Dateien am angegebenen Speicherort und nicht die Verzeichnisstruktur und die Dateien im alten Stammverzeichnis. Daher chrootumfassen die Vorteile des Befehls hauptsächlich die folgenden drei Aspekte:

  1. Erhöhen Sie die Systemsicherheit und schränken Sie Benutzerberechtigungen ein:
    Nach dem Bestehen chrootkann im neuen Stammverzeichnis nicht mehr auf die Stammverzeichnisstruktur und die Dateien des alten Systems zugegriffen werden, wodurch die Systemsicherheit verbessert wird. Normalerweise kann dies vor der Anmeldung verwendet werden, chrootum zu verhindern, dass der Benutzer auf bestimmte Dateien zugreift.

  2. Richten Sie eine vom ursprünglichen System isolierte Verzeichnisstruktur ein, um die Benutzerentwicklung zu erleichtern: Nach
    der Verwendung chrootliest das System die Verzeichnisse und Dateien im neuen Stammverzeichnis. Dies ist eine Verzeichnisstruktur, die nichts mit den Dateien im ursprünglichen Systemstammverzeichnis zu tun hat . In dieser neuen Umgebung können statische Kompilierung von Software und systemunabhängige Eigenentwicklung durchgeführt werden.

  3. Wechseln Sie den Stammverzeichnisspeicherort des Systems, führen Sie den Linux-Systemstart und die Systemrettung usw. durch:
    chrootSeine Funktion besteht darin, den Stammspeicherort des Systems zu wechseln, und wird am offensichtlichsten während der Systeminitialisierungs-Bootdiskettenverarbeitung verwendet. Durch Wechseln des Root-Speicherorts auf der anfänglichen RAM-Disk (initrd) und Ausführen des eigentlichen Init-Prozesses. Darüber hinaus können Sie bei einem Systemproblem auch chrootauf ein temporäres System für Rettungseinsätze umschalten.

Grammatik

chroot [选项] [参数]

Optionen

  • --help: Online-Hilfeinformationen anzeigen.
  • --version: Versionsinformationen anzeigen.

Parameter

  • Verzeichnis: Geben Sie das neue Stammverzeichnis an.
  • Anweisung: Geben Sie die auszuführende Anweisung an.

Beispiel

Als targetStammverzeichnis (führen Sie es aus in /bin/sh):

chroot target /bin/sh

Hier targethandelt es sich um den Pfad zur installierten BusyBox, der einem Dateisystem ähnelt, das viele Tools enthält. Mit diesem Befehl rufen Sie eine Shell-Schnittstelle targetals Root auf. Beenden Sie die Shell , indem Sie den Befehl ausführen, exitum zur ursprünglichen lokalen Umgebung zurückzukehren. Sie können auch die Tastenkombination Strg+D verwenden.

Beachten:

  • Nur der Root-Benutzer kann diesen Befehl ausführen.
  • Bei direkter Verwendung wird standardmäßig in chroot targetgesucht . Dies dient als Stammverzeichnis.target/bin/bashtarget
  • Als targetStammverzeichnis (führen Sie es aus in /bin/ls):
chroot target /bin/ls

Hier targethandelt es sich um den Pfad zur installierten BusyBox, der einem Dateisystem ähnelt, das viele Tools enthält. targetMit diesem Befehl wird der Befehl in ls(und nicht der lokale ) ausgeführt /bin/lsund kehrt dann sofort zur ursprünglichen Verzeichnisumgebung zurück.

Bitte beachten Sie, dass der obige Vorgang nicht funktioniert , wenn Sie ein Programm lokal kompilieren a.outund in das Verzeichnis kopieren . target/bin/Da es dynamisch verknüpfte Bibliotheken enthält, müssen Sie mit ldddem Befehl prüfen, a.outwelche dynamischen Bibliotheken erforderlich sind, und diese Bibliotheken vor der Ausführung in den entsprechenden Pfad des neuen Stammverzeichnisses kopieren.

Sie können chrootIhr eigenes kompiliertes Programm ausführen mit:

  • Bereiten Sie chrootdas Stammverzeichnis vor:
mkdir newRoot
  • Stellen Sie Ihr eigenes Programm zusammen:
gcc main.c

Hier main.cwird es generiert a.outund seine Funktion besteht darin, „Hallo“ auszugeben.

  • Sehen Sie sich die vom Programm benötigten Bibliotheken an:
ldd a.out

Nach Eingabe dieses Befehls wird folgender Inhalt ausgegeben:

linux-gate.so.1 => (0xb8034000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7eab000)
/lib/ld-linux.so.2 (0xb801a000)
  • Kopieren Sie die vom Programm benötigten Bibliotheken und Programme in das neue Stammverzeichnis:
cp a.out newRoot
mkdir newRoot/lib
cp /lib/tls/i686/cmov/libc.so.6 newRoot/lib
cp /lib/ld-linux.so.2 newRoot/lib

Hier newRootsieht der Inhalt so aus:

a.out
lib/
  • Verwenden Sie diese Option, um chrootIhr eigenes kompiliertes Programm auszuführen:
su
chroot newRoot /a.out

Dadurch kann es ordnungsgemäß ausgeführt werden a.out. Da a.outandere dynamische Linkbibliotheken verwendet werden, müssen diese Bibliotheken in kopiert werden newRoot. Wenn keine anderen Bibliotheken vorhanden sind, kopieren Sie sie einfach und a.outführen Sie sie aus. Beispielsweise ist die statisch kompilierte BusyBox /bin/busyboxnicht auf andere Bibliotheken in ihrem Installationsverzeichnis angewiesen.

Uhr

Wird zum Einstellen der RTC-Zeit verwendet.

Weitere Informationen

clockDer Befehl wird zum Anpassen der RTC-Zeit verwendet. RTC ist die integrierte Hardware-Uhr des Computers. Durch Ausführen dieses Befehls kann die aktuelle Uhrzeit angezeigt, die Uhrzeit der Hardware-Uhr angepasst, die Systemzeit so eingestellt werden, dass sie mit der Hardware-Uhr übereinstimmt, oder die Systemzeit zurück in die Hardware-Uhr geschrieben werden.

Grammatik

clock [选项]

Optionen

  • --adjust--set: Wenn die Parameter oder zum ersten Mal zum Einstellen der Hardware-Uhr verwendet werden --systohc, wird /etceine adjtimeDatei mit dem Namen im Verzeichnis generiert. Wenn diese beiden Parameter zum erneuten Anpassen der Hardware-Uhr verwendet werden, zeichnet die Datei die Differenz zwischen den beiden Anpassungen auf. --adjustWenn der Befehl mit Parametern in Zukunft ausgeführt wird clock, berechnet das Programm den Durchschnittswert basierend auf dem Differenzwert der aufgezeichneten Datei und passt die Uhrzeit der Hardware-Uhr automatisch an.
  • --debug: Zeigen Sie den Ausführungsprozess der Anweisung im Detail an, was zur Fehlerbehebung oder zum Verständnis des Ausführungsstatus des Programms hilfreich ist.
  • --directisa: Weisen Sie clockden Befehl an, die Hardware-Uhr nicht /dev/rtcdirekt über die Gerätedatei zu lesen und zu schreiben. Dieser Parameter eignet sich für ältere Computer mit ausschließlich ISA-Busstruktur.
  • --getepoch: Zeigt den neuen Epochenwert der Hardwareuhr im Systemkern auf dem Standardausgabegerät an.
  • --hctosys: Stellen Sie die Hardware-Uhrzeit so ein, dass sie mit der Systemzeit übereinstimmt. Da dieser Vorgang dazu führt, dass das System die Zugriffszeit der Datei vollständig aktualisiert, ist es am besten, ihn beim Systemstart durchzuführen.
  • --set --date="<日期时间>": Datum und Uhrzeit der Hardware-Uhr einstellen.
  • --setepoch --epoch=<年份>: Legen Sie den neuen Epochenwert der Hardwareuhr des Systemkerns fest. Das Jahr wird durch vier Ziffern dargestellt.
  • --show: Lesen Sie die Uhrzeit von der Hardware-Uhr ab und zeigen Sie sie auf dem Standardausgabegerät an.
  • --systohc: Systemzeit in der Hardwareuhr speichern.
  • --test: Nur zu Testzwecken, schreibt die Zeit nicht tatsächlich auf die Hardware-Uhr oder die Systemzeit.
  • --utc: Stellt die Zeit auf der Hardware-Uhr auf die koordinierte Weltzeit (CUT) ein, manchmal auch UTC oder UCT genannt.
  • --version: Versionsinformationen anzeigen.

Beispiel

Holen Sie sich die aktuelle Uhrzeit:

clock # 获取当前时间

UTC-Zeit anzeigen:

clock -utc # 显示 UTC 时间

Lernen Sie von Grund aufpython

[Python von Grund auf lernen] 92. Verwenden Sie die Anforderungsbibliothek von Python, um HTTP-Anfragen zu senden und Antworten zu verarbeiten.
[Python von Grund auf lernen] 91. Verwenden Sie Dekoratoren und Wörterbücher, um Anforderungspfade in einer einfachen Webanwendung zu verwalten.
[Python von Grund auf lernen] 93. Verwenden Sie ein Wörterbuch Management-Anforderungspfad
[Python von Grund auf lernen] 89. Verwenden Sie WSGI, um einen einfachen und effizienten Webserver zu erstellen
[Python von Grund auf lernen] 88. Detaillierte Erläuterung der WSGI-Schnittstelle: Einfache und effiziente Webentwicklung realisieren
[Python von Grund auf lernen] 87. Manuell Erstellen Sie einen HTTP-Server in Python. Implementierung und gleichzeitige Multithread-Verarbeitung.
[Python von Grund auf lernen.] 86. Vertiefendes Verständnis des HTTP-Protokolls und seiner Rolle bei der Browser- und Serverkommunikation.
[Python von Grund auf lernen.] 85. Anwendung der Parallel-Computing-Technologie im Python-Prozesspool
[Python von Grund auf lernen] 84. Vertieftes Verständnis von Threads und Prozessen
[Python von Grund auf lernen] 83. Python-Multiprozessprogrammierung und Verwendung von Prozesspools
[Python von Grund auf lernen] 82. Chat-Programm Implementierung basierend auf Multithreading
[Python von Grund auf lernen] 81. Python mehr Anwendung von Thread-Kommunikation und Warteschlange
[Python von Grund auf lernen] 80. Thread-Zugriff auf globale Variablen und Thread-Sicherheitsprobleme
[Python von Grund auf lernen] 79. Thread-Zugriff auf globale Variablen und Thread-Sicherheitsprobleme
[Python von Grund auf lernen] 78. Datei-Download-Fall
[Python von Grund auf lernen] 77. Programmierung und Vorsichtsmaßnahmen für TCP-Server
[Python von Grund auf lernen] 76. Server und Client: Schlüsselkomponenten der Netzwerkkommunikation
[Python lernen von Grund auf neu] 75. TCP-Protokoll: zuverlässiges verbindungsorientiertes Übertragungsschicht-Kommunikationsprotokoll
[Python von Grund auf lernen] 74. UDP-Netzwerkprogramm: Detaillierte Erläuterung von Portproblemen und Bindungsinformationen
[Python von Grund auf lernen] 73. UDP-Netzwerkprogramm - Daten senden
[Python von Grund auf lernen] 72. Vertiefendes Verständnis der Socket-Kommunikation und Methode zur Erstellung von Sockets
[Python von Grund auf lernen] 71. Netzwerkports und ihre Funktionen
[Python von Grund auf lernen] 70. Netzwerkkommunikationsmethoden und ihre Anwendungen: von der direkten Kommunikation bis zu Routern, um mehrere Netzwerke zu verbinden
[Python von Grund auf lernen] 69. Netzwerk Kommunikations- und IP-Adressklassifizierungsanalyse
[Python von Grund auf lernen] 68. Gierige und nicht gierige Modi in regulären Python-Ausdrücken
[Python von Grund auf lernen] 67. Das Re-Modul in Python: regelmäßige Ersetzung und erweiterte Matching-Technologie
[Python von Grund auf lernen] 66. Umfassendes Verständnis regulärer Ausdrücke: ein leistungsstarkes Werkzeug für Mustervergleich und Textverarbeitung
[Python von Grund auf lernen] 65. Detaillierte Erklärung der Python-Modifikatoren für reguläre Ausdrücke und ihrer Anwendungen
[Python von Grund auf lernen] 64. Die re.compile-Methode in regulären Ausdrücken in Python Detaillierte Erläuterung der Verwendung
[Python von Grund auf lernen] 63. Einführung in die re.Match-Klasse und ihre Attribute und Methoden in regulären Ausdrücken
[Python von Grund auf lernen] 62. Reguläre Python-Ausdrücke: ein leistungsstarkes Tool zum String-Matching
[Lernen Python von Grund auf] 61. Detaillierte Erklärung und Anwendungsbeispiele von Eigenschaftsattributen in Python
[Python von Grund auf lernen] 60. Explorationsgenerator: ein flexibles Tool für die Iteration
[Python von Grund auf lernen] 59. Iterator: Ein effizientes Tool zur Optimierung der Datendurchquerung
[ Python von Grund auf lernen] 58. Benutzerdefinierte Ausnahmen in Python und Methoden zum Auslösen von Ausnahmen
[Python von Grund auf lernen] 57. Verwenden Sie das Schlüsselwort with in Python, um Ressourcen korrekt zu schließen
[Python von Grund auf lernen] 56. Die Bedeutung und Anwendung der Ausnahmebehandlung in der Programmierung
[Python von Grund auf lernen] 55. Serialisierung und Summe in Python Deserialisierung, Anwendung von JSON- und Pickle-Modulen
[Python von Grund auf lernen] 54. Daten in den Speicher schreiben
[Python von Grund auf lernen] 53. CSV-Dateien und Pythons CSV-Modul
[Python von Grund auf lernen] 52. Dateien lesen und schreiben – Anleitung zur Python-Dateibedienung
[ Python von Grund auf lernen] 51. Dateien und ihre Anwendungen in Python öffnen und schließen
[Python von Grund auf lernen] 49. Objektbezogene integrierte Funktionen in Python und ihre Verwendung
[Python von Grund auf lernen] 48 .Detaillierte Erklärung von Vererbung und Mehrfachvererbung Vererbung in Python
[Python von Grund auf lernen] 47. Das Konzept und die grundlegende Verwendung der Vererbung in der objektorientierten Programmierung
[Python von Grund auf lernen] 46. Analyse von __new__- und __init__-Methoden und Singletons in Python-Entwurfsmustern
[Python von Grund auf lernen] 45 . Klassenmethoden und statische Methoden in Python
[Python von Grund auf lernen] 44. Private Eigenschaften und Methoden in der objektorientierten Programmierung
[Python von Grund auf lernen] 43. Beispiele in der objektorientierten Programmierung in Python Eigenschaften und Klassenattribute
[Python von Grund auf lernen] 42. Integrierte Eigenschaften und Methoden in Python
[Python von Grund auf lernen] 41. Python-Magie-Methode (2)
[Python von Grund auf lernen] 40. Python-Magie-Methode (1)
[Python von Grund auf lernen] 39. Grundlegende objektorientierte Syntax und Anwendungsbeispiele
[Python von Grund auf lernen] 38. Verwendung und Import von Python-Paketen
[Python von Grund auf lernen] 37. Verwendung und Vorsichtsmaßnahmen von benutzerdefinierten Python-Modulen
[Python lernen von Grund auf] Python lernen] 36. Methoden und Techniken zur Verwendung von pip für die Paketverwaltung von Drittanbietern in Python
[Python von Grund auf lernen] 35. Allgemeine Python-Systemmodule und ihre Verwendung
[Python von Grund auf lernen] 34. Detaillierte Erläuterung des Imports und Verwendung von Python-Modulen
[Python von Grund auf lernen] 33. Die Rolle von Dekoratoren (2)
[Python von Grund auf lernen] 32. Die Rolle von Dekoratoren (1)
[Python von Grund auf lernen] 31. Vertiefendes Verständnis von höher- Bestellfunktionen und Abschlüsse in Python
[Von „Lernen Sie Python von Grund auf““ 30. Vertiefendes Verständnis rekursiver Funktionen und anonymer Funktionen
„Lernen Sie Python von Grund auf“ 29. „Detaillierte Erklärung von Funktionsparametern“ – Verstehen Sie die verschiedenen Verwendungen von Python-Funktionsparametern
【 Python von Grund auf lernen】28. Lokale Variablen und globale Variablen in Python-Variablen
[Python von Grund auf lernen] 27. Die Verwendung von Python-Funktionen und verschachtelten Aufrufen
[Python von Grund auf lernen] 25. Funktionen: ein Tool zur Verbesserung der Effizienz beim Schreiben von Code
[Python von Grund auf lernen] 24. String-Operationen und Traversal-Methoden in Python
[Python von Grund auf lernen] 23. Verwendung von Mengen (Set) und allgemeinen Operationen in Python
[Python von Grund auf lernen] 22. Hinzufügen, Löschen, Ändern und Abfragen von Wörterbuchvariablen in Python
[Python von Grund auf lernen] 21. Python-Tupel und -Wörterbücher
[Python von Grund auf lernen] 20. Fähigkeiten und Beispiele für Python-Listenoperationen
[Python von Grund auf lernen] 19. Anwendungen des Durchlaufens von Listen und der Listenverschachtelung
[Python von Grund auf lernen] 18. Detaillierte Erläuterung der Grundoperationen von Python-Listen (1)
[Von Python von Grund auf lernen] 17. Die Formatierungsmethode von Python-Strings (2)
【Python von Grund auf lernen】 16. Die Formatierungsmethode von Python-Strings (1)
【Python von Grund auf lernen】 15. Vertiefendes Verständnis von Strings und Zeichensatzkodierung
【Von Python von Grund auf lernen】14. Allgemeine Operationen an Python-Strings (2)
【Python von Grund auf lernen】13. Allgemeine Operationen an Python-Strings (1)
【Python von Grund auf lernen】12. Python-String-Operationen und -Anwendungen
【 Python von Grund auf lernen】 11. Python-Schleifenanweisungen und Kontrollfluss
[Python von Grund auf lernen] 10. Detaillierte Erklärung von Python-Bedingungsanweisungen und deren Verschachtelung
[Python von Grund auf lernen] 09. Bedingte Beurteilungsanweisungen in Python
[Python von Grund auf lernen] 08 . Python versteht Bitoperationsoperatoren und Operatorprioritäten
[Python von Grund auf lernen] 07. Detaillierte Erklärung von Python-Operatoren: Zuweisung, Vergleich und logische Operatoren
[Python von Grund auf lernen] 06. Arithmetische Operatoren in Python für Berechnungen und String-Verkettung verwenden
[Lernen von Scratch] Python] 05. Ausgabe und Eingabe in Python
[Python von Grund auf lernen] 04. Grundlagen der Python-Programmierung: Variablen, Datentypen und Bezeichner
[Python von Grund auf lernen] 03. Interaktive Python-Programmierung und detaillierte Erklärung von Kommentaren
[Python von Grund auf lernen] 02. Einführung in Entwicklungstools
[Python von Grund auf lernen] 01. Python installieren und konfigurieren

Ich denke du magst

Origin blog.csdn.net/qq_33681891/article/details/133266067
Empfohlen
Rangfolge