Home | Christian Missions | Christustreff Marburg | Pictures of Marburg | Job | Remote Communications | Linux OS | Psion page | Contact

horizontal rule in rainbow colours (2,1 kB)

Martin Stut - Linux Workshop Paper

back to the Linux Page


Rahmen

Dies ist der Inhalt eines privaten Linux-Workshops, der aufgrund von Anfragen aus dem Bekanntenkreis organisiert wurde.

sinnvolle Vorerfahrung:

Mitzubringen:

Dauer: 1 Tag

Am Ende des Tages wird dieser PC als File- und Print-Server (wofür andere Leute für teures Geld Novell oder NT kaufen) für ca. 5-20 Clients verwendbar sein (begrenzt durch Leistung, nicht durch Lizenzen).

Einleitung (09:00 Uhr)

Begrüßung

Vorstellungsrunde (Name, Tätigkeit, Interesse an Linux, spezielle Wünsche für den Workshop)

Installation von Linux auf der blanken Maschine (09:15 Uhr)

Boot-Disketten erstellen oder von CD booten können

Platte partitionieren (Swap nicht vergessen)

Netzwerkadresse und -namen eingeben

zu installierende Pakete auswählen

Root-Paßwort wählen (root = Administrator, Supervisor etc. - der der alles darf)

ersten Benutzer einrichten

Grundlagen des Betriebssystems (10:00 Uhr)

Ein- und Ausloggen

Kein Betrieb ohne Anmeldung!

Unix, im Gegensatz zu DOS/Windows, unterscheidet grundsätzlich Groß- und Kleinschreibung, insbesondere bei Benutzernamen, Paßwörtern, Dateinamen, Verzeichnisnamen. Empfohlener Stil: alles in kleinbuchstaben.

Bein Anmelden (Benutzername und Paßwort) wird das Startprogramm des Benutzers (häufig /bin/sh, entspricht command.com) gestartet.

Das Ende dieses Startprogramms bedeutet "Abmelden".

Strg-D = Dateiende (wie Strg-Z bei DOS) - wenn die Shell gesagt bekommt "Ende des Stroms von Befehlen", dann beendet sie sich.

Ebenfalls zum Beenden möglich: exit (wie bei DOS), logout

Herunterfahren

Unix-Maschinen nie einfach so ausschalten, immer shutdown.

shutdown -r now = reboot

shutdown -h now = halt

shutdown now = single user modus

Bewegen auf der Kommandozeile

Im Zweifelsfall stelle man sich eine DOS-Eingabeaufforderung vor.

Befehl man befehl = Anzeigen der Handbuchseite zum Befehl

Befehl pwd = Anzeigen des Namens des aktuellen Verzeichnisses

Befehl ls = Anzeigen des Inhalts (Dateien, Unterverzeichnisse) des aktuellen Verzeichnisses

Optionen zu Befehlen: mit - (minus), z.B. ls -l, ls -al, ls -alR

Befehle sind z.B. mit pipes kombinierbar: ls -alR | less

mkdir = Verzeichnis anlegen

cd = in´s Verzeichnis wechseln

rmdir = Verzeichnis löschen

cp = copy

mv = move (verschieben oder umbenennen)

cat = type (auch für mehrere Dateinamen hintereinander)

grep = durchsuchen

Editor vi

Roh, aber herzlich. Es gibt auch andere Editoren, aber die haben immer irgendwelche Nachteile. Für den Systemverwalter ist das schlimmste ein Editor, der selbständig Zeilenumbrüche einbaut, z.B. pico - der ist für Emails schön, aber für Konfigurationsdateien Gift.

Aufruf: vi Dateiname

Verlassen mit Speichern: Esc :wq

Verlassen ohne Speichern: Esc :q!

Gewöhnungsbedürftig: man muß umschalten zwischen Befehlsmodus und Textmodus:

i = insert, a = append, R = replace

Esc verläßt den Textmodus.

Die wichtigsten Befehle:
x Zeichen löschen
dd Zeile löschen
:w Datei speichern
:q vi verlassen
:q! vi verlassen ohne zu speichern
/suchtext Text suchen

