[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ weiter ]
Dieses Kapitel basiert auf älterer Version des englischen ursprünglichen Textes. Die englische Version bitte auch überprüfen.
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
Optimierung des Festplattenzugriffs. Sehr effektiv.
Aber auch gefährlich. Die Handbuchseite hdparm(8) sollte auf
jeden Fall zuvor gelesen werden.
hdparm -tT /dev/hda testet die Geschwindigkeit der Festplatte.
hdparm -q -c3 -d1 -u1 -m16 /dev/hda aktiviert einige der Optimierungen einer IDE-Festplatte (Dies kann gefährlich sein, nicht einfach übernehmen!)
setcd
Optimierung des Zugriffs auf CD-Geräte.
setcd -x 2 verringert die Geschwindigkeit auf 2x.
Vergleichen Sie setcd(1).
setserial
Dieses Paket enthält eine Sammlung von Programmen zur Einstellung der seriellen Schnittstelle.
scsitools
Dieses Paket enthält eine Sammlung von Programmen zur Einstellung der SCSI-Schnittstelle.
memtest86
Dieses Paket enthält eine Sammlung von Programmen zum Testen des Speichers.
hwtools
Dieses Paket enthält eine Sammlung von Programmen, die den Low-Level-Zugriff auf Einstellungen der Hardware ermöglichen:
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
Linux Scheduler-Werkzeuge. (Der Scheduler verwaltet die Zeitscheibe, mit der Prozesse Rechenzeit zugewiesen bekommen.)
taskset, irqset, lsrt und
rt sind in diesem Paket enthalten.
Zusammen mit den schon beschriebenen 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:
Die root Gruppe entspricht der Standard wheel Gruppe für
su, wenn pam_wheel.so ohne das group=
Argument verwendet wird.
Die adm Gruppe darf Log-Dateien lesen.
Die cdrom Gruppe darf auf das CD-ROM-Laufwerk zugreifen.
Die floppy Gruppe darf auf das Diskettenlaufwerk zugreifen.
Die audio Gruppe darf auf ein vorhandenes Audiogerät zugreifen.
Die src Gruppe darf auf Quelltexte unterhalb von
/usr/src zugreifen. Mit dieser Gruppe verwaltet man den Zugriff
auf Quelltexte.
Die staff Gruppe ist gedacht für Hilfsadministratoren. Sie sollen
Dateien in /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. Des Weiteren 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 Admin Guide im openldap-guide Paket
LDP: LDAP Linux
HOWTO
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:
bzImage
der IDE-CD-Treiber sollte entfernt werden
ide-scsi und sg sollten angewählt werden (mindestens als Modul)
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:
hierzu die Disketten-Images
und ein 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.
dies ist das Programm, das auf dem lokalen Monitor die X-Fenster und die Oberfläche zeichnet und die Tastatureingaben und Mausbewegungen auswertet.
dies ist ein Programm, das (lokal auf einem eventuell fernen Rechner) per X-Window-Protokoll Applikationen laufen lässt.
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
Host-List Mechanismus (sehr unsicher)
nicht-verschlüsseltes Protokoll (kann abgehört werden).
Diese Variante sollte möglichst nicht gewählt werden.
Siehe X-Fernverbindungen mit xhost, Abschnitt
9.4.7 und xhost(1x).
xauth
Der MIT magic cookie-Mechanismus (unsicher, aber besser als
xhost).
nicht-verschlüsseltes Protokoll (kann auch abgehört werden).
nur für lokal begrenzte Benutzung (weniger rechenintensiv als ssh
-X).
Siehe Administratorrechte unter X, Abschnitt 9.4.11 und
xauth(1x).
xdm, wdm, gdm, kdm, ...
MIT magic cookie-Mechanismus (unsicher wie xauth).
Siehe xdm(1x) und Xsecurity(7) für die Erklärung der
Grundlagen der X-Zugriffskontrolle
Siehe wdm(1x), gdm(8), und
kdm.options(5) für weitere Informationen.
Siehe init und Runlevel,
Abschnitt 6.5.4 um das graphische Login mit xdm abzuschalten,
ohne das Paket zu deinstallieren.
ssh -X
Port-Weiterleitung mittels secure shell (sicher).
verschlüsselt (Ressourcenverschwendung bei lokaler Anwendung)
nur für ferne Verbindung oder in unsicheren Netzen verwenden.
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
Dieses Metapaket stellt die grundlegenden Komponenten des X-Window-Systems für
eine Workstation bereit. Es beinhaltet Bibliotheken, einen X-Server (genauer
das Paket xserver-xfree86), eine Reihe von Schriften und einige
X-Client-Programme und Werkzeuge.
x-window-system
Dieses Metapaket beinhaltet alle X-Window Komponenten, so wie sie vom
XFree86-Projekt bereitgestellt wurden. Hinzu kommen einige Hilfsprogramme. Es
hängt von 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-v3In diesem Paket befinden sich die Dateien und Programme für das alte XFree86 Version 3.X (X3)
xserver-*
Zusätzliche X3-Server Pakete zur Unterstützung von Hardware, die aus
irgendwelchen Gründen nicht von XFree86 4.X unterstützt werden. Einige alte
ATI mach64-Grafikkarten fallen darunter; einige andere Grafikkarten hängen sich
mit der XFree Version in der Debian-Version woody auf, etc. (Alle Serverpakete
findet man durch apt-cache search xserver-|less. Alle diese
X3-Server hängen vom Paket 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
Stattdessen 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:
-geometry BREITExHÖHE+X-OFFSET+Y-OFFSET: anfängliche Größe und Lage des neuen Fensters.
-fn FONTNAME: die Schrift, die im Fenster verwendet wird. FONTNAME kann sein:
a14: Normale Größe
a24: Große Größe
... (Weitere Fonts können mit xlsfont ermittelt werden.)
-display displayname: der Name des X-Servers, der verwendet wird. displayname kann sein:
hostname:D.S bedeutet Anzeige S auf dem Bildschirm D auf dem Rechner hostname; der X-Server für dieses Display liegt auf dem TCP-Port 6000+D.
host/unix:D.S bedeutet Anzeige
S auf dem Bildschirm D auf dem Rechner
host; der X-Server für diese Anzeige lauscht auf dem
Unix-Domain-Socket /tmp/.X11-unix/XD (so ist es nur auf dem
Rechner host erreichbar).
:D.S bedeutet das gleiche wie host/unix:D.S, wobei host der Name des lokalen Rechners ist.
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.9.
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):
Voreinstellung -- X-Sitzungsmanager.
Vergleichen Sie Alternative Befehle, Abschnitt 6.5.3.
exec /usr/bin/x-session-manager
Voreinstellung -- X-Window-Manager.
Vergleichen Sie Alternative Befehle, Abschnitt 6.5.3.
exec /usr/bin/x-window-manager
GNOME-Sitzungsmanager. (mächtiges Paket)
Installieren Sie das Paket: gnome-session
exec /usr/bin/gnome-session
KDE-Sitzungsmanager. (ebenso mächtiges Paket)
Installieren Sie das Paket: kdebase (oder kdebase3
für KDE3)
exec /usr/bin/kde2
Blackbox-Window-Manager. (leichtgewichtiges Paket).
Installieren Sie das Paket: blackbox
exec /usr/bin/blackbox
IceWM-Window-Manager. (ebenso leichtgewichtig)
Installiere das Paket: icewm
exec /usr/bin/X11/icewm
FVWM2-Window-Manager.
Installieren Sie das Paket: fvwm
exec /usr/bin/fvwm2
Windowmaker-Window-Manager.
Installieren Sie das Paket: wmaker
exec /usr/bin/wmaker
Enlightenment-Window-Manager (überladen).
Installieren Sie das Paket: enlightenment
exec /usr/bin/enlightenment
Siehe X-Window-Manager.
Um eine komplette KDE/Gnome-Umgebung einzurichten empfiehlt sich die Installation der folgenden Metapakete:
KDE: installiert das kde Paket
GNOME: installiert das 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. Des
Weiteren 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.
Setze auf dem entfernten Rechner in der Datei /etc/ssh/sshd_config
die Einträge X11Forwarding und AllowTcpForwarding auf
yes.
Starte den X-Server auf dem lokalen Rechner.
Öffne ein xterm auf dem lokalen Rechner.
Starte ssh um eine Verbindung zu dem entfernten Rechner
aufzubauen.
localname @ localhost $ ssh -q -X -l loginname remotehost.domain
Password:
...
Starte eine X-basierte Applikation auf dem entfernten Rechner.
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:
Java Plugin: Download des "J2SE" von http://java.sun.com.
Flash Plugin: Download des "Macromedia Flash Player 5" von 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
Es darf keine Datei /etc/ssh/sshd_not_to_be_run bestehen.
SSH beherrscht zwei Arten von Authentisierungsprotokollen:
SSH-Protokoll Version 1:
In Debian-Potato wird nur die Version 1 unterstützt.
Diese Version unterstützt:
RSAAuthentication: RSA Identitäts-Schlüssel basierte Benutzererkennung
RhostsAuthentication: Auf .rhosts basierende Rechnererkennung (unsicher, daher nicht aktiviert.)
RhostsRSAAuthentication: Authentisierung mit .rhosts kombiniert
mit RSA Host-Schlüssel (auch deaktiviert)
ChallengeResponseAuthentication: RSA Challenge-Response Authentisierung
PasswordAuthentication: Passwortbasierte Authentisierung
SSH Protokoll Version 2:
Alle Versionen seit Woody verwenden bevorzugt diese Version.
Diese Version unterstützt:
PubkeyAuthentication: Public-Key basierte Authentisierung
HostbasedAuthentication: .rhosts oder
/etc/hosts.equiv Authentisierung kombiniert mit Public-Key Rechner
Authentisierung (disabled)
ChallengeResponseAuthentication: challenge-response Authentisierung
PasswordAuthentication: Passwort basierte Authentisierung
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:
Host: Beschränkt die folgenden Restriktionen auf diesen Rechner bzw. dieses Rechnermuster (bis zum nächsten 'Host'-Eintrag).
Protocol: Spezifiziert die Version des SSH-Protokolls. Die Voreinstellung ist "2,1".
PreferredAuthentications: Spezifiziert die Methode mit der SSH2 authentisieren soll. Die Voreinstellung ist "hostbased,publickey,keyboard-interactive,password".
ForwardX11: Diese Option ist per Voreinstellung abgeschaltet. Sie kann über die Kommandozeilenoption "-X" überstimmt werden, so dass auch graphische Ausgaben übertragen werden dürfen.
/etc/ssh/sshd_config: Voreinstellungen des SSH-Servers. Siehe
sshd(8). Wichtige Einträge sind:
ListenAddress: Spezifiziert die lokalen Adressen, auf denen
sshd lauscht. Hier sind mehrere möglich.
AllowTcpForwarding: Voreinstellung: aus
X11Forwarding: Voreinstellung: aus.
$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)
SSH in 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:
Mail-Transfer-Agenten (mail transfer agent, MTA): exim
Mail-Hilfsprogramme: procmail, fetchmail,
mail, ...
Mail-Benutzer-Agenten (mail user agent, MUA): mutt
Literatur:
exim-doc und exim-doc-html Pakete
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 E-Mail-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 E-Mails
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.
Zuerst wird in /etc/password nachgesehen, ob der Ausdruck $1 auf
einen lokalen Benutzer zutrifft.
Wenn dies der Fall ist, wird daraus das, was es vorher schon war ($0).
Wenn es den Benutzer lokal nicht gibt, wird der Domänenanteil ersetzt.
fetchmail wird im Daemon-Modus gestartet und ist für die Abholung
von E-Mail von POP3-Accounts von einem ISP zuständig, um die Mails dann in das
lokale E-Mail-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 E-Mail-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 E-Mail-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-E-Mail 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:
dpkg-reconfigure --priority=low console-data # Konsole
dpkg-reconfigure --priority=low xserver-xfree86 # X4
dpkg-reconfigure --priority=low xserver-common-v3 # X3
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.
8-bit clean: praktisch alle Programme
andere lateinische Buchstaben (z.B. ISO-8859-1 oder ISO-8859-2): viele Programme
multi-byte Sprachen wie Chinesisch, Japanisch oder Koreanisch: viele neue Programm
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.9.
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).
Full locale description consists of 3 parts: xx_YY.ZZZZ.
xx: ISO 639 language codes (lower case)
YY: ISO 3166 country codes (upper case)
ZZZZ: codeset, i.e., character set or encoding identifier.
For language codes and country codes, see pertinent description in the info gettext.
Please note this codeset part may be normalized internally to achieve cross platform compatibility by removing all - and by converting all characters into lower case. Typical codesets are:
UTF-8: Unicode for all regions, mostly in 1-3 Octets (new de facto standard)
ISO-8859-1: western Europe (de facto old standard)
ISO-8859-2: eastern Europe (Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak, Slovenian)
ISO-8859-3: Maltese
ISO-8859-5: Macedonian, Serbian
ISO-8859-6: Arabic
ISO-8859-7: Greek
ISO-8859-8: Hebrew
ISO-8859-9: Turkish
ISO-8859-11: Thai (=TIS-620)
ISO-8859-13: Latvian, Lithuanian, Maori
ISO-8859-14: Welsh
ISO-8859-15: western Europe with euro
KOI8-R: Russian
KOI8-U: Ukrainian
CP1250: Czech, Hungarian, Polish (MS Windows origin)
CP1251: Bulgarian, Byelorussian (MS Windows origin)
eucJP: Unix style Japanese (=ujis)
eucKR: Unix style Korean
GB2312: Unix style Simplified Chinese (=GB, =eucCN) for zh_CN
Big5: Traditional Chinese for zh_TW
sjis: Microsoft style Japanese (Shift-JIS)
As for the meaning of basic encoding system jargons:
ASCII: 7 bits (0-0x7f)
ISO-8859-?: 8 bits (0-0xff)
ISO-10646-1: Universal Character Set (UCS) (31 bits, 0-0x7fffffff)
UCS-2: First 16 bit of UCS as straight 2 Octets (Unicode: 0-0xffff)
UCS-4: UCS as straight 4 Octets (UCS: 0-0x7fffffff)
UTF-8: UCS encoded in 1-6 Octets (mostly in 3 Octets)
ISO-2022: 7 bits (0-0xff) with the escape sequence. ISO-2022-JP is the most popular encoding for the Japanese e-mail.
EUC: 8 bits + 16 bits combination (0-0xff), Unix style
Shift-JIS: 8 bits + 16 bits combination (0-0xff), Microsoft style.
ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, and UTF-8 share the same code with ASCII for the 7 bit characters. EUC or Shift-JIS uses high-bit characters (0x80-0xff) to indicate that part of encoding is 16 bit. UTF-8 also uses high-bit characters (0x80-0xff) to indicate non 7 bit character sequence bytes and this is the most sane encoding system to handle non-ASCII characters.
Please note the byte order difference of Unicode implementation:
Standard UCS-2, UCS-4: big endian
Microsoft UCS-2, UCS-4: little endian for ix86 (machine-dependent)
See Konvertierung einer Textdatei mit
recode, Abschnitt 8.6.12 for conversion between various
character sets. For more see Introduction to
i18n.
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:
Hinzufügen der gewünschten Locale zu /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.
Starte dpkg-reconfigure locales, um das 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.
LANGUAGE: Diese Umgebungsvariable enthält eine durch Doppelpunkte separierte Liste von Sprachen (mit absteigender Priorität). Sie wird nur verwendet, wenn die POSIX-locale nicht "C" ist [in Woody; in Potato hat LANGUAGE immer Priorität vor POSIX]. (GNU-Erweiterung)
LC_ALL: Wenn dieser Eintrag nicht leer ist, wird er für alle Kategorien verwendet. (POSIX.1) Voreinstellung ist "" (null).
LC_*: Wenn dieser Eintrag nicht leer ist, wird er für die entsprechende Kategorie gesetzt. (POSIX.1). Voreinstellung "C".
Mögliche LC_*-Variablen sind:
LC_CTYPE: Buchstaben-Klassifikation und Groß-/Kleinumschaltung.
LC_COLLATE: Collation-Reihenfolge. (???)
LC_TIME: Datum- und Zeit-Format.
LC_NUMERIC: Zahlenformat.
LC_MONETARY: Geld-Format.
LC_MESSAGES: Format der Meldungen und Diagnostik-Anzeigen, auch für interaktive Eingaben.
LC_PAPER: Papier-Format.
LC_NAME: Namen-Format.
LC_ADDRESS: Adressen-Format und Orts-Information.
LC_TELEPHONE: Telefonnummer-Format.
LC_MEASUREMENT: Maßeinheiten (Metrisch oder andere).
LC_IDENTIFICATION: Metadaten über die locale-Einstellung.
LANG: Wenn diese nicht leer ist und LC_ALL nicht definiert ist, wird dieser Wert für alle bis dahin nicht definierten Variablen gesetzt. (POSIX.1) Voreinstellung "C".
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.4.)
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).
zuerst wird eine japanische Lokale ja_JP.eucJP erzeugt, wie beschrieben in Lokalisation und Sprachen, Abschnitt 9.7.
es wird ein Kana-nach-Kanji-Konverter und ein Wörterbuch installiert:
canna – Lokaler Server (NEC free-license) oder
freewnn-jserver – Netzwerk-basierter erweiterbarer Server
(Public Domain)
Installation einer Eingabemethode für Japanisch:
kinput2-canna – für X oder
kinput2-canna-wnn – für X und
egg – funktioniert mit Emacsen, optional auch im
Konsole-Modus
Japanisch-kompatibles Terminal:
kterm – X (klassisch),
mlterm – X (sehr nett, verschiedene Schriftgrößen) und
füge japanische Schriften hinzu.
Konfiguriere X wie beschrieben in Angepasste X-Sitzung,
Abschnitt 9.4.5.1. Eine an den Benutzer angepasste X-Umgebung kann in
Abhängigkeit der Start-Methode von X eingestellt werden. (startx,
xdm, ...)
Letztlich wird eine ~/.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
wir fügen folgende Zeilen zu ~/.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
folgende Zeilen können, falls mutt als Mail-Programm verwendet wird, zu
~/.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
aktiviere XIM kinput2 für X-Applikationen
füge *inputMethod: kinput2 der .Xresources Datei hinzu:
~/.Xresources (teilweise automatisch in Debian)
Einige Programme erlauben sogar die Änderung der Kodierung während der Laufzeit
(mlterm kann diese dynamisch mit Strg-Mausknopf-3
ändern.
Nun wird X gestartet: startx oder durch einen Displaymanager (xdm, gdm, kdm, wdm, ...)
In X wird ein japanisch-fähiges Programm gestartet: VIM6, (x)emacs21, mc-4.5, mutt-1.4, ... (Emacs ist populär. Aber ich verwende es nicht.)
"Shift+Space" schaltet die japanische Unterstützung ein und aus.
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.
[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ weiter ]
Debian-Referenz
CVS, Don 18. Jan 2007, 11:52:59 UTCosamu#at#debian.orgtux-master#at#web.de