Testfragen zur Linux-Admin-Klausur
==================================

(Hinweis: Diese Aufgaben sind "schwerer" als in der Klausur. Keine Panik!)

Mit welchem Kommando geben Sie die Datei "dokument.txt" für alle
Benutzergruppen zum Schreiben frei?

chmod a+w dokument.txt

---

Mit welchem Kommando erfahren Sie, wann die Datei "test.c" das letzte
Mal verändert wurde?

ls -l test.c

---

Geben Sie die Befehlsfolge an, um die IP-Adresse der Netzwerkkarte
"eth0" auf 192.168.0.1 zu setzen, das Default-Gateway auf 192.168.0.254
und den Nameserver ebenso auf 192.168.0.254.

ifconfig eth0 192.168.0.1
route add default gw 192.168.0.254
echo "nameserver 192.168.0.254" >/etc/resolv.conf
(bzw. "/etc/resolv.conf editieren und 'nameserver 192.168.0.254' eintragen").

---

Welche Bedingungen müssen erfüllt sein, damit ein Programm als "Open
Source" klassifiziert werden kann?

Siehe http://www.opensource.org/ , es gibt insgesamt 10 Bedingungen, dazu gehören:

- der Quelltext muss erhältlich sein,
- das Programm darf (mit Hilfe des Quelltextes) bearbeitet werden,
- das Programm darf (mit Hilfe des Quelltextes) analysiert werden,
- das Programm darf kopiert werden,
- die Weitergabe (Verschenken oder Verkauf) des Programms und der Bearbeitungen muss möglich sein,
- die Anwendung des Programms darf nicht eingeschränkt werden (z.B. keine Einschränkungen zur militärischen Nutzung oder Beschränkung auf bestimmte Anwenderkreise).

---

Geben Sie die Befehlsfolge an, um den Inhalt eines DOS-formatierten
USB-Memorystick (/dev/sda1) im existierenden Verzeichnis /media/sda1
sichtbar zu machen.

mount -t vfat /dev/sda1 /media/sda1

---

Mit welchem Kommando ändern Sie den Schreib/Lesestatus des
Wurzelverzeichnisses / so, dass darauf geschrieben werden kann?

mount -o remount,rw /

---

Welche Datei müssen Sie editieren, um ein Programm autmatisch starten zu
lassen, wenn jemand auf Port 1000 Ihres Rechners zugreift?

/etc/inetd.conf, z.B. 
p1000 stream tcp nowait root /usr/local/bin/meinprogramm

p1000 ist in diesem Beispiel zunächst als Synonym für 1000/tcp in
/etc/services einzutragen, aber dies war nicht gefragt.

Welche
Maßnahme müssen Sie nach Editieren der Konfigurationsdatei treffen, um
die Änderung wirksam werden zu lassen?

killall -HUP inetd

oder

"Das HUP-Signal an den inetd-Prozess schicken"

oder

"inetd neu starten"

---

Geben Sie die Schritte an, die notwendig sind, um einen neuen Kernel zu
bauen und im System zu installieren (es reicht eine Beschreibung, es
müssen keine ausformulierten Befehlszeilen sein).

Siehe Anhang "Kernel" unseres Skriptes.

1. Sourcen von www.kernel.org holen
2. Sourcen auspacken
3. Ins Source-Verzeichnis wechseln 
4. "make menuconfig" oder "make xconfig" (vorher ggf. eine .config des älteren Kernels ins neue Verzeichnis kopieren).
5. make bzImage (um den Kernel zu bauen)
6. make modules (um auch die Module neu zu bauen)
Alternativ zu 5 und 6: einfach nur "make"
7. neuen Kernel an geeignete Stelle kopiere, z.B.
cp arch/i386/boot/bzImage /boot/linux-2.6.17
8. Module installieren: make modules_install
9. Den Bootlader konfigurieren, so dass der neue Kernel beim nächsten reboot an der richtigen Stelle gefunden wird:
  vi /etc/lilo.conf ; lilo
10. Rebooten.

---

Was müssen Sie tun, um eine Swappartition DAUERHAFT zu aktivieren?

In /etc/fstab eintragen, z.B.:

/dev/hda2 none swap defaults 0 0

Um sie SOFORT zu aktivieren wäre "swapon /dev/hda2" zu tippen.

---


Erzeugen Sie eine 1:1-Kopie einer Daten-CD in eine Image-Datei!

cp /dev/hdc cdrom.img

oder

dd if=/dev/hdc of=cdrom.img

