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
- Chat per IRC, ICQ und Jabber.
- Email an die Dozenten (privat).
- Email an eine Mailingliste.
- Wiki (diese Seite) (Fragen, Kommentare, Links)
Ablauf
- 30min Vortrag bzw Uebungen
- Zusammenfassung mit Fragerunde.
- 5min Pause.
- die Mittagspause etwas laenger - 12:00--12:20.
- eventuelle Nachbesprechung im Cafe.
- nach der Mittagspause: "Hausaufgaben"! Drei Fragen als Hausaufgaben geben als Vorbereitung fuer den naechsten Tag. "food for thought"
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:
- fuer eine Vorbereitung auf LPI Pruefungen reicht die Zeit definitiv *nicht*!
- Festlegung der Unterrichtszeiten + Pausen
- Angebot: Nachmittagsnachbesprechung im Cafe
Umfang+Ziele:
- Nicht nur Theorie, sondern auch Praxis.
- Weitere Informationen, Bezugsquellen fuer Linux
- Welches Wissen bieten wir?
- Was bietet dieser Kurs?
- Welche Chancen bietet das fuer den Arbeitsmarkt?
- Wie verdient man mit Open Source sein Geld? [mka: Mi! fho: Vortrag]
- Erwartungen des Arbeitsgebers aus Technischer Sicht:
Info ueber die Teilnehmer:
- Erwartungen, Vorkenntnisse, Ziele?
- Heimnetzwerk vorhanden? Computer, Systeme?
Wichtig! Weiterer Inhalt des Kurses wird bestimmt durch Feedback, Fragen und Interesse der Teilnehmer! Vorfuehrung der Teilnehmer von Lieblingstools!
Ablauf:
- Verteilung der Knoppix CDs
- mka: Programme Linux vs Windows
- fho: Was ist eine Live CD? Knoppix ausprobieren.
- fho: Bezug - woher bekommt man ein Linux?
- fho: Live CDs: knoppix, grml, jux, ubuntu.
- fho: Dienstleister: Lehmanns, Heuser, Tuxman, in-berlin.
fho: Events: FrOSCon, BLIT, MOST, LITDD - siehe [http://www.guckes.net/cal/ FLOSS Calendar]
- svg (13:30--14:00):
- svg: Login per ssh auf dem Server.
- svg: Verwendung von screen als Window Manager.
- svg: Eigene screen Session fuer Kommunikation.
- svg: Buntes mutt.
svg: Das ganze als GUI -> freenx server. Der Client dafuer ist bereits auf Knoppix vorhanden!
Was fehlte?
- Zusammenfassung. Was war heute wichtig?
- Feedback von den Teilnehmern: was haben sie fuer heute mitgenommen?
- Ausblick. wsa kommt in den naechsten Tagen?
- Info verteilen: Programm von newthinking, Zeitschrift "spill".
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:
- Prompt
- Input Line Editing (Movement, Cut+Paste)
- History (!!, !cmd)
- Command Chaining (cmd1; cmd2)
- Command Piping (cmd1| cmd2)
- Redirection, stdout, stderr
- Aliases
- Functions
- Exit (CTRL-D)
- sh script
- $PATH
- which foo
- Tab Expansion
- at+cron
- webseiten kopieren
- mails abholen
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
- Zusammenfassung der letzten Session
- Do 2008-06-19 ist letzter gemeinsamer Termin - bitte Fragen sammeln!
LinuxWiki.de seite nochmals ankuendigen
Bilder Download+Upload:
- Uebertragen von der Kamera auf die Website:
- Karte in Kartenleser einlegen
- Karte per mount in das Dateisystem einbinden
- Bilder kopieren (mit cp)
- Bilder durchsehen mit Viewer (zB feh)
- Bilder loeschen oder drehen
Galerie anlegen mit iimage -> Durchsicht im Webbrowser
- Lizenz festlegen und als Kommentar hinzufuegen
- Archiv erstellen
- Archiv auf den Webserver hochladen
- Archiv auspacken (permissions beachten!)
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:
- ALT tag *immer* angeben.
- Sinnvolle Angaben zu den Daten geben
- Vorlesen fuer Nicht-Leser (Kinder)
- Sehen fuer Blinde
Dateinamen:
- Minimum Set verwenden: a-z0-9 _-+
- Keine Leerzeichen, keine Umlaute
- Keine Verzeichnistrenner wie Slash und Doppelpunkt
- Sprechende Dateinamen
- evtl Datum einbetten
Email:
- "Kommunikation ueber Bilder" statt "Uebertragung von Bildern"
- Versendung von Links statt Attachments
- Hochladen der Bilder auf einen webserver
- Leeres Inhaltsverzeichnis anlegen (touch index.html)
- Sicherung des Zugangs per htaccess
Lizenz:
Verwendung auf Website -> Veroeffentlichung!
- Lizenzform waehlen!
- Creative Commons
flickr -> http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en
- Lizenzform gilt auch fuer Musik
Lizenz bei Bildern auch als Kommentar integrieren -> convert
Praxis:
- Knoppix starten mit "knoppix 2"
- Netz konfigurieren:
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?
- Login auf dem 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:
- Kann Knoppix auch mit NFS umgehen?
- Sichere Kommunikation mit Email:
- Daten auf dem Webserver ablegen?
- Daten per Email verschicken?
- Daten = Bilder, Zeugnisse
- Zugang zum eigenen Webspace aus einer ungesicherten Umgebung
Do 2008-06-19
- Knoppix starten, Befehle eingeben
- Ziel: Skript schreiben und per cron aufrufen lassen
- Mail versenden
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:
$ ./configure && make && sudo make install
Hinweise zu "find".
knoppix> find /usr/share/man -name '*.1.gz' -exec ls -l {} \;
Aufgabe: wie viele manuals koennten mit "find" zu tun haben?
knoppix> find /usr/share/man -name '*find*.1.gz' -exec ls -l {} \;
Muster (regular expressions, patterns) sind ein maechtiges Werkzeug! Dateinamenmuster - Kombinationen... x*y
$ ls -l f[aio][aio].txt -> 9 kombinationen $ ls -l f[a-m][n-z].txt -> 13*13 kombinationen
Kleiner Exkurs zu Kombinationen - "6 aus 49".
Hinweis zu ls:
- $ ls -lad ~/.??*
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.
- $ find / -name '*gif' -o -name '*jpg' -o -name '*png'
Aufgabe: "back up all find manuals". Hinweis: Benutze den Befehl "tar" in Kombination mit dem Kommando "find".
$ tar cvvzf manuals.tar.gz find /dir/ -name '*.1.gz'
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:
- Hackerparagraph
- Datenschutz
- Datenweitergabe: no-no!
- Newsletter: opt-IN
- Verantwortung!
- Veranstaltungen: ccc congress etc
Linux - Bezug
Linux gibt es per download im Internet, per CD/DVD im Buchladen und auf Events.
- Zeitschriften: Hakin9, Linux Magazin...
- Buchhandel: Buch+CD zB Lehmanns
- Fachhandel: Tuxman, newthinking
- Linux User Groups (LUGs), zB BeLUG (Berlin), BraLUG (Brandenburg), upLUG (Potsdam)
- Events: 11.10. MOST Magdeburg, 01.11. BLIT Potsdam, 08.11. LITDD Dresden
- Online: Linux ISOs
- Online: Download+burn
Q&A
- "wer hat zuhause einen rechner zum spielen?" - vier.
- "wer war schonmal bei einer LUG?" - keiner.
- wer ist warum beim kurs?
- welche ziele gibt es?
- *was* wollen die teilnehmer wissen?
Sven Guckes
Programs (TextTools):
- editor: nano, vim; jed, mcedit
- mailer: mutt
- newsreader: slrn
- pager: less, more, most
- shell: bash, zsh
- window manager: screen
- connect: scp+ssh
Tools:
- misc1: bc, id, nl, tr
- misc2: diff, watch; file; last, uptime
- mail: fetchmail+procmail
- lookup: find+locate
- chat: centericq+irssi
- process management: htop, ps, pkill, pstree, top
- www: curl, dog, wget
- script: awk, perl, sed
- text formatter: fmt+par
- head+tail
- sort+uniq
- su+sudo
- mc
Moegliche Vortraege:
- Communities
- Editoren
- Email Editing
- Events
- No Laptop / Remote Work
- Regular Expressions
- Shell Scripting
Frank Hofmann
"Was ist Freie Software?" -> Lizenzen GPL+CC
- "Netzwerk" (Vortrag online)
- backup: rsync?
Michael Kappes
- Nautilus
Weitere Themen
- Desktop: admin vs user; text vs gui
- Dienste: Protokolle, RFCs, client+server; start+stop; "dont reboot - be root!"
- Installation: Pakete + Paketverwaltung
- Netzwerke: Adressierung, DNS; ISDN, DSL; WLAN, Verwaltung
- Nutzungsrechte: CC, GPL
- Projekte: Entwicklung, Community, LUGs; Coding Sprints, Bug Squashing Parties
- Protokolle: dns, whois; echo, http(s), ftp(s), telnet; imap(s), pop(s), smtp; nntp; ssh, ntp, snmp, icmp, udp; bootp, tftp, dhcp; X, VNC
- Qualifizierung: LPI
- Tools: top+htop, df+du+ncdu, dd, mc, wget; diff+vimdiff+kdiff3+tkdiff
- Verstehen von fstab+mtab
- Archivierung mit tar und Komprimierung mit bzip,gzip
- Automatische Konvertierungen mit convert
- Bildformate GIF, JPEG, PNG, SVG
- Download+Upload mit ncftp (ftp client)
- Kopieren mit cp und scp
- Erstellen eines Schluessel mit ssh-keygen; ssh-copy-id, authorized_keys
- Konfiguration von ssh mittels ~/.ssh/config
- Versionskontrolle mit cvn+svn
- Visualisierung eines Protokolls mittels "ssh -vvv"
- Wikis und Wiki Syntax; Firefox Browser plugins mozex + "it's all text"
- giftrans (70Kb) - Konvertierung von GIF87 zu GIF89a
- mit Setzen einer Farbe als transparente Farbe
- Mplayer - Abspielen einer Menge von Audio+Video Formaten
- PDFs: viewer evince+xpdf; Extrahierung von Bildern aus PDFs; pdftotext
- Download von Videos von Youtube (browser plugins, tools, sites)
- Erstellung von Webstatistiken
- Kommunikation per Chat (IRC, ICQ, jabber)
- P2P torrents, piratebay, piratenpartei
Prinzipien + Sprueche
- "everything is a file"
- "all (content) is text"
- "one job, one tool"
- "life is not easy - but the root password helps."
- "kaum macht man's richtig - geht's!"
- "dont reboot - be root!"
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