Linux Tutorium I IT-SICHERHEIT WS1617 BENJAMIN KUHNERT

Ähnliche Dokumente
Basiskonzepte des Rechnerbetriebs

LINUX Gesamtmitschrift

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 2

Dateisystem 2, Suchen & Finden

Computer & GNU/Linux Einführung Teil 3

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Benutzung der Manpage, Shell Teil 3

Dateisystem 2, Suchen & Finden, Manpages

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

SCI Linux Einführung

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

L A TEX, Linux, Python

SelfLinux Dateien unter Linux

Einführung in die Angewandte Bioinformatik

Computer & GNU/Linux Einführung Teil 4

Einführung in die Kommandozeile

Die Shell. [prompt]> <command> <flags> <args>

Aufgabensammlung IT Shellprogrammierung Teil I

Linux Grundlagen. Wolfgang Scheicher 20. Mai Allgemeines Bootvorgang Verzeichnisstruktur... 2

Computer Algebra Plan der Vorlesung. erstes Drittel: linux, emacs, L A TEX zweites Drittel: Sage als Taschenrechner letztes Drittel: Python für Sage

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Dateien und Verzeichnisse

Wie man eigene Programme erstellt

Vorbereitungskurs Informatik - Tag 1

Informatik für Schüler, Foliensatz 1 Einführung bis...

Linux I II III Res/Pro WN/TT Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN

Linux-Befehlsreferenz

GNU/Linux für Neulinge

Institut fu r Informatik

Excel Tipps & Tricks Umgang mit umfangreichen Tabellen

1 Linux-Befehlsübersicht

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Crashkurs Kommandozeile

Übung 4: Schreiben eines Shell-Skripts

Archivieren und Komprimieren, Globs

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

UNIX Grundlagen. Sascha Frank SS August 2006 UNIX I. Sascha Frank. Einführung. Basic Befehle. Quellen

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP

Arbeiten in der Unix-Kommandozeile. PeP et al. Toolbox Workshop

Sicherheit von PDF-Dateien

Kurze Einweisung in die Shell

1) JAVA JRE auf der QNAP Box installieren

H. Tornsdorf М. Tornsdorf. Das große Buch zu

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

Aufgabe 1 XFCE und die Shell

Grundbefehle. LPI Zertifizierung. Auf dem Weg: Certified Linux

Wiederholung Dinge zum Arbeiten mit dem Computer: Auto Fahrer Paket. Dr. Carsten Gnörlich Tag 2 / 1

Zentrum für Bioinformatik. Übung 1: Linux

Archivieren und Komprimieren, Globs

Perlkurs WS 14/15 - Einführung

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Unix Grundlagen (Teil 1.b)

protokolliert alle Anmeldungen am Server direkt

2.Übung Systemsoftware (SYS) Hochschule Mannheim

7. Serienbriefe erstellen Das Prinzip des Seriendrucks MICROSOFT WORD Elemente des Seriendrucks

Arbeiten mit Linux und an der Kommandozeile

Shell-Scripting Linux-Kurs der Unix-AG

Linux Kurs Vorlesung 2 - Terminal

Objektorientiertes Programmieren mit Suse Linux

SelfLinux Dateien unter Linux

Linux Prinzipien und Programmierung

Kommandos im Unix-Grundkurs Digicomp-UXE. Inhalt

Literatur. Einführung in Unix. Login. Passwort. Mag. Thomas Griesmayer. Benutzererkennung und Passwort Case-Sensitiv Prompt

Installations- und Bedienungsanleitung GigaKRYPT bessere Verschlüsselung

Sage Start Dateiablage Anleitung. Ab Version

Sichern der persönlichen Daten auf einem Windows Computer

1. Praktikum zur IT-Sicherheit 1

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

Grundlegende Kommandos unter UNIX / LINUX

Nützliche Tastenkombinationen (Word)

FH Frankfurt am Main WS 2007/2008. Unix-Praktikum

cs106 Informatiklabor Teil 1: Java-Installation

Einführung in die Programmierung WS 2014/15. Übungsblatt 0: Einführung

Installation von ADSYS-Programmsystemen auf einer Workstation mit Windows Vista oder Windows 7

Informatik I - Einstiegskurs

Technische Praxis der Computersysteme I 3. Vorlesung

Linux das bessere Windows?

Übungsblatt 1: Zur Benutzung von Computern im CIP-Pool der Informatik

Benutzer- und Rechte-Verwaltung Teil 1

