[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ dalej ]
Ten rozdział opisuje tylko podstawy konfiguracji systemu, z użyciem narzędzi linii poleceń. Powinieneś najpierw przeczytać Wskazówki dotyczące instalacji Debiana, Część 3.
Jeśli chcesz się dowiedzieć czegoś o bezpieczeństwie, przeczytaj Securing Debian
Manual
, który znajduje się w pakiecie harden-doc
.
Debian używa systemu skryptów inicjalizacyjnych System V. Dobrym wprowadzeniem
jest lektura Program init
,
Rozdział 2.4.1.
Najprostszym sposobem na kontrolowanie zachowania systemu inicjalizującego jest
zmiana przypisań zmiennych środowiskowych w pliku nazwanym tak jak skrypt, a
znajdującym się w katalogu /etc/default/
. [32] Na przykład,
/etc/default/hotplug
może zostać użyty do kontrolowania pracy
/etc/init.d/hotplug
. /etc/default/rcS
może zostać
wykorzystany do dostrojenia ustawień dla motd
,
sulogin
, itp. podczas startu systemu.
Jeśli zmieniając te zmienne nie możesz otrzymać pożądanego rezultatu, możesz zmodyfikować skrypt inicjalizujący; to również pliki konfiguracyjne.
Zachowanie programu logującego może być modyfikowane poprzez
/etc/syslog.conf
. Sprawdź pakiet colorize
jeśli
szukasz programu do kolorowania logów systemowych. Zobacz także
syslogd(8)
oraz syslog.conf(5)
.
Istnieje kilka ustawień sprzętowych, których optymalizację Debian pozostawia w gestii administratora.
hdparm
Optymalizacja dostępu dysku twardego. Bardzo skuteczna.
Niebezpieczne. Przeczytaj hdparm(8)
przed użyciem.
hdparm -tT /dev/hda, aby sprawdzić szybkość dostępu do dysku.
hdparm -q -c3 -d1 -u1 -m16 /dev/hda, aby przyspieszyć działanie nowoczesnego dysku IDE. (Może być niebezpieczne.)
setcd
Optymalizacja dostępu napędu płyt kompaktowych.
setcd -x 2, aby zmniejszyć prędkość do 2x.
Zobacz setcd(1)
.
setserial
Zbiór narzędzi do konfiguracji portu szeregowego.
scsitools
Zbiór narzędzi do konfiguracji urządzeń SCSI.
memtest86
Zbiór narzędzi do testowania pamięci RAM.
hwtools
Zbiór narzędzi do niskopoziomowej konfiguracji sprzętu.
irqtune
: zmienia priorytet IRQ, aby zapewnić go tym urządzeniom,
które wymagają wyższego priorytetu i szybkiego obsłużenia ( np. porty
szeregowe, modemy). Możliwe jest nawet trzykrotne zwiększenie przepustowości
modemu/portu szeregowego.
scanport
: skanuje adresy I/O od 0x100 do 0x3ff w celu znalezienia
zainstalowanych urządzeń ISA.
inb
: narzędzie odczytujące porty I/O i wyświetlające otrzymane
wyniki w formacie binarnym i szesnastkowym.
schedutils
Narzędzie do zmiany ustawień programu szeregującego jądra Linuksa (scheduler).
Zawiera taskset
, irqset
, lsrt
, oraz
rt
.
W połączeniu z nice
i renice
(nie będącymi częścią
tego pakietu), pozwalają na pełną kontrolę parametrów programu szeregującego.
Montowanie systemu plików z opcją noatime jest także bardzo
skutecznym rozwiązaniem w przyspieszaniu odczytu plików. Zobacz
fstab(5)
i mount(8)
.
Niektóre urządzenia mogą być konfigurowane bezpośrednio przez jądro Linuksa, poprzez system plików proc. Zobacz Dostrajanie jądra przy pomocy systemu plików proc, Rozdział 7.3.
W Debianie istnieje wiele narzędzi przeznaczonych dla konkretnego sprzętu. Wiele z nich związanych jest z laptopami. Oto lista interesujących pakietów dostępnych w Debianie:
tpconfig
- Program do konfiguracji urządzeń typu touchpad
apmd
- Konfiguracja zaawansowanego zarządzania energią (APM)
acpi
- Wyświetla informacje o urządzeniach z ACPI
acpid
- Narzędzie konfiguracji ACPI
lphdisk
- Przygotowuje partycję hibernacyjną dla Phoenix NoteBIOS
sleepd
- Usypia laptopa, gdy jest nieużywany
noflushd
- Pozwala bezczynnym dyskom na wolniejszy obrót
big-cursor
- Większy kursor w X-ach
acme
- Obsługa „multimedialnych przycisków”
w laptopie
tpctl
- Narzędzie konfiguracji IBM ThinkPad
mwavem
- Obsługa modemów Mwave/ACP
toshset
- Umożliwia dostęp do większości ustawień sprzętowych
laptopów Toshiba
toshutils
- Narzędzia dla laptopów Toshiba
sjog
- Program do obsługi „Jog Dial” na
laptopach Sony Vaio
spicctrl
- Program do ustawiania parametrów ekranu LCD w laptopach
Sony Vaio
ACPI jest nowszym systemem zarządzania energią niż APM.
Niektóre z wymienionych pakietów wymagają specjalnych modułów jądra. W większości wypadków są one dołączone do najnowszych źródeł jądra. Jednak w razie problemów będziesz musiał zainstalować najnowszą łatkę dla jądra.
PAM (Pluggable Authentication Modules) pozwala kontrolować w jaki sposób użytkownicy logują się do systemu.
/etc/pam.d/* # pliki konfiguracyjne PAM /etc/pam.d/login # plik konfiguracyjny PAM dla programu login /etc/security/* # ustawienia modułów PAM /etc/securetty # terminale, na których może pracować root (login) /etc/login.defs # ustawienia programu login (login)
Zmień zawartość /etc/pam.d/login
tak, jak poniżej, jeśli chcesz
aby dostęp do terminala (również konsoli) nie był warunkowany hasłem. Używaj
na własną odpowiedzialność.
#auth required pam_unix.so nullok auth required pam_permit.so
Podobne sztuczki mogą być zastosowane dla xdm
, gdm
,
... , aby uzyskać analogiczną funkcjonalność w X-ach.
Z drugiej strony, jeśli chcesz wymusić na użytkownikach politykę wyboru
bezpiecznych haseł, zainstaluj cracklib2
i ustaw parametry w pliku
/etc/pam.d/passwd
następująco:
password required pam_cracklib.so retry=3 minlen=6 difok=3
Możesz także, podczas aktywacji konta, ustawić hasło jednokrotnego użytku, co
zmusi użytkownika do jego zmiany przy pierwszym logowaniu. Aby uzyskać taki
efekt, użyj polecenia passwd
z opcją -e. Zobacz
passwd(1)
.
Maksymalna ilość procesów może być ustalona poprzez ulimit -u 1000
w powłoce Bash albo poprzez edycję /etc/security/limits.conf
,
elementu PAM. Inne limity, jak np core mogą być ustawione w
sposób analogiczny. Początkowa wartość zmiennej PATH
może być
ustawiona w pliku /etc/login.defs
zanim jeszcze zostaną
uruchomione skrypty startowe danej powłoki.
Dokumentacja dla PAM jest dostępna w pakiecie
libpam-doc
.Linux-PAM System Administrator's Guide zawiera
informacje dotyczące konfiguracji PAM, dostępnych modułów itp. Dokumentacja
zawiera także The Linux-PAM Application Developers' Guide oraz The
Linux-PAM Module Writers' Guide.
su
nie obsługuje grupy wheel”
Jest to słynne zdanie w dokumentacji info su , napisane przez
Richarda M. Stallmana. Ale nie obawiaj się, obecne su
w Debianie
używa PAM, więc można ograniczyć możliwość używania su
do dowolnej
grupy używając pam_wheel.so
w pliku /etc/pam.d/su
.
Poniższy przykład ilustruje ustawienie grupy adm analogicznie do
wheel z systemów BSD oraz umożliwia używanie su
bez
podawania hasła dla członków tej grupy.
# konfiguracja anty-RMS w /etc/pam.d/su auth required pam_wheel.so group=adm # Członkowie grupy wheel mogą wywoływać su bez podawania hasła auth sufficient pam_wheel.so trust group=adm
Oto kilka interesujących grup:
root grupa jest domyślnym odpowiednikiem grupy wheel dla
su
, jeśli pam_wheel.so
jest użyte bez podania
argumentu group=.
adm członkowie grupy mogą czytać logi systemowe.
cdrom grupa może zostać użyta, aby nadać użytkownikom prawa dostępu do napędu CD-ROM.
floppy grupa może zostać użyta, aby nadać użytkownikom prawa dostępu do napędu dyskietek.
audio grupa może zostać użyta, aby nadać użytkownikom prawa dostępu do urządzeń audio.
src grupa jest właścicielem kodu źródłowego umieszczonego w
/usr/src
. Może być użyta, aby nadać użytkownikom możliwość
zarządzania kodem źródłowym systemu.
staff grupa służąca do nauki administracji systemem.
Aby uzyskać kompletną listę zobacz część FAQ w Securing Debian
Manual
, który w Woodym może być także znaleziony w pakiecie
harden-doc
. Także nowe base-passwd
(>3.4.6)
zawierają wiarygodną listę:
/usr/share/doc/base-passwd/users-and-groups.html
.
sudo
Używam sudo
do ochrony przed własną głupotą. Osobiście uważam, że
używanie sudo
jest lepszą alternatywą niż ciągła praca w systemie
na koncie użytkownika root.
Zainstaluj sudo
i skonfiguruj go poprzez edycję
. Zapoznaj się także z
możliwościami sudo w pliku
/etc/sudoers
/usr/share/doc/sudo/OPTIONS
.
Przykładowa konfiguracja zapewnia członkom grupy staff uprawnienia do
wykonywania dowolnych poleceń jako root poprzez sudo
, natomiast
członkom grupy src prawo do wykonywania jedynie niektórych poleceń z takimi
uprawnieniami.
Zaletą sudo
jest to, że do zalogowania potrzebuje jedynie podania
hasła użytkownika, a dodatkowo monitoruje aktywność użytkownika. Jest to dobry
sposób, aby dać pewną władzę młodym administratorom. Na przykład:
$ sudo chown -R myself:mygrp .
Oczywiście, jeżeli znasz hasło root-a (jak większość domowych użytkowników), dowolne polecenie może zostać wydane jako root z Twojego konta użytkownika:
$ su -c "shutdown -h now" Password:
(Wiem, że powinienem ograniczyć przywileje sudo
konta admin, ale
ponieważ jest to mój domowy serwer, jeszcze się tym nie przejmowałem.)
Inny program umożliwiający zwykłym użytkownikom uruchamianie poleceń z
uprawnieniami root-a możesz znaleźć w pakiecie super
.
Internetowy super-serwer, inetd
, jest uruchamiany podczas
startu systemu z /etc/rc2.d/S20inetd
(dla RUNLEVEL=2), który jest
dowiązaniem symbolicznym do pliku /etc/init.d/inetd
. W skrócie,
inetd
umożliwia uruchomienie jednego demona, który w razie
potrzeby uruchamia inne, zmniejszając w ten sposób obciążenie systemu.
Gdy inetd
przyjmuje zgłoszenie, sprawdza protokół i nazwę żądanej
usługi przeszukując bazę danych w plikach /etc/protocols
oraz
/etc/services
. Następnie, wyszukuje odpowiedzialną za obsługę
zgłoszenia usługę w /etc/inetd.conf
jeśli jest to zwyczajna usługa
internetowa, natomiast w /etc/rpc.conf
jeśli jest to usługa
Sun-RPC.
Mając na względzie bezpieczeństwo, wyłącz zbędne usługi w pliku
/etc/inetd.conf
. Usługi Sun-RPC są wykorzystywane przez NFS oraz
inne programy oparte na RPC.
Czasami inetd
nie przekazuje kontroli do żądanej usługi
bezpośrednio, lecz uruchamia demona TCP/IP tcpd
przekazując mu
nazwę usługi jako argument. W tym wypadku tcpd
uruchomi żądaną
usługę dopiero po zgłoszeniu tego do logów systemowych oraz zanalizowaniu
plików /etc/host.deny
i /etc/host.allow
.
Jeśli masz problemy ze zdalnym dostępem w aktualnej dystrybucji Debian,
skomentuj zapis „ALL: PARANOID” w
/etc/host.deny
, jeśli taki zapis się tam znajduje.
Aby uzyskać bardziej szczegółowe informacje zobacz inetd(8)
,
inetd.conf(5)
, protocols(5)
,
services(5)
, tcpd(8)
, hosts_access(5)
, i
hosts_options(5)
.
Aby uzyskać informacje o Sun-RPC zobacz rpcinfo(8)
,
portmap(8)
, i
/usr/share/doc/portmap/portmapper.txt.gz
.
Zasoby:
OpenLDAP Admin Guide w pakiecie openldap-guide
LDP: LDAP Linux
HOWTO
Nagrywarki CD z interfejsem ATAPI/IDE stały się w ostatnim czasie bardzo
popularne. Są miłym rozwiązaniem archiwizowania danych i wykonywania kopii
zapasowych w sytuacji, gdy wystarcza < 640MB pojemności nośnika. Aby
uzyskać najbardziej wiarygodne informacje, zobacz LDP CD-Writing-HOWTO
.
Po pierwsze, każde zakłócenie danych wysłanych do nagrywarki może spowodować nieodwracalne uszkodzenie płyty CD. Zaopatrz się w nagrywarkę z jak największym rozmiarem bufora. Jeśli pieniądze nie są problemem, zamiast wersji ATAPI/IDE zdecyduj się na wersję SCSI. Jeśli możesz wybierać pomiędzy IDE, zdecyduj się na wersję podłączaną do slotu PCI (na płycie głównej) zamiast do slotu ISA (jak karta SB16 itp.).
W jądrach Linuksa 2.2 i 2.4 nagrywarka IDE musi być uzupełniona sterownikami IDE-SCSI, zamiast zwykłego sterownika IDE dla napędów CD. Również ogólny sterownik SCSI ( SCSI generic driver) musi zostać uaktywniony. Są na to dwa sposoby, zakładając że jądra rozpowszechniane były z aktualnymi dystrybucjami (jak te z marca 2001).
lilo
Dodaj poniższe linie do pliku /etc/lilo.conf
jeśli używasz
standardowego jądra rozpowszechnianego z systemem Debian. Jeśli użytych jest
kilka opcji, pozostaw między nimi znak spacji.
append="hdx=ide-scsi ignore=hdx"
W tym przykładzie nagrywarka jest dostępna poprzez sterownik ide-scsi, a oznaczony parametrem hdx, gdzie x oznacza jedno z poniższych:
hda master na pierwszym porcie IDE hdb slave na pierwszym porcie IDE hdc master na drugim porcie IDE hdd slave na drugim porcie IDE hde ... hdh napęd na zewnętrznym porcie IDE lub ATA66/100 IDE
Wpisz następujące polecenia jako root po zakończeniu konfiguracji.
# lilo # shutdown -r now
Debian używa make-kpkg
do tworzenia jądra. Użyj różnych
--append_to_version z make-kpkg
aby zbudować wiele
obrazów jądra. Zobacz Jądro systemu Linux w
Debianie, Część 7.
Użyj następujących ustawień podczas make menuconfig:
bzImage
Wyłącz sterownik IDE CD, (niekoniecznie, ale to prostsze rozwiązanie)
Dołącz do jądra obsługę ide-scsi i sg lub ustaw je jako moduły
Wsparcie jądra dla nagrywarki może być uaktywnione podczas startu systemu poprzez następujące polecenia:
# echo ide-scsi >>/etc/modules # echo sg >>/etc/modules # cd /dev; ln -sf scd0 cdrom
Ręczna inicjalizacja może być wykonana przez:
# modprobe ide-scsi # modprobe sg
Po restarcie możesz sprawdzić swoją konfigurację:
$ dmesg|less # apt-get install cdrecord # cdrecord -scanbus
[Per Warren Dodge] Czasami może wystąpić konflikt między ide-scsi
i ide-cd, jeśli masz zarówno CD-ROM jak i napęd CD-R/RW. Możesz
wtedy spróbować dodać poniższą linię do swojego
/etc/modutils/aliases
, uruchomić update-modules
i
zrestartować system.
pre-install ide-scsi modprobe ide-cd
Polecenie to nakazuje załadowanie sterownika IDE przed ide-scsi. Sterownik IDE ide-cd przejmuje kontrolę nad urządzeniem ATAPI CD-ROM — wszystkim, co nie zostało mu nakazane do zignorowania. W ten sposób ide-scsi przejmuje kontrolę tylko nad zignorowanymi urządzeniami.
Aby nagrać katalog target-directory
jako cd-image.raw
(startowy, Joliet z TRANS.TBL; jeśli płyta nie ma być bootowalna, usuń opcje
-b i -c), włóż dyskietkę startową do stacji dyskietek
i:
# dd if=/dev/fd0 target-directory/boot.img # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \ -o cd-image.raw target_directory/
Śmiesznym kruczkiem może być zrobienie startowego CD-ROM z systemem DOS. Jeśli
obraz zwyczajnej dyskietki startowej jest we wspomnianym pliku
boot.img
, przy restarcie płyta zadziała jak gdyby
dosowa dyskietka startowa była w napędzie dyskietek. Może być to jeszcze
ciekawsze, jeśli wykorzystasz freeDOS.
Zawartość obrazu tej płyty może być sprawdzona poprzez zamontowanie jej jako urządzenie loop.
# mount -t iso9660 -o ro,loop cd-image.raw /cdrom # cd /cdrom # mc # umount /cdrom
Najpierw porównajmy (zakładając podwójną prędkość napędu) z:
# nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img
Następnie, jeśli wszystko poszło OK, wypalimy płytę CD-R:
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
Albo CD-RW:
# nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img
Niektóre napędy CD-RW działają lepiej z:
# nice --10 cdrecord -v blank=all speed=2 dev=0,0 disk.img
i następnie:
# nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img
Te dwa kroki są niezbędne, aby zapobiec pokrywaniu się faz zerowania płyty i
wypalania. Wartość argumentów dla nice
może także wymagać pewnej
regulacji.
Niektóre płyty CD-R i komercyjne CD zawierają specjalne, błędne sektory, które
uniemożliwiają ich kopiowanie przez dd
(płyta Windows 98 jest
jedną z nich). Pakiet cdrecord
udostępnia polecenie
readcd
. Użyj go do skopiowania zawartości płyty do pliku. Jeśli
to plik z danymi, zamontuj go i wykonaj df
aby uzyskać jego
rzeczywisty rozmiar. Podziel liczbę bloków przez 2 ( 1 blok = 1024 bajty) aby
uzyskać ilość sektorów na CD ( 1 sektor = 2048 bajty). Uruchom
readcd
z niezbędnymi opcjami i użyj obrazu płyty do wypalenia
następnej.
# readcd dev=target,lun,scsibusno # select function 11
Zwykle można ustawić wszystkie trzy parametry jako 0. Ilość sektorów podana
przez readcd
jest zazwyczaj zbyt duża, użyj podanej powyżej metody
aby uzyskać dokładniejsze wyniki.
Powinno zostać zauważone, że użycie dd
z płytami CD-ROM stwarza
pewne problemy. Pierwsze uruchomienie dd
spowoduje komunikat
błędu i może wytworzyć krótszy obraz dysku, utraciwszy końcową jego część.
Drugie uruchomienie dd
może utworzyć większy obraz płyty ze
„śmieciami” dołączonymi na końcu, jeśli rozmiar danych
nie został podany. Tylko drugie uruchomienie dd
wraz z podaniem
poprawnego rozmiaru danych, bez wyciągania CD, po otrzymaniu komunikatu błędu
wydaje się działać poprawnie. Jeśli na przykład rozmiar obrazu płyty
wyświetlony przez df
wynosi 46301184 bloki, użyj
dwukrotnie następującego polecenia aby otrzymać prawidłowy obraz (jest to
informacja, uzyskana przeze mnie empirycznie):
# dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))
Aby otrzymać najnowsze informacje na temat płyt z Debianem, odwiedź stronę Debian CD
.
Jeśli posiadasz szybkie połączenie internetowe, pomyśl o instalacji poprzez sieć, używając:
Jeśli nie posiadasz szybkiego połączenia z Internetem, pomyśl o zakupie płyt CD
od dystrybutora
CD
.
Proszę, nie zajmuj niepotrzebnie łącza ściągając obraz standardowego CD, chyba że jesteś testerem płyt (nawet nową metodą jigdo).
Jedną z niewielu, godną uwagi płytą jest KNOPPIX - Live Linux
Filesystem On CD
. Z tą płytą uruchomisz w pełni działającego
Debiana bez potrzeby instalowania go na twardym dysku.
Aby skopiować kluczowe pliki konfiguracyjne i dane na płyty CD-R, użyj
przykładowego skryptu backup
. Zobacz także Kopiowanie oraz archiwizacja całych
katalogów, Rozdział 8.3 i Kopia
różnicowa oraz synchronizacja danych, Rozdział 8.4.
backup
Nie testowane przeze mnie:
# apt-get install cdrecord cdparanoia # cdparanoia -s -B # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav
albo,
# apt-get install cdrdao #disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # read cd # cdrdao write --device /dev/cdrom --speed 8 my_cd # wypal nowy CD
cdrdao
wykonuje prawdziwą kopię (żadnych przerw, itp...)
X Window System jest zapewnione dzięki Xfree86
. Istnieją dwie główne wersje
serwera X dostępne dla Debiana: XFree86 Version 3.3 (XF3) i XFree86 Version
serii 4.x (XF4), obie oparte o specyfikację X11R6 wg. X.Org
.
Podstawowe informacje nt. X możesz uzyskać z X(7)
, LDP XWindow-User-HOWTO
,
oraz Remote X
Apps mini-HOWTO
. Informacje specyficzne dla Debiana, przeznaczone
dla jego użytkowników, przeczytaj w
/usr/share/doc/xfree86-common/FAQ.gz
dostarczanym w pakiecie
xfree86-common
. Zawiera interesujące uwagi na temat przypisywania
różnych funkcji do klawiszy autorstwa Brandena Robinsona.
program na lokalnym hoście, zajmujący się wyświetlaniem X-ów na monitorze użytkownika, jest także odpowiedzialny za obsługę poleceń z klawiatury i myszy.
program na (zdalnym lub lokalnym) hoście, który uruchamia oprogramowanie zgodne z X.
Zauważ, że jest to odwrócenie rozumienia słowa serwer i klient przyjętego w innych kontekstach.
Istnieje kilka dróg, aby „X serwer” (strona wyświetlająca) przyjął zdalne połączenie od „klienta X” (strona oprogramowania).
Wykorzystanie xhost
mechanizm listy hostów (bardzo niebezpieczny).
niezaszyfrowany protokół (narażony na podsłuchiwanie).
Nie używaj go, jeśli możesz.
Zobacz Zdalne połączenie z X – xhost
,
Rozdział 9.4.7 i xhost(1x)
.
Wykorzystanie xauth
mechanizm cookies (niebezpieczny, ale lepszy niż xhost
).
niezaszyfrowany protokół (narażony na podsłuchiwanie).
używaj go jedynie dla połączeń lokalnych, gdyż nie obciąża procesora tak jak
ssh -X
.
Zobacz Zdobywanie uprawnień administratora w X, Rozdział
9.4.12 i xauth(1x)
.
Wykorzystanie xdm
, wdm
, gdm
,
kdm
, ...
mechanizm cookies (równie niebezpieczny jak xauth
).
Zobacz xdm(1x)
i Xsecurity(7)
, aby zdobyć podstawowe
informacje nt. kontroli dostępu do X.
Zobacz wdm(1x)
, gdm(8)
, i kdm.options(5)
dla dalszych informacji, jeśli te programy są zainstalowane.
Zobacz System-V init
i
poziomy startu (runlevels), Rozdział 6.5.4 aby zorientować się jak wyłączyć
xdm
, by logować się w trybie tekstowym bez usuwania pakietu
xdm
.
Wykorzystanie ssh -X
mechanizm podłączania portów poprzez secure shell (bezpieczne).
zaszyfrowany protokół (strata zasobów, gdy używane lokalnie).
używaj w połączeniach zdalnych.
Wszystkie metody połączeń zdalnych, za wyjątkiem wykorzystywania
ssh
, wymagają włączonych połączeń TCP/IP w X serwerze. Zobacz Używanie X'ów poprzez TCP/IP, Rozdział 9.4.6.
Istnieje kilka (meta)pakietów, które zapewniają prostą instalację X Window System w Woodym.
x-window-system-core
Ten metapakiet dostarcza kluczowe składniki dla pojedynczej stacji roboczej, na
której uruchomiony ma być X Window System. Dostarcza biblioteki, X serwer
(xserver-xfree86
), zestaw czcionek, jak również kilka podstawowych
klientów X i programów użytkowych.
x-window-system
Ten metapakiet dostarcza praktycznie wszystkich składników X Window System
rozwijanych przez XFree86 Project, jak również zbiór popularnych kiedyś
dodatkowych programów. (Zauważ, że ten pakiet zależy od
x-window-system-core
, twm
oraz xdm
, tak
więc w przypadku jego instalacji x-window-system-core
nie musi
zostać oddzielnie wyznaczony do zainstalowania)
xserver-common-v3
Pliki i programy użytkowe wspólne dla serwerów X XFree86 3.x (XF3)
xserver-*
Dodano pakiety serwera XF3, aby obsłużyć sprzęt z różnych powodów nie
obsługiwany przez nowy serwer XF4 (xserver-xfree86
). Niektóre
stare karty ATI mach64 nie są obsługiwane przez XF4, zaś inne karty graficzne
zawieszają się w wersji XF4 dostępnej wraz z Woodym, itp. (Aby obejrzeć
dostępne pakiety wykonaj apt-cache search xserver-|less.
Wszystkie z tych serwerów XF3 zależą od pakietu
xserver-common-v3
.)
W większości przypadków x-window-system
jest odpowiednim pakietem
do zainstalowania. (Jeśli chcesz logować się w trybie tekstowym, upewnij się
że wyłączyłeś usługę xdm
tak, jak opisano to w części Jak wyłączyć automatyczne uruchamianie Xów
przy starcie?!, Rozdział 8.1.4.)
Aby wykryć swój sprzęt podczas konfiguracji X-ów, zainstaluj następujące pakiety przed instalacją X Window System:
discover
– narzędzie identyfikacji sprzętu.
mdetect
– autodetekcja myszy.
read-edid
– gromadzenie informacji sprzętowej o monitorach
VESA PnP.
Zobacz XFree86(1x)
aby uzyskać informację o X serwerze.
Uruchom X serwer z lokalnej konsoli:
$ startx -- :<display> vtXX e.g.: $ startx -- :1 vt8 -bpp 16 ... uruchom na vt8 podłączonym do localhost:1 w trybie 16 bpp
Argumenty podane po -- są przekazywane X serwerowi.
Jeśli używasz skryptu ~/.xserverrc
do konfigurowania uruchomienia
X, pamiętaj aby wykonać exec na prawidłowym X serwerze. W
przeciwnym wypadku może on wolno się uruchamiać i zamykać. Na przykład:
#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Aby skonfigurować (lub przekonfigurować) serwer XF4,
# dpkg-reconfigure --priority=low xserver-common # dpkg-reconfigure --priority=low xserver-xfree86
co utworzy plik /etc/X11/XF86Config-4
, po czym skonfiguruj X-y
używając skryptu dexconf
.
Aby skonfigurować (lub przekonfigurować) serwer XF3 na przykład dla karty ATI mach64,
# dpkg-reconfigure --priority=low xserver-common-v3 # dpkg-reconfigure --priority=low xserver-mach64
co utworzy plik /etc/X11/XF86Config
, po czym skonfiguruj X-y
używając skryptu xf86config-v3
.
Dla Woodiego modyfikując ustawienia w /etc/X11/XF86Config-4
nie zmieniaj zawartości pliku konfiguracyjnego pomiędzy
liniami:
### BEGIN DEBCONF SECTION [ciach] ### END DEBCONF SECTION
Zamiast tego dodaj własne opcje przed tym tekstem. Na przykład, aby użyć innej karty graficznej dodaj podobne linie na początku pliku:
Section "Device" Identifier "Moje Urzadzenie" Driver "ati" Option "NoAccel" EndSection Section "Screen" Identifier "Mój Ekran" Device "Moje Urządzenie" 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 "Mój Ekran" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" "CorePointer" EndSection
Dla Sarge (testing w momencie pisania tych słów), jeśli chcesz
wraz z aktualizacją zatrzymać własne modyfikacje pliku
/etc/X11/XF86Config
, uruchom następujące polecenia jako root:
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum # dpkg-reconfigure xserver-xfree86
By poprawić wygląd czcionek, musisz przeedytować plik
/etc/X11/XF86Config-4
tak jak opisano to w Czcionki TrueType dla X, Rozdział 9.4.13.
Sprawdź również inne części konfiguracji X. Złe ustawienia monitora mogą być istotniejszą przyczyną bólu głowy niż złe czcionki, więc upewnij się, że odświeżanie jest ustawione na tak wysokie jakie potrafi obsłużyć monitor (85 Hz jest wspaniałe, 75 Hz jest OK, a 60 Hz to tragedia).
Większość klientów X może być uruchomiona poleceniem podobnym do:
client $ xterm -geometry 80x24+30+200 -fn 6x10 -display hostname:0 &
Dodatkowe argumenty oznaczają:
-geometry SZERxWYS+XOFF+YOFF: początkowy rozmiar i pozycję okna programu.
-fn NAZWAFONTU: czcionkę służącą do wyświetlania tekstu. NAZWAFONTU może przyjmować wartość:
a14: Normalny rozmiar
a24: Duży rozmiar czcionki
... (sprawdź dostępne czcionki za pomocą xlsfont.)
-display displayname: nazwa X serwera, który ma zostać użyty. displayname może przyjmować wartość:
hostname:D.S oznacza ekran S na monitorze D komputera hostname; X serwer dla tego monitora nasłuchuje na porcie TCP 6000+D
host/unix:D.S oznacza ekran
S na monitorze D hosta
host; X-serwer dla tego monitora nasłuchuje na porcie
typu UNIX. /tmp/.X11-unix/XD
(więc jest dostępny tylko z
host).
:D.S jest równoważne do host/unix:D.S, gdzie host to nazwa lokalnego hosta.
Domyślna wartość zmiennej displayname dla klientów X (oprogramowanie), może być ustawiona poprzez zmienną środowiskową DISPLAY. Można to osiągnąć przez np. uruchomienie następujących skryptów przed klientem X:
$ export DISPLAY=:0 # Domyślne ustawienie, lokalna maszyna, pierwszy screen $ export DISPLAY=hostname.fulldomain.name:0.2 $ export DISPLAY=localhost:0
Start Xów może być dostosowany do własnych potrzeb za pomocą
~/.xinitrc
. Np:
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
Tak jak opisano to w Personalizowane sesje X., Rozdział
9.4.5.1, zastępuje to wszystko, co dzieje się podczas uruchomienia
Xsession
przez startx
. Używaj
~/.xsession
, a z powyższego sposobu korzystaj jedynie w
ostateczności. Zobacz xsetroot(1x)
, xset(1x)
i Zasoby X, Rozdział 9.4.10.
Sesja X (X-serwer + klient X) może być rozpoczęta poprzez:
startx
: skrypt obudowujący xinit
, służący do
uruchomienia sesji z terminala tekstowego. Jeśli plik ~/.xinitrc
nie istnieje, /etc/X11/Xsession
jest wywoływany przez
/etc/X11/xinit/xinitrc
.
xdm
, gdm
, kdm
, lub wdm
:
demon uruchamiający X-serwer i klientów, umożliwiający logowanie w GUI.
/etc/X11/Xsession
jest uruchamiany bezpośrednio.
Tryb tekstowy może być udostępniony, jak to opisano w Jak wyłączyć automatyczne uruchamianie Xów przy starcie?!, Rozdział 8.1.4.
Domyślny skrypt startowy /etc/X11/Xsession
jest kombinacją
/etc/X11/Xsession.d/50xfree86-common_determine-startup
oraz
/etc/X11/Xsession.d/99xfree86-common_start
.
Na przebieg wykonania /etc/X11/Xsession
wpływają ustawienia z
/etc/X11/Xsession.options
. Jego głównym zadaniem jest
uruchomienie za pomocą exec
pierwszego istniejącego programu
znajdującego się na następującej liście:
~/.xsession
lub ~/.Xsession
, jeśli istnieje.
/usr/bin/x-session-manager
, jeśli istnieje.
/usr/bin/x-window-manager
, jeśli istnieje.
/usr/bin/x-terminal-emulator
, jeśli istnieje.
Dokładne znaczenie tych poleceń jest uzależnione od alternatywnych ustawień systemu Debian, opisanych w Alternatywne polecenia, Rozdział 6.5.3. Na przykład:
# update-alternatives --config x-session-manager ... lub # update-alternatives --config x-window-manager
Aby wybrać domyślny menedżer okien X, jednocześnie zachowując GNOME i KDE,
zamień plik /etc/X11/Xsession.d/50xfree86-common_determine-startup
z plikiem dostarczonym w drugim raporcie o błędzie na http://bugs.debian.org/168347
(mam nadzieję, że zostanie to szybko naprawione) i wyedytuj
/etc/X11/Xsession.options
jak następuje:
# /etc/X11/Xsession.options # # opcje konfiguracyjne dla /etc/X11/Xsession # Wyjaśnienie dostępnych opcji znajdziesz w Xsession.options(5) # Default enabled allow-failsafe allow-user-resources allow-user-xsession use-ssh-agent # Domyślnie wyłączone (włącz odkomentowując) do-not-use-x-session-manager #do-not-use-x-window-manager
Bez wspomnianych powyżej zmian w systemie pakiety gnome-session
i
kdebase
zapewniają funkcjonalność menedżera sesji. Usunięcie ich,
umożliwia ustawienie jako domyślnego innego menedżera okien.
W systemie, gdzie /etc/X11/Xsession.options
zawiera linię
allow-user-xsession bez poprzedzających jej znaków, każdy
użytkownik, który stworzy ~/.xsession
lub ~/.Xsession
będzie mógł dostosować działanie /etc/X11/Xsession
.
Ostatnie polecenie w pliku ~/.xsession
powinno przyjmować formę:
exec some-window/session-manager, aby uruchomić
ulubiony menedżer sesji.
Dobry przykład skryptu ~/.xsession
jest podany w
/usr/share/doc/xfree86-common/examples/xsession.gz
.
Używam tego skryptu do wybierania menedżera okien, dostępu do ekranu i obsługiwanego języka dla poszczególnych użytkowników. Przeczytaj także Startowanie sesji X dla użytkownika., Rozdział 9.4.5.2, Zdobywanie uprawnień administratora w X, Rozdział 9.4.12 i Przykład wielojęzykowego systemu X window, Rozdział 9.7.9.
Jeśli chcesz by kilka klientów X startowało automatycznie, zobacz przykłady z
Klienty X, Rozdział 9.4.4 i wywołuj je z
~/.xsession
zamiast ~/.xinitrc
.
Dodatkowe zasoby X dla poszczególnych użytkowników są przechowywane w
~/.Xresources
. Przeczytaj Zasoby X,
Rozdział 9.4.10.
Dostosowania mapy klawiatury i funkcji klawiszy myszy również można dokonać w skryptach startowych użytkownika. Przeczytaj Mapy klawiatury i mapowanie myszy w X, Rozdział 9.4.11.
Podążając za wytycznymi, opisanymi w Personalizowane
sesje X., Rozdział 9.4.5.1, wybrany przez użytkownika menedżer sesji/okien
może być uaktywniony poprzez zainstalowanie odpowiedniego pakietu i odpowiednie
zmiany pod koniec pliku ~/.xsession
. (Osobiście lubię
blackbox
/fluxbox
z powodu ich prostego stylu i
szybkości.):
domyślny menedżer sesji X
Przeczytaj Alternatywne polecenia, Rozdział 6.5.3
exec /usr/bin/x-session-manager
domyślny menedżer okien X
Przeczytaj Alternatywne polecenia, Rozdział 6.5.3.
exec /usr/bin/x-window-manager
Menadżer sesji GNOME (przeładowany)
Zainstaluj pakiet: gnome-session
exec /usr/bin/gnome-session
Menadżer sesji KDE (przeładowany)
Zainstaluj pakiet: kdebase
(lub kdebase3
dla KDE3)
exec /usr/bin/kde2
Blackbox window manager (lekki, szybki).
Zainstaluj pakiet: blackbox
exec /usr/bin/blackbox
Fluxbox window manager (lekki, nowy blackbox).
Zainstaluj pakiet: fluxbox
exec /usr/bin/fluxbox
Xfce window manager (podobny do Mac OS-X, SUN CDE).
Zainstaluj pakiet: xfce
exec /usr/bin/xfwm
IceWM window manager (mały, alternatywa dla GNOME)
Zainstaluj pakiet: icewm
exec /usr/bin/X11/icewm
FVWM2 virtual window manager (mały, podobny do Win95)
Zainstaluj pakiet: fvwm
exec /usr/bin/fvwm2
Windowmaker window manager (trochę jak NexT)
Zainstaluj pakiet: wmaker
exec /usr/bin/wmaker
Enlightenment window manager (przeładowany)
Zainstaluj pakiet: enlightenment
exec /usr/bin/enlightenment
Przeczytaj Window Managers for
X
.
Aby otrzymać w pełni funkcjonalne środowiska KDE lub GNOME, przydatne są poniższe metapakiety:
KDE: zainstaluj pakiet kde
GNOME: zainstaluj pakiet gnome
Instalacja tych pakietów za pomocą narzędzi korzystających ze zmiennych
recommends, takich jak dselect
i
aptitude
, zaopatrzy Cię w większy wybór oprogramowania niż
instalacja tylko za pomocą apt-get
.
Jeśli chcesz logować się w trybie tekstowym wyłącz menedżera wyświetlania X,
takiego jak kdm
, gdm
, i wdm
, które mogą
zostać zainstalowane poprzez zależności, jak opisano to w Jak wyłączyć automatyczne uruchamianie Xów
przy starcie?!, Rozdział 8.1.4.
Jeśli GNOME ma się uruchamiać domyślnie, zamiast KDE, upewnij się jak właściwie
skonfigurować x-session-manager
, co opisano w Alternatywne polecenia, Rozdział
6.5.3.
Ponieważ zdalne połączenie TCP/IP bez szyfrowania można stosunkowo łatwo
podsłuchiwać, domyślne ustawienia X w aktualnej wersji systemu Debian nie
udostępnia gniazda TCP/IP. Rozważ użycie ssh
, jeśli zależy Ci na
zdalnym połączeniu ( zobacz Zdalne połączenie z X –
ssh
, Rozdział 9.4.8).
Metoda opisana tutaj nie jest zalecana, chyba że stosowana jest w bardzo bezpiecznym środowisku, za dobrym firewallem i tylko wtedy jeśli wszyscy użytkownicy są godni zaufania. Użyj tego polecenia, aby sprawdzić obecne ustawienia X serwera dotyczące gniazd TCP/IP:
# find /etc/X11 -type f -print0 | xargs -0 grep nolisten /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Usuń -nolisten aby przywrócić nasłuch poprzez TCP/IP.
xhost
xhost
umożliwia dostęp wyznaczonym hostom. Jest to bardzo
niebezpieczne. Poniższa linia wyłącza sprawdzanie hostów i pozwala na
połączenie skądkolwiek, jeśli dozwolone są połączenia TCP/IP ( przeczytaj Używanie X'ów poprzez TCP/IP, Rozdział 9.4.6):
$ xhost +
Możesz ponownie uaktywnić sprawdzanie hostów poprzez:
$ xhost -
xhost
nie rozróżnia użytkowników na zdalnych maszynach. Oprócz
tego adresy hostów mogą być oszukane (spoofing).
Powinno unikać się tej metody, szczególnie jeśli jesteś podłączony do sieci
niegodnej zaufania (np. PPP dialup ). Przeczytaj xhost(1x)
.
ssh
ssh
zapewnia bezpieczny sposób połączenia lokalnego X serwera z
programem uruchomionym na zdalnej maszynie.
Ustaw pozycje X11Forwarding i AllowTcpForwarding na
yes w pliku /etc/ssh/sshd_config
zdalnego hosta,
jeśli chcesz uniknąć podawania tych opcji w lini poleceń.
Uruchom X serwer na zdalnej maszynie.
Otwórz xterm
na lokalnym komputerze.
Uruchom ssh
, aby ustanowić połączenie ze stroną zdalną.
localname @ localhost $ ssh -q -X -l loginname remotehost.domain Password: .....
Uruchom aplikacje X po stronie zdalnej.
loginname @ remotehost $ gimp &
Metoda ta umożliwia wyświetlanie wyjścia zdalnego klienta X, jak gdyby komunikował się on lokalnie poprzez gniazda UNIX.
xterm
Dowiedz się wszystkiego o xterm
: http://dickey.his.com/xterm/xterm.faq.html
.
Dużo starszych programów dla X, jak xterm
, używa bazy danych
zasobów X do konfiguracji własnego wyglądu. Plik ~/.Xresources
jest używany do przechowywania specyfikacji zasobów użytkownika. Jego
zawartość jest automatycznie dołączana do domyślnych zasobów X podczas
logowania. Zasoby dla całego systemu przechowywane są w
/etc/X11/Xresources/*
i domyślne ustawienia aplikacji w
/etc/X11/app-defaults/*
. Użyj tych ustawień jako wyjściowych.
Oto parę przydatnych ustawień dla twojego pliku ~/.Xresources
:
! Ustaw czcionkę do bardziej czytelnego rozmiaru 9x15 XTerm*font: 9x15 ! Wyświetl pasek przewijania XTerm*scrollBar: true ! Ustaw rozmiar bufora na 1000 linii XTerm*saveLines: 1000 ! Duży ekran kterm KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\ -*-gothic-medium-r-normal--24-*,\ -*-mincho-medium-r-normal--24-*
Aby zmiany te weszły w życie natychmiast, dodaj je do bazy danych zasobów poleceniem:
xrdb -merge ~/.Xresources
Zobacz xrdb(1x)
.
Program xmodmap
jest używany do edycji i wyświetlania mapę
modyfikacji klawiatury i tablicę klawiszy, które są używane przez aplikacje
klienckie do zamiany zdarzeń klawiaturowych na funkcje w X.
$ xmodmap -pm ... wyświetla aktualną mapę modyfikacji $ xmodmap -pk | pager ... wyświetla aktualną tablicę mapy klawiszy $ xmodmap -e "pointer = 3 2 1" # ustawia myszkę dla leworęcznych. $ xmodmap ~/.xmodmaprc # ustawia klawiaturę korzystając z ~/.xmodmaprc
Jest to najczęściej ładowane ze skryptu startowego sesji użytkownika,
~/.xsession
.
By zobaczyć kody klawiszy (keycode), użyj xev
i
naciskaj klawisze. By znaleźć znaczenie klawiszy keysym, spójrz
do definicji z pliku /usr/include/X11/keysymdef.h
. Wszystkie
definicje nazywane są jako XK_ poprzedzające nazwy funkcji.
Zobacz xmodmap(1x)
.
Jeśli program z GUI musi być uruchomiony z uprawnieniami administratora użyj następującej procedury.Nigdy nie uruchamiaj X serwera bezpośrednio z konta roota, aby uniknąć problemów z bezpieczeństwem.
Uruchom X serwer jako zwykły użytkownik i otwórz okno programu
xterm
. Potem:
$ XAUTHORITY=$HOME/.Xauthority $ export XAUTHORITY $ su root Password:***** # printtool &
Używając tego sposobu by zyskać prawa użytkownika innego niż root, upewnij się,
że ~/.Xauthority
jest dostępny do odczytu dla grupy tego
użytkownika.
Aby zautomatyzować te sekwencje poleceń, utwórz plik ~/.xsession
na koncie użytkownika zawierający linie:
# To sprawia, że X-y działają, kiedy za pomocą su staję się root'em. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi unset XSTARTUP # Jeśli jakieś menedżery okien/sesji są wybrane, odkomentuj następujące # linie i dostosuj je do swoich potrzeb. #XSTARTUP=/usr/bin/blackbox # To uruchomi program x-window/session-manager 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 # Uruchom automatycznie wybrany menedżer okien/sesji X exec $XSTARTUP
Następnie uruchom su
(nie su -) w oknie programu
xterm
. Teraz programy uruchamiane z tego xterma
będą
wyświetlać się temu użytkownikowi, podczas gdy pracować będą z prawami
administratora. Działa to tak długo, jak długo domyślny plik
/etc/X11/Xsession
jest wykonywany. Jeśli użytkownik zmienił swoje
środowisko edytując ~/.xinit
lub ~/.xsession
, to
wymieniona zmienna środowiskowa XAUTHORITY musi być w nich
odpowiednio zmieniona.
Opcjonalnie, sudo
może być wykorzystane dla zautomatyzowania tej
sekwencji poleceń:
$ sudo xterm ... lub $ sudo -H -s
W tym wypadku plik /root/.bashrc
powinien zawierać:
if [ $SUDO_USER ]; then sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge - fi
Działa to poprawnie nawet gdy katalog domowy użytkownika jest na NFS, ponieważ
root nie odczytuje jego .Xauthority
.
Jest kilka pakietów przeznaczonych specjalnie dla tego celu:
kdesu
, gksu
, gksudo
,
gnome-sudo
, i xsu
. Parę innych metod może być
użytych do osiągnięcia podobnych rezultatów: utworzenie dowiązania
symbolicznego z pliku /root/.Xauthority
do użytkownika, użycie
skryptu sux
; lub wpisanie
„xauth merge
~USER_RUNNING_X/.Xauthority” w plikach startowych
administratora.
Przeczytaj więcej na debian-devel
mailing list
.
Standardowy xfs
z XFree86-4 poprawnie współpracuje z czcionkami
TrueType. Jeśli natomiast korzystasz z XFree86-3 musisz zainstalować osobny
pakiet, taki jak xfs-xtt
.
Musisz upewnić się, że wszystkie programy, które mają korzystać z czcionek TrueType zostały połączone z libXft lub libfreetype (prawdopobnie nie musisz się o to martwić, jeśli korzystasz z prekompilowanych pakietów .deb).
Na początku przygotuj obsługę czcionek:
Zainstaluj pakiety x-ttcidfont-conf
i defoma
. To
pozwoli zautomatyzować tworzenie plików fonts.scale
i
fonts.dir
.
# apt-get install x-ttcidfont-conf
Zmień część Section "Files" w pliku
/etc/X11/XF86Config-4
tak jak podano poniżej:
Section "Files" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" FontPath "/usr/share/fonts/truetype" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/lib/X11/fonts/Type1" EndSection
Pierwsza linia ustawi XFree86 by korzystało z czcionek TrueType, które zainstalujesz z pakietów systemu Debian. Wpisz z Type1 jest przesunięty na dół, gdyż XFree86 wyświetla je dość słabo. Opcja :unscaled dla czcionek bitmapowych powinna być zbędna w nowszych XF4, ale zostawiłem ją dla pewności.
By zachować własne modyfikacje /etc/X11/XF86Config-4
postępuj
zgodnie z instrukcjami z Ręczna konfiguracja
serwera X,, Rozdział 9.4.3.3.
Następnie zainstaluj pakiety z fontami (DFSG):
Zachodnie czcionki TrueType:
ttf-bitstream-vera
: A set of high-quality TrueType fonts created
by Bitstream, Inc. [33]
ttf-freefont
: A set of free high-quality TrueType fonts covering
the UCS character set.
ttf-thryomanes
: A TrueType Unicode font covering Latin, Greek,
Cyrillic and IPA.
Czcionki azjatyckie:
tfm-arphic-bsmi00lp
: Chinese Arphic "AR PL Mingti2L
Big5" TrueType font TeX font metric data
tfm-arphic-bkai00mp
: Chinese Arphic "AR PL KaitiM Big5"
TrueType font TeX font metric data
tfm-arphic-gbsn00lp
: Chinese Arphic "AR PL SungtiL GB"
TrueType font TeX font metric data
tfm-arphic-gkai00mp
: Chinese Arphic "AR PL KaitiM GB"
TrueType font TeX font metric data
ttf-baekmuk
: Korean Baekmuk series TrueType fonts
hbf-jfs56
: Chinese Jianti Fangsong 56x56 bitmap font (GB2312) for
CJK
hbf-cns40-b5
: Chinese Fanti Song 40x40 bitmap font (Big5) for CJK
hbf-kanji48
: Japanese Kanji 48x48 bitmap font (JIS X-0208) for CJK
Ponieważ wybór Wolnych czcionek jest dosyć ograniczony, dobrym rozwiązaniem może być równoczesna instalacja ich komercyjnych odpowiedników. Aby uczynić ich instalację łatwiejszą, stworzono kilka pakietów:
ttf-commercial
msttcorefonts (>1.1.0)
[34]
Będziesz miał naprawdę duży wybór czcionek, jeśli połączysz użycie swoich Wolnych czcionek z innymi, komercyjnymi.
Wszystkie te pakiety czcionek powinny działać bez żadnych dodatkowych poleceń i powinny być dostępne dla wszystkich programów X, które używają czcionek systemowych. W ich skład wchodzą Xterm, Emacs i większość aplikacji spoza KDE i GNOME.
Teraz uruchom xfontsel
i wybierz jakąkolwiek czcionkę TrueType z
menu fndry. W menu "fmly" powinieneś zobaczyć wiele aktywnych
wpisów.
Dla KDE2.2 i GNOME1.4 (z libgdxft0, które jest pewnym obejściem by czcionki w
GTK 1.2 były antyaliasowane), potrzeba ustawienia dodatkowo Xft1. Xft1 jest
bardzo przestarzałe i praktycznie potrzebne tylko dla GNOME1.4 i KDE2.2. W
pliku /etc/X11/XftConfig
dodaj następującą linię
dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
przed innymi katalogami. [35]
Dla GNOME2 i KDE3 (wszystkie wydania po Sarge), musisz ustawić
fontconfig
, który jest wykorzystywany przez Xft2 do odnajdywania
czcionek. [36] Nie powinno być
potrzeby instalacji żadnych dodatków do tego, ponieważ wszystkie pakiety
używające fontconfig
już od niego zależą (pośrednio).
Na początek zajrzyj do /etc/fonts/fonts.conf
. Powinna tam być
linia taka jak poniżej. Jeśli jej nie ma, otwórz
/etc/fonts/local.conf
i dodaj
<dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>
zaraz po linii <fontconfig>.
Fontconfig
powinien wykryć to od razu i "fc-list"
powinien wyświetlać nowe czcionki. Kolejną przyjemną możliwością
fontconfig
, jest fakt, że możesz umieścić czcionki w
~/.fonts/
i wszystkie programy powinny od razu mieć do nich
dostęp.
Jeśli ręcznie doinstalujesz nowy zestaw czcionek bez używania pakietu z systemu Debian, uruchom
# xset fp rehash
by XFree86 przeglądnęło zawartość katalogu ponownie i dodało nowe czcionki.
Jest kilka graficznych przeglądarek stron WWW w Woodym:
mozilla
The Mozilla (nowa)
galeon
przeglądarka oparta o Mozillę z Gnome UI (nowa)
konqueror
przeglądarka dla KDE
dillo
przeglądarka w GTK
amaya-gtk
przeglądarka wzorcowa W3C
amaya-lesstif
przeglądarka wzorcowa W3C
netscape-...
(dużo, stare)
communicator-...
(dużo, stare)
...
Wersja pakietu mozilla
musi odpowiadać wersji wymaganej przez
pakiet galeon
. Chociaż różnią się one interfejsem użytkownika, to
korzystają z tego samego mechanizmu renderowania stron HTML Gecko.
Wtyczki dla przeglądarek takich, jak mozilla
i galeon
mogą być uaktywnione poprzez ręczną instalację odpowiednich plikow
„*.so” w katalogu z wtyczkami i ponowne
uruchomienie przeglądarki.
Popularne wtyczki:
wtyczka Javy: zaistaluj „J2SE” z http://java.sun.com
.
wtyczka Flash: zainstaluj „Macromedia Flash Player 5” z
http://www.macromedia.com/software/flashplayer/
.
freewrl
: przeglądarka VRML i wtyczka dla Netscape'a
...
SSH (Secure SHell) zapewnia bezpieczny sposób połączeń internetowych. Wersja
SSH stanowiąca wolne oprogramowanie nazywa się OpenSSH i jest dostępna w
systemie Debian jako pakiet ssh
.
Najpierw zainstaluj serwer i klienta OpenSSH.
# apt-get update && apt-get install ssh
Jeśli serwer OpenSSH ma być uruchamiany, to nie może istnieć plik
/etc/ssh/sshd_not_to_be_run
.
SSH zapewnia dwa protokoły identyfikacji:
Pierwszy protokół SSH:
Jedynie Potato obsługuje ten protokół.
dostępne metody identyfikacji:
RSAAuthentication: oparta na kluczu RSA użytkownika
RhostsAuthentication: oparta na .rhosts (niebezpieczna, wyłączona)
RhostsRSAAuthentication: oparta na kombinacji .rhosts i kluczy RSA (wyłączona)
ChallengeResponseAuthentication: oparta o mechanizm RSA challenge-response
PasswordAuthentication: oparta na hasłach
Drugi protokół SSH:
podstawowy dla systemów post-Woody
dostępne metody identyfikacji:
PubkeyAuthentication: oparta o klucz publiczny
HostbasedAuthentication: oparta o .rhosts
lub
/etc/hosts.equiv
, w połączeniu z metodą klucza publicznego
(wyłączona).
ChallengeResponseAuthentication: oparta o mechanizm challenge-response
PasswordAuthentication: oparta na hasłach
Jeśli używasz Woodiego lub systemu innego niż Debian, to zwróć uwagę na te różnice.
Przeczytaj /usr/share/doc/ssh/README.Debian.gz
,
ssh(1)
, sshd(8)
, ssh-agent(1)
, i
ssh-keygen(1)
dla dalszych informacji.
Główne pliki konfiguracyjne to:
/etc/ssh/ssh_config
: Ustawienia domyślne klienta SSH. Przeczytaj
ssh(1)
. Ważne uwagi, pozycje:
Host: Ogranicza następujące po nim deklaracje ( aż do następnego wystąpienia Host) jedynie do komputerów pasujących do wzorca podanego po danym słowie kluczowym.
Protocol: Określa wersje protokołu SSH. Domyślnie to „2,1”.
PreferredAuthentications: Określa metodę identyfikacji klienta SSH2. Domyślna wartość to „hostbased,publickkey,keyboard-interactive,password”.
PasswordAuthentication: Jeśli chcesz logować się używając hasła, upewnij się, że pole to nie jest ustawione na no.
ForwardX11: Domyślnie wyłączone. Nadrzędna wobec tego ustawienia jest opcja wiersza poleceń „-X”.
/etc/ssh/sshd_config
: Domyślne ustawienia serwera SSH. Przejrzyj
też sshd(8)
. Pozycje godne uwagi:
ListenAddress: określa lokalny adres, na którym sshd
powinien nasłuchiwać. Dozwolona jest więcej niż jedna opcja.
AllowTcpForwarding: Domyślnie wyłączone.
X11Forwarding: Domyślnie wyłączone.
$HOME/.ssh/authorized_keys
: lista domyślnych kluczy publicznych,
które zostały użyte przez klientów do połączenia na dane konto na tym
komputerze. Zobacz ssh-keygen(1)
.
$HOME/.ssh/identity
: Zobacz ssh-add(1)
oraz
ssh-agent(1)
.
Rozpoczęcie połączenia przez klienta ssh
.
$ ssh username@hostname.domain.ext $ ssh -1 username@hostname.domain.ext # Wymusza używanie SSH w wersji 1 $ ssh -1 -o RSAAuthentication=no -l username foo.host # wymusza używanie haseł SSH1 $ ssh -o PreferredAuthentications=password -l username foo.host # wumusza używanie haseł SSH2
Z punktu widzenia użytkownika ssh
działa jako sprytniejszy i
bezpieczniejszy odpowiednik programu telnet
( nie zarzuci nas np.
^]).
Aby utworzyć potok łączący port 25 komputera zdalny-serwer i port
4025 na komputerze lokalnym, oraz potok łączący port 110 komputera
zdalny-serwer z portem 4110 lokalnej maszyny, poprzez
ssh
, wykonaj na lokalnej maszynie:
# ssh -q -L 4025:zdalny-serwer:25 4110:zdalny-serwer:110 \ użytkownik@zdalny-serwer
Jest to bezpieczny sposób na nawiązywanie połączenia z serwerami SMTP/POP3 w
Internecie. Ustaw AllowTcpForwarding na yes w pliku
/etc/ssh/sshd_config
zdalnego komputera.
Można uniknąc konieczności pamiętania hasła dla każdego używanego zdalnego komputera używając RSAAuthentication (protokół SSH1) lub PubkeyAuthentication (protokół SSH2).
Na zdalnym systemie ustaw odpowiednio pozycje „RSAAuthentication
yes” lub „PubkeyAuthentication yes”, w
/etc/ssh/sshd_config
.
Następnie wygeneruj klucze identyfikacyjne lokalnie i zainstaluj klucz publiczny na zdalnym systemie:
$ ssh-keygen # RSAAuthentication: klucz RSA1 dla SSH1 $ cat .ssh/identity.pub | ssh użytkownik1@zdalny \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t rsa # PubkeyAuthentication: Klucz RSA dla SSH2 $ cat .ssh/id_rsa.pub | ssh użytkownik1@zdalny \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t dsa # PubkeyAuthentication: klucz DSA dla SSH2 $ cat .ssh/id_dsa.pub | ssh użytkownik1@zdalny \ "cat - >>.ssh/authorized_keys"
Można później zmienić hasło za pomocą polecenia „ssh-keygen -p”. Sprawdź ustawienia testując połączenie. W razie nieprawidłowości skorzystaj z polecenia „ssh -v”.
Możesz dodać opcje do pozycji w authorized_keys
, aby ograniczyć
uprawnienia hostów i użyć odpowiedniego polecenia. Po dalsze informacje
sięgnij do sshd(8)
.
Zauważ, że SSH2 obsługuje HostbasedAuthentication. Aby uaktywnić
ten mechanizm, musisz zmienić wartość zmiennej
HostbasedAuthentication na yes zarówno w pliku
/etc/ssh/sshd_config
po stronie serwera, jak i w plikach
/etc/ssh/ssh_config
lub $HOME/.ssh/config
na
komputerze klienta.
Istnieje parę klientów SSH na platformy inne niż Unix.
puTTY
(GPL)
SSH w cygwin
(GPL)
macSSH
(GPL) [Zauważ, że Mac
OS X zawiera OpenSSH; użyj ssh w aplikacji Terminala]
Zobacz także SourceForge.net, site
documentation
, „6. CVS Instructions”.
ssh-agent
Bezpieczniej jest chronić swój klucz SSH hasłem. Jeśli nie zostało ono ustawione, użyj polecenia ssh-keygen -p aby to zmienić.
Umieść swój klucz publiczny (np ~/.ssh/id_rsa.pub
) w pliku
~/.ssh/authorized_keys
na zdalnym hoście, używając połączenia
opartego o hasła, tak jak to opisano w Połączenia z
mniejszą ilością haseł – RSA, Rozdział 9.5.3.
$ ssh-agent bash # lub uruchom zamiast tego zsh/tcsh/pdksh $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/osamu/.ssh/id_rsa: Identity added: /home/osamu/.ssh/id_rsa (/home/osamu/.ssh/id_rsa) $ scp foo user@remote.host:foo ... nie potrzebne tu jest moje hasło :-) $^D ... przerywanie sesji ssh-agent
Dla X-serwera, standardowe skrypty startowe systemu Debian uruchamiają
ssh-agent
jako proces macierzysty. Musisz więc jedynie uruchomić
jednokrotnie ssh-add
.
Dla dalszych informacji przeczytaj ssh-agent(1)
i
ssh-add(1)
.
Jeśli masz problemy, sprawdź prawa dostępu do plików konfiguracyjnych i uruchom
ssh
z opcją „-v”.
Użyj parametru „-P” jeśli jesteś rootem i masz problem z firewallem; pozwala to uniknąć korzystania z portów 1–1023.
Jeśli zdalne połączenie ssh
nagle przestaje działać, może być to
spowodowane działaniami administratora, a najbardziej, prawdopodobną zmianą w
host_key
. Po upewnieniu się, że nie jest to jednak sprytna próba
włamania poprzez podszywanie się za zdalnej maszyny, możesz odzyskać połączenie
usuwając pozycje host_key
z $HOME/.ssh/known_hosts
na
lokalnej maszynie.
Konfiguracja poczty dzieli się na 3 kategorie:
mail transfer agent (program przesyłający pocztę - MTA): exim
,
postfix
, sendmail
, qmail
,
ssmtp
, nullmailer
, ...
pocztowe programy użytkowe: procmail
, fetchmail
,
mailx
, ...
mail user agent (klient poczty - MUA): mutt
,
emacs
+gnus
,...
Aby mieć w pełni wyposażony MTA użyj exim
. Zasoby:
pakiety exim-doc
i exim-doc-html
Jeśli troszczysz się o bezpieczeństwo, to jedyną rozsądną alternatywą jest
postfix
. sendmail
i qmail
, są również
dostępne jako pakiety systemu Debian, ale ich używanie nie jest polecane.
Jeśli nie potrzebujesz „relay capability” MTA, jak to jest w przypadku np. laptopów, możesz rozważyć użycie rozwiązań mniejszego kalibru:
ssmtp
: wymaga połączenia SMTP i obsługuje aliasy, lub
nullmailer
: potrafi kolejkować, ale nie obsługuje aliasów.
Obecnie uważam, że exim
jest bardziej odpowiedni nawet dla mojej
stacji roboczej, będącej właśnie laptopem.
Musisz usunąć exim
aby zainstalować w/w pakiety, gdyż zachodzi
pomiędzy nimi konflikt:
# dpkg -P --force-depends exim # apt-get install nullmailer # lub ssmtp
Jeśli używasz exim
a na komputerze, który jest podłączony poprzez
jakieś łącze konsumenckie, upewnij się, że wysyłasz pocztę przez tak zwany
smarthost oferowany przez Twojego dostawcę lub innych. [37] Jest kilka dobrych powodów by
tak robić:
by upewnić się, że list doszedł, ponieważ serwer Twojego dostawcy najczęściej posiada lepsze połączenie.
by zapobiec przesyłania wiadomości bezpośrednio z dynamicznego adresu IP, który prawdopodobnie zostanie zablokowany przez listy spamerskie połączeń wdzwanianych.
by zaoszczędzić przepustowość połączenia lokalnego w przypadku wysyłania wiadomości do wielu odbiorców.
Jedynymi dopuszczalnymi wyjątkami są:
sytuacje awaryjne, jeśli usługa SMTP Twojego dostawcy nie działa.
eksperymenty w celach edukacyjnych.
posiadanie komputera z profesjonalnym hostingiem.
Aby używać exim
jako MTA, ustaw odpowiednie opcje w:
/etc/exim/exim.conf „eximconfig” tworzenie i edycja /etc/inetd.conf zakomentuj smtp by używać serwera exim w trybie demon /etc/email-addresses Dodawanie listy fałszywych adresów sprawdź filtry, używając exim -brw, -bf, -bF, -bV, ... etc.
W /etc/exim/exim.conf
(Woody lub później), w części DIRECTORS, pod
koniec (za 'lokalny użytkownik: przekierowanie') dodaj przekierowanie pasujące
do wszystkich adresów, które poprzednie przekierowania nie mogły objąć (przez
Miquela van Smoorenburga):
catchall: driver = smartuser new_address = webmaster@mydomain.com
Jeśli chce się mieć bardziej szczegółowy opis każdej wirtualnej domeny itp.
dodaj następujące linie pod koniec pliku /etc/exim/exim.conf
(nie
sprawdzone).
*@yourdomain.com ${lookup{$1}lsearch*{/etc/email-addresses} \ {$value}fail} T
Następnie umieść pozycje „*” w pliku
/etc/email-addresses
.
Selektywna zamiana adresów dla wychodzącej poczty, aby otrzymać poprawnie
nagłówki „From: ”, może być osiągnięta w programie
exim
dzięki odpowiedniej konfiguracji pod koniec pliku
/etc/exim/exim.conf
:
*@komp1.gdzieś.dyndns.org \ "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1} \ {$0}{$1@gdzieś.dyndns.org}}" frFs
Ta regułka zamienia wszystkie adresy pasujące do *@komp1.gdzieś.dyndns.org.
Najpierw sprawdza w pliku /etc/password
czy część lokalna ($1)
jest użytkownikiem czy nie.
Jeśli to lokalny użytkownik, przepisuje adres w takiej postaci w jakiej występował.
Jeśli nie, podmienia nazwę domeny.
Niektórzy usługodawcy SMTP, jak np. yahoo.com, wymagają autoryzacji SMTP.
Skonfiguruj /etc/exim/exim.conf
następująco:
remote_smtp: driver = smtp authenticate_hosts = smtp.mail.yahoo.com ... smarthost: driver = domainlist transport = remote_smtp route_list = "* smtp.mail.yahoo.com bydns_a" ... plain: driver = plaintext public_name = PLAIN client_send = "^cmatheson3^this_is_my_password"
Nie zapomnij o dwóch znakach cudzysłowia w ostatniej lini
fetchmail
jest uruchamiany w trybie demona, aby pobrać pocztę z
konta POP3 u ISP do lokalnego systemu pocztowego. Konfiguracja:
/etc/init.d/fetchmail /etc/rc?.d/???fetchmail uruchom update-rc.d fetchmail default priority 30 /etc/fetchmailrc plik konfiguracyjny (chown 600, własność fetchmaila)
Uruchomienie fetchmaila
jako demona wywoływanego ze skryptu
init.d
w Potato może być kłopotliwe (w Woodym jest już inaczej).
Zobacz przykładowe skrypty
.
Jeśli nagłówki poczty elektronicznej są zanieczyszczone znakiem ^M z winy
Twojego ISP, dodaj „stripcr” do opcji w pliku
$HOME/.fetchmailrc
:
options fetchall no keep stripcr
procmail
spełnia rolę lokalnego MDA oraz programu filtrującego.
Należy stworzyć plik $HOME/.procmailrc
dla każdego konta, które z
niego korzysta. Przykłady _procmailrc
Użyj mutt
jako czytnika poczty ( mail user agent (MUA)) w
połączeniu z vim
. Dostosuj do własnych potrzeb edytując
plik~/.muttrc
; na przykład:
# używaj trybu wizualnego i „gq” do formatowania cytatów set editor="vim -c 'set tw=72 et ft=mail'" # # usuwanie nagłówków wzięte z podręcznika (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 ....
Użyj następujących wpisów w plikach /etc/mailcap
lub
$HOME/.mailcap
, aby przeglądać załączniki w formatach HTML i MS
Word.
text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
Debian jest projektem międzynarodowym, obsługującym rosnącą ilość języków itp. Ta część wymieni kilka obszarów różnic językowych, które Debian obecnie obsługuje. Następne zaś skupią się na lokalizacji, procesie uzyskania wejścia i wyjścia programów w wybranym języku, jak również stosowania wybranych konwencji drukowania daty, liczb i symboli monetarnych, jak również innych różnic, jakie mogą występować na skutek stosowania systemu Debian w Twoim regionie.
Jest kilka aspektów lokalizowania systemu Debian i obsługi języków narodowych.
Debian jest rozpowszechniany z blisko dwoma tuzinami map klawiatur. W Woodym możesz zmienić ustawienia klawiatury poprzez:
dpkg-reconfigure --priority=low console-data # console
dpkg-reconfigure --priority=low xserver-xfree86 # XF4
dpkg-reconfigure --priority=low xserver-common-v3 # XF3
Szeroka gama oprogramowania dostępnego jako pakiety Debiana wspiera obsługę znaków graficznych różnych od standardu US-ASCII poprzez zmienną środowiskową LC_CTYPE, udostępnianą przez mechanizm locale w glibc
8-bit clean: praktycznie wszystkie programy
inne zestawy znaków Latin (np. ISO-8859-1 lub ISO-8859-2): większość programów
wielobajtowe języki, jak Chiński, Japoński czy Koreański: wiele nowych programów
X-y mogą wyświetlać każde kodowanie, włączając UTF-8, i obsługują wszystkie czcionki. Zawierają się w tym nie tylko wszystkie czcionki 8-bitowe, ale także 16-bitowe - np. chińska, japońska czy koreańska. Obsługa wielobajtowych zestawów znaków przy wprowadzaniu danych jest zapewniona przez mechanizm Alternatywne metody wejścia X, Rozdział 9.7.10. Zobacz Przykład wielojęzykowego systemu X window, Rozdział 9.7.9 i Obsługa UTF-8 w emulatorach terminali X, Rozdział 9.7.12.
Wyświetlanie japońskiego kodu EUC jest także możliwe w konsoli graficznej,
poprzez pakiet kon2
. Jest także alternatywny program, używający
konsoli framebuffera, pakiet jfbterm
. W tych środowiskach sposób
zapewnienia wejścia kompatybilnego z językiem japońskim musi być zapewniony
przez programy użytkowe. Użyj pakietu egg
dla Emacsa lub
jvim
dla Vima.
Instalacja czcionek innych niż Unicode dla X pomoże wyświetlać dokumenty z jakimkolwiek kodowaniem. Więc nie przejmuj się zbytnio kodowaniem czcionek.
Dostępne są tłumaczenia wielu komunikatów i dokumentów wyświetlanych w systemie Debian takich, jak komunikaty błędów, standardowe wyjście programów, menu oraz strony podręcznika systemowego. Obecnie istnieją strony podręcznika w języku niemieckim, hiszpańskim, fińskim, francuskim, węgierskim, włoskim, japońskim, koreańskim, polskim, portugalskim, chińskim oraz rosyjskim - wszystkie one są dostępne w pakietach manpages-LANG (gdzie LANG jest dwuliterowym kodem ISO kraju. Użyj apt-cache search manpages-|less aby otrzymać listę dostępnych pakietów.)
Aby korzystać z przetłumaczonych stron podręcznika, użytkownik musi ustawić
zmienną środowiskową LC_MESSAGES na odpowiednią wartość. W przypadku języka
włoskiego LC_MESSAGES musi zostać ustawione na it. Wtedy
man
będzie szukał włoskiego tłumaczenia w pliku
/usr/share/man/it/
.
Debian oferuje mechanizm locale. Pozwala on programom na dostosowanie wyjścia i możliwości w zależności od ustawień systemowych takich, jak używany zestaw znaków, format wyświetlania daty i godziny, symbol waluty itp. Na przykład, zakładając występowanie zarówno angielskich (amerykańskich) jak i niemieckich locales w Twoim systemie, komunikat błędu może być wyświetlany w wielu językach:
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
Glibc oferuje tą funkcjonalność dla programów jako bibliotekę. Zobacz
locale(7)
.
Pełny opis locale składa się z trzech części: xx_YY.ZZZZ.
xx: kod języka w ISO 639 (małe litery)
YY: kod kraju w ISO 3166 (wielkie litery)
ZZZZ: zestaw kodów, np. ustawienia znaków lub identyfikator kodowania.
Kody języków i krajów możesz znaleźć w opisie w info gettext.
Zwróć uwagę, że część opisująca kody może zostać wewnętrznie znormalizowana poprzez usunięcie wszystkich znaków - i zamianę liter na małe w celu większej kompatybilności, Typowe zestawy kodów to:
UTF-8: Unikod (Unicode) dla wszystkich regionów, głównie w 1-3 oktetach (de facto nowy standard)
ISO-8859-1: zachodnia Europa (de facto stary standard)
ISO-8859-2: wschodnia Europa (bośniacki, chorwacki, czeski, węgierski, polski, rumuński, serbski, słowacki, słoweński)
ISO-8859-3: maltański
ISO-8859-5: macedoński i serbski
ISO-8859-6: arabski
ISO-8859-7: grecki
ISO-8859-8: hebrajski
ISO-8859-9: turecki
ISO-8859-11: tajski (=TIS-620)
ISO-8859-13: łotewski, litewski, maori
ISO-8859-14: walijski
ISO-8859-15: zachodnia Europa z obsługą euro
KOI8-R: rosyjski
KOI8-U: ukraiński
CP1250: czeski, węgierski, polski (MS Windows)
CP1251: bułgarski, białoruski (MS Windows)
eucJP: japoński w stylu Unix (=ujis)
eucKR: koreański w stylu Unix
GB2312: uproszczony chiński w stylu Unix (=GB, =eucCN) dla zh_CN
Big5: tradycyjny chiński dla zh_TW
sjis: japoński w stylu Microsoft (Shift-JIS)
Znaczenie podstawowych systemów kodowania:
ASCII: 7 bitów (0-0x7f)
ISO-8859-?: 8 bitów (0-0xff)
ISO-10646-1: Universal Character Set (UCS) (31 bitów, 0-0x7fffffff)
UCS-2: Pierwsze 16 bitów UCS jako proste 2 oktety (Unicode: 0-0xffff)
UCS-4: UCS jako proste 4 oktety (UCS: 0-0x7fffffff)
UTF-8: UCS zakodowany w 1-6 oktetach (głównie w 3 oktetach)
ISO-2022: 7 bitów (0-0xff) z sekwencjami escape. ISO-2022-JP jest najpopularniejszym kodowaniem dla japońskich wiadomości.
EUC: 8 bitów + 16 bitów kombinacji (0-0xff), styl Unix
Shift-JIS: 8 bitów + 16 bitów kombinacji (0-0xff), styl Microsoft.
ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4 i UTF-8 dla znaków 7 bitowych wspóldzielą te same kody wraz z ASCII. EUC i Shift-JIS używa znaków wysokich bitów (0x80-0xff) dla zaznaczenia, że część kodowania jest 16 bitowa. UTF-8 również używa znaków wysokich bitów (0x80-0xff) by zaznaczyć sekwencje znaków spoza 7 bitów i jest to najbardziej powszechny system kodowania znaków spoza ASCII.
Zwróć uwagę na różnicę w kolejności bajtów w implementacjach Unikodu:
Standard UCS-2, UCS-4: big endian
Microsoft UCS-2, UCS-4: little endian dla ix86 (zależne od komputera)
Więcej możesz dowiedzieć się we Wprowadzeniu do
i18n
.
Debian nie jest instalowany z wszystkimi możliwymi
prekompilowanymi wersjami locales . Sprawdź plik /usr/lib/locale
,
aby zobaczyć, które locale (poza domyślnym „C”), są
obecne w Twoim systemie. Jeśli potrzebujesz takiego, który nie jest dostępny
masz dwie możliwości:
Dodaj pożądane locale do pliku /etc/locale.gen
, następnie uruchom
locale-gen
jako root aby je skompilować. Przeczytaj
locale-gen(8)
i strony wymienione w jego części „SEE
ALSO”.
Uruchom dpkg-reconfigure locales, aby ponownie skonfigurować
pakiet locales
. A jeśli nie jest jeszcze zainstalowany, to
instalacja wywoła interfejs programu debconf, aby pozwolić Ci wybrać potrzebne
locale i skompilować bazę danych.
Następujące zmienne środowiskowe są używane, aby dostarczyć ustawień locale dla programów:
LANGUAGE: Ta zmienna składa się z oddzielonej dwukropkami listy locale w porządku ważności. Używaj wyłącznie, jeśli POSIX locale jest ustawione do wartości innej niż „C” [w Woodym; wersja Potato jest zawsze ważniejsza od POSIX locale]. (rozszerzenie GNU)
LC_ALL: Jeśli nie przyjmuje wartości NULL, wartość ta jest użyta dla categories. (POSIX.1) Zwykle „” (null).
LC_*: Jeśli nie przyjmuje wartości NULL, wartość ta jest użyta dla odpowiedniej kategorii (POSIX.1). Zwykle „C”.
Dostępne zmienne LC_*:
LC_CTYPE: Konwersja czcionki i wielkości liter.
LC_COLLATE: Porządek sortowania.
LC_TIME: Format wyświetlania daty i godziny.
LC_NUMERIC: Wyświetlanie liczb nie związanych z walutą
LC_MONETARY: Formaty walutowe.
LC_MESSAGES: Format wiadomości informacyjnych, diagnostycznych oraz określających interakcje programu.
LC_PAPER: Rozmiar papieru.
LC_NAME: Format nazw.
LC_ADDRESS: Format wyświetlania adresu i lokalizacji.
LC_TELEPHONE: Format wyświetlania numeru telefonu.
LC_MEASUREMENT: Jednostki miary (metryczna lub inna)
LC_IDENTIFICATION: Metadata o ustawieniach locale.
LANG: Jeśli nie przyjmuje wartości NULL i LC_ALL jest niezdefiniowane, wartość wszystkich niezdefiniowanych kategorii LC_* jest ustawiana na tą wartość. (POSIX.1) Zwykle „C”.
Zauważ, że niektóre programy (np. Netscape 4) ignorują ustawienia LC_*.
Program locale
może wyświetlać ustawienia locale i dostępne
locale; przeczytaj locale(1)
. (Zapamiętaj: locale -a
podaje wszystkie locale, o których istnieniu wie; nie oznacza to, że
wszystkie są dostępne! Zobacz Aktywacja wsparcia
locale, Rozdział 9.7.4.)
Locale obsługuje międzynarodowy standard formatu daty yyyy-mm-dd
(ISO 8601) poprzez locale en_DK, — Angielski w Danii, co
jest żartem :-) Wydaje się działać jedynie w trybie tekstowym w
ls
.
Dodaj poniższe linie do pliku ~/.bash_profile
:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE
Dodaj poniższe linie do pliku ~/.bash_profile
:
LANG=fr_FR@euro export LANG LC_CTYPE=fr_FR@euro export LC_CTYPE
Skonfiguruj klawiaturę jako francuskie „AZERTY”, jak to
opisano w Lokalizacja klawiatury, Rozdział 9.7.1.1 i
dodaj francuskie strony podręcznika systemowego instalując
manpages-fr
. Prawy Alt w US to Alt-Gr w Europie. Naciśnięcie
tych klawiszy razem z innymi tworzy liczne znaki diakrytyczne oraz znaki
specjalne. Np Alt-Gr+E odpowiada za znak Euro.
Większość języków zachodnio-europejskich może być skonfigurowana podobnie.
Zobacz Debian Euro
HOWTO
, jak dodać obsługę nowej waluty Euro oraz Utiliser et
configurer Debian pour le français
po więcej informacji w języku
francuskim.
Ustawmy wielojęzykowy system X window, który będzie jednocześnie obsługiwał japoński, angielski, niemiecki i francuski z kodowaniami EUC, UTF-8 i ISO-8859-1 w różnych konsolach.
Pokażę sposób dostosowania z użyciem systemu menu Debiana. Szczegóły tego
systemu możesz znaleźć w /usr/share/doc/menu/html/index.html
.
W przykładzie stworzę również skrót do przeglądarki mozilla
. [38]
dodaj obsługę japońskiego ja_JP.eucJP oraz reszty potrzebnych locale metodą opisaną w Lokalizacja, Rozdział 9.7 (dla wszystkich).
zainstaluj system konwersji oraz słownik Kana-to-Kanji (dla japońskiego):
canna
– lokalny serwer (licencja „free
beer”), lub
freewnn-jserver
– sieciowy serwer (Public Domain)
zainstaluj mechanizmy japońskiego wejścia (dla japońskiego):
kinput2-canna
– dla X-ów, lub
kinput2-canna-wnn
– dla X-ów, i
egg
– działa bezpośrednio z Emacsem nawet w trybie tekstowym
(opcjonalnie).
terminale odpowiednio przystosowane (dla wszystkich):
xterm
– X (dla ISO-8859-1 i UTF-8),
kterm
– X (dla japońskiego EUC) i
mlterm
– X (wielojęzykowy).
dodaj wszystkie wymagane czcionki (dla wszystkich)
stwórz plik ~/.xsession
dla ustawień zależnych od użytkownika tak
jak to opisano w Personalizowane sesje X., Rozdział
9.4.5.1 (dla wszystkich):
#!/bin/sh # To sprawia, że X-y działają gdy przeloguję się na roota za pomocą su. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Ustawianie odpowiedniego środowiska przez system menu Debiana. # Resetowanie locale unset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES unset LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT unset LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER # ustawienie domyślnego locale w X LANG=C # eksportowanie locale export LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES export LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT export LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER ### # uaktywnianie japońskiej metody wejściowej z kinput2 kinput2 & XMODIFIERS="@im=kinput2" export XMODIFIERS # A może blackbox window manager (leciutki) exec /usr/bin/blackbox #exec xfwm #exec wmaker
ustaw locale dla konsoli w ~/.bash_profile
(dla wszystkich)
jeśli istnieją to usuń ustawienia locale z ~/.bashrc
(dla
wszystkich)
utwórz kilka plików w /etc/menu/
(dla wszystkich).
/etc/menu/xterm-local
: (dodaj nowe wpisy do menu) [39]
?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator (en_US.ISO-8859-1)"\ title="XTerm (en_US.ISO-8859-1)"\ command="sh -c 'LC_ALL=en_US.ISO-8859-1 xterm'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator (de_DE.ISO-8859-1)"\ title="XTerm (de_DE.ISO-8859-1)"\ command="sh -c 'LC_ALL=de_DE.ISO-8859-1 xterm -T xterm-de'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: terminal emulator for X with Unicode support (Japanese)"\ title="UXTerm (ja_JP.UTF-8)"\ command="sh -c 'LC_ALL=ja_JP.UTF-8 uxterm'"
/etc/menu/kterm
: (nadpisanie domyślnych ustawień) [40]
?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LC_ALL=ja_JP.eucJP PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal" ?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LANG=ja_JP.eucJP \ LC_MESSAGES=en_US.ISO-8859-1 PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal (bilingal)"
/etc/menu/mozilla-local
: (dodaj nowy skrót) [41]
?package(mozilla-browser):needs="x11" section="/" \ title=" Mozilla Navigator" command="mozilla-1.5" hints="Web browsers" \ icon=/usr/share/pixmaps/mozilla.xpm
uruchom update-menus
z konta administratora.
dodaj następujące linie do ~/.muttrc
(dla japońskiego):
# Obsługa UTF-8 nie jest popularna w powszechnym japońskim środowisku EMACS # 7 bitowe kodowanie iso-2002-jp jest prostsze dla wszystkich. # domyślna kolejność kodowań = us-ascii --> iso-8859-1 --> iso-2022-jp set send_charset="us-ascii:iso-8859-1:iso-2022-jp" set allow_8bit=no
uaktywnij XIM kinput2
dla aplikacji w X-ach (dla japońskiego)
dodaj *inputMethod: kinput2 i KTerm*VT100*OpenIm:
true do Twojego pliku ~/.Xresources
(wygląda na to, że
Debian załatwia to jakoś automatycznie).
Niektóre programy, jak np. mlterm
pozwalają także na ustawianie
*inputMethod: i innych informacji dynamicznie, podczas działania
(naciśnij Ctrl-MouseButton-3 w mlterm
).
uruchom X poprzez startx lub menedżer wyświetlania
(xdm
, gdm
, kdm
, wdm
, ...)
(dla wszystkich).
uruchom program kompatybilne z językiem japońskim takie, jak VIM6, (x)emacs21,
mc-4.5, mutt-1.4, ... w kterm
(dla japońskiego). (Emacs wydaje
się najpopularniejszy, aczkolwiek osobiście go nie używam).
naciśnij Shift+Space aby włączyć/wyłączyć japoński tryb wejścia (dla japońskiego).
przeczytaj przetłumaczone strony podręcznika systemowego wprowadzając polecenie w zlokalizowanej konsoli (dla wszystkich).
Obsługa innych języków CJK opisana jest w następnych rozdziałach oraz pod
adresem SuSE
pages for CJK
.
Jest wiele innych pakietów oferujących alternatywne metody wejścia dla X:
Język LC_CTYPE XIM serwer XMODIFIERS klawisz startowy japoński ja_JP* kinput2 "@im=kinput2" Shift-Space koreański ko_KR* ami "@im=Ami" Shift-Space chiński(T) zh_TW.Big5 xcin "@im=xcin-zh_TW.big5" Ctrl-Space chiński(S) zh_CN.GB2312 xcin "@im=xcin-zh_CN.GB2312" Ctrl-Space
Japońska metoda wejściowa kinput2
jest dostarczana przez pakiety
kinput2-canna-wnn
, kinput2-canna
i
kinput2-wnn
. By były użyteczne wymagają serwerów słownikowych
takich jak canna
oraz freewnn-jserver
.
Jest wiele konsoli X wspierających zwykłe kodowanie 8-bitowe jeśli odpowiednie pakiety z czcionkami są zainstalowane.
xterm
– The X terminal emulator
gnome-terminal
– xterm
dla Gnome
konsole
– xterm
dla KDE
rxvt
– VT102 terminal (lżejszy)
aterm
– VT102 dla Afterstep WM
eterm
– VT102 dla Enlightment WM
wterm
– VT102 dla WindowMaker WM
Wielobajtowe kodowania dla konsol X wspiera xterm
poprzez
kodowanie UTF-8 (Obsługa UTF-8 w emulatorach terminali X,
Rozdział 9.7.12). Nad wsparciem dla innych tradycyjnych kodowań trwają
prace (2003). Następujące pakiety oferują wsparcie dla tradycyjnych kodowań:
aterm-ml
– wielojęzykowy
kterm
– wielojęzykowy (japoński, ...)
rxvt-ml
– wielojęzykowy
wterm-ml
– wielojęzykowy
cxterm-big5
– chiński (Trad., Big5)
cxterm-gb
– chiński (Simp., GB)
cxterm-ks
– chiński (KS)
cxterm-jis
– japoński
hanterm-classic
– koreański (Hangul)
hanterm-xf
– koreański (Hangul)
hztty
– chiński (GB, Big5, zW/HZ)
Dla kterm
(i prawdopodobnie innych), możesz uaktywnić XIM poprzez
menu klikając środkowy klawisz myszy.
Dla XFree86 4.x obsługa UTF-8 w emulatorze terminala X dostarczana jest przez
program uxterm
z pakietu xterm
. Uaktywnia wsparcie
dla wszystkich języków. Jest on swego rodzaju nakładką nad
xterm(1)
, która wywołuje go z odpowiednio ustawionym zasobem X
"UXTerm".
Przykładowo by uaktywnić wyświetlanie ładnych, dużych znaków angielskich,
rosyjskich, japońskich, chińskich oraz koreańskich, po zainstalowaniu
odpowiednich czcionek dodaj do swojego ~/.Xresources
następujące
linie:
! set large font UXTerm*font: -misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1 ! Use XIM for Japanese *inputMethod: kinput2
Następnie tak jak to opisano w Zasoby X, Rozdział 9.4.10, uruchom xrdb -merge ~/.Xresources by uaktualnić swoje zasoby X.
Większość popularnych programów konsolowych takich jak vim
,
mutt
i emacs
zostały ostatnio dostosowane do
kodowania UTF-8 (Woody-Sarge). Jednakże program mc
nadal nie jest
zgodny z UTF-8, a tylko czysty 8-bitowo. Jeśli edytujesz 7-bitową część ASCII
pliku o nieznanym lub mieszanym kodowaniu, to bezpieczniej jest używać
oprogramowania niewspierającego locale.
Zobacz The Unicode
HOWTO
.
Wsparcie UTF-8 na terminalu FB jest zapewnione przez bterm
używany
w debian-installer
.
Kiedy po raz pierwszy starasz się skonfigurować narodowe środowisko
językowe zastanów się nad użyciem tasksel
lub
aptitude
, aby dowiedzieć się jakie pakiety są instalowane,
wybierając odpowiadające im funkcje lokalizacyjne. Wybór pakietów jest
przydatny nawet w systemie wielojęzycznym. Jeśli napotkasz konflikty podczas
instalacji z Twoim ostrożnie skonfigurowanym systemem, unikaj instalowania
pakietu powodującego konflikt. Możliwe, że będziesz musiał użyć
update-alternative
aby przywrócić oryginalny stan dla niektórych
poleceń, gdyż instalowane mogły mieć wyższy priorytet od istniejących.
Ważne nowe programy używają glibc 2.2 i przeważnie są umiędzynarodowione. Więc
specjalnie zlokalizowane wersje, jak jvim
dla VIM, mogą nie być
potrzebne, gdyż wymagana funkcjonalność jest oferowana przez wersję 6.0
vima
w X-ach. Chociaż z tym różnie bywa. Np. jvim
posiada wersję skompilowaną z bezpośrednim wsparciem dla japońskiej metody
wejściowej (canna
) nawet w terminalu tekstowym i lepiej rozwiązuje
niektóre problemy specyficzne dla japońskiego, więc wciąż możesz na niego
reflektować :-)
Programy mogą potrzebować konfiguracji wykraczającej poza locale
aby zapewnić komfortowe środowisko pracy. Pakiet language-env
i
jego polecenie set-language-env
w istotny sposób ułatwiają ten
proces.
Zobacz także dokument o internacjonalizacji, Introduction to
i18n
. Przeznaczony jest głównie dla programistów, ale przydatny
może być również dla administratorów.
[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ dalej ]
Debian Reference
CVS, czwartek, 18 styczeń 2007, 11:53:26 UTCosamu#at#debian.org
fenio@o2.pl