[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ dalej ]


Debian Reference
Część 9 - Dostrajanie systemu Debian


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.


9.1 Inicjalizacja systemu

Debian używa systemu skryptów inicjalizacyjnych System V. Dobrym wprowadzeniem jest lektura Program init, Rozdział 2.4.1.


9.1.1 Dostosowywanie skryptów startowych do własnych potrzeb.

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.


9.1.2 Logowanie komunikatów systemowych

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).


9.1.3 Optymalizacja sprzętu

Istnieje kilka ustawień sprzętowych, których optymalizację Debian pozostawia w gestii administratora.

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:

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.


9.2 Ograniczenia dostępu


9.2.1 Ograniczenia dostępu poprzez PAM

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.


9.2.2 „Dlaczego GNU 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

9.2.3 Przeznaczenie standardowych grup

Oto kilka interesujących grup:

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.


9.2.4 Bezpieczniejsza praca – 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ę /etc/sudoers. Zapoznaj się także z możliwościami sudo w pliku /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.


9.2.5 Ograniczenia dostępu do usług

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.


9.2.6 Centralne uwierzytelnianie – LDAP Użyj Lightweight Directory Access Protocol (LDAP).

Zasoby:


9.3 Nagrywarki CD

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.


9.3.1 Wstęp

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).


9.3.2 Sposób 1: moduły jądra + 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

9.3.3 Sposób 2: ponowna kompilacja jądra

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:


9.3.4 Czynności po konfiguracji

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.


9.3.5 Obrazy startowe płyt CD

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

9.3.6 Wypalanie płyty (R, RW):

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.


9.3.7 Wykonanie obrazu z posiadanej płyty CD

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))

9.3.8 Obrazy Debian CD

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.


9.3.9 Wykonywanie kopii systemu na płytach CD-R

Aby skopiować kluczowe pliki konfiguracyjne i dane na płyty CD-R, użyj przykładowego skryptu backup backup. Zobacz także Kopiowanie oraz archiwizacja całych katalogów, Rozdział 8.3 i Kopia różnicowa oraz synchronizacja danych, Rozdział 8.4.


9.3.10 Kopiowanie CD z muzyką

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...)


9.4 X

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.

X serwer, Rozdział 9.4.3

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.

Klienty X, Rozdział 9.4.4

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).

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.


9.4.1 Pakiety związane z X

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.)


9.4.2 Wykrywanie sprzętu dla X

Aby wykryć swój sprzęt podczas konfiguracji X-ów, zainstaluj następujące pakiety przed instalacją X Window System:


9.4.3 X serwer

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

9.4.3.1 Konfiguracja serwera X (wersja 4)

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.


9.4.3.2 Konfiguracja serwera X (wersja 3)

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.


9.4.3.3 Ręczna konfiguracja serwera X,

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).


9.4.4 Klienty X

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ą:

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.


9.4.5 Sesje X

Sesja X (X-serwer + klient X) może być rozpoczęta poprzez:

Tryb tekstowy może być udostępniony, jak to opisano w Jak wyłączyć automatyczne uruchamianie Xów przy starcie?!, Rozdział 8.1.4.