Philosophie (11:30 Uhr)

viele einfache Werkzeuge, flexibel kombinierbar

z.B. wie schon von DOS bekannt: dir | sort | more

cat datei | mail user@domain schickt datei als Mail an user@domain

alles ist eine Datei

selbst Ein- und Ausgabegeräte.

Beispiel cat /dev/mouse, cat /dev/fd0

tar cvf - / | gzip | /dev/tape sichert das komplette Dateisystem komprimiert auf Band

Prozesse

ein Programm das läuft heißt Prozeß. Ein Programm kann mehrmals gleichzeitig laufen, z.B. ein Webserver, der gleichzeitig mehrere verschiedene Anfragen bearbeitet.

Befehle ps (process status), kill (Prozeß "abschießen"), top (wer verbraucht am meisten Rechenzeit), pstree | less

Strikt getrennte Speicherbereiche zwischen den Prozessen sorgt für hohe Stabilität (Stärke von Linux):

"Sanftes" Multitasking: wenn mehrere Prozesse laufen, wird es gleichmäßig langsamer, bleibt aber ruckfrei.

Jeder Shell-Befehl startet einen separaten Prozeß, ggf. auch im Hintergrund ("&" nach dem Befehl)

Netzwerke

TCP/IP ist die "Muttersprache" von Unix.

(IP-Adressen usw. wird als bekannt vorausgesetzt)

Befehl netstat zeigt laufende Netzwerkverbindungen.
netstat -t -n zeigt nur TCP-Verbindungen und nur die numerische IP-Adresse (keine Namen, angenehm wenn Nameserver nicht erreichbar ist).

Server = Prozeß, der Anfragen beantwortet, z.B. Name-Server, Web-Server, Datei-Server.

/etc/hosts kann als Ersatz für Name-Server dienen. Alle Rechner, die diesen Rechner im Normalbetrieb kontaktieren, sollten da eingetragen werden.

inetd ist ein Meta-Server, der auf Anfrage den jeweils passenden Serverprozeß startet. "passend" wird in /etc/inetd.conf festgelegt (mal anschauen).

Dateisysteme

Keine Laufwerksbuchstaben, statt dessen ein großer Verzeichnisbaum.

Zusätzliche Geräte (Festplattenpartitionen, CD-ROM, Diskette, Netzwerkdienst) müssen vor Benutzung erst "gemountet" werden. Konfiguration in /etc/fstab

z.B. mount /cdrom, umount /cdrom

Während eine CD gemountet ist, läßt sich die Schublade nicht öffnen. Erst umount!

Disketten im DOS-Format lassen sich mit den mtools (mdir, mcopy, ...) benutzen, ohne daß man sie erst mounten muß.

Verzeichnisstruktur (13:00 Uhr)

DOS hat von Unix die Logik der Unterverzeichnisse kopiert. Zum Trennen der Verzeichnisnamen in einem Dateipfad dient in Unix der / (slash), im Gegensatz zum \ (backslash) bei DOS. Daher kommen auch die / bei den WWW-URLs

Typische Einteilung eines Unix-Dateisystem

/etc
Konfigurationsdateien
/bin
systemnahe Programme
/sbin
nur von Systemverwaltern aufrufbare Programme
/usr
durch normale Benutzer aufrufbare Programme
/usr/doc
Dokumentationen, vor allem die berühmten HOWTOs
/usr/local
durch normale Benutzer installierte Programme
/home
persönliche Verzeichnisse der einzelnen Benutzer
/tmp
Temporäre Dateien
/proc
Prozeßinformationen
/var
schnell variable Dateien, z.B. Mail-Warteschlange, Webcache, Logs
/lib
Laufzeitbibliotheken
/root

Heimatverzeichnis des Super-Users

/dev
Geräte (u.a. jede Festplattenpartition)
/mnt
temporär eingemountete Dateisysteme

Unix-Rechtekonzept (13:30 Uhr)

Benutzer und Gruppen