Benutzer- und Rechte-Verwaltung Teil 3

Eine kleine Makefile Einführung

Übung 1: Wichtige Kommandos unter Linux

Shell-Scripting Linux-Kurs der Unix-AG

MS-Word Serienbrief- und Formularfunktionen mit BITsoft Software-Produkten 1 Einleitung. 2 Erstellen von MS-Word Serienbrief Steuerdateien

1 Vorbemerkungen. 1.1 Vorraussetzungen und Ziele. 1.3 Homepage. 1.2 Übungsaufgaben. 1.4 Arbeiten am Computer. Es sind keine Vorkenntnisse nötig

Übung 00 Einrichten der Entwicklungsumgebung

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

ColdFusion9 Report Builder Installationsanleitung für Windows-Computer

Wichtige Kommandozeilenbefehle & Handhabung des GUI Tivoli Storage Manager

Kurs 6108 Programmierkurs C++ Wintersemester 2001/02. Prof. R. Schrader. Vorlesung freitags 15:15 16:45 Uhr

Finder > 'Programme' > 'Dienstprogramme' > 'Terminal'

Seriendruck. Word Aufbau ZID/Dagmar Serb V.03/Sept. 2015

Aufgabe 39 Zellen einfügen

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Exkurs: Unix Programme

Transkript:

IT-SICHERHEIT WS1617 BENJAMIN KUHNERT Darmstadt, 25. Oktober 2016

Inhaltsverzeichnis 1 Allgemeine Hinweise 2 2 Linux Shell Grundlagen 4 2.1 Die Differenz von Option und Argument.......................... 4 2.2 Aufgaben.......................................... 5 2.3 Reflexion........................................... 6 3 Erweiterte Ver- und Bearbeitung von Textdateien 7 3.1 Aufgaben.......................................... 7 3.2 Reflexion........................................... 8 c Benjamin Kuhnert 1 Linux Tutorium I WS1617

1 Allgemeine Hinweise Neben dem Wissen selbst benötigst du auch geeignete Methoden (Vorgehensweisen), um sich einer Problemstellung nähern zu können. Zu Beginn deines Studiums hast du bereits erste Erfahrungen sammeln können. Mit den folgenden Aufgabenstellungen hast du die Möglichkeit, Defizite aufzuarbeiten oder bereits Gelerntes zu vertiefen. Aufgabenstruktur Die Aufgaben folgen dieser Struktur: Lernziel: Was soll erreicht werden? Aufgaben: Just do it! Reflexion: Überprüfung deines Lernerfolgs. Beispiele für die Darstellung von verschiedenen Informationen Befehle oder Bezeichnungen wie z. B. ls -l werden durch eine besondere Schreibweise hervorgehoben. Lernziele: Du kannst...... ein Lernziel erreichen. Dies könnte eine wichtige Information für dich sein. Aufgabe 1: Dies ist eine Aufgabenstellung.??? Frage: Alles klar? Bestimmte Aktionen können durch Tastenkürzel durchgeführt werden wie z. B. die Tabulator-Taste oder Umschalt-Taste. Pfadangaben werden wie folgt abgebildet: /home /itsec /myfile.txt c Benjamin Kuhnert 2 Linux Tutorium I WS1617

Dies ist ein Befehl in der Shell: find. -name *. tmp -exec rm {} \; Viel Erfolg und viel Spaß! c Benjamin Kuhnert 3 Linux Tutorium I WS1617

