Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim Jens Rademacher 16.06.2014 1. Theorie: Verzeichnisbaum Eine Auswahl einiger Verzeichnisse. / # Root-Verzeichnis /home/ # Enthält alle Home-Verzeichnisse der Benutzer /home/<name>/ # Home-Ordner (Eigene Dateien, Uhr-Konfigurationen) ("Eigene Dateien", User-Einstellungen für Programme) /root/ /etc/ /etc/init.d/ # Home-Ordner des Benutzers "root" # Systemweite Konfigurationsdateien # Steuerscripts für Deamons /var/ # Veränderliche Dateien (Logfiles, mail, MySQL,...) /var/logs/ # Logfiles /boot/ /media/, /mnt/ /usr/ /tmp/ /opt/ # Bootmanager, Kernel # Einhängepunkt, z.b. für externe Laufwerke # Programme, Bibliotheken # Temporäre Dateien # Systemweite Zusatzprogramme, # bewusst außerhalb der Repositories... 1
2. Theorie: Aufbau von Bash-Befehlen Befehle sind allgemein folgendermaßen aufgebaut: <programmname> <argument1> <argument2>... Argumente können mit einem oder mehreren - beginnen, aber auch keines von diesem Zeichen haben. Argumente mit einem - bestehen in der Regel aus einem Buchstaben und können beliebig als ein Argument kombiniert werden. Beispiele anhand von ls : ls # aktueller Verzeichnisinhalt ls -l # aktueller Verzeichnisinhalt als Liste ls -la # Verzeichnisinhalt inkl. versteckte Ordner (beginnen mit.) ls -al # äquivalent zu ls -la ls -l --all # äquivalent zu ls -la Argumente können weitere Parameter erfordern. Im folgenden Beispiel wird für das Downloadprogramm wget ein Name für Zieldatei festgelegt: wget -O <name_der_zieldatei> <URL> wget -O videodb.tgz http://example.com/download.php 3. Theorie: Dateirechte Jede Datei und jeder Ordner hat eine Besitzer, eine Gruppe und Andere als zugreifende Entitäten. Mögliche Operationen für diese drei Gruppen sind Schreiben, Lesen und Ausführen (bzw. Auflisten bei Verzeichnissen). Die drei zugreifenden Benutzerarten können beliebig mit den Operationen kombiniert werden. Es ergeben sich somit 9 Flags (Marker), die für jede Datei gesetzt oder nicht gesetzt werden und mit ls -l eingesehen werden können. read write execute/list User x x Group x Other x Um Schreibarbeit zu ersparen, werden die möglichen Operationen durch Ziffern kodiert. Kombinationen aus diesen drei Möglichkeiten werden addiert und mit chmod für die drei zugreifenden Benutzer gesetzt. Das in der obigen Tabelle dargestellte Beispiel entspricht dabei der Kodierung 644. 2
Aktion Wert read 4 write 2 execute/list 1 Die Besitz- und Rechteverhältnisse werden mit den folgenden Befehlen verändert: chown <besitzer>:<gruppe> <dateiname> chmod 640 <dateiname> chown -R besitzer:gruppe <dateiname> chmod -R 640 <dateiname> # Besitzer und Gruppe für eine Datei setzen # Rechte für Besitzer, Gruppe und "Andere" setzen # Besitzer und Gruppe rekursiv setzen # Rechte rekursiv setzen 4. Während der Veranstaltung verwendete Bash-Befehle Verzeichnisoperationen ls # aktuellen Verzeichnisinhalt anzeigen, siehe oben pwd # Aktuelles Verzeichnis anzeigen whoami # Herausfinden, welcher Benutzer ich gerade bin touch testdatei # Textdatei anlegen oder Timestamp aktualisieren Ordner anlegen mkdir ordner1 mkdir -p ordner2/unterordner # legt Verzeichnis an # legt Verzeichnis inkl. Überordner an Hilfe <befehl> -h <befehl> --help man <befehl> Verzeichnis wechseln cd /home/user/ordner1 cd ~/ cd /ordner1 # wechselt in den Ordner " /home/user/ordner1" # wechelt in den eigenen Home-Ordner # wechselt hier in den Ordner " /home/user/ordner1" 3
Verzeichnisse und Dateien kopieren cp <quelle> <ziel> cp <quelle1> <quelle2>... <ziel> cp -r <quelle> <ziel> cp -a <quelle> <ziel> # Kopieren # Mehrere Objekte kopieren # Rekursives Kopieren (für Verzeichnisse) # Rechte und Besitzverhältnisse beibehalten (sofern möglich) Verzeichnisse und Dateien verschieben mv <quelle> <ziel> Textdateien öffnen cat <datei> less <datei> more <datei> tail <datei> tail -f <datei> nano <datei> vim <datei> # Dateiinhalt komplett anzeigen # Dateiinhalt anzeigen und navigieren # Ähnlich zu less, aber weniger komfortabel # Letzte Zeilen einer Datei anzeigen # Letzte Zeilen einer Datei verfolgen # Übungen zu vim: vimtutor Textausgaben filtern cat <datei> grep <suchmuster> Verzeichnisse und Dateien löschen rm <datei> rm -r <ordner> # Löschen # Rekursives Löschen (für Verzeichnisse) Root-Rechte sudo <befehl> sudo su - su - # <befehl> mit root-rechten ausführen # Dauerhaft als root anmelden (Ubuntu) # Dauerhaft als root anmelden (viele andere Distributionen) 4
APT apt-get update apt-get upgrade apt-get install <paket> apt-get install <paket1> <paket2> apt-get remove <paket> apt-get autoremove apt-cache search <suchbegriff> # Paketlisten updaten # System auf den aktuellen Stand bringen # <paket> installieren # mehrere Pakete installieren # <paket> entfernen # nicht benötigte Pakete entfernen # Paket suchen Neustart durchführen reboot Benutzer abmelden / Herunterfahren exit shutdown -h now halt # Benutzer abmelden # System herunterfahren # alternativer Befehl zum Herunterfahren des Systems Bonus: Screen Screen ist ein Terminalmultiplexer, der mehrere virtuelle Konsolen innerhalb einer einzigen Sitzung ermöglicht. Gerade auf Server-Systemen kann der Einsatz praktisch sein, da er beispielsweise die Möglichkeit bietet, Konsolen in den Hintergrund zu senden, und diese trotz SSH-Abmeldung weiterlaufen zu lassen. Auch das gemeinsame Arbeiten (oder Verfolgen) einer Konsole durch mehrere Benutzer ist möglich. Die folgende Auflistung zeigt nur einen kleinen Teil des Funktionsumfangs. Für weitere Funktionen sei auf die man-page verwiesen. screen -S <name> Strg + A, D screen -dr <name> exit # Einen Screen mit dem Namen <name> starten # Aktuellen Screen in den Hintergrund senden (Detach) # Screen aus dem Hintergrund öffnen (Attach) # Screen beenden 5