BfU Linux Kurs - Juni 2008
Latest change: Sun Jul 13 19:30:00 CEST 2008

Diese Seite

Zeitrahmen

Ein gemeinsamer Termin mit beiden Gruppen (CBI+SuN) am Anfang. Dann jeweils drei Termine mit CBI und cause and effect essay neuen Termine mit SuN. Jeder Termin geht von 8h bis 14h - ingesamt sechs Stunden. Abzueglich der Pausen sind es also taeglich ca fuenf Stunden.

Termine

 Termine: 2008 Juni
 WT DD  CBI? SuN? fho? svg? mka?
 -------------------------------
 Di 10  CBI +SuN  fho  svg  mka
 Mi 11       SuN       svg  mka
 Do 12  CBI            svg
 Fr 13       SuN  fho  svg
 Mo 16       SuN  fho  svg
 Di 17  CBI       fho  svg
 Mi 18       SuN (fho) svg
 Do 19  CBI            svg
 Fr 20       SuN  fho  svg
 Mo 23       SuN  fho  svg
 Mi 25       SuN       svg
 Fr 27       SuN       svg
 Mo 30       SuN       svg

 fho: Frank   HOfmann
 mka: Michael KAppes
 svg: SVen    Guckes

Teilnehmer

CBI     13
SuN      7

Inhalt

Frau Dr. Buschmann: Die Dozenten haben freie Hand fuer die Gestaltung des Kursinhalts!

Grundlage fuer die Praxis: 25 Knoppix Live CDs von Tuxman. Keine Installation noetig - einfach ins CD/DVD Laufwerk stecken und den Rechner starten.

Kommunikation

Ablauf

Abschluss: Am Ende jeden Tages gibt es eine Zusammenfassung der Dozenten.

Wochenbesprechung: Am Ende jeder Woche (Freitag) eine Befragung an die Teilnehmer ueber die besprochenen Themen. Was war interessant? Was war wichtig? Wo fehlen noch Informationen? -> Protokoll!

Di 10 fho svg mka

Vorstellung der Dozenten.

Vorbemerkung:

Umfang+Ziele:

Info ueber die Teilnehmer:

Wichtig! Weiterer Inhalt des Kurses wird bestimmt durch Feedback, Fragen und Interesse der Teilnehmer! Vorfuehrung der Teilnehmer von Lieblingstools!

Ablauf:

Was fehlte?

Tafel:

 Distribution - Debian SuSE Ubuntu kubuntu
 WINE = Wine Is Not an Emulator
 spamhouse.org
 alias dir=ls
 alias grep='grep --color=auto'
 grep sh /etc/passwd
 grep '[aeiou][aeiou]' /etc/passwd

Mi 11 svg mka

mka?

svg:

Shell:

2008-06-12 Do CBI svg

2008-06-13 Fr fho svg

fho: file system
boot (system startup)
dienste/services
X, display manager, window manager
configuration, themes

/etc/
info files + manuals
faqs + howtos
groups+lists
linux documentation project
selthtml
wikipedia

Rechte:
permissions; chmod+chgrp
Benutzer
root
su + sudo

2008-06-16 Mo SuN fho svg

...

2008-06-17 Di CBI svg

Bilder Download+Upload:

Hinweis: Die Haltbarkeit von Digitalen Medien (CDs, DVDs, Sticks) ist begrenzt. Insbesondere haengt die Haltbarkeit von USB Sticks ab von der Anzahl der write cycles. Darum empfohlen: Uebertragung der Daten auf neue Medien nach ein paar Jahren.

Einbindung von Bildern im Web:

Dateinamen:

Email:

Lizenz:

Praxis:

DNS server bekanntgeben durch Eontrag in der Datei /etc/resolv.conf:
$ nano /etc/resolv.conf
nameserver 192.168.1.3

Alternative ohne Editor:
$ echo "nameserver 192.168.1.3" >> /etc/resolv.conf
Das Ergebnis ueberpruefen:
$ cat /etc/resolv.conf

Schnittstelle erstellen und Route festlegen:
$ ifconfig  eth0       192.168.1.N   # "das N steht auf dem PC vor der Nase"
$ route add default gw 192.168.1.3