2 Linux Shell Grundlagen Lernziele: Du kannst...... kennst nützliche Tastenkürzel.... kennst den Unterschied zwischen Option und Argument.... kennst grundlegende Shellbefehle.... auf Verzeichnisebene navigieren.... Verzeichnisse und Dateien erstellen und löschen.... kannst Textdateien erstellen. 2.1 Die Differenz von Option und Argument Viele Shellbefehle lassen sich durch den Nutzer gezielt steuern. Es wird differenziert zwischen Option und Argument. Doch worin besteht nun der Unterschied? Ein Beispiel: Du möchtest den Inhalt des Verzeichnisses /root anzeigen lassen, aber die Ausgabenform von Spalten- zu Zeilen anpassen: ls -l /root Der Shellbefehl, also das Programm welches gestartet wird, ist ls. Die Option -l, welche erkennbar an dem führenden - ist, aktiviert die Listenausgabe. Das Argument /root, welches daran erkennbar ist, das es am Ende des Befehls steht, ist die eigentliche Eingabe für den Befehl, die dieser verarbeiten soll. Zusammengefasst beginnt ein Shellbefehl daher mit dem Programmnamen, den Optionen und wird durch Argumente abgeschlossen. Bevor du startest Zu Beginn der Aufgaben solltest du dich auf der KaliVM im Verzeichnis /root befinden. Starte eine Shell und überprüfe deinen aktuellen Pfad mit der Eingabe von pwd. Die Ausgabe sollte /root entsprechen. Alle Aufgaben sollten nur innerhalb einer Shell gelöst werden - die Verwendung eines Dateimanagers ist deshalb nicht erlaubt. Bevor du durchstarten kannst, solltest du dir ein paar Tastenkürzel 1 merken, die dir die Arbeit mit der Shell vereinfachen: Shell beenden: Ctrl + d (d wie done) Autovervollständigung: Shellinhalt löschen: Ctrl + l (l wie löschen) 1 Weitere Kürzel findest du im Linux Primer auf der da/sec Webseite unter https://www.dasec.h-da.de/teaching/ it-sicherheit-im-ws-20162017/. c Benjamin Kuhnert 4 Linux Tutorium I WS1617

Befehlshistorie durchblättern: Pfeiltasten oder, bzw. Ctrl + p (p wie previous) oder Ctrl + n (n wie next) Zum Anfang einer Zeile: Ctrl + a (a wie Anfang) Zum Ende einer Zeile: Ctrl + e (e wie Ende) 2.2 Aufgaben Aufgabe 1: Wechsle in das Verzeichnis /bin und lasse dir dessen Inhalt ausgeben.??? Frage: Welche Befehle hast du im ersten Praktikum bereits verwendet? Aufgabe 2: Wechsle nun mit einem einzigen Befehl zurück in das Verzeichnis /root.??? Frage: Mit welchem Befehl lässt sich ohne Angabe von Pfaden zurück in das Home-Verzeichnis des aktuell angemeldeten Nutzers wechseln? Aufgabe 3: Lasse die folgende Ausgaben auf dem Bildschirm ausgeben. Die erste und letzte Zeile sind nicht Teil der Ausgabe. Deine Shell nach dem Befehl diese Zeilen enthalten. Löse die Aufgabe mit nur einer Zeile: root@kali :~# echo... IT - Security 2016 Tutorium root@kali :~# W Aufgabe 4: Erstelle eine leere Datei mit dem Namen itsec.txt und vergewissere dich, das die Dateigröße genau 0 Byte groß ist. Aufgabe 5: Erstelle ein Verzeichnis mit dem Namen archiv und kopiere die in Aufgabe 4 erstellte Datei in das zuvor erstellte Verzeichnis. Verwende den Shellbefehl stat um die Zeitstempel der Originaldatei und der Kopie herauszufinden.??? Frage: Was fällt dir beim Vergleich der Zeitstempel auf???? Frage: Mit welcher Option lässt sich eine Kopie der Datei erstellen, sodass Original und Kopie die gleichen Zeitstempel (ausgenommen Change) enthalten? Aufgabe 6: Lösche nun das Verzeichnis, welches in Aufgabe 5 erstellt wurde. Aufgabe 7: Erstelle nur unter Zuhilfenahme des Shellbefehls echo eine Datei student.txt, welche deinen Namen enthält. Ermittle die Anzahl der Zeichen, die dein im Argument angegebene Namen enthält und lasse dir die Größe der Datei mit Hilfe von stat (Size) ausgeben.??? Frage: Was fällt dir durch den Vergleich von der Dateigröße und der Anzahl deiner ermittelten Zeichen auf? c Benjamin Kuhnert 5 Linux Tutorium I WS1617

Aufgabe 8: Lasse dir mit Hilfe des Shellbefehls xxd -g 1 student.txt die Bytes der Datei anzeigen. In der Mitte der Ausgabe sind jeweils die Bytes (in diesem Fall je Zeichen ein Byte) und die Ausgabe von druckbaren Zeichen auf der rechten Seite dargestellt.??? Frage: Welches ist das Zeichen, was nicht zu deinem Namen aus Aufgabe 7 gehört? Aufgabe 9: Korrigiere das Größenproblem und finde eine Option für den Shellbefehl echo, der verhindert, das die Datei nicht die korrekte Größe entspricht. Die Datei soll exakt die Anzahl der Zeichen deines Namens enthalten. Prüfe dein Ergebnis mit xxd. 2.3 Reflexion Shellbefehle beginnen mit dem Programmnamen, gefolgt von den Optionen und werden durch Argumente abgeschlossen. Häufig sind Optionen und Argumente Zusatzinformationen und sind beide deshalb optionale Angaben. Standardoptionen von Shellbefehlen können für die korrekte Lösung von Praktikumsaufgaben problematisch sein. Nutze den Shellbefehl man um die gewünschten Optionen herauszufinden. c Benjamin Kuhnert 6 Linux Tutorium I WS1617