9.4.5.1 Personalizowane sesje X.

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.


    9.4.5.2 Startowanie sesji X dla użytkownika.

    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.):

    Przeczytaj Window Managers for X.


    9.4.5.3 Ustawianie KDE i GNOME

    Aby otrzymać w pełni funkcjonalne środowiska KDE lub GNOME, przydatne są poniższe metapakiety:

    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.


    9.4.6 Używanie X'ów poprzez TCP/IP

    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.


    9.4.7 Zdalne połączenie z X – 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).


    9.4.8 Zdalne połączenie z X – ssh

    ssh zapewnia bezpieczny sposób połączenia lokalnego X serwera z programem uruchomionym na zdalnej maszynie.

    Metoda ta umożliwia wyświetlanie wyjścia zdalnego klienta X, jak gdyby komunikował się on lokalnie poprzez gniazda UNIX.


    9.4.9 Emulator terminala X – xterm

    Dowiedz się wszystkiego o xterm: http://dickey.his.com/xterm/xterm.faq.html.


    9.4.10 Zasoby X

    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).


    9.4.11 Mapy klawiatury i mapowanie myszy w X

    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).


    9.4.12 Zdobywanie uprawnień administratora w X

    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.


    9.4.13 Czcionki TrueType dla X

    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:

    Następnie zainstaluj pakiety z fontami (DFSG):

    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:

    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.


    9.4.14 Przeglądarka WWW w X

    Jest kilka graficznych przeglądarek stron WWW w Woodym:

    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:


    9.5 SSH

    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.


    9.5.1 Podstawy 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:

    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:

    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. ^]).


    9.5.2 Przekierowywanie portów dla tuneli SMTP/POP3

    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.


    9.5.3 Połączenia z mniejszą ilością haseł – RSA

    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.


    9.5.4 Radzenie sobie z innymi klientami SSH

    Istnieje parę klientów SSH na platformy inne niż Unix.

    Windows

    puTTY (GPL)

    Windows (cygwin)

    SSH w cygwin (GPL)

    Macintosh Classic

    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”.


    9.5.5 Ustawianie 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).


    9.5.6 Rozwiązywanie problemów z SSH

    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.


    9.6 Poczta

    Konfiguracja poczty dzieli się na 3 kategorie:


    9.6.1 Agenci transportu poczty (MTA)

    Aby mieć w pełni wyposażony MTA użyj exim. Zasoby:

    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:

    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
    

    9.6.1.1 Smarthost

    Jeśli używasz exima 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ć:

    Jedynymi dopuszczalnymi wyjątkami są:


    9.6.1.2 Podstawowa konfiguracja Exima

    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.
    

    9.6.1.3 Wyłapywanie poczty dla nieistniejących adresów w Eximie

    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.


    9.6.1.4 Zamiana adresów dla poczty wychodzącej poczty w Eximie

    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.

    1. Najpierw sprawdza w pliku /etc/password czy część lokalna ($1) jest użytkownikiem czy nie.

    1. Jeśli to lokalny użytkownik, przepisuje adres w takiej postaci w jakiej występował.

    1. Jeśli nie, podmienia nazwę domeny.


    9.6.1.5 Konfigurowanie autoryzacji SMTP w Eximie

    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


    9.6.2 Pobieranie poczty – Fetchmail

    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
    

    9.6.3 Przetwarzanie poczty – Procmail

    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


    9.6.4 Odczytywanie poczty – Mutt

    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
    

    9.7 Lokalizacja

    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.


    9.7.1 Podstawy lokalizacji

    Jest kilka aspektów lokalizowania systemu Debian i obsługi języków narodowych.


    9.7.1.1 Lokalizacja klawiatury

    Debian jest rozpowszechniany z blisko dwoma tuzinami map klawiatur. W Woodym możesz zmienić ustawienia klawiatury poprzez:


    9.7.1.2 Lokalizacja danych

    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


    9.7.1.3 Lokalizacja wyświetlania

    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.


    9.7.1.4 Lokalizacja komunikatów i dokumentacji

    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/.


    9.7.2 Locales

    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).


    9.7.3 Wprowadzenie do locales

    Pełny opis locale składa się z trzech części: xx_YY.ZZZZ.

    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:

    Znaczenie podstawowych systemów kodowania:

    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:

    Więcej możesz dowiedzieć się we Wprowadzeniu do i18n.


    9.7.4 Aktywacja wsparcia locale

    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:


    9.7.5 Uaktywnienie określonego locale.

    Następujące zmienne środowiskowe są używane, aby dostarczyć ustawień locale dla programów:

    1. 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)

    1. LC_ALL: Jeśli nie przyjmuje wartości NULL, wartość ta jest użyta dla categories. (POSIX.1) Zwykle „” (null).

    1. LC_*: Jeśli nie przyjmuje wartości NULL, wartość ta jest użyta dla odpowiedniej kategorii (POSIX.1). Zwykle „C”.

      Dostępne zmienne LC_*:

    1. 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.)


    9.7.6 Format daty ISO 8601

    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.


    9.7.7 Przykład dla US (ISO-8859-2)

    Dodaj poniższe linie do pliku ~/.bash_profile:

         LC_CTYPE=en_US.ISO-8859-1
         export LC_CTYPE
    

    9.7.8 Przykład dla Francji, z walutą Euro (ISO-8859-15)

    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.


    9.7.9 Przykład wielojęzykowego systemu X window

    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]

    Obsługa innych języków CJK opisana jest w następnych rozdziałach oraz pod adresem SuSE pages for CJK.


    9.7.10 Alternatywne metody wejścia X

    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.


    9.7.11 Emulatory terminali X

    Jest wiele konsoli X wspierających zwykłe kodowanie 8-bitowe jeśli odpowiednie pakiety z czcionkami są zainstalowane.

    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ń:

    Dla kterm (i prawdopodobnie innych), możesz uaktywnić XIM poprzez menu klikając środkowy klawisz myszy.


    9.7.12 Obsługa UTF-8 w emulatorach terminali X

    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.


    9.7.13 Przykład UTF-8 w terminalu framebuffer

    Wsparcie UTF-8 na terminalu FB jest zapewnione przez bterm używany w debian-installer.


    9.7.14 Poza locales

    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 UTC

    Osamu Aoki osamu#at#debian.org
    Koordynator tłumaczenia: Bartosz Feński aka fEnIo fenio@o2.pl
    Autorzy, Rozdział A.1