Tests:
$ ping 192.168.1.3       # TEST: ist der Nameserver erreichbar?
$ host www.heise.de      # TEST: werden die Namen aufgeloest?
$ ping www.heise.de      # TEST: antwortet der Heise Server?

ssh cbi@192.168.1.11     # Login am Server als Benutzer "cbi"
                         # der Rechner 192.168.1.11 steht am Pult
yes                      # akzeptieren des Schluessels vom Server
                         # (natuerlich sollte man das ueberpruefen...)
123                      # das Passwort des Benutzers "cbi" eingeben
who                      # die Liste der eingelogten Benutzer anzeigen
w                        # die Benutzer anzeigen und "was sie tun" (Befehle anzeigen)
last                     # die liste der zuletzt (last) eingeloggten Benutzer anzeigen
last -10                 $ nur die letzten zehn Logins anzeigen
last | grep 1.21         # nur die Zeilen anzeigen, die "1.21" (IP) enthalten
!! > last21.txt          # aufruf des letzten Kommandos mit "!!" -
                         # .. und Umleitung der Ausgabe in die Datei last21.txt
ls -l last21.txt         # langes Listing der Datei anzeigen
cat   last21.txt         # den Inhalt der Datei ans Terminal senden

Gesammelte Fragen:

Do 2008-06-19

2008-06-18 Mi SuN svg

...

2008-06-19 Do CBI svg

...

2008-06-20 Fr SuN fho svg

...

2008-06-23 Mo SuN fho svg

...

2008-06-25 Mi SuN svg

Ziel: Mit "screen" auf dem Server zusammen arbeiten - und mit "Vim" einen Text schreiben, zB ein Skript.

Startup von Knoppix *mit* GUI (just hit return at the boot prompt).
(Ein Startup mit "startx" ist allerdings problematisch, weil dann
 der Benutzer "root" agiert - und nicht der Benutzer "knoppix".)

