Dieses Kapitel beschreibt nur die Grundlagen der Systemkonfiguration mittels textbasierter Schnittstellen. Sinnvolles Vorwissen liefert Debian-System-Installationshinweise, Kapitel 3.
Für diejenigen Leser, die besonders Wert auf die Sicherheit ihres Systems
legen, sollte das Securing Debian
Manual
Pflichtlektüre sein. Dieses Dokument findet sich auch im
Paket harden-doc
.
Der Abschnitt Das
init
-Programm, Abschnitt 2.4.1 beschreibt die Grundlagen der
Debian init-Skriptdateien.
Die Debian-Distribution verwendet das sys-V System für die Init-Skripte. Da
alle Dateien unterhalb von /etc/init.d/*
als Konfigurationsdateien
angesehen werden, können sie vom Systemadministrator beliebig verändert werden.
Dennoch ist der empfohlene Ansatz, die Dateien in /etc/default/*
anzupassen.
Die Datei /etc/init.d/rcS
dient z.B. zum Einstellen von Vorgaben,
die beim Systemstart aktiviert werden sollen. Hier können Programme wie
motd
oder sulogin
konfiguriert bzw. gestartet
werden.
Die Art und Weise der System-Protokollierung kann in der Konfigurationsdatei
des syslogd
in /etc/syslog.conf
bestimmt werden. Das
colorize
Paket kann die Ausgaben dieses Daemons nach belieben
färben, um die Übersicht zu erhöhen. Vergleichen Sie syslogd(8)
und syslog.conf(5)
.
Einige Optimierungen der Hardware überlässt Debian dem Systemadministrator.
hdparm
hdparm(8)
sollte auf
jeden Fall zuvor gelesen werden.
setcd
setcd(1)
.
setserial
scsitools
memtest86
hwtools
irqtune
: Ändert die IRQ-Priorität von Geräten, um höhere
Prioritäten und schnelleren Zugriff zu ermöglichen (z.B. für serielle Ports,
Modems). Eine Beschleunigung um den Faktor 3 ist bei seriellen Ports und
Modems möglich.
scanport
: Durchsucht den I/O-Adressraum von 0x100 bis 0x3ff auf
der Suche nach Geräten am ISA-Bus.
inb
: Ein kleines Programm das den IO-Port ausliest und den Inhalt
in hexadezimaler und binärer Darstellung ausgibt.
schedutils
taskset
, irqset
, lsrt
und
rt
sind in diesem Paket enthalten.
nice
und renice
Programmen (die aber nicht enthalten sind), können die Scheduler-Parameter bis
ins Detail verwaltet werden.
Das Mounten eines Dateisystems mit der noatime Option ist auch sehr effektiv
zur Beschleunigung von Lesezugriffen auf Dateien. Vergleichen Sie
fstab(5)
und mount(8)
.
Bestimmte Hardware kann direkt durch den Linux Kernel und das proc Dateisystem getunt werden. Vergleichen Sie Tunen des Kernels mittels des proc-Dateisystems, Abschnitt 7.3.
Es gibt viele hardwarespezifische Konfigurationshilfsmittel in Debian. Viele von diesen beziehen sich auf Laptops. Einige interessante in Debian verfügbare Pakete sind:
tpconfig
- ein Programm zur Konfiguration von Touchpads
apmd
- Programme für Advanced Power Management (APM)
acpi
- zeigt Informationen zu ACPI Geräten an
acpid
- Hilfsmittel zur Verwendung von ACPI
lphdisk
- bereitet eine Hibernation-Partition für Phoenix NoteBIOS
vor
sleepd
- lässt ein Notebook während Inaktivität schlafen
noflushd
- erlaubt es inaktiven Festplatten herunterzufahren
big-cursor
- größerer Mauscursor für X
acme
- Aktiviert die "Multimedia Tasten" von Laptops
tpctl
- Konfigurationstools für IBM ThinkPad Hardware
mwavem
- Unterstützung von Mwave/ACP Modems
toshset
- erlaubt Zugriff auf die meisten Hardwareschnittstellen
eines Toshiba Laptops
toshutils
- Hilfsmittel für Toshiba Laptops
sjog
- Programm zum Zugriff auf das "Jog Dial" (Drehrad)
in Sony Vaio Laptops
spicctrl
- Programm für das Sony Vaio zum Einstellen der
Helligkeit des LCD
ACPI ist ein moderneres Protokoll für das Power-Management als APM.
Einige dieser Pakete erfordern spezielle Kernel-Module. Diese sind in der Regel bereits in den neuesten Kernelquellen enthalten. Bei Problemen kann es notwendig sein, selbst den neuesten Patch in den Kernel einzuspielen.
PAM (Pluggable Authentication Modules) erlaubt die Kontrolle von Logins.
/etc/pam.d/* # PAM Konfiguration /etc/pam.d/login # PAM Konfiguration des Logins /etc/security/* # PAM Modulparameter /etc/securetty # Konfiguration des root-Login auf der Konsole /etc/login.defs # generelle Logins
Falls wirklich (auf eigene Gefahr) ein Login an der Konsole ohne Passwort
möglich sein soll, kann die Datei /etc/pam.d/login
wie folgt
geändert werden:
#auth required pam_unix.so nullok auth required pam_permit.so
Ähnlich funktioniert das auch mit xdm
, gdm
, ..., um
sich ohne Passwort an der X-Konsole anzumelden.
Andererseits kann cracklib2
installiert werden und
/etc/pam.d/passwd
wie folgt angepasst werden, um einen guten
Passwortschutz zu erhalten.
password required pam_cracklib.so retry=3 minlen=6 difok=3
Ein einmaliges Nutzen eines Login Passworts zur Zugangsaktivierung kann auch
hilfreich sein. Dafür muss das passwd
Kommando mit der Option
-e verwendet werden. Vergleichen Sie passwd(1)
.
Die maximale Anzahl an Prozessen kann mit ulimit -u 1000 in der
Bash-Shell gesetzt werden oder auch in der Datei
/etc/security/limits.conf
mit PAM. Andere Parameter, wie z.B.
core können so ebenfalls gesetzt werden. Die Anfangseinstellung
von PATH
kann in /etc/login.defs
festgelegt werden,
bevor die Shell Skripte startet.
Die Dokumentation von PAM befindet sich im Paket libpam-doc
. Das
Buch Linux-PAM System Administrator's Guide behandelt PAM, die
verfügbaren Module, usw. Die Dokumentation enthält auch The Linux-PAM
Application Developers' Guide und The Linux-PAM Module Writers'
Guide.
su
nicht die wheel Gruppe unterstützt"
Dieser Satz entstammt dem Ende der alten info su Seite von Richard
M. Stallman. Man sollte sich aber nicht verwirren lassen. Die aktuelle
su
Version in Debian benutzt PAM. Somit kann der Gebrauch von
su
leicht auf eine beliebige Gruppe eingeschränkt werden. Dazu
dient das Modul pam_wheel.so
, welches in
/etc/pam.d/su
konfiguriert wird. Im folgenden Beispiel wird die
adm Gruppe äquivalent zu der BSD Gruppe wheel
eingerichtet und erlaubt den Gruppenmitgliedern den Gebrauch des
su
Kommandos ohne Passwort.
# anti-RMS Konfiguration in /etc/pam.d/su auth required pam_wheel.so group=adm # wheel Mitglieder die su ohne Passwort verwenden können auth sufficient pam_wheel.so trust group=adm
Interessante Gruppen sind:
su
, wenn pam_wheel.so
ohne das group=
Argument verwendet wird.
/usr/src
zugreifen. Mit dieser Gruppe verwaltet man den Zugriff
auf Quelltexte.
/usr/local
ablegen und Verzeichnisse in
/home
erzeugen dürfen.
Eine vollständige Liste bietet der "FAQ"-Abschnitt in Securing Debian
Manual
, dieses Dokument befindet sich im harden-doc
Paket in Woody. Auch das neue base-passwd
(>3.4.6) enthält
eine maßgebliche Liste:
/usr/share/doc/base-passwd/users-and-groups.html
.
sudo
– eine sicherere Arbeitsumgebung
Ich verwende sudo
hauptsächlich als Selbstschutz.
sudo
ist die etwas sicherere Alternative zur Verwendung des
Administrator-Accounts.
sudo
wird wie üblich installiert und mittels der Datei
konfiguriert.
Überprüfen Sie auch die Merkmale der sudo Gruppe in
/etc/sudoers
/usr/share/doc/sudo/OPTIONS
.
Diese Beispielkonfiguration verwendet eine Gruppe "staff", welche es
den Mitgliedern erlaubt, beliebige Befehle mit root-Rechten mittels
sudo
auszuführen. Desweiteren wird dieses Recht einer Gruppe
"src" mit Einschränkungen auf bestimmte Befehle gegeben.
Der Vorteil von sudo
ist, dass nur ein normales Benutzerpasswort
zum Einloggen benötigt wird. Die Aktivitäten eines sudo
Benutzers
werden aufgezeichnet. Dies ermöglicht es, einige Aufgaben an
Hilfsadministratoren zu delegieren. Zum Beispiel:
$ sudo chown -R ich:meineGruppe .
Selbstverständlich kann jeder der das Administratorpasswortes kennt (wie es bei den meisten Heimanwendern der Fall ist) auch auf andere Weise root-Kommandos absetzen:
$ su -c "shutdown -h now" Password:
(Mit sudo
können feiner abgestufte Sicherheitsbarrieren eingebaut
werden. Ich hätte dies tun können. Da aber nur ich Zugriff auf meinen Rechner
habe, hielt ich das nicht für nötig.)
Ein anderes Programm mit ähnlicher Funktionalität ist im super
Paket zu finden.
Der Internet-Superserver inetd
wird beim Systemboot aus
/etc/rc2.d/S20inetd
(für das Runlevel 2) gestartet; dies wiederum
ist ein symbolischer Link auf /etc/init.d/inetd
. Durch die
Verwaltung verschiedener Dienste/Daemonen in diesem einen Daemon wird die
Systemlast verringert.
Wenn eine Anfrage via Netzwerk an den Rechner gestellt wird, sieht der Daemon
in der Datei /etc/protocols
und /etc/services
nach,
welches Protokoll und welcher Service nachgefragt werden. Bei einem normalen
Internetservice schaut inetd
dann in /etc/inetd.conf
nach oder bei Sun-RPC-Anfragen in /etc/rpc.conf
.
Die Sicherheit des Systems kann durch die Abschaltung nicht gebrauchter
Services in /etc/inetd.conf
immens gesteigert werden.
Sun-RPC-Services werden gebraucht, wenn NFS oder andere RPB-basierte Protokolle
verwendet werden.
Für einige Daemonen wird der gewünschte Server nicht direkt gestartet.
Stattdessen wird der tcpd
TCP/IP-Daemon-Wrapper mit dem
gewünschten Server als Argument aus /etc/inetd.conf
aufgerufen.
In diesem Fall wird der Server von tcpd
erst nach Log-Einträgen
und Sicherheitsüberprüfungen gestartet (/etc/hosts.deny
und
/etc/hosts.allow
werden ausgewertet).
Falls beim entfernten Zugriff in einem Debian-System Probleme auftreten, kann
eine Ursache der Eintrag: "ALL: PARANOID" in
/etc/hosts.deny
sein, der dann auskommentiert werden muss.
Details dazu liefern: inetd(8)
, inetd.conf(5)
,
protocols(5)
, services(5)
, tcpd(8)
,
hosts_access(5)
und hosts_options(5)
.
Weitere Informationen zu Sun-RPC liefern: rpcinfo(8)
,
portmap(8)
und
/usr/share/doc/portmap/portmapper.txt.gz
.
Literatur zu LDAP (Lightweight Directory Access Protocol):
OpenLDAP
openldap-guide
Paket
LDAP Linux
HOWTO
LDAP
Implementation HOWTO
OpenLDAP,
ausführliche Nutzungsberichte
Open LDAP
mit Courier IMAP und Postfix
CD-Brenner mit ATAPI/IDE-Schnittstelle sind in der letzten Zeit populär
geworden, da sie gut geeignet für Archivierungs- und Backupzwecke kleiner
Datenmengen (< 640 MB) sind. Das wichtigste Dokument zu diesem Thema ist
das CD-Writing-HOWTO
.
Der Abbruch des Datenstroms zum CD-Brenner während des Brennvorgangs wird unweigerlich dazu führen, dass der Rohling unbrauchbar wird. Deshalb sollte der Puffer-Speicher so groß wie möglich sein. Wenn Geld keine Rolle spielt, sollte man lieber einen SCSI-Brenner kaufen, hat man eine Wahl bzgl. des Bussystems, sollte man den Brenner unbedingt über den PCI-Bus (z.B. auf dem Motherboard), statt den ISA-Bus (wie bei der SB16) anschließen.
Ist ein CD-Brenner am IDE-Bus angeschlossen, wird der IDE-SCSI Treiber anstatt eines gewöhnlichen IDE CD-Treibers für Linux 2.2 und 2.4 Kernel verwendet. Auch der allgemeine SCSI-Treiber muss aktiviert sein. Es gibt zwei Möglichkeiten, wenn man einen Kernel, wie er mit modernen Distributionen (März 2001) ausgeliefert wird, hat:
lilo
Die folgende Zeile muss in der Datei /etc/lilo.conf
hinzugefügt
werden, wenn ein Standard-Debian-Kernel verwendet wird. Falls dort schon
Einträge vorhanden sind, können diese mit Leerzeichen getrennt werden.
append="hdx=ide-scsi ignore=hdx"
Der Anschlussname eines CD-Brenners, der durch den IDE-SCSI-Treiber angesprochen wird, ergibt sich dabei wie folgt: In hdx ist x zu ersetzen gemäß:
hda für den Master am ersten IDE-Anschluss hdb für den Slave am ersten IDE-Anschluss hdc für den Master am zweiten IDE-Anschluss hdd für den Slave am zweiten IDE-Anschluss hde ... hdh für ein Laufwerk an einem externen oder ATA66/100 IDE-Anschluss.
Die neue Lilo-Konfiguration wird mit root-Rechten aktiviert durch:
# lilo # shutdown -h now
Debian benutzt make-kpkg
um einen Kernel zu erstellen. Die Option
--append_to_version ist beim Erzeugen mehrerer Kernel sinnvoll.
Siehe dazu Der Linux-Kernel unter Debian, Kapitel
7.
Nach Eingabe von make menuconfig geht man wie folgt vor:
Die Kernel-Unterstützung für den CD-Brenner kann während des Boot-Prozesses aktiviert werden durch:
# echo ide-scsi >>/etc/modules # echo sg >>/etc/modules # cd /dev; ln -sf scd0 cdrom
Manuelle Aktivierung geschieht durch:
# modprobe ide-scsi # modprobe sg
Nach dem Neustart kann die Installation geprüft werden durch
$ dmesg|less # apt-get install cdrecord # cdrecord -scanbus
[Von Warren Dodge] Manchmal gibt es Konflikte zwischen den
ide-scsi- und ide-cd-Treibern, wenn für beide Treiber
Geräte installiert sind. Durch die folgende Zeile, die zu der Datei
/etc/modutils/aliases
hinzugefügt werden soll, kann das Problem
beseitigt werden. Vor dem Neustart ist noch ein Lauf von
update-modules
nötig.
pre-install ide-scsi modprobe ide-cd
Durch diese Zeile wird der IDE-Treiber vor ide-scsi geladen. Der IDE-Treiber ide-cd übernimmt die Kontrolle über die ATAPI-CD-ROM Geräte – über alle die nicht ignoriert werden sollen. Die anderen bisher ignorierten Geräte übernimmt dann das ide-scsi-Modul.
Um eine bootfähige CD-Image cd-image.raw mit den Dateien unterhalb
vom Zielverzeichnis
zu erzeugen, geht man wie folgt vor: Man legt
eine bootfähige Diskette in das erste Diskettenlaufwerk ein und erzeugt davon
ein Image:
# dd if=/dev/fd0 Zielverzeichnis/boot.img # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \ -o cd-image.raw Zielverzeichnis/
Die -t Option erzeugt die Übersetzungstabelle für lange Dateinamen, -b und -c steht für bootfähig.
Tatsächlich kann sogar eine bootfähige CD mit DOS erstellt werden. Wenn die
Datei boot.img
im obigen Beispiel eine
DOS-Boot-Diskette beinhaltet, dann wird die CD gestartet, als ob diese Diskette
im Diskettenlaufwerk stecken würde. Vielleicht möchte ja mal jemand das mit
Freedos probieren.
Das CD-Image kann man mounten mit:
# mount -t iso9660 -o ro,loop cd-image.raw /cdrom # cd /cdrom # mc # umount /cdrom
Ein erster Test mit einem Double-Speed-Laufwerk sieht so aus (dabei wird keine CD gebrannt, sondern nur simuliert):
# nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img
Falls dies erfolgreich ist, kann die CD-R gebrannt werden:
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
Eine wiederbeschreibbare CD-RW muss zudem erst gelöscht werden:
# nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img
Manche CD-RW-Laufwerke funktionieren besser mit:
# nice --10 cdrecord -v blank=all speed=2 dev=0,0 disk.img
gefolgt von:
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
Diese getrennten Schritte sollen SCSI-Timeouts während des Löschens vorbeugen,
die den Brenn-Prozess stören oder sogar unterbrechen können. Der
nice
-Wert kann noch der Systemlast angepasst werden.
Manche CD-R oder auch kommerzielle CD's haben defekte Sektoren, die eine Kopie
mit dd
verhindern (die Windows 98 CD ist ein Beispiel). Das
cdrecord
Paket beinhaltet den readcd
Befehl, der dann
verwendet werden kann, um CD-Images zu erzeugen. Bei einer Daten-CD ist die
Vorgehensweise wie folgt: Die CD wird gemountet, mount
zeigt dann
die Anzahl der Blöcke an (1 Block=1024 Bytes). Teilt man diese Zahl durch 2,
so erhält man die Anzahl der CD-Blöcke, die 2048 Bytes groß sind.
readcd
liest also die CD z.B. mit folgenden Parametern:
# readcd dev=Ziel,lun,scsibusnr # wähle Funktion 11
Hier sind alle 3 Kommandozeilenparameter meistens 0. Gewöhnlich ist die Anzahl
der Sektoren, die von readcd
zurückgegeben wird, zu hoch! Dann
sollte man die Sektorzahl, die man aus dem mount
Befehl gewonnen
hat, verwenden.
Es sollte bemerkt werden, dass die Verwendung von dd
einige
Probleme bei CD-ROMs hat. Der erste Lauf von dd
kann eine
Fehlermeldung erzeugen und ein kürzeres Image mit unvollständigem Ende zur
Folge haben. Der zweite Lauf von dd
kann zu einem größeren Image
mit am Ende angehangenen falschen Daten führen. Dies ist bei einigen Systemen
möglich, wenn die Größe des Images nicht angegeben wird. Nur der zweite
dd
Aufruf mit der korrekten Größe ohne vorherigen CD-Auswurf nach
der Fehlermeldung scheint diese Probleme zu umgehen. Wenn die von
df
bestimmte Größe des Images z.B. 46301184 Blöcke
ist, muss das folgende Kommando zweimal angewandt werden, um ein korrektes
Image zu erhalten (dies ist eine rein empirische Information):
# dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))
Um aktuelle Informationen zu Debian-CD's zu erhalten, sollte die Debian-CD Seite
besucht werden.
Wenn man eine schnelle Internet-Verbindung hat, kann man auch eine Netz-Installation durchführen:
Disketten-Images
minimales bootbares
CD-Image
.
Wenn man keine schnelle Internet-Verbindung hat, kann man auch einfach ein
Komplettpaket von einem der bekannten CD Distributoren
kaufen.
Bandbreite sollte nie verschwendet werden, deswegen sollte man die Wahl des Installationsmechanismus ruhig besonnen überlegen.
Ein bemerkenswertes Projekt ist KNOPPIX \|[ndash ]\| Linux
Live-Dateisystem auf CD
. Diese CD bootet ein vollständiges
Debian-System völlig ohne Installation.
Um grundlegende Konfigurations- und Datendateien auf CD zu sichern, kann das
"backup" Skript backup
verwendet
werden. Siehe dazu auch Kopieren und
Archivieren eines Unterverzeichnis, Abschnitt 8.3 und Differenzielles Backup und
Datensynchronisation, Abschnitt 8.4.
Noch nicht ausreichend getestet ist folgendes:
# apt-get install cdrecord cdparanoia # cdparanoia -s -B # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav
oder
# apt-get install cdrdao # disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # CD auslesen # cdrdao write --device /dev/cdrom --speed 8 my_cd # auf neue CD schreiben
cdrdao
erzeugt eine echte Kopie (ohne Sprünge, etc.).
Die graphische Arbeitsumgebung X wird von Xfree86
bereitgestellt. Derzeit sind
zwei Hauptvarianten bei Debian in Benutzung: Version 3.x und 4.x.
Diese Definition kehrt den gewöhnlichen Gebrauch der Begriffe Client und Server
um. Eine Erklärung hierfür liefert: X(7)
, das LDP XWindow-User-HOWTO
und die Remote X Apps
mini-HOWTO
.
Es gibt verschiedene Wege, um X-basierte Programme, die lokal angezeigt werden sollen ("X-Server seitig"), auf einem fremden Rechner (einem "X-Client") zu starten.
xhost
xhost
, Abschnitt
9.4.7 und xhost(1x)
.
xauth
xhost
).
ssh
-X
).
xauth(1x)
.
xdm
, wdm
, gdm
, kdm
, ...
xauth
).
xdm(1x)
und Xsecurity(7)
für die Erklärung der
Grundlagen der X-Zugriffskontrolle
wdm(1x)
, gdm(8)
, und
kdm.options(5)
für weitere Informationen.
init
und Runlevel,
Abschnitt 6.5.4 um das graphische Login mit xdm
abzuschalten,
ohne das Paket zu deinstallieren.
ssh -X
ssh
, Abschnitt
9.4.8.
Alle Netzzugänge zum X-System (außer SSH
) erfordern TCP/IP
Verbindungen. Siehe TCP/IP-Verbindungen mit X, Abschnitt
9.4.6.
Es gibt einige Metapakete, um die Installation von X zu vereinfachen.
x-window-system-core
xserver-xfree86
), eine Reihe von Schriften und einige
X-Client-Programme und Werkzeuge.
x-window-system
x-window-system-core
, twm
und
xdm
ab. Das bedeutet, diese Abhängigkeiten werden automatisch
aufgelöst und diese Pakete müssen nicht manuell zur Installation ausgewählt
werden.
xserver-common-v3
xserver-*
xserver-common-v3
ab.)
In den meisten Fällen allerdings sollte das Paket x-window-system
installiert werden. (Möchte man keinen grafischen Login, sollte das Paket
xdm
entfernt werden. Eine genaue Beschreibung dieses Vorganges
findet sich im Kapitel Abschalten von X
beim Booten, Abschnitt 8.1.4.)
Um eine automatische Hardware-Erkennung durchzuführen, braucht man folgende Pakete, die vor der X-Installation vorhanden sein sollten:
discover
– Hardwareerkennungssystem.
mdetect
– Maus-Erkennung.
read-edid
– Informations-Werkzeug für VESA PnP Monitore.
Siehe XFree86(1x)
für weitere Informationen zum X-Server.
Der X-Server kann direkt von der Konsole gestartet werden:
$ startx -- :<display> vtXX z.B.: $ startx -- :1 vt8 -bpp 16 ... startet auf vt8 am Rechner localhost:1 mit 16 bpp-Farbmodus.
Argumente nach dem -- werden an den X-Server weitergeleitet.
Wenn eine ~/.xserverrc
Konfigurationsdatei verwendet wird, um das
Starten des X-Servers genauer im Griff zu haben, muss darauf geachtet werden,
dass der Server auch explizit mit exec gestartet wird, sonst
werden Start und Beenden des Servers sehr langwierig:
#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Um den X4-Server zu konfigurieren kann dpkg
benutzt werden.
# dpkg-reconfigure --priority=low xserver-common # dpkg-reconfigure --priority=low xserver-xfree86
Es wird eine /etc/X11/XF86Config-4
Datei erzeugt, die mit dem
Skript dexconf
modifiziert werden kann.
Um den X3-Server zu konfigurieren kann auch dpkg
benutzt werden.
# dpkg-reconfigure --priority=low xserver-common-v3 # dpkg-reconfigure --priority=low xserver-mach64
Die Konfigurationsdatei von X3 heißt /etc/X11/XF86Config
und wird
mit xf86config-v3
bearbeitet.
Um Benutzer spezifische Einstellungen vorzunehmen, darf nicht der Text verändert werden, der von debconf erstellt wurde, also ist der Bereich zwischen dem BEGIN und dem END tabu.
### BEGIN DEBCONF SECTION [snip] ### END DEBCONF SECTION
Statt dessen können die Anpassungen vor dem BEGIN eingetragen werden, wie in dem folgenden Beispiel:
Section "Device" Identifier "Custom Device" Driver "ati" Option "NoAccel" EndSection Section "Screen" Identifier "Custom Screen" Device "Custom Device" Monitor "Generic Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 16 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 24 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection EndSection Section "ServerLayout" Identifier "Custom" Screen "Custom Screen" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" "CorePointer" EndSection
Die meisten X-Programme können einfach von der Kommandozeile aus gestartet werden:
client $ xterm -geometry 80x24+30+200 -fn 6x10 -display hostname:0 &
Die hier angeführten Parameter bedeuten:
/tmp/.X11-unix/XD
(so ist es nur auf dem
Rechner host erreichbar).
Der Standard displayname für die X-Client-Programme kann mit der DISPLAY Umgebungsvariablen gesetzt werden. Bevor man nun ein X-Programm startet kann die Umgebungsvariable z.B. wie folgt gesetzt werden:
$ export DISPLAY=:0 # Die Standardeinstellung $ export DISPLAY=hostname.fulldomain.name:0.2 $ export DISPLAY=localhost:0
Der Start kann in der Datei ~/.xinitrc
konfiguriert werden. Zum
Beispiel:
xrdb -load $HOME/.Xresources xsetroot -solid gray & xclock -g 50x50-0+0 -bw 0 & xload -g 50x50-50+0 -bw 0 & xterm -g 80x24+0+0 & xterm -g 80x24+0-0 & twm
Wie in Angepasste X-Sitzung, Abschnitt 9.4.5.1
beschrieben, haben diese Einstellungen Vorrang vor denen von Xsession, welches
bei startx
verwendet wird. Diese Methode sollte nicht verwendet
werden.
Eine X-Session kann auf folgende Weisen gestartet werden:
startx
: ein Skript, das initx
und so den X-Server und
Client auf der Konsole startet. Wenn die Datei ~/.xinitrc
nicht
existiert, wird /etc/X11/Xsession
via
/etc/X11/xinit/xinitrc
ausgeführt.
xdm
, gdm
, kdm
oder wdm
:
Dies sind Daemonprogramme, die den Login von einer bereits gestarteten
graphischen Oberfläche ermöglichen. /etc/X11/Xsession
: direktes
Starten.
Die Konsole erhält man mittels Abschalten von X beim Booten, Abschnitt 8.1.4.
Im Endeffekt ist der Start durch /etc/X11/Xsession
nur eine
Kombination von
/etc/X11/Xsession.d/50xfree86-common_determine-startup
und
/etc/X11/Xsession.d/99xfree86-common_start
.
Die Ausführung von /etc/X11/Xsession
wird beeinflusst durch
/etc/X11/Xsession.options
und ist im Wesentlichen bestimmt für die
Ausführung des ersten Programms, das in folgenden Skripten durch 'exec'
ausgeführt wird:
~/.xsession
oder ~/.Xsession
, wenn vorhanden.
/usr/bin/x-session-manager
, wenn vorhanden.
/usr/bin/x-window-manager
, wenn vorhanden.
/usr/bin/x-terminal-emulator
, wenn vorhanden.
Was nun genau gestartet wird, hängt von den Einstellungen des Debian-Alternativen-Systems ab, wie es in Alternative Befehle, Abschnitt 6.5.3 erklärt wird. Zum Beispiel:
# update-alternatives --config x-session-manager ... oder # update-alternatives --config x-window-manager
Um einen anderen X-Window-Manager einzustellen als die Voreinstellung und
dennoch KDE oder Gnome als Sitzungsmanager beizubehalten, muss die Datei
/etc/X11/Xsession.d/50xfree86-common_determine-startup
durch die
im zweiten Fehlerreport (siehe http://bugs.debian.org/168347
)
ersetzt werden. (Ich hoffe, dass dies bald mit aufgeführt wird.) Dann kann die
Datei /etc/X11/Xsession.options
wie folgt geändert werden, um den
X-Sitzungsmanager zu umgehen:
# /etc/X11/Xsession.options # # configuration options for /etc/X11/Xsession # See Xsession.options(5) for an explanation of the available options. # Default enabled allow-failsafe allow-user-resources allow-user-xsession use-ssh-agent # Default disabled (enable them by uncommenting) do-not-use-x-session-manager #do-not-use-x-window-manager
Ohne die gezeigten Veränderungen sind die Pakete gnome-session
und
kdebase
dafür zuständig, einen X-Sitzungsmanager bereitzustellen.
Das Entfernen dieser beiden Pakete ermöglicht die Einstellung eines beliebigen
X-Window-Managers.
Wenn die Datei /etc/X11/Xsession.options
eine Zeile wie
allow-user-xsession (ohne führende Zeichen) enthält, kann der
Benutzer die Datei ~/.xsession
oder ~/.Xsession
für
eine beliebige benutzerseitige Erweiterung der Datei
/etc/X11/Xsession
verwendet werden.
Der letzte Befehl in ~/.xsession
sollte die Form exec
some-window/session-manager haben, um den Window-Manager zu
starten.
Ein gutes Beispiel für eine ~/.xsession
Datei findet sich hier:
/usr/share/doc/xfree86-common/examples/xsession.gz
.
Ich benutze dies, um den Window-Manager, Bildschirmzugang und die Sprache für jeden Benutzer einzeln zu setzen. Siehe Start eines gewählten X-Sitzungs-/Window-Managers, Abschnitt 9.4.5.2, Administratorrechte unter X, Abschnitt 9.4.11 und Beispiel für ein zweisprachiges System (japanisches EUC und ISO-8859-1), Abschnitt 9.7.8.
Benutzerspezifische X-Einstellungen können in ~/.Xresources
gespeichert werden, wohingegen sich systemweite Einstellungen in
/etc/X11/Xresources/*
befinden. Siehe xrdb(1x)
.
Benutzerspezifische Tastaturbelegungen und Maustastenbelegungen können in
~/.xmodmaprc
definiert werden. Siehe xmodmap(1x)
.
Eine benutzergewählte Sitzungs-/Window-Manager-Konfiguration kann also gemäß Angepasste X-Sitzung, Abschnitt 9.4.5.1 in
~/.xsession
durch das Ändern der letzten Zeile eingestellt werden.
(Ich mag blackbox wegen dessen Geschwindigkeit und Einfachheit):
gnome-session
kdebase
(oder kdebase3
für KDE3)
blackbox
icewm
fvwm
wmaker
enlightenment
Siehe X-Window-Manager
.
Um eine komplette KDE/Gnome-Umgebung einzurichten empfiehlt sich die Installation der folgenden Metapakete:
kde
Paket
gnome
Paket
Es sollte ein Installationswerkzeug gewählt werden, das die
Installationsempfehlungen (recommends) des Paketes auflösen kann;
dies sind u.a. dselect
und aptitude
. Sie sind
menügesteuert und können auch durch die automatische Abhängigkeitserfassung die
Installation im Vergleich zu apt-get
beschleunigen und
erleichtern.
Wer nur ein Konsolen-Login benötigt, sollte die Login-Manager kdm
,
gdm
, wdm
oder auch xdm
nicht
installieren (d.h. wieder markieren zur nicht-Installation), die
bei einer Installation von X schnell automatisch mit ausgewählt werden.
Erklärung hierzu in Abschalten von X
beim Booten, Abschnitt 8.1.4.
Wenn Gnome anstelle von KDE als Sitzungsmanager gewünscht wird, muss dies der
x-session-manager
, wie in Alternative Befehle, Abschnitt
6.5.3 beschrieben, geändert werden.
Da X-TCP/IP-Verbindungen nicht verschlüsselt werden, besteht bei
Fernverbindungen die Gefahr des Abgehörtwerdens. Aus diesem Grund ist in
Debian die Standardeinstellung so gewählt, dass TCP/IP-Socket deaktiviert ist.
Eine TCP/IP-Verbindung auch zur Übertragung von graphischen Elementen kann aber
sicher mit ssh
erzeugt werden. Siehe dazu X-Fernverbindungen mit ssh
, Abschnitt 9.4.8.
Die Methode, die hier im folgenden beschrieben wird, ist also nur in Umgebungen zu empfehlen, die als sicher charakterisiert werden können, wie z.B. ein hinter einer gut gewarteten Firewall agierendes Intranet oder ein kleines Heimnetzwerk. Mit dem folgenden Befehl kann die momentane X-Server-Einstellung bzgl. TCP/IP herausgefunden werden:
# find /etc/X11 -type f -print0 | xargs -0 grep nolisten /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Entfernen von -nolisten stellt das Lauschen auf dem X-Server wieder ein.
xhost
xhost
erlaubt Zugriff auf den X-Server basierend auf dem Namen des
Rechners. Dies ist sehr unsicher. Das folgende Beispiel unterdrückt den Test
der Rechnernamen und erlaubt so Verbindungen von jedem Rechner aus, falls
TCP/IP-Socket ebenfalls aktiviert sind. (Siehe auch TCP/IP-Verbindungen mit X, Abschnitt 9.4.6):
$ xhost +
Das Testen der Rechnernamen kann wieder aktiviert werden mit:
$ xhost -
xhost
kann keine Unterscheidung auf Benutzerebene vornehmen.
Desweiteren können Rechnernamen natürlich gefälscht werden.
Diese Methode sollte nicht verwendet werden, wenn man sich in einer
ungesicherten Netzumgebung befindet – dies betrifft auch Wählverbindungen
mittels PPP. Siehe xhost(1x)
.
ssh
Die Verwendung von ssh
ermöglicht die sichere Übertragung von
Daten von einem lokalen X-Server zu einem Applikations-Server.
/etc/ssh/sshd_config
die Einträge X11Forwarding und AllowTcpForwarding auf
yes.
xterm
auf dem lokalen Rechner.
ssh
um eine Verbindung zu dem entfernten Rechner
aufzubauen.
localname @ localhost $ ssh -q -X -l loginname remotehost.domain Password: ...
loginname @ remotehost $ gimp &
Diese Methode erlaubt es, die graphische Ausgabe eines X-Clients anzuzeigen, als liefe er über den lokalen Unix-Domain-Socket.
xterm
Alles was mit xterm
zu tun hat, findet man hier: http://dickey.his.com/xterm/xterm.faq.html
.
Viele ältere X-Programme, wie z.B. xterm, verwenden die X-Ressourcen, um ihr
Erscheinungsbild zu konfigurieren. Die Datei ~/.Xresources
wird
verwendet um derartige Daten benutzerabhängig zu speichern. Die Datei wird
automatisch während des Logins an die systemweiten Einstellungen angehängt.
Es folgen einige nützliche Einstellungen, die man in ~/.Xresources
vornehmen kann.
! Die Schrift in den Terminals vergrößern: XTerm*font: 9x15 ! Scrollbalken anzeigen XTerm*scrollBar: true ! Puffergröße einstellen XTerm*saveLines: 1000
Diese Einstellungen können auch sofort aktiviert werden durch:
xrdb -merge ~/.Xresources
Wenn ein graphisches Programm mit root-Rechten gestartet werden muss, müssen einige Vorkehrungen getroffen werden. Keinesfalls sollte man als Superuser einen X-Server starten, wegen der beträchtlichen Sicherheitsrisiken.
Man startet den X-Server als gewöhnlicher Benutzer und öffnet ein
xterm
Fenster. Dann folgen:
$ XAUTHORITY=$HOME/.Xauthority $ export XAUTHORITY $ su root Password:***** # printtool &
Wenn man diesen Trick verwendet und sich mit su
als ein
Nicht-root-Benutzer anmeldet, muss darauf geachtet werden, dass die Datei
~/.Xauthority
für diesen speziellen Benutzer Gruppen-lesbar ist.
Um diesen Vorgang zu automatisieren, kann der betreffende Benutzer eine Datei
~/.xsession
anlegen, die folgende Zeilen enthält.
# So funktioniert X auch wenn su benutzt wurde. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi unset XSTARTUP # Wenn ein besonderer Window/Sitzungsmanager gewünscht wird # kann der hier eingestellt werden. #XSTARTUP=/usr/bin/blackbox # This start x-window/session-manager program if [ -z "$XSTARTUP" ]; then if [ -x /usr/bin/x-session-manager ]; then XSTARTUP=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then XSTARTUP=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then XSTARTUP=x-terminal-emulator fi fi # Ausführung des Window/Sitzungsmanagers. exec $XSTARTUP
Nun kann su
(nicht su -) in einem xterm
Fenster vom Benutzer gestartet werden. Auch graphische Programme, die von der
Shell mit Superuser-Rechten gestartet wurden, können nun angezeigt werden.
Dieser Trick funktioniert nur solange, wie die übliche
/etc/X11/Xsession
ausgeführt wird. Wenn der Benutzer eine eigene
Datei ~/.xinit
oder ~/.xsession
Datei anlegt, muss
die oben erwähnte Umgebungsvariable XAUTHORITY an diese Skripte
angepasst werden.
Alternativ, kann das Paket sudo
verwendet werden, um diese Sequenz
abzuarbeiten.
$ sudo xterm ... oder $ sudo -H -s
Hier muss die /root/.bashrc
folgendes enthalten:
if [ $SUDO_USER ]; then sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge - fi
Dies funktioniert auch, wenn das Home-Verzeichnis des Benutzers mit NFS
gemountet wird, da root die Datei .Xauthority
nicht lesen muss.
There are also several specialized packages for this purpose:
kdesu
, gksu
, gksudo
,
gnome-sudo
, and xsu
. Some other methods can be used
to achieve similar results: creating a symlink from
/root/.Xauthority
to the user's corresponding one; use of the
script sux
; or putting
"xauth merge ~USER_RUNNING_X/.Xauthority" in
the root initialization script.
See more on the debian-devel
mailing list
.
Der Standard-X-Font-Server xfs
in Free86-4 kommt problemlos mit
TrueType Schriften zurecht. Wenn man XFree86-3 verwendet, braucht man
zusätzlich den Font-Server xfs-xtt
.
Wenn man selbst Programme kompiliert, muss man darauf achten, diese gegen libXft oder libfreetype zu linken. Wenn man nur die Pakete aus der Distribution verwendet, gibt es weiter nichts zu beachten.
Zu den neuen Schriften müssen die Dateien fonts.{scale,dir}
erzeugt werden, da diese nötige Verwaltungsinformationen für den X-Server
bereitstellen.
Da freie Schriften oft eingeschränkt sind, kann das Installieren von Shareware- oder kommerziellen TrueType-Schriften eine Alternative sein. Um diesen Schritt zu vereinfachen, gibt es einige Pakete:
ttf-commercial
msttcorefonts (>1.1.0)
(Dieses Paket funktioniert in Woody seit
August 2002 nicht mehr, da Microsoft die von dem Paket geladenen Schriften vom
Server entfernt hat.)
Man muss schon eine gute Auswahl an Schriften haben, um das besonders frei gestaltete System mit kommerziellen Schriften zu 'verunreinigen'.
Es gibt eine Handvoll graphischer Web-Browser in Debian
mozilla
Der Mozilla-Browser (neu)
galeon
Mozilla-basierter Browser mit Gnome Benutzeroberfläche
(neu)
konqueror
KDE-Browser
dillo
GTK-Browser
amaya-gtk
W3C-Referenz-Browser
amaya-lesstif
W3C-Referenz-Browser
netscape-...
(viele, alt)
communicator-...
(viele, alt)
Die Version des mozilla
muss zu der galeon
Version
passen, da zweiteres die Gecko-HTML-Rendering-Engine des ersteren verwendet.
Plugins für die Browser wie mozilla
und galeon
können
installiert werden, indem man einfach die "*.so" in das
entsprechende Plugin-Verzeichnis kopiert (dies findet man z.B. mit
locate libnullplugin).
Erhältliche Plugins:
http://java.sun.com
.
http://www.macromedia.com/software/flashplayer/
.
freewrl
: VRML-Browser und Netscape-Plugin
SSH (Secure SHell) ist ein sicheres Werkzeug, um Verbindungen über das Internet
herzustellen. Eine freie Version von SSH namens OpenSSH ist als
openssh
Paket in Debian enthalten.
Zunächst müssen der OpenSSH-Server und -Client installiert werden.
# apt-get update && apt-get install ssh
In /etc/apt/sources.list
muss ein non-US-Eintrag vorhanden sein
und es darf keine Datei /etc/ssh/sshd_not_to_be_run
bestehen.
SSH beherrscht zwei Arten von Authentisierungsprotokollen:
.rhosts
kombiniert
mit RSA Host-Schlüssel (auch deaktiviert)
.rhosts
oder
/etc/hosts.equiv
Authentisierung kombiniert mit Public-Key Rechner
Authentisierung (disabled)
Die unterschiedlichen unterstützten Protokolle müssen beachtet werden, wenn man von oder nach Woody migriert, da man sonst vielleicht keine SSH-Verbindungen mehr zu den gewohnten Rechnern aufbauen kann.
Siehe dazu auch /usr/share/doc/ssh/README.Debian.gz
,
ssh(1)
, sshd(8)
, ssh-agent(1)
und
ssh-keygen(1)
für Details.
Die wichtigsten Konfigurationsdateien für SSH sind:
/etc/ssh/ssh_config
: SSH-Client Voreinstellungen. Siehe
ssh(1)
. Wichtige Einträge sind:
/etc/ssh/sshd_config
: Voreinstellungen des SSH-Servers. Siehe
sshd(8)
. Wichtige Einträge sind:
sshd
lauscht. Hier sind mehrere möglich.
$HOME/.ssh/authorized_keys
: In dieser Datei liegt die Liste der
voreingestellten öffentlichen Schlüssel ('public keys'), mit denen Clients sich
mit dem System verbunden haben. Siehe ssh-keygen(1)
.
$HOME/.ssh/identity
: Siehe ssh-add(1)
und
ssh-agent(1)
.
Mit folgendem Kommando kann man eine ssh
-Verbindung aufbauen:
$ ssh username@hostname.domain.ext $ ssh -1 username@hostname.domain.ext # SSH version 1 erzwungen
ssh
ersetzt so auf sichere und praktische Weise
telnet
.
Um eine Weiterleitung ('pipe') einzurichten, die den Port 25 eines entfernten
Servers (remote-server) auf den Port 4025 lokal und den Port 110 des
entfernten Servers auf den Port 4110 auf dem lokalen Rechner einzurichten, kann
ssh
folgendermaßen benutzt werden:
# ssh -q -L 4025:remote-server:25 4110:remote-server:110 \ benutzername@remote-server
Auf diese Weise können sichere SMTP/POP3-Übertragungen realisiert werden. Man
setze die Option AllowTcpForwarding auf yes in der
Datei /etc/ssh/sshd_config
auf dem entfernten Rechner.
Man kann die sich immer wiederholende Eingabe von Passwörtern umgehen, wenn man auf das RSAAuthentication (SSH1 Protokoll)-Verfahren, bzw. PubkeyAuthentication (SSH2 Protokoll)-Verfahren zurückgreift.
Auf dem entfernten System wird dazu in der Konfigurationsdatei
/etc/ssh/sshd_config
"RSAAuthentication yes" bzw.
"PubkeyAuthentication yes" gesetzt.
Dann werden Schlüssel lokal erzeugt und der dazugehörige öffentliche Schlüssel auf dem entfernten System hinterlegt.
$ ssh-keygen # RSAAuthentication: RSA1 Schlüssel für SSH1 $ cat .ssh/identity.pub | ssh benutzer1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t rsa # PubkeyAuthentication: RSA Schlüssel für SSH2 $ cat .ssh/id_rsa.pub | ssh benutzer1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t dsa # PubkeyAuthentication: DSA Schlüssel für SSH2 $ cat .ssh/id_dsa.pub | ssh benutzer1@remote \ "cat - >>.ssh/authorized_keys"
Später kann das Passwort mit "ssh-keygen -p" neu gesetzt werden. Bei Problemen können vermehrt Statusinformationen ausgegeben werden mit: "ssh -v".
In der Datei authorized_keys
können zu einem beliebigen Rechner
Optionen hinzugefügt werden, um dort z.B. Kommandos auszuführen. Siehe
sshd(8)
für weitere Details.
SSH2 verfügt über HostbasedAuthentication. Damit dies
funktioniert, muss auf dem Server in der Datei
/etc/ssh/sshd_config
HostbasedAuthentication auf
yes gesetzt werden, desgleichen in
/etc/ssh/ssh_config
oder $HOME/.ssh/config
auf dem
Client.
Es gibt einige freie SSH-Client-Programme auf nicht-Unix-artigen Plattformen.
puTTY
(GPL)
cygwin
(GPL)
macSSH
(GPL) [Mac OS X
beinhaltet OpenSSH; es wird gestartet mit ssh im Terminal]
Siehe auch SourceForge.net, site
documentation
, "6. CVS Instructions".
Der öffentliche Schlüssel kann einfach in der Datei
~/.ssh/authorized_keys
hinterlegt werden, worauf er von ssh
anerkannt wird.
$ ssh-agent $ # die Ausgabe in der Shell einfügen $ ssh-add .ssh/identity $ # oder ssh-add .ssh/id_dsa oder wie auch immer der private Schlüssel heißt $ scp remote.host.with.public.key
Weitere Informationen liefern ssh-agent(1)
und
ssh-add(1)
.
Wenn Probleme bei der Benutzung von ssh
auftreten, sollte man
zuerst einmal die Berechtigungen der Konfigurationsdateien mittels der
ssh
Option -v prüfen.
Wenn man root-Rechte hat, kann mit -P die Benutzung der Ports 1–1023 unterbunden werden, welche bei Firewalls Schwierigkeiten bereiten.
Wenn ssh
-Verbindungen, die ursprünglich funktionierten plötzlich
nicht gestartet werden können, hat der Systemadministrator wahrscheinlich die
Datei host_key
geändert. Nachdem man sich vergewissert hat, dass
dies der Fall ist und es sich nicht um den Versuch handelt, eine Verbindung zu
einem gehackten Rechner zu etablieren, kann einfach die zu dem Remote-Rechner
gehörige host_key
Zeile in der Datei
$HOME/.ssh/known_hosts
gelöscht werden. Bei der nächsten
Verbindungsaufnahme wird die Zeile neu generiert.
Die E-Mail Konfiguration eines Systems zerfällt in drei Kategorien:
exim
procmail
, fetchmail
,
mail
, ...
mutt
Literatur:
exim-doc
und exim-doc-html
Pakete
http://www.exim.org/
Wenn exim
als MTA eingesetzt wird, müssen die folgenden Dateien
angepasst werden:
/etc/exim/exim.conf "eximconfig" bearbeitet diese Datei /etc/inetd.conf durch Auskommentieren von smtp läuft exim als Daemon /etc/email-addresses Add spoofed source address lists Die Filter können mittels exim -brw, -bf, -bF, -bV, ... getestet werden.
In der Datei /etc/exim/exim.conf
(Woody oder später), kann am Ende
des Abschnittes DIRECTORS (gleich nach localuser: director) ein Ausdruck
eingefügt werden, der auf alle Email-Adressen passt, die vorher nicht aufgelöst
werden konnten (nach Miquel van Smoorenburg):
catchall: driver = smartuser new_address = webmaster@mydomain.com
Wer eine komplexere Anordnung von virtuellen Domänen angelegt hat, wird an das
Ende der Datei /etc/exim/exim.conf
einen Eintrag wie folgt
vornehmen: (von mir, nicht sehr ausführlich getestet):
*@yourdomain.com ${lookup{$1}lsearch*{/etc/email-addresses} \ {$value}fail} T
Dazu benötigt man einen "*" Eintrag in der Datei
/etc/email-addresses
.
Mit exim
kann auch die From: Zeile der ausgehenden Emails
manipuliert werden. Auch dies kann in der exim
Konfigurationsdatei /etc/exim/exim.conf
erledigt werden:
*@host1.something.dyndns.org \ "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1} \ {$0}{$1@somethig.dyndns.org}}" frFs
Dies schreibt alle Adressen um, die auf den Ausdruck *@host1.something.dyndns.org passen.
/etc/password
nachgesehen, ob der Ausdruck $1 auf
einen lokalen Benutzer zutrifft.
fetchmail
wird im Daemon-Modus gestartet und ist für die Abholung
von Email von POP3-Accounts von einem ISP zuständig, um die Mails dann in das
lokale Email-System einzufügen. Die Konfiguration geschieht über die Dateien:
/etc/init.d/fetchmail /etc/rc?.d/???fetchmail startet update-rc.d fetchmail Default Priorität 30 /etc/fetchmailrc Konfigurationsdatei (chown 600, Besitzer ist fetchmail)
In der alten Debian-Version Potato war das Starten von fetchmail aus
init.d
heraus noch schwierig. Dies ist mit Woody behoben.
Beispiele sind außerdem zu finden in den Dateien
/etc/init.d/fetchmail
und /etc/fetchmailrc
unter der
Adresse example scripts
.
Wenn im Email-Kopf ^M Zeichen vorkommen, sollte "stripcr" in den
Optionen der Datei $HOME/.fetchmailrc
hinzugefügt werden:
options fetchall no keep stripcr
procmail
ist ein Programm zur lokalen Mail-Zustellung und kann
auch als Filter verwendet werden. Die Datei $HOME/.procmailrc
wird für jeden Benutzer benötigt. Beispiel: _procmailrc
Ein beliebtes Email-Programm für die Konsole ist mutt
in
Kombination mit vim
. Einstellungen liegen in
~/.muttrc
; z.B.
# diese Einstellungen modifizieren # das Verhalten des Editors. set editor="vim -c 'set tw=72 et ft=mail'" # # header weeding taken from the manual (Sven's Draconian header weeding) # ignore * unignore from: date subject to cc unignore user-agent x-mailer hdr_order from subject to cc date user-agent x-mailer auto_view application/msword ...
Um HTML-Email oder MS-Word-Dokumente als Text anzeigen zu können, muss
antiword
installiert sein und folgende Zeilen an entweder
/etc/mailcap
(global) oder $HOME/.mailcap
(per User)
angehängt werden.
text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
Debian ist eine internationale Distribution, die eine wachsende Anzahl an Sprachen und regionaler Besonderheiten berücksichtigt. Die folgenden Abschnitte zeigen, in welcher Form Debian dies bewerkstelligt und an welchen Stellen eine Lokalisierung eingestellt werden kann. Dies betrifft in erster Linie Ein- und Ausgaben in der jeweiligen Muttersprache, Daten, numerische und finanzielle Formate, die von System zu System unterschiedlich sein können.
Es folgen die wichtigsten Anpassungen für die Lokalisierung.
Debian stellt Tastaturbelegungen für nahezu zwei Dutzend Tastaturvarianten bereit. In Woody, können diese eingestellt werden mit:
Die große Mehrheit an Debian-Software unterstützt den Umgang mit nicht-US-ASCII-Zeichen durch die LC_CTYPE Umgebungsvariable, welche den locale-Mechanismus der glibc konfiguriert.
X-Windows kann jede Zeichen-Kodierung anzeigen, inklusive UTF-8 und unterstützt viele Schrifttechnologien. Die Unterstützung reicht über 8-bit-Schriften über 16-bit-Schriften für Chinesisch, Japanisch oder Koreanisch. Multi-byte-Zeichen werden über den XIM-Mechanismus unterstützt. Siehe Beispiel für ein zweisprachiges System (japanisches EUC und ISO-8859-1), Abschnitt 9.7.8.
Japanischer EUC-Kode kann auch (mit dem Paket kon2
) auf der
(S)VGA-Konsole angezeigt werden. Eine neue Möglichkeit, welche die FB-Konsole
verwendet ist jfbterm
. In diesen Umgebungen muss allerdings die
Applikation selbst die Unterstützung dieser Sprachen mitbringen.
egg
ist ein Paket für Emacs und jvim
ein
japanisiertes Vim.
Viele Text-Nachrichten und Dokumente für das Debian-System liegen übersetzt vor, z.B. Fehlermeldungen, Standardausgaben, Menüs und Handbuchseiten. Derzeit gibt es Projekte zur Übersetzung in: Deutsch, Spanisch, Finnisch, Französisch, Ungarisch, Italienisch, Japanisch, Koreanisch und Polnisch. Hierzu muss natürlich das entsprechende Paket in der Form manpages-LANG installiert sein. (LANG ist hier ein eindeutiger Sprachkennzeichner gemäß den zweibuchstabigen ISO-Länderkodes.) Um herauszufinden, welche Pakete zur Auswahl stehen, kann apt-cache search manpages-|less verwendet werden.
Um eine NLS Handbuchseite anzuzeigen, muss die Umgebungsvariable LC_MESSAGES
gesetzt sein. Um z.B. deutsche Handbuchseiten zu sehen, muss
LC_MESSAGES=de gesetzt sein. Das man
Programm wird
die Handbuchseite dann in /usr/share/man/de/
suchen.
Debian unterstützt die locale Technologie. Locale ist ein System zur Ausgabe von Zeichen, Daten und Zeiten und Währungseinheiten entsprechend lokaler Gegebenheiten. Es verwendet Umgebungsvariablen, um die Region festzustellen. Wenn z.B. englische und deutsche locale Pakete installiert sind, werden die Fehlermeldungen mehrsprachig.
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
Diese Funktionalität wird von der glibc bereitgestellt.
(localeconf
erlaubt eine komfortable Konfiguration der
locale-Einstellungen.) Siehe auch locale(7)
.
Debian hat nicht alle verschiedenen Sprachen einkompiliert. Die Datei
/usr/lib/locale
zeigt, welche Sprachen sofort verfügbar sind
(neben der Standardeinstellung "C"). Wenn die benötigte Sprache
fehlt, gibt es zwei Möglichkeiten:
/etc/locale.gen
, anschließend
locale-gen
starten, um die Locale zu erzeugen. Siehe dazu
locale-gen(8)
und die Handbuchseiten im "SEE
ALSO"-Abschnitt dieser Handbuchseite.
locales
Paket
neu zu konfigurieren. Auch bei Neuinstallation des Paketes
locales
wird das Konfigurationstool gestartet, so dass alle
Einstellungen vorgenommen werden können.
Die folgenden Umgebungsvariablen werden ausgewertet, um die lokalen Formate zu berücksichtigen.
Mögliche LC_*-Variablen sind:
Einige Programme ignorieren allerdings diese Variablen. In der Regel haben diese Programme ein eigenes Sprachen-Management (z.B. Netscape Navigator 4).
Das locale
-Programm kann die aktiven locale-Einstellungen sowie
andere installierte locale anzeigen. Siehe locale(1)
. (NOTIZ:
locale -a zeigt alle locales an, die das System kennt; das
bedeutet nicht, dass sie verwendbar sind (weil unübersetzt). Aktivierung der Lokalisierung, Abschnitt 9.7.3.)
Die Unterstützung für die Darstellung des internationalen Datums wird durch die
locale en_DK – Englisch in Dänemark –
in Form des ISO 8601-Standards (yyyy-mm-dd) geleistet. Dies
scheint aber nur für die Konsole mit ls
zu funktionieren.
Zu der Datei ~/.bash_profile
folgendes hinzufügen:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE
Zu der Datei ~/.bash_profile
folgendes hinzufügen:
LANG=fr_FR@euro export LANG LC_CTYPE=fr_FR@euro export LC_CTYPE
Die Tastatur kann auf das deutsche "QWERTZ" umgestellt werden wie
beschrieben in Tastatur, Abschnitt 9.7.1.1. Die
deutschen Handbuchseiten befinden sich im Paket manpages-de
. Die
rechte Alt-Taste heißt in Europa Alt-Gr. Durch Drücken dieser Taste können
diverse Sonderzeichen erreicht werden. So erzeugt z.B. AltGr-E das
Euro-Symbol.
Die meisten westeuropäischen Sprachen können wie beschrieben eingestellt werden.
Siehe Debian Euro
HOWTO
für die Konfiguration des Euro-Symbols. Das Paket XXX für
weitere Details zur Nutzung deutscher Anpassungen.
In diesem Beispiel wird ein System aufgesetzt, das japanisch und englisch unterstützt. Die Umgebungsvariable für die japanische Sprache heißt in diesem Fall ja_JP.eucJP (japanisches EUC für traditionelle japanische Unix Umgebung). Die Unterstützung betrifft X mit gleichzeitig englischen Ausgaben und Datumsangaben nach ISO-Standard. Hinzu kommt Englisch als primäre Sprache der Text-Konsole mit der Umgebungseinstellung en_US.ISO-8859-1 (ASCII mit zusätzlichen Akzenten).
canna
– Lokaler Server (NEC free-license) oder
freewnn-jserver
– Netzwerk-basierter erweiterbarer Server
(Public Domain)
kinput2-canna
– für X oder
kinput2-canna-wnn
– für X und
egg
– funktioniert mit Emacsen, optional auch im
Konsole-Modus
kterm
– X (klassisch),
mlterm
– X (sehr nett, verschiedene Schriftgrößen) und
startx
,
xdm
, ...)
~/.xsession
Datei erzeugt, in der die
Einstellungen vorgenommen werden:
#!/bin/sh # This makes X work when I su to root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Japanische locale als Default, C locale als Backup LANG=ja_JP.eucJP export LANG # In der Konsole wollen wir en_US.ISO-8859-1 LC_CTYPE=ja_JP.eucJP export LC_CTYPE # menu-Nachrichten in Englisch und ASCII :-) LC_MESSAGES=C export LC_MESSAGES # aktiviere Eingabe-Methode kinput2 & XMODIFIERS=@im=kinput2 export XMODIFIERS # blackbox ist ein guter Window-Manager (lightweight) exec /usr/bin/blackbox
~/.bash_profile
hinzu:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE # Für ISO yyyy-mm-dd Datumsanzeige kommt dem japanischen mehr entgegen LC_TIME=en_DK.ISO-8859-1 export LC_TIME
~/.muttrc
hinzugefügt werden:
# UTF-8 Unterstützung ist in Japan bei EMACS nicht üblich # 7 bit Kodierung mittels iso-2022-jp ist einfacher # Default Reihenfolge = us-ascii --> iso-8859-1 --> utf-8 #set send_charset="us-ascii:iso-8859-1:utf-8" #set allow_8bit=yes set send_charset="us-ascii:iso-8859-1:iso-2022-jp" set allow_8bit=no
kinput2
für X-Applikationen
.~/Xresources
(teilweise automatisch in Debian)
mlterm
kann diese dynamisch mit Strg-Mausknopf-3
ändern.
Sieh auch die SuSE Seiten für
CJK
.
In Zukunft wird Unicode alle Schriftprobleme lösen. Siehe Das Unicode
HOWTO
.
Die UTF-8 Unterstützung in der Konsole wird vom Paket bterm
bereitgestellt. Der debian-installer
verwendet dies.
Wenn eine größere Anpassung an eine Sprache gewünscht wird, sollte man zunächst
nachsehen, ob tasksel
oder aptitude
bereits eine
Option für die betreffende Sprache hat. So kann eine Paketsammlung geladen
werden, die bereits Dateien für die nationale Anpassung enthält, was auch für
mehrsprachige Systeme Sinn macht. Wenn bei einem System mit feinjustierter
Sprachunterstützung Paketkonflikte auftreten, sollte zunächst die Ursache genau
festgestellt werden, damit die Spracheinstellungen nicht verloren gehen.
Eventuell muss update-alternative
verwendet werden, um den
vorherigen Status wieder her zu stellen.
Die meisten größeren Programme nutzen bereits die glibc 2.2 und sind
größtenteils internationalisiert. Aus diesem Grund sind lokalisierte Versionen
eines speziellen Programms wie z.B. VIM überflüssig. So wird die
Funktionalität von jvim
für VIM von vim
ab Version
6.0 in X automatisch bereitgestellt. Tatsächlich ist die Unterstützung noch
etwas holprig. Da jvim
die japanische Unterstützung eingebaut
hat, sollte man sich das Programm zumindest doch einmal ansehen.
Es kann sein, dass Programme über die locale Konfiguration hinaus
angepasst werden müssen. Das language-env
Paket und dessen
Kommando set-language-env
erleichtern diesen Schritt.
Siehe auch die Internationalisierungsdokumente unter Einführung in
i18n
. Es richtet sich an Entwickler und Systemadministratoren.
Debian-Referenz
CVS, Mon 3. Apr 2005, 22:57:58 UTCosamu@debian.org
tux-master@web.de