[Spis treści] [Sekcja 7 - Ustawienia klawiatury i wyświetlania] [Sekcja 9 - Migracja na OpenBSD]
Szczegółowy opis:
probing: pc0 com0 com1 apm mem[636k 190M a20=on]
disk: fd0 hd0+
>> OpenBSD/i386 BOOT 2.10
boot>
W tym momencie powinieneś wpisać "boot -s" aby uruchomić system
w trybie jednoużytkownikowym:
boot> boot -s
W większości innych platform parametry dla kernela przekazywane są przez ROM.
Oczywiście prawdopodobnie problemem będzie wyłączenie systemu. Najprawdopodobniej sprowadzać się to będzie do naciśnięcia przycisków "reset" lub "power". Pomimo iż jest to wskazane, zazwyczaj nie ma innej alternatywy. Nie przejmuj się jednak, ponieważ system plików w OpenBSD jest bardzo wytrzymały.
# fsck -p / && mount -uw /
# fsck -p /usr && mount /usr
"Czekaj. To wyglądało zbyt prosto! Nie jest to szczególnie bezpieczne!" W sytuacji gdy atakujący ma fizyczny dostęp do twojego systemu, wygrał, niezależnie od zainstalowanego systemu operacyjnego. Istnieją sposoby na wymuszenie podawania hasła root'a w trybie jednoużytkownikowym (zobacz: ttys(5)), oraz wyeliminowanie pauzy dla i386/amd64 (zobacz: boot.conf), jednak prawdę mówiąc obejście tych zabezpieczeń jest także całkiem proste (Jedna z możliwości: boot z dyskietki lub CDROM-u, edycja lub nadpisanie pliku z hasłami). Możesz probować zabezpieczyć się i przed tym, jednak wówczas ktoś może wyjąc dysk z twojego komputera. Utrudnianie zarządzania maszyną nie jest prawdziwym bezpieczeństwem i jeżeli nie zabezpieczasz fizycznego dostepu do maszyny, nie masz prawdziwego bezpieczeństwa.
Uwaga: większość systemów "zdalnie zarządzanych" udostępnia większość z funkcjonalności fizycznego dostępu do komputera, i to także powinno być rozważone. Nie wmawiaj sobie że system jest bezpieczny jeżeli istnieje sposób aby atakujący dostał się do konsoli, użył wirtualnej dyskietki lub go zrestartował. Mogą równie dobrze mieć fizyczny dostęp do systemu. System zarządzania konsolami prawdopodobnie nie jest tak bezpieczny jak OpenBSD...
Częstym powodem problemów z serwerem X jest ustawienie machdep.allowaperture w sysctl(8). Ponieważ w OpenBSD jest to domyślnie wyłączone, jest bardzo prawdopodobne, że rozwiąże to problem.
Będziesz musiał wyedytować plik /etc/sysctl.conf i ustawić machdep.allowaperture=2 (lub 1, w zależności od twojej architektury). Umożliwi to X-om dostęp do sterownika xf86(4), po ponownym uruchomieniu systemu. Dostęp do tej zmiennej nie jest możliwy po uruchomieniu. Można także ustawić ją podczas instalacji, odpowiadając "Y" gdy zostaniesz zapytany o przewidywane korzystanie z X Window System.
OpenBSD wymaga, by dostęp do sterownika aperture był aktywowany w platformach alpha, amd64, i386, macppc oraz sparc64, aby kontrolować dostęp do kart graficznych. Inne platformy korzystają z bezpieczniejszej metody obsługi systemu graficznego, i tego nie wymagają (nie posiadają także tego w jądrze). Jeżeli nie przewidujesz korzystania z X-ów w twoim systemie, zalecane jest nie włączanie sterownika aperture.
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ą nieścisłości lub pewne zagadnienia nie wspomniane w tabeli możesz to zgłosić.
Język | Lokalizacja | Uwagi |
Awk | base42.tgz, awk(1) | |
lang/gawk | GNU awk | |
C, C++ | comp42.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 | |
Erlang | lang/erlang | |
Fortran | comp42.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/classpath | podstawowe biblioteki dla Javy | |
lang/kaffe | ||
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. | |
Lisp | lang/clisp | |
Lua | lang/lua | Dodatkowe biblioteki Lua i pomocnicze narzędzia są dostepne w drzewie portów. |
Perl | base42.tgz, perl(1) | Wiele modułów Perl'a jest dostępna w drzewie portów, zatem zacznij szukać tam, zanim rozpoczniesz instalację modułów z CPAN. |
PHP | www/php4 | Dostępnych jest wiele podpakietów dla różnych modułów PHP. |
www/php5 | ||
Prolog | lang/gprolog | Kompilator GNU Prolog. |
lang/swi-prolog | Środowisko SWI-Prolog. | |
Python | lang/python | Inne porty korzystają domyślnie z Python-a 2.4. |
Ruby | lang/ruby | |
Scheme | lang/chicken | |
lang/scheme48 | ||
lang/scm | ||
shells/scsh | ||
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. 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. Potrzebne bedą także zainstalowane X-y. 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, od wersji OpenBSD 4.0, port JDK 1.5 korzysta z kaffe, pozwalając na korzystanie z JDK 1.5 na platformach i386 i amd64, a także redukując czas kompilacji. 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 starsze wersje JDK skompilują 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. Aby zainstalowac JDK po prostu wpisz make install.
W sytuacji w której otrzymasz błąd podobny do: "Could not reserve enough space for object heap", spróbuj zwiększyć limit pamięci dla procesów korzystając z wbudowanego polecenia powłoki ulimit z flagą -d.
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 urzą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 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> change fd*
254 fd* at fdc0 drive -1 flags 0x0
change [n] y
drive [-1] ? ENTER
flags [0] ? 0x20
254 fd* changed
254 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 ingeruje, 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). Zademonstrujemy tutaj 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:
boot> boot hd0a:/bsd
lub
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 systemem uwierzytelniania "haseł jednorazowych" (ang. "one-time password"). Może być użyteczny dla osób które nie mają możliwości korzystać z szyfrowanych kanałów, chroniących ich transmisję uwierzytelniającą, tak jak to może być realizowane poprzez korzystanie z ssh(1).
OSTRZEŻENIE: Systemy jednorazowych haseł chronią tylko informacje autoryzacyjne. Nie przeszkodzą sieciowemu podsłuchiwaczowi w dostępie do prywatnych informacji. Ponadto, jeżeli łączysz się z zabezpieczonym systemem A, zalecane jest byś wykonywał to z innego zaufanego systemu B aby mieć pewność, że uzyskuje dostępu do twojego systemu A poprzez logowanie "keystrokes" i/lub podrabiając wejście i wyjście twojego terminala.
System S/Key generuje sekwencję jednorazowych haseł (jednokrotnego użycia) korzystając z secret passphrase oraz z "challenge" otrzymanym z serwera korzystając z bezpiecznej funkcji haszującej. System ten jest bezpieczny tylko w przypadku gdy przepustka (ang. "passphrase") nie jest przenoszona po sieci. Z tego powodu inicjalizacja lub zmiana twojej przepustki MUSI być wykonywana poprzez bezpieczny kanał, taki jak ssh(1) lub konsola.
Implementacja S/Key w OpenBSD pozwala na korzystanie z różnych jednokierunkowych funkcji mieszających. Dostępne są poniższe algorytmy:
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 możesz zainicjować swój S/Key. Musisz to zrobić za pomocą polecenia skeyinit(1). Zaraz po uruchomieniu skeyinit(1) poprosi o podanie hasła i musisz to zrobić korzystając z bezpiecznego kanału, jak to zostało wyjaśnione powyżej! Program ci o tym przypomni. Z skeyinit(1), najpierw zostaniesz poproszony o podanie hasła do systemu. Jest to to samo hasło którego używasz do zalogowania się do systemu. Gdy juz zautoryzujesz się hasłem systemowym, zostaniesz zapytany o przepustkę S/Key. Nie jest to twoje hasło systemowe. Sekretna fraza powinna zawierać przynajmniej 10 znaków. 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 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 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
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, poprzez skopiowanie i wklejenie, do wiersza poleceń:
otp-md5 96 oshi45820
Po wpisaniu swojej bezpiecznej frazy, zostanie wyświetlone twoje jednorazowe hasło, które możesz wykorzystać do zalogowania się poprzez S/Key. otp-md5 jest nie tylko opisem użytej funkcji haszują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:
$ skeyinfo -v
otp-md5 95 oshi45820
Najprostszym sposobem na uzyskanie kolejnego hasła S/Key jest:
$ `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 Apr 7 12:21:48 on ttyp1 from 156.63.248.77
OpenBSD 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
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.
$
SMP jest obsługiwane 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 systemy 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. Wszystkie wymienione powyżej, po zainstalowaniu systemu portów, znajdują się w /usr/ports/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 programy 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 (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 user ~user/.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
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ę, dzięki temu /etc/rc nie skasuje twoich wpisów gdy będzie edytował /etc/motd podczas startu.
Chociaż żaden z developeró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, zatem główna strona umiejscowiona jest na SunSITE.
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". Po więcej informacji zapraszamy do FAQ 14 - 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óbująca połączyć się z daną usługą nie posiada właściwej domeny odwrotnej.
Może to być bardzo denerwujące. Na szczęście istnieje prosty sposób pozwalający naprawić taką sytuację.
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, zakładam że masz ustawiony używany przez DHCP zakres 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.
Wiele innych systemów operacyjnych można zmusić do podobnego zachowania, także w Windows, co pozwala uniknąć podobnych problemów. Dla przykładu w Windows NT/2000/XP aby ustawić by zegar rzeczywisty ustawiony był na UTC, wystarczy utworzenie i ustawienie w rejestrze parametru DWORD na 1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
W przypadku gdy problematyczne jest ustawienie zegara sprzętowego na UTC, możesz zmienić to zachowanie w OpenBSD 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 /bsd
OpenBSD 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
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]