/dev/hdc sei hier ein CD-Rom Laufwerk als Master am 2. Controller-Port.

---

Mit welchem Kommando installieren Sie den Inhalt der Datei
"coolproggi.deb" im System?

dpkg -i coolproggi.deb

---

Beachten Sie die folgende Fehlermeldung:
cat /etc/shadow
cat: /etc/shadow: Permission denied
Was bedeutet dies?

Die Datei /etc/shadow ist für den Benutzer, der das Kommando "cat
/etc/shadow" eingegeben hat, nicht lesbar.

Warum ist es WICHTIG, dass dies nicht geht?

Damit "normale Benutzer" nicht in Versuchung kommen, unsichere
Passwörter ihrer Kollegen mit Hilfe von
"Wörterbuch-Ausprobieren"-Methoden (z.B. mit Progammen wie "John the
Ripper" oder "crack") auszuspionieren.

---

Kann ein "Public Key"-Verschlüsselungsverfahren sicher sein, wenn doch
das Verschlüsselungspasswort allen bekannt ist?

Ja, da der "Public Key", der zum Verschlüsseln verwendet wurde, nicht in
der Lage ist, den Text wieder zu entschlüsseln. Dies geht alleine mit
dem "Secret Key", der nur dem richtigen Empfänger der verschlüsselten
Botschaft bekannt ist.

---

Welche Schritte sind notwendig, um sich per SSH _ohne Passwort_ auf einem Rechner (auf dem man natürlich einen gültigen Account besitzt) einloggen zu können?

1. Falls noch nicht geschehen, SSH-Public/Secret-Schlüsselpaar erzeugen:
  ssh-keygen -t dsa

2. Den Inhalt von .ssh/id_dsa.pub (Public Key) auf dem Rechner, auf dem man sich per SSH anmelden möchte, in die Datei .ssh/authorized_keys eintragen. Dadurch "weiß" der SSH-Dienst, dass der Besitzer des dazu passenden "Secret Key" autorisiert ist, sich anzumelden.

---

Wie setzt man die ESSID einer Funklan-Karte?

iwconfig eth1 essid "meine-essid"

---

Wie setzt man die IP-Adresse einer Funklan-Karte?

Genau wie bei einer LAN-Karte, z.B. mit

ifconfig eth1 192.168.0.1

---

In welche Konfigurationsdatei muss WAS eingetragen werden, um das
Verzeichnis /cdrom nur-lesbar für alle per NFS freizugeben?

In /etc/exports, z.B.

/cdrom *(async,ro)

was auch als

/cdrom

abgekürzt werden kann. Anschließend muss der NFS-Server-Dienst neu gestartet werden, oder mit

exportfs -a

von der Änderung informiert werden, was aber nicht gefragt war.

---

Beim Versuch, mit einem Browser die Adresse http://localhost/ aufzurufen, kommt die Fehlermeldung "Beim Laden von http://localhost/ ist folgender Fehler aufgetreten: Keine Verbindung zu Rechner localhost.". Woran liegt dies,

- Daran, dass auf Port 80 (noch) kein WWW-Server läuft.

und wie kann man dafür sorgen, dass über http://localhost/ tatsächlich Webseiten geliefert werden?

- WWW-Server starten, z.B. mit

/etc/init.d/apache2 start

oder einen Webserver, der im "inetd-Modus" laufen kann, in
/etc/inetd.conf eintragen, und inetd per HUP-Signal von der Änderung
informieren.

---

Welche Eigenschaften kennzeichnen ein "character device",

Ein "character device" liefert ZEICHENWEISE Bchstaben, bzw erwartet
ZEICHENWEISE Eingabedaten. Beispiele hierfür sind die Textkonsolen, die
Eingabedaten von Tastatur verarbeiten, oder Modems sowie Mäuse und
Bandlaufwerke (Tapes).

welche ein "block device"?

Ein "block device" ist eine Gerätedatei mit wahlfreiem Zugriff auf
"Sektoren" bzw. "Blöcke" eines Gerätes wie Festplatten, CD-Roms und
andere Geräte, die den freien Zugriff an beliebigen Positionen innerhalb
des Datenträgers erlauben. Typischerweise werden Block devices
gemountet, so dass der Inhalt in Form von hierarchisch strukturierten
Verzeichnisstrukturen sichtbar wird, was aber nicht gefragt war.

Character devices erscheinen bei "ls -l" mit einem "c" gekennzeichnetm
block devices mit einem "b".

---
...et cetera.