[Spis treści] [Sekcja 7 - Ustawienia klawiatury i wyświetlania] [Sekcja 9 - Migracja na OpenBSD]
Na ustawienie nowego hasła pozwolą następujące czynności:
Jeśli X Window jest poprawnie zainstalowany oraz używany jest wcześniej przygotowany i sprawdzony plik XF86Config, to problem najprawdopodobniej tkwi w zmiennej machdep.allowaperture. Należy upewnić się, że w pliku konfiguracyjnym jądra włączona jest opcja:
option APERTURE
(jest ona ustawiona w jądrze GENERIC).
Jeśli tak, wystarczy ustawić w pliku /etc/sysctl.conf zmienną machdep.allowaperture=2. Dzięki temu XFree86 będzie miał dostęp do sterownika aperture. Podczas instalacji systemu pojawia się pytanie, czy X Window będzie używane; odpowiedź twierdząca spowoduje prawidłowe ustawienie tej zmiennej. OpenBSD wymaga sterownika aperture dla każdego X serwera, dzięki czemu może kontrolować podsystem wejścia/wyjścia (ang. I/O) karty graficznej.
W przypadku innych problemów z X Window na platformie i386, pomocna może okazać się dokumentacja zamieszczona na stronie projektu XFree86: http://www.xfree86.org/support.html. Więcej informacji na temat konfiguracji i użytkowania X na twojej platformie znajdziesz w pliku /usr/X11R6/README twojego systemu.
Zamieszczona poniżej tabela w zamierzeniu ma pokazać przegląd kompilatorów dla różnych języków, gdzie możesz znaleźć kompilator, oraz czy istnieją jakieś ograniczenia lub zagadnienia z nim związane. Niektóre z nich są ograniczone do konkretnych platform. Możesz także zobaczyć podobne zestawienie przeglądając rezultat przeszukiwania drzewa portów pod kątem wpisów nie zawierających "Archs", lub poprzez ręczne przeszukanie pliku Makefile drzewa portów. W drugim przypadku, szukaj linii zawierających ONLY_FOR_ARCHS, NOT_FOR_ARCHS, BROKEN, itd.
Uwaga: Aby można było łatwiej korzystać z tabeli, jest ona posortowana alfabetycznie bez rozpatrywania różnych kategorii języków programowania. Nie jest to pełna lista wszystkiego co jest dostępne lub może być wykorzystane w OpenBSD. Jeżeli uważasz że istnieją niescisłości lub pewne zagadnienia nie wspomniane w tabeli możesz to zgłosić.
| Język | Lokalizacja | Uwagi |
| Awk | base38.tgz, awk(1) | |
| lang/gawk | GNU awk | |
| C, C++ | comp38.tgz, gcc(1) | Kompilatory C/C++ zawarte w systemie bazowym zostały poddane audytowi i posiadają kilka rozszerzeń bezpieczeństwa (tj. ProPolice) włączonych domyślnie. Prosimy zobacz gcc-local(1) po więcej szczegółów. Będą także emitowały ostrzeżenia w sytuacjach wykorzystania niebezpiecznych funkcji takich jak sprintf(), strcpy(), strcat(), tmpnam, itd. Zauważ, że większość platform korzysta z gcc 3.3.5, lecz niektóre z 2.95.3. |
| C, C++ | lang/gcc | Kompilatory te nie przechodzą audytu bezpieczeństwa i nie zawierają rozszerzeń w zakresie bezpieczeństwa jak te w systemie bazowym. Kompilatory te nazywają się egcc, eg++, itd, aby uniknąć zamieszania z ich odpowiednikami w systemie bazowym. |
| Caml | lang/ocaml | Objective Caml |
| COBOL | lang/open-cobol | |
| Fortran | comp38.tgz, g77(1) | Wspierany jest tylko Fortran 77. |
| lang/gcc | Wspierany jest także Fortran 95 poprzez egfortran w gcc 4.0 i wyższych. Ten nowy kompilator jest dostępny jako podpakiet gcc (g95). | |
| Haskell | lang/ghc | |
| lang/nhc98 | ||
| Java | devel/jdk | Sun JDK - nie są dostępne pakiety; zobacz sekcję dotyczącą kompilacji poniżej. |
| lang/jikes | Szybki kompilator, działa dobrze. Wymaga "run-time jar", wersja bytecode wszystkich standardowych API. | |
| devel/eclipse | Duży IDE; działa z Sun JDK. | |
| Lua | lang/lua | Dodatkowe biblioteki Lua i pomocnicze narzędzia są dostepne w drzewie portów. |
| Perl | base38.tgz, perl(1) | Wiele modułów Perl'a jest dostępna w drzewie portów, zatem zacznij szukać tam, zamin rozpoczniesz instalację modułów z CPAN. |
| PHP | www/php4 | Dostępne jest mnóstwo podpakietów dla różnych modułów PHP. |
| www/php5 | ||
| Prolog | lang/gprolog | GNU Prolog compiler. |
| Python | lang/python | Other ports are using Python 2.3 by default. |
| Ruby | lang/ruby | |
| Scheme | lang/scm | |
| Smalltalk | lang/squeak | |
| Tcl | lang/tcl |
Porty JDK znajdują się w podkatalogu devel/jdk drzewa portów. Możesz wybierać pomiędzy różnymi wersjami, każda znajduje się w osobnym podkatalogu. Tylko wersje 1.3 i 1.4 zawierają wtyczkę do przedlądarki. Gdy wpiszesz make pojawi się wiadomość prosząca się o ręczne pobranie plików źródłowych ze stony Sun'a. Zanim to zrobisz, będziesz się musiał zarejestrować na tej stronie, i wyrazić zgodę na warunki licencji. Z tego właśnie powodu nie może nastąpić automatyczne pobranie.
Gdy już zdobędziesz niezbędne pliki dystrybucyjne i zestaw łat, skopiuj je do katalogu /usr/ports/distfiles i rozpocznij tworzenie wydając polecenie make w odpowiednim podkatalogu drzewa portów.
JDK wymaga działającego kompilatora Java 2 jako podstawy do kompilacji. Z tego powodu port korzysta z linuksowej wersji JDK. Jeżeli czujesz że to nie jest fair, powinieneś spytać firmę Sun, dlaczego nie dostarczają natywnej wersji dla OpenBSD. Emulacja linuksa w OpenBSD jest ograniczona do systemów i386, zatem JDK skompiluje się tylko na platformie i386. Budowa portów powinna zadbać o zainstalowanie właściwych plików i ustawienie kern.emul.linux=1. Więcej informacji dotyczącej emulacji linuksa znajdziesz na stronie manuala compat_linux(8), a także w FAQ 9 - Uruchamianie aplikacji linuksowych w OpenBSD. Zwróć uwagę, że emulacja linuksa jest potrzebna tylko podczas budowy JDK, która daje natywną wersję JDK dla OpenBSD. Nie potrzebujesz emulacji linuksa by pracować z natywną wersją JDK.
Po wielu godzinach, kompilacja się zakończy. Po prostu kontynuuj wpisując make install by zainstalować JDK.
Konieczne będzie takie skonfigurowanie jądra żeby zakładał, że stacja dysków jest przyłączona, nawet jeśli nie zostanie ona wykryta przy starcie systemu. Można to osiągnąć przez ustawienie flagi na wartość 0x20 w przy użądzeniu fdc(4). Przydatny może być tutaj User Kernel Config lub po prostu ustawienie tej flagi na stałe podczas konfiguracji jądra. Korzystając z UKC operacja ta będzie wyglądać tak:
# config -e -f /bsd
OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> change fd*
245 fd* at fdc0 drive -1 flags 0x0
change [n] y
drive [-1] ? ENTER
flags [0] ? 0x20
245 fd* changed
245 fd* at fdc0 drive -1 flags 0x20
ukc> q
Saving modified kernel.
#
Podczas rozruchu systemu OpenBSD pojawia się następujący znak zachęty.
boot>
Jeżeli użytkownik nie zaingeruje, jądro zostanie załadowane automatycznie. Czasem jednak pojawiają się problemy lub zachodzi konieczność podania specjalnych opcji dla jądra. W tym właśnie momencie można podać jedną z nich. Przygodę z programem ładującym najlepiej rozpocząć od lektury strony podręcznika systemowego boot(8). Tutaj zademonstrujemy tylko kilka najczęściej używanych polecenień programu ładującego.
Podczas normalnego startu, jeśli nie zostaną podane inne opcje, program ładujący próbuje uruchomić jądro skompilowane w pliku /bsd. Jeśli to się nie powiedzie poszuka pliku /obsd, a następnie /bsd.old. Można samodzielnie podać nazwę kernela, który ma zostać uruchomiony:
lubboot> boot hd0a:/bsd
boot> b /bsd
Ten przykład zadziała jeśli kernel bsd będzie znajdował się na partycji 'a' na pierwszym twardym dysku rozpoznanym przez BIOS.
Oto krótka lista opcji, których można użyć podczas startu jądra OpenBSD.
Składnia dla polecenia boot jest następująca: boot [ plik_jądra [-acds]]
Szczegółowy opis zawiera strona podręcznika systemowego boot(8).
S/Key jest mechanizmem pozwalającym wykorzystywać jednorazowe hasła podczas połączenia z systemem przez kanał nie zapewniający bezpiecznej transmisji. Jest to doskonałe rozwiązanie dla osób nie mogących wykorzystać ssh lub innego szyfrowanego połącznia. Implementacja S/Key z OpenBSD używa różnych jednokierunkowych funkcji mieszających:
Aby rozpocząć prace z S/Key konieczny jest katalog /etc/skey. Jeżeli ten katalog nie istnieje, należy go utworzyć jako użytkownik root wydając polecenie:
# skeyinit -E
Po utworzeniu katalogu inicjalizujemy S/Key za pomocą polecenia skeyinit(1). Zaraz po uruchomieniu skeyinit(1) poprosi o podanie hasła. Należy podać hasło używane do logowania w systemie. Uruchamianie programu skeyinit(1) na nieszyfrowanym połączeniu mija się zupełnie z celem - narzędzie to powinno być używane albo przez ssh albo bezpośrednio z konsoli. Po autoryzacji hasła systemowego skeyinit(1) poprosi o podanie jeszcze jednego hasła. Jest to tzw. sekretna fraza S/Key, a NIE hasło systemowe. Sekretna fraza powinno mieć przynajmniej 10 znaków, ale zaleca się użycie frazy zawierającej kilka wyrazów. Oto przykład wykorzystania skeyinit(1):
$ skeyinit Reminder - Only use this method if you are directly connected or have an encrypted channel. If you are using telnet, exit with no password and use skeyinit -s. Password: [Adding ericj with md5] Enter new secret passphrase: Again secret passphrase: ID ericj skey is otp-md5 100 oshi45820 Next login password: HAUL BUS JAKE DING HOT HOG
Bardzo ważną linią w powyższym przykładzie jest ID ericj skey is otp-md5 100 oshi45820. Zawiera ona wiele cennych informacji, których znaczenie opisano poniżej:
Ale najważniejsze jest hasło jednorazowe. Nowe hasło zawiera 6 krótkich wyrazów wraz ze spacjami i innymi znakami. Hasło jednorazowe wyświetlone przez skeyinit nie może być użyte do zalogowania (jest dla niego specjalne zastosowanie, patrz skeyinit(1)). Aby móc się zalogować, hasło jednorazowe dla odpowiedniego numeru sekwencyjnego, wyświetlonego przy procesie logowania, musi zostać obliczone przy pomocy skey(1). Następna sekcja pokaże jak to należy robić.
Posiadając juz hasło jednorazowe można zalogować się w systemie. Poniżej przedstawiony jest przykład sesji używającej S/Key przy logowaniu. Aby zalogować się z użyciem S/Key,należy dołączyć frazę :skey do nazwy użytkownika.
$ ftp localhost Connected to localhost. 220 oshibana.shin.ms FTP server (Version 6.5/OpenBSD) ready. Name (localhost:ericj): ericj:skey 331- otp-md5 96 oshi45820 331 S/Key Password: 230- OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005 230- 230- Welcome to OpenBSD: The proactively secure Unix-like operating system. 230- 230- Please use the sendbug(1) utility to report bugs in the system. 230- Before reporting a bug, please try to reproduce it with the latest 230- version of the code. With bug reports, please try to ensure that 230- enough information to reproduce the problem is enclosed, and if a 230- known fix for it exists, include that as well. 230- 230 User ericj logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit 221 Goodbye.
Proszę zauważyć, że dołączono frazę ":skey" do nazwy użytkownika. Informuje to demona ftpd, że do autentykacji zostanie użyte hasło jednorazowe. Uważny czytelnik mógł dostrzec, że numer zmienił się na otp-md5 96 oshi45820. Stało się tak dlatego, że kilkakrotnie używano już haseł jednorazowych podczas logowania. Jak w takim razie zdobyć następne hasło jednorazowe po wykorzystaniu poprzedniego?
Gdy jesteś już zalogowany, proces login`u wydrukuje linię zawierającą wszystkie potrzebne informacje, dzięki którym możesz wygenerować od razu nowe jednorazowe hasło wykorzystując, poprzez skopiowanie i wklejenie do wiersza poleceń:
otp-md5 96 oshi45820
Po wpisaniu swojej bezpiecznej frazy, zostanie wyświetlone twoje jednorazowe hasło zostanie, które możesz wykorzystać do zalogowania się poprzez S/Key. otp-md5 jest nie tylko opisem użytej funkcji hash`ującej, jest to także alternatywna nazwa dla komendy skey(1).
Jeśli jesteś już zalogowany i chcesz uzyskać jednorazowe hasło dla następnej sesji, skorzystaj z skeyinfo(1), który powie ci czego masz użyć przy następnym logowaniu. Na przykład tutaj, musiałem wygenerować kolejne hasło jednorazowe do kolejnego możliwego zalogowania się w przyszłości.(pamiętaj że robię to poprzez bezpieczne połączenie).
$ skeyinfo 95 oshi45820
Jeszcze lepiej jest użyć komendy skeyinfo -v, która zwraca wynik możliwy do wykonania przez interpreter poleceń. Na przykład:
Więc najprostrzym sposobem na uzyskanie kolejnego hasła S/Key jest:$ skeyinfo -v otp-md5 95 oshi45820
$ `skeyinfo -v` Reminder - Do not use this program while logged in via telnet. Enter secret passphrase: NOOK CHUB HOYT SAC DOLE FUME
Proszę zwrócić uwagę na odwrócone, pojedyncze apostrofy zastosowane w powyższym przykładzie.
Często zdarza się, że uzyskanie bezpiecznego połączenia lub bezpiecznej lokalnej maszyny w danym momencie jest naprawdę kłopotliwe, a tworzenie S/Key podczas nieszyfrowanej sesji mija się z celem, czy można więc od razu utworzyć wiele haseł jednorazowych? Oczywiście można wywołać komendę skey(1) wraz z parametrem określającym ilość haseł do wygenerowania. Można je wydrukować i zabrać wszędzie tam gdzie będą potrzebne.
$ otp-md5 -n 5 95 oshi45820 Reminder - Do not use this program while logged in via telnet. Enter secret passphrase: 91: SHIM SET LEST HANS SMUG BOOT 92: SUE ARTY YAW SEED KURD BAND 93: JOEY SOOT PHI KYLE CURT REEK 94: WIRE BOGY MESS JUDE RUNT ADD 95: NOOK CHUB HOYT SAC DOLE FUME
Hasło znajdujące się na samym dole tej listy powinno zostać użyte jako pierwsze, ponieważ numery sekwencyjne odliczane są do 100 do 1.
Stosowanie S/Key z usługami telnet(1) czy ssh(1) realizje się identycznie jak z ftp - należy dołączyć frazę ":skey" na końcu nazwy użytkownika. Na przykład:
$ telnet localhost Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. OpenBSD/i386 (oshibana) (ttyp2) login: ericj:skey otp-md5 98 oshi45821 S/Key Password: SCAN OLGA BING PUB REEL COCA Last login: Thu Oct 7 12:21:48 on ttyp1 from 156.63.248.77 Warning: no Kerberos tickets issued. OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005 Welcome to OpenBSD: The proactively secure Unix-like operating system. Please use the sendbug(1) utility to report bugs in the system. Before reporting a bug, please try to reproduce it with the latest version of the code. With bug reports, please try to ensure that enough information to reproduce the problem is enclosed, and if a known fix for it exists, include that as well. You have mail. $
Z datą wydania OpenBSD 3.6, SMP jest wspierane na platformach OpenBSD/i386 i OpenBSD/amd64
W zestawach instalacyjnych jest dostarczane oddzielne jądro SMP "bsd.mp", które można wybrać w czasie instalacji. Zaleca się przetestowanie tego jądra przed uczynieniem go domyślnym jądrem poprzez zmianę jego nazwy na "bsd".
Mamy nadzieję wspierać inne platformy SMP w przyszłości. Na większości innych platform, OpenBSD będzie działać na maszynie wieloprocesorowej, ale tylko jeden z procesorów będzie wykorzystywany. Wyjątkiem jest platforma SPARC - OpenBSD/sparc może wymagać usunięcia dodatkowych modułów MBus, aby system w ogóle się uruchomił. Wieloprocesorowe maszyny SPARC64 będą działać pod warunkiem, że podstawowa wersja jest wspierana.
Dla połączeń inicjowanych przez maszynę z OpenBSD stosuje się urządzenia /dev/cuaXX. Urządzenia /dev/ttyXX przeznaczone są tylko do pracy jako terminale lub jako linie dial-in. We wcześniejszych wydaniach jądra możliwe było inne użycie urządzeń /dev/ttyXX, jednak ta opcja została usunięta.
Cytat z podręcznika systemowego cua(4):
Dla sprzętowych linii terminali szeregowych (dobrym przykładem będzie tu RS232) połączenia przychodzące (dial-in) i wychodzące (dial-out) obsługiwane są przez dwa różne urządzenia. Na przykład terminal /dev/tty03 posiada odpowiadające mu urządzenie /dev/cua03 służące do obsługi dial-out. Urządzenie /dev/cuaXX zazwyczaj posiada numer poboczny większy o 128 od przypisanego mu urządzenia /dev/ttyXX.Biorąc pod uwagę to, że urządzenia dial-in wymagają aktywności ze strony sprzętu aby móc zająć zasoby systemowe, w czasie oczekiwania urządzenia dial-out mogą bez przeszkód komunikować się z urządzeniami zewnętrznymi, na przykład z modemem. Oznacza to, że podczas oczekiwania procesu getty(8) aż ktoś z zewnątrz systemu połączy się z linią szeregową, można nawiązać połączenie dial-out (na tej samej sprzętowej linii szeregowej) bez powiadamiania getty(8) o tym fakcie. Po zakończeniu połączenia dial-out, getty(8) obsłuży przychodzące połączenie właściwie, nie zauważywszy nawet faktu, że urządzenie /dev/cuaXX było wykorzystywane.
Tekstowa przeglądarka Lynx jest częścią bazowego systemu OpenBSD i posiada obsługę protkołu SSL. Inne przeglądarki znajdują się w drzewie portów, w tym:
Przeglądarki graficzne
Przeglądarki tekstowe
Większość wyżej wymienionych przeglądarek można znaleźć w kolekcji pakietów, w katalogu www. Bardzo często posiadają one także prekompilowane pakiety, dostępne na serwerach FTP i na płytach CD. Przeglądarki graficzne to najczęściej ogromne progamy wymagające sporo czasu na pobranie źródeł i kompilację. Dlatego wszędzie tam, gdzie to możliwe, należy poważnie zainteresować się możliwością instalacji z pakietu.
mg to mikroimplementacja edytora Emacs dostarczana wraz z OpenBSD. "Mikro" oznacza, że mg to bardzo mały edytor (trzeba pamiętać, że Emacs jest ogromną aplikacją). Podstawowa dokumentacja edytora mg znajduje się na stronie podręcznika systemowego mg(1) i w przewodniku, dostarczanym wraz z kodami źródłowymi. Więcej interesujących pytań (np.: "Gdzie jest klawisz Meta?") i odpowiedzi na nie znajduje się w Emacs FAQ.
mg jest niewielkim odpowiednikiem edytora Emacs. W praktyce znaczy to, że posiada wiele opcji edycyjnych jak Emacs 17, jednak nie zawiera dodatkowych udogodnien edytora Emacs (takich jak obsługa poczty elektronicznej, grup dyskusyjnych, a także tryb pracy dla języków Lisp, C++, Lex, Awk, Java, ...).
Prawdopodobną przyczyną ignorowania przez ksh(1) pliku .profile może być jeden z dwóch powodów:
# chown uzytkownik ~uzytkownik/.profile
Używając terminala xterm(1), argv[0] dla ksh nie jest poprzedzony znakiem '-'. Znak minus przed argv[0] powoduje, że powłoki csh(1) i ksh(1) interpertują swoje pliki konfiguracyjne logowania. (Dla csh(1) będzie to .login, a także .cshrc, który odczytywany jest za każdym razem gdy uruchamiane jest csh(1). ksh(1) posiada tylko jeden taki skrypt - .profile. Jeśli uruchamiana powłoka nie jest powłoką logowania, pliki te są pomijane.)
Aby zmienić domyślne zachowanie csh i ksh, należy dodać linię XTerm*loginShell: true do pliku ~/.Xdefaults. Plik ten nie jest obecny w domyślnej instalacji, więc być może będzie trzeba go utworzyć.
$ echo "XTerm*loginShell: true" >> ~/.Xdefaults
Być może w innych systemach nie będzie konieczne wprowadzanie zmian, instalacja X Window może być już skonfigurowana w ten sposób. Jednak Projekt OpenBSD postanowił nie zmieniać domyślnego zachowania X.org.
Plik /etc/motd jest modyfikowany podczas każdego startu systemu. Aż do pierwszej pustej linii (ale wyłączając ją), wszystko jest zastępowane informacją o wersji jądra. Redagując ten plik należy pamiętać, aby pozostawić na początku jedną pustą linię.
Chociaż żaden z deweloperów nie uważa tego za jakiś istotny problem, pytanie to często pojawia się na listach dyskusyjnych. Strona www.OpenBSD.org i główny serwer FTP projektu OpenBSD są utrzymywane są na serwerach SunSITE na University of Alberta w Kanadzie. Jest to system oparty na komputerach Sun, posiadający duże zasoby dyskowe oraz szybkie połączenie z Internetem. SunSITE umożliwia wykorzystanie swoich zasobów przez Projekt OpenBSD. Wiele serwerów lustrzanych Projektu działa na komputerach z systemem OpenBSD, ale nie mają one dostępu do tak szybkich łączy, więc główna strona umiejscowiona jest na SunSITE.
Istnieją pewne sytuacje podczas których komputery mogą błędnie rozpoznawać urządzenia na szynie PCI, lub mogą zawiesić się wykrywając wiele adapterów NIC w jednej maszynie. Jest to wina PCIBIOS-u, ale w prosty sposób można ominąć ten problem. Wystarczy uruchomić konfigurację jądra podczas startu systemu i wyłączyć PCIBIOS, jak w poniższym przykładzie:
boot> boot -c
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2004 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III (Coppermine) ("GenuineIntel" 686-class, 128KB L2 cache)
1 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SYS,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXS
R,SIMD
real mem = 267956224 (261676K)
avail mem = 243347456 (237644K)
using 3296 buffers containing 13500416 bytes (13184K) of memory
User Kernel Config
UKC> disable pcibios
UKC> quit
[... ciach ...]
|
To rozwiąże problem z błędnym PCIBIOS. Następnie, wspomagając się lekturą strony podręcznika systemowego config(8) do zmiany ustawień jądra tak aby nie musieć zajmować się tym w przyszłości.
Zagadnienie to omówiono w tym dokumencie.
Nie. W OpenBSD używany jest inny mechanizm mający na celu uzyskanie podobnych efektów jak w systemach plików z księgowaniem. Nosi on nazwę Soft Updates.
Wielu nowych użytkowników dotyka problem długiego, dwuminutowego oczekiwania na zalogowanie się podczas korzystania z usług takich jak ssh, ftp czy telnet. Zdarzyć się to może również w trakcie używania serwera proxy, na przykład ftp-proxy, a także podczas wysyłania poczty elektronicznej przy pomocy programu sendmail.
Prawie zawsze winę ponosi domena odwrotna (ang. reverse DNS). DNS (ang. Domain Name Server) używany jest w Internecie do tłumaczenia nazw takich jak "www.openbsd.org", na odpowiadające im numery IP. Drugim zadaniem DNS jest zamiana adresów IP na ich nazwy "domenowe" - ten proces nazywany jest właśnie "Reverse DNS".
Aby zapewnić lepszą jakość logowanych informacji, OpenBSD zawsze sprawdza domenę odwrotną podczas próby dostępu do takich usług jak ssh, ftp, telnet, sendmail lub ftp-proxy. Na nieszczęście, zdarza się, że maszyna próbójąca połączyć się z daną usługą nie posiada właściwej domeny odwrotnej.
To może być bardzo denerwujące. Na szczęście istnieje prosty sposób pozwalający naprawić taką systuację.
Przykładowy plik /etc/hosts może wyglądać w następujący sposób:
::1 localhost.w.sieci.lokalnej.org localhost 127.0.0.1 localhost.w.sieci.lokalnej.org localhost 192.168.1.1 gw.w.sieci.lokalnej.org gw 192.168.1.20 scrappy.w.sieci.lokalnej.org scrappy 192.168.1.35 shadow.w.sieci.lokalnej.org shadow |
Plik resolv.conf może przyjąć taką postać:
search w.lokalnej.sieci.org nameserver 24.2.68.33 nameserver 24.2.68.34 lookup file bind |
A co jeśli w sieci lokalnej, do przydzielania adresów IP, używany jest serwer DHCP? Jak skonfigurwać plik /etc/hosts? Bardzo prosto! Wystarczy umieścić w nim wpisy dotyczące wszystkich adresów przydzielanych dynamicznie oraz te, które są stałe.
::1 localhost.w.sieci.lokalnej.org localhost
127.0.0.1 localhost.w.sieci.lokalnej.org localhost
192.168.1.1 gw.w.sieci.lokalnej.org gw
192.168.1.20 scrappy.w.sieci.lokalnej.org scrappy
192.168.1.35 shadow.w.sieci.lokalnej.org shadow
192.168.1.100 d100.w.sieci.lokalnej.org d100
192.168.1.101 d101.w.sieci.lokalnej.org d101
192.168.1.102 d102.w.sieci.lokalnej.org d102
[... ciach ...]
192.168.1.198 d198.w.sieci.lokalnej.org d198
192.168.1.199 d199.w.sieci.lokalnej.org d199
|
W tym przykładzie w pliku /etc/hosts umieszczono zakres używany przez DHCP od 192.168.1.100 do 192.168.1.199 oraz trzy statyczne adresy IP.
Jeśli sama bramka dostępowa używa DHCP do konfiguracji swoich interfejsów, może pojawić się kłopot - dhclient, za każdym razem gdy odnawiana jest dzierżawa, nadpisze plik /etc/resolv.conf, usuwając z niego linię "lookup file bind". Rozwiązaniem tego problemu jest umieszczenie w pliku /etc/resolv.conf.tail linii "lookup file bind".
Obecnie strony WWW tworzone są tak, by były poprawnie wyświetlane na różnych przeglądarkach począwszy od wersji 4.0. Nie ma sensu dostosowywać starszych stron do standardu HTML4 lub XHTML dopóki nie będzie pewności, że będą one prawidłowo działać na starszych przeglądarkach. Oczywiście, wszyscy nowi ochotnicy są mile widziani, ale priorytetem jest pisanie kodu czy dokumentacji dotyczącej nowych problemów, a nie dostosowywanie istniejących stron WWW do nowych standartów.
Po użyciu polecenia rdate(8) do synchronizacji czasu z serwerem NTP może się zdażyć, że zegar będzie późnił się o dwudzieścia kilka sekund w stosunku do czasu lokalnego.
Jest to spowodowane różnicą pomiędzy czasem uniwersalnym (UTC - Coordinated Universal Time - czas atomowy, który uwzględnia obserwacje astronomiczne), a czasem TAI (International Atomic Time - czas bazujący tylko na zegarze atomowym). Aby uczynić czas UTC zgodnym z obserwowanym ruchem słońca na niebie dodawane są do niego sekundy przestępne korygujące różnice pomiędzy UTC, a czasem słonecznym. Właśnie te dodatkowe sekundy są powodem rozbieżności. Dokładniejsze informacje można uzyskać wpisując w wyszukiwarce WWW hasło (bez apostrofów): "leap seconds UTC TAI" [lub na stronach polskich: "sekundy przestępne UTC TAI" - przyp. tłum].
Rozwiązanie tego problemu jest bardzo proste. W większości krajów można otrzymać prawidłowy czas poprzez dodanie parametru "-c" do programu rdate(8) i wybranie właściwej strefy czasowej z katalogu /usr/share/zoneinfo/right/. Np. prawidłowy czas dla Niemiec można ustawić w taki sposób:
# cd /etc && ln -sf /usr/share/zoneinfo/right/CET localtime
# rdate -ncv ptbtime1.ptb.de
Dla innych krajów może to wyglądać trochę inaczej.
Jeżeli stanowi to problem (np. w sytuacji gdy używasz poza OpenBSD innego systemu operacyjnego) mozesz zmienić zachowanie domyślne korzystając z config(8). Dla przykładu chcąc skonfigurować zegar systemowy na US/Eastern (5 godzin przed UTC, czyli 300 minut):
#config -ef
OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> timezone 300
timezone = 300, dst = 0
ukc> quit
Saving modified kernel
Więcej informacji znajdziesz w
options(4)
pod hasłem "TIMEZONE=value".
Normalnie strefa czasowa ustawiana jest podczas instalacji systemu. Jeżeli potrzebujesz zmienić strefę czasową możesz stworzyć nowe dowiązanie symboliczne do właściwego pliku strefy czasowej w /usr/share/zoneinfo. Dla przykładu, by ustawić maszynę do korzystania z EST5EDT jako nową strefę:
# ln -fs /usr/share/zoneinfo/EST5EDT /etc/localtime
Zobacz także:
[Spis treści] [Sekcja 7 - Ustawienia klawiatury i wyświetlania] [Sekcja 9 - Migracja na OpenBSD]