Terminalprogramm "Konsole" starten:
Neue Tabs oeffnen (CTRL-SHIFT-N),
zwischen Tabs wechseln (SHIFT-PfeilLinks, SHIFT-PfeilRechts,
und Tabs umbenennen (Kontext-Menu "Siztung umbenennen").
Das Schliessen eines Tabs geht entweder ueber das Kontext-Menu mit
"Sitzung schliessen" - oder einfach das Programm darin beenden.

Anlegen von Benutzern fuer jeden anderen Teilnehmer:

  IP            Name
  192.168.3.45  stefan
  192.168.3.46  guido
  192.168.3.50  detlev
  192.168.3.51  stefanc
  192.168.3.52  stefant
  192.168.3.53  jan

Das Anlegen der Benutzer mitsamt ihrem Heimatverzeichnis geht
recht schnell ueber eine kleine "for" Schleife in der Shell:

  $ sudo bash
  # for user in detlev guido jan stefan stefanc stefant sven; do
  # > useradd -m $user
  # > done

Die Aufrufe fuer das Vergeben eines Passworts
kann man in einer ebensolchen Schleife machen:
  # for user in detlev guido jan stefan stefanc stefant sven; do
  # > echo   $user
  # > passwd $user
  # > echo    ---
  # > done

Aufgabe:
Den Service "ssh" als Daemon auf dem eigenen Rechner starten:
 knoppix@Knoppix:~$ sudo /etc/init.d/ssh start

Dann eine Konsole starten und pro Reiter (tab) eine
Verbindung per ssh auf jeden anderen Rechner oeffnen.
Den Titel jedes Reiters jeweils umbennnen in "$IP".
Damit sollte jeder mit jedem rechner verbunden sein.

Die Ueberpruefung der Logins weist fehlende Logins bzw fehlende
Heimatverzeichnisse auf; zudem auch ein fehlendes Passwort.

Schliesslich ist jeder auf jedem Rechner eingelogt!

Nun dasselbe mit "screen" auf einer console (/dev/ttyN).
Kurze Einfuehrung in die Idee von "screen":.
Kommandos mit CTRL-A beginnen, gefolgt von einem
weiteren Zeichen zum Ausloesen eines Kommandos.
Beispiele:
    ?  help         Hilfe - Kommandouebersicht
    c  create       Erzeuge neues Fenster (mit Shell)
    n  next         zum naechsten  Fenster wechseln
    p  previous     zum vorherigen Fenster wechseln
    w  windows      Liste der Fenster anzeigen
    :  colon        in den Kommandozeilenmodus schalten

    :number N       dem aktuellen Fenster die neuen Nummer N geben.
    :title newtitle dem aktuellen Fenster den neueun Titel "newtitle" geben

Proxy im Setup der bash festlegen:
$ echo export http_proxy=192.168.1.3:3128 >> ~/.bashrc

Eine kleine Setupdatei fuer screen holen:
$ wget guckes.net/Setup/screenrc.minimal

Im Homeverzeichnis als ".screenrc" ablegen:
$ mv screenrc.minimal ~/.screenrc

Der Download und die Umbenennung gehen auch in einem Schritt:
$ wget guckes.net/Setup/screenrc.minimal -O ~/.screenrc

screen starten...
$ screen
Directory '/var/run/screen' must have mode 755.

... die default permissions sind dafuer leider
nicht richtig gegeben.  darum mit chmod anpassen:
$ sudo chmod 755 /var/run/screen

nun screen endlich starten:
$ screen

Ein paar Fenster oeffnen - und dann mit einem Titel versehen:

CTRL-A : number NN return
  :number 08
  :number 15
  :number 23
  :number 42

NOTE: Die Nummer 42 kann nicht vergeben werden, weil screen
per default nur 40 Fensternummer hat (von Null bis 39).

Nun noch neue Titel fuer die Fenster vergeben:
  :title edit
  :title mail
  :title news
  :title web

NOTE: Ein Prozess bzw Fenster laesst sich in "screen"
leider *nicht* in eine neue Session exportieren.
(Bei "Konsole" geht das allerdings.)

Die Setupdatei nun auf einen anderen Rechner (remote host) kopieren;
dort dann einloggen und eine screen session starten,
insg drei Fenster in der Session oeffnen und
benennen als "bash", "edit" und "mail".

Die erzeugte Session mit den Fenstern bash+edit+mail
nun "detachen" (CTRL-A d), ausloggen (Shell mit CTRL-D beenden),
mit "!!" wieder einloggen (der letzte Befehl sollte "ssh user@host" gewesen
sein) - und erstmal nachschauen, ob die Session noch vorhanden ist:
  $ screen -ls
  There is a screen on:
          2342.pts-1.hostname (Detached)
  1 Socket in /var/run/screen/S-username.

Dann die Session wieder aufnehmen (reattach):
$ screen -r

Gezeigt:  multiuser mode.  Doch dann war wieder 14uhr..

Fr 27 svg

Server mit Knoppix hochgefahren,
Login "gast" angelegt mit Password "gast";
jeder soll sich dort einloggen und sich mit
der bestehenden screen Session verbinden (mit "screen -x").

Aufgabe:
Ein neues Fenster in der Session oeffnen,
eine eigene Nummer fuer das Fenster vergeben,
den Titel auf den eigenen Namen setzen
und eine Mail an sich selbst schicken.

Loesung:
Ein neues Fenster in der session oeffnen:
CTRL-A c

Eine eigene Nummer fuer das Fenster vergeben:
CTRL-A :number NN

Den Titel auf den eigenen Namen setzen:
CTRL-A :title $USER

Eine Mail an sich selbst schicken:
$ echo test | mail $USER

Darstellung der eigenen Prozesse mit "pstree":
$ pstree -hup gast
sshd(3513)---bash(3516)---screen(3600)---screen(3601,root)-
+-bash(3735,gast)---elinks(3809)
                    |-sh(3602,gast)---less(3606)
                    |-sh(3736,gast)
                    |-sh(3951,gast)
                    |-sh(3953,gast)
                    |-sh(3971,gast)
                    `-sh(4135,gast)---pstree(4144)

Screen: monitor+silence, hardcopy+log, copy mode (copy+paste).

Hinweise:
Bildbearbeitung ->
gimp: Simon Budi, Sven Neumann
Image Magick -> http://www.linuxwiki.de/ImageMagick

Man in the Middle Attack
Denial of Service Attack (DoS)

Prozessmanagement:  ps+pstree; top+htop; kill+killall+pkill
Tools gezeigt: bc, id, nl, tr.  diff + vimdiff.

watch:
$ watch date
$ watch -n  1 date
$ watch -n 10 -d du -sch $DIR

file:
$ file *        # Dateityp bestimmen fuer alle Objekte im aktuellen Verzeichnis
zsh> file *(.)  # dasselbe - aber nur fuer *Dateien*

last:
$ last          # liefert evtl Tausende von Zeilen
$ last -10      # liefert nur die letzten 10 Zeilen

$ last -10 | sed 's/ .*//'  # "sed" schneidet den Zeilenrest weg

# Ausgabe von "last" - mit "sed" den Zeilenrest loeschen,
# die verbleibenden Namen sortieren, mehrfache Zeilen zaehlen
# und zusammenfassen, wiederum nach der Anzahl sortieren -
# und dancah mit "less" anzeigen lassen:
$ last | sed 's/ .*//' | sort | uniq -c | sort -n | less

uptime -> system load
 06:30:00 up 45 days, 19:30,  3 users,  load average: 0.03, 0.10, 0.05

Kleine Demo: Startup von mutt auf einem Mail folder:
$ mutt -f /tmp/VIM
1.5 Sekunden fuer 21,000+ Mails - nicht schlecht!
"~N ~f bram ~s mac" -> definitiv unter einer Sekunde!

Fetchmail holt mails vom Server per POP3 - und gibt
diese an den MDA (mail delivery agent) weiter,
in diesem Fall "procmail".
[TODO: Add link to minimal procmailrc]

find+locate:
updatedb erstellt eine Liste von Dateinamen
im Dateisystem (am besten achts per cron) -
und "locate" spuckt diese wieder aus.
Besser: slocate benutzen.

Mo 30 svg

kein Test, da nicht alle anwesend sind.

Hinweise zu "make": Source code runterladen, auspacken, Inhaltsverzeichnis anschauen. Meistens ist dann ein "Makefile" vorhanden, mit dem die Schritte ueber "targets" definiert werden.

typische Installation:

Hinweise zu "find".

Aufgabe: wie viele manuals koennten mit "find" zu tun haben?

Muster (regular expressions, patterns) sind ein maechtiges Werkzeug! Dateinamenmuster - Kombinationen... x*y

Kleiner Exkurs zu Kombinationen - "6 aus 49".

Hinweis zu ls:

Die Treffer haben dann eine Mindestlaenge von 3, dh weder "." noch ".." werden dabei gefunden.

Aufgabe: Alle Bilder im Dateisystem von Knoppix finden, dh GIF, JPEG, PNG.

Aufgabe: "back up all find manuals". Hinweis: Benutze den Befehl "tar" in Kombination mit dem Kommando "find".

ftp: client/server. Warum ftp, wenn http existiert? (1) Verfuegbarkeit (2) overhead Pakete fuer Systeme liegen meist auf ftp Servern.

Empfohlener client: ncftp (mit ncftpget und ncftpput)

Diskussion ueber Router, Switches, Bridges, sowie Modem vs Kabelmodem.

Admins

Wissen fuer Admins:

Linux - Bezug

Linux gibt es per download im Internet, per CD/DVD im Buchladen und auf Events.

Q&A

Sven Guckes

Programs (TextTools):

Tools:

Moegliche Vortraege:

Frank Hofmann

Michael Kappes

Weitere Themen

Prinzipien + Sprueche

Links

Knoppix:
http://de.wikipedia.org/wiki/Knoppix
Erste Version: Knoppix 2.1 2002-03-14

Linux Malware:
http://en.wikipedia.org/wiki/List_of_Linux_computer_viruses
"The number of viruses specifically written for Linux has been on the increase
 in recent years and more than doubled during 2005 from 422 to 863."

Internet-Protokoll-Familie:
http://www.internetbaukasten.de/wikireader/internet-9.html

Liste der TCP/IP basierten Netzwerkdienste:
http://de.wikipedia.org/wiki/Liste_der_TCP/IP-basierten_Netzwerkdienste

Die Datei /etc/fstab:
http://de.wikipedia.org/wiki/Fstab

The file /etc/mtab:
http://en.wikipedia.org/wiki/Mtab

GNU Screen -- an Orthodox Window Manager
  A "must" tool for Unix Administrators
http://www.softpanorama.org/Utilities/screen.shtml

BfuLinuxKurs (zuletzt geändert am 2011-01-27 20:33:23 durch 119)