3 Erweiterte Ver- und Bearbeitung von Textdateien Lernziele: Du kannst...... Textdateien schreiben und ausgeben.... Ausgaben von Befehlen verknüpfen und verarbeiten.... Ausgaben nach Suchkriterien filtern.... Ausgaben mit OpenSSL verschlüsseln und hashen. 3.1 Aufgaben Aufgabe 1: Erstelle eine Verzeichnisstruktur, die dem folgenden Aufbau entspricht: root@kali :~# ls -l archiv / total 16 drwxr - xr - x 2 root root 4096 Oct 21 14:34 books drwxr - xr - x 2 root root 4096 Oct 21 14:34 music drwxr - xr - x 2 root root 4096 Oct 21 14:34 videos Aufgabe 2: Erstelle in jedem Unterverzeichnis eine Textdatei content.csv Inhalt, sodass jedes der drei Unterverzeichnissen eine Datei enthält. mit dem folgenden id; name ; description Aufgabe 3: Erstelle im Verzeichnis archiv books in der Datei content.csv vier zusätzliche Textzeilen, die der Formatierung in der ersten Zeile entsprechen. Erstelle durch wiederholtes Aufrufen des echo Befehls doppelte Zeilen. Hierzu ein Beispiel: id; name ; description 0; C++ Programmieren ; Handbuch zur Programmiersprache 1; Kombinatorik ; Mathematik für Informatik 0; C++ Programmieren ; Handbuch zur Programmiersprache 1; Kombinatorik ; Mathematik für Informatik Aufgabe 4: Gib die Datei im Verzeichnis archiv books auf dem Bildschirm aus. Aufgabe 5: Die Ausgabe von Shellbefehlen lässt sich an andere Programme weiterreichen. Das Zeichen (pipe) leitet die Ausgabe eines Programms an die Eingabe eines anderen Programms weiter. Dadurch lassen sich komplexe Abläufe einfach realisieren. Lasse die Datei mit Hilfe des Befehls aus Aufgabe 4 verarbeiten, indem du folgendes Aufrufschema nutzt: root@kali :~/ archiv # cat books / content. csv sort??? Frage: Was hat die Verkettung der beiden Befehle bewirkt? Aufgabe 6: Füge am Ende des Befehls aus Aufgabe 5 uniq (Pipe und uniq) an.??? Frage: Wie wurde die Ausgabe beeinflusst? c Benjamin Kuhnert 7 Linux Tutorium I WS1617

Aufgabe 7: Suche in der Datei im Verzeichnis archiv books mit dem Suchbegriff Mathe um die id zu ermitteln. Nutze hierbei nur die Befehle cat, sort und grep. Doppelte Ausgaben sollen vermieden werden. Ein Beispiel zur Verwendung von grep ist wie folgt: root@kali :~/ archiv # echo -e " Wo ist der Text?\ nnicht hier!" grep " SUCH - STRING " Aufgabe 8: Den Befehl OpenSSL hast du bereits kennengelernt. Mit der Option sha256 zu diesem Befehl lässt sich ein Hashwert von Eingabedaten erzeugen. Erzeuge nun den Hashwert der Datei im Verzeichnis archiv books, indem du cat und OpenSSL verwendest. Aufgabe 9: Verschlüssele die Datei im Verzeichnis archiv books mit der Option aes-256-cbc und leite die Ausgabe in eine neue Datei um. Aufgabe 10: Entschlüssele die in Aufgabe 9 verschlüsselte Datei und Suche mit Hilfe von grep nach der Zahl 0 3.2 Reflexion Die Ausgabe von Shellbefehlen lässt sich durch das Pipe-Zeichen an weitere Programme weiterreichen. Damit kannst du komplexe Verarbeitungsschritte in einer Zeile realisieren. Grep ist ein mächtiges Werkzeug um Informationen in Dateien zu finden. Neben einfachen Suchbegriffen unterstützt es auch komplexe Ausdrücke, mit denen sich Muster in Daten finden lassen. c Benjamin Kuhnert 8 Linux Tutorium I WS1617