lpr, enscript
Suchen Sie sich ein sicheres Passwort aus, und ändern Sie dann Ihr Benutzerpasswort.
Ermitteln Sie die Länge der jüngsten Datei in /tmp (in einem Befehl).
Erzeugen Sie mit einem Kommando die Verzeichnisstruktur tests/fasta.
Kopieren Sie test/fasta nach test2/fasta, vergleichen Sie mit ls -l den Unterschied, wenn beim Kopieren die -a Option mitgegeben wird.
Zerstören Sie die Verzeichnisstruktur test2.
Setzen Sie das aktuelle Verzeichnis auf die neu erzeugte Struktur test/fasta, erzeugen Sie dort eine leere Datei Test.fasta, springen sie nach /etc und finden Sie mindestens zwei Arten, um wieder an den vorherigen Punkt zu kommen
Geben Sie den Inhalt der Dateien /proc/interrupts und /etc/inittab auf dem Bildschirm aus.
Rufen Sie in Ihrem Pager die Datei /etc/profile auf, und suchen Sie nach der Zeichenkette PATH. Markieren sie die Stelle, suchen Sie nach eventuell vorhandenen anderen Vorkommen dieser Zeichenkette. Springen sie zurück an die markierte Stelle. Geben sie als Lösung die Zeilennummern an, an denen die Zeichenkette vorkommt. Hinweis: less -N dateiname erzeugt eine Zeilennumerierung.
Erzeugen Sie mit touch eineDateiMiteinemSehrLangenNamen.txt.
tippen Sie anschließen less eine+TAB
Holen Sie das Kommando zurück, mit dem sie das test2 Verzeichnis erzeugt hatten.
Legen Sie sich ein eigenes .bashrc an, legen Sie ein Verzeichnis ˜/bin an, und modifizieren sie den Suchpfad, damit dieses Verzeichnis auch durchsucht wird. Modifizieren Sie Ihren Prompt, damit dieser die aktuelle Uhrzeit angibt.
Legen Sie in Ihr ˜/bin Verzeichnis eine Datei ab, die Sie ls nennen. Ändern sie dessen Rechte, indem sie mit chmod +x ls diese Datei ausführbar machen. Und tippen Sie ls, welche Version wird ausgeführt?
Was lernen wir daraus für die Systemsicherheit?
Abhängig von den Einstellungen in der PATH Variablen, wird die lokale Version genommen, falls der eigene Pfad (oder '.') vor den offiziellen Pfaden vorkommt, sonst die System-Version.
Pfade sollten nur insofern verändert werden, daß Systemprogramme immer vor eignenen ausgeführt werden.
Leiten sie die Auflistung des aktuellen Verzeichnisses in eine Datei um.
Erklären Sie diese Sequenz: du | sort -rn
Mehrere Prozesse sollten entweder im Vordergrund gestartet und dann in den Hintergrund befördert werden, oder direkt im Hintergrund gestartet werden. Gut geeignete Beispiele wären z.B. Editoren wie nedit, Programme die nicht sofort zurückkommen.
Listen sie alle diese Prozesse auf und finden Sie 3 verschiedene Möglichkeiten, diese Prozesse von der Shell aus zu töten.
Erzeugen Sie ein Shell-Skript, welches das Vorhandensein und die
Ausführbarkeit eines Skripts (˜/cron.d/daily) prüft und ausführt, bei
Vorhandensein ohne Ausführbarkeit soll eine Fehlermeldung ausgegeben werden.
Erzeugen Sie ein Skript, welches /etc/passwd nimmt, die Accountnamen
extrahiert, und lokal für diese Accounts ein Verzeichnis einrichtet, sofern
nicht schon vorhanden.
Schreiben Sie ein Skript, welches nach einer Liste von Verzeichnis/Datei-Namen
fragt, und ändern sie die Rechte auf diese Ziele auf 755.
Nun haben wir uns einen guten Überblick verschafft um die Fähigkeiten des Shell-Skripts zu erkennen. Die Aufgabe lautet jetzt:
es soll ein lokales Programmpaket lokal gespiegelt werden, und es steht nur
http oder ftp als Verbindung zum Hauptserver zur Verfügung. Die Dateien sind
auf dem Server als Programm_version.tgz abgelegt. Schreiben Sie ein Skript, das
die letzte Version des Programms herunterlädt und dem Benutzer, bei Erfolg, eine
Benachrichtigung schickt.
Geben Sie an, ob ein bestimmter Benutzer gerade eingeloggt ist.
Es soll einer Liste von Benutzern eine mail geschickt werden, mit einem
statischen Text, danach mit einem Text aus einer Datei.
Alle Dateien in einem Verzeichnis imgsrc sollen mit Hilfe des Programms convert in ein anderes Format gewandelt werden.
Eine Text-Datei soll in eine Serie von A5 Seiten in getrennten Datein
erzeugt werden, im Postscript Format, der Typ der Syntaxhervorhebung soll als
Argument mitgegeben werden.
Ein Benachrichtigungssystem soll aufgesetzt werden, neue Meldungen sollen in
ein Verzeuchnis gelegt werden, beim nächsten Einloggen sollen die Benutzer die
bisher nicht gelesenen Meldungen lesen.