Benutzer = login-Namen. Jeder Benutzer hat genau ein Heimatverzeichnis und genau ein Startprogramm (häufig /bin/sh)

Gruppen = Gruppen von Benutzern (schwer zu erraten...). Jeder Benutzer kann zu beliebig vielen Gruppen gehören, jede Gruppe kann beliebig viele Benutzer enthalten

Jede Datei und jedes Verzeichnis gehört genau einem Benutzer und genau einer Gruppe.

Eine Datei/Verzeichnis einem Benutzer zuordnen: chown Benutzername Dateiname (change owner)

Eine Datei/Verzeichnis einer Gruppe zuordnen: chgrp Gruppenname Dateiname (change group)

Attribute von Dateien/Verzeichnisse

Rechtlich gesehen gibt es für eine Datei/Verzeichnis genau 3 Sorten von Leuten: Eigentümer (user, owner, x00), Gruppe (group, x0), Rest der Welt (others, world, x).

Für jede dieser Sorten von Leuten können 3 Bit gesetzt werde (oder eben nicht): Lesen (read, 4), Schreiben (write, 2), Ausführen (execute, 1).

"Ausführen" bei Dateien bedeutet, daß der Name dieser Datei als Kommando verwendet werden kann.
"Ausführen" bei Verzeichnissen bedeutet, daß auf das Verzeichnis überhaupt zugegriffen werden kann (ist also immer nötig).

"Schreiben" bei Verzeichnissen bedeutet, daß jede Datei (unabhängig von den Rechten auf diese Datei) in diesem Verzeichnis hinzugefügt oder gelöscht werden kann.

Befehl chmod, z.B. chmod

Spezielle Attribute

"Sticky" (t, 1000): bei Verzeichnissen: nur solche Dateien können gelöscht werden, für die der Benutzer auch Schreibrechte hat.

"set group id" (g, 2000): bei Verzeichnissen: neu angelegte Dateien gehören immer der Gruppe, der dieses Verzeichnis gehört; bei ausführbaren Dateien: Programm hat die Berechtigungen der Gruppe, der diese Datei gehört, nicht die Berechtigungen desjenigen, der es aufruft (evtl. Sicherheitsrisiko)

"set user id" (s, 2000): bei ausführbaren Dateien: Programm hat die Berechtigungen des Users, dem diese Datei gehört, nicht die Berechtigungen desjenigen, der es aufruft (Sicherheitsrisiko)

Anlegen von Benutzern und Gruppen

Jede Distribution hat ihr eigenes Werkzeug, bei S.u.S.E. heißt es yast (yet another setup tool).

Einrichten eines Datei-Servers mit Samba (15:00 Uhr)

Paket Samba installieren

inetd.conf anpassen, damit TCP Verbindung auf Port netbios-ssn (139, siehe /etc/services) und netbios-ns von Samba beantwortet wird

inetd neu starten (/sbin/init.d/inetd stop, /sbin/init.d/inetd start)

/etc/smb.conf anpassen

Überlegen, welche Verzeichnisse für wen freigegeben werden sollen.

Beispiel: /cdrom read-only für alle, /home/username für jeden User einzeln, /home/alle read-write für alle, /home/spenden für die Gruppe spenden.

create mode 7700 und directory mode 7700 für persönliche Home-Verzeichnisse, 7770 für Gruppenverzeichnisse, damit andere mit Sicherheit keine Rechte haben

force create mode 700 bzw. 770 und force directory mode 7700 bzw. 7770, damit alle nötigen Rechte sichergestellt sind.

[netlogon] Service: siehe Abschnitt in man smb.conf, Logon-Skript einrichten

smb stop/start

Windows Client einrichten

horizontal rule in rainbow colours (2,1 kB)

Home | Christian Missions | Christustreff Marburg | Pictures of Marburg | Job | Remote Communications | Linux OS | Psion page | Contact


Last updated: 05.05.2007 17:43:14 Martin Stut, email: email address as image, Marburg, Germany
URL: http://www.stut.de/linuxworkshop.html