From cdb1d07526b62183b444283c8cd4ce7c0749a919 Mon Sep 17 00:00:00 2001 From: Gabor Pali Date: Wed, 14 May 2008 16:54:19 +0000 Subject: Add a new translation: the FreeBSD Handbook. I will be its maintainer. Approved by: gabor (mentor) Obtained from: The FreeBSD Hungarian Documentation Project --- hu_HU.ISO8859-2/Makefile | 1 + hu_HU.ISO8859-2/books/Makefile | 15 + hu_HU.ISO8859-2/books/Makefile.inc | 10 + hu_HU.ISO8859-2/books/handbook/Makefile | 309 + .../books/handbook/advanced-networking/Makefile | 15 + .../handbook/advanced-networking/chapter.sgml | 7818 +++++++ .../handbook/advanced-networking/isdn-bus.eps | 199 + .../advanced-networking/isdn-twisted-pair.eps | 294 + .../books/handbook/advanced-networking/natd.eps | 281 + .../handbook/advanced-networking/net-routing.pic | 21 + .../handbook/advanced-networking/static-routes.pic | 37 + hu_HU.ISO8859-2/books/handbook/appendix.decl | 9 + hu_HU.ISO8859-2/books/handbook/audit/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml | 1100 + hu_HU.ISO8859-2/books/handbook/basics/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml | 3561 ++++ .../books/handbook/bibliography/Makefile | 15 + .../books/handbook/bibliography/chapter.sgml | 689 + hu_HU.ISO8859-2/books/handbook/book.sgml | 397 + hu_HU.ISO8859-2/books/handbook/boot/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/boot/chapter.sgml | 1172 ++ hu_HU.ISO8859-2/books/handbook/chapter.decl | 8 + hu_HU.ISO8859-2/books/handbook/chapters.ent | 65 + hu_HU.ISO8859-2/books/handbook/colophon.sgml | 42 + hu_HU.ISO8859-2/books/handbook/config/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/config/chapter.sgml | 4830 +++++ .../books/handbook/cutting-edge/Makefile | 15 + .../books/handbook/cutting-edge/chapter.sgml | 2624 +++ hu_HU.ISO8859-2/books/handbook/desktop/Makefile | 15 + .../books/handbook/desktop/chapter.sgml | 1415 ++ hu_HU.ISO8859-2/books/handbook/disks/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml | 5836 ++++++ hu_HU.ISO8859-2/books/handbook/eresources/Makefile | 15 + .../books/handbook/eresources/chapter.sgml | 2304 +++ hu_HU.ISO8859-2/books/handbook/firewalls/Makefile | 15 + .../books/handbook/firewalls/chapter.sgml | 4502 ++++ hu_HU.ISO8859-2/books/handbook/geom/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml | 889 + hu_HU.ISO8859-2/books/handbook/geom/striping.pic | 57 + hu_HU.ISO8859-2/books/handbook/install/Makefile | 15 + .../books/handbook/install/chapter.sgml | 7158 +++++++ .../books/handbook/install/disk-layout.eps | 20704 +++++++++++++++++++ .../books/handbook/install/example-dir1.eps | 350 + .../books/handbook/install/example-dir2.eps | 392 + .../books/handbook/install/example-dir3.eps | 392 + .../books/handbook/install/example-dir4.eps | 434 + .../books/handbook/install/example-dir5.eps | 434 + .../books/handbook/introduction/Makefile | 15 + .../books/handbook/introduction/chapter.sgml | 1318 ++ hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml | 1310 ++ .../books/handbook/kernelconfig/Makefile | 15 + .../books/handbook/kernelconfig/chapter.sgml | 2034 ++ hu_HU.ISO8859-2/books/handbook/l10n/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml | 1334 ++ hu_HU.ISO8859-2/books/handbook/linuxemu/Makefile | 15 + .../books/handbook/linuxemu/chapter.sgml | 4406 ++++ hu_HU.ISO8859-2/books/handbook/mac/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/mac/chapter.sgml | 2987 +++ hu_HU.ISO8859-2/books/handbook/mail/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml | 3150 +++ hu_HU.ISO8859-2/books/handbook/mail/mutt1.scr | 1 + hu_HU.ISO8859-2/books/handbook/mail/mutt2.scr | 1 + hu_HU.ISO8859-2/books/handbook/mail/mutt3.scr | 1 + hu_HU.ISO8859-2/books/handbook/mail/pine3.scr | 1 + hu_HU.ISO8859-2/books/handbook/mail/pine4.scr | 1 + hu_HU.ISO8859-2/books/handbook/mail/pine5.scr | 1 + hu_HU.ISO8859-2/books/handbook/mirrors/Makefile | 15 + .../books/handbook/mirrors/chapter.sgml | 4129 ++++ hu_HU.ISO8859-2/books/handbook/multimedia/Makefile | 15 + .../books/handbook/multimedia/chapter.sgml | 2445 +++ .../books/handbook/network-servers/Makefile | 15 + .../books/handbook/network-servers/chapter.sgml | 6693 ++++++ hu_HU.ISO8859-2/books/handbook/pgpkeys/Makefile | 19 + .../books/handbook/pgpkeys/chapter.sgml | 57 + hu_HU.ISO8859-2/books/handbook/ports/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml | 2173 ++ .../books/handbook/ppp-and-slip/Makefile | 15 + .../books/handbook/ppp-and-slip/chapter.sgml | 4212 ++++ .../books/handbook/preface/preface.sgml | 962 + hu_HU.ISO8859-2/books/handbook/printing/Makefile | 15 + .../books/handbook/printing/chapter.sgml | 6901 ++++++ hu_HU.ISO8859-2/books/handbook/security/Makefile | 15 + .../books/handbook/security/chapter.sgml | 6991 +++++++ .../books/handbook/security/ipsec-crypt-pkt.pic | 51 + .../books/handbook/security/ipsec-encap-pkt.pic | 18 + .../books/handbook/security/ipsec-network.pic | 38 + .../books/handbook/security/ipsec-out-pkt.pic | 12 + .../books/handbook/serialcomms/Makefile | 15 + .../books/handbook/serialcomms/chapter.sgml | 4037 ++++ hu_HU.ISO8859-2/books/handbook/txtfiles.ent | 74 + hu_HU.ISO8859-2/books/handbook/users/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/users/chapter.sgml | 1478 ++ hu_HU.ISO8859-2/books/handbook/vinum/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml | 1964 ++ .../books/handbook/vinum/vinum-concat.pic | 81 + .../books/handbook/vinum/vinum-mirrored-vol.pic | 28 + .../books/handbook/vinum/vinum-raid10-vol.pic | 111 + .../books/handbook/vinum/vinum-raid5-org.pic | 87 + .../books/handbook/vinum/vinum-simple-vol.pic | 24 + .../books/handbook/vinum/vinum-striped-vol.pic | 65 + .../books/handbook/vinum/vinum-striped.pic | 87 + .../books/handbook/virtualization/Makefile | 15 + .../books/handbook/virtualization/chapter.sgml | 1238 ++ hu_HU.ISO8859-2/books/handbook/x11/Makefile | 15 + hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml | 2316 +++ 105 files changed, 131650 insertions(+) create mode 100644 hu_HU.ISO8859-2/books/Makefile create mode 100644 hu_HU.ISO8859-2/books/Makefile.inc create mode 100644 hu_HU.ISO8859-2/books/handbook/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/appendix.decl create mode 100644 hu_HU.ISO8859-2/books/handbook/audit/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/basics/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/bibliography/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/bibliography/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/book.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/boot/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/boot/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/chapter.decl create mode 100644 hu_HU.ISO8859-2/books/handbook/chapters.ent create mode 100644 hu_HU.ISO8859-2/books/handbook/colophon.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/config/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/config/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/cutting-edge/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/desktop/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/disks/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/eresources/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/firewalls/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/geom/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/geom/striping.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/install/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/install/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/install/disk-layout.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/install/example-dir1.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/install/example-dir2.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/install/example-dir3.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/install/example-dir4.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/install/example-dir5.eps create mode 100644 hu_HU.ISO8859-2/books/handbook/introduction/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/kernelconfig/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/l10n/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/linuxemu/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/linuxemu/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/mac/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/mac/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/mutt1.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/mutt2.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/mutt3.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/pine3.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/pine4.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mail/pine5.scr create mode 100644 hu_HU.ISO8859-2/books/handbook/mirrors/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/multimedia/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/network-servers/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/pgpkeys/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/pgpkeys/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/ports/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/ppp-and-slip/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/preface/preface.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/printing/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/security/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/security/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/security/ipsec-crypt-pkt.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/security/ipsec-encap-pkt.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/security/ipsec-network.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/security/ipsec-out-pkt.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/serialcomms/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/txtfiles.ent create mode 100644 hu_HU.ISO8859-2/books/handbook/users/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/users/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-concat.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-mirrored-vol.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid10-vol.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid5-org.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-simple-vol.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped-vol.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped.pic create mode 100644 hu_HU.ISO8859-2/books/handbook/virtualization/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml create mode 100644 hu_HU.ISO8859-2/books/handbook/x11/Makefile create mode 100644 hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml diff --git a/hu_HU.ISO8859-2/Makefile b/hu_HU.ISO8859-2/Makefile index be111d3a5d..cd7573dc91 100644 --- a/hu_HU.ISO8859-2/Makefile +++ b/hu_HU.ISO8859-2/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ SUBDIR = articles +SUBDIR+= books COMPAT_SYMLINK = hu diff --git a/hu_HU.ISO8859-2/books/Makefile b/hu_HU.ISO8859-2/books/Makefile new file mode 100644 index 0000000000..a3f33818a9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/Makefile @@ -0,0 +1,15 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project +# +# $FreeBSD$ +# Original Revision: 1.4 +# + +SUBDIR = handbook + +ROOT_SYMLINKS= handbook + +DOC_PREFIX?= ${.CURDIR}/../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" + diff --git a/hu_HU.ISO8859-2/books/Makefile.inc b/hu_HU.ISO8859-2/books/Makefile.inc new file mode 100644 index 0000000000..e267fc0804 --- /dev/null +++ b/hu_HU.ISO8859-2/books/Makefile.inc @@ -0,0 +1,10 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project +# +# $FreeBSD$ +# Original Revision: 1.2 +# + +DESTDIR?= ${DOCDIR}/hu_HU.ISO8859-2/books/${.CURDIR:T} + diff --git a/hu_HU.ISO8859-2/books/handbook/Makefile b/hu_HU.ISO8859-2/books/handbook/Makefile new file mode 100644 index 0000000000..51f40350f4 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/Makefile @@ -0,0 +1,309 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD Hungarian Documentation Project + +# $FreeBSD$ +# Original Revision: 1.109 +# +# Build the FreeBSD Handbook. +# + +# ------------------------------------------------------------------------ +# +# Handbook-specific variables +# +# WITH_PGPKEYS The print version of the handbook only prints PGP +# fingerprints by default. If you would like for the +# entire key to be displayed, then set this variable. +# This option has no affect on the HTML formats. +# +# Handbook-specific targets +# +# pgpkeyring This target will read the contents of +# pgpkeys/chapter.sgml and will extract all of +# the pgpkeys to standard out. This output can then +# be redirected into a file and distributed as a +# public keyring of FreeBSD developers that can +# easily be imported into PGP/GPG. +# +# ------------------------------------------------------------------------ + +.PATH: ${.CURDIR}/../../share/sgml/glossary + +# +# Tidy messes up iso-8859-2 characters +# + +NO_TIDY= yes + +MAINTAINER= pgj@FreeBSD.org + +DOC?= book + +FORMATS?= html-split + +HAS_INDEX= true +USE_PS2PDF= yes + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +IMAGES = advanced-networking/isdn-bus.eps +IMAGES+= advanced-networking/isdn-twisted-pair.eps +IMAGES+= advanced-networking/natd.eps +IMAGES+= advanced-networking/net-routing.pic +IMAGES+= advanced-networking/static-routes.pic +IMAGES+= geom/striping.pic +IMAGES_EN+= install/adduser1.scr +IMAGES_EN+= install/adduser2.scr +IMAGES_EN+= install/adduser3.scr +IMAGES_EN+= install/boot-loader-menu.scr +IMAGES_EN+= install/boot-mgr.scr +IMAGES_EN+= install/config-country.scr +IMAGES_EN+= install/console-saver1.scr +IMAGES_EN+= install/console-saver2.scr +IMAGES_EN+= install/console-saver3.scr +IMAGES_EN+= install/console-saver4.scr +IMAGES_EN+= install/disklabel-auto.scr +IMAGES_EN+= install/disklabel-ed1.scr +IMAGES_EN+= install/disklabel-ed2.scr +IMAGES_EN+= install/disklabel-fs.scr +IMAGES_EN+= install/disklabel-root1.scr +IMAGES_EN+= install/disklabel-root2.scr +IMAGES_EN+= install/disklabel-root3.scr +IMAGES+= install/disk-layout.eps +IMAGES_EN+= install/dist-set.scr +IMAGES_EN+= install/dist-set2.scr +IMAGES_EN+= install/docmenu1.scr +IMAGES_EN+= install/ed0-conf.scr +IMAGES_EN+= install/ed0-conf2.scr +IMAGES_EN+= install/edit-inetd-conf.scr +IMAGES_EN+= install/fdisk-drive1.scr +IMAGES_EN+= install/fdisk-drive2.scr +IMAGES_EN+= install/fdisk-edit1.scr +IMAGES_EN+= install/fdisk-edit2.scr +IMAGES_EN+= install/ftp-anon1.scr +IMAGES_EN+= install/ftp-anon2.scr +IMAGES_EN+= install/hdwrconf.scr +IMAGES_EN+= install/keymap.scr +IMAGES_EN+= install/main1.scr +IMAGES_EN+= install/mainexit.scr +IMAGES_EN+= install/main-std.scr +IMAGES_EN+= install/main-options.scr +IMAGES_EN+= install/main-doc.scr +IMAGES_EN+= install/main-keymap.scr +IMAGES_EN+= install/media.scr +IMAGES_EN+= install/mouse1.scr +IMAGES_EN+= install/mouse2.scr +IMAGES_EN+= install/mouse3.scr +IMAGES_EN+= install/mouse4.scr +IMAGES_EN+= install/mouse5.scr +IMAGES_EN+= install/mouse6.scr +IMAGES_EN+= install/mta-main.scr +IMAGES_EN+= install/net-config-menu1.scr +IMAGES_EN+= install/net-config-menu2.scr +IMAGES_EN+= install/nfs-server-edit.scr +IMAGES_EN+= install/ntp-config.scr +IMAGES_EN+= install/options.scr +IMAGES_EN+= install/pkg-cat.scr +IMAGES_EN+= install/pkg-confirm.scr +IMAGES_EN+= install/pkg-install.scr +IMAGES_EN+= install/pkg-sel.scr +IMAGES_EN+= install/probstart.scr +IMAGES_EN+= install/routed.scr +IMAGES_EN+= install/security.scr +IMAGES_EN+= install/sysinstall-exit.scr +IMAGES_EN+= install/timezone1.scr +IMAGES_EN+= install/timezone2.scr +IMAGES_EN+= install/timezone3.scr +IMAGES_EN+= install/userconfig.scr +IMAGES_EN+= install/userconfig2.scr +IMAGES+= mail/mutt1.scr +IMAGES+= mail/mutt2.scr +IMAGES+= mail/mutt3.scr +IMAGES_EN+= mail/pine1.scr +IMAGES_EN+= mail/pine2.scr +IMAGES+= mail/pine3.scr +IMAGES+= mail/pine4.scr +IMAGES+= mail/pine5.scr + +IMAGES+= install/example-dir1.eps +IMAGES+= install/example-dir2.eps +IMAGES+= install/example-dir3.eps +IMAGES+= install/example-dir4.eps +IMAGES+= install/example-dir5.eps +IMAGES+= security/ipsec-network.pic +IMAGES+= security/ipsec-crypt-pkt.pic +IMAGES+= security/ipsec-encap-pkt.pic +IMAGES+= security/ipsec-out-pkt.pic +IMAGES+= vinum/vinum-concat.pic +IMAGES+= vinum/vinum-mirrored-vol.pic +IMAGES+= vinum/vinum-raid10-vol.pic +IMAGES+= vinum/vinum-raid5-org.pic +IMAGES+= vinum/vinum-simple-vol.pic +IMAGES+= vinum/vinum-striped-vol.pic +IMAGES+= vinum/vinum-striped.pic +IMAGES_EN+= virtualization/parallels-freebsd1.png +IMAGES_EN+= virtualization/parallels-freebsd2.png +IMAGES_EN+= virtualization/parallels-freebsd3.png +IMAGES_EN+= virtualization/parallels-freebsd4.png +IMAGES_EN+= virtualization/parallels-freebsd5.png +IMAGES_EN+= virtualization/parallels-freebsd6.png +IMAGES_EN+= virtualization/parallels-freebsd7.png +IMAGES_EN+= virtualization/parallels-freebsd8.png +IMAGES_EN+= virtualization/parallels-freebsd9.png +IMAGES_EN+= virtualization/parallels-freebsd10.png +IMAGES_EN+= virtualization/parallels-freebsd11.png +IMAGES_EN+= virtualization/parallels-freebsd12.png +IMAGES_EN+= virtualization/parallels-freebsd13.png +IMAGES_EN+= virtualization/virtualpc-freebsd1.png +IMAGES_EN+= virtualization/virtualpc-freebsd2.png +IMAGES_EN+= virtualization/virtualpc-freebsd3.png +IMAGES_EN+= virtualization/virtualpc-freebsd4.png +IMAGES_EN+= virtualization/virtualpc-freebsd5.png +IMAGES_EN+= virtualization/virtualpc-freebsd6.png +IMAGES_EN+= virtualization/virtualpc-freebsd7.png +IMAGES_EN+= virtualization/virtualpc-freebsd8.png +IMAGES_EN+= virtualization/virtualpc-freebsd9.png +IMAGES_EN+= virtualization/virtualpc-freebsd10.png +IMAGES_EN+= virtualization/virtualpc-freebsd11.png +IMAGES_EN+= virtualization/virtualpc-freebsd12.png +IMAGES_EN+= virtualization/virtualpc-freebsd13.png +IMAGES_EN+= virtualization/vmware-freebsd01.png +IMAGES_EN+= virtualization/vmware-freebsd02.png +IMAGES_EN+= virtualization/vmware-freebsd03.png +IMAGES_EN+= virtualization/vmware-freebsd04.png +IMAGES_EN+= virtualization/vmware-freebsd05.png +IMAGES_EN+= virtualization/vmware-freebsd06.png +IMAGES_EN+= virtualization/vmware-freebsd07.png +IMAGES_EN+= virtualization/vmware-freebsd08.png +IMAGES_EN+= virtualization/vmware-freebsd09.png +IMAGES_EN+= virtualization/vmware-freebsd10.png +IMAGES_EN+= virtualization/vmware-freebsd11.png +IMAGES_EN+= virtualization/vmware-freebsd12.png + +# Images from the cross-document image library +IMAGES_LIB= callouts/1.png +IMAGES_LIB+= callouts/2.png +IMAGES_LIB+= callouts/3.png +IMAGES_LIB+= callouts/4.png +IMAGES_LIB+= callouts/5.png +IMAGES_LIB+= callouts/6.png +IMAGES_LIB+= callouts/7.png +IMAGES_LIB+= callouts/8.png +IMAGES_LIB+= callouts/9.png +IMAGES_LIB+= callouts/10.png +IMAGES_LIB+= callouts/11.png +IMAGES_LIB+= callouts/12.png +IMAGES_LIB+= callouts/13.png +IMAGES_LIB+= callouts/14.png +IMAGES_LIB+= callouts/15.png + +# +# SRCS lists the individual SGML files that make up the document. Changes +# to any of these files will force a rebuild +# + +# SGML content +SRCS+= audit/chapter.sgml +SRCS+= book.sgml +SRCS+= colophon.sgml +SRCS+= freebsd-glossary.sgml +SRCS+= advanced-networking/chapter.sgml +SRCS+= basics/chapter.sgml +SRCS+= bibliography/chapter.sgml +SRCS+= boot/chapter.sgml +SRCS+= config/chapter.sgml +SRCS+= cutting-edge/chapter.sgml +SRCS+= desktop/chapter.sgml +SRCS+= disks/chapter.sgml +SRCS+= eresources/chapter.sgml +SRCS+= firewalls/chapter.sgml +SRCS+= geom/chapter.sgml +SRCS+= install/chapter.sgml +SRCS+= introduction/chapter.sgml +SRCS+= jails/chapter.sgml +SRCS+= kernelconfig/chapter.sgml +SRCS+= l10n/chapter.sgml +SRCS+= linuxemu/chapter.sgml +SRCS+= mac/chapter.sgml +SRCS+= mail/chapter.sgml +SRCS+= mirrors/chapter.sgml +SRCS+= multimedia/chapter.sgml +SRCS+= network-servers/chapter.sgml +SRCS+= pgpkeys/chapter.sgml +SRCS+= ports/chapter.sgml +SRCS+= ppp-and-slip/chapter.sgml +SRCS+= preface/preface.sgml +SRCS+= printing/chapter.sgml +SRCS+= security/chapter.sgml +SRCS+= serialcomms/chapter.sgml +SRCS+= users/chapter.sgml +SRCS+= vinum/chapter.sgml +SRCS+= virtualization/chapter.sgml +SRCS+= x11/chapter.sgml + +# Entities +SRCS+= chapters.ent + +SYMLINKS= ${DESTDIR} index.html handbook.html + +# Turn on all the chapters. +CHAPTERS?= ${SRCS:M*chapter.sgml} + +SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} +SGMLFLAGS+= -i chap.freebsd-glossary + +pgpkeyring: pgpkeys/chapter.sgml + @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} + +# +# Handbook-specific variables +# +.if defined(WITH_PGPKEYS) +JADEFLAGS+= -V withpgpkeys +.endif + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +# +# rules generating lists of mirror site from XML database. +# +XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \ + mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \ + eresources:::eresources.sgml.www.inc.tmp +DEPENDSET.DEFAULT= transtable mirror +XSLT.DEFAULT= ${XSL_MIRRORS} +XML.DEFAULT= ${XML_MIRRORS} +NO_TIDY.DEFAULT= yes + +PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \ + --param 'proto' "'ftp'" \ + --param 'target' "'handbook/mirrors/chapter.sgml'" +PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \ + --param 'proto' "'cvsup'" \ + --param 'target' "'handbook/mirrors/chapter.sgml'" +PARAMS.eresources+= --param 'type' "'www'" \ + --param 'proto' "'http'" \ + --param 'target' "'handbook/eresources/chapter.sgml'" + +SRCS+= mirrors.sgml.ftp.inc \ + mirrors.sgml.cvsup.inc \ + eresources.sgml.www.inc + +CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \ + mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \ + eresources.sgml.www.inc eresources.sgml.www.inc.tmp + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" + +.for p in ftp cvsup +mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ + < $@.tmp > $@ || (${RM} -f $@ && false) +.endfor + +eresources.sgml.www.inc: eresources.sgml.www.inc.tmp + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ + < $@.tmp > $@ || (${RM} -f $@ && false) diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile b/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile new file mode 100644 index 0000000000..eb62e4335c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= advanced-networking/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml new file mode 100644 index 0000000000..af9670ecca --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml @@ -0,0 +1,7818 @@ + + + + + + Egyéb haladó hálózati + témák + + + Áttekintés + + Ebben a fejezetben számos komolyabb + hálózati témát fogunk + tárgyalni. + + A fejezet elolvasása során + megismerjük: + + + + az átjárók és az + útválasztás alapjait; + + + + hogyan állítsunk be IEEE 802.11 és + &bluetooth; eszközöket; + + + + a &os; segítségével hogyan tudunk + két hálózatot összekötni + hálózati hidakon keresztül; + + + + hogyan indítsuk hálózatról egy + lemez nélküli gépet; + + + + hogyan állítsunk be hálózati + címfordítást; + + + + hogyan kapcsoljunk össze két + számítógépet PLIP + használatával; + + + + hogyan állítsuk be az IPv6 + használatát egy &os;-s gépen + + + + hogyan állítsuk be az ATM + használatát; + + + + hogyan engedélyezzük és + használjuk a Közös címredundancia + protokollt &os;-ben. + + + + A fejezet elolvasásához ajánlott: + + + + az /etc/rc könyvtárban + található szkriptek + mûködésének ismerete; + + + + az alapvetõ hálózati fogalmak + ismerete; + + + + egy új &os; rendszermag + beállításának és + telepítésének ismerete (); + + + + a külsõ szoftverek + telepítésének ismerete (). + + + + + + + + + + Coranth + Gryphon + Készítette: + + + + + Átjárók és az + útválasztás + + útválasztás + átjáró + alhálózat + + Egy gép egy másikat úgy tud + megtalálni a hálózaton, ha erre + létezik egy olyan mechanizmus, amely leírja, hogyan + tudunk eljutni az egyiktõl a másikig. Ezt + hívjuk + útválasztásnak + (routing). Az útvonal (route) címek + egy párjaként adható meg, egy + céllal (destination) és egy + átjáróval (gateway). Ez a + páros mondja meg, hogy ha el akarjuk érni ezt a + célt, akkor ezen az + átjárón keresztül + kell továbbhaladnunk. A céloknak három + típusa lehet: egyéni gépek, + alhálózatok és az + alapértelmezett. Az + alapértelmezett útvonalat (default + route) abban az esetben alkalmazzuk, ha semelyik más + útvonal nem megfelelõ. Az alapértelmezett + útvonalakról a késõbbiekben még + beszélni fogunk. Három típusa van az + átjáróknak: egyéni gépek, + felületek (avagy linkek) és a hardveres + Ethernet címek (MAC-címek). + + + Példa + + Az útválasztás + különbözõ területeit a + következõ netstat parancs + alapján fogjuk bemutatni: + + &prompt.user; netstat -r +Routing tables + +Destination Gateway Flags Refs Use Netif Expire + +default outside-gw UGSc 37 418 ppp0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 +10.20.30.255 link#1 UHLW 1 2421 +example.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.example.com link#1 UC 0 0 +224 link#1 UC 0 0 + + alapértelmezett + útvonal + + Az elsõ két sorban az alapértelmezett + útvonalat (melyrõl részleteiben majd a következõ + szakaszban fogunk szólni) és a + localhost útvonalát + láthatjuk. + + loopback eszköz + + A localhost címhez az + útválasztási táblázatban a + lo0 eszköz tartozik (a + Netif oszlopban), amelyet loopback + eszköznek is neveznek. Ez arra utasítja a + rendszert, hogy az ide küldött csomagokat ne a helyi + hálózaton küldje keresztül, hanem csak + ezen a belsõ felületen, mivel úgyis oda + jutnának vissza, ahonnan indultak. + + + Ethernet + MAC-cím + + + A táblázatban a következõ sor egy + 0:e0 kezdetû címet + tartalmaz. Ez egy hardveres Ethernet cím, más + néven MAC-cím. A &os; magától + képes beazonosítani tetszõleges gépet + (ebben a példában a test0 + gépet) a helyi Ethernetes hálózaton + és felvenni hozzá egy útvonalat, + közvetlenül az ed0 Ethernetes + csatolófelületen keresztül. Ehhez a + típusú útvonalhoz tartozik még egy + lejárati idõ is (a Expire + oszlop), amely akkor kap szerepet, ha ennyi idõ + elteltével nem kapunk semmilyen hírt a + géprõl. Amikor ilyen történik, az + géphez eddig nyilvántartott útvonal + automatikusan törlõdik. Ezek a gépek a RIP + (útvonal-információs protokoll, Routing + Information Protocol) nevû mechanizmuson keresztül + azonosítódnak, mely a legrövidebb út + kiszámítása alapján határozza + meg a helyi gépekhez vezetõ útvonalat. + + alhálózat + + A &os; a helyi alhálózat (10.20.30.255 és example.com, az + alhálózathoz tartozó név) + esetében is felvesz útvonalakat. A + link#1 megnevezés a gépben + található elsõ Ethernet-kártyát + jelöli. Megfigyelhetjük, hogy rajta kívül + nincs is több felülete. + + Mindegyik csoport (a helyi hálózati + gépek és a helyi alhálózatokatok) + útvonalait a routed nevû + démon tartja automatikusan karban. Ha ez nem fut, akkor + csak a statikusan definiált (vagyis az elõre + megadott) útvonalak fognak létezni. + + A host1 sor a saját + gépünkre vonatkozik, amelyet az Ethernet címe + szerint ismerünk. Mivel mi vagyunk küldõ + gép, a &os; tudni fogja, hogy ilyenkor az Ethernetes + felület helyett a loopback eszközt + (lo0) kell használnia. + + A két host2 sor arra mutat + példát, amikor az &man.ifconfig.8; paranccsal + álneveket hozunk létre (ennek konkrét okait + lásd az Ethernetrõl szóló + részben). A lo0 felület + neve után szereplõ => + szimbólum azt jelzi, hogy ez nem csak egy loopback + felület (mivel a címe szintén a helyi + gépre mutat), hanem a felület egy másik neve. + Ilyen útvonalak csak az álneveket ismerõ + gépeknél jelennek meg. A helyi + hálózaton minden más gépnél + egyszerûen csak a link#1 jelenik meg az + ilyen útvonalak esetében. + + Az utolsó sor (a 224 + céllal rendelkezõ alhálózat) a + többesküldésre (multicasting) szolgál, + amellyel majd egy másik szakaszban foglalkozunk. + + Végezetül az útvonalakhoz tartozó + különféle tulajdonságok a + Flags oszlopban láthatóak. Az + alábbi rövid táblázatban + összefoglaltunk közülük + néhányat: + + + + + + + + + U + Up: az útvonal aktív + + + + H + Host: az útvonal egyetlen gépre + mutat + + + + G + Gateway: az adott cél felé ezen a + gépen keresztül küldjünk, amely + majd kitalálja, hogy merre küldje + tovább + + + + S + Static: ez az útvonal statikus, nem a + rendszer hozta létre automatikusan + + + + C + Clone: ebbõl az útvonalból + származtatunk új útvonalat azokhoz + a gépekhez, amelyekhez csatlakozunk. Ilyen + útvonalakat általában a helyi + hálózatokban találhatunk + + + + W + WasCloned: azt jelzi, hogy ezt az útvonalat + egy helyi hálózatra mutató + (klón, avagy Clone típusú) + útvonal alapján hoztuk létre + automatikusan + + + + L + Link: az útvonal Ethernetes hardverhez + kapcsolódik + + + + + + + + + Alapértelmezett útvonalak + + alapértelmezett + útvonal + + Amikor a helyi rendszernek fel kell vennie a kapcsolatot egy + távoli géppel, ellenõrzi az + útválasztási táblázatban, + hogy létezik-e már hozzá valamilyen + útvonal. Ha a távoli gép egy olyan + alhálózatba esik, amelyet már el tudunk + érni (klónozott útvonalak), akkor a + rendszer megnézi, hogy a hozzátartozó + felületen képes-e kapcsolatot + létesíteni. + + Ha minden ismert útvonal csõdöt mond, akkor + a rendszerünknek marad még egy utolsó + esélye: az alapértelmezett + útvonal használata. Ez az útvonal egy + speciális átjáró útvonal + (ebbõl általában csak egyetlen egy + létezik a rendszerben) és tulajdonságai + között mindig szerepel a c. A + helyi hálózat gépei közül ez az + átjáró az legyen, amelyik + közvetlenül kapcsolódik a külsõ + világhoz (PPP összeköttetéssel, DSL, + kábelmodem, T1 vagy bármilyen más + hálózati felületen keresztül). + + Amikor pedig magát a külsõ világ + felé átjáróként + szolgáló gépet állítjuk be, + az alapértelmezett útvonal az + internet-szolgáltatónk által megadott + gép címe lesz. + + Vegyünk egy példát az + alapértelmezett útvonalakra. Egy tipikus + konfiguráció: + + + + + + + + +[Helyi2] <--ether--> [Helyi1] <--PPP--> [ Szolg. ] <--ether--> [T1-ÁJ] + + + + + A Helyi1 és Helyi2 + gépek a hálózatunk tagjai. A + Helyi1 az internet-szolgáltatót + éri el egy betárcsázós PPP + kapcsolaton keresztül. A PPP szerver a külsõ + felületén keresztül a helyi + hálózaton pedig egy másik + átjáróhoz csatlakozik. + + Az egyes gépek alapértelmezett + útvonalai így alakulnak: + + + + + + Gép + Alapértelmezett + átjáró + Felület + + + + + + Helyi2 + Helyi1 + Ethernet + + + + Helyi1 + T1-ÁJ + PPP + + + + + + Gyakran felmerül a kérdés, hogy + Miért (és hogy-hogy) a + T1-ÁJ a Helyi1 + gép számára az alapértelmezett + átjáró és nem a + szolgáltató azon szervere, amelyhez + csatlakozott? + + Ne felejtsük el, hogy a PPP felület a + szolgáltató helyi hálózatában + a mi részünkre kap címet, és a itt az + összes többi géphez tartozó + útvonal automatikusan létrejön. Emiatt + már eleve el tudjuk érni a + T1-ÁJ gépet, ezért amikor + a szolgáltatón keresztül küldünk, + nincs szükségünk egy további + lépcsõre. + + Általában a X.X.X.1 címet szokták a + helyi hálózat + átjárójának kiosztani. Ezért + (az elõbbi példát + újrahasznosítva) ha a helyi + hálózatunkon a C osztályú 10.20.30 címtartományt + használjuk, és a szolgáltatónkhoz a + 10.9.9 címtartomány + tartozik, akkor az alapértelmezett útvonalak a + következõk lesznek: + + + + + + Gép + Alapértelmezett útvonal + + + + + Helyi2 (10.20.30.2) + Helyi1 (10.20.30.1) + + + Helyi1 (10.20.30.1, 10.9.9.30) + T1-ÁJ (10.9.9.1) + + + + + + Az /etc/rc.conf + állományon keresztül könnyen meg tudjuk + adni az alapértelmezett útvonalat. A + példánkban a Helyi2 gép + /etc/rc.conf + állományába kell felvennünk a + következõ sort: + + defaultrouter="10.20.30.1" + + A &man.route.8; parancs használatával viszont + akár közvetlenül is megtehetjük + mindezt: + + &prompt.root; route add default 10.20.30.1 + + A &man.route.8; man oldalon olvashatunk arról + bõvebben, hogy a hálózati + útválasztási táblázatokat + kézzel hogyan tudjuk módosítani. + + + + + Kettõs hálózatú + gépek + + kettõs hálózatú + gépek + + Egy másik típusú + konfigurációról is szót kell + ejtenünk, ahol a gép egyszerre két + hálózatnak is tagja. Gyakorlatilag az + átjáróként üzemelõ + számítógépek (mint + például az, amelyik a fenti példában + PPP kapcsolattal csatlakozott) ilyen kettõs + hálózatú gépnek tekinthetõek. + Ez a kifejezés azonban igazából csak azokra + az esetekre illik, ahol a gép egyszerre két helyi + hálózatban is megjelenik. + + Az egyik esetben a gépben két Ethernet + kártya található, melyek mindegyike + birtokol egy-egy hálózati címet az egyes + alhálózatokon. De elõfordulhat az is, hogy a + gépünkben csupán egyetlen Ethernet + kártya van és az &man.ifconfig.8; + segítségével álneveket hoztunk + létre hozzá. Az elõbbi + általában két fizikailag + elkülönölõ Ethernet alapú + hálózat esetében történik, + míg az utóbbinál csak egyetlen fizikai + hálózati szegmensrõl van szó, amely + viszont logikailag két külön + alhálózatot tartalmaz. + + Akármelyiket is vesszük, az + útválasztási táblázatok + úgy jönnek létre, hogy bennük a + gép a másik alhálózat felé + átjáróként (bejövõ + útvonalként) lesz nyilvántartva. Ebben a + konfigurációban a gép a két + alhálózat között + útválasztóként fog + tevékenykedni, és gyakran valamelyik vagy + éppen mind a két irányba be kell + állítanunk valamilyen csomagszûrést + vagy tûzfalazást. + + Ha azt szeretnénk, hogy ez a gép a két + felület között továbbítson + csomagokat, akkor a &os;-ben külön engedélyezni + kell ezt a lehetõséget. A következõ + szakaszban ennek részleteit tárjuk fel. + + + + + Az útválasztók + beállítása + + útválasztó + + A hálózati útválasztó nem + csinál mást, csak továbbküldi az egyik + felületén beérkezõ csomagokat egy + másik felületére. Az internetes + szabványok és a sokéves mérnöki + tapasztalat azonban nem engedik, hogy a &os; Projekt + alapértelmezés szerint is + elérhetõvé tegye ezt a &os; rendszerekben. + Ezt a lehetõséget az alábbi + változó YES + értékûre + állításával lehet + engedélyezni az &man.rc.conf.5; + állományban: + + gateway_enable=YES # Ez legyen YES, ha átjáróként akarunk üzemelni + + Ezzel lényegében a + net.inet.ip.forwarding &man.sysctl.8; + változó értékét + állítjuk 1-re. Ha + valamiért egy idõre szüneteltetni akarjuk a + csomagok továbbküldését, akkor + állítsuk a változó + értékét 0-ra. + + Az új útválasztónak nem + árt arról sem tudnia, hogy merre + továbbítsa a forgalmat. Ha elég + egyszerû a hálózatunk, akkor akár + statikus útvonalakat is használhatunk. A &os; + alapból tartalmazza a BSD-k esetén + szabványos &man.routed.8; útválasztó + démont, amely a RIP (v1 és v2) valamint az IRDP + megoldásokat ismeri. A BGP v4, OSPF v2 és a + többi fejlettebb útválasztási + protokoll a net/zebra + csomagban érhetõ el. Az ettõl bonyolultabb + hálózati útválasztási + feladatokhoz olyan kereskedelmi termékek is + elérhetõek, mint például a + &gated;. + + BGP + RIP + OSPF + + + + + + + + Al + Hoang + Írta: + + + + + Statikus útvonalak + beállítása + + + Manuális konfiguráció + + Tegyük fel, hogy hálózatunk a + következõ: + + + + + + + + + INTERNET + | (10.0.0.1/24) alapértelmezett átjáró internet felé + | + |az xl0 felület + |10.0.0.10/24 + +------+ + | | A-utvalaszto + | | (FreeBSD átjáró) + +------+ + | az xl1 felület + | 192.168.1.1/24 + | + +--------------------------------+ + 1. belsõ hálózat | 192.168.1.2/24 + | + +------+ + | | B-utvalaszto + | | + +------+ + | 192.168.2.1/24 + | + 2. belsõ hálózat + + + + + Ebben a forgatókönyvben az + A-utvalaszto a mi &os;-s gépünk, + amely az internet felé vezetõ + útválasztó szerepét + játssza. Számára az + alapértelmezett útvonal a 10.0.0.1, amelyen keresztül a + külsõ világot tudja elérni. + Feltételezzük, hogy a + B-utvalaszto nevû gépet + már eleve jól állítottuk be, + ezért tudja merre kell mennie. (A kép + alapján egyszerû: csak vegyünk fel egy + alapértelmezett útvonalat a + B-utvalaszto géphez, ahol így a + 192.168.1.1 lesz az + átjáró.) + + Ha megnézzük most az + A-utvalaszto + útválasztási + táblázatát, akkor nagyjából + a következõket fogjuk látni: + + &prompt.user; netstat -nr +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +default 10.0.0.1 UGS 0 49378 xl0 +127.0.0.1 127.0.0.1 UH 0 6 lo0 +10.0.0/24 link#1 UC 0 0 xl0 +192.168.1/24 link#2 UC 0 0 xl1 + + Az A-utvalaszto + útválasztási táblázata + alapján jelen helyzetben nem lehet elérni a 2. + belsõ hálózatot. Nincs ugyanis olyan + útvonal, amely a 192.168.2.0/24 alhálózat + felé vezetne. Ezt például úgy + tudjuk megoldani, ha manuálisan felvesszük ezt az + útvonalat. Az alábbi paranccsal + hozzáadjuk a 2. belsõ hálózat + elérését az A-utvalaszto + útválasztási + táblázatához, ahol a 192.168.1.2 lesz a következõ + ugrási pont (next hop): + + &prompt.root; route add -net 192.168.2.0/24 192.168.1.2 + + Most már az A-utvalaszto + bármelyik gépet képes elérni a + 192.168.2.0/24 + hálózaton. + + + + + Rögzített konfiguráció + + A fenti példa tökéletesen + szemlélti a statikus útvonalak + felvételét egy mûködõ rendszeren. + Azonban ezzel az a gond, hogy az így megadott + útválasztási információ nem + marad meg a gép újraindítása + után. Ezért az elõbbihez hasonló + statikus útvonalakat inkább az + /etc/rc.conf állományban + rögzítsük: + + # A 2. belsõ hálózat elérését felvesszük statikus útvonalként +static_routes="belsohalo2" +route_belsohalo2="-net 192.168.2.0/24 192.168.1.2" + + A static_routes + konfigurációs változó + karakterláncok szóközzel tagolt + felsorolását tartalmazza. Mindegyik + karakterlánc egy útvonal neve. Az iménti + példában csak egyetlen ilyen név + szerepelt a static_routes + értékében, amely a + belsohalo2 volt. Utána + beírtunk még egy konfigurációs + változót is, amelynek a neve + route_belsohalo2. + Ide helyeztük a &man.route.8; parancsnak + átadandó beállítás + összes paraméterét. Ez pontosan olyan, + mintha a következõ parancsot adtuk volna ki: + + &prompt.root; route add -net 192.168.2.0/24 192.168.1.2 + + Ezért kellett a "-net 192.168.2.0/24 + 192.168.1.2". + + Ahogy már korábban is + említettük, a static_routes + értékében több karakterláncot + is megadhatunk, aminek segítségével + egyszerre több statikus útvonalat is + létrehozhatunk. A következõ sorok arra + mutatnak példát, hogy a 192.168.0.0/24 és 192.168.1.0/24 hálózatok + számára miként állítsunk be + statikus útvonalakat a képzeletbeli + útválasztónkon: + + static_routes="net1 net2" +route_net1="-net 192.168.0.0/24 192.168.0.1" +route_net2="-net 192.168.1.0/24 192.168.1.1" + + + + + + Az útvonalak terjedése + + útvonalterjedés + + Azt már tudjuk, hogyan adjuk meg a + külvilág felé vezetõ útvonalakat, + azonban arról még nem beszéltünk, hogy + kívülrõl miként találnak meg + bennünket. + + Annyit már megismertünk, hogy az + útválasztási táblázatokban + megadhatjuk a hálózaton azt a gépet, + amelyen keresztül az adott címtartomány (a + példában egy C osztályú + alhálózat) felé küldhetünk, amely + pedig továbbküldi a hozzá érkezõ + csomagokat. + + Amikor a csatlakozunk az + internet-szolgáltatónkhoz, a nála levõ + útválasztási táblázatok + úgy állítódnak be, hogy az + alhálózatunk felé igyekvõ adatok a + korábban létrejött PPP + összeköttetésen keresztül jutnak el + hozzánk. A világ többi részén + levõ rendszerek viszont honnan fogják tudni, hogy a + mi internet-szolgáltatónknak + küldjenek? + + Van egy rendszer (ez leginkább a névszerverek + elosztott információs adatbázisához + hasonlít), ami nyilvántartja a pillanatnyilag + kiosztott címtartományokat és megadja a + csatlakozási pontjukat az internet + gerinchálózatán. Ez a + gerinc tulajdonképpen olyan + fõvonalakból áll, amelyen keresztül a + világban az országok között mozog az + internet forgalma. A gerinchálózat mindegyik + gépe tárolja a központi + útválasztási táblázatok egy + másolatát, ami a forgalmat egy adott + hálózatról a megadott gerincbeli + hordozóra irányítja át, végig + az internet-szolgáltatók láncán + egészen addig, amíg az el nem éri a + hálózatunkat. + + A szolgáltatónk feladata, hogy a + gépünk felé leágazásként + (és így a felénk vezetõ + útként) beregisztálja magát a + gerinchálózat gépein. Ezt nevezik az + útvonal terjedésének. + + + + + Hibaelhárítás + + traceroute + + Néha gondok lehetnek az útvonal + terjedésével, és egyes gépek nem + képesek elérni minket. A &man.traceroute.8; + parancs mind közül talán az egyik leghasznosabb + ilyen helyzetekben, mivel ezzel fel tudjuk deríteni, hogy + az útválasztás hol akad meg. Ugyanilyen + jól hasznosítható azokban az esetekben, + amikor látszólag nem tudunk elérni egy + távoli gépet (tehát a &man.ping.8; + csõdöt mond). + + A &man.traceroute.8; parancsnak annak a távoli + gépnek a nevét kell megadnunk, amelyhez + csatlakozni akarunk. Futása közben + megjeleníti azokat az átjárókat, + amelyeken keresztül csatlakozni próbál, + akár sikerült elérni a + célgépet, akár a kapcsolat hiánya + miatt kudarcot vall. + + A parancs használatáról és + mûködésérõl részletesebb + információkat a &man.traceroute.8; man + oldalán találunk. + + + + + Útválasztás + többesküldés esetén + + + útválasztás + többesküldésnél + + + + a rendszermag + beállításai + MROUTING + + + A &os; alapból támogatja mind a + többesküldést használó + alkalmazásokat, mind pedig a + többesküldéshez tartozó + útválasztást. + Többesküldés esetében semmilyen + speciális beállítás nem + szükségeltetik, az ilyen alkalmazások + egybõl el tudják érni ezt a + lehetõséget. A többesküldés + útválasztásához azonban be kell + építenünk némi + támogatást a rendszermagba: + + options MROUTING + + Emellett még el kell indítanunk az + &man.mrouted.8; démont is, amelyhez az + /etc/mrouted.conf állományban + még be kell állítanunk tunneleket és + a DVMRP használatát. A + többesküldéshez tartozó további + beállításokat az &man.mrouted.8; man + oldalán találhatjuk. + + + + + + + + + Loader + + + + Marc + Fonvieille + + + + Murray + Stokely + + + + + Vezeték nélküli + hálózatok + + vezeték nélküli + hálózatok + + + 802.11 + vezeték nélküli + hálózatok + + + + A vezeték nélküli + hálózatok alapjai + + A legtöbb vezeték nélküli + hálózat az IEEE 802.11 szabványon nyugszik. + Az alapvetõ vezeték nélküli + hálózatokban több olyan + állomást találhatunk, amelyek + egymással rádiójelek + szórásával kommunikálnak a + 2,4 GHz vagy 5 GHz frekvenciatartományban (noha + ez a helyi viszonyoknak megfelelõen változhat, + és a 2,3 GHz, illetve a 4,9 GHz + tartományokban is lehetséges a + kommunikáció). + + A 802.11 szabványú hálózatok + kétféleképpen szervezõdnek. + Elõször is + infrastrukturálisan, + (infrastructural mode) ahol az egyik állomást + kinevezzük a központnak és a többi pedig + ehhez fog tartozni. Az ilyen hálózatokat BSS-nek + nevezzük és az imént említett + központ neve hozzáférési pont (Access + Point, AP) lesz. A BSS-ben az összes + kommunikáció a hozzáférési + pontokon keresztül halad még abban az esetben is, + amikor az egyik állomás egy másik + vezeték nélküli állomással + akarja felvenni a kapcsolatot. Az ilyen jellegû + hálózatok másik típusú + szervezõdési módjában nincsenek + kijelölt központok és a + kommunikáció az állomások + között közvetlenül zajlik. A + hálózat ezen formáját IBBS-nek + nevezzük, vagy ismeretebb nevén ad-hoc + hálózatnak (ad-hoc network). + + A 802.11 alapú hálózatok + elsõként a 2,4 GHz-es sávot + hódították meg, és az IEEE 802.11 + valamint 802.11b szabványokban rögzített + protokollokat használták. Ezekben a + specifikációkban megtalálhatjuk a + mûködési frekvenciát, a + közeghozzáférési réteg + jellemzõinek leírását, + beleértve a keretezést és az + átviteli sebességeket (a + kommunikáció ugyanis eltérõ + sebességekkel is történhet). A + késõbb kiadott 802.11a szabvány azt + specifikálja, hogy az 5 GHz-es tartományban + miként mûködjenek, ahol többek közt + megtalálhatjuk a különféle + jelkezelési mechanizmusokat és a nagyobb + átviteli sebességek használatát. + Ezt még a 802.11g szabvány követte, ami a + 802.11b hálózatokkal kompatibilis módon + lehetõvé tette a 802.11a + jelkezelésének és átviteli + módszereinek használatát a 2,4 GHz-es + sávban. + + A 802.11 alapú hálózatok + mindenféle átviteli technikáitól + eltekintve többféle biztonsági + megoldással találkozhatunk. Az korai 802.11 + dokumentumok egy nagyon egyszerû biztonsági + protokollt, a WEP-et említenek. Ez a protokoll a + hálózaton mozgó adatokat egy + rögzített és ismert osztott kulccsal + kódolja le az RC4 titkosítással. A + kommunikációhoz az összes + állomásnak elõre meg kell egyeznie ebben a + kulcsban. Errõl a sémáról + idõközben kiderült, hogy könnyen + feltörhetõ és manapság már csak + nagyon ritkán alkalmazzák, kivéve + talán csak a kóbor felhasználók + elijesztésére. A jelenleg érvényes + biztonsági elõírásokat az IEEE 802.11i + specifikáció adja meg, amely új + kriptográfiai titkosításokat + definiál valamint egy további protokollt az + állomások azonosítására + és a kulcsok cseréjére. Emellett a + titkosításhoz használt kulcsok + idõszakosan frissülnek és külön + eszközök állnak rendelkezésre a + betörési kísérletek + észlelésére (és azok + elhárítására). A vezeték + nélküli hálózatok esetében + másik elterjedt titkosítási protokoll a + WPA. Ez igazából 802.11i elõdjének + tekinthetõ, amelyet egy ipari csoport definiált, + amíg a 802.11i minõsítés alatt + állt. A WPA ennek megfelelõen teljesíti a + 802.11i szabvány elvárásainak egy + részét és kifejezetten a régi + hardverek számára készült. A WPA + mûködéséhez egyedül a TKIP + titkosításra van szükségünk, + amely az eredeti WEP titkosításból + származik. A 802.11i engedi a TKIP + használatát, de az adatok + kódolására egy erõsebb + titkosítás, az AES-CCM ismeretét is + igényli. (Az AES a WPA esetében nem kell, mivel a + régi eszközök esetében + túlságosan költségesnek + ítélték meg a + használatát.) + + A fenti szabványokon kívül a 802.11e a + másik fontos szabvány, amire tekintettel kell + lennünk. Ez írja le a 802.11 + hálózatokon a multimédiás + alkalmazások közvetítéséhez, + mint például a videók valós + idejû lejátszásához vagy a VoIP (voice + over IP) megvalósításához + tartozó protokollokat. A 802.11i szabványhoz + hasonlóan a 802.11e is magában foglal egy + elõzetes specifikációt, amelyet WME + (késõbb pedig már WMM)-nek neveznek. Ezt + szintén egy ipari csoport definiálta a 802.11e + részeként, amivel a 802.11e végsõ + elfogadásáig tudják a + multimédiás igényeket kiszolgálni. + Amit a 802.11e és WME/WMM megoldásaival + kapcsolatban érdemes tudnunk: a QoS (Quality of Service) + protokoll és más egyéb fejlett + közeghozzáférési protokollok + segítségével a vezeték + nélküli hálózatokban + lehetõvé teszik a forgalom prioritás szerinti + ütemezését. Ezen protokollok megfelelõ + implementációjának + segítségével tehát a fontosabb + adatok nagy sebességû küldését + és áramoltatását vagyunk + képesek elérni. + + A &os; a 6.0 verzió óta ismeri a 802.11a, + 802.11b és 802.11g szabványokon alapján + mûködõ hálózatokat. A WPA + és 802.11i biztonsági protokollok (a 11a, 11b + és 11g szabványok bármelyike esetén) + hasonlóképpen támogatottak, valamint a + WME/WMM protokollok mûködéséhez + szükséges QoS csak bizonyos vezeték + nélküli eszközök esetében. + + + + + Kezdeti beállítások + + + A rendszermag beállítása + + A vezeték nélküli + hálózatok használatához egy + vezeték nélküli hálózati + kártyára lesz szükségünk, + valamint a rendszermagban is be kell állítani + ehhez a megfelelõ támogatást. Ez + utóbbit több különbözõ modulra + szedték szét, és ezek közül + csak azokat kell beállítani, amelyeket + tényleg használni is fogunk. + + Elõször is tehát kell egy vezeték + nélküli eszköz. Az elterjedtebb + típusaik általában az Atheos által + gyártott alkatrészeket tartalmazzák. Az + ilyen fajtájú eszközöket az + &man.ath.4; meghajtó kezeli, melyet úgy tudunk a + rendszer indításakor betölteni, ha a + /boot/loader.conf + állományba felvesszük a következõ + sort: + + if_ath_load="YES" + + Az Atheos meghajtója három + különálló részre oszlik: maga a + meghajtó (&man.ath.4;), a hardveres réteg, ami a + chipfüggõ funkciókat kezeli (&man.ath.hal.4;) + és a keretek küldésével kapcsolatban + az átviteli sebesség + megválasztását lehetõvé + tevõ algoritmus (ez itt most az ath_rate_sample). Amikor + ezt a támogatást modulként + töltjük be, ezek a függõségek + automatikusan feloldódnak. Ha az Atheos + eszközök helyett valamelyik másikhoz + tartozó modult szeretnénk használni, + akkor például az Intersil Prism esetében + a &man.wi.4; meghajtót kell megadnunk: + + if_wi_load="YES" + + + A leírás további részeiben + az &man.ath.4; eszközt fogjuk használni, minden + más esetben ennek a nevét kell csak + lecserélünk a példákban. A + rendszerben elérhetõ vezeték + nélküli meghajtók a &man.wlan.4; man + oldal elején találhatóak. Ha a + vezeték nélküli + eszközünkhöz nem létezik natív + &os;-s meghajtó, akkor az NDIS meghajtó + segítségével akár + közvetlenül a &windows;-os + meghajtóját is használhatjuk. + + + Az eszközmeghajtó + beállításával együtt a 802.11 + hálózatok támogatását is be + kell töltenünk a rendszermagba. Ez az &man.ath.4; + meghajtó esetében a legalább a + &man.wlan.4; modul betöltését jelenti. Ez + a modul automatikusan betöltõdik a vezeték + nélküli eszközmeghajtóval együtt. + Emellett még azokra a modulokra is + szükségünk van, amelyek a használni + kívánt biztonsági protokollokhoz + nyújtanak kriptográfiai + támogatást. Ezek hivatalosan a &man.wlan.4; + modul kérésére automatikusan + betöltõdnek, azonban itt most manuálisan + állítjuk be. Erre a célra a + következõ modulokat találjuk: + &man.wlan.wep.4;, &man.wlan.ccmp.4; és + &man.wlan.tkip.4;. A &man.wlan.ccmp.4; és + &man.wlan.tkip.4; meghajtók csak akkor fognak kelleni, + ha a WPA és/vagy a 802.11i biztonsági + protokollokat használjuk. Amennyiben a + hálózatunk teljesen nyitott (azaz nincs + titkosítás), akkor még a &man.wlan.wep.4; + támogatás sem kell. Ezeket a modulok úgy + lehet betölteni a + rendszerindításnál, ha felvesszük a + következõ sorokat a + /boot/loader.conf + állományba: + + wlan_wep_load="YES" +wlan_ccmp_load="YES" +wlan_tkip_load="YES" + + Miután ezt megcsináltuk, egyszerûen + csak indítsuk újra a gépünket. Ha + még nem akarjuk újraindítani a + gépet, akkor a &man.kldload.8; parancs + segítségével akár kézzel is + betölthetjük az elõbb felsorolt + modulokat. + + + Ha nem akarunk modulokat használni, a + mûködéshez szükséges + meghajtókat a rendszermagba is be tudjuk + építeni a következõ sorok + megadásával a rendszermag + beállításait tartalmazó + állományban: + + device ath # Atheros IEEE 802.11 vezeték nélküli hálózati meghajtó +device ath_hal # az Atheros meghajtó hardveres rétege +device ath_rate_sample # John Bicket "SampleRate" vezérlési algoritmusa +device wlan # a 802.11 támogatása (kell!) +device wlan_wep # WEP titkosítás támogatása a 802.11 eszközök számára +device wlan_ccmp # AES-CCMP titkosítás támogatása a 802.11 eszközök számára +device wlan_tkip # TKIP és Michael titkosítás támogatása a 802.11 eszközök számára + + A fentiek megadásával fordítsuk + újra és telepítsük a + rendszermagot, majd indítsuk újra a + számítógépünket. + + + Miután a rendszerünk újra elindult, a + rendszer indítás során generált + üzenetei között találnunk kell + valamennyi információt a felismert + vezeték nélküli eszközökrõl. + Például: + + ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2 +ath0: Ethernet address: 00:11:95:d5:43:62 +ath0: mac 7.9 phy 4.5 radio 5.6 + + + + + + Az infrastrukturális mûködési + mód + + Általában az infrastrukturális avagy a + BBS mód használata a gyakori. Ebben a + mûködési módban adott + számú vezeték nélküli + hozzáférési pont csatlakozik a + hagyományos hálózatra. Mindegyik + vezeték nélküli hálózatnak + saját neve van, amit a hálózat + SSID-jének hívunk. A vezeték + nélküli kliensek ezekhez a vezeték + nélküli hozzáférési pontokhoz + kapcsolódnak. + + + A &os;-s kliensek használata + + + Hogyan keressünk hozzáférési + pontokat + + A hálózatok kereséséhez az + ifconfig paranccsal tudunk nekifogni. + Egy ilyen kérés kiszolgálása + eltarthat néhány pillanatig, mivel ekkor a + rendszernek végig kell bóklásznia az + összes elérhetõ frekvenciát + és azokon hozzáférési pontok + után kutatni. Egyedül a + rendszeradminisztrátor kezdeményezheti ezeket + a kereséseket: + + &prompt.root; ifconfig ath0 up scan +SSID BSSID CHAN RATE S:N INT CAPS +dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPA + + + Csak jelzésû + felületen tudunk hálózatokat keresni. + További keresésekre már nincs + szükség a felület + állapotban tartásához. + + + A keresés során keletkezõ + listában láthatjuk megtalált BBS vagy + IBBS fajtájú hálózatokat. A + hálózatok neve és + SSID-ja mellett még megjelenik egy + BSSID oszlop is, ahol a + hozzáférési pontok MAC-címe + szerepel. A CAPS oszlop az egyes + állomások tulajdonságait adja + meg: + + + + E + + + Extended Service Set (ESS): az + állomás egy infrastrukturális + vagyis BBS hálózat része. + + + + + I + + + IBSS/ad-hoc hálózat: az + állomás egy ad-hoc hálózat + része. + + + + + P + + + Privacy: a BBS-en belül minden keretet + titkosítani kell. Tehát a BSS arra + kötelezi az állomást, hogy WEP, + TKIP vagy AES-CCMP titkosítás + használatával kódolja a + hálózat tagjai között + közlekedõ kereteket. + + + + + S + + + Short Preamble: a hálózatban + rövid bevezetõjeleket használnak (a + 802.11b High Rate/DSSS PHY + elõírásai szerint), ahol a + szokványos 128 bites + szinkronizációs mezõ hossza csak + 56 bit. + + + + + s + + + Short Slot Time: a 802.11g hálózat + rövid slotidõt használ, mivel nem + találhatóak benne régi (802.11b + szabványú) + állomások. + + + + + A jelenleg ismert hálózatok + listáját így tudjuk + lekérdezni: + + &prompt.root; ifconfig ath0 list scan + + Ezt az információt maga az adapter + automatikusan, vagy a felhasználó tudja + frissíteni a + kérés kiadásával. Az elavult + adatok maguktól törlõdnek a + gyorsítótárból, így + idõvel a lista zsugorodni fog, hacsak nem keresünk + folyamatosan hálózatokat. + + + + + Alapvetõ beállítások + + Ebben a szakaszban arra mutatunk példákat, + hogy miként tudunk &os; alatt + titkosítás nélkül használni + egy vezeték nélküli + hálózati kártyát. Miután + elsajátítottuk az itt szereplõ + ismereteket, határozattan javasoljuk, hogy a + vezeték nélküli + hálózatunkat WPA + használatával állítsuk + be. + + A vezeték nélküli + hálózatok beállítása + három elemi lépésbõl + épül fel: a hozzáférési + pont kiválasztása, az állomásunk + hitelesítése és az IP-cím + beállítása. A következõkben + ezeket a lépéseket vitatjuk meg. + + + A hozzáférési pont + kiválasztása + + A legtöbb esetben hagyjuk, hogy a rendszer + válassza ki magának a + különbözõ heurisztikák + alapján a leginkább megfelelõ + hozzáférési pontot. Ez az + alapértelmezett tevékenység, amikor + aktiváljuk a felületet vagy valamilyen + más módon, például + az/etc/rc.conf + állományból hivatkozunk + rá: + + ifconfig_ath0="DHCP" + + Ha viszont több hozzáférési + pont közül mi magunk akarunk kiválasztani + egyet, akkor ezt az SSID megadásával + tehetjük meg: + + ifconfig_ath0="ssid saját_ssid DHCP" + + Amikor olyan környezetben vagyunk, ahol több + hozzáférési pontnak is megegyezik az + SSID-ja (gyakran így próbálják + egyszerûsíteni azt, hogy automatikusan + váltani lehessen köztük), akkor + szükségünk lehet ezt egy adott + eszközhöz hozzárendelni. Ebben az + esetben a hozzáférési pont + BSSID-ját is definiálni kell (és az + SSID-t akár el is hagyhatjuk): + + ifconfig_ath0="ssid saját_ssid bssid xx:xx:xx:xx:xx:xx DHCP" + + Más módokon is képesek vagyunk + szabályozni a hozzáférési + pontok megválasztását, + például a rendszerünk által + vizsgált frekvenciasávok + megadásával. Ez olyankor tud hasznos lenni, + ha többsávos vezeték + nélküli kártyánk van, és + az összes tartomány + végigpásztázása + túlságosan sok idõt venne el. Ezt a + mûvelet a paraméter + megadásával lehet egy konkrét + sávra leszûkíteni, + például a + + ifconfig_ath0="mode 11g ssid saját_ssid DHCP" + + beállítás hatására + a kártya 802.11g módban fog üzemelni, + ami kizárólag csak 2,4 GHz-es + frekvenciákon használható, így + az 5 GHz-es csatornákat egyszerûen + figyelmen kívül hagyjuk. Ugyanezt a + paraméterrel is meg tudjuk + oldani, mivel így a mûködést egy + adott frekvenciára korlátozzuk, valamint a + paraméterrel, ahol a + pásztázandó csatornákat + sorolhatjuk fel. Ezekrõl a + paraméterekrõl részletesebb + leírást az &man.ifconfig.8; man oldalon + találhatunk. + + + + + Hitelesítés + + Miután sikeresen kiválasztottuk a + számunkra megfelelõ + hozzáférési pontot, az adatok + küldéséhez az + állomásunknak valamilyen módon + hitelesítenie kell magát. A + hitelesítés több módon + történhet. Erre a leggyakrabban alkalmazott + sémát nyílt + hitelesítésnek (open authentication) + nevezik, ahol a hálózathoz tetszõleges + állomás csatlakozhat és + kommunikálhat vele. Ezt a típusú + hitelesítést akkor érdemes + használni, amikor a vezeték + nélküli hálózatunkat + teszteljük. Más sémákban az + adatfolyam megindításához egy + titkosítási kézfogás + szükséges, vagy elõre megosztott kulcsok + esetleg jelszavak segítségével, vagy + bonyolultabb sémák esetében itt + még olyan különbözõ + háttérszolgáltatások is + megjelennek, mint például a RADIUS. A + legtöbb felhasználó a nyílt + hitelesítést használja, ami egyben az + alapértelmezés is. A másik + legelterjedtebb beállítás a WPA-PSK, + avagy WPA Personal, amelyrõl lentebb + még szólni fogunk. + + + Ha &apple; &airport; Extreme Base Station + típusú hozzáférési + pontunk van, akkor az osztott kulcsú + hitelesítés mellett egy WEP kulcsot is be + állítanunk. Ezt az + /etc/rc.conf + állományban vagy a &man.wpa.supplicant.8; + programban tehetjük meg. Ha egyetlen &airport; + bázisállomásunk van, akkor az + elérést valahogy így tudjuk + beállítani: + + ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP" + + Általánosságban véve + elmondhatjuk, hogy az osztott kulcsú + hitelesítést inkább + kerüljük el, mivel WEP kulcsok + használatára alapszik és + ráadásul olyan módon, hogy nagyon + könnyû feltörni. Ha már + mindenképpen a WEP mellett kell + döntenünk (például a + régebbi eszközökkel így tudunk + csak kompatibilisek maradni), akkor jobban + járunk, ha a nyílt + hitelesítéshez alkalmazzuk. A WEP + használatát érintõ + további információkat a ban + találjuk. + + + + + IP-cím szerzése DHCP + használatával + + Miután kiválasztottunk egy + hozzáférési pontot és + beállítottuk a hitelesítés + paramétereit, egy IP-cím is kelleni fog a + kommunikációhoz. Az esetek + túlnyomó részében DHCP-n + keresztül kapunk IP-címet a vezeték + nélküli kapcsolatunkhoz. Ezt úgy + érhetjük el, ha egyszerûen megnyitjuk az + /etc/rc.conf állományt + és az alábbihoz hasonló módon + felvesszük a DHCP + paramétert az eszközünk + beállításaihoz: + + ifconfig_ath0="DHCP" + + Így már készen is állunk a + vezeték nélküli felület + használatára: + + &prompt.root; /etc/rc.d/netif start + + Ahogy a felület + mûködõképessé válik, + az ifconfig parancs + segítségével ellenõrizni is + tudjuk az ath0 felület + állapotát: + + &prompt.root; ifconfig ath0 +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps) + status: associated + ssid dlinkap channel 6 bssid 00:13:46:49:41:76 + authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100 + + A status: associated azt jelenti, + hogy sikeresen csatlakoztunk egy vezeték + nélküli hálózathoz (jelen + esetben ez a dlinkap). A + bssid 00:13:46:49:41:76 rész a + hozzáférési pont + MAC-címét tartalmazza. Az + authmode pedig arról + számol be, hogy a kommunikáció nem + titkosított (OPEN). + + + + + Statikus IP-cím + + Ha valami okból nem tudjuk az + IP-címünket DHCP szerveren keresztül + lekérni, beállíthatunk + rögzített IP-címet is. Ehhez nem kell + mást tennünk, mint a korábban + bemutatott DHCP kulcsszót + kicserélni egy konkrét címmel. A + hozzáférési ponthoz megadott + többi paramétert azonban + feltétlenül hagyjuk meg: + + ifconfig_ath0="ssid saját_ssid inet 192.168.1.100 netmask 255.255.255.0" + + + + + WPA + + A WPA (Wi-Fi Protected Access, vagyis védett + wi-fi hozzáférés) a 802.11 + szabványokban használatos biztonsági + protokoll, amelyet a WEP + gyengeségeinek és megfelelõ + hitelesítésének + ellensúlyozására dolgoztak ki. A WPA a + 802.1X hitelesítési protokolljait + erõsíti és az adat + sértetlenségének + megõrzésére a WEP helyett több + titkosítási algoritmust is felhasznál. + A WPA által igényelt egyetlen + titkosítás a TKIP (Temporary Key Integrity + Protocol, vagyis az ideiglenes kulcs integritási + protokoll), amely a WEP által az integritás + ellenõrzésére és a + bejutások észlelésére és + azok reagálására szánt alap RC4 + titkosítást bõvíti ki. A TKIP a + régebbi hardvereken csupán szoftveres + módosítással + mûködõképessé tehetõ. Ez + a kompromisszum a védelmet ugyan növeli, de + még mindig kevés a támadások + megfelelõ elhárításához. A + WPA a TKIP mellett tartalmazza még az AES-CCMP + titkosítást is, és ennek a + használata javasolt. Ezt a + specifikációt gyakran WPA2 (vagy RSN) + néven emlegetik. + + A WPA definiál hitelesítési + és titkosítási protokollokat. A + hitelesítés általában a + következõ két technika egyike + alapján történik: vagy 802.1X és + egy háttérszolgáltatás, + például a RADIUS + segítségével, vagy egy elõre + megosztott kulcsot alkalmazó minimális + kézfogással az állomás és + a hozzáférési pont között. + Az elõbbit gyakran WPA Enterprise-nak, míg az + utóbbit WPA Personalnak hívják. Mivel + a legtöbben nem állítanak be egy komplett + RADIUS alapú szervert a vezeték + nélküli hálózatukhoz, ezért + a WPA-PSK a WPA leginkább elterjedten használt + változata. + + A vezeték nélküli kapcsolat és + a hitelesítés (kulcs alapján vagy + szerverrel) vezérlését a + &man.wpa.supplicant.8; segédprogram végzi. + Ennek a programnak mûködéséhez egy + konfigurációs állományra van + szüksége, amely az + /etc/wpa_supplicant.conf néven + érhetõ el. Errõl az + állományról bõvebb + információt a &man.wpa.supplicant.conf.5; man + oldalán lelhetünk. + + + WPA-PSK + + A WPA-PSK, más néven WPA-Personal, egy + adott jelszó alapján generált + elõre megosztott kulcssal (pre-shared key, PSK) + mûködik, amit a vezeték + nélküli hálózatokban + mesterkulcsént használnak. Ez azt jelenti, + hogy minden egyes vezeték nélküli + felhasználó ugyanazon a kulcson osztozik. A + WPA-PSK olyan kis méretû + hálózatok esetében megfelelõ, + ahol a hitelesítést elvégzõ + szerver használata nem lehetséges vagy nem + oldható meg. + + + Mindig igyekezzünk erõs jelszavakat + használni, melyek kellõen hosszúak + és sokféle karaktert tartalmaznak, + és így nehezebben fejthetõek meg vagy + törhetõek fel. + + + Elõször az + /etc/wpa_supplicant.conf + állományban állítsuk be az + SSID-t és a hálózatunkhoz + tartozó elõre megosztott kulcsot: + + network={ + ssid="freebsdap" + psk="freebsdmall" +} + + Ezután az /etc/rc.conf + állományban jelezzük, hogy a + vezeték nélküli eszközt a WPA + segítségével állítjuk + be és az IP-címet a DHCP szervertõl + kérjük el: + + ifconfig_ath0="WPA DHCP" + + Innentõl már fel is tudjuk + éleszteni a felületet: + + &prompt.root; /etc/rc.d/netif start +Starting wpa_supplicant. +DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5 +DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6 +DHCPOFFER from 192.168.0.1 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.1 +bound to 192.168.0.254 -- renewal in 300 seconds. +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100 + + Kézzel is megpróbálhatjuk + elindítani az elõbb + elkészített + /etc/wpa_supplicant.conf + állomány használatával: + + &prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf +Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz) +Associated with 00:11:95:c3:0d:ac +WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP] + + A következõ parancs a + dhclient indítása legyen, + amivel megszerezzük a DHCP szervertõl az + IP-címünket: + + &prompt.root; dhclient ath0 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.1 +bound to 192.168.0.254 -- renewal in 300 seconds. +&prompt.root; ifconfig ath0 +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100 + + + Ha az /etc/rc.conf + állományban szerepel a + ifconfig_ath0="DHCP" sor, akkor + egyáltalán nem szükséges a + dhclient parancs manuális + kiadása, mivel a dhclient + magától el fog indulni, miután a + wpa_supplicant egyeztette a + kulcsokat. + + + Amikor a DHCP nem használható, + megadhatunk a statikus IP-címet is, miután a + wpa_supplicant sikeresen + lebonyolította a hitelesítést: + + &prompt.root; ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0 +&prompt.root; ifconfig ath0 +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36 + protmode CTS roaming MANUAL bintval 100 + + Ha egyáltalán nem használunk DHCP + szervert, akkor nekünk kell beállítani + az alapértelmezett átjárót + és a névszervert is: + + &prompt.root; route add default alapértelmezett_átjáró +&prompt.root; echo "nameserver névszerver" >> /etc/resolv.conf + + + + + WPA és EAP-TLS + + A másik mód, ahogy a WPA + használható, az a 802.1X + hitelesítési szerveren keresztül + történik, és ebben az esetben a WPA + neve WPA-Enterprise. Ez sokkal biztonságosabb a + WPA-Personal elõre kiosztott kulcsaival szemben. A + WPA-Enterprise az EAP (Extensible Authentication Protocol, + azaz Bõvíthetõ hitelesítési + protokoll) használatán alapszik. + + Az EAP önmaga nem végez + titkosítást, mivel úgy + alakították ki, hogy magát az EAP + protokollt kell egy titkosított járaton + keresztül bújtatni. Az EAP + hitelesítési módszereinek több + típusát is kidolgozták, melyek + közül a legismertebbek az EAP-TLS, EAP-TTLS + valamint a EAP-PEAP. + + Az EAP-TLS (EAP szállítási + rétegbeli védelemmel) a vezeték + nélküli világban egy nagyon jól + támogatott hitelesítési protokoll, + mivel ez volt az elsõ EAP módszer, amit a + Wi-fi + szövetség jóváhagyott. + Az EAP-TLS mûködéséhez + három tanúsítvány kell: egy + hitelesítõ hatóságtól + (Certificate Authority, CA), egy a + hitelesítést végzõ + szervertõl és egy a klienstõl. Ezzel az + EAP módszerrel mind a hitelesítõ + szerver, mind a vezeték nélküli kliens + külön képviselik a saját + tanúsítványaikat, és ezeket a + szervezetünket hitelesítõ + hatóság aláírása + alapján ellenõrzik. + + A korábbiaknak megfelelõen a + beállításokat szintén az + /etc/wpa_supplicant.conf + állományon keresztül + végezzük el: + + network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=TLS + identity="loader" + ca_cert="/etc/certs/cacert.pem" + client_cert="/etc/certs/clientcert.pem" + private_key="/etc/certs/clientkey.pem" + private_key_passwd="freebsdmallclient" +} + + + + Ez a mezõ adja meg a hálózat + nevét (SSID). + + + + Itt az RSN (IEEE 802.11i), vagyis a WPA2 + protokollt használjuk. + + + + A key_mgmt sor a + kulcskezelési protokollt adja meg. A mi + esetünkben ez a WPA lesz, EAP + hitelesítéssel: + WPA-EAP. + + + + Ebben a mezõben az EAP módszert + nevezzük meg a kapcsolathoz. + + + + Az identity mezõ az EAP + esetén használt azonosítót + tartalmazza. + + + + A ca_cert mezõ a + hitelesítõ hatóság + tanúsítványát + tároló állomány + elérési útvonalát adja + meg. Ezt a szerver + tanúsítványának + hitelesítéséhez + használjuk. + + + + A client_cert sor a kliens + tanúsítványát + tartalmazó állomány + elérési útvonalát adja + meg. Ennek a vezeték nélküli + hálózat minden egyes kliense + esetében egyedinek kell lennie. + + + + A private_key mezõ a + kliens tanúsítvánáynak + privát kulcsát tároló + állomány elérési + útját adja meg. + + + + A private_key_passwd mezõ + a privát kulcshoz tartozó jelmondatot + rögzíti. + + + + Az /etc/rc.conf + állományba vegyük fel a + következõ sort: + + ifconfig_ath0="WPA DHCP" + + A következõ lépés a + felület felébresztése lesz az + rc.d eszköz + segítségével: + + &prompt.root; /etc/rc.d/netif start +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100 + + Természetesen, ahogy azt már az + elõbbiekben is megmutattuk, mindezt manuálisan + is el tudjuk végezni a + wpa_supplicant és az + ifconfig parancsok + segítségével. + + + + + WPA és EAP-TTLS + + Az EAP-TLS használatakor mind a + hitelesítést végzõ szervernek + és kliensnek is kell + tanúsítvány, azonban az EAP-TTLS ( + szállítási rétegbeli + védelem EAP tunnelen keresztül) + esetében a kliensnél ez elhagyható. + Ez a módszer nagyjából olyan, mint + amit a webes oldalak csinálnak, ahol a webszerverek + egy védett SSL tunnelt képeznek még + akkor is, amikor a látogatók nem + rendelkeznek kliens oldali + tanúsítvánnyal. Az EAP-TTLS egy + titkosított TLS tunnelen keresztül védi + le a hitelesítési adatok + forgalmát. + + Ezt ismét az + /etc/wpa_supplicant.conf + állományon keresztül tudjuk + beállítani: + + network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=TTLS + identity="test" + password="test" + ca_cert="/etc/certs/cacert.pem" + phase2="auth=MD5" +} + + + + Ebben a mezõben az EAP módszert + állítjuk be a kapcsolathoz. + + + + Az identity mezõ a + titkosított TLS tunnelen keresztül az EAP + hitelesítésnél felhasznált + azonosítót adja meg. + + + + A password tartalmazza az EAP + hitelesítésnél használt + jelmondatot. + + + + A ca_cert mezõ hivatkozik + a hitelesítõ hatóság + tanúsítványát + tartalmazó állományra. Ez az + állomány kell a szerver + tanúsítványának + ellenõrzéséhez. + + + + Ebben a mezõben a titkosított TLS + tunnelben használt hitelesítési + módszer nevezzük meg. Jelen + esetünkben ez az EAP MD5-Challenge + használatával. A belsõ + hitelesítés + fázisát gyakran csak + phase2-nak (2. fázisnak) + hívják. + + + + Mindezek mellett még a következõ sort + is vegyük fel az /etc/rc.conf + állományba: + + ifconfig_ath0="WPA DHCP" + + Ezután hozzuk mûködésbe a + felületet: + + &prompt.root; /etc/rc.d/netif start +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100 + + + + + WPA és EAP-PEAP + + A PEAP (Védett EAP) az EAP-TTLS egyik + alternatívájaként jött + létre. A PEAP módszernek két + változata van, melyek közül a + leggyakoribb a PEAPv0/EAP-MSCHAPv2. A + leírás további részében + a PEAP elnevezéssel erre az EAP módszerre + fogunk hivatkozni. A PEAP az EAP-TLS után a + leginkább alkalmazott szabvány, más + szóval, ha a hálózatunkban + többféle operációs rendszer is + megtalálható, akkor az EAP-TLS után + valószínûleg a PEAP lesz a + másik, amit mindegyik ismerni fog. + + A PEAP hasonló az EAP-TTLS-hez: szerver oldali + tanúsítványokkal hitelesíti a + klienseket és titkosított TLS tunnelt hoz + létre a kliens és a + hitelesítést végzõ szerver + között, amivel segíti megóvni a + hitelesítési információkat. + Biztonság szempontjából az EAP-TTLS + és a PEAP között az a + különbség, hogy a PEAP + hitelesítés a felhasználói + nevet titkosítatlanul küldi és csak a + jelszó megy át a titkosított TLS + tunnelen. Az EAP-TTLS egyaránt a TLS tunnelt + használja mind a felhasználói + név, mind a jelszó esetében. + + Az EAP-PEAP beállításait az + /etc/wpa_supplicant.conf + állományba kell felvenni: + + network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=PEAP + identity="test" + password="test" + ca_cert="/etc/certs/cacert.pem" + phase1="peaplabel=0" + phase2="auth=MSCHAPV2" +} + + + + Ebben a mezõben megadjuk, az EAP + módszert használjuk a + kapcsolathoz. + + + + Az identity mezõ az EAP + hitelesítés során a + titkosított TLS tunnelben + átküldött azonosítót + tartalmazza. + + + + A password mezõ az EAP + hitelesítés során használt + jelmondatot definiálja. + + + + A ca_cert mezõ a + hitelesítõ hatóság + tanúsítványát + tartalmazó állomány + elérési útját adja meg. + Ez az állomány kell a szerver + tanúsítványának + ellenõrzéséhez. + + + + Ez a mezõ a hitelesítés + elsõ fázisának (vagyis a TLS + tunnel) paramétereit tartalmazza. A + hitelesítést végzõ + szervertõl függõen a + hitelesítéshez meg kell adnunk bizonyos + címkéket. A legtöbb esetben a + címke a kliens oldali EAP + titkosítás lesz, amit a + peaplabel=0 + használatával állítunk be. + A részleteket a &man.wpa.supplicant.conf.5; man + oldalon olvashatjuk. + + + + Ebben a mezõben a titkosított TLS + tunnelben alkalmazott hitelesítést + protokollt nevezzük meg. A PEAP esetében + ez az auth=MSCHAPV2 lesz. + + + + A következõket kell még + hozzátennünk az + /etc/rc.conf + állományhoz: + + ifconfig_ath0="WPA DHCP" + + Ezután már mûködésbe is + hozhatjuk a felületet: + + &prompt.root; /etc/rc.d/netif start +Starting wpa_supplicant. +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPREQUEST on ath0 to 255.255.255.255 port 67 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit + txpowmax 36 protmode CTS roaming MANUAL bintval 100 + + + + + + WEP + + A WEP (Wired Equivalent Privacy, azaz kábellel + egyenértékû titkosság) az eredeti + 802.11 szabvány része. Nincs külön + hitelesítési mechanizmusa, csupán a + hozzáférés-vezérlés egy + gyenge formájával találkozhatunk benne, + amit azonban könnyen fel lehet törni. + + A WEP ifconfig parancs + használatán keresztül + állítható be: + + &prompt.root; ifconfig ath0 ssid saját_hálózat wepmode on weptxkey 3 wepkey 3:0x3456789012 \ + inet 192.168.1.100 netmask 255.255.255.0 + + + + A weptxkey utal arra, hogy a + küldés során WEP kulcsot + használunk. Itt most egy harmadik kulcsot + használtunk, amelynek egyeznie kell a + hozzáférési pont + beállításaival. + + + + A wepkey után + következik a kiválasztott WEP kulcs. + index:kulcs alakban kell + megadni, és ha itt nem adunk meg indexet, akkor + azzal az 1 indexû kulcsot + állítjuk be. Úgyis + fogalmazhatnánk, hogy az indexet csak olyankor + kell megadni, amikor nem az elsõ kulcsot akarjuk + használni. + + + A 0x3456789012 + értéket a + hozzáférési pontnál + beállított kulcsra kell + beállítani. + + + + + Ha érdekelnek minket a további + részletek, akkor bátran lapozzuk fel az + &man.ifconfig.8; parancs man oldalát. + + A wpa_supplicant + segédprogramot is bevonhatjuk a vezeték + nélküli felületek WEP alapú + használatába. A fenti példát a + következõ módon tudjuk leírni az + /etc/wpa_supplicant.conf + állományban: + + network={ + ssid="sajat_halozat" + key_mgmt=NONE + wep_key3=3456789012 + wep_tx_keyidx=3 +} + + Majd: + + &prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf +Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz) +Associated with 00:13:46:49:41:76 + + + + + + + Az ad-hoc mûködési mód + + Az IBSS vagy más néven ad-hoc módot + pont-pont típusú kapcsolatok + kialakítására tervezték. + Például, ha az A és a + B gépek között egy ad-hoc + típusú hálózatot akarunk + létesíteni, akkor egyszerûen csak ki kell + választanunk két IP-címet és egy + SSID-t. + + Így állítjuk be az A + gépet: + + &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0 +&prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 + ether 00:11:95:c3:0d:ac + media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>) + status: associated + ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac + authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100 + + Az adhoc paraméterrel utalunk + arra, hogy a felület most IBSS módban + mûködik. + + A B gépen ezután már + képesek vagyunk észlelni az A + gépet: + + &prompt.root; ifconfig ath0 up scan + SSID BSSID CHAN RATE S:N INT CAPS + freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 IS + + A kimenetben szereplõ I is + megerõsíti, hogy az A gépet + ad-hoc módban érjük el. Így + már csak a B gépet kell + beállítanunk egy másik + IP-címmel: + + &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0 +&prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>) + status: associated + ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac + authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100 + + Most már mind az A és + mind a B készen áll az adatok + cseréjére. + + + + + &os; alapú hozzáférési + pontok + + A &os; képes hozzáférési + pontként (Access Point, AP) is üzemelni, így + nem kell külön hardveres + hozzáférési pontot + vásárolnunk vagy ad-hoc hálózatot + használnunk. Ez különösen akkor hasznos, + amikor a &os; gépet egy másik + hálózat (például az internet) + felé állítottuk be + átjárónak. + + + Alapvetõ beállítások + + Mielõtt nekiállnánk a &os;-s + gépünket hozzáférési pontnak + beállítani, egy olyan rendszermagra lesz + szükségünk, amely tartalmazza a + megfelelõ vezeték nélküli + támogatást a kártyánkhoz. + Emellett az alkalmazni kívánt biztonsági + protokollok támogatását is bele kell + építenünk. Ennek részleteit + lásd a ban. + + + Jelenleg az NDIS meghajtón keresztül + használt &windows;-os meghajtók nem teszik + lehetõvé hozzáférési pontok + kialakítását. Egyedül a + vezeték nélküli eszközök + natív &os;-s meghajtói ismerik a + hozzáférési pont módot. + + + Ahogy betöltöttük a vezeték + nélküli hálózatok + támogatását, egybõl ellenõrizni + is tudjuk, hogy a vezeték nélküli + eszközünk használható-e + hozzáférési pontként (avagy + hostap módban): + + &prompt.root; ifconfig ath0 list caps +ath0=783ed0f<WEP,TKIP,AES,AES_CCM,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA1,WPA2,BURST,WME> + + A fenti kimenetben láthatjuk a + kártyánk tulajdonságait. A + HOSTAP szó arról + tanúskodik, hogy a vezeték nélküli + kártyánk képes + hozzáférési pontként viselkedni. + Mellette még a különféle + támogatott titkosítási módszerek + is láthatóak: WEP, TKIP, WPA2 stb. Ezekbõl + az információkból tudjuk + kideríteni, hogy a hozzáférési + pontunkon milyen titkosítási protokollokat + tudunk használni. + + A vezeték nélküli eszközünket + most már átállíthatjuk + hozzáférési pontnak, amihez megadunk + még egy SSID-t és egy IP-címet: + + &prompt.root; ifconfig ath0 ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0 + + Az ifconfig parancs ismételt + használatával le is tudjuk kérdezni az + ath0 felület + állapotát: + + &prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 + ether 00:11:95:c3:0d:ac + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode OPEN privacy OFF txpowmax 38 bmiss 7 protmode CTS burst dtimperiod 1 bintval 100 + + A hostap paraméterbõl + kiderül, hogy a felület + hozzáférési pont módban + van. + + Ha az /etc/rc.conf + állományban megadjuk a következõ sort, + akkor a felület beállítása a + rendszer indításakor magától + megtörténik: + + ifconfig_ath0="ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0" + + + + + Hitelesítés vagy titkosítás + nélküli hozzáférési + pontok + + Habár a hozzáférési pontok + mûködtetése nem javasolt + hitelesítés vagy titkosítás + nélkül, ebben a módban könnyen meg + tudunk gyõzõdni a hozzáférési + pontunk használhatóságáról. + Ez a típusú konfiguráció + ezenkívül még fontos szerepet + játszik a klienseken felbukkanó hibák + kiszûrésében is. + + Miután sikerült az elõbbiekben + bemutatottak alapján beállítani a + hozzáférési pontunkat, egy másik + vezeték nélküli géprõl + rögtön meg is kezdhetjük a + keresését: + + &prompt.root; ifconfig ath0 up scan +SSID BSSID CHAN RATE S:N INT CAPS +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 ES + + Láthatjuk, hogy a kliens megtalálta a + hozzáférési pontot és tudunk is + rá kapcsolódni: + + &prompt.root; ifconfig ath0 ssid freebsdap inet 192.168.0.2 netmask 255.255.255.0 +&prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 + inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 + ether 00:11:95:d5:43:62 + media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps) + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100 + + + + + WPA titkosítást használó + hozzáférési pontok + + Ebben a szakaszban a &os;-s + hozzáférési pontunkat WPA + titkosítással állítjuk be. A WPA + és a WPA alapú kliensek + beállításának részleteit a + ban + találjuk. + + A WPA titkosítást használó + hozzáférési pontokon a + hostapd démon foglalkozik a + kliensek hitelesítésével és a + kulcsok kezelésével. + + A továbbiakban az összes + beállítást egy olyan &os;-s gépen + végezzük el, amely + hozzáférési pontként + mûködik. Ahogy sikerült + beállítanunk a hozzáférési + pont módot, az /etc/rc.conf + állományban a következõ sor + segítségével könnyen meg tudjuk + oldani, hogy az hostapd + démon a rendszerrel együtt magától + elinduljon: + + hostapd_enable="YES" + + Mielõtt megpróbálnánk + beállítani a hostapd + démont, ne felejtsük el elvégezni a ban említett + alapvetõ beállításokat sem. + + + WPA-PSK + + A WPA-PSK használatát olyan kis + méretû hálózatok + számára szánják, ahol egy + külön hitelesítõ szervert + alkalmazása nem lehetséges vagy nem + kívánatos. + + A konfiguráció az + /etc/hostapd.conf + állományon keresztül + történik: + + interface=ath0 +debug=1 +ctrl_interface=/var/run/hostapd +ctrl_interface_group=wheel +ssid=freebsdap +wpa=1 +wpa_passphrase=freebsdmall +wpa_key_mgmt=WPA-PSK +wpa_pairwise=CCMP TKIP + + + + Ebben a mezõben jelöljük ki a + hozzáférési pontként + használt vezeték nélküli + felületet. + + + + Ebben a mezõben adjuk meg a + hostapd futtatása + során keletkezõ üzenetek + részletességét. A + példában szereplõ + 1 érték ennek a + legkisebb szintjét jelöli. + + + + A ctrl_interface mezõ + megadja a hostapd + által használt könyvtár + elérési útvonalát, amiben + azokat a tartományokhoz tartozó socketeket + tároljuk, amelyeken keresztül olyan + programokkal tudunk kommunikálni, mint + például a &man.hostapd.cli.8;. Itt az + alapértelmezett értéket + írtuk be. + + + + A ctrl_interface_group sor + beállítja azt a csoportot (ez jelen + esetben a wheel), amin + keresztül a vezérlõfelület + (control interface) állományaihoz + hozzá tudunk férni. + + + + Ebben a mezõben a hálózat + nevét állítjuk be. + + + + A wpa mezõvel + engedélyezzük a WPA + használatát és megadjuk, hogy + melyik WPA hitelesítési protokollt + alkalmazzuk. Az itt szereplõ 1 + érték a WPA-PSK hitelesítés + állítja be a + hozzáférési pont + számára. + + + + A wpa_passphrase mezõ a WPA + hitelesítéshez szükséges ASCII + jelmondatot tartalmazza. + + + Lehetõleg mindig erõs jelszavakat + használjunk, amelyek kellõen + hosszúak és sokféle karaktert + tartalmaznak, így nehezebben fejthetõek + meg vagy törhetõek fel. + + + + + A wpa_key_mgmt sor a kulcsok + kezelésére használt protokollt + definiálja. Ez a mi esetünk most a + WPA-PSK. + + + + A wpa_pairwise mezõ a + hozzáférési pont által + elfogadott titkosítási algoritmusokat + határozza meg. A példában a TKIP + (WPA) és CCMP (WPA2) titkosítást is + támogatjuk. A CCMP titkosítás a + TKIP egyik alternatívája, és + lehetõség szerint használjuk ezt. A + TKIP csak olyan állomások esetében + javasolt, amelyek nem támogatják a CCMP + használatát. + + + + A következõ lépés a + hostapd + elindítása: + + &prompt.root /etc/rc.d/hostapd forcestart + + &prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290 + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 + ether 00:11:95:c3:0d:ac + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100 + + A hozzáférési pont mostantól + mûködik, innentõl a kliensek már + képesek csatlakozni hozzá, bõvebben + lásd a ban. A + hozzáférési ponthoz tartozó + állomásokat az ifconfig + ath0 list sta paranccsal + tudjuk listázni. + + + + + + WEP titkosítást használó + hozzáférési pontok + + A WEP titkosítást nem javasoljuk a + hozzáférési pontok esetében, mivel + nem tartalmaz semmilyen hitelesítési + mechanizmust és könnyen feltörhetõ. + Egyes régebbi vezeték nélküli + kártyák azonban csak a WEP által + nyújtott védelmet ismerik, ezért az + ilyenek csak olyan hozzáférési pontokhoz + tudnak csatlakozni, amelyek vagy nem használnank + hitelesítést és + titkosítást, vagy erre a WEP protokollt + használják. + + A vezeték nélküli eszközt + tegyük hozzáférési pont módba + és állítsuk be neki a megfelelõ + SSID-t és IP-címet: + + &prompt.root; ifconfig ath0 ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g mediaopt hostap \ + inet 192.168.0.1 netmask 255.255.255.0 + + + + A weptxkey + beállítás után adjuk meg a + küldéshez használt WEP kulcsot. Itt a + harmadik kulcsot adtuk meg (vegyük észre, hogy + a kulcsok számozása az 1 + értékkel kezdõdik). Ez a + paramétert az adatok tényleges + titkosításához kell megadni. + + + + A wepkey a kiválasztott WEP + kulcs beállítását jelöli, + aminek a formátuma + index:kulcs. Ha itt nem adunk + meg indexet, akkor automatikusan az elsõ kulcsot + állítjuk be. Ezért talán + mondanunk sem kell, hogy az indexet csak akkor kell + megadni, ha nem az elsõ kulcsot akarjuk + használni. + + + + A ath0 felület + állapotának megtekintéséhez adjuk + ki megint az ifconfig parancsot: + + &prompt.root; ifconfig ath0 + ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 + ether 00:11:95:c3:0d:ac + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> + status: associated + ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac + authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100 + + Egy másik vezeték nélküli + géprõl most már + megpróbálhatjuk megkeresni a + hozzáférési pontot: + + &prompt.root; ifconfig ath0 up scan +SSID BSSID CHAN RATE S:N INT CAPS +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS + + Láthatjuk, hogy a kliens megtalálta a + hozzáférési pontot, és a + megfelelõ paraméterekkel (kulcs stb.) képes + kapcsolódni hozzá a ban leírtak + szerint. + + + + + + Hibaelhárítás + + Ha valamilyen gondunk lenne a vezeték + nélküli hálózatok + használatával, akad néhány + lépés, amivel esetleg fel tudjuk deríteni a + hiba okát. + + + + Ha nem látjuk a hozzáférési + pontot a pásztázás után, + ellenõrizzük, hogy a vezeték + nélküli eszközt véletlenül nem + korlátoztuk-e le bizonyos csatornákra. + + + + Ha nem tudunk csatlakozni a + hozzáférési ponthoz, akkor + egyeztessük vele az állomás egyes + paramétereit, beleértve a + hitelesítési sémát és a + biztonsági protokollokat. Minél jobban + egyszerûsítsük le a + konfigurációkat. Ha WPA vagy WEP + titkosítást használunk, akkor a + hozzáférési ponton + állítsunk be nyílt + hitelesítést és kapcsoljuk ki a + titkosítást, majd nézzük meg, hogy + így eljut-e hozzánk valamilyen + forgalom. + + + + Ahogy sikerült csatlakozunk a + hozzáférési ponthoz, a + biztonsági beállításokat olyan + egyszerû eszközökkel próbáljuk + meg diagnosztizálni, mint például a + &man.ping.8;. + + A wpa_supplicant + segédprogrammal tudunk nyomkövetést + végezni. A opció + megadásával indítsuk el + manuálisan és ellenõrizzük a + rendszernaplókat. + + + + Vannak alacsonyabb szintû nyomkövetési + lehetõségek is. A 802.11 protokollt + támogató rétegben is tudunk + engedélyezni nyomkövetési üzeneteket + a /usr/src/tools/tools/net80211 + könyvtárban található + wlandebug program + segítségével. Például + a + + &prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc + net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan> + + paranccsal a hozzáférési pontok + kereséséhez és a 802.11 protokollon + belül a kapcsolat megszervezéséhez + szükséges kézfogásokhoz + kapcsolódó konzolüzeneteket tudjuk + engedélyezni. + + A 802.11 rétegben rengeteg hasznos + statisztikát találhatunk. Mindezeket a + wlanstats eszközzel tudjuk + kiíratni. Ezeknek a statisztikáknak a 802.11 + réteg összes hibáját be kell + tudniuk azonosítaniuk. Vigyázzunk azonban, + mert az eszközmeghajtókban a 802.11 réteg + alatt rejlõ bizonyos hibák ilyenkor nem jelennek + meg. Az eszközfüggõ problémák + felderítésével kapcsolatban a + megfelelõ meghajtó + dokumentációját olvassuk + át. + + + + + Amennyiben a fenti tanácsok mentén sem + sikerül orvosolnunk a hibát okát, + küldjünk egy hibajelentést és + mellékeljük hozzá a fentebb tárgyalt + eszközök által gyártott + kimeneteket. + + + + + + + + + Pav + Lucistnik + Írta: + +
pav@FreeBSD.org
+
+
+
+
+ + Bluetooth + + Bluetooth + + + Bevezetés + + A Bluetooth egy olyan vezeték nélküli + technológia, amellyel a 2,4 GHz-es + frekvenciatartományban tudunk személyi + hálózatokat létrehozni 10 méteren + belül. Az ilyen típusú + hálózatok általában alkalmi + jelleggel keletkeznek különféle + hordozható eszközök, mint például + mobiltelefonok, kézi + számítógépek és laptopok + között. Eltérõen más + népszerû vezeték nélküli + technológiáktól, például a + wi-fitõl, a Bluetooth magasabb szintû + szolgáltási profilokat is felajánl: + FTP-szerû állományszervereket, az + állományok áttolását, hang + átküldését, soros vonali + emulációt és még sok minden + mást. + + A &os;-ben megvalósított Bluetooth + protokollkészlet a Netgraph rendszerre + építkezik (lásd &man.netgraph.4;). A + Bluetooth alapú USB-s hardverzárak széles + körét támogatja az &man.ng.ubt.4; + meghajtó. A Broadcom BCM2033 chipre + épített Bluetooth eszközöket az + &man.ubtbcmfw.4; és az &man.ng.ubt.4; meghajtók + támogatják. A 3Com Bluetooth PC Card 3CRWB60-A + eszközt az &man.ng.bt3c.4; meghajtó + támogatja. A soros és UART alapú Bluetooth + eszközöket a &man.sio.4;, &man.ng.h4.4; és + &man.hcseriald.8; ismeri. Ebben a szakaszban a Bluetooth + alapú USB-s hardverzárak használatát + mutatjuk be. + + + + + Az eszköz csatlakoztatása + + Alapértelmezés szerint a Bluetooth + eszközmeghajtók modulként + érhetõek el. Az eszköz csatlakoztatása + elõtt a megfelelõ meghajtót be kell + töltenünk a rendszermagba: + + &prompt.root; kldload ng_ubt + + Ha a Bluetooth eszköz már a rendszer + indításakor is jelen van, akkor a modult az + /boot/loader.conf állományon + keresztül is betölthetjük: + + ng_ubt_load="YES" + + Dugjuk be az USB-s hardverzárunkat. Az + alábbihoz hasonló kimenet fog keletkezni a + konzolon (vagy a rendszernaplóban): + + ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 +ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 +ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, + wMaxPacketSize=49, nframes=6, buffer size=294 + + + A &os; 6.0 valamint a &os; 5.X ágon + belül az 5.5 elõtti változatokban a Bluetooth + protokollkészletet kézzel kell beüzemelni. + A &os; 5.5, illetve 6.1 és attól + újabb változatokban ezt már a + &man.devd.8; magától elvégzi. + + Másoljuk az + /usr/share/examples/netgraph/bluetooth/rc.bluetooth + állományt valamilyen alkalmas helyre, + például az /etc/rc.bluetooth + könyvtárba. Ez a szkript fogja végezni a + Bluetooth használatához szükséges + protokollkészlet elindítását + és leállítását. Jó + ötlet leállítani az eszköz + eltávolítása elõtt, de ha elhagyjuk, + (általában) nem okoz végzetes hibát. + Az indításkor a következõ kimenetet + kapjuk: + + &prompt.root; /etc/rc.bluetooth start ubt0 +BD_ADDR: 00:02:72:00:d4:1a +Features: 0xff 0xff 0xf 00 00 00 00 00 +<3-Slot> <5-Slot> <Encryption> <Slot offset> +<Timing accuracy> <Switch> <Hold mode> <Sniff mode> +<Park mode> <RSSI> <Channel quality> <SCO link> +<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> +<Paging scheme> <Power control> <Transparent SCO data> +Max. ACL packet size: 192 bytes +Number of ACL packets: 8 +Max. SCO packet size: 64 bytes +Number of SCO packets: 8 + + + + + HCI + + + Host Controller Interface (HCI) + + A Host Controller Interface (HCI) egy parancsfelületet + nyújt a mûködési sáv + vezérlõjéhez (baseband controller) és + az összeköttetések kezelõjéhez + (link manager), valamint hozzáférést a + hardverállapot és -vezérlõ + regiszterekhez. Ez a felület egy egységes + módszert szolgáltat a Bluetooth + mûködési sávjához tartozó + tulajdonságok eléréséhez. Az + eszközön üzemelõ HCI réteg a + Bluetooth hardverben található HCI firmware-rel + vált adatokat és parancsokat. A Host Controller + Transport Layer (vagyis a fizikai busz) meghajtója mind a + két HCI réteget és a kettejük + közti információcserét is + elérhetõvé teszi. + + Az egyes Bluetooth eszközökhöz + létrejön egy-egy hci + típusú Netgraph-beli csomópont. Ez a HCI + csomópont általában a Bluetooth + eszközmeghajtó csomópontjához + (lefelé) és az L2CAP csomóponthoz + (felfelé) csatlakozik. Az összes HCI mûveletet + a HCI csomóponton kell elvégezni és nem az + eszközmeghajtóhoz tartozón. A HCI + csomópont alapértelmezett neve a + devicehci. Ezekrõl többet az + &man.ng.hci.4; man oldalán tudhatunk meg. + + Az egyik legáltalánosabb feladat a Bluetooth + eszközök esetében a közelben levõ + további eszközök felderítése. + Ezt a mûveletet + tudakozódásnak + (inquiry) nevezik. A tudakozódást + és az összes többi HCI-hez + kapcsolódó mûveletet a &man.hccontrol.8; + segédprogrammal tudjuk elvégezni. A lentebb + látható példa azt mutatja meg, hogyan + tudunk Bluetooth eszközöket keresni egy adott + távolságon belül. Az elérhetõ + eszközök listáját néhány + másodpercen alatt megkapjuk. A távoli azonban + eszközök csak akkor fognak válaszolni, ha + felderíthetõ + (discoverable) módban vannak. + + &prompt.user; hccontrol -n ubt0hci inquiry +Inquiry result, num_responses=1 +Inquiry result #0 + BD_ADDR: 00:80:37:29:19:a4 + Page Scan Rep. Mode: 0x1 + Page Scan Period Mode: 00 + Page Scan Mode: 00 + Class: 52:02:04 + Clock offset: 0x78ef +Inquiry complete. Status: No error [00] + + A BD_ADDR a Bluetooth eszköz egyedi + címe, hasonló a hálózati + kártyák MAC-címéhez. Erre a + címre lesz szükség ahhoz, hogy a + továbbiakban kommunikálni tudjunk az + eszközzel. Emberek számára + értelmezhetõ nevet is hozzá tudunk rendelni a + BD_ADDR címhez. Az + /etc/bluetooth/hosts állomány + tartalmazza a Bluetooth eszközökre vonatkozó + információkat. A következõ + példában azt láthatjuk, hogyan tudunk + beszédesebb nevet adni egy távoli + eszköznek: + + &prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 +BD_ADDR: 00:80:37:29:19:a4 +Name: Pav T39-ese + + Amikor tudakozódni kezdünk a távoli + Bluetooth eszközök jelenléte felõl, a + gépünket sajat.gep.nev (ubt0) + néven fogják látni. Ez a helyi + eszközhöz rendelt név bármikor + megváltoztatható. + + A Bluetooth rendszer lehetõség ad pont-pont + (természetesen csak két Bluetooth egység + között) vagy pont-multipont típusú + kapcsolatok kiépítésére. A + pont-multipont kapcsolat esetén a kapcsolaton több + Bluetooth eszköz osztozik. A most következõ + példában megláthatjuk, hogyan kell az + aktív mûködési sávban + lekérdezni a helyi eszköz létrejött + kapcsolatait: + + &prompt.user; hccontrol -n ubt0hci read_connection_list +Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State +00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN + + A kapcsolat azonosítója + (connection handle) akkor hasznos, amikor egy sávbeli + kapcsolatot akarunk lezárni. Ezt általában + nem kell kézzel megcsinálni. A rendszer + magától lezárja az inaktív + sávbeli kapcsolatokat. + + &prompt.root; hccontrol -n ubt0hci disconnect 41 +Connection handle: 41 +Reason: Connection terminated by local host [0x16] + + A hccontrol help paranccsal tudjuk + lekérdezni az elérhetõ HCI parancsokat. A + legtöbb HCI parancs végrehajtásához + nem kellenek rendszeradminisztrátori + jogosultságok. + + + + L2CAP + + + Logical Link Control and Adaptation Protocol + (L2CAP) + + A Logical Link Control and Adaptation Protocol (L2CAP) a + kapcsolat-orientált és a kapcsolat + nélküli adatszolgáltatásokért + felelõs a felsõbb rétegek felé, valamit + támogatja a protokollok + többszörözését, a darabolást + és az összerakást. Az L2CAP a magasabb + szintû protokollok és az alkalmazások + számára egészen 64 kilobyte + méretig lehetõvé teszi az adatcsomagok + küldését és + fogadását. + + A L2CAP a csatorna (channel) + fogalmára építkezik. A csatorna egy + logikai kapcsolatot képvisel a mûködési + sávon belüli kapcsolat felett. Mindegyik + csatornához egyetlen protokoll kötõdik, egy a + többhöz alapon. Több csatorna is tarthozhat + ugyanahhoz a protokollhoz, de egy csatornán nem + használhatunk több protokollt. A csatornákon + keresztül érkezõ L2CAP csomagok ezután a + megfelelõ felsõbb rétegbeli protokollokhoz + kerülnek. Több csatorna osztozhat ugyanazon a + sávbeli kapcsolaton. + + Minden Bluetooth eszközhöz létrejön + egy l2cap típusú + Netgraph-csomópont. Az L2CAP csomópont + általában egy Bluetooth HCI csomóponthoz + (lefelé) és egy Bluetooth sockethez + (felfelé) kapcsolódik. Az L2CAP csomópont + alapértelmezett neve devicel2cap. + Errõl részletesebben az &man.ng.l2cap.4; man oldal + világosít fel minket. + + Ezen a szinten hasznos parancsnak bizonyulhat az + &man.l2ping.8;, amivel más eszközöket tudunk + pingelni. Elõfordulhat, hogy egyes Bluetooth + implementációk nem válaszolnak semmilyen + feléjük küldött adatra, így az + alábbi példában is szereplõ 0 + bytes teljesen normális. + + &prompt.root; l2ping -a 00:80:37:29:19:a4 +0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0 + + Az &man.l2control.8; segédprogram + használható az L2CAP csomópontok + különbözõ mûveleteinek + kivitelezésére. Ebben a példában a + helyi eszközhöz tartozó logikai kapcsolatokat + (csatornák) és sávokat + kérdezzük le: + + &prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list +L2CAP channels: +Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State +00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN +&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list +L2CAP connections: +Remote BD_ADDR Handle Flags Pending State +00:07:e0:00:0b:ca 41 O 0 OPEN + + Másik ugyanilyen diagnosztikai eszköz a + &man.btsockstat.1;. Ha a viselkedését + tekintjük, akkor leginkább a &man.netstat.1; + programra hasonlít, de a Bluetooth + hálózatban megjelenõ adatszerkezetekkel + dolgozik. Az alábbi példa az iménti + &man.l2control.8; parancs kimenetében szereplõ + logikai kapcsolatokat mutatja: + + &prompt.user; btsockstat +Active L2CAP sockets +PCB Recv-Q Send-Q Local address/PSM Foreign address CID State +c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN +Active RFCOMM sessions +L2PCB PCB Flag MTU Out-Q DLCs State +c2afe900 c2b53380 1 127 0 Yes OPEN +Active RFCOMM sockets +PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State +c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN + + + + RFCOMM + + + Az RFCOMM protokoll + + Az RFCOMM protokoll a soros portok + emulációját valósítja meg az + L2CAP protokollon keresztül. A protokoll az ETSI TS 07.10. + RFCOMM szabványán alapszik, és egy + egyszerû átviteli protokoll, amelyet a 9 tûs + RS-232 (EIATIA-232-E) soros portok + emulációjára készítettek fel. + Az RFCOMM protokoll legfeljebb 60 kapcsolat (RFCOMM csatorna) + párhuzamos használatát támogatja + két Bluetooth eszköz között. + + Az RFCOMM számára a teljes + kommunikációs útvonal két + különbözõ eszközön futó + alkalmazást (kommunikációs + végpontot) és köztük levõ + kommunikációs szegments foglalja magában. + Az RFCOMM az adott eszközön a soros portot + használó alkalmazások részére + készült. A kommunikációs szegmens az + egyik eszköztõl a másikig vezetõ Bluetooth + alapú összeköttetés (közvetlen + kapcsolat). + + Közvetlen kapcsolat esetén az RFCOMM csak az + eszközök közti kapcsolattal foglalkozik, valamint + hálózati kapcsolat esetén az eszköz + és a modem közti kapcsolattal. Az RFCOMM más + konfigurációkat is támogat, + például olyan modulokat, amelyek az egyik oldalon + a Bluetooth vezeték nélküli + technológián keresztül kommunikálnak, + míg a másik oldalon egy vonalas felületet + nyújtanak. + + A &os;-ben az RFCOMM protokollt Bluetooth foglalatok + rétegében valósították + meg. + + + + párosítás + + + Az eszközök + párosítása + + Alapértelmezés szerint a Bluetooth + kommunikáció nem hitelesítõdik + és bármelyik eszköz képes + bármelyik másikkal felvenni a kapcsolatot. Egy + Bluetooth eszköz (például egy mobiltelefon) + egy adott szolgáltatáshoz igényelhet + hitelesítést (például + betárcsázáshoz). A Bluetooth alapú + hitelesítés többnyire PIN + kódokkal történik. A PIN + kód egy legfeljebb 16 karakterbõl álló + ASCII karakterlánc. A felhasználóknak mind + a két eszközön ugyanazt a PIN kódot kell + megadniuk. Miután megadtuk a PIN kódot, az + eszközök létrehoznak hozzájuk egy + összekötettésbeli kulcsot + (link key). Ezután ezt a kulcsot vagy az + eszközökön tároljuk vagy pedig valamilyen + tartós tárolón. A következõ + alkalommal mind a két eszközt ezt a korábban + elkészített kulcsot fogja használni. Ezt + az eljárást nevezik + párosításnak + (pairing). Ha valamelyik eszköz elveszti az + össszeköttetés kulcsát, akkor a + párosítást meg kell + ismételni. + + A &man.hcsecd.8; démon felelõs az összes + Bluetooth alapú hitelesítési + kérés lekezeléséért. Az + alapértelmezett konfigurációs + állománya az + /etc/bluetooth/hcsecd.conf. + Például így tudjuk benne egy + mobiltelefonhoz megadni az 1234 PIN + kódot: + + device { + bdaddr 00:80:37:29:19:a4; + name "Pav T39-ese"; + key nokey; + pin "1234"; + } + + Semmilyen korlátozás nincs a PIN + kódokra (a méretüktõl eltekintve). + Egyes eszközökbe (például a Bluetooth + fejhallgatók) elõre rögzített PIN + kódot építettek bele. A + kapcsoló hatására a + &man.hcsecd.8; démont az elõtérben lehet + futtatni, így könnyebben láthatjuk mi + történik. A távoli eszközt + állítsuk be a párosítás + elfogadására és kezdeményezzünk + felé egy Bluetooth kapcsolatot. A távoli + eszköznek erre azt kell válaszolnia, hogy elfogadta + a párosítást, majd kérni fogja a PIN + kódot. Adjuk meg ugyanazt a PIN kódot, mint amit + a hcsecd.conf állományba is + beírtunk. Most már a gépünk és + a távoli eszköz párban vannak. A + párosítást a távoli + eszközrõl is kezdeményezhetjük. + + A &os; 5.5, 6.1 és újabb + változataiban az /etc/rc.conf + állományba a következõ sort kell + felvenni a hcsecd automatikus + indításához: + + hcsecd_enable="YES" + + Ez pedig a hcsecd démon + által generált kimenetre példa: + +hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist +hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists +hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 + + + + SDP + + + Service Discovery Protocol (SDP) + + A Service Discovery Protocol (SDP) + segítségével a kliens alkalmazások + képes felderíteni, hogy a szerver + alkalmazások részérõl milyen + szolgáltatások érhetõek el, valamint + ezek a szolgáltatások milyen + tulajdonságokkal rendelkeznek. A + szolgáltatások tulajdonsági + közé soroljuk többek között a + felajánlott szolgáltatás + típusát vagy osztályát, illetve a + szolgáltatás kihasználásához + szükséges mechanizmusra vagy protokollra + vonatkozó információkat. + + Az SDP az SDP szerver és az SDP kliens közti + kommunikációt foglalja magában. A szerver + karbantart egy listát azokról a + szolgáltatási rekordokról, amelyek a + szerverhez tartozó szolgáltatások + jellemzõit írják le. Mindegyik ilyen + szolgáltatási rekord egyetlen + szolgáltatás adatait tartalmazza. A kliensek egy + SDP kéréssel ezeket a szolgáltatási + rekordokat kérhetik el az SDP szervertõl. + Amennyiben a kliens, vagy a hozzátartozó + alkalmazás a szolgáltatás használata + mellett dönt, akkor a szolgáltatás + használatához a megfelelõ + szolgáltató felé nyitnia kell egy + külön kapcsolatot. Az SDP csak a + szolgáltatások és azok + tulajdonságainak felderítéséhez ad + segítséget, de semmilyen eszközt nem + tartalmaz a felhasználásukra. + + Általában az SDP kliensek + általában valamilyen számunkra kellõ + tulajdonság alapján keresnek + szolgáltatásokat. Ráadásul + adódhatnak olyan alkalmak is, amikor a + szolgáltatások elõzetes ismerete + nélkül szeretnénk felderíteni a + rendelkezésre álló + szolgáltatások típusait. A + felajánlott szolgáltatások ilyen + típusú feldolgozását nevezzük + böngészésnek + (browsing). + + Az &man.sdpd.8; Bluetooth SDP szerver és a + parancssoros &man.sdpcontrol.8; kliens az alap &os; + telepítés része. Az alábbi + példában egy SDP böngészési + kérést adunk ki: + + &prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse +Record Handle: 00000000 +Service Class ID List: + Service Discovery Server (0x1000) +Protocol Descriptor List: + L2CAP (0x0100) + Protocol specific parameter #1: u/int/uuid16 1 + Protocol specific parameter #2: u/int/uuid16 1 + +Record Handle: 0x00000001 +Service Class ID List: + Browse Group Descriptor (0x1001) + +Record Handle: 0x00000002 +Service Class ID List: + LAN Access Using PPP (0x1102) +Protocol Descriptor List: + L2CAP (0x0100) + RFCOMM (0x0003) + Protocol specific parameter #1: u/int8/bool 1 +Bluetooth Profile Descriptor List: + LAN Access Using PPP (0x1102) ver. 1.0 + + + és így tovább. Mindegyik + szolgáltatáshoz hozzátartozik a + tulajdonságok egy listája (például + RFCOMM csatorna). Lehetséges, hogy + szolgáltatástól függõen bizonyos + tulajdonságokat kell figyelnünk. Egyes Bluetooth + implementációk nem támogatják a + szolgáltatások + böngészését és ezért egy + üres listát adnak vissza. Ebben az esetben egy + konkrét szolgáltatásra tudunk + rákeresni. A következõ példában + az OBEX Object Push (OPUSH) szolgáltatást + keressük: + + &prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH + + &os; alatt az &man.sdpd.8; szerverrel tudunk + szolgáltatásokat felajánlani a Bluetooth + klienseknek. A &os; 5.5, 6.1 vagy késõbbi + változataiban ehhez a következõ sort kell + megadnunk az /etc/rc.conf + állományban: + + sdpd_enable="YES" + + Ezután az sdpd + démon így indítható el: + + &prompt.root; /etc/rc.d/sdpd start + + A &os; 6.0, és a &os; 5.X + ágában az 5.5 elõtti verzióiban az + sdpd nem szerepel még a + rendszer indítószkriptjei között. + Ezért így kell manuálisan + beindítanunk: + + &prompt.root; sdpd + + A távoli kliensek részére Bluetooth + szolgáltatásokat felajánlani + kívánó helyi szerver alkalmazásoknak + regisztrálniuk kell magukat a helyi SDP + démonnál. Például az egyik ilyen + alkalmazás az &man.rfcomm.pppd.8;, és + elindítása után regisztrálni fogja a + Bluetooth LAN szolgáltatást a helyi SDP + démonnál. + + A helyi SDP szerveren regisztrált + szolgáltatásokat a helyi vezérlési + csatornán keresztül egy browse + kéréssel tudjuk lekérdezni: + + &prompt.root; sdpcontrol -l browse + + + + + A betárcsázós hálózati + és a PPP hálózati + hozzáférési (LAN) profilok + + A betárcsázós hálózati + (Dial-Up Networking, DUN) profil leggyakrabban a modemek + és mobiltelefonok között tûnik fel. Ez a + profil a következõ forgatókönyveket + dolgozza fel: + + + + A számítógépünkkel egy + mobiltelefont vagy modemet vezeték + nélküli modemként használunk, + amivel az internethez vagy más + hálózatokhoz csatlakozunk + betárcsázással. + + + + A számítógépünkkel egy + mobiltelefonon vagy modemen keresztül fogadunk + adathívásokat. + + + + A PPP hálózati + hozzáférési (LAN) profil a + következõ helyezetekben alkalmazható: + + + + LAN hozzáférés egyetlen Bluetooth + eszközhöz + + + + LAN hozzáférés több Bluetooth + eszközhöz + + + + Két gép összekötése (a + soros vonali kapcsolat emulációval PPP-n + keresztül) + + + + &os; alatt mind a két profilt a &man.ppp.8; és + az &man.rfcomm.pppd.8; valósítja meg — egy + olyan wrapper eszköz, amely az RFCOMM Bluetooth + kapcsolatokat a PPP számára is + értelmessé alakítja át. + Mielõtt még bármelyik profilt + elkezdenénk használni, egy új PPP + címkét kell létrehozni az + /etc/ppp/ppp.conf + állományban. Erre példát az + &man.rfcomm.pppd.8; man oldalon találhatunk. + + A következõ példában az + &man.rfcomm.pppd.8; programot fogjuk használni arra, hogy + egy RFCOMM típusú kapcsolatot nyissunk a + 00:80:37:29:19:a4 címmel rendelkezõ távoli + Bluetooth eszköz felé. A tényleges RFCOMM + csatorna számát SDP-n keresztül a + távoli eszköztõl kapjuk. Az RFCOMM csatorna + kézzel is megadható, és ilyen esetekben az + &man.rfcomm.pppd.8; nem fog SDP kérést + küldeni. A &man.sdpcontrol.8; használatával + tudjuk lekérdezni a távoli eszközön + létrejött RFCOMM csatornát. + + &prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup + + A PPP hálózati elérés (LAN) + szolgáltatás beindításához + futni kell a &man.sdpd.8; szervernek. A helyi + hálózaton keresztül csatlakozó + kliensekhez létre kell hozni egy új + bejegyzést az /etc/ppp/ppp.conf + állományban. Az &man.rfcomm.pppd.8; man oldalon + találhatunk erre példákat. + Végezetül indítsuk el az RFCOMM PPP szervert + egy érvényes RFCOMM csatornaszámmal. Az + RFCOMM PPP szerver ekkor automatikusan regisztrálja a + Bluetooth LAN szolgáltatást a helyi SDP + démonnál. A következõ + példában megmutatjuk, hogyan lehet + elindítani egy RFCOMM PPP szervert: + + &prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-server + + + + OBEX + + + Az OBEX Object Push (OPUSH) profil + + Az OBEX egy széles körben alkalmazott protokoll + a mobileszközök közti egyszerû + állományvitelre. Legfõképpen az + infravörös kommunikációban + alkalmazzák, ahol a laptopok vagy PDA-k közti + általános állományátvitelre + használják, illetve + névjegykártyák vagy + naptárbejegyzések + átküldésére mobiltelefonok + között és egyéb PIM alkalmazást + futtató eszközök esetében. + + Az OBEX szervert és klienst egy külsõ + csomag, az obexapp + valósítja meg, amelyet az comms/obexapp portból + érhetünk el. + + Az OBEX kliens használható objektumok + áttolására vagy + lehúzására az OBEX szerverhez. Ez az + objektum lehet például egy + névjegykártya vagy egy megbeszélt + találkozó. Az OBEX kliens SDP-n keresztül + tud magának RFCOMM csatornaszámot szerezni. Ezt + úgy tehetjük meg, ha a szolgáltatás + neve helyett egy RFCOMM csatorna számát adjuk meg. + A támogatott szolgáltatások: IrMC, FTRN + és OPUSH. Számként RFCOMM csatorna is + megadható. Az alábbi példában egy + OBEX munkamenetet láthatunk, ahol az eszköz + információs objektumát húzzuk le a + mobiltelefonról és egy új objektumot (egy + névjegykártyát) tolunk fel a telefon + könyvtárába. + + &prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC +obex> get telecom/devinfo.txt devinfo-t39.txt +Success, response: OK, Success (0x20) +obex> put new.vcf +Success, response: OK, Success (0x20) +obex> di +Success, response: OK, Success (0x20) + + Az OBEX objektumok tologatásának + támogatásához az &man.sdpd.8; szervernek + kell futnia. Továbbá a beérkezõ + objektumok tárolásához létre kell + hoznunk még egy könyvtárat is. Ez az + könyvtár alapértelmezés szerint a + /var/spool/obex. Végül + indítsuk el az OBEX szervert egy érvényes + RFCOMM csatorna számának + megadásával. Az OBEX szerver ezután + automatikusan regisztrálja az OBEX Object + Push nevû szolgáltatást a helyi SDP + démonnál. Ebben a példában + láthatjuk az OBEX szerver + indítását: + + &prompt.root; obexapp -s -C 10 + + + + + Soros vonali profil (SPP) + + A soros vonali profil (Serial Port Profile, SPP) + használatával RS232 (vagy ahhoz hasonló) + vonali adatátvitelt tudunk emulálni. Ez a profil + a régebben fejlesztett alkalmazásokkal + birkózik meg, és a Bluetooth + technológiával valódi kábel helyett + egy virtuális soros portot képez le. + + Az &man.rfcomm.sppd.1; segédprogram ezt a soros + vonali profilt valósítja meg. Így egy + pszeudo terminált tudunk virtuális soros + portként használni. Ha nem adunk meg RFCOMM + csatornát, akkor az &man.rfcomm.sppd.1; képes + SDP-n keresztül kérni egyet magának a + távoli eszköztõl. Ha ezt felül + kívánjuk bírálni, akkor a + parancssorban megadhatunk akár egy konkrét RFCOMM + csatornát is. + + &prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6 +rfcomm_sppd[94692]: Starting on /dev/ttyp6... + + Miután csatlakoztunk, a pszeudo terminált + tudjuk soros portként használni: + + &prompt.root; cu -l ttyp6 + + + + + Hibaelhárítás + + + Nem tudunk csatlakozni a távoli + eszközzel + + Egyes Bluetooth eszközök nem + támogatják a szerepek cseréjét + (role switch). Alapértelmezés szerint amikor a + &os; elfogad egy új kapcsolatot, + megpróbál rajta szerepet cserélni + és mesterré válni. Azok az + eszközök, amelyek ezt nem támogatják, + nem lesznek képesek emiatt csatlakozni. Ez a + szerepváltás az új kapcsolatok + felépítése során zajlik le, + ezért egy távoli eszköztõl nem lehet + megtudni, hogy ismeri-e ezt a lehetõséget. A + helyi oldalon a következõ HCI opcióval lehet + kikapcsolni a szerepcserét: + + &prompt.root; hccontrol -n ubt0hci write_node_role_switch 0 + + + + + Valami nem megy. Lehet látni valahogy, pontosan + mi is történik? + + Persze, igen. Egy külsõ csomag, a + hcidump + segítségével, amely a comms/hcidump portból + érhetõ el. A hcidump + segédprogram a &man.tcpdump.1; programhoz + hasonlítható. Ezzel lehet a Bluetooth csomagok + tartalmát megnézni a terminálon vagy + elmenteni ezeket egy állományba. + + + +
+ + + + + + Andrew + Thompson + Írta: + + + + + Hálózati hidak + + + Bevezetés + + IP-alhálózat + hálózati + híd + + Gyakran hasznos lehet anélkül felosztani egy + fizikai hálózatot (például egy + Ethernet szegmenst) két külön + hálózati szegmensre, hogy külön + IP-alhálózatot kellene létrehozunk + és összekötnünk ezeket egy + útválasztóval. A két ilyen + módon kialakított hálózatot + összekötõ eszközt nevezzük + hálózati hídnak (bridge). A + legalább két hálózati + felülettel rendelkezõ &os; rendszerek képesek + hálózati híd szerepét + betölteni. + + A hálózati híd az eszközök + adatkapcsolati rétegben a hozzátartozó + felületein megjelenõ (vagyis Ethernet) + címének megtanulásával + mûködik. A két hálózat + között csak akkor közvetít forgalmat, + amikor a forrás és cél nem ugyanabban a + hálózatban található. + + A hálózati hidak bizonyos szempontból + lényegében nagyon kevés porttal + rendelkezõ Ethernet switch-ek. + + + + + A hálózati hidak tipikus + alkalmazásai + + Napjainkban akad néhány igen jellemzõ + szituáció, ahol szükség van a + hálózati hidak alkalmazására. + + + Hálózatok + összekötése + + A hálózati hidak alapvetõ feladata + két vagy több hálózati szegmens + összekötése. Az egyszerû + hálózati környezet + felállítása helyett több + okból is felmerülhet a hidak + létrehozása: kábelezési + megszorítások, tûzfalazás vagy + pszeudo hálózatok, például + virtuális gépek felületének + csatlakoztatása miatt. Egy híd + használatával ráadásul össze + tudunk kötni egy vezeték nélküli + hozzáférési pontként + üzemelõ felületet egy vezetékes + hálózattal. + + + + + Szûrés vagy forgalomkorlátozás + tûzfallal + + tûzfal + NAT + + Sokszor elõfordulhat, hogy + útválasztás vagy hálózati + címfordítás (NAT) nélkül + szeretnénk tûzfalat használni. + + Példaként képzeljünk el egy + olyan kis méretû céget, amely egy DSL vagy + ISDN vonalon kapcsolódik az + internet-szolgáltatójához. A + szolgáltatótól 13, mindenki által + használható IP-címet kaptak és a + hálózatukban 10 gép van. Ebben a + helyzetben egy útválasztást + végzõ tûzfal mûködtetése + nehézkessé válna az + alhálózatok problémái + miatt. + + útválasztó + DSL + ISDN + + Egy hídként viselkedõ tûzfallal + azonban minden IP számozási probléma + nélkül egyszerûen be tudjuk dobni a + gépeket a DSL/ISDN útválasztó + mögé. + + + + + A hálózat megcsapolása + + Egy hálózati híddal úgy + kapcsolunk össze két hálózati + szegmenst, hogy közben meg tudjuk vizsgálni a + kettejük között mozgó Ethernet + kereteket. Ezt a híd felületen a &man.bpf.4; + valamint a &man.tcpdump.1; segítségével + tudjuk megoldani, vagy úgy, ha egy másik + felületen elküldjük az összes keret + másolatát (span, vagyis feszítõ + port). + + + + + VPN az adatkapcsolati rétegben + + A két Ethernet hálózatot egy IP + alapú összeköttetésen keresztül + is össze tudunk kötni, ha a + hálózatokat egy EtherIP járaton + keresztül kötjük össze híddal, vagy + egy OpenVPN-hez hasonló &man.tap.4; alapú + megoldással. + + + + + Redundancia az adatkapcsolati rétegben + + A hálózatokat több linken + keresztül kötjük össze és a + redundáns útvonalakat a feszítõfa + protokollal (Spanning Tree Protocol, STP). Az Ethernetes + hálózatok esetében a megfelelõ + mûködéshez a két eszköz + között csak egyetlen aktív útvonal + létezhet, így a feszítõfa protokoll + észleli a hurkokat és a redundáns + összeköttetéseket blokkolt állapotba + teszi. Amikor azonban az aktív linkek egyike + meghibásodik, akkor a protokoll + újraszámolja a fát és a + hálózati pontjai közti + konnektivitást megpróbálja + helyreállítani az addig blokkolt linkek + ismételt engedélyezésével. + + + + + + A rendszermag beállításai + + Ebben a szakaszban az &man.if.bridge.4; + hálózati híd implementációval + foglalkozunk, de a Netgraph segítségével is + tudunk hidakat építeni. Ez + utóbbiról az &man.ng.bridge.4; man oldalon + olvashatunk. + + Amikor létrehozunk egy hálózati hidat, + az &man.ifconfig.8; automatikusan betölti a + hozzátartozó meghajtót. Ha viszont a + rendszermag beállításait tartalmazó + állományba felvesszük a device + if_bridge sort, akkor akár be is + építhetjük a rendszermagba. + + A csomagszûrés minden olyan tûzfallal + használható, amely a &man.pfil.9; rendszerre + kapcsolódik. Maga a tûzfal is betölthetõ + modulként, vagy belefordítható a + rendszermagba. + + A hálózati híddal forgalmat is tudunk + szabályozni az &man.altq.4; vagy a &man.dummynet.4; + segítségével. + + + + + A hálózati híd + engedélyezése + + Hálózati hidak felületek + klónozásával hozhatóak létre. + A híd létrehozásához + használjuk az &man.ifconfig.8; programot, és a + megfelelõ meghajtó automatikusan + betöltõdik, ha nem lenne még + elérhetõ a rendszermagban. + + &prompt.root; ifconfig bridge create +bridge0 +&prompt.root; ifconfig bridge0 +bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 96:3d:4b:f1:79:7a + id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0 + + Ekkor létrejön a hálózati + hídhoz tartozó felület és + véletlenszerûen generálódik + hozzá egy Ethernetes cím. A + maxaddr és a + timeout paraméterek vezérlik, + hogy a híd mennyi MAC-címet tartson meg a keretek + továbbításáért felelõs + táblázatban és mennyi másodperc + után töröljön automatikusan egy + bejegyzést a legutolsó használat + után. A többi paraméter a + feszítõfa mûködését + irányítja. + + Vegyük fel a hídhoz tartozó + hálózati tagfelületeket. A híd csak + akkor fog a tagfelületek között csomagokat + továbbküldeni, amikor a híd és a tagok + is up állapotban vannak: + + &prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up +&prompt.root; ifconfig fxp0 up +&prompt.root; ifconfig fxp1 up + + A híd most már átküldi az Ethernet + kereteket a fxp0 és + fxp1 felületek között. + Az iméntiekkel megegyezõ konfigurációt + az /etc/rc.conf állományban + így alakíthatjuk ki: + + cloned_interfaces="bridge0" +ifconfig_bridge0="addm fxp0 addm fxp1 up" +ifconfig_fxp0="up" +ifconfig_fxp1="up" + + Ha a hídhoz IP-címet is rendelni akarunk, + akkor inkább magánál a hídnál + adjuk meg, ne a tagoknál. Ezt statikusan vagy DHCP + használatával is megtehetjük: + + &prompt.root; ifconfig bridge0 inet 192.168.0.1/24 + + A hídhoz IPv6 címet is hozzá tudunk + rendelni. + + + + + Tûzfalazás + + tûzfalak + + Ha engedélyezzük a csomagszûrést, a + hídon áthaladó csomagok elõször a + küldõ felület érkezési + oldalára kerülnek, majd a hídra, + végül a megfelelõ irányban levõ + felület küldési oldalára. + Bármelyik fázis letiltható. Amikor a + csomagok áramlásának iránya fontos + számunkra, akkor jobban járunk, ha nem + magára a hídra, hanem csak a tagfelületekre + állítjuk be a tûzfalat. + + A híd számos módosítható + beállítással rendelkezik a nem-IP és + ARP csomagok átküldésére, valamint + arra, hogy az IPFW tûzfal adatkapcsolati réteg + szintjén mûködhessen. Az &man.if.bridge.4; man + oldal ennek részleteit tárja fel. + + + + + Feszítõfák + + A híd meghajtója a gyors feszítõfa + protokollt (Rapid Spanning Tree Protocol, RSTP avagy 802.1w) + valósítja meg, ami visszafelé kompatibilis + a korábban említett feszítõfa + protokollal. A feszítõfákat a + hálózati topológiában + felbukkanó hurkok észlelésére + és eltávolítására + alkalmazzák. Az RSTP azonban a hagyományos + STP-nél valamivel gyorsabb konvergenciát + ígér, mivel itt a szomszédos switch-ek + kicserélik egymás között az adataikat, + és így újabb hurkok + létrehozása nélkül képesek + viszonylag gyorsan egyik állapotból + átváltani a másikba. + + Az alábbi táblázat a támogatott + mûködési módokat + láthatjuk: + + + + + + Operációs rendszer + STP módok + Alapértelmezés + + + + + + &os; 5.4—&os; 6.2 + STP + STP + + + + &os; 6.3+ + RSTP vagy STP + STP + + + + &os; 7.0+ + RSTP vagy STP + RSTP + + + + + + A tagfelületeken az stp paranccsal + tudjuk engedélyezni a feszítõfák + használatát. Az fxp0 + és fxp1 felületeket + összekötõ hídfelület esetében + tehát így: + + &prompt.root; ifconfig bridge0 stp fxp0 stp fxp1 +bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether d6:cf:d5:a0:94:6d + id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0 + member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 3 priority 128 path cost 200000 proto rstp + role designated state forwarding + member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 4 priority 128 path cost 200000 proto rstp + role designated state forwarding + + Láthatjuk, hogy a híd a + feszítõfában megkapta a + 00:01:02:4b:d4:50-es azonosítót + és a 32768-as prioritást. + Mivel root id értéke is + ugyanez, elmondhatjuk, hogy ez a fa gyökereként + funkcionáló híd. + + Ha a hálózaton már valahol + létezik egy másik híd: + + bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 96:3d:4b:f1:79:7a + id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4 + member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 4 priority 128 path cost 200000 proto rstp + role root state forwarding + member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 5 priority 128 path cost 200000 proto rstp + role designated state forwarding + + A root id 00:01:02:4b:d4:50 priority 32768 ifcost + 400000 port 4 sor mutatja, hogy a fa + gyökerét képezõ híd most a + 00:01:02:4b:d4:50 azonosítóval + rendelkezik, és ezt a hidat 400000-res + költséggel éri el a port 4 + (a 4. porton) keresztül, amely jelen esetben az + fxp0 felület. + + + + + Komolyabb hidak építése + + + A forgalom áramlásának + átszerkesztése + + A hidak támogatják az ún. + megfigyelési módot, ahol a csomagokat a + &man.bpf.4; feldolgozásuk után eldobja, + így nem folytatódik a feldolgozásuk vagy + nem haladnak tovább. Ennek + kihasználásával a két vagy + több felületen érkezõ adatokat egyetlen + &man.bpf.4; folyammá tudjuk alakítani. Ez olyan + hálózati csapok forgalmának + átszerkesztésében hasznos, ahol a + két különbözõ felületen + keresztül küldjük ki az RX/TX + (fogadás/küldés) jeleket. + + Az alábbi paranccsal tudjuk megoldani, hogy + négy felületrõl érkezõ adatot + legyünk képesek egyetlen folyamként + olvasni: + + &prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up +&prompt.root; tcpdump -i bridge0 + + + + + Feszítõ portok + + A hídhoz befutó Ethernet keretek + mindegyikérõl készül egy + másolat, ami egy megadott feszítõ porton + keresztül megy tovább. Hidanként + végtelen számú ilyen feszítõ + port létezhet, és ha egy felületet + feszítõ portnak adtunk meg, akkor + hagyományos portként már nem + használhatjuk. Ez leginkább akkor hasznos, + amikor passzívan akarjuk megfigyelni a híddal + rendelkezõ hálózatot a híd + valamelyik feszítõ portjára + csatlakozó géprõl. + + Küldessük az összes keretrõl egy + másolatot az fxp4 + felületre: + + &prompt.root; ifconfig bridge0 span fxp4 + + + + + Privát felületek + + A privát felületek (private interface) csak + más privát felületek felé + küldenek tovább adatot. Így + feltétel nélkül tudjuk korlátozni a + forgalmat, és sem Ethernet keretek, sem pedig ARP nem + megy keresztül rajtuk. Ha viszont szelektíven + akarjuk korlátozni a forgalmat, akkor helyette + használjunk tûzfalat. + + + + + Tapadós felületek + + Ha a híd egyik tagfelületét + tapadósnak (sticky) adjuk meg, akkor a dinamikusan + megtanult címek bejegyzései a + gyorsítótárba kerülésük + után állandósulnak. A tapadós + bejegyzések soha nem évülnek el vagy + cserélõdnek le, még abban az esetben sem, + ha utána az adott címet egy másik + felületrõl látjuk. Így a + továbbításra vonatkozó + táblázatot nem kell elõre + feltöltenünk, és a híd egyik + oldalán meglátott kliensek nem képesek + átvándorolni egy másik + hálózati szegmensbe. + + Másik ilyen példa a tapadós + címek használatára az lehetne, amikor a + hidat VLAN-nal kombináljuk, és így egy + olyan útválasztót hozunk létre, + ahol az ügyfeleink az IP-címtartomány + pocséklása nélkül + zárhatóak el egymástól. + Tegyük fel, hogy az A-ugyfel a + vlan100, és a B-ugyfel a vlan101 + felületen csatlakozik. A híd IP-címe + 192.168.0.1, amely maga is egy + internet felé mutató + útválasztó. + + &prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101 +&prompt.root; ifconfig bridge0 inet 192.168.0.1/24 + + Mind a két kliens a 192.168.0.1 címet látja + alapértelmezett átjáróként, + és mivel a híd gyorsítótára + tapadós bejegyzéseket tartalmaz, a + MAC-címeik meghamisításával nem + tudják elcsípni a másikuk + forgalmát. + + A VLAN-ok közti bárminemû + kommunikációt privát felületek + létrehozásával akadályozzuk meg + (vagy egy tûzfallal): + + &prompt.root; ifconfig bridge0 private vlan100 private vlan101 + + Ezzel a megoldással az ügyfeleinket teljesen + elszigeteljük egymástól úgy, hogy + közben az egész /24 címtartomány + külön alhálózatok + kialakítása nélkül + kiosztható. + + + + + Címek korlátozása + + Le tudjuk korlátozni az egy felület + mögül küldeni képes egyedi + MAC-címeket. Amikor ezen a határon felül + érkeznek ismeretlen feladótól csomagok, + egészen addig eldobjuk ezeket, amíg egy + korábban már regisztrált + bejegyzést a rendszer ki nem töröl vagy ki + nem veszünk a + gyorsítótárból. + + A következõ példában az + vlan100 felületen csatlakozó + A-ugyfel + számára korlátozzuk le 10-re az Ethernet + eszközök számát: + + &prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10 + + + + + SNMP felügyelet + + A hidak és az STP paraméterei az alap &os; + rendszerben megtalálható SNMP démonnal + felügyelhetõek. A hídhoz exportált + felügyeleti információk (Management + Information Base, MIB) megfelelnek az IETF által + elõírt szabványoknak, így + akár tetszõleges SNMP kliens vagy bármilyen + más felügyeleti szoftver alkalmas az + olvasásukra. + + A hidat mûködtetõ gépen az + /etc/snmp.config + állományban engedélyezzük a + begemotSnmpdModulePath."bridge" = + "/usr/lib/snmp_bridge.so" sort és + indítsuk el a bsnmpd + démont. Itt még szükség lehet + más beállítások, + például a közösségek + nevének (community name) vagy a + hozzáférési listák (access list) + módosítására is. Ezzel + kapcsolatban a &man.bsnmpd.1; és az &man.snmp.bridge.3; + man oldalakat lapozzuk fel. + + A következõ példában a + Net-SNMP nevû szoftver + (net-mgmt/net-snmp) fogjuk + használni a híd elérésére, + de ugyanerre a net-mgmt/bsnmptools port is + alkalmas. Az SNMP klienst használó gépen + egészítsük ki az + $HOME/.snmp/snmp.conf + állományt a híd felügyeleti + információinak + importálásával az + Net-SNMP rendszerébe: + + mibdirs +/usr/share/snmp/mibs +mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB + + Az IETF BRIDGE-MIB (RFC 4188) + használatán keresztül így tudjuk + elindítani egy híd + felügyeletét: + + &prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge +BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44 +BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports +BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds +BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2 +BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50 +... +BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5) +BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1) +BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000 +BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 +BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0 +BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 +BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80 +BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1 +RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2) + + A példában látszik, hogy a + dot1dStpTopChanges.0 értéke + kettõ, ami arra utal, hogy az STP híd + topológiája kétszer változott. A + topológia változása pedig azt jelenti, + hogy a hálózaton belül egy vagy több + link állapota megváltozott vagy egyszerûen + meghibásodott és ezért egy új + fát kellett számolni. A + dot1dStpTimeSinceTopologyChange.0 + érték adja meg, hogy ez pontosan mikor is + történt. + + Több híd felületének + felügyeletéhez a belsõ BEGEMOT-BRIDGE-MIB + parancsot is használhatjuk: + + &prompt.user; snmpwalk -v 2c -c public bridge1.example.com +enterprises.fokus.begemot.begemotBridge +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1 +... +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9 + + Így tudjuk megadni, hogy a hidat + mib-2.dot1dBridge részfán + keresztül akarjuk megfigyelni: + + &prompt.user; snmpset -v 2c -c private bridge1.example.com +BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2 + + + + + + + + + + Andrew + Thompson + Írta: + + + + + Linkek összefûzése és + hibatûrése + + lagg + failover + fec + lacp + loadbalance + roundrobin + + + Bevezetés + + A &man.lagg.4; felület lehetõvé teszi, hogy + több hálózati felületet egyetlen + virtuális felületként fûzzünk + össze, és ezzel egy hibatûrõ és + nagysebességû összeköttetést + alakítsunk ki. + + + + + Mûködési módok + + + failover + + Csak az elsõdlegesként kijelölt porton + keresztül fogad és küld adatokat. Amikor + ez az elsõdleges port elérhetetlenné + válik, a következõ aktív portot + fogja használni. Az elsõként felvett + felület válik automatikusan az elsõdleges + porttá, és az utána felvett összes + többit pedig csak hiba esetén + használjuk. + + + + fec + + A Cisco EtherChannel technológia + támogatása. Ez egy statikus + beállítás, és nem egyezteti az + összefûzést a többiekkel vagy a linkek + felügyeletéhez nem vált kereteket. Ha a + switch támogatja az LACP használatát, + akkor inkább azt válasszuk. + + A kimenõ forgalmat a fejlécekben + szereplõ protokollok alapján számolt + hasítókóddal próbálja + szétosztani az aktív portok között, + és tetszõleges aktív porton fogad + beérkezõ adatokat. Az említett + hasítókódban egy Ethernetes + forrás- és célcím szerepel, + valamint ha elérhetõ, akkor egy VLAN + címke, illetve az IPv4/IPv6 forrás- és + célcím. + + + + lacp + + Az IEEE 802.3ad Link Aggregation Control Protocol (LACP) + és a Marker Protcol támogatása. Az + LACP megpróbálja egyeztetni a többi + géppel az összefûzhetõ linkeket egy + vagy több csoportban (Link Aggregated Group, LAG). + Mindegyik ilyen csoportban ugyanolyan sebességû + portokat találunk, full-duplex + mûködési módban. A forgalmat + így a legnagyobb összsebességgel + rendelkezõ csoportban megtalálható portok + között osztja el, ami a legtöbb esetben az + összes portot magában foglaló csoport. A + fizikai konnektivitás megváltozása + esetén a linkek összefûzõdése + igen gyorsan alkalmazkodik az új + konfigurációhoz. + + A kimenõ forgalmat az aktív portok + között osztja szét fejlécekben + szereplõ protokollok alapján számolt + hasítókóddal, és + bármelyik aktív portról fogad + bejövõ forgalmat. A + hasítókódban megtalálható + az Ethernetes forrás- és célcím, + valamint ha elérhetõ, akkor a VLAN címke, + illetve az IPv4/IPv6 forrás- és + célcímek. + + + + loadbalance + + Ez a fec mód másik + neve. + + + + roundrobin + + + A kimenõ forgalmat egy körkörös + (Round Robin) elvû ütemezõvel osztja + szét az aktív portok között + és tetszõleges aktív portról fogad + bejövõ forgalmat. Ez a mûködési + mód megsérti az Ethernet keretek + rendezését és csak nagy + körültekintés mellett alkalmazzuk. + + + + + + + + Példák + + + LACP alapú összefûzés egy Cisco + switch-csel + + Ebben a példában egy &os;-s gép + két felületét kapcsoljuk össze + switch-csel egy egyszerû + terhelés-kiegyenlítéssel és + hibatûréssel beállított linken + keresztül. Mivel az Ethernet keretek sorrendje + döntõ fontosságú, ezért a + két állomás között egyazon + fizikai linken zajló forgalom maximális + sebességét az adott felület + kapacitása korlátozza. A küldési + algoritmus a lehetõ legtöbb információ + alapján próbálja egymástól + megkülönböztetni a forgalmakat és + elosztani ezeket a rendelkezésre álló + felületek között. + + A Cisco switch-en vegyünk fel ezeket a + felületeket egy csoportba (channel group): + + interface FastEthernet0/1 + channel-group 1 mode active + channel-protocol lacp +! +interface FastEthernet0/2 + channel-group 1 mode active + channel-protocol lacp +! + + A &os;-s gépen pedig hozzunk létre a + lagg felületet: + + &prompt.root; ifconfig lagg0 create +&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 + + Ellenõrizzük a felület + állapotát az ifconfig parancs + meghívásával. Az + ACTIVE, vagyis aktív + állapotú portok az + összefûzéshez kialakított csoport azon + tagjai, amelyeknél felépült a kapcsolat a + távoli switch felé és készen + állnak a küldésre és + fogadásra. Ha az &man.ifconfig.8; programtól + részletesebb kimenetet kérünk, akkor + láthatjuk a csoportok azonosítóit + is: + + lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether 00:05:5d:71:8d:b8 + media: Ethernet autoselect + status: active + laggproto lacp + laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> + laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> + + A switch-en is látni fogjuk, hogy mely portjai + aktívak. Pontosabb részleteket a + show lacp neighbor detail paranccsal + kapunk. + + switch# show lacp neighbor +Flags: S - Device is requesting Slow LACPDUs + F - Device is requesting Fast LACPDUs + A - Device is in Active mode P - Device is in Passive mode + +Channel group 1 neighbors + +Partner's information: + + LACP port Oper Port Port +Port Flags Priority Dev ID Age Key Number State +Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D +Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D + + + + + A hibatûrés + beállítása + + A hibatûrési mód arra alkalmas, hogy + amikor az elsõdleges porton elvesztjük a + kapcsolatot, helyette egy másik felület + használatára tudunk + áttérni. + + &prompt.root; ifconfig lagg0 create +&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 + + lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether 00:05:5d:71:8d:b8 + media: Ethernet autoselect + status: active + laggproto failover + laggport: fxp1 flags=0<> + laggport: fxp0 flags=5<MASTER,ACTIVE> + + A forgalom kezdetben az fxp0 + felületen keresztül érkezik és + távozik. Ha az fxp0 + felületen valamiért megszakadna a kapcsolat, + helyette az fxp1 lesz az aktív + link. Ha késõbb helyreáll a kapcsolat az + elsõdleges felületen, akkor újra az lesz + aktív link. + + + + + + + + + + + Jean-François + Dockès + Frissítette: + + + + + Alex + Dupre + Átdolgozta és javította: + + + + + + Lemez nélküli mûködés + + lemez nélküli + munkaállomás + lemez nélküli + mûködés + + A &os; képes hálózaton keresztül + elindulni és helyi lemez nélkül egy + NFS szerver által megosztott + állományrendszer csatlakoztatásával + mûködni. Ehhez a szabványos + konfigurációs állományok + módosításán kívül semmi + másra nincs szükségünk. Egy ilyen + rendszert viszonylag könnyû beállítani, + mivel az összes hozzávaló szinte készen + elérhetõ: + + + + Rögtön adott legalább két + módszer, ha a rendszermagot hálózaton + keresztül akarjuk betölteni: + + + + PXE: az &intel; által + fejlesztett Preboot eXecution Environment + (indítás elõtti + végrehajtási környezet) + nevû rendszer a hálózati + kártyákba vagy alaplapokba + épített ROM + segítségével teszi + lehetõvé az intelligens + rendszerindítást. A &man.pxeboot.8; man + oldalán olvashatunk errõl + részletesebben. + + + Az Etherboot port + (net/etherboot) olyan + ROM-ba programozható kódot + készít, amellyel rendszermagokat tudunk + hálózaton keresztül betölteni. Ez + a kód egyaránt felhasználható + egy hálózati rendszerindító + PROM beégetéséhez, vagy + betölthetõ a helyi floppy (esetleg + merev)lemezrõl, illetve &ms-dos; rendszer + alól. Elég sok hálózati + kártya támogatja ezt a módot. + + + + + + Egy mintaszkript + (/usr/share/examples/diskless/clone_root) + is próbálja megkönnyíteni a + szerveren a munkaállomás + rendszerindító + állományrendszerének + létrehozását és + karbantartását. Ezt a szkriptet + valószínûleg némileg + módosítani kell, de így is sokat + segít az elindulásban. + + + + Az /etc könyvtárban + található szabványos + rendszerindításhoz használt + állományok, amelyekkel a lemez + nélküli indulást lehet detektálni + és segíteni. + + + + A lapozás, amennyiben szükséges, + NFS vagy helyi lemez + segítségével oldható meg. + + + + Számos módon állíthatunk be egy + lemez nélküli munkaállomást. Rengeteg + részbõl tevõdik össze, és ezek + legtöbbje remekül testreszabható az + igényeinknek. A továbbiakban egy teljes rendszer + összeállításának + lehetséges variációit ismertetjük, + különös hangsúlyt fektetünk arra, hogy + egyszerûek és a hagyományos &os; + indítószkriptekkel kompatibilisek maradjanak. A + bemutatandó rendszer a következõ + jellemzõkkel bír: + + + + A lemez nélküli munkaállomások + megosztott / és + /usr állományrendszereket + használnak. + + A rendszer indításához + használt gyökér + állományrendszer a szabvány &os;-s + gyökér (ez általában a + szerveré), ahol néhány + állományt felülírtunk a lemez + nélküli mûködéshez vagy + azért, mert egyszerûen az adott + munkaállomáshoz tartozik. + + A gyökér azon részeit, amelyeket + írhatóvá kívánunk tenni, + &man.md.4; alapú állományrendszerekkel + lapoljuk felül. Ilyenkor azonban bármilyen rajtuk + ejtett változtatás a rendszer + újraindításával elveszik. + + + + A rendszermagot vagy az + Etherboot vagy a + PXE használatával + küldessük át és töltsük be, + mivel egyes helyzetekben ezekre szükség + lesz. + + + + + A bemutatott rendszer nem biztonságos. + Helyezzük a hálózatunk egy jól + védett részére, és a többi + gép ne tekintse megbízhatónak. + + + A szakaszban szereplõ összes + információt a &os; 5.2.1-RELEASE + változatával teszteltük. + + + Háttérinformációk + + A lemez nélküli munkaállomások + beállítása egyszerre adja magát + és könnyen is elvéthetõ. Az + elkövetett hibákat olykor számos okból + kifolyólag nehéz felismerni. + Például: + + + + A fordítási idõben megadott + beállítások mást + eredményeznek futási idõben. + + + + A hibaüzenetek gyakran titokzatosak vagy esetleg + teljesen el is maradnak. + + + + Ezért ha valamennyire tisztában vagyunk a + háttérben zajló folyamatokkal, akkor sokkal + több eséllyel leszünk képesek megoldani + a menet közben felmerülõ + problémákat. + + A rendszernek a sikeres felkapaszkodáshoz több + mûveletet is végre kell hajtania: + + + + A gépnek szüksége van olyan + induló paraméterekhez, mint + például az IP-cím, a + végrehajtható állomány neve, a + szerver neve, a gyökér elérési + útja. Ezeket a DHCP vagy a BOOTP + protokollok használatával adhatjuk meg. A + DHCP a BOOTP kompatibilis + kiterjesztése, ezért ugyanazokat a portokat + és alapvetõ csomagformátumot + alkalmazza. + + A rendszerüket kizárólag BOOTP + használatával is beállíthatjuk. + A &man.bootpd.8; szerver az alap &os; rendszer + része. + + A DHCP azonban rengeteg elõnnyel + rendelkezik a BOOTP protokollal szemben + (áttekinthetõbb konfigurációs + állományok, a PXE + használatának lehetõsége, illetve + sok minden más, ami nem csak a lemez + nélküli mûködéshez kellhet), + ezért itt alapvetõen egy DHCP alapú + konfigurációt mutatunk be, de ahol + megoldható, megemlítjük a &man.bootpd.8; + esetén alkalmas példákat is. A + mintaként szolgáló + konfiguráció az ISC + DHCP szoftvercsomagot használja (a + tesztszerverre ennek a 3.0.1.r12 verzióját + telepítetük fel). + + + + A gépnek egy vagy több programot kell a + saját memóriájába + áttöltenie. Erre vagy a TFTP + vagy pedig az NFS alkalmas. A + TFTP és az NFS + között sok helyen fordítási + idõben tudunk választani. Gyakori + hibaforrás a protokollhoz rosszul megadott + állománynevek használata: a + TFTP általában az + összes állományt a szerverrõl + egyetlen könyvtárból tölti + át, ezért arra számít, hogy a + neveiket ehhez viszonyítva adjuk meg. Az + NFS használata során + azonban abszolút elérési utakat kell + megadnunk. + + + + A rendszer indítását + lehetõvé tevõ közbensõ + programokat és a rendszermagot valahogy + inicializálni kell és elindítani. Ezen + a területen több fontos változat kapott + helyet: + + + + A PXE a &man.pxeboot.8; + kódját fogja betölteni, ez + lényegében a &os; betöltõ + harmadik fokozatának egy módosított + változata. A &man.loader.8; a + mûködéséhez + szükséges paramétereket a rendszer + indításakor kapja meg, majd a + vezérlés átadása elõtt + ezeket a rendszermag környezetében hagyja. + Ebben az esetben akár a + GENERIC rendszermag is + használható. + + + + Az Etherboot kevesebb + elõkészítéssel + közvetlenül magát a rendszermagot + tölti be. Ehhez azonban egy saját + rendszermagot kell építeni, + külön + beállításokkal. + + + + A PXE és az + Etherboot egyaránt + jól használható. Mivel azonban a + rendszermagok általában a &man.loader.8; + kódjára hagyják a munka legnagyobb + részét, ezért ahol lehetséges, a + PXE megoldását + érdemes alkalmazni. + + Tehát ha az alaplapi BIOS + és a hálózati kártya is + támogatja a PXE + használatát, akkor válasszunk + inkább azt. + + + + Végezetül a gépnek valamilyen + módon hozzá kell tudnia férnie az + állományrendszerekhez. Erre többnyire az + NFS jöhet szóba. + + + + A további részleket lásd a + &man.diskless.8; man oldalon. + + + + + Beállítási + útmutató + + + Beállítás a <application>ISC + DHCP</application> használatával + + + DHCP + lemez nélküli + mûködés + + + Az ISC DHCP szervere + képes a BOOTP és DHCP + kéréseket is megválaszolni. + + Az ISC DHCP 3.0 nem az + alaprendszer része, ezért a + használatához elõször + telepítenünk kell a net/isc-dhcp3-server portot vagy a + neki megfelelõ csomagot. + + Ahogy feltelepítettük, le kell futtatnunk az + ISC DHCP + konfigurációs állományát + (ezt általában + /usr/local/etc/dhcpd.conf néven + találjuk meg). A most következõ, + megjegyzésekkel kiegészített + példában egy margaux + nevû gép az + Etherboot, valamint egy + corbieres nevû gép + PXE használatával akar + kapcsolódni: + + +default-lease-time 600; +max-lease-time 7200; +authoritative; + +option domain-name "minta.com"; +option domain-name-servers 192.168.4.1; +option routers 192.168.4.1; + +subnet 192.168.4.0 netmask 255.255.255.0 { + use-host-decl-names on; + option subnet-mask 255.255.255.0; + option broadcast-address 192.168.4.255; + + host margaux { + hardware ethernet 01:23:45:67:89:ab; + fixed-address margaux.minta.com; + next-server 192.168.4.4; + filename "/data/misc/kernel.diskless"; + option root-path "192.168.4.4:/data/misc/diskless"; + } + host corbieres { + hardware ethernet 00:02:b3:27:62:df; + fixed-address corbieres.minta.com; + next-server 192.168.4.4; + filename "pxeboot"; + option root-path "192.168.4.4:/data/misc/diskless"; + } +} + + + + + Ez a beállítás arra + utasítja a dhcpd + démont, hogy a lemez nélküli + gép hálózati neveként a + host deklarációban + megadott értéket küldje el. Ezt + úgyis meg lehet csinálni, hogy + felvesszünk egy option host-name + margaux + részt a host + deklarációk közé. + + + + A next-server direktíva a + betöltõ vagy a rendszermag + betöltéséért felelõs + TFTP vagy NFS + szervert jelöli ki (alapértelmezés + szerint ez megegyezik a DHCP + szerverrel). + + + + A filename direktíva azt + az állományt adja meg, amelyet az + Etherboot vagy a + PXE a következõ + végrehajtási lépésben + betölt. Ezt a kiválasztott átviteli + módnak megfelelõen kell megadni. Az + Etherboot + lefordítható az NFS + vagy a TFTP + használatával is. A &os; port + alapból az NFS + támogatását tartalmazza. A + PXE a TFTP + protokollt használja, ezért itt + relatív állományneveket adunk meg + (ez persze a TFTP szerver + beállításaitól függ, de + általában ez a jellemzõ). Sõt, + a PXE a pxeboot + állományt tölti be, nem is a + rendszermagot. Léteznek további + érdekes lehetõségek is, mint + például a pxeboot + állomány betöltése a &os; + CD-jén található /boot + könyvtárból (mivel a &man.pxeboot.8; + a GENERIC rendszermagot + képes betölteni, ezért a + PXE használatával + akár egy távoli + CD-meghajtóról is indíthatjuk a + rendszert). + + + + A root-path opció a + rendszer indításához + használt gyökér + állományrendszert nevezi meg, amelyet + többnyire az NFS + jelölési módszere szerint kell + megadni. A PXE használata + során el lehet hagyni a gép + IP-címét egészen addig, amíg + nem engedélyezzük a rendszermagban a BOOTP + beállítást. Az + NFS szerver ekkor megegyzik a + TFTP szerverrel. + + + + + + + Beállítás a BOOTP + használatával + + + BOOTP + lemez nélküli + mûködés + + + Itt a bootpd (egyetlen + kliensre korlátozott) + beállítását láthatjuk. + Ezt az /etc/bootptab + állományba tegyük. + + Ne feledjük, hogy a BOOTP + használatához az + Etherboot portot a + NO_DHCP_SUPPORT + beállítással kell fordítanunk, + miközben a PXE esetében kell + a DHCP. Egyébként a + bootpd egyedüli + nyilvánvaló elõnye csupán annyi, + hogy az alaprendszer része. + + +.def100:\ + :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ + :sm=255.255.255.0:\ + :ds=192.168.4.1:\ + :gw=192.168.4.1:\ + :hd="/tftpboot":\ + :bf="/kernel.diskless":\ + :rp="192.168.4.4:/data/misc/diskless": + +margaux:ha=0123456789ab:tc=.def100 + + + + + + A rendszer elõkészítése az + <application>Etherboot</application> + számára + + Etherboot + + Az Etherboot + honlapján találhatunk egy + minden részletre kiterjedõ + dokumentációt (angolul), amely + elsõsorban ugyan a Linux típusú rendszerek + számára íródott, de ettõl + függetlenül még hasznos + információkat tartalmaz. A továbbiakban + csak annyit szeretnénk körvonalazni, hogy az + Etherboot miként + bírható mûködésre &os; + rendszerekkel. + + Elõször telepítenünk kell a + net/etherboot csomagot + vagy portot. + + Az Etherboot + beállítását (vagyis a + TFTP használatának + megadását az NFS helyett) az + Etherboot forrását + tartalmazó könyvtárban + található Config + állomány megfelelõ + átírásával tudjuk megtenni. + + Itt most floppyról fogjuk indítani a + rendszert. A többi módszerrel (PROM vagy &ms-dos; + program) kapcsolatban olvassuk el az + Etherboot + dokumentációját. + + A rendszerindító lemez + elkészítéséhez tegyünk egy + lemezt annak a gépnek a meghajtójába, + ahová az Etherboot + felkerült. Váltsunk az + Etherboot + könyvtárán belül az + src alkönyvtárba és + gépeljük be: + + +&prompt.root; gmake bin32/eszköztípus.fd0 + + + Az eszköztípus a + lemez nélküli munkaállomás Ethernet + kártyájától függ. Az + ugyanebben a könyvtárban található + NIC állományból + tudjuk kiolvasni, hogy az adott kártyához melyik + eszköztípus + tartozik. + + + + + A rendszer indítása <acronym>PXE</acronym> + használatával + + Alapértelmezés szerint a &man.pxeboot.8; + betöltõ a rendszermagot NFS-en + keresztül tölti be. Ha az + /etc/make.conf állományban + a LOADER_TFTP_SUPPORT + beállítást adjuk meg, akkor + TFTP támogatással is + lefordítható. Ezzel kapcsolatban a + /usr/share/examples/etc/make.conf + állományban található + megjegyzéseket érdemes elolvasnunk. + + A make.conf állományban + még további két másik hasznos + opciót is találhatunk a soros vonali konzollal + üzemelõ lemez nélküli gépek + számára: az egyik a + BOOT_PXELDR_PROBE_KEYBOARD, a másik + pedig a BOOT_PXELDR_ALWAYS_SERIAL. + + A gép indításakor úgy tudjuk + beüzemelni a PXE + használatát, ha a BIOS + beállításai között a + Boot from network opciót + választjuk ki, vagy a gép bekapcsolása + után lenyomjuk hozzá a megfelelõ + funkcióbillentyût. + + + + + A <acronym>TFTP</acronym> és + <acronym>NFS</acronym> szerverek + beállítása + + + TFTP + lemez nélküli + mûködés + + + NFS + lemez nélküli + mûködés + + + Ha a PXE vagy az + Etherboot a TFTP + protokollt használja, akkor az + állományszerveren a + tftpd démont kell + elindítani: + + + + Készítsünk egy + könyvtárat, ahonnan majd a + tftpd küldi az + állományokat, például legyen + ez a /tftpboot. + + + + Vegyük fel a következõ sort az + /etc/inetd.conf + állományunkba: + + tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot + + + A tapasztalat szerint egyes PXE + verziók a TFTP + TCP alapú + változatát használják. + Ebben az esetben vegyünk fel még egy + második sort is, ahol a dgram + udp részt stream + tcp-re cseréljük. + + + + + Mondjuk meg az inetd + démonnak, hogy olvassa újra a + konfigurációs + állományát. Az alábbi parancs + megfelelõ mûködéséhez Az + sornak szerepelnie + kell az /etc/rc.conf + állományban: + + &prompt.root; /etc/rc.d/inetd restart + + + + A tftpboot könyvtárat + bárhova rakhatjuk a szerveren. Viszont az + inetd.conf és + dhcpd.conf állományokban + ezt ne felejtsük fel megadni. + + Minden esetben engedélyeznünk kell az + NFS használatát és + vele együtt exportálni az NFS + szerverrõl elérni kívánt + állományrendszereket. + + + + Az /etc/rc.conf + állományba tegyük bele a + következõt: + + nfs_server_enable="YES" + + + + Az /etc/exports + állományban a lemez nélküli + rendszereknek szánt + gyökérkönyvtárat tegyük + elérhetõvé (a példában + írjuk át a kötet csatlakozási + pontját és a margaux + corbieres helyére + állítsuk be a saját lemez + nélküli munkaállomásaink + neveit: + + /data/misc -alldirs -ro margaux corbieres + + + + Kérjük meg a + mountd démont, hogy + olvassa újra a konfigurációs + állományát. Elõfordulhat + azonban, hogy ehhez elõször az + NFS szolgáltatást kell + engedélyezni az /etc/rc.conf + állományból és + újraindítani a gépet. + + &prompt.root; /etc/rc.d/mountd restart + + + + + + + Lemez nélküli rendszermag + fordítása + + + lemez nélküli + mûködés + a rendszermag + beállításai + + + Ha az Etherboot + használata mellett döntünk, akkor a lemez + nélküli kliensek számára a + rendszermagot a következõ + beállítások használatával + kell újrafordítani (a megszokottak + mellett): + + +options BOOTP # BOOTP-n keresztül kérünk IP-címet és hálózati nevet +options BOOTP_NFSROOT # a BOOTP-tõl kapott információk alapján csatoljuk a gyökeret NFS-en keresztül + + + Ezek mellett valószínûleg + szükségünk lesz a + BOOTP_NFSV3, BOOT_COMPAT + és BOOTP_WIRED_TO + beállítások megadására is + (lásd a NOTES + állományt). + + A beállítások nevei + régrõl származnak és némileg + félrevezetõek lehetnek, mivel + valójában semmit sem változtatnak a + rendszermagban levõ DHCP vagy a BOOTP + rutinok használatában (egyébként + meg lehet adni vagy az egyik vagy a másik protokoll + kizárólágos használatát + is). + + Fordítsuk le a rendszermagot (lásd ), és másoljuk a + dhcpd.conf állományban + megadott helyre. + + + Amikor a PXE protokollt + használjuk, a rendszermagot nem fontos az + imént felsorolt paraméterekkel + fordítanunk (habár ajánlatos). Az + engedélyezésükkel több + DHCP kérés keletkezik a + rendszermag elindulása közben, ezért + kisebb a kockázata annak, hogy a &man.pxeboot.8; + által bizonyos esetekben megszerzett és az + új értékek között valamilyen + ellentmondás jön létre. A + használatuk egyik elõnye, hogy így + mellékhatásként a + hálózati nevünket is megkapjuk. + Ellenkezõ esetben erre is találnunk kellene + valamilyen módot, például fenntartani + egy-egy rc.conf állományt + minden kliensen. + + + + Az Etherboot csak akkor lesz + képes betölteni a rendszermagot, ha device + hinteket is beépítünk. Ezt a + következõ beállítással tudjuk + megoldani (errõl bõvebben lásd a + NOTES állomány + megjegyzéseit): + + hints "GENERIC.hints" + + + + + + A rendszerindító + állományrendszer + elõkészítése + + + rendszerindító + állományrendszer + lemez nélküli + mûködés + + + A dhcpd.conf állomány + root-path + beállításának megfelelõen + hozzunk létre a rendszer + indítására alkalmas gyökér + állományrendszert. + + + Az állományrendszer + feltöltése a <command>make world</command> + paranccsal + + Ezzel a módszerrel a DESTDIR + könyvtárba pillanatok alatt telepíteni + tudunk egy teljes szûz rendszert (és nem csak a + rendszerindító + állományrendszert). Ehhez mindössze csak + annyit kell tenni, hogy lefuttatjuk a következõ + szkriptet: + + #!/bin/sh +export DESTDIR=/data/misc/diskless +mkdir -p ${DESTDIR} +cd /usr/src; make buildworld && make buildkernel +cd /usr/src/etc; make distribution + + Miután végzett, már csak a + DESTDIR könyvtárban + található /etc/rc.conf + és /etc/fstab + állományokat kell az igényeinkhez + igazítani. + + + + + + A lapozóterület + beállítása + + Amennyiben szükséges, a szerveren + található lapozóállományt + NFS-en keresztül el tudjuk + érni. + + + Lapozás <acronym>NFS</acronym>-sel + + A rendszermag maga nem támogatja az + NFS alapú lapozás + engedélyezését a rendszer + indításakor. A + lapozóállományt ezért a + rendszerindító szkripteken keresztül + aktiváljuk, amelyekben csatlakoztatunk egy + írható állományrendszert, ahol + létrehozzuk és engedélyezzük a + lapozóállományt. Tetszõleges + méretû lapozóállományt + például így tudunk + készíteni: + + &prompt.root; dd if=/dev/zero of=/a/lapozóállomány/helye bs=1k count=1 oseek=100000 + + Az engedélyezéséhez pedig a + következõ sort kell felvenni az + rc.conf + állományba: + + swapfile=/a/lapozóállomány/helye + + + + + + Egyéb problémák + + + Írásvédett + <filename>/usr</filename> használata + + + lemez nélküli + mûködés + írásvédett /usr + + + Ha a lemez nélküli + munkaállomáson X szervert akarunk futtatni, + akkor az XDM + konfigurációs állományait + kicsit módosítanunk kell, mert + alapértelmezés szerint a + /usr könyvtárban hozza + létre a naplókat. + + + + + Nem &os;-s szerver használata + + Amikor a rendszer indításához + használt állományrendszert nem egy &os; + alapú számítógépen + tároljuk, akkor elõször ezt egy &os;-s + gépen kell elkészíteni, majd a + tar vagy cpio + segítségével átmásolni a + megfelelõ helyre. + + Ilyen helyzetekben gyakran gondok adódhatnak + olyan speciális állományokkal, mint + például amelyek a /dev + könyvtárban találhatóak, mivel a + fõ- és aleszközazonosítók + tárolására szánt méret + különbözhet. Ezt úgy oldhatjuk meg, + ha exportálunk egy könyvtárat a nem &os; + alapú szerveren, ezt csatlakoztatjuk a &os;-s + gépen, majd a &man.devfs.5; + segítségével a + eszközleírókat a + felhasználó számára + észrevétlen módon foglaljuk le. + + + + + + + + ISDN + + ISDN + + Az ISDN technológiai és hardveres + hátterérõl sokat megtudhatunk Dan Kegel + ISDN-rõl szóló oldalán + (angolul). + + Az ISDN használatát röviden így + foglalhatnánk össze: + + + + Ha Európában élünk, akkor minden + bizonnyal az ISDN kártyákkal foglalkozó + szakaszt érdemes elolvasnunk. + + + + Ha elsõsorban betárcsázós + ISDN-nel szeretnénk csatlakozni az internetre egy + internet-szolgáltatón keresztül, akkor a + terminál adaptereket tárgyaló szakaszt + nézzük meg. A szolgáltatók + váltásakor ezzel jár a legtöbb + rugalmasság és a legkevesebb + probléma. + + + + Ha két helyi hálózat + összekötésére használjuk, vagy + az internethez egy bérelt ISDN vonalon keresztül + kapcsolódunk, akkor egy önálló + útválasztó vagy hálózati + híd beállításában + érdemes gondolkodnunk. + + + + A költség fontos szerepet játszik az + elfogadható megoldás + kiválasztásában. A most következõ + lehetõségeket a legolcsóbbtól indulva + kezdjük el felsorolni egészen a + legdrágábbig. + + + + + + Hellmuth + Michaelis + Készítette: + + + + + ISDN kártyák + + + ISDN + kártyák + + + A &os;-ben megtalálható ISDN + implementáció csak a DSS1/Q.931 (más + néven Euro-ISDN) szabvány szerint gyártott + passzív kártyákat támogatja. Ismer + azonban egyes olyan aktív kártyákat is, + amelyeknél a firmware további más + jelkezelési protokollokat is támogat. Ilyen + többek közt az elsõként támogatott + Primary Rate (PRI) ISDN kártya. + + Az isdn4bsd szoftver + segítségével kapcsolódni tudunk + más ISDN útválasztókhoz IP-n + keresztül a nyers HDLC felett, vagy szinkron PPP + használatával. Mindezeket a rendszermagban + található PPP-re vagy az + isppp-re építkezik. + + &os; alatt egyre több PC-s ISDN kártyához + készül el a támogatás, és a + visszajelzések azt mutatják, hogy + Európában és a világ minden + részén sikerrel használják + ezeket. + + A passzív ISDN kártyák közül + is leginkább az Infineon (korábban Siemens) + gyártmányú ISAC/HSCX/IPAC ISDN + chipkészletek támogatottak, de a Cologne chippel + rendelkezõ (de csak ISA buszos) ISDN kártyák, + a Winbond W6692 chipes PCI buszos kártyák, + és a Tiger300/320/ISAC chipkészletek egyes + változatai, valamint néhány + gyártófüggõ chipkészlettel + rendelkezõ kártya, mint például az AVM + Fritz!Card PCI V.1.0 és az AVM Fritz!Card PnP is + remekül mûködik. + + Jelenleg a következõ aktív ISDN + kártyákat támogatja a rendszer: AVM B1 (ISA + és PCI) BRI kártyák és az AVM T1 PCI + PRI kártyák. + + Az isdn4bsd + dokumentációját a rendszerünkön + belül a /usr/share/examples/isdn/ + könyvtárban találhatjuk meg, vagy + közvetlenül az isdn4bsd + honlapján, ahol több hivatkozást is + találunk tippekre, hibajegyzékekre és + bõségesebb dokumentációra, + például az isdn4bsd saját + kézikönyvére. + + Ha szeretnénk egy másik ISDN protokoll + támogatásának + kifejlesztésében résztvenni, vagy egy + jelenleg még nem támogatott ISDN + kártyát használhatóvá tenni, + esetleg valamilyen más módon segíteni az + isdn4bsd ügyét, + vegyük fel a kapcsolatot &a.hm; fejlesztõvel. + + Az isdn4bsd + telepítésével, + beállításával és + hibaelhárításával kapcsolatos + kérdéseinket a &a.isdn.name; levelezési + listán tehetjük fel. + + + + + ISDN terminál adapterek + + Az ISDN számára olyanok a terminál + adapterek, mint a hagyományos telefonvonalak + számára a modemek. + + modem + + A legtöbb terminál adapter a Hayes-modemek + szabványos AT parancskészletét + használja, és könnyen be lehet iktatni egy + modem helyett. + + A terminál adapterek alapvetõen ugyanúgy + mûködnek, mint a modemek, kivéve, hogy egy + átlagos modemnél jóval nagyobb + adatátviteli sebességre képesek. + Ezért a PPP kapcsolatunkat + pontosan ugyanúgy kell beállítani, mint a + modemek esetében. Ne felejtsük a soros pont + sebességét a maximális + értékre állítani. + + PPP + + A terminál adapterek használatának + egyik legnagyobb elõnye, hogy + segítségükkel dinamikus PPP-n keresztül + tudunk az internet-szolgáltatónkhoz + kapcsolódni. Mivel az IP-címtartomány + egyre inkább szûkösebb, a legtöbb + szolgáltató nem szívesen oszt ki + bárkinek is statikus IP-címet. A legtöbb + önálló útválasztó + azonban nem képes alkalmazkodni az IP-címek + dinamikus kiosztásához. + + A terminál adapter az elérhetõ + lehetõségeket és a kapcsolat + stabilitását tekintve teljesen a PPP + démontól függ. Emiatt egy &os;-s + gépet könnyû modemrõl + átállítani az ISDN + használatára, ha már egyszer + beállítottuk a PPP démont. Ezzel + együtt azonban a PPP használata során + tapasztalt problémák ugyanúgy ismét + felmerülnek. + + Ha a maximális stabilitásra van + szükségünk, akkor a rendszermag PPP beállítását + használjuk, és ne a felhasználói PPP + megoldást. + + A &os; hivatalosan az alábbi terminál + adaptereket ismeri: + + + + Motorola BitSurfer és + Bitsurfer Pro + + + + Adtran + + + + Valószínûleg a többi terminál + adapterrel is képes együttmûködni, mivel a + terminál adapterek gyártói + általában igyekeznek a termékeiket a + szabványos modemes AT parancskészletével + kompatibilissá tenni. + + Az igazi probléma a külsõ terminál + adapterekkel adódik, mivel, akárcsak a modemek + esetében, egy nagyon jó soros + kártyát igényelnek. + + A soros eszközök + mûködésének részleteit valamint + az aszinkron és szinkron soros portok közti + különbségeket a &os; soros + hardverekrõl szóló cikkében + olvashatjuk. + + A terminál adaptereken keresztül + elérhetõ sebességet a PC-kben + található szabványos (aszinkron) soros port + 115,2 Kb/mp-re korlátozza, még + 128 Kb/mp-es adatátvitelû kapcsolatok + esetében is. Az ISDN által nyújtott + 128 Kb/mp kihasználásához a + terminál adaptert egy szinkron soros + kártyával kell összekötnünk. + + Ne higyjük, hogy egy belsõ terminál adapter + megvásárlásával + megmenekülünk ettõl a gondtól. A + belsõ terminál adapterekbe egyszerûen csak egy + sima szabványos PC-s soros portot építettek + bele. Mindössze egy soros kábelt és egy + konnektort takarítunk meg velük. + + A terminál adapterhez csatlakozó szinkron + kártyák legalább olyan gyorsak, mint egy + önálló útválasztó, + és egy egyszerû 386-osra épülõ &os; + rendszerrel talán még rugalmasabban is + kezelhetõek. + + A terminál adapter plusz szinkron kártya + kontra önálló útválasztó + kérdése már + hitkérdéssé fajult, amirõl igen sokat + vitatkoztak szerte a levelezési listákon. A + teljes okfejtés elolvasásához az archívum + böngészését javasoljuk. + + + + + Önálló ISDN hálózati hidak + és útválasztók + + + ISDN + önálló hálózati + hidak és útválasztók + + + Az ISDN hidak vagy útválasztók nem + egészen a &os; vagy operációs rendszerek + területéhez tartoznak. Az + útválasztás és a + hálózatok hidak alapjainak a + számítógépes + hálózatokról szóló + szakirodalomban járhatunk utána. + + Ebben a szakaszban a hálózati híd + és az útválasztó + kifejezéseket egymás + szinonímájaként fogjuk + használni. + + Ahogy az olcsóbb ISDN + útválasztók és hidak árai + egyre jobban csökkennek, ezért egyre inkább + népszerûbbé válnak. Az ISDN + útválasztó egy apró doboz, amelyet + közvetlenül a helyi Ethernet + hálózatunkra tudunk csatlakoztatni, és a + többi útválasztóhoz vagy hídhoz + kapcsolódik. A benne található szoftverrel + képes kommunikálni a PPP vagy más + egyéb népszerû protokollokon + keresztül. + + Az útválasztó egy szabványos + terminál adapternél sokkal nagyobb + adatátvitelt tesz lehetõvé, mivel a teljes + szinkron ISDN kapcsolatot képes + kihasználni. + + Az ISDN útválasztókkal és + hidakkal kapcsolatban az egyik legnagyobb + problémát a különbözõ + gyártók közti eltérések + jelenthetik. Ha egy szolgáltatóhoz akarunk ezen a + módon csatlakozni, akkor érdemes elõzetesen + egyeztetni az igényeinket velük. + + Ha két helyi hálózati szegmenst akarunk + összekapcsolni, mint például az otthoni + és az irodai hálózatot, akkor ez a + megoldás jár a legkevesebb karbantartási + költséggel. Mivel ekkor mi magunk + vásároljuk a kapcsolat mind a két + oldalára a felszerelést, biztosak lehetünk + benne, hogy az így létrehozott + összekötettés mûködni fog. + + Például, ha egy otthon vagy a vállalat + egy fiókjánál levõ gépet + akarjuk összekötni az igazgatóság + hálózatával, akkor a következõ + felállást érdemes + követnünk: + + + Egy otthoni vagy egy fiókbeli + hálózat + + 10 Base 2 + + A hálózat busz + topológiájú és 10 Base 2 + Ethernetet használ (thinnet). Ha + szükséges, akkor az + útválasztót egy AUI/10BT + adó-vevõvel csatlakoztassuk a + hálózati kábelre. + + + + + + + + ---Sun munkaállomás +| +---&os; +| +---Windows 95 +| +az önálló útválasztó + | +ISDN BRI vonal + + + + 10 Base 2 Ethernet + + + + Ha az otthoni vagy fiókbeli + számítógép az egyedüli, akkor + egy keresztkötésû sodrott érpár + kábellel akár közvetlenül is + csatlakozhatunk az útválasztóhoz. + + + + Az igazgatósági iroda vagy egy másik + helyi hálózat + + 10 Base T + + A hálózat csillag + topológiájú, és 10 Base T Ethernet + kábelezésû (sodrott + érpár). + + + + + + + + -------Novell szerver + | H | + | ---Sun + | | + | U ---&os; + | | + | ---Windows 95 + | B | + |___---az önálló útválasztó + | + ISDN BRI vonal + + + + Az ISDN hálózat + felépítése + + + + + A legtöbb útválasztó/híd + elõnye, hogy egyszerre 2 + egymástól független PPP + kapcsolatot tudunk felépíteni velük 2 + egymástól független géppel. Ezt a + legtöbb terminál adapter nem támogatja, + kivéve azok a (általában drága) + típusok, amelyek két soros porttal rendelkeznek. + Ezt ne tévesszük össze a csatornák + nyalábolásával, az MPP-vel és a + többivel. + + Ez nagyon hasznos lehet például olyan + esetekben, amikor van egy dedikált ISDN kapcsolatunk az + irodában, amelyet ugyan szeretnénk megcsapolni, de + nem szeretnénk a másik ISDN vonalat is elrabolni. + Az irodában levõ A útválasztó + képes a dedikált B csatornájú + kapcsolaton (64 Kb/mp) keresztül elérni az + internetet, miközben a másik B csatornát + ettõl független adatkapcsolatra használja. A + második B csatorna így használható + betárcsázásra, + kitárcsázásra vagy a másik B + csatornával együtt dinamikus + nyalábolásra (MPP stb.) a nagyobb + sávszélesség elérése + érdekében. + + IPX/SPX + + Az Ethernetes híd nem IP alapú forgalmat is + képes továbbítani, ezért rajta + keresztül akár IPX vagy SPX és más + egyéb protokollokat is használni tudunk. + + + + + + + + + Chern + Lee + Írta: + + + + + Hálózati + címfordítás + + + Áttekintés + + natd + + A &os; hálózati + címfordításért felelõs + démonprogramja, a &man.natd.8; (Network Address + Translation daemon), a beérkezõ nyers IP csomagokat + dolgozza fel, és a helyi gépek + forráscímét kicserélve + visszailleszti ezeket a csomagokat a kimenõ folyamba. A + &man.natd.8; mindezt úgy teszi a forrás + IP-címekkel és portokkal, hogy amikor az adat + visszaérkezik, akkor képes lesz megmondani a + csomag eredeti küldõjét és + visszaküldeni neki a választ. + + internet-kapcsolat + megosztása + NAT + + A hálózati címfordítást + általában az internet-kapcsolatok + megosztásánál alkalmazzuk. + + + + + A hálózat + felépítése + + Az IPv4 világában egyre jobban fogyó + IP-címek és az egyre növekvõ + számú, nagysebességre vágyó, + például kábeles vagy DSL-es + fogyasztók miatt az igény is egyre nagyobb az + internet-kapcsolatok megosztására. Ha több + számítógéppel szeretnénk + egyetlen kapcsolaton és egy IP-címen + keresztül kapcsolódni az internetre, akkor ehhez a + &man.natd.8; tökéletes + választás. + + Az esetek többségében a + felhasználók egy kábeles vagy DSL vonalra + csatlakoznak, melyhez egyetlen IP-cím tartozik, és + ezen a gépen keresztül szeretnék + elérni az internetet a helyi hálózaton + levõ többi géprõl. + + Ezt úgy tudjuk elérni, ha az internethez + kapcsolódó &os;-s gépet + átjárónak állítjuk be. Ebben + az átjáróban legalább két + hálózati felületnek kell léteznie + — az egyikkel az internetes + útválasztóhoz, a másikkal pedig a + helyi hálózathoz kapcsolódik. A belsõ + hálózaton levõ gépek egy hub vagy egy + switch segítségével csatlakoznak + egymáshoz. + + + Több módon is el tudjuk érni a + belsõ hálózatról az internetet egy + &os;-s átjárón keresztül. Ebben a + példában most csak olyan + átjárókkal foglalkozunk, amelyekben + legalább két hálózati + kártya található. + + + + + + + + + _______ __________ ________ + | | | | | | + | Hub |-----| B kliens |-----| Útvál. |----- Internet + |_______| |__________| |________| + | + ____|_____ +| | +| A kliens | +|__________| + + + + A hálózat felosztása + + + + Egy ehhez hasonló beállítás igen + gyakori a megosztott internet-kapcsolatok esetében. A + helyi hálózat egyik gépe csatlakozik az + internetre. A többi gép ezen az + átjárón keresztül + éri el az internetet. + + + + + + + rendszermag + beállítása + + + Beállítás + + A rendszermag beállításait + tartalmazó állományban a + következõ beállításokat kell + megadnunk: + + options IPFIREWALL +options IPDIVERT + + A fentiek mellett még ezeket a + lehetõségeket tudjuk választani: + + options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPFIREWALL_VERBOSE + + A következõnek kell az + /etc/rc.conf állományban + lennie: + + gateway_enable="YES" +firewall_enable="YES" +firewall_type="OPEN" +natd_enable="YES" +natd_interface="fxp0" +natd_flags="" + + + + A gépet átjárónak + állítja be. Hatása megegyezik a + sysctl net.inet.ip.forwarding=1 parancs + kiadásával. + + + + A rendszer indításakor engedélyezi + az /etc/rc.firewall + állományban szereplõ + tûzfalszabályok + használatát. + + + + Egy olyan elõre definiált tûzfalat ad + meg, amely alapból mindent beenged. Az + /etc/rc.firewall + állományban találhatjuk a többi + típust. + + + + Megadja, hogy melyik felületen + továbbítsunk csomagokat az internet + felé (ez a felület csatlakozik az + internetre). + + + + Itt szerepel minden további paraméter, + amelyet még az indításkor át + kell adnunk a &man.natd.8; démonnak. + + + + Amikor megadjuk ezeket a beállításokat + az /etc/rc.conf állományban, + pontosan ugyanaz történik, mintha a natd + -interface fxp0 parancsot adtunk volna ki a rendszer + indításakor. Ez tehát manuálisan is + elindítható. + + + Ha túlságosan sok paramétert akarunk + egyszerre beállítani &man.natd.8; + használatához, akkor akár egy + külön konfigurációs + állományt is megadhatunk. Ebben az esetben a + konfigurációs állományt a + következõ módon kell megjelölni az + /etc/rc.conf + állományban: + + natd_flags="-f /etc/natd.conf" + + Ekkor a /etc/natd.conf + állomány fogja tartalmazni a + beállításokat, soronként egyet. + Például a következõ szakaszban ez lesz + a tartalma: + + redirect_port tcp 192.168.0.2:6667 6667 +redirect_port tcp 192.168.0.3:80 80 + + A konfigurációs + állományról és az + opció használatával + kapcsolatban olvassuk el a &man.natd.8; man + oldalát. + + + A helyi hálózaton mindegyik gépnek az + RFC 1918 + által megadott privát IP-címterekbõl + származó címet kell használnia, + és az alapértelmezett + átjárónak mindenhol a + natd démont futtató + gép IP-címét kell megadni. + + Például a belsõ hálózaton + található A és + B kliensek IP-címei rendre 192.168.0.2 és 192.168.0.3, míg a &man.natd.8; + démont futtató gép belsõ címe + 192.168.0.1. Az + A és a B kliens + alapértelmezett átjáróját a + natd gépre, vagyis a 192.168.0.1 címre kell + beállítanunk. A natd + gép külsõ, avagy internetes felülete + semmilyen további módosítást nem + igényel a &man.natd.8; + mûködéséhez. + + + + + A portok átirányítása + + A &man.natd.8; alkalmazásának + hátránya, hogy a belsõ + hálózatra csatlakozó kliensek az + internetrõl nem érhetõek el. Tehát a + helyi hálózat kliensei képesek + elérni a külvilágot, de az visszafelé + már nem igaz. Ez akkor jelent igazából + problémát, ha az egyik belsõ kliensen + szolgáltatásokat akarunk futtatni. A + probléma egyik egyszerû megoldása, ha a + natd használatával az + internet felõl egyszerûen + átirányítunk bizonyos portokat a + megfelelõ belsõ kliensre. + + Például tegyük fel, hogy az + A kliens egy IRC szervert, míg a + B kliens egy webszervert futtat. Ez akkor fog + mûködni, ha a szolgáltatásokhoz + tartozó 6667 (IRC) és 80 (web) portokat + átirányítjuk a hozzájuk + tartozó gépek felé. + + Ehhez a &man.natd.8; démonnak a + paramétert kell + átadni. A pontos felírás így + néz ki: + + -redirect_port protokoll célIP:célPORT[-célPORT] + [külsõIP:]külsõPORT[-külsõPORT] + [távoliIP[:távoliPORT[-távoliPORT]]] + + A fenti példában tehát ezt kell + megadnunk: + + -redirect_port tcp 192.168.0.2:6667 6667 + -redirect_port tcp 192.168.0.3:80 80 + + Így az egyes külsõ tcp + portokat átirányítjuk a belsõ + hálózat gépei felé. + + A paraméternek + akár egész porttartományokat is + megadhatunk. Például a tcp + 192.168.0.2:2000-3000 2000-3000 + megadásával az összes 2000-tõl 3000-ig + terjedõ port csatlakozását + leképezzük az A kliens 2000 + és 3000 közti portjaira. + + Ezek a beállítások a &man.natd.8; + közvetlen futtatásakor adhatóak meg, esetleg + az /etc/rc.conf állományban + az natd_flags="" opció keresztül, + vagy egy külön konfigurációs + állományban. + + A többi beállítási + lehetõséget a &man.natd.8; man oldalán + ismerhetjük meg. + + + + + A címek + átirányítása + + címátirányítás + + A címek átirányítása + abban az esetben hasznos, amikor több IP-cím + áll rendelkezésünkre, de ezek egy + géphez tartoznak. Ilyenkor az &man.natd.8; képes + a belsõ hálózat egyes gépeihez + saját külsõ IP-címet rendelni. A + &man.natd.8; a belsõ hálózat kliensei + által küldött csomagokban kicseréli a + címüket a megfelelõ külsõ + IP-címmel, illetve az ezekre a címekre + érkezõ forgalmat továbbítja a + megfelelõ belsõ kliens irányába. Ezt a + megoldást statikus hálózati + címfordításnak is nevezzük. + Például a 128.1.1.2 + és a 128.1.1.3 + IP-címek a natd démont + futtató átjáróhoz tartoznak. A + 128.1.1.1 cím + használható a natd + alapú átjáró külsõ + IP-címeként, miközben a 128.1.1.2 és a 128.1.1.3 címeket a belsõ + hálózaton elérhetõ A + és B kliensek felé + közvetítjük. + + A felírása + tehát a következõ: + + -redirect_address helyiIP publikusIP + + + + + + helyiIP + A helyi hálózaton + található kliens saját + IP-címe. + + + publikusIP + A klienshez tartozó megfelelõ + külsõ IP-cím. + + + + + + Az iménti példában a pontos + paraméterek ezek lesznek: + + -redirect_address 192.168.0.2 128.1.1.2 +-redirect_address 192.168.0.3 128.1.1.3 + + A opcióhoz + hasonlóan ez is megadható az + /etc/rc.conf állományban az + natd_flags="" + beállításon keresztül vagy egy + külön konfigurációs + állományban. A címek + átirányításával nincs + szüksége a portok + átirányítására, mivel az + adott IP-címhez tartozó összes forgalmat + átirányítjuk. + + A natd démont + futtató gépen a külsõ IP-címeket + aktiválni kell és a külsõ + felületéhez kell rendelni. A &man.rc.conf.5; man + oldalon járhatunk utána, hogy mindezt hogyan is + tudjuk megcsinálni. + + + + + + Párhuzamos vonali IP (PLIP) + + PLIP + + párhuzamos vonali IP + PLIP + + + A párhuzamos vonali IP (Parallel Line IP, PLIP) a + TCP/IP protokoll használatát valósítja + meg párhuzamos porton keresztül. Olyan gépek + számára lehet hasznos, amelyekben nincs + hálózati kártya, vagy esetleg + laptopoknál. Ebben a szakaszban a következõket + tárgyaljuk: + + + + Párhuzamos (laplink) kábel + készítése + + + + Két számítógép + összekapcsolása a PLIP + segítségével + + + + + Párhuzamos kábel + készítése + + Párhuzamos kábelt a legtöbb + számítástechnikai boltban tudunk + vásárolni. Ha mégsem tudnánk sehol + sem beszerezni, vagy egyszerûen tudni szeretnénk, + hogyan lehet ilyet készíteni, akkor az + alábbi táblázatban láthatjuk, hogy + miként tudunk egy hétköznapi + nyomtatókábelt átalakítani a + céljainkra. + + + A párhuzamos kábel hálózati + használatra alkalmas bekötése + + + + + A-név + A-vég + B-vég + Leírás + Post/Bit + + + + + + DATA0 +-ERROR + 2 +15 + 15 +2 + Adat + 0/0x01 +1/0x08 + + + + DATA1 ++SLCT + 3 +13 + 13 +3 + Adat + 0/0x02 +1/0x10 + + + + DATA2 ++PE + 4 +12 + 12 +4 + Adat + 0/0x04 +1/0x20 + + + + DATA3 +-ACK + 5 +10 + 10 +5 + Vál. imp. + 0/0x08 +1/0x40 + + + + DATA4 +BUSY + 6 +11 + 11 +6 + Adat + 0/0x10 +1/0x80 + + + + GND + 18-25 + 18-25 + Föld + - + + + +
+
+ + + A PLIP beállítása + + Elõször is szereznünk kell valahonnan egy + laplink kábelt. Ha ez megvan, akkor mind a két + gépen ellenõrizzük, hogy a rendszermag + tartalmazza az &man.lpt.4; meghajtót: + + &prompt.root; grep lp /var/run/dmesg.boot +lpt0: <Printer> on ppbus0 +lpt0: Interrupt-driven port + + A párhuzamos portnak megszakítással + vezéreltnek kell lennie (interrupt driven), + és az /boot/device.hints + állományban szerepelnie kell + nagyjából a következõ soroknak: + + hint.ppc.0.at="isa" +hint.ppc.0.irq="7" + + Ezután nézzük meg, hogy a rendszermag + beállításait tartalmazó + állományban megjelenik-e a device + plip sor, vagy a plip.ko modul + betöltõdött-e. Akármelyik is + történt, a párhuzamos hálózati + felület most már a rendelkezésünkre + áll, és az &man.ifconfig.8; paranccsal ezt meg is + tudjuk nézni: + + &prompt.root; ifconfig plip0 +plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 + + A laplink kábelt csatlakoztassuk mind a két + számítógéphez. + + Mind a két a hálózati felület + paramétereit root + felhasználóként hangoljuk be. + Például, ha az + egyikgép + nevû gépet akarjuk a + másikgép + nevû géphez csatlakoztatni: + + egyikgép <-----> másikgép +IP-cím 10.0.0.1 10.0.0.2 + + Az + egyikgép + felületét így állítsuk be: + + &prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2 + + A + másikgép + felületét így állítsuk be: + + &prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1 + + Ezt követõen már egy mûködõ + kapcsolatnak kell felépülnie. Az egyéb + részletek kapcsán az &man.lp.4; és az + &man.lpt.4; man oldalait nézzük át. + + Ezt a két gépet vegyük fel az + /etc/hosts állományba + is: + + 127.0.0.1 localhost.saját.tartomány localhost +10.0.0.1 egyikgép.saját.tartomány egyikgép +10.0.0.2 másikgép.saját.tartomány + + A kapcsolat + mûködõképességérõl + úgy tudunk meggyõzõdni, ha az egyik + géprõl megpróbáljuk pingelni a + másikat. Például az + egyikgép + esetében: + + &prompt.root; ifconfig plip0 +plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 +&prompt.root; netstat -r +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +másikgép egyikgép UH 0 0 plip0 +&prompt.root; ping -c 4 másikgép +PING másikgép (10.0.0.2): 56 data bytes +64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms +64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms +64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms +64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms + +--- másikgép ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms + + +
+ + + + + + Aaron + Kaplan + Eredetileg írta: + + + + + Tom + Rhodes + Átszervezte és + kiegészítette: + + + + + Brad + Davis + Tovább bõvítette: + + + + + + Az IPv6 + + Az IPv6 (másik néven az IPng, vagy a az + internet következõ generációs + protokollja, IP next generation) a + jól ismert IP protokoll (avagy az IPv4) + új változata. Hasonlóan a jelenleg + mûködõ összes többi BSD rendszerhez, a + &os; is tartalmazza a KAME IPv6 referencia + implementációt. Ezért ha ezzel + szeretnénk kísérletezni, akkor ehhez a &os; + minden eszköz biztosít számunkra. Ez a szakasz + az IPv6 beállítását és + használatát mutatja be. + + Az 1990-es évek elején az IPv4-es + címterek rohamos mértékû + kimerülését figyelték meg. Az internet + jelenlegi bõvülési üteme mellett két + nagyobb aggodalomnak adott okot: + + + + A címek elfogyása. Napjainkban efelõl + egyre kevesebb a kétség, mivel az RFC 1918 + által megfogalmazott privát címterek + (10.0.0.0/8, 172.16.0.0/12, és 192.168.0.0/16), valamint a + hálózati címfordítás + (Network Address Translation, NAT) + használata igen elterjedt. + + + + Az útválasztási + táblázatok méretének + növekedése. Ez még manapság is + aggasztó. + + + + Az IPv6 ezeket és még más egyéb + problémákat a következõ módon + igyekszik megoldani: + + + + A 128 bites címtér használata. + Más szóval, elméletben összesen + 340 282 366 920 938 463 463 374 607 431 768 211 456 + darab címet képes kiosztani. Ez azt jelenti, + hogy bolygónk minden egyes + négyzetméterére + megközelítõleg 6,67 * 10^27 IPv6 + típusú cím jut. + + + + Az útválasztók a saját + táblázataikban csak a hálózatok + összevont címeit tárolják el, + ezáltal egy átlagos + útválasztási táblázatban + található bejegyzések száma 8192 + alá csökken. + + + + Az IPv6 emellett még rengeteg más + elõnyös lehetõséget is + kínál: + + + + A címek automatikus beállítása + (lásd RFC 2462) + + + + Bárkiküldés (anycast, vagyis egy + a sokból) + + + + Kötelezõ többesküldés + (mandatory multicast) + + + + IPsec (IP szintû védelem) + + + + Egyszerûsített fejléc + + + + Mobil IP + + + + IPv6-IPv4 közti + átjárhatóság + + + + Ha mindezekrõl többet szeretnénk megtudni, + akkor erre érdemes továbblépnünk: + + + + Az IPv6 áttekintése a playground.sun.com + honlapon + + + + KAME.net + + + + + Az IPv6 címek háttere + + Az IPv6 címeknek több típusa + létezik: az egyesküldés (unicast), a + bárkiküldés (anycast) és a + többesküldés (multicast). + + Az egyesküldéshez használt címek + jól ismert címek. Az így + elküldött csomag pontosan ahhoz a felülethez + érkezik meg, amelyhez az adott cím + tartozik. + + A bárkiküldéshez használt + címek felírásukban tökéletesen + megegyeznek az egyesküldés esetével, de + valójában felületek egy csoportját + címezik. A bárkiküldésre + beállított címekre küldött + csomagok mindig a(z útválasztó szerinti) + legközelebb levõ felülethez érkeznek meg. + A bárkiküldést az + útválasztók számára + találták ki. + + A többesküldéshez használt + címek felületek egy csoportját nevezik meg. + A többküldésre beállított + címekre érkezõ csomagokat a csoport minden + egyes tagja megkapja. + + + Az IPv4 esetében az + üzenetszórásra szánt + (általában az xxx.xxx.xxx.255 + formátumú) címeket az IPv6 + esetében többküldést + megvalósító címekkel + fejezzük ki. + + + + Fenntartott IPv6 címek + + + + + IPv6 cím + Az elõtag hossza (bitekben) + Leírás + Megjegyzés + + + + + + :: + 128 bit + nem specifikált + Vö. a 0.0.0.0 + címmel az IPv4 esetében. + + + + ::1 + 128 bit + saját cím + Vö. a 127.0.0.1 címmel az IPv4 + esetében. + + + + ::00:xx:xx:xx:xx + 96 bit + IPv4 beágyazása + Az alsó 32 bit egy IPv4 + formátumú cím. Ezt IPv4 + kompatibilis IPv6 címnek is + nevezik. + + + + ::ff:xx:xx:xx:xx + 96 bit + IPv4-re leképzett IPv6 címek + Az alsó 32 bit egy IPv4 címet + jelöl. Olyan gépeknél + használatos, amelyek nem támogatják + az IPv6 protokollt. + + + + fe80:: - feb:: + 10 bit + helyi összeköttetés + Vö. az IPv4 loopback címeivel. + + + + fec0:: - fef:: + 10 bit + helyi cím +   + + + + ff:: + 8 bit + többesküldés +   + + + + 001 (2-es alapú) + 3 bit + globális egyesküldés + Az összes globális + egyesküldéshez tartozó címet + ebbõl a tartományból osztjuk ki. Az + elsõ 3 bit + értéke001. + + + +
+
+ + + Az IPv6 címek olvasása + + Az IPv6 címek kanonikus formája így + ábrázolható: x:x:x:x:x:x:x:x, ahol mindegyik + x egy 16 bites hexadecimális + érték. Például: FEBC:A574:382B:23C1:AA49:4592:4EFE:9982. + + Gyakran a címek hosszú nullákból + álló sorozatokat tartalmaznak, ezért + mindegyik ilyen sorozatot rövidíteni tudjuk a + :: jelöléssel. Rajtuk + kívül még az egyes hexadecimális + csoportokban a bevezetõ nullák is + elhagyhatóak. Például az fe80::1 cím kanonikus + formája: fe80:0000:0000:0000:0000:0000:0000:0001. + + A harmadik forma szerint az utolsó 32 bites + részt írjuk fel a megszokott (decimális) + IPv4 stílusú pontozással, ahol tehát + a . választja el a tagokat. Így + például a 2002::10.0.0.1 felírás a + 2002:0000:0000:0000:0000:0000:0a00:0001 + kanonikus (hexadecimális) + ábrázolásnak feleltethetõ meg, ami + pedig egyszerûen 2002::a00:1 alakban is + megadható. + + Mostanra már minden bizonnyal a kedves olvasó + érteni fogja a következõt: + + &prompt.root; ifconfig + + rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 + inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 + ether 00:00:21:03:08:e1 + media: Ethernet autoselect (100baseTX ) + status: active + + A fe80::200:21ff:fe03:8e1%rl0 cím + az automatikusan beállított helyi + összeköttetés címe. Ez az automatikus + beállítás részeként a + MAC-címbõl jött létre. + + Az IPv6 címek szerkezetérõl + további részleteket az RFC 3513-ban + találunk. + + + + + Kapcsolódás + + Jelenleg négy módon tudunk más IPv6-os + géphez és hálózathoz + csatlakozni: + + + + Kérjünk a hálózati + elérésünkért felelõs + illetékesektõl IPv6 alapú + hálózatot. A részletek + tekintetében vegyük fel a kapcsolatot az + internet-szolgáltatónkkal. + + + + A SixXS a + világ minden táján kínál + végpontokkal rendelkezõ tunneleket. + + + + Egy 6-ból-4 (RFC 3068) + típusú tunnellel. + + + + Ha betárcsázós kapcsolatunk van, + akkor használjuk a net/freenet6 portot. + + + + + + + A nevek feloldása az IPv6 + világában + + IPv6 alatt régebben két típusa volt a + nevek feloldásáért felelõs + rekordoknak. Az IETF az A6 rekordokat idõközben + elavultnak nyilvánította. Ezért + manapság már az AAAA rekordok tekinthetõek + szabványosnak. + + Az AAAA rekordok használata magától + értetõdik. A hálózati + nevükhöz az alábbi módon tudunk IPv6 + címet rendelni az elsõdleges zónát + leíró állományban: + + SAJÁTNÉV AAAA SAJÁTIPv6CÍM + + Ha nem rendelkezünk saját + névfeloldási zónával, akkor erre + kérjük meg a névfeloldást + végzõ szolgáltatónkat. A + bind jelenlegi változatai (8.3 + és 9), valamint a dns/djbdns (IPv6 + támogatására vonatkozó + javítással) támogatják az AAAA + rekordokat. + + + + + Az <filename>/etc/rc.conf</filename> szükséges + módosításai + + + Az IPv6 kliensek beállításai + + Ezek a beállítások egy helyi + hálózaton levõ gépre vonatkoznak, + nem pedig egy útválasztóra. Az + &man.rtsol.8; az alábbi megadásával fogja + automatikusan beállítani a felületeinket a + rendszer indításakor: + + ipv6_enable="YES" + + Ha az fxp0 felülethez + statikusan akarunk IP-címet rendelni, + például a + 2001:471:1f11:251:290:27ff:fee0:2093 címet, + akkor ehhez a következõt kell megadni: + + ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093" + + Az /etc/rc.conf + állományban az alapértelmezett + átjárót a következõ + módon tudjuk a 2001:471:1f11:251::1 címre + beállítani: + + ipv6_defaultrouter="2001:471:1f11:251::1" + + + + + Az IPv6 útválasztók és + átjárók + beállítása + + Itt most a tunnelt biztosító + szolgáltató által mutatott irányt + követjük, és olyan formára + alakítjuk, amely megmarad az + újraindítás után is. A rendszer + indításakor az /etc/rc.conf + állományban valami ilyesmit kell megadni a + járat + visszaállításához: + + Soroljuk fel a beállítandó + általános tunnel alapú felületeket, + ilyen lehet például a + gif0: + + gif_interfaces="gif0" + + A felületnek állítsunk be egy helyi + végpontot a + SAJÁT_IPv4_CÍM + megadásával, valamint egy távoli + végpontot a + TÁVOLI_IPv4_CÍM + megadásával: + + gifconfig_gif0="SAJÁT_IPv4_CÍM TÁVOLI_IPv4_CÍM" + + Az IPv6 tunnelünk végpontjához kapott + cím aktiválásához az + alábbit kell még megadnunk: + + ipv6_ifconfig_gif0="SAJÁT_KAPOTT_IPv6_TUNNEL_VÉGPONTJÁNAK_CÍME" + + Ezután már csak az alapértelmezett + útvonalat kell beállítani az IPv6 + számára. Ez az IPv6 járat másik + oldala: + + ipv6_defaultrouter="SAJÁT_IPv6_TÁVOLI_TUNNEL_VÉGPONTJÁNAK_CÍME" + + + + + Az IPv6 tunnel beállításai + + Amennyiben a szerver IPv6 alapú forgalmat + közvetít a hálózatunk és a + világ között, az + /etc/rc.conf állományba a + következõt kell felvennünk: + + ipv6_gateway_enable="YES" + + + + + + Az útválasztók kihirdetése + és automatikus konfigurációja + + Ebben a szakaszban az &man.rtadvd.8; + beállításával fogjuk az + alapértelmezett IPv6 útvonalat kihirdetni. + + Az &man.rtadvd.8; engedélyezéséhez az + alábbi sort kell betennünk az + /etc/rc.conf + állományba: + + rtadvd_enable="YES" + + Emellett még fontos megadnunk azt a felületet, + ahol az IPv6 útválasztó + kérelmezését végezzük. Ha erre + a feladatra például az + fxp0 felületet választjuk, + akkor errõl az &man.rtadvd.8; így + értesíthetõ: + + rtadvd_interfaces="fxp0" + + Most pedig készítenünk kell hozzá + egy konfigurációt is, vagyis az + /etc/rtadvd.conf állományt. + Íme erre egy példa: + + fxp0:\ + :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether: + + Az fxp0 felületet + természetesen cseréljük ki a + sajátunkkal. + + Ezután a 2001:471:1f11:246:: címre + helyére írjuk be a saját kiosztásunk + elõtagját. + + Egy egész /64 + alhálózat esetén nem is kell többet + megadni. Minden más helyezetben az elõtag + hosszára prefixlen# vonatkozó + értéket is be kell még + állítanunk. + + +
+ + + + + + Harti + Brandt + Készítette: + + + + + Az Aszinkron adatátviteli mód (ATM) + + + A klasszikus IP-címek + beállítása ATM felett + (állandó) + + A klasszikus IP ATM felett (Classical IP over ATM, + CLIP) a legegyszerûbb módszer az + IP-címek használatára az Aszinkron + adatátviteli móddal (Asynchronous Transfer Mode, + ATM) együtt. Kapcsolt és állandó + kapcsolatok (Switched Virtual Channel, SVC és Permanent + Virtual Channel, PVC) esetén egyaránt + megfelelõ. Ebben a szakaszban ez utóbbival fogunk + foglalkozni. + + + A teljesen hálószerû + konfigurációk + + A CLIP + beállítását állandó + csatornákon például úgy tudjuk + megoldani, ha az összes gépet külön + ezekre a célokra szánt állandó + csatornákkal összekapcsoljuk egymással. Ez + az egyszerû megoldás azonban nagyobb + számú gép esetében már nem + eléggé hatékony. A következõ + példában csupán négy gépet + kötünk hálózatba, melyik mindegyike + egy ATM + kártyával csatlakozik az ATM + hálózatra. Ehhez elsõként + tervezzük meg az IP-címek kiosztását + és a gépek közti ATM kapcsolatokat. + A példában ez az alábbiak szerint + alakul: + + + + + + + + Gép + IP-cím + + + + + + A-gep + 192.168.173.1 + + + + B-gep + 192.168.173.2 + + + + C-gep + 192.168.173.3 + + + + D-gep + 192.168.173.4 + + + + + + A teljes hálózat + felépítéséhez minden egyes + pár között egy-egy ATM kapcsolatra lesz + szükségünk: + + + + + + + + Gépek + VPI.VCI pár + + + + + + A-gep - + B-gep + 0.100 + + + + A-gep - + C-gep + 0.101 + + + + A-gep - + D-gep + 0.102 + + + + B-gep - + C-gep + 0.103 + + + + B-gep - + D-gep + 0.104 + + + + C-gep - + D-gep + 0.105 + + + + + + A kapcsolatok egyes végein szereplõ VPI + és VCI értékek természetesen + eltérhetnek, de ezeket mi most az + egyszerûség kedvéért egyenlõnek + tekintettük. A következõ + lépésben minden gépen + állítsuk be az ATM felület: + + A-gep&prompt.root; ifconfig hatm0 192.168.173.1 up +B-gep&prompt.root; ifconfig hatm0 192.168.173.2 up +C-gep&prompt.root; ifconfig hatm0 192.168.173.3 up +D-gep&prompt.root; ifconfig hatm0 192.168.173.4 up + + Ha feltételezzük, hogy minden gépen a + hatm0 az ATM felület neve. Most + pedig az A-gep-en állítsuk be + az állandó csatornákat. (Itt most + feltesszük, hogy az ATM switch-eken mindezt már + elvégeztük. A switch + kézikönyvében errõl + részletesebb leírást is + találhatunk.) + + A-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr +A-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr +A-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr + +B-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr +B-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr +B-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr + +C-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr +C-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr +C-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr + +D-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr +D-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr +D-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr + + Természetesen nem csak UBR + használható, hanem minden más olyan + forgalmazási beállítás, amit az + ATM kártyáink ismernek. Itt most a forgalmi + beállítás nevét a + hozzátartozó konkrét paraméterek + követik. Az &man.atmconfig.8; segédprogram + használatához így kérhetünk + segítséget: + + &prompt.root; atmconfig help natm add + + Olvassuk el az &man.atmconfig.8; man + oldalát. + + Ugyanez a beállítás az + /etc/rc.conf állomány + használatával is elvégezhetõ. Az + A-gep esetében mindez így + nézne ki: + + network_interfaces="lo0 hatm0" +ifconfig_hatm0="inet 192.168.173.1 up" +natm_static_routes="B-gep C-gep D-gep" +route_B-gep="192.168.173.2 hatm0 0 100 llc/snap ubr" +route_C-gep="192.168.173.3 hatm0 0 101 llc/snap ubr" +route_D-gep="192.168.173.4 hatm0 0 102 llc/snap ubr" + + A CLIP útvonalak pillanatnyi + állapota így kérdezhetõ le: + + A-gep&prompt.root; atmconfig natm show + + + + + + + + + + Tom + Rhodes + Írta: + + + + + A Közös cím redundancia protokoll + (CARP) + + CARP + Közös cím redundancia + protokoll + + A Közös cím redundancia protokoll (Common + Access Redundancy Protocol, avagy CARP) + segítségével több gép + képes egyazon IP-címen osztozni. + Bizonyos konfigurációkban ez a terhelés + elosztására + (terhelés-kiegyenlítésre) vagy a + rendelkezésre állás + növelésére (hibatûrésre) + alkalmazható. A benne szereplõ gépek + akár eltérõ IP-címmel + is rendelkezhetnek, ahogy azt majd a példában is + láthatjuk. + + A CARP támogatásának + engedélyezéséhez a &os; rendszermagját + a következõ beállítással kell + újrafordítanunk: + + device carp + + A CARP által biztosított + lehetõségek ezután már + elérhetõek, és számos + sysctl változón keresztül + állíthatóak: + + + + + + Változó + Leírás + + + + + + net.inet.carp.allow + A beérkezõ CARP + csomagok elfogadása. Alapértelmezés + szerint engedélyezett. + + + + net.inet.carp.preempt + Ezzel a beállítással az adott + gépen az összes CARP + felület leáll, ha közülük + bármelyik is + mûködésképtelenné + válik. Alapértelmezés szerint + tiltott. + + + + net.inet.carp.log + A 0 értékkel + kikapcsoljuk a naplózást. Az + 1 értékkel a rossz + CARP csomagok + naplózását engedélyezzük. + Az ettõl nagyobb értékek esetén + pedig a CARP felületek + változásait naplózzuk. Az + alapértelmezett értéke az + 1. + + + + net.inet.carp.arpbalance + Az ARP protokoll + segítségével próbálja + meg a helyi hálózati forgalmat + mentesíteni a terheléstõl. + Alapértelmezés szerint tiltott. + + + + net.inet.carp.suppress_preempt + Ez a változó + írásvédett, és a + megszakítás elnyomásának + állapotát mutatja. A + megszakítás elnyomható, ha a + felület egyik linkje nem mûködik. A + 0 érték arra utal, hogy a + megszakítást nem nyomták el. Minden + probléma növeli ennek a + változónak az + értékét. + + + + + + A CARP eszközök maguk az + ifconfig paranccsal + készíthetõek el: + + &prompt.root; ifconfig carp0 create + + Egy valós környezetben az ilyen felületeknek + egy VHID néven ismert egyedi + azonosítóval kell rendelkezniük. Ez a + VHID vagy más néven a + virtuális gépazonosító (azaz Virtual + Host Identification) fogja a gépünket a + hálózat többi elemétõl + megkülönböztetni. + + + A CARP felhasználása a rendelkezésre + állás javításában + + A CARP használatának egyik + módja, ahogy arra már korábban is utaltunk, + a szerverek rendelkezésre állásának + feljavítása. Ebben a példában + három géppel fogunk hibatûrést + biztosítani, melyik mindegyike egyedi + IP-címmel rendelkezik és + ugyanazt a webes tartalmat szolgáltatják. A + gépeket egy Round Robin rendszerû + (körbejáró) névfeloldással + együtt használjuk. A tartalék + gépünknek lesz még további két + CARP felülete, külön a szerver + IP-címeihez tartozó egyes webes + tartalmakhoz. Amikor valami meghibásodik, a + tartalék szerver átveszi a meghibásodott + gép IP-címét. Ilyenkor + a hiba teljesen észrevétlen marad a + felhasználók számára. A + tartalék szerveren a többi szerverrel egyezõ + tartalomnak és szolgáltatásoknak kell + megjelennie, hogy bármikor át tudja + tõlük venni a forgalmat. + + A hálózati neveiktõl és a + virtuális azonosítóiktól eltekintve + a két gépet ugyanúgy kell + beállítani. Ebben a példában a + gépeket most az a-gep.minta.org + és b-gep.minta.org nevekkel + láttuk el. Elõször is a + CARP + beállításához el kell + helyeznünk a megfelelõ hivatkozásokat az + rc.conf állományban. Az + a-gep.minta.org esetében az + rc.conf állomány a + következõ sorokat tartalmazza: + + hostname="a-gep.minta.org" +ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0" +cloned_interfaces="carp0" +ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24" + + Miközben a b-gep.minta.org az + rc.conf állományában + ezeket adjuk meg: + + hostname="b-gep.minta.org" +ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0" +cloned_interfaces="carp0" +ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24" + + + Nagyon fontos, hogy az ifconfig parancs + pass paraméterével megadott + jelszavak megegyezzenek. A carp + eszközök csak a megfelelõ jelszót + birtokló gépeket fogadják el. A + virtuális gépazonosítónak azonban + minden esetben el kell térnie. + + + A harmadik, szolgaltato.minta.org + címmel rendelkezõ gépet fogjuk + felkészíteni az elõbbi gépek + meghibásodására felkészíteni. + Ennek a gépnek két carp + eszközre lesz szüksége, melyek az egyes + gépeket kezelik. Az ehhez illeszkedõ sorok valahogy + így fognak kinézni az rc.conf + állományban: + + hostname="szolgaltato.minta.org" +ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0" +cloned_interfaces="carp0 carp1" +ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24" +ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24" + + Két carp eszköz + használatával a + szolgaltato.minta.org képes + észlelni és átvenni bármelyik olyan + gép IP-címét, amely nem + válaszol. + + + Az alap &os; rendszermag használata esetén + elõfordulhat, hogy a + megszakítás (a preemption + opció) engedélyezett. Amennyiben így + lenne, a szolgaltato.minta.org nem fogja + minden esetben fogja rendesen visszaadni az + IP-címet az eredeti + tulajdonosának. Ilyenkor a rendszergazdának + kell ezt manuálisan megtennie. Tehát a + következõ parancsot kell kiadnia a + szolgaltato.minta.org gépen: + + &prompt.root; ifconfig carp0 down && ifconfig carp0 up + + Ezt az adott géphez tartozó + carp felülettel kell + megcsinálni. + + + Innentõl a CARP már teljesen + engedélyezhetõ és készen áll a + tesztelésre. A teszteléshez vagy a + hálózati rendszert kell + újraindítani, vagy a gépeket. + + További információkat a &man.carp.4; + man oldalán találhatunk. + + + +
+ + + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps new file mode 100644 index 0000000000..35b8554b15 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-bus.eps @@ -0,0 +1,199 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 99 -130 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor +% Original Revision: 1.1 +%%EndComments +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/t { + rlineto + -5 0 rlineto + 0 -7 rlineto + -6 0 rlineto + 0 20 rlineto + 6 0 rlineto + 0 -7 rlineto + 5 0 rlineto +} bind def + +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/router { + moveto + 0 12 t + 0 12 rlineto + 70 0 rlineto + 0 -30 rlineto + -52.5 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 48.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box { + moveto + 0 17 t + 0 17 rlineto + 100 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 210 rlineto + 110 0 rlineto + 0 -210 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +% draw the coax cable +3 7 div setcolor +114 -94 moveto +-4 0 rlineto +0 164 rlineto +4 0 rlineto +closepath +fill + +% draw some terminating resistors +newpath +112 -110 2 0 360 arc fill +newpath +112 85 2 0 360 arc fill +0 setcolor + +120 60 router +131 57.5 plug + +120 0 box +120 -60 box +120 -120 box + +gsave +[5 3] 0 setdash +235 -120 internet +grestore + +% Connect router to the Internet +232 40.5 plug +133 58 moveto +0 -15 rlineto +102 0 rlineto +0 2 rlineto +-100 0 rlineto +0 13 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +130 74 moveto (Útválasztó) show +140 -42 moveto (Windows 95) show +125 -102 moveto (Sun munkaállomás) show +150 18 moveto (FreeBSD) show +155 47.5 moveto (ISDN BRI vonal) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps new file mode 100644 index 0000000000..61919f4923 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/isdn-twisted-pair.eps @@ -0,0 +1,294 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -10 -70 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor +% Original Revision: 1.1 +%%EndComments +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/uldent { + 0 -5 rlineto + 7 0 rlineto + 0 5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/urdent { + 0 -5 rlineto + -11 0 rlineto + 0 5 rlineto +} bind def + +/hub { + moveto + 0 30 rlineto + 84 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/router { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -35 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 31 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 82.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -78.5 0 rlineto + urdent + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 90 rlineto + 110 0 rlineto + 0 -90 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +0 60 hub +11 57.5 plug +25 57.5 plug +39 57.5 plug +53 57.5 plug +67 57.5 plug + +100 60 router +111 57.5 plug +153 57.5 plug + +0 -60 box +11 -24.5 plug +% Connect box 1 with hub +13 -20 moveto +0 78 rlineto +2 0 rlineto +0 -78 rlineto +closepath +fill + +120 0 box +% Connect box 2 with hub +131 35.5 plug +133 40 moveto +0 6 rlineto +-78 0 rlineto +0 12 rlineto +2 0 rlineto +0 -10 rlineto +78 0 rlineto +0 -8 rlineto +closepath +fill + +120 -60 box +131 -24.5 plug +% Connect with hub +133 -20 moveto +0 6 rlineto +-106 0 rlineto +0 72 rlineto +2 0 rlineto +0 -70 rlineto +106 0 rlineto +0 -8 rlineto +closepath +fill + +240 -60 box +251 -24.5 plug +% Connect with hub +253 -20 moveto +0 14 rlineto +-212 0 rlineto +0 68 rlineto +2 0 rlineto +0 -66 rlineto +212 0 rlineto +0 -16 rlineto +closepath +fill + +% Connect hub with router +69 58 moveto +0 -6 rlineto +46 0 rlineto +0 6 rlineto +-2 0 rlineto +0 -4 rlineto +-42 0 rlineto +0 4 rlineto +closepath +fill + +gsave +[5 3] 0 setdash +235 0 internet +grestore + +% Connect router to the Internet +232 40.5 plug +155 58 moveto +0 -15 rlineto +80 0 rlineto +0 2 rlineto +-78 0 rlineto +0 13 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +26 74 moveto (Elosztó) show +110 74 moveto (Útválasztó) show +17 -42 moveto (Novell szerver) show +140 -42 moveto (Windows 95) show +246 -42 moveto (Sun munkaállomás) show +145 18 moveto (FreeBSD) show +158 47.5 moveto (ISDN BRI vonal) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps b/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps new file mode 100644 index 0000000000..646a4c6312 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/natd.eps @@ -0,0 +1,281 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -10 -10 355 100 +%%Creator: G. Adam Stanislav +% The FreeBSD Hungarian Documentation Project +% Translated by: PALI, Gabor +% Original Revision: 1.1 +%%EndComments + +%%BeginProlog + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +/ldent { + 0 5 rlineto + -7 0 rlineto + 0 -5 rlineto +} bind def + +/uldent { + 0 -5 rlineto + 7 0 rlineto + 0 5 rlineto +} bind def + +/rdent { + 0 5 rlineto + 11 0 rlineto + 0 -5 rlineto +} bind def + +/urdent { + 0 -5 rlineto + -11 0 rlineto + 0 5 rlineto +} bind def + +/hub { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + -7 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 3 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/router { + moveto + 0 30 rlineto + 70 0 rlineto + 0 -30 rlineto + -10.5 0 rlineto + ldent + -35 0 rlineto + ldent + closepath + 2 28 rmoveto + 0 -26 rlineto + 6.5 0 rlineto + rdent + 31 0 rlineto + rdent + 6.5 0 rlineto + 0 26 rlineto + closepath + fill +} bind def + +/box1 { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 82.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -78.5 0 rlineto + urdent + closepath + fill +} bind def + +/box2 { + moveto + 0 40 rlineto + 10.5 0 rlineto + uldent + 65 0 rlineto + uldent + 10.5 0 rlineto + 0 -40 rlineto + closepath + 2 38 rmoveto + 0 -36 rlineto + 96 0 rlineto + 0 36 rlineto + -6.5 0 rlineto + urdent + -61 0 rlineto + urdent + closepath + fill +} bind def + +/plug { + moveto + 0 7 rlineto + 6 0 rlineto + 0 -7 rlineto + closepath + fill +} bind def + +/internet { + moveto + 0 90 rlineto + 110 0 rlineto + 0 -90 rlineto + closepath + gsave + 5 7 div setcolor + fill + grestore + stroke +} bind def +%%EndSetup + +0 60 hub +11 57.5 plug +25 57.5 plug + +135 60 router +146 57.5 plug +188 57.5 plug + +0 0 box1 +11 35.5 plug + +13 40 moveto +0 18 rlineto +2 0 rlineto +0 -18 rlineto +closepath +fill + +120 0 box2 +% Connect box2 with hub +131 35.5 plug +133 40 moveto +0 8 rlineto +-106 0 rlineto +0 10 rlineto +2 0 rlineto +0 -8 rlineto +106 0 rlineto +0 -10 rlineto +closepath +fill + +% Connect box2 with router +203 35.5 plug +205 40 moveto +0 8 rlineto +-57 0 rlineto +0 10 rlineto +2 0 rlineto +0 -8 rlineto +57 0 rlineto +0 -10 rlineto +closepath +fill + +gsave +[5 3] 0 setdash +235 0 internet +grestore + +% Connect router to the Internet +232 49.5 plug +190 58 moveto +0 -6 rlineto +45 0 rlineto +0 2 rlineto +-43 0 rlineto +0 4 rlineto +closepath +fill + +/Helvetica-Bold findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Helvetica-Bold-Latin2 exch definefont pop + +/Helvetica-Bold-Latin2 findfont dup 10 scalefont setfont + +18 74 moveto (Elosztó) show +145 74 moveto (Útválasztó) show +28 18 moveto (A kliens) show +149 23 moveto (B kliens) show +128 10 moveto ((FreeBSD átjáró)) show + +25 scalefont setfont + +270 51 moveto (Az) show +245 27 moveto (internet) show +1 setcolor +269 53 moveto (Az) show +244 29 moveto (internet) show + +%%Trailer +showpage +%%EOF + diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic b/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic new file mode 100644 index 0000000000..9d1e7ff92c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/net-routing.pic @@ -0,0 +1,21 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.2 +.PS + +A: box "Helyi2"; + +B: line 0.7 <-> "Ethernet" above dashed; + +C: box "Helyi1"; + +D: line 0.8 <-> "PPP" above dashed; + +E: box "Szolgáltató"; + +F: line 0.7 <-> "Ethernet" above dashed; + +G: box "T1-ÁJ"; + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic b/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic new file mode 100644 index 0000000000..f6fec8b26d --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/static-routes.pic @@ -0,0 +1,37 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +I: box rad 0.10 wid 1 ht 0.55 "internet" dashed; + " (10.0.0.1/24) alapértelmezett átjáró az internet felé" at I.s below ljust; + circle rad 0.02 fill 1 at I.s; + line down at I.s; + +A: box "A-utvalaszto"; + " xl0 felület, 10.0.0.10/24" at A.n above ljust; + " xl1 felület, 192.168.1.1/24" at A.s below ljust; + " FreeBSD átjáró" at A.e+(0.15,0) ljust; + circle rad 0.02 fill 1 at A.n; + circle rad 0.02 fill 1 at A.s; + line down at A.s; + +N1: box ht .04 wid 2.8 fill with .nw at last line.end - (.4,0); + line at N1.se - (.4,0); + + +B: box "B-utvalaszto"; + " 192.168.1.2/24" at B.n above ljust; + " 192.168.2.1/24" at B.s below ljust; + circle rad 0.02 fill 1 at B.n; + circle rad 0.02 fill 1 at B.s; + line; + +N2: box ht .04 wid 1.8 fill with .nw at last line.end - (.4,0); + +N2a: "2. belsõ hálózat" at N2.s + (0,-.15); + +N1a: "1. belsõ hálózat" at N1.sw + (.4,-.15); + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/appendix.decl b/hu_HU.ISO8859-2/books/handbook/appendix.decl new file mode 100644 index 0000000000..1aa6a283f0 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/appendix.decl @@ -0,0 +1,9 @@ + + + diff --git a/hu_HU.ISO8859-2/books/handbook/audit/Makefile b/hu_HU.ISO8859-2/books/handbook/audit/Makefile new file mode 100644 index 0000000000..84cb9b04ee --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/audit/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= audit/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml new file mode 100644 index 0000000000..e47e1cf2ea --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml @@ -0,0 +1,1100 @@ + + + + + + + + + Tom + Rhodes + Írta: + + + Robert + Watson + + + + + Biztonsági események vizsgálata + + + Áttekintés + + AUDIT + + Biztonsági események + vizsgálata + MAC + + + A &os; 6.2-RELEASE és az azóta megjelent + verziók támogatják a biztonsági + események aprólékos + vizsgálatát. Ezzel egy megbízható, + részletes és jól konfigurálható + naplózási rendszert nyújtanak a rendszerben + található biztonságot igénylõ + események széles köréhez, + beleértve a bejelentkezéseket, a + konfigurációs állományokban + bekövetkezõ változásokat, + állomány- és hálózati + hozzáféréseket. Az így + létrehozott naplóbejegyzések + felbecsülhetetlen értékûnek bizonyulhatnak + egy élõ rendszer felügyelete során, vagy + egy hálózati támadás + észleléséhez, esetleg egy + összeomlás okainak kielemezéséhez. A + &os; ehhez a &sun; által kifejlesztett + BSM technológia API-ját és + állományformátumát + valósítja meg, és így képes + együttmûködni a &sun; &solaris; valamint az &apple; + &macos; X bizonsági rendszereivel egyaránt. + + Ebben a fejezetben a biztonsági események + vizsgálatának telepítéséhez + és beállításához + szükséges ismeretek tekintjük át. Ennek + keretében szó esik a vizsgálati + házirendekrõl, valamint mutatunk egy + példát a vizsgálatok + beállítására. + + A fejezet elolvasása során + megismerjük: + + + + mit jelent az események vizsgálata és + hogyan mûködik; + + + + hogyan kell beállítani az események + vizsgálatát &os;-n a + különbözõ felhasználók + és programok esetén; + + + + hogyan értelmezzük a vizsgálati + nyomokat a vizsgálatot szûkítõ + és -elemzõ segédprogramok + segítségével. + + + + A fejezet elolvasásához ajánlott: + + + + alapvetõ &unix;-os és &os;-s ismeretek (); + + + + a rendszermag konfigurálásával + és fordításával kapcsolatos + tudnivalók alapszintû ismerete (); + + + + az informatikai biztonság alapfogalmainak és + annak a &os;-re vonatkozó részleteinek + minimális ismerete (). + + + + + A &os; 6.X + verziójaiban jelenlevõ biztonsági + vizsgálat még csak kísérleti + jelleggel szerepel, éles környezetben + kizárólag csak az ebbõl eredõ + kockázatok tudatában és + elfogadásával javasolt használni. Ismert + korlátozások: nem mindegyik biztonságot + érintõ esemény vizsgálható, + mint például az egyes bejelentkezési + típusok, mivel azok nem megfelelõen + hitelesítik a belépõ + felhasználókat. Ilyenek például az + X11-alapú felületek és az egyéb, erre + a célra alkalmas, más által fejlesztett + démonok. + + + + A biztonsági események vizsgálata + során a rendszer képes nagyon részletes + naplókat készíteni az érintett + tevékenységekrõl. Így egy + kellõen forgalmas rendszeren az + állománymozgások alapos + nyomonkövetése bizonyos + konfigurációkon akár gigabyte-okat is + kitehet hetente. A rendszergazdáknak ezért mindig + javasolt számolniuk a nagy forgalmú + események biztonsági vizsgálatának + tárigényével. Például, + emiatt érdemes lehet egy egész + állományrendszert szánni erre a feladatra a + /var/audit könyvtárban, + és így a többi állományrendszer + nem látja kárát, ha véletlenül + betelne ez a terület. + + + + + A fejezet fontosabb fogalmai + + A fejezet elolvasása elõtt meg kell ismernünk + néhány fontos alapfogalmat: + + + + esemény: + Vizsgálható eseménynek azt az + eseményt nevezzük, amely egy vizsgálati + alrendszerben naplózható. Biztonsági + események lehetnek például: egy + állomány létrehozása, egy + hálózati kapcsolat + felépítése, vagy egy + felhasználó bejelentkezése. Egy + esemény jellegzetes, ha + visszakövethetõ valamelyik hitelesített + felhasználóhoz, vagy nem + jellegzetes, ha ez nem lehetséges. Nem + jellegzetes esemény lehet minden olyan esemény, + amely egy bejelentkezési folyamat + hitelesítési lépése elõtt + történik, például egy + belépési kísérlet hibás + jelszóval. + + + + osztály: + Eseményosztálynak az összefüggõ + események névvel ellátott halmazát + tekintjük, és szûrési + feltételekben használjuk ezeket. + Általában alkalmazott osztályok: + file creation (fc, + állománylétrehozás), + exec (ex, programindítás), + és login_logout (lo, ki- és + bejelentkezés). + + + + rekord: Rekordnak nevezzük a + biztonsági eseményeket leíró + biztonsági naplóbejegyzéseket. A + rekordok tartalmazhatják a feljegyzett esemény + típusát, az eseményt + kiváltó tevékenységet + (felhasználót), a dátumot és az + idõt, tetszõleges objektum vagy paraméter + értékét, feltételek + teljesülését vagy + meghiúsulását. + + + + nyom: Vizsgálati nyomnak vagy + naplóállománynak nevezzük a + különféle biztonsági + eseményeket leíró vizsgálati + rekordok sorozatát. A nyomok többnyire + nagyjából az események + bekövetkezése szerinti idõrendben + következnek. Csak és kizárólag az + erre felhatalmazott programok hozhatnak létre + rekordokat a vizsgálati nyomban. + + + + szûrési feltétel: + Szûrési feltételnek nevezünk egy olyan + karakterláncot, amelyet események + szûrésére használunk, és + módosítókat valamint + eseményosztályok neveit tartalmazza. + + + + elõválogatás: + Elõválogatásnak nevezzük a folyamatot, + amelynek során a rendszer beazonosítja azokat az + eseményeket, amelyek a rendszergazda + számára fontosak. Ezáltal + elkerülhetjük olyan vizsgálati rekordok + generálását, amelyek számunkra + érdektelen eseményekrõl számolnak + be. Az elõválogatás szûrési + feltételek sorát használja az adott + felhasználókhoz tartozó adott + biztonsági események vizsgálatának + beállításához, akárcsak a + hitelesített és a nem hitelesített + programokat értintõ globális + beállítások + meghatározásához. + + + + leszûkítés: + Leszûkítésnek nevezzük a folyamatot, + amelynek során a már meglevõ + biztonsági rekordokból válogatunk le + tárolásra, nyomtatásra vagy + elemzésre. Hasonlóan ez a folyamat, ahol a + szükségtelen rekordokat eltávolítjuk + a vizsgálatai nyomból. A + leszûkítés + segítségével a rendszergazdák a + vizsgálati adatok eltárolására + alakíthatnak ki házirendet. + Például a részletesebb vizsgálati + nyomokat érdemes egy hónapig megtartani, ennek + lejártával viszont már inkább + ajánlott leszûkíteni ezeket és + archiválásra csak a bejelentkezési + információkat megtartani. + + + + + + A vizsgálat támogatásának + telepítése + + A eseményvizsgálathoz szükséges + felhasználói programok a &os; alaprendszer + részét képezik. A &os; 7.0 és + késõbbi verzióiban az + eseményvizsgálat támogatása + alapértelmezés szerint megtalálható a + rendszermagban, azonban a &os; 6.X + változataiban be kell kapcsolnunk a megfelelõ + támogatást, mégpedig a rendszermag + konfigurációs állományában az + alábbi sor hozzáadásával: + + options AUDIT + + Fordítsuk és telepítsük újra + a rendszermagot az ben ismertetett + folyamat szerint. + + Ahogy a rendszermagot a bekapcsolt + eseményvizsgálati támogatással + sikerült lefordítanunk és + telepítenünk, valamint a rendszerünk is + újraindult, indítsuk el a vizsgáló + démont a következõ sor + hozzáadásával az &man.rc.conf.5; + állományban: + + auditd_enable="YES" + + A vizsgálatot innentõl ténylegesen egy + ismételt újraindítással vagy pedig az + elõbb említett démon manuális + elindításával aktiválhatjuk: + + /etc/rc.d/auditd start + + + + + A vizsgálat beállítása + + A vizsgálatok beállításához + szükséges összes konfigurációs + állomány a /etc/security könyvtárban + található. A következõ + állományok vannak itt a démon + indítása elõtt: + + + + audit_class - a vizsgálati + osztályok definícióit tartalmazza. + + + + audit_control - a vizsgálati + alrendszer különbözõ területeit + vezérli, többek közt az + alapértelmezett vizsgálati osztályokat, + az vizsgálati adatok tárhelyén + fenntartandó minimális lemezterületet, a + vizsgálati nyom maximális méretét, + stb. + + + + audit_event - a rendszerben + jelenlevõ vizsgálati események + szöveges megnevezése és + leírása, valamint a lista, hogy melyikük + mely osztályban található. + + + + audit_user - + felhasználónként változó + vizsgálati elvárások, kombinálva a + bejelentkezéskor érvényes + globálisan alapértelmezett + beállításokkal. + + + + audit_warn - az + auditd által használt + testreszabható shell szkript, aminek + segítségével a + szélsõséges helyzetekben figyelmeztetõ + üzeneteket tudunk generálni, mint + például amikor a rekordok számára + fenntartott hely hamarosan elfogy, vagy amikor a nyomokat + tartalmazó állományt + archiváltuk. + + + + + Az eseményvizsgálat + konfigurációs állományait alapos + körültekintés mellett szabad szerkeszteni + és karbantartani, mivel a bennük keletkezõ + hibák az események helytelen + naplózását eredményezhetik. + + + + Eseményszûrési feltételek + + Az eseményvizsgálati + beállítások során számtalan + helyen felbukkanak a vizsgálni kívánt + eseményeket meghatározó szûrési + feltételek. Ezen feltételek + eseményosztályok felsorolását + tartalmazzák, mindegyiküket egy + módosító vezeti be, ezzel jelezve, hogy az + adott eseményosztályba tartozó rekordokat + tartsuk meg vagy vessük el. Esetleg utalhatnak arra is, + hogy vagy csak a sikerességet jelzõ rekordokat, vagy + csak a sikertelenséget jelzõ rekordokat + szûrjük ki. A szûrési feltételek + balról jobbra értékelõdnek ki, + és két kifejezés + összefûzéssel + kombinálható. + + A most következõ lista tartalmazza a + audit_class állományban + található alapértelmezett + eseményvizsgálati osztályokat: + + + + all - all (mind) + - Minden eseményosztályra vonatkozik. + + + + ad - administrive + (adminisztrációs) - olyan + adminisztrációs tevékenységek, + amelyek egyben az egész rendszeren + végrehajtódnak. + + + + ap - application + (alkalmazás) - az alkalmazások + által meghatározott + tevékenység. + + + + cl - file close + (állomány lezárása) - + a close rendszerhívás + meghívásának vizsgálata. + + + + ex - exec + (programindítás) - egy program + indításának vizsgálata. A + parancssorban átadott paraméterek és a + környezeti változók + vizsgálatát az &man.audit.control.5; + vezérli a policy + beállításhoz tartozó + argv és envv + paraméterek segítségével. + + + + fa - file attribute access + (állományjellemzõk + hozzáférése) - a + rendszerbeli objektumok jellemzõinek + hozzáférésnek vizsgálata, mint + például a &man.stat.1;, &man.pathconf.2; + és ehhez hasonló események. + + + + fc - file create + (állomány + létrehozása) - + állományt eredményezõ + események vizsgálata. + + + + fd - file delete + (állomány törlése) - + állományt törlõ események + vizsgálata. + + + + fm - file attribute modify + (állományjellemzõk + módosítása) - + állományok jellemzõit + megváltoztató események + vizsgálata, mint például a + &man.chown.8;, &man.chflags.1;, &man.flock.2;, stb. + + + + fr - file read + (állományolvasás) - + állományok megnyitásával + olvasásra, olvasásával, stb. + kapcsolatos események vizsgálata. + + + + fw - file write + (állományírás) - + állományok megnyitásával + írásra, írásával, + módosításával, stb. kapcsolatos + események vizsgálata. + + + + io - ioctl - az + &man.ioctl.2; rendszerhívást + használó események + vizsgálata. + + + + ip - ipc - a + folyamatok közti kommunikáció + különféle formáinak, + beleértve a POSIX csövek és System V + IPC mûveleteinek + vizsgálata. + + + + lo - login_logout (ki- + és bejelentkezés) - a rendszerben + megjelenõ &man.login.1; és &man.logout.1; + események vizsgálata. + + + + na - non attributable (nem + jellegzetes) - a nem jellegzetes események + vizsgálata. + + + + no - invalid class + (érvénytelen osztály) - + egyetlen biztonsági eseményt sem + tartalmaz. + + + + nt - network + (hálózat) - a + hálózathoz tartozó események + vizsgálata, mint például a + &man.connect.2; és az &man.accept.2;. + + + + ot - other + (egyéb) - más egyéb + események vizsgálata. + + + + pc - process + (folyamat) - a folyamatokkal kapcsolatos + mûveletek, mint például az &man.exec.3; + és az &man.exit.3; vizsgálata. + + + + Az imént felsorolt eseményosztályok az + audit_class és az + audit_event állományok + módosításával igény szerint + testreszabhatóak. + + A listában szereplõ minden egyes + eseményosztályhoz tartozik még egy + módosító is, amely jelzi, hogy a sikeres + vagy a sikertelen mûveleteket kell-e szûrnünk, + valamint hogy a bejegyzés az adott típust vagy + osztályt hozzáadja vagy elveszi az adott + szûrésbõl. + + + + (üres) az adott típusból mind a + sikereseket és mind a sikerteleneket + feljegyzi. + + + + + az eseményosztályba + tartozó sikeres eseményeket vizsgálja + csak. + + + + - az eseményosztályba + tartozó sikertelen eseményeket + vizsgálja csak. + + + + ^ az + eseményosztályból sem a sikereseket, + sem pedig a sikerteleneket nem vizsgálja. + + + + ^+ az + eseményosztályból nem vizsgálja + a sikeres eseményeket. + + + + ^- az + eseményosztályból nem vizsgálja + a sikertelen eseményeket. + + + + Az alábbi példa egy olyan szûrési + feltételt mutat be, amely a ki- és + bejelentkezések közül megadja a sikereset + és a sikerteleneket, viszont a + programindítások közül csak a + sikereseket: + + lo,+ex + + + + + A konfigurációs + állományok + + A vizsgálati rendszer + beállításához az esetek + túlnyomó részében a + rendszergazdáknak csupán két + állományt kell módosítaniuk: ezek az + audit_control és az + audit_user. Az elõbbi felelõs a + rendszerszintû vizsgálati jellemzõkért + és házirendekért, míg az + utóbbi az igények + felhasználókénti + finomhangolásához + használható. + + + Az <filename>audit_control</filename> + állomány + + Az audit_control + állomány határozza meg a + vizsgálati alrendszer alapértelmezéseit. + Ezt az állományt megnyitva a + következõket láthatjuk: + + dir:/var/audit +flags:lo +minfree:20 +naflags:lo +policy:cnt +filesz:0 + + A opciót használjuk a + vizsgálati naplók + tárolására szolgáló egy + vagy több könyvtár megadására. + Ha egynél több könyvtárra + vonatkozó bejegyzés található az + állományban, akkor azok a megadás + sorrendjében kerülnek feltöltésre. + Nagyon gyakori az a beállítás, ahol a + vizsgálati naplókat egy erre a célra + külön kialakított + állományrendszeren tárolják, + megelõzve ezzel az állományrendszer + betelésekor keletkezõ problémákat a + többi alrendszerben. + + A mezõ egy rendszerszintû + alapértelmezett elõválogatási + maszkot határoz meg a jellegzetes események + számára. A fenti példában a + sikeres és sikertelen ki- és + bejelentkezéseket mindegyik felhasználó + esetén vizsgáljuk. + + A opció megszabja a + vizsgálati nyom tárolására + szánt állományrendszeren a + minimális szabad helyet, a teljes kapacitás + százalékában. Amint ezt a + küszöböt túllépjük, egy + figyelmeztetés fog generálódni. A fenti + példa a minimálisan szükséges + rendelkezésre álló helyet húsz + százalékra állítja. + + A opció megadja azokat az + eseményosztályokat, amelyeket vizsgálni + kell a nem jellegzetes események, mind + például a bejelentkezési folyamatok vagy + rendszerdémonok esetén. + + A opció a vizsgálat + különbözõ szempontjait + irányító házirendbeli + beállítások vesszõvel + elválasztott listáját tartalmazza. Az + alapértelmezett cnt + beállítás azt adja meg, hogy a rendszer a + felmerülõ vizsgálati hibák + ellenére is folytassa tovább a + mûködését (erõsen javasolt a + használata). A másik gyakorta alkalmazott + beállítás az argv, + amellyel a rendszer a parancsvégrehajtás + részeként az &man.execve.2; + rendszerhívás parancssori paramétereit is + megvizsgálja. + + A opció határozza + meg a vizsgálati nyom automatikus + szétvágása és + archiválása elõtti maximális + méretét, byte-ban. Az alapértelmezett + értéke a 0, amely kikapcsolja ezt az + archiválást. Ha az itt megadott + állományméret nem nulla és a + minimálisan elvárt 512 KB alatt van, akkor + a rendszer figyelmen kívül hagyja és + errõl egy figyelmeztetést ad. + + + + + Az <filename>audit_user</filename> + állomány + + Az audit_user állomány + lehetõvé teszi a rendszergazda + számára, hogy az egyes + felhasználók számára + további vizsgálati szigorításokat + határozzon meg. Minden sor egy-egy + felhasználó vizsgálatának + pontosítását adja meg két + mezõ segítségével: az elsõ + közülük az alwaysaudit + mezõ, mely felsorolja azokat az eseményeket, + amelyeket minden esetben vizsgáni kell az adott + felhasználó esetén, valamint a + második a neveraudit mezõ, mely + az adott felhasználó esetén a nem + vizsgálandó eseményeket adja meg. + + A most következõ audit_user + példában vizsgáljuk a + root felhasználó ki- + és bejelentkezéseit és sikeres + programindításait, valamint a + www felhasználó + állománylétrehozásait és + sikeres programindításait. Ha a korábban + bemutatott audit_control + példával együtt használjuk, akkor + észrevehetjük, hogy a lo + bejegyzés a root + felhasználó esetén redundáns, + illetve ilyenkor a ki/bejelentkezést a + www felhasználó + esetén is vizsgáljuk. + + root:lo,+ex:no +www:fc,+ex:no + + + + + + + A vizsgálati alrendszer használata + + + A vizsgálati nyomok megtekintése + + A vizsgálati nyomok a BSM bináris + formátumban tárolódnak, ezért a + tartalmának konvertálásához + és módosításához + külön segédprogramokra van szükség. + A &man.praudit.1; parancs a nyomállományokat + egyszerû szöveges formátumra alakítja, + az &man.auditreduce.1; parancs pedig a nyomok + elemzéséhez, archiválásához + vagy nyomtatásához szükséges + leszûkítéséket végzi el. Az + auditreduce a szûrési + feltételek paramétereinek széles + skáláját kezeli, beleértve az + eseménytípusokat, -osztályokat, + felhasználókat, események + dátumát vagy idõpontját, + állományok elérési + útvonalát vagy az általuk érintett + objektumokat. + + Például a praudit + segédprogram képes kilistázni + szövegesen egy adott vizsgálati napló teljes + tartalmát: + + &prompt.root; praudit /var/audit/AUDITFILE + + ahol az + AUDITFILE a + kiírandó vizsgálati napló. + + A vizsgálati nyomok tokenekbõl + összeállított vizsgálati rekordok, + amelyeket a praudit egymás után + soronként megjelenít. Minden token adott + típusú, például a + header egy vizsgálati rekord + fejlécét tartalmazza, vagy a + path, amely a + névfeloldásból származó + elérési utat tartalmaz. A következõ + példa egy execve eseményt mutat + be: + + header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec +exec arg,finger,doug +path,/usr/bin/finger +attribute,555,root,wheel,90,24918,104944 +subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100 +return,success,0 +trailer,133 + + Ez a vizsgálat egy sikeres execve + hívást rögzít, ahol a finger + doug parancs futott le. A paramétereket + tartalmazó token magában foglalja a shell + által a rendszermag felé jelzett parancsot + és annak paraméterét egyaránt. A + path token tárolja a + végrehajtott állomány rendszermag + által feloldott elérési + útját. A attribute token + errõl a binárisról ad további + információkat, különösen az + állomány módjáról, amely + segít megállapítani, hogy az adott + alkalmazásnál be volt-e állítva a + setuid bit. A subject token leírja az + érintett folyamatot és rendre megjegyzi a + vizsgált felhasználó + azonosítóját, az aktuálisan + érvényben levõ felhasználó + és csoport azonosítóját, a + valós felhasználói és csoport + azonosítót, a folyamat + azonosítóját, a munkamenet + azonosítóját, a port + azonosítóját és a + bejelentkezéshez használt hálózati + címet. Vegyük észre, hogy a vizsgált + felhasználó azonosítója és a + valódi azonosítója eltér + egymástól: a robert nevû + felhasználó a root + accountjára váltott a parancs futattása + elõtt, de az eredetileg hitelesített + felhasználójaként lett vizsgálva. + Végezetül a return token jelzi a + sikeres végrehajtást, és a + trailer pedig zárja a rekordot. + + + + + A vizsgálati nyomok + leszûkítése + + Mivel a vizsgálatokhoz tartozó naplók + akár egészen nagyok is lehetnek, ezért a + rendszergazdának minden bizonnyal szüksége + lehet a számára fontos, például egy + adott felhasználóhoz tartozó rekordok + kiválogatására: + + &prompt.root; auditreduce -u trhodes /var/audit/AUDITFILE | praudit + + Ezzel ki tudjuk szûrni a trhodes + nevû felhasználóhoz tartozó + összes vizsgálati rekordot az + AUDITFILE + állományból. + + + + + A naplók megtekintéséhez + szükséges jogok továbbadása + + Az audit csoport tagjai + olvashatják a /var/audit + könyvtárban található + vizsgálati nyomokat. Alapértelmezés + szerint ez a csoport üres, ezért csak a + root képes ekkor vizsgálni a + nyomokat. A többi felhasználó + számára úgy tudunk olvasási jogot + biztosítani, ha felvesszük õket az + audit csoportba. Mivel a + vizsgálati naplók tartalmának + figyelése jelentõs rálátást + adhat a rendszerben jelenlevõ felhasználók + és folyamatok viselkedésére, + ajánlott körültekintõen kiosztani az + olvasási jogokat. + + + + + Élõ rendszerfelügyelet a vizsgálati + csövekkel + + A vizsgálati csövek az eszközök + állományabsztrakcióit + klónozzák le, és ezzel teszik + lehetõvé az alkalmazások + számára, hogy menet közben + megcsapolhassák a megfigyelt eszközök adatait. + Ez az elsõdleges célja a + különbözõ betörésfigyelõ + és rendszerfelügyeleti eszközök + készítõinek. A rendszergazda + számára azonban a vizsgálati csövek + megkönnyítik az élõ megfigyelést, + mert itt nem merülnek fel a nyomok + jogosultságaiból vagy az archiválás + miatt megszakadó eseményfolyamokból + adódó problémák. Az élõ + eseményfolyamra az alábbi parancs + kiadásával lehet rácsatlakozni: + + &prompt.root; praudit /dev/auditpipe + + Alapértelmezés szerint a vizsgálati + csõhöz tartozó csomópontok + kizárólag csak a root + felhasználó részére + érhetõek el. Az audit + csoport tagjai úgy tudnak majd hozzáférni, + ha felvesszük a következõ + devfs szabályt a + devfs.rules + állományba: + + add path 'auditpipe*' mode 0440 group audit + + A devfs állományrendszer + beállításárõl bõvebben + lásd a &man.devfs.rules.5; oldalt. + + + Könnyen gerjedést lehet elõidézni + a vizsgált események + megfigyelésével, amikor is az egyes + események megtekintése újabb + vizsgálandó események sorozatát + indítják el. Például, ha az + összes hálózati forgalmat egyszerre + vizsgáljuk és a &man.praudit.1; egy + SSH-munkameneten keresztül fut, akkor a vizsgálati + események töméntelen áradata indul + meg, mivel minden kiírandó esemény egy + újabb eseményt indukál. Ennek + elkerülése érdekében ajánlott + a praudit parancsot részletes + forgalmat nem figyelõ vizsgálati csõvel + ellátott munkameneten keresztül + elindítani. + + + + + + A vizsgálati nyomok + archiválása + + A vizsgálati nyomokat egyedül a rendszermag + képes írni, illetve csak a vizsgálati + démon, az auditd képes + felügyelni. A rendszergazdáknak ebben az esetben + tehát nem szabad használniuk a + &man.newsyslog.conf.5; vagy a hozzá hasonló + eszközök használatát a vizsgálati + naplók archiválásához. + Helyettük a audit segédprogramot + javasolt használni a vizsgálatok + leállítására, a vizsgálati + rendszer újrakonfigurálására vagy a + napló archiválásának + elvégzésére. Az alábbi parancs + utasítja a vizsgálati démont, hogy hozzon + létre egy új vizsgálati naplót + és jelzi a rendszermagnak, hogy váltson erre az + új naplóra. Az eddig használt + naplót lezárja és átnevezi, ami + ezután a rendszergazda által tetszõlegesen + feldolgozható. + + &prompt.root; audit -n + + + Ha az auditd démon a + parancs kiadásánák pillanatában + nem futna, akkor hiba történik és + errõl hibaüzenetet kapunk. + + + A &man.cron.8; segítségével + tizenként óránként + kikényszeríthetjük a naplók + váltását, ha felvesszük a + /etc/crontab állományba az + alábbi sort: + + 0 */12 * * * root /usr/sbin/audit -n + + Ez a változtatás akkor fog + érvénybe lépni, ha elmentjük az + új /etc/crontab + állományt. + + A vizsgálati nyomok mérete szerinti + automatikus váltás is + megvalósítható az &man.audit.control.5; + állományban szereplõ + opció beállításával, amit meg + is találhatunk ebben a fejezetben, a + konfigurációs állományok + beállításánál. + + + + + A vizsgálati nyomok + tömörítése + + Mivel a vizsgálati nyomok óriásira is + megnõhetnek, sokszor felmerül az igény, hogy + lehessen õket tömöríteni vagy más + egyéb módon archiválni a vizsgálati + démon által lezárt nyomokat. Az + audit_warn szkript + használható a különbözõ + vizsgálatokhoz kapcsolódó események + esetén elvégzendõ mûveletek + megadásához, beleértve ebbe a + vizsgálati nyomok váltásakor + elvégzett szabályos + lezárását. Például a + következõket kell beleírnunk az + audit_warn szkriptbe a nyomok + lezárását követõ + tömörítéséhez: + + # +# Lezáráskor tömöríti a vizsgálati nyomot. +# +if [ "$1" = closefile ]; then + gzip -9 $2 +fi + + Egyéb archiválási + tevékenységek lehetnek még: a nyomok + felmásolása egy központi szerverre, a + régebbi nyomok törlése, vagy a meglevõ + nyomok leszûkítése csak a fontos + információkra. A szkript csak akkor fog lefutni, + ha a vizsgálati nyomot sikerült szabályosan + lezárni, így tehát a szabálytalan + leálláskor megmaradó nyomok esetén + nem. + + A &os; 6.3 és késõbbi + verzióiban, a praudit XML kimeneti + formátumot is támogat, amely az + kapcsolóval érhetõ + el. + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/basics/Makefile b/hu_HU.ISO8859-2/books/handbook/basics/Makefile new file mode 100644 index 0000000000..fea6942368 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/basics/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= basics/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml new file mode 100644 index 0000000000..6c5b53c2bd --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml @@ -0,0 +1,3561 @@ + + + + + + + + + Chris + Shumway + Átdolgozta: + + + + + A UNIX alapjai + + + Áttekintés + + Ez a fejezet a &os; operációs rendszer + alapvetõ funkcióit és parancsait mutatja be. + Az itt tárgyalásra kerülõ anyag nagy + része érvényes bármelyik más + &unix;-szerû operációs rendszer esetén + is. Ezért, ha már ismerjük az + említésre kerülõ ismereteket, minden + további gond nélkül átugorhatjuk ezt a + fejezetet. Azonban ha még teljesen ismeretlen + számunkra a &os;, minden bizonnyal ez lesz az, amit + alaposan át kell majd olvasnunk. + + A fejezet elolvasása során + megismerjük: + + + + az ún. virtuális konzolok + használatát &os; alatt; + + + hogyan mûködnek együtt a &unix; + állományokra vonatkozó engedélyei + a &os; saját + kiegészítéseivel; + + + egy &os; állományrendszer + alapértelmezett + kialakítását; + + + a &os; lemezszervezését; + + + hogyan csatlakoztassunk és válasszunk le + állományrendszereket; + + + mik azok a folyamatok, démonok és + jelzések; + + + mik azok a parancsértelmezõk, és + miként tudjuk megváltoztatni az + alapértelmezett bejelentkezési + környezetünket; + + + hogyan használjuk az alapvetõ + szövegszerkesztõket; + + + mik az eszközök és az + eszközleírók; + + + &os; alatt milyen bináris formátumokat + használhatunk; + + + szükség esetén hogyan olvassuk el a + megfelelõ man oldalakat. + + + + + + + Virtuális konzolok és terminálok + + virtuális konzolok + terminálok + + A &os; számos módon használható. + Ezek közül az egyik az, ha parancsokat + gépelünk be a szöveges terminálon. + Így érhetõ el egyszerûen a &unix; + operációs rendszer rugalmasságának + és erejének jelentõs része. Ebben a + szakaszban megtudhatjuk, mik azok a + terminálok és konzolok + és miként tudjuk ezeket &os; alatt + használni. + + + A konzol + + konzol + + Ha nem állítottuk volna be, hogy a &os; + indulása során automatikusan induljon el a + grafikus felület is, akkor a rendszer egy bejelentkezõ + képernyõt fog mutatni közvetlenül a + rendszerindítás befejezõdése + után. Ekkor valami ilyesmit kell majd + látnunk: + + Additional ABI support:. +Local package initialization:. +Additional TCP options:. + +Fri Sep 20 13:01:06 EEST 2002 + +FreeBSD/i386 (pc3.example.org) (ttyv0) + +login: + + Egyes rendszereken ugyan némileg eltérhetnek + az üzenetek, de hasonlót kell látnunk. + Minket most az utolsó két sor érdekel. Az + utolsó elõtti sorban ez olvasható: + + FreeBSD/i386 (pc3.example.org) (ttyv0) + + Ez a sor arról értesít minket, hogy a + rendszerünk éppen most indult el: egy + &os; konzolt látunk, amely egy &intel; x86 + architektúrájú processzoron fut + + Erre utal pontosan az i386 + jelzés. Még abban az esetben is a + i386 kiírást fogjuk + látni, hogy ha a &os;-t konkrétan nem is az + &intel; 386-os processzorán futtatjuk. Itt ugyanis + nem a processzorunk típusát, hanem annak + architektúráját + láthatjuk. + . A gépünk neve (mivel minden &unix;-os + gép rendelkezik egy névvel) + pc3.example.org, és ennek a + rendszerkonzolját látjuk most éppen + — a ttyv0 + terminált. + + Végezetül az utolsó sor mindig: + + login: + + Ez az a rész, ahova a &os;-be + történõ bejelentkezéshez meg kell adnunk + a felhasználói nevünket (user + name). A következõ szakaszban errõl + olvashatunk. + + + + + Bejelentkezés a &os;-be + + A &os; egy többfelhasználós, + többfeladatos rendszer. Így hívják + hivatalosan azokat a rendszereket, amelyeket többen tudnak + használni és egyetlen + számítógépen egyszerre rengeteg + programot képesek futtatni. + + Minden többfelhasználós rendszernek + valamilyen módon meg kell tudnia + különböztetnie egy + felhasználóját a + többitõl. A &os;-ben (és minden más + &unix;-szerû operációs rendszerben) ezt + úgy érik el, hogy a programok futtatása + elõtt minden felhasználónak be kell + jelentkeznie a rendszerbe. Minden + felhasználó rendelkezik egy egyedi névvel + (ez a felhasználói név) + és ehhez egy titkos kulcssal (ez a + jelszó). A &os; a programok + futtatásához ezt a kettõt fogja + elkérni a felhasználótól. + + rendszerindító szkriptek + + Egybõl miután a &os; elindult és + befejezte a rendszerindításhoz használt + szkriptjeinek lefuttatását + + A rendszerindító szkriptek olyan + programok, amelyek a &os; indulása során + maguktól lefutnak. Legfontosabb feladatuk + elvégezni a többi program + futtatásához szükséges + beállításokat, valamint + elindítani a háttérben + futtatandó, hasznos munkát végzõ + szolgáltatásokat. + , ez a kijelzés (vagy más néven + prompt) fog megjelenni és kér egy + érvényes felhasználói + nevet: + + login: + + A példa kedvéért most tegyük fel, + hogy a felhasználói nevünk + pgj. Az iménti prompthoz + írjuk be, hogy pgj és nyomjuk + le az Enter billentyût. Ezt + követõen meg kell jelennie egy másik promptnak + is, amely egy jelszót (password) + kér: + + login: pgj +Password: + + Most pedig gépeljük be pgj + jelszavát és nyomjunk után egy + Enter billentyût. Vigyázzunk, hogy + a jelszót nem látjuk a + beírás során! Emiatt most ne + aggódjunk. Ezzel kapcsolatban elegendõ csak annyit + tudni, hogy mindez biztonsági + megfontolásokból történik. + + Amennyiben jól adtuk meg a jelszavunkat, sikeresen + bejelentkezünk a &os; rendszerébe és + készen állunk az összes elérhetõ + parancs kipróbálására. + + Bejelentkezés után a MOTD + (message of the day) vagy más néven a nap + üzenete jelenik meg, amelyet a parancssor + követ (egy #, $ vagy + % jel). Innen tudhatjuk meg, hogy + sikerült bejelentkeznünk. + + + + + Több konzol használata + + A &unix; parancsokat egy konzolon is szépen ki tudjuk + adni, de a &os; egyszerre ugyebár több programot is + tud futtatni. A parancsok megadásához viszont + egyetlen konzol használata elég nagy + pazarlás lenne, hiszen egy olyan operációs + rendszer mint a &os;, tucatnyi programot képes futtatni + egy idõben. Ebben az esetben jelenthetnek számunkra + segítséget a virtuális + konzolok. + + A &os; beállítható úgy, hogy + sok-sok különféle virtuális konzolt + ajánljon fel számunkra. A virtuális + konzolok között a billentyûzeten a megfelelõ + gombok lenyomásával tudunk váltani. + Mindegyik konzolnak megvan a saját kimeneti + csatornája, és a virtuális konzolok + közti váltás folyamán a &os; + gondoskodik a billentyûzetrõl érkezõ + bemenet valamint a monitorra irányított kimenet + megfelelõ kezelésérõl. + + A konzolok közti váltásra a &os; + külön billentyûkombinációkat tart + fenn + + A &os; konzol- és + billentyûzetmeghajtóinak teljes, pusztán + mûszaki és precíz leírása a + &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; és + &man.kbdcontrol.1; man oldalakon olvasható. Itt most + nem bocsátkozunk részletekbe, azonban a + téma iránt érdeklõdõ + olvasóknak mindig érdemes fellapozniuk a + kapcsolódó man oldalakat, ahol + megtalálhatják az említett + eszközök részletesebb és bõvebb + leírását. + . A &os;-ben a különbözõ + virtuális konzolok közti váltásra az + AltF1, + AltF2 + billentyûket, a + AltF8 + billentyûkombinációval + bezárólag használhatjuk. + + A konzolok közti váltogatás során + a &os; ügyel a képernyõ tartalmának + elmentésére és + visszaállítására. Ennek + eredményeképpen úgy + látszik, mintha több + virtuális képernyõn és + billentyûzeten adnánk parancsokat a &os;-nek. + + + + + Az <filename>/etc/ttys</filename> + állomány + + A &os; alapértelmezés szerint nyolc + virtuális konzollal indul. Ez azonban nem egy elõre + rögzített érték, hiszen + könnyedén testreszabhatjuk úgy a + telepített rendszerünket, hogy több vagy + esetleg kevesebb virtuális konzollal induljon el. A + virtuális konzolok száma és azok pontos + beállítása az + /etc/ttys állományon + keresztül adható meg. + + A &os; virtuális konzoljait tehát az + /etc/ttys állomány + megfelelõ módosításával tudjuk + behangolni. Itt minden egyes olyan sor, amely nem + megjegyzés (vagyis azok a sorok, amelyek nem a + # karakterrel kezdõdnek), tartalmazza az + egyes terminálok vagy virtuális konzolok + beállításait. Az állomány a + &os; telepítésében szereplõ, + alapértelmezett változata kilenc virtuális + konzol konfigurációját tartalmazza, amelyek + közül nyolc aktív. Ezek a + ttyv résszel kezdõdõ + sorok: + + # name getty type status comments +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure + + Az állományban található + oszlopok kimerítõ magyarázatát illetve + a virtuális konzolok + beállításához + használható kapcsolókat a &man.ttys.5; man + oldalon olvashatjuk. + + + + + Az egyfelhasználós mód + konzolja + + Az egyfelhasználós mód + részletes leírása a ban található. Fontos + tudni, hogy amikor a &os;-t egyfelhasználós + módban futtatjuk, csupán egyetlen konzolunk van, + és a virtuális konzolok nem érhetõek + el. Egyébként az egyfelhasználós + mód erre vonatkozó + beállításai is megtalálhatóak + az /etc/ttys állományban. + Ehhez keressük meg a console + kezdetû sort: + + # name getty type status comments +# +# Ha a konzolt "insecure" (nem biztonságos) típusúnak választjuk meg, +# akkor a használatához az egyfelhasználós mód aktivilásá elõtt a rendszer +# kérni fogja a rendszeradminisztrátori jelszót. +onsole none unknown off secure + + + A console felett látható + megjegyzés jelzi, hogy át tudjuk írni + ebben a sorban a secure + (biztonságos) értékû + paramétert insecure (nem + biztonságos) értékûre. Ilyenkor, + hogy ha a &os; egyfelhasználós módban + indul, kérni fogja a root + felhasználó (a rendszeradminisztrátor) + jelszavát. + + Vigyázzunk, amikor ezt az + értéket insecure-ra + állítjuk! Ha ugyanis + véletlenül elfeledkeznénk a + root jelszaváról, akkor + azzal az egyfelhasználós mód + használata is veszélybe kerülhet. + Habár ettõl függetlenül is + lehetséges, azokra számára mégis + nehéz helyzetnek bizonyulhat, akik nem mozognak + elég otthonosan a &os; rendszerindítási + folyamatának és a + hozzákapcsolódó programok + ismeretében. + + + + + + A videomód váltása konzolban + + A &os; konzol alapértelmezett videomódja + átállítható 1024x768-ra, + 1280x1024-re, vagy bármilyen olyan más + méretre, amit a videokártyánk + és monitorunk képes megjeleníteni. Az + eltérõ videomódok használatához + elõször újra kell fordítanunk a + rendszermagunkat az alábbi két + beállítás + hozzáadásával: + + options VESA +options SC_PIXEL_MODE + + Miután a rendszermagot sikeresen + újrafordítottuk a fenti + beállításokkal, a &man.vidcontrol.1; + segédprogrammal tudjuk megállapítani, hogy + a hardverünk milyen videomódokat enged + használni. Az összes támogatott + videomódot a következõképpen tudjuk + lekérdezni: + + &prompt.root; vidcontrol -i mode + + A parancs eredményeképpen tehát + megkapjuk a hardverünk által ismert + videomódokat. Ezek közül tudjuk + kiválasztani valamelyikõjüket és + root felhasználóként a + &man.vidcontrol.1; segítségével + beállítani: + + &prompt.root; vidcontrol MODE_279 + + Ha az új videomód megfelel számunkra, + akkor ezt a beállítást az + /etc/rc.conf állományon + keresztül véglegesíthetjük is: + + allscreens_flags="MODE_279" + + + + + + Engedélyek + + UNIX + + A &os;, mivel a BSD &unix; egyik közvetlen + leszármazottja, számos &unix;-os alapötletre + épül. Ezek közül az elsõ és + talán a leginkább kihangsúlyozott, hogy a + &os; egy többfelhasználós + operációs rendszer. Egy olyan rendszer, amely + egyszerre több, egymástól független + feladattal foglalkozó felhasználót + képes kiszolgálni. A rendszer felelõs a + hardveres eszközök, a különféle + perifériák, a memória és a processzor + idejének minden egyes felhasználó + számára szabályos és pártatlan + megosztásáért és a feléjük + irányuló kérések + szervezéséért. + + Mivel a rendszer több felhasználót is + képes támogatni, az általa kezelt + erõforrások rendelkeznek engedélyek egy adott + halmazával, amelyek eldöntik ki tudja ezeket olvasni, + írni és végrehajtani. Az engedélyek + háromszor három bit formájában + jelennek meg, amelyek közül az elsõ bitcsoport az + állomány tulajdonosára, a második az + állomány csoportjára, végül az + utolsó pedig a mindenki másra vonatkozó + engedélyeket tárolja. + + engedélyek + állományok + engedélyei + + + + + + Érték + Engedély + Könyvtárlistában + + + + + + 0 + Nem olvasható, nem írható, nem + hajtható végre + --- + + + + 1 + Nem olvasható, nem írható, + végrehajtható + --x + + + + 2 + Nem olvasható, írható, nem + hajtható végre + -w- + + + + 3 + Nem olvasható, írható, + végrehajtható + -wx + + + + 4 + Olvasható, nem írható, nem + hajtható végre + r-- + + + + 5 + Olvasható, nem írható, + végrehajtható + r-x + + + + 6 + Olvasható, írható, nem + hajtható végre + rw- + + + + 7 + Olvasható, írható, + végrehajtható + rwx + + + + + + ls + könyvtárak + + A &man.ls.1; kapcsolójának + segítségével megnézhetjük a + könyvtárak tartalmának részletes + listáját, amiben megjelennek az + állományok tulajdonosaira, csoportjára + és a mindenki másra vonatkozó + engedélyek is. Például ezt láthatjuk, + ha kiadjuk az ls -l parancsot egy + tetszõleges könyvtárban: + + &prompt.user; ls -l +total 530 +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 egyik +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 masik +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 e-mail.txt +... + + A példabeli ls -l parancs + kimenetének elsõ oszlopa így bomlik fel: + + -rw-r--r-- + + Az elsõ (legbaloldalibb) karakter mondja meg, hogy ez egy + hagyományos állomány, könyvtár, + speciális karakteres eszköz, socket vagy + bármilyen más különleges + pszeudoállomány. Ebben az esetben a + - jelzi, hogy egy hagyományos + állományról van szó. A + következõ három karakter, ami ebben a + példában az rw-, adja meg az + állomány tulajdonosának engedélyeit. + Az ezután következõ három karakter, a + r-- mutatja az állomány + csoportjának engedélyeit. Az utolsó + három karakter, vagyis itt a r-- adja + meg a többiek engedélyeit. A kötõjel arra + utal, hogy az adott engedélyû + tevékenység nem engedélyezett. Tehát + ennél az állománynál az + engedélyek a következõek: a tulajdonosa tudja + olvasni és írni, a csoportja csak olvasni tudja, + ugyanígy bárki más. A fenti + táblázatnak megfelelõen az + állomány engedélyének kódja + 644 lesz, ahol az egyes számjegyek + jelentik az állomány engedélyeinek + három elemét. + + Ez mind szép és jó, de vajon a rendszer + milyen módon kezeli az állományok + engedélyeit? A &os; a legtöbb hardveres eszközt + állománynak tekinti, amelyeket a programok meg + tudnak nyitni, tudnak róluk olvasni és adatokat + tudnak kiírni rájuk pontosan úgy, mint + bármilyen más állomány esetén. + Ezeket a speciális állományokat a + /dev könyvtárban + találjuk. + + A könyvtárakat is + állományokként kezeli, ezért azok is + rendelkeznek olvasási, írási és + végrehajtási engedélyekkel. Azonban a + könyvtárak végrehajtását + engedélyezõ bit némileg más + jelentéssel bír, mint az állományok + esetén. Amikor ugyanis egy könyvtárat + végrehajthatónak jelölünk meg, az arra fog + utalni, hogy bele tudunk lépni, vagyis hogy ki tudjuk + rá adni a + könyvtárváltás (cd, + change directory) parancsát. Ez továbbá arra + is utal, hogy az ismert nevû állományokhoz + hozzá tudunk férni (természetesen az egyes + állományok engedélyeinek + megfelelõen). + + A könyvtárak tartalmát ennek + megfelelõen viszont csak úgy láthatjuk, ha + olvasási engedéllyel rendelkezünk a + könyvtárra, míg egy általunk ismert + állomány törléséhez a + tartalmazó könyvtárhoz kell írási + és végrehajtási + engedélyekkel rendelkeznünk. + + Ezeken kívül még léteznek + további engedélyek is, de ezeket csak olyan + különleges esetekben használják, mint + például a + felhasználóváltó programok (setuid + program) vagy a ragadós könyvtárak (sticky + directory) létrehozása. Az állományok + engedélyeinek behatóbb megismeréséhez + és beállításához + mindenképpen nézzük át a &man.chmod.1; + man oldalt. + + + + + + Tom + Rhodes + Írta: + + + + + Szimbolikus engedélyek + + + engedélyek + szimbolikus + + + A szimbolikus engedélyek (gyakran csak szimbolikus + kifejezések) az állományok és + könyvtárak engedélyeinek megadása + során a számok helyett karaktereket + használnak. A szimbolikus kifejezések (ki) + (hogyan) (milyen engedélyt) alakúak, ahol az + alábbi értékek adhatóak meg: + + + + + + Elem + Betû + Jelentése + + + + + + (ki) + u + tulajdonos + + + + (ki) + g + csoport tulajdonos + + + + (ki) + o + egyéb + + + + (ki) + a + mindenki (a világ) + + + + (hogyan) + + + engedély megadása + + + + (hogyan) + - + engedély visszavonása + + + + (hogyan) + = + engedély explicit + beállítása + + + + (milyen engedély) + r + olvasás + + + + (milyen engedély) + w + írás + + + + (milyen engedély) + x + végrehajtás + + + + (milyen engedély) + t + ragadós (sticky bit) + + + + (milyen engedély) + s + UID vagy GID állítása + + + + + + Ezek az értékek a &man.chmod.1; paranccsal az + eddigiekhez hasonló módon + használhatóak, csak itt betûket kell + megadnunk. Például az alábbi paranccsal + akadályozhatjuk meg, hogy a tulajdonosán + kívül bárki hozzáférhessen az + ÁLLOMÁNY nevû + állományhoz: + + &prompt.user; chmod go= ÁLLOMÁNY + + Amennyiben egy állománnyal kapcsolatban + több változtatást is el + kívánunk végezni, össze tudjuk ezeket + fûzni egy vesszõkkel elhatárolt + felsorolásban: + + &prompt.user; chmod go-w,a+x ÁLLOMÁNY + + + + + + + + Tom + Rhodes + Írta: + + + + + A &os; állományjelzõi + + A korábban tárgyalt engedélyek mellett + még a &os; ismeri az ún. + állományjelzõk (file flags) + beállítását is. Ezek a + jelzõbitek egy további biztonsági és + irányítási szintet nyújtanak az + állományok felett, viszont a + könyvtárakra nem vonatkoznak. + + Ezek az állományjelzõk az + állományok felett további + vezérlést adnak a kezünkbe, aminek + révén gondoskodhatunk róla, hogy + akár mgé a root + felhasználó (a rendszer adminisztrátora) se + legyen képes állományokat + eltávolítani vagy módosítani. + + Az állományjelzõk értékei + egy egyszerû felületen keresztül, a + &man.chflags.1; segédprogrammal + változtathatóak meg. Például a + következõ paranccsal állíthatjuk a + rendszer törölhetetlen (undeletable) + jelzését az allomany1 + állományon: + + &prompt.root; chflags sunlink allomany1 + + A törölhetetlen jelzés + eltávolításához egyszerûen csak + írjuk be az elõzõ parancsot úgy, hogy a + sunlink paraméter elejére + még beszúrunk egy no + szövegrészt. Így: + + &prompt.root; chflags nosunlink allomany1 + + Az állományokra éppen + érvényes jelzéseket az &man.ls.1; parancs + kapcsolójának + segítségével jeleníthetjük + meg: + + &prompt.root; ls -lo file1 + + + Ennek megfelelõen az eredménynek valahogy + így kellene kinéznie: + + -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 allomany1 + + Sok jelzés csak a root + felhasználón keresztül vehetõ fel vagy + távolítható el. Más esetekben + viszont az állomány tulajdonosa + állíthatja ezeket. A rendszergazdáknak + javasoljuk, hogy ezzel kapcsolatban a &man.chflags.1; és + &man.chflags.2; man oldalakat tanulmányozzák + át. + + + + + + A könyvtárak elrendezése + + könyvtárhierarchia + + A &os; könyvtárszerkezetének ismerete + alapvetõ jelentõségû a rendszer + egészének megértésének + szempontjából. Ezen belül is a legfontosabb a + gyökérkönyvtár, a /. Ez az + elsõ könyvtár, amelyet a rendszer a + rendszerindítás során csatlakoztat és + a többfelhasználós mód + elõkészítéséhez + elegendhetlenül szükséges alaprendszert + tartalmazza. A gyökérkönyvtár emellett + csatlakozási pontokat szolgáltat a + többfelhasználós mûködésre + váltás során csatlakoztatandó + további állományrendszerek + számára. + + A csatlakozási pont egy olyan könyvtár, + ahová a szülõ állományrendszeren + (ami gyakran maga a gyökér + állományrendszer) belül további + állományrendszereket tudunk beoltani. Errõl + bõvebben a ban olvashatunk. + A szabványos csatlakozási pontok: + /usr, /var, + /tmp, /mnt és + /cdrom. Ezekre a könyvtárakra + általában az /etc/fstab + állományban találunk hivatkozásokat. + Az /etc/fstab állomány a + rendszer számára a különbözõ + állományrendszerek és a hozzájuk + tartozó csatlakozási pontok + táblázatát tartalmazza. Az + /etc/fstab állományban + szereplõ legtöbb állományrendszer a + rendszerindítás során automatikusan + csatlakoztatásra kerül az &man.rc.8; szkriptbõl, + hacsak nem tartalmazzák a + beállítást. Ennek részleteit a ban találhatjuk meg. + + Az állományrendszerek + hierarchiájának teljes leírását + a &man.hier.7; man oldalon olvashatjuk. Mi egyelõre most + megelégszünk a leggyakrabban megjelenõ + könyvtárak rövid + áttekintésével. + + + + + + + Könyvtár + Mi található itt + + + + + / + Az állományrendszer + gyökere. + + + /bin/ + Az egy- és + többfelhasználós környezetekben + is egyaránt alapvetõ + felhasználói + segédprogramok. + + + /boot/ + Az operációs rendszer + indítása során használt + programok és konfigurációs + állományok. + + + /boot/defaults/ + A rendszerindítás + alapértelmezett konfigurációs + állományai. Lásd + &man.loader.conf.5; + + + /dev/ + Eszközleírók, lásd + &man.intro.4;. + + + /etc/ + Rendszerkonfigurációs + állományok és szkriptek. + + + /etc/defaults/ + Az alapértelmezett + rendszerkonfigurációs + állományok, lásd + &man.rc.8;. + + + /etc/mail/ + A &man.sendmail.8; programhoz hasonló + levélküldõ rendszerek + konfigurációs + állományai. + + + /etc/namedb/ + A named program + konfigurációs állományai, + lásd &man.named.8;. + + + /etc/periodic/ + A &man.cron.8; által naponta, hetente + és havonta lefuttatandó szkriptek, + lásd &man.periodic.8;. + + + /etc/ppp/ + A ppp program + konfigurációs állományai, + lásd &man.ppp.8;. + + + /mnt/ + Egy üres könyvtár, amelyet a + rendszergazdák általában ideiglenes + csatlakozási pontként + használnak. + + + /proc/ + A futó programokat tartalmazó + állományrendszer, lásd + &man.procfs.5;, illetve &man.mount.procfs.8;. + + + /rescue/ + Statikusan linkelt programok vészhelyzet + esetére, lásd &man.rescue.8;. + + + /root/ + A root + felhasználó könyvtára. + + + /sbin/ + Az egy- és + többfelhasználós környezetekben + fontos rendszerprogramok és + rendszerfelügyeleti eszközök. + + + /tmp/ + Átmeneti állományok. A + /tmp + könyvtár tartalma általában + NEM marad meg az újraindítás + után. Erre a célra gyakran + memóriában létrehozott + állományrendszert szoktak csatlakoztatni a + /tmp + könyvtárba. Ez utóbbit az + &man.rc.conf.5; tmpmfs-re vonatkozó + változóinak + beállításával lehet + automatikussá tenni (vagy a + /etc/fstab megfelelõ + módosításával, lásd + &man.mdmfs.8;). + + + /usr/ + A felhasználói programok és + alkalmazások többsége. + + + /usr/bin/ + Általános segédprogramok, + programozási eszközök és + alkalmazások. + + + /usr/include/ + Szabványos C + include-állományok. + + + /usr/lib/ + Függvénykönyvtárak. + + + /usr/libdata/ + Egyéb hasznos + adatállományok. + + + /usr/libexec/ + (Más programok által használt) + Rendszerdémonok és + rendszereszközök. + + + /usr/local/ + A helyi rendszeren telepített programok, + függvénykönyvtárak stb. A &os; + portrendszere is ezt használja + alapértelmezés szerint. A + /usr/local könyvtáron + belül a &man.hier.7; man oldalon + található /usr + könyvtár általános + felépítése használatos. Ez + alól kivételt képez a man + alkönyvtár, amely közvetlenül a + /usr/local alatt + található, nem pedig a + /usr/local/share + könyvtáron belül, valamint a portok + dokumentációja a + share/doc/port + könyvtárban található. + + + /usr/obj/ + A /usr/src + könyvtárfában található + források fordítása során + keletkezõ architektúrafüggõ + objektumok. + + + /usr/ports + A &os; Portgyûjtemény + (választható). + + + /usr/sbin/ + (A felhasználók által + használt) Rendszerdémonok és + rendszereszközök. + + + /usr/share/ + Architektúrafüggõ + állományok. + + + /usr/src/ + BSD és/vagy helyi források. + + + /usr/X11R6/ + Az X11R6 rendszer programjai, + függvénykönyvtárai stb. + (választható) + + + /var/ + Különféle napló, + átmeneti, ideiglenes és pufferben + tárolt állományok. A + memóriában létrehozott + állományrendszereket is olykor a /var + könyvtárban találjuk. Ezt az + &man.rc.conf.5; állományban + található varmfs-változók + beállításával tehetjük + automatikussá (vagy a + /etc/fstab megfelelõ + módosításával, lásd + &man.mdmfs.8;). + + + /var/log/ + Mindenféle rendszernaplók. + + + /var/mail/ + A felhasználók postafiókjait + tároló állományok. + + + /var/spool/ + A nyomtatók és a levelezés + puffereléséhez használt + könyvtárak. + + + /var/tmp/ + Átmeneti állományok. Az itt + található állományok + általában megmaradnak a + következõ rendszerindítás + alkalmával is, hacsak a /var nem egy + memóriában létezõ + állományrendszer. + + + /var/yp + A NIS állományai. + + + + + + + + + + A lemezek szervezése + + Az állománynév a legkisebb + szervezési egység, amin keresztül a &os; + képes megtalálni az állományokat. Az + állományok neveiben a kis- és nagybetût + megkülönböztetjük, tehát a + readme.txt és a + README.TXT elnevezés két + különbözõ állományra utal. A + &os; nem az állományok kiterjesztése (ami a + konkrét példánkban a + .txt volt) alapján dönti el, hogy + az adott állomány vajon program, dokumentum vagy + valamilyen más fajtájú adat. + + Az állományok könyvtárakban + tárolódnak. Egy könyvtár lehet + akár üres (nincs benne egyetlen állomány + sem), vagy többszáz állományt is + tartalmazhat. Egy könyvtár ráadásul + további könyvtárakat is tárolhat, + és így az egymásban elhelyezkedõ + könyvtárak segítségével + könyvtárak egy hierarchiáját tudjuk + felépíteni. Ezzel sokkalta könnyebben + szervezhetõvé válnak az adataink. + + Az állományokat és + könyvtárakat úgy tudunk elérni, ha + megadjuk az állomány vagy a könyvtárt + tároló könyvtár nevét, amit egy + perjel, a / követ, valamint így + összefûzve az eléréshez + szükséges további könyvtárak + felsorolása. Tehát, ha van egy + ize nevû könyvtárunk, + amelyben található egy mize + könyvtár, amelyen belül pedig egy + readme.txt, akkor ennek az + állománynak a teljes neve, vagy + másképpen szólva az + elérési útja + ize/mize/readme.txt lesz. + + A könyvtárak és az állományok + egy állományrendszerben tárolódnak. + Minden állományrendszer pontosan egy + könyvtárat tartalmaz a legfelsõ szintjén, + amelyet az adott állományrendszer + gyökérkönyvtárának + nevezünk. Ez a gyökérkönyvtár + tartalmazhat aztán további + könyvtárakat. + + Eddig még valószínûleg minden nagyon + hasonló a más operációs rendszerekben + tapasztalható fogalmakhoz. Azonban adónak + különbségek: például az &ms-dos; a + \ jellel választja el az + állományok és könyvtárak neveit, + miközben a &macos; erre a : jelet + használja. + + A &os; az elérési utakban sem betûkkel, sem + pedig semmilyen más névvel nem jelöli meg a + meghajtókat. Tehát a &os;-ben nem írhatjuk, + hogy a c:/ize/mize/readme.txt. + + Helyette az egyik állományrendszert + kijelölik gyökér + állományrendszernek. A + gyökér állományrendszer + gyökérkönyvtárára hivatkoznak + késõbb / + könyvtárként. Ezután minden más + állományrendszert a gyökér + állományrendszerhez + csatlakoztatunk. Ennek + értelmében nem számít, hogy a mennyi + lemezünk is van a &os; rendszerünkben, hiszen minden + könyvtár egyazon lemez részeként jelenik + meg. + + Tegyük fel, hogy van három + állományrendszerünk, hívjuk ezeket + A-nak, B-nek és + C-nek. Minden állományrendszer + rendelkezik egy gyökérkönyvtárral, amely + két további könyvtárat tartalmaz: + A1-et és A2-t + (és ennek megfelelõen a többi + B1-et és B2-t, + valamint C1 és + C2-t). + + Nevezzük A-t a gyökér + állományrendszernek. Ha a könyvtár + tartalmának megjelenítéséhez most + kiadnánk az ls parancsot, két + alkönyvtárat látnánk, az + A1-et és A2-t. A + létrejött könyvtárfa valahogy így + nézne ki: + + + + + + + + / + | + +--- A1 + | + `--- A2 + + + + Egy állományrendszert csak egy másik + állományrendszer valamelyik + könyvtárába tudunk csatlakoztatni. + Ezért most tételezzük fel, hogy a + B állományrendszert az + A1 könyvtárba csatlakoztatjuk. + Ezután a B + gyökérkönyvtára átveszi a + A1 helyét az + állományrendszerben, és ennek + megfelelõen megjelennek a B + könyvtárai is: + + + + + + + + / + | + +--- A1 + | | + | +--- B1 + | | + | `--- B2 + | + `--- A2 + + + + A B1 vagy B2 + könyvtárakban található + állományok bármelyike innentõl kezdve a + /A1/B1, illetve a /A1/B2 + elérési utakon érhetõek el. Az + A1 könyvtárban + található állományok erre az + idõre rejtve maradnak. Akkor fognak újra felbukkanni, + ha a B állományrendszert + leválasztjuk az A + állományrendszerrõl. + + Ha a B állományrendszert az + A2 könyvtárba + csatlakoztatnánk, az iménti ábra + nagyjából így nézne ki: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + és ennek megfelelõen az elõbb tárgyalt + elérési utak /A2/B1 és + /A2/B2 lennének. + + Az állományrendszerek egymáshoz is + csatlakoztathatóak. A példát ennek + megfelelõen úgy is folytathatjuk, hogy a + C állományrendszert + csatlakoztatjuk B + állományrendszerben található + B1 könyvtárhoz. Ennek + eredménye a következõ elrendezés + lesz: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- B2 + + + + Vagy a C állományrendszer az + A1 könyvtáron keresztül + csatlakoztatható akár közvetlenül az + A állományrendszerhez is: + + + + + + + + / + | + +--- A1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + Az &ms-dos; operációs rendszert ismerõk + számára ez hasonló lehet a + join parancshoz (habár teljesen nem + egyezik meg vele). + + Általában azonban ezzel nem kell + törõdnünk, hiszen többnyire csak a &os; + telepítése során hozunk létre + állományrendszereket és választjuk meg + a csatlakozási pontjukat. A késõbbiekben + legfeljebb ez akkor kerül elõ ismét, amikor + újabb lemezeket adunk hozzá a rendszerhez. + + Teljességgel megengedhetõ, hogy elhagyjuk a + többit és csak egyetlen óriási + gyökérállományrendszert + használjunk. Ennek viszont megvannak a maga + hátrányai és az egyetlen elõnye. + + + Több állományrendszer + használatának elõnyei + + + A különbözõ + állományrendszereknek + különbözõ + csatlakoztatási + beállításai (mount options) + lehetnek. Például, ha kellõen + elõvigyázatosak akarunk lenni, a + gyökérállományrendszer + írásvédett módon is + csatlakoztatható, aminek köszönhetõen + lehetetlenné válik a rendszer + számára fontos állományok + véletlen törlése vagy + felülírása. Ha + elkülönítjük a + felhasználók számára + írható állományrendszereket + (például a /home + könyvtárakat) a többi + állományrendszertõl, lehetõvé + válik számunkra, hogy + nosuid + beállítással csatlakoztassuk ezeket. Ez + a beállítás megakadályozza, hogy + ezekben a + suid/guid + bitekkel rendelkezõ végrehajtható + állományok használhatóak legyenek, + ezáltal növeli a rendszer + biztonságosságát. + + + + A &os; az állományrendszer + használatától függõen + magától határoz a benne + található állományok + optimális kiosztását illetõen. + Így tehát a gyakorta módosított, + kisebb állományokat tartalmazó + állományrendszerek esetén teljes + más technikákat alkalmaz, mint + például a nagyobb, kevésbé + változó állományok esetén. + Azonban egyetlen állományrendszer + használatával ez a gyorsítási + módszer odavész. + + + + Noha a &os; állományrendszerei nagyon + jól tûrik a hirtelen + áramkimaradásokat, egy döntõ ponton + bekövetkezõ váratlan leállás + továbbra is kárt okozhat a szerkezetükben. + Ha azonban több állományrendszerre osztjuk + a tárolandó adatainkat, sokkal + valószínûbbé válik, hogy egy + ilyen eset után a rendszerünk talpra tud + állni, és szükség esetén + nekünk is könnyebb lesz a biztonsági + mentéseinkbõl helyreállítani a + sérült állományokat. + + + + + Egyetlen állományrendszer + használatának elõnyei + + + Az állományrendszerek mérete + rögzített. Miután a &os; + telepítése során létrehoztunk + egy adott méretû + állományrendszert, elõfordulhat, hogy + késõbb szükségünk lesz a + méretének növelésére. + Ilyenkor nehezen kerülhetjük el az ilyenkor + szokásos teendõket: biztonsági + mentés készítése, az új + méretnek megfelelõ + állományrendszer létrehozása, + majd ezután a lementett adataink + visszaállítása. + + + A &os;-ben azonban megtalálható a + &man.growfs.8; parancs, amelynek + segítségével az + állományrendszerek mérete + használat közben növelhetõ, + és ezzel megszûnik a méretre + vonatkozó korlátozás. + + + + + Az állományrendszerek partíciókban + tárolódnak. A &os; &unix;-os eredete miatt azonban + ez a kifejezés nem a hétköznapi + partíció jelentését + takarja (mint például egy &ms-dos; + partíció). Minden partíciót egy + betû azonosít a-tól + h-ig. Mindegyik partíció csak + egyetlen állományrendszert tartalmazhat, aminek + révén az állományrendszereket vagy az + állományrendszerek hierarchiájában + található csatlakozási pontjukkal vagy pedig + az ezeket tartalmazó partíció + betûjével azonosíthatjuk. + + A &os; ezeken felül külön lemezterülen + tárolja a + lapozóállományt (swap + space). A lapozóállományt használja a + &os; virtuális memória + (virtual memory) megvalósításához. + Ennek köszönhetõen a + számítógép képes úgy + viselkedni, mintha jóval több memóriával + rendelkezne, mint valójában. Így, amikor a + &os; kifogy a memóriából, egyszerûen + kirakja a memóriából a + lapozóállományba az éppen nem + használt adatokat, majd amikor ismét + szüksége lesz rájuk, visszatölti ezeket + (és ilyenkor megint kirak valami mást). + + Némely partícióhoz kötõdnek + bizonyos megszokások. + + + + + + + + Partíció + Megszokás + + + + + a + Általában ez tartalmazza a + gyökér + állományrendszert. + + + b + Általában ez tartalmazza a + lapozóállományt. + + + c + Mérete általában a + tartalmazó slice méretével egyezik + meg. Ennek köszönhetõen a + segédprogramok (például egy + hibás szektorokat keresõ program) a + c partíción + keresztül képesek akár az egész + slice-al dolgozni. Normális esetben ezen a + partíción nem hozunk létre + állományrendszert. + + + d + A d partícióhoz + egykoron kapcsolódott különleges + jelentés, azonban mostanra ez már + megszûnt, és a d egy + teljesen átlagos partíciónak + tekinthetõ. + + + + + + Minden állományrendszert tartalmazó + partíciót a &os; egy ún. + slice-ban tárol. A &os; + számára a slice elnevezés utal mindarra, amit + általában partíciónak neveznek, + és ismét megemlítjük, mindez a &unix;-os + eredet miatt. A slice-okat 1-tõl 4-ig + sorszámozzák. + + slice-ok + partíciók + veszélyesen dedikált + + A slice-ok sorszáma 1-tõl indulva az + eszközök neve után egy s + betûvel elválasztva következik. Így + tehát a da0s1 + jelentése az elsõ slice lesz az elsõ + SCSI-meghajtón. Lemezenként négy fizikai + slice hozható létre, de ezeken belül + tetszõleges típusú logikai slice-ok + helyezhetõek el. Ezen további slice-ok + sorszámozása 5-tõl kezdõdik, így + ennek megfelelõen a ad0s5 + lesz az elsõ IDE-lemezen található elsõ + kiterjesztett slice. Ezeket az eszközöket + foglalják el a különbözõ + állományrendszerek. + + A slice-ok, a veszélyesen + dedikált (Dangerously Dedicated) fizikai + meghajtók, és minden más olyan + meghajtó, amely + partíciókat tartalmaz, + a-tól h-ig + jelölõdnek. Ez a betû az eszköz neve + után következik, így ennek megfelelõen a + da0a lesz az elsõ + da meghajtó a, vagyis a + veszélyesen dedikált + partíciója. Az + ad1s3e lesz a második + IDE-lemezmeghajtón a harmadik slice-ban szereplõ + ötödik partíció. + + Végezetül, a rendszerben minden lemezt + azonosítunk. A lemez neve a típusára + utaló kóddal kezdõdik, amely után + aztán egy sorszám jelzi, hogy melyik lemezrõl + is van szó. Azonban eltérõen a + slice-okétól, a lemezek sorszámozása + 0-tól indul. Az általánosan elterjedt + kódolások a ban + találhatóak. + + Amikor hivatkozunk egy partícióra, a &os; + elvárja tõlünk, hogy nevezzük meg az adott + partíciót tartalmazó slice-ot és + lemezt is. Emiatt egy partícióra mindig úgy + hivatkozunk, hogy elõször megadjuk a tartalmazó + lemez nevét, ettõl s-sel + elválasztva a tartalmazó slice + sorszámát, majd ezt a partíció + betûjelével zárjuk. Erre + példákat a ban láthatunk. + + Az érhetõség kedvéért a bemutatja egy lemez + kiosztásának fogalmi sablonját. + + A &os; telepítéséhez elõször be + kell állítani a lemezen található + slice-okat, majd létrehozni benne a &os;-hez + használni kívánt partíciókat, + kialakítani rajtuk az állományrendszereket + (vagy a lapozóállományt) és + eldönteni, melyik állományrendszert + kívánjuk csatlakoztatni. + + + Lemezes eszközök kódjai + + + + + + + Kód + Jelentés + + + + + ad + ATAPI (IDE) lemez + + + da + közvetlen hozzáférésû + SCSI lemez + + + acd + ATAPI (IDE) CDROM + + + cd + SCSI CDROM + + + fd + Floppylemez + + + +
+ + + Példák lemezek, slice-ok és + partíciók neveire + + + + + + + + Név + Jelentés + + + + + + ad0s1a + Az elsõ IDE lemezen (ad0) + levõ elsõ slice (s1) + elsõ partíciója + (a). + + + + da1s2e + A második SCSI-lemzen + (da1) levõ második slice + (s2) ötödik + partíciója (e). + + + + + + + + Egy lemez kialakításának + sablonja + + Az ábrán a rendszerhez csatlakoztatott elsõ + IDE-lemez látható a &os; + szemszögébõl. Tegyük fel, hogy ez a lemez + 4 GB méretû és két, + egyenként 2 GB méretû slice-ot (avagy + &ms-dos; partíciót) tartalmaz. Az elsõ slice + egy &ms-dos; formátumú lemezt foglal + magában, a C: meghajtót, + illetve a második slice egy telepített &os;-t + tartalmaz. Ebben a példában a &os; három + adatot és egy lapozóállományt + tároló partícióval + rendelkezik. + + A három partíció mindegyikén + találhatunk egy-egy állományrendszert. Az + a partíció lesz a + gyökér állományrendszer, az + e lesz a rendszerünkben a + /var és az f + pedig a /usr könyvtár. + + + + + + + + .-----------------. --. +| | | +| DOS / Windows | | +: : > Elsõ slice, ad0s1 +: : | +| | | +:=================: ==: --. +| | | a partíció, / | +| | > ad0s2a néven hivatkozzuk | +| | | | +:-----------------: ==: | +| | | b partíció, lapozóállomány | +| | > ad0s2b néven hivatkozzuk | +| | | | +:-----------------: ==: | c partíció, nincs +| | | e partíció, /var > állományrendszer, az egész +| | > ad0s2e néven hivatkozzuk | &os; slice, +| | | | ad0s2c +:-----------------: ==: | +| | | | +: : | f partíció, /usr | +: : > ad0s2f néven hivatkozzuk | +: : | | +| | | | +| | --' | +`-----------------' --' + + + + +
+ + + Állományrendszerek csatlakoztatása + és leválasztása + + Az állományrendszereket legkönnyebben + egy-egy faként tudjuk magunk elõtt elképzelni, + amelyek a / könyvtárból + nõnek ki. A /dev, + /usr és mellettük szereplõ, + hozzájuk hasonló összes többi + könyvtár csupán egy-egy ág, amelyeknek + saját ágaik is lehetnek, mint például + a /usr/local és így + tovább. + + gyökér + állományrendszer + + Különféle okainak vannak annak, hogy egyes + könyvtárakat különálló + állományrendszereken tárolunk. A + /var könyvtár tartalmazza a + log/, spool/ + könyvtárakat és különféle + átmeneti állományokat, azonban az ilyen + állományok könnyen megszaporodhatnak és + megtölthetik az állományrendszert. Mivel a + gyökér állományrendszert nem + tanácsos elárasztani mindenféle + állománnyal, ezért gyakran a hasznunkra + válthat, ha a /var + könyvtárat leválasztjuk a + / könyvtárból. + + Másik gyakori ok, ami az imént említett + fa egyes ágainak különbözõ + állományrendszereken történõ + tárolását indokolja, hogy ezek gyakran + más fizikai vagy virtuális lemezeken, + például a rendszerhez csatlakoztatott Hálózati + állományrendszereken vagy éppen + CD-meghajtókon találhatóak. + + + Az <filename>fstab</filename> + állomány + + + állományrendszerek + csatlakoztatás az fstab + állománnyal + + + A rendszerindítás + folyamata során az /etc/fstab + állományban felsorolt + állományrendszerek maguktól kerülnek + csatlakoztatásra (kivéve amikor a + beállítással + szerepelnek). + + Az /etc/fstab állományban + található sorok az alábbi + szerkezetûek: + + eszköz /csatlakozási-pont típus beállítások mentésigyak ellszám + + + + eszköz + + A ban leírtak + szerint megnevezett (létezõ) + eszköz. + + + + + csatlakozási-pont + + Egy (létezõ) könyvtár, ahova + az állományrendszer csatlakozik. + + + + + típus + + Az állományrendszer &man.mount.8; + parancs szerint ismert típusa. A &os; + alapértelmezett állományrendszere az + ufs. + + + + + beállítások + + Az írható-olvasható + állományrendszerek esetén + , az írásvédettek + esetén pedig , amelyet + igény szerint további + beállítások követhetnek. A + rendszerindítás során automatikusan + nem csatlakoztatandó + állományrendszerek esetén gyakran + alkalmazott beállítás itt még + a . Egyéb + lehetõségeket a &man.mount.8; man oldalon + láthatunk. + + + + + mentésigyak + + Ezt általában a &man.dump.8; parancs + használja a menteni szükséges + állományrendszerek + megállapításához. Amennyiben + hiányzik ez a mezõ, az automatikusan a nulla + értéket jelöli. + + + + + ellszám + + Megadja, hogy mely állományrendszereket + kell ellenõrizni. A nullás + pass értékkel + rendelkezõ állományrendszerek nem + kerülnek ellenõrzésre. A + gyökér állományrendszer (melyet + minden más elõtt kell ellenõrizni) + passno értéke egy, + míg az összes többi + állományrendszer passno + értéke általában egytõl + különbözõ. Ha egynél több + állományrendszer is ugyanazt a + passno értéket kapta, + akkor az &man.fsck.8; a lehetõségei szerint + megpróbálja ezeket egyszerre + ellenõrizni. + + + + + Az /etc/fstab + felépítésérõl és a benne + használható + beállításokról bõvebben a + &man.fstab.5; man oldalon olvashatunk. + + + + + A <command>mount</command> parancs + + + állományrendszerek + csatlakoztatás + + + Az állományrendszerek tényleges + csatlakoztatására avagy + mountolására a &man.mount.8; + parancs használható. + + Legegyszerûbb formája: + + + &prompt.root; mount eszköz csatlakozási-pont + + + Ahogy a &man.mount.8; man oldalán is olvashatjuk, itt + rengeteg opció is megadható, de ezek + közül a leggyakoribbak: + + + Csatlakoztatási opciók + + + + + Csatlakoztatja az /etc/fstab + állományban felsorolt összes + állományrendszert, kivéve azokat, + amelyek a noauto + beállítást tartalmazzák, vagy + kizártuk a kapcsolóval, + esetleg korábban már csatlakoztattuk. + + + + + + + A tényleges csatlakoztatás + elvégzése nélkül + végrehajt minden mást. Ez az opció + leginkább opcióval + együtt használható annak + megállapítására, hogy a + &man.mount.8; valójában mit is akar + csinálni. + + + + + + + Egy nem tiszta állományrendszer + csatlakoztatásának + kényszerítése (veszélyes!) + vagy egy korábban már csatlakoztatott + állományrendszer írható + állapotának + felfüggesztése. + + + + + + + Az állományrendszer + írásvédett csatlakoztatása. + Megegyezik a opciónál + megadható (vagy a &os; + 5.2-nél régebbi verziója + esetén a ) + beállítás + használatával. + + + + + + típus + + Az adott állományrendszer az adott + típusnak megfelelõen csatlakoztatja, vagy az + használata esetén csak + az adott típusú + állományrendszereket. + + Az ufs az + állományrendszerek alapértelmezett + típusa. + + + + + + + Frissíti az állományrendszerre + vonatkozó csatlakoztatási + beállításokat. + + + + + + + Részletesebb kijelzés. + + + + + + + Az állományrendszer + csatlakoztatása írásra és + olvasásra. + + + + + Az opció után + vesszõvel elválasztott + beállításokat adhatunk meg, többek + közt az alábbiakat: + + + + noexec + + Az állományrendszeren + található állományok + végrehajtásának tiltása. Ez + egy nagyon hasznos biztonsági + beállítás. + + + + + nosuid + + Az állományrendszeren nem + használhatóak a felhasználó- + (setuid) vagy csoportváltásra (setgid) + vonatkozó engedélyek. Nagyon hasznos + biztonsági beállítás. + + + + + + + + Az <command>umount</command> parancs + + + állományrendszerek + leválasztás + + + Az &man.umount.8; parancs paraméterként egy + csatlakozási pontot, egy eszköznevet vagy a + , illetve az + opciókat várja. + + A leválasztás + kényszerítéséhez mindegyik alakban + szerepelhet az opció, valamint a + részletesebb kijelzést a + opcióval kapcsolhatjuk be. Azonban szeretnénk + mindenkit figyelmeztetni, hogy a + használata alapvetõen nem ajánlott. Az + erõszakkal leválasztott + állományrendszerek összeomlaszthatják + a számítógépet vagy kárt + okozhatnak az állományrendszereken + található adatokban. + + Az és + opciók használatosak az összes + csatlakoztatott állományrendszer + leválasztására, amelyek típusait a + opció megadása után + sorolhatunk fel. Fontos különbség azonban, + hogy az opció a gyökér + állományrendszert nem próbálja meg + leválasztani. + + + + + + Folyamatok + + A &os; egy többfeladatos operációs + rendszer. Ez azt jelenti, hogy képes + látszólag egyszerre több programot is futtatni. + Az így egyszerre futó programokat egyenként + folyamatoknak (process) nevezzük. + Minden kiadott parancsunk elindít legalább egy ilyen + folyamatot, és a rendszerünk mozgásban + tartásához bizonyos rendszerszintû folyamatok + állandóan futnak a háttérben. + + Minden folyamatot egy + folyamatazonosítónak (process + ID vagy PID) nevezett szám + azonosít egyértelmûen, és az + állományokhoz hasonlóan, minden folyamatnak + van tulajdonosa és csoportja is. A tulajdonos és a + csoport ismeretében állapítja meg a rendszer, + hogy az adott folyamat a korábban említett + engedélyek szerint milyen állományokhoz + és eszközökhöz férhet hozzá. + Ezenkívül a legtöbb folyamatnak van még + egy szülõfolyamata is. A szülõfolyamat az a + folyamat, amely az adott folyamatot elindította. + Például amikor parancsokat adunk egy + parancsértelmezõn keresztül, akkor maga a + parancsértelmezõ is egy ilyen folyamat lesz + ugyanúgy, ahogy a benne kiadott parancsok által + elindított programok. Ennek megfelelõen az így + létrehozott összes folyamat szülõje maga a + parancsértelmezõ folyamata lesz. Az említettek + alól egyik kivétel az &man.init.8; nevû + speciális folyamat. Az init lesz a + rendszerben mindig az elsõ folyamat, ezért a PID-je is + mindig 1. Az init programot a &os; + indulásakor a rendszermag fogja automatikusan + elindítani. + + A rendszerben futó programok + vizsgálatához két, különösen + hasznos parancsot találhatunk: ezek a &man.ps.1; és + a &man.top.1;. A ps parancs használatos + a pillanatnyilag futó programok statikus + listájának megjelenítésére. + Ebben olvashatjuk a futó programok + azonosítóit, mennyi memóriát + használnak éppen, milyen paranccsal + indították ezeket stb. A top + parancs mutatja az összes aktívan futó + programot, majd néhány másodpercenként + automatikusan frissíti ezt a listát, aminek + révén folyamatosan láthatjuk, miként + viselkednek a futó programok. + + A ps alapértelmezés szerint + csupán az általunk futtatott programokat mutatja. + Például: + + &prompt.user; ps + PID TT STAT TIME COMMAND + 298 p0 Ss 0:01.10 tcsh + 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) +37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) +48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi +48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) +72210 p0 R+ 0:00.00 ps + 390 p1 Is 0:01.14 tcsh + 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y + 6688 p3 IWs 0:00.00 tcsh +10735 p4 IWs 0:00.00 tcsh +20256 p5 IWs 0:00.00 tcsh + 262 v0 IWs 0:00.00 -tcsh (tcsh) + 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 + 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 + 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc + 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish + + Ahogy az a fenti példában is látszik, a + &man.ps.1; kimenete oszlopokra tagolható. Ezek + közül a PID tartalmazza a + korábban már ismertetett + folyamatazonosítókat. Az azonosítók + 1-tõl indulva egészen 99999-ig + sorszámozódhatnak, illetve ha kifutnánk + belõlük, akkor a számozás kezdõdik + elölrõl (azonban a használatban levõ + azonosítók sosem kerülnek újra + kiosztásra). A TT oszlopban + láthatjuk azt a terminált, amelyen az adott program + éppen fut, de ezt pillanatnyilag akár nyugodtan + figyelmen kívül is hagyhatjuk. A + STAT oszlopban a program + állapotát kapjuk meg, de szintén + átugorható. A TIME a program + processzoron eltöltött idejét mutatja — ez + általában nem arra utal, hogy mennyi ideje fut maga + a program, hiszen a legtöbb programnak meglehetõsen + sokat kell várakoznia egyáltalán mielõtt + a processzorra lenne szüksége. Végezetül + a COMMAND oszlopban olvashatjuk azt a + parancsot, amellyel a programot elindították. + + A &man.ps.1; számos különféle + beállítást ismer az általa + megjelenített információk + megválasztásához. Az egyik ilyen + leghasznosabb beállítás az + auxww: az + segítségével az összes futó + programot láthatjuk, nem csak a sajátjainkat; az + megadásával + láthatóvá válik a folyamat + tulajdonosának a felhasználói neve, valamint + a memóriahasználata is; az + megmutatja a démon (avagy háttér)folyamatok + adatait is és a hatására + pedig a &man.ps.1; az összes folyamathoz a teljes parancssort + kiírja, még akkor is, ha nem férne ki a + képernyõre. + + A &man.top.1; kimenete is hasonló. Ha + elindítjuk, általában ezt + láthatjuk: + + &prompt.user; top +last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 +47 processes: 1 running, 46 sleeping +CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle +Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free +Swap: 256M Total, 38M Used, 217M Free, 15% Inuse + + PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND +72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top + 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 + 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA + 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm +48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu + 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd + 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt +... + + A kimenet két részre osztható. A + fejlécben (vagyis az elsõ öt sorban) + látható az utoljára futtatott program + azonosítója (PID), a rendszer átlagos + terhelése (load average, amellyel mérjük, hogy + a rendszerünk mennyire lefoglalt), a rendszer + indítása óta eltelt idõ (up mint uptime) + és a jelenlegi idõ. A fejlécben még + megtalálhatjuk azt is, mennyi program fut (esetünkben + ez most 47), mennyi memóriát és + lapozóállományt használnak és + mennyi idõt tölt a rendszer a processzor + különbözõ állapotaiban. + + A fejléc alatt a &man.ps.1; kimenetéhez + hasonló módon oszlopokba rendezve találhatjuk + meg a folyamatok adatait: az azonosítóikat, a + tulajdonosaik nevét, a felhasznált + processzoridõt, a futtatott parancsot. A &man.top.1; + alapértelmezés szerint mutatja a futó + programok által használt memória + mennyiségét is: ez további két + oszlopra oszlik, ahol az egyikben a teljes + memóriafoglalást (SIZE), a másikban pedig az + jelen pillanatban aktívan használt + memóriát (RES) láthatjuk. A + példában látható is, hogy a + &netscape; (navigator-linu) + alkalmazásnak majdnem 30 MB-nyi + memóriára van szüksége, de ebbõl + aktívan csak 9 MB-ot használ. + + A &man.top.1; a kijelzést minden második + másodpercben magától frissíti, de ez + az kapcsolóval + állítható. + + + + + Démonok, jelzések és a futó + programok leállítása + + Amikor elindítunk egy szövegszerkesztõt, nem + sok gondunk akad az irányításával, + könnyen utasíthatjuk az állományok + betöltésére és így tovább. + Mindezt azért tehetjük meg, mert a + szövegszerkesztõ erre lehetõséget + biztosít és mivel a szövegszerkesztõ egy + terminálhoz kapcsolódik. + Egyes programok azonban nem úgy lettek kialakítva, + hogy állandóan a felhasználó + utasításaira támaszkodjanak, ezért az + elsõ adandó alkalommal lekapcsolódnak a + terminálról. Például egy webszerver + egész nap csak webes kéréseket + válaszol meg, és általában semmi + szüksége nincs a felhasználók + utasításaira. A szerverek között + leveleket közvetítõ programok is ugyanezen + osztályba tartoznak. + + Ezeket a programokat + démononoknak hívjuk. A + démonok a görög mitológiában + jelentek meg: sem a jót, sem pedig a gonoszt nem + képviselték, egyszerû apró + szellemecskék voltak, akik az emberiség javát + szolgálták, pontosan úgy, ahogy ma teszik azt + a különféle web- és levelezõ + szerverek. Ezért is ábrázolták + sokáig a BSD kabalafiguráját is egy + tornacipõs, vasvillás vidám + démonként. + + A démonként futó programok nevéhez + a hagyományok szerint hozzá szokták + fûzni a d betût. A + BIND a Berkeley Internet Name Domain + (névfeloldó) szolgáltatása, azonban a + hozzátartozó program neve named, + az Apache webszerver programját + httpd-nek nevezik, a sornyomtató + kezeléséért felelõs démon pedig + az lpd és így tovább. Ez + csupán egy hagyomány, megszokás, nem pedig + egy kõbe vésett szabály: például + a Sendmail levelezõ + démonának neve sendmail és + nem pedig maild. + + Néha azért szükségünk lehet + arra, hogy felvegyük valahogy a kapcsolatot a + démonként futó programokkal is. Ennek egyik + lehetséges módja a + jelzésések (signal) + küldése (de alapvetõen bármilyen + futó programnak küldhetünk). Több + különféle jelzés küldhetõ + — egyeseknek közülük + megkülönböztetett jelentése van, + másokat magukat az alkalmazások értelmeznek, + amelyrõl a dokumentációjukban + tájékozódhatunk. A &man.kill.1; vagy + &man.kill.2; paranccsal más tulajdonában levõ + futó programoknak nem tudunk jelzéseket + küldeni, ami alól egyedüli kivétel a + root felhasználó. + + Bizonyos esetekben a &os; maga is küld néha + jelzéseket. Amikor egy alkalmazást rosszul + programoznak le és megpróbál egy + számára tiltott memóriaterülethez + hozzáférni, a &os; küld neki egy + Segmentation Violation + (SIGSEGV, szegmentálási hiba) + jelzést. Ha egy alkalmazás az &man.alarm.3; + rendszerhíváson keresztül kér egy adott + idõ utáni bekövetkezõ + értesítést, akkor kap errõl egy Alarm + (SIGALRM) jelzést és így + tovább. + + A folyamatok leállítására + két jelzés használható: a + SIGTERM (befejeztetés) és a + SIGKILL (leállítás). A + SIGTERM a folyamatok + leállításának illedelmes módja, + mivel ekkor a futó program képes + elkapni ezt a jelzést és + észrevenni, hogy le akarjuk állítani. + Ilyenkor a leállítás elõtt + lehetõsége van szabályosan lezárni a + naplóit és általánosságban + véve befejezni mindent, amit éppen csinál. + Elõfordulhat azonban, hogy a folyamatok figyelmen + kívül hagyják a SIGTERM + jelzést, ha például éppen egy + félbeszakíthatatlan feladat közepén + tartanak. + + A SIGKILL jelzést azonban egyetlen + futó program sem hagyhatja figyelmen kívül. Ez + lenne a Nem érdekel, mivel foglalkozol, azonnal + hagyd abba! jelzés. Amikor + SIGKILL jelzést küldünk egy + folyamatnak, a &os; leállítja a folyamatot ott + és ahol tart + + Ez azért nem teljesen igaz. Van + néhány olyan tevékenység, ami nem + szakítható meg. Ilyen például az, + amikor a program egy másik + számítógépen + található állományt + próbál olvasni, miközben valamilyen ok + (kikapcsolás, hálózati hiba) + folytán elveszti vele a kapcsolatot. Ekkor a program + futása megszakíthatatlan. Majd + amikor a program feladja a próbálkozást + (általában két perc után), akkor + következik be a tényleges + leállítása. + . + + További használható jelzések: + SIGHUP, SIGUSR1 és + SIGUSR2. Ezek általános + célú jelzések, amelyeket az + alkalmazások eltérõ módokon kezelnek + le. + + Tegyük fel, hogy megváltoztattuk a + webszerverünk beállításait + tartalmazó állományt — valamilyen + módon szeretnénk tudatni a szerverrel, hogy olvassa + be újra a beállításait. Ezt + megtehetjük úgy, hogy leállítjuk + és újraindítjuk a httpd + démont, de ezzel kiesést okozhatunk a szerver + mûködésében, amit viszont nem + engedhetünk meg. A legtöbb démont úgy + készítették el, hogy a + SIGHUP jelzés hatására + olvassa be újra a beállításait + tartalmazó állományt. Így a + httpd leállítása és + újraindítása helyett egyszerûen + elegendõ egy SIGHUP jelzés + küldése. Mivel azonban ez nem + szabványosított, a különbözõ + démonok ezt a jelzést + többféleképpen is értelmezhetik. + Ezért a használata elõtt ennek + mindenképpen járjunk utána a + kérdéses démon + dokumentációjában. + + A jelzéseket a &man.kill.1; paranccsal tudjuk + elküldeni, ahogy ezt a következõ + példában is láthatjuk. + + + Jelzés küldése egy futó + programnak + + Ebben a példában megmutatjuk, hogyan lehet + jelzést küldeni az &man.inetd.8; démonnak. + Az inetd a beállításait + az /etc/inetd.conf + állományban tárolja, és az + inetd a SIGHUP + jelzés hatására képes + újraolvasni ezt. + + + Keressük meg annak a folyamatnak az + azonosítóját, amelynek a jelzést + kívánjuk küldeni. Ezt a &man.ps.1; + és a &man.grep.1; használatával + tehetjük meg. A &man.grep.1; parancs + segítségével más parancsok + kimenetében tudunk megkeresni egy általunk + megadott szöveget. Ezt a parancsot átlagos + felhasználóként futtatjuk, azonban az + &man.inetd.8; démont a root + birtokolja, ezért az &man.ps.1; használata + során meg kell adnunk az + kapcsolókat is. + + &prompt.user; ps -ax | grep inetd + 198 ?? IWs 0:00.00 inetd -wW + + Innen kiderül, hogy az &man.inetd.8; + azonosítója 198. Elõfordulhat, hogy az + eredményben maga a grep inetd + parancs is megjelenik. Ez a &man.ps.1; + listázási módszere miatt következhet + be. + + + + A jelzés elküldésére + használjuk a &man.kill.1; parancsot. Mivel az + &man.inetd.8; démont a root + felhasználó futtatja, ehhez elõször a + &man.su.1; parancs kiadásával nekünk is + root felhasználóvá + (rendszeradminisztrátorrá) kell + válnunk. + + &prompt.user; su +Password: +&prompt.root; /bin/kill -s HUP 198 + + Ahogy az a legtöbb &unix; esetén elfogadott, a + sikeres végrehajtás esetén a &man.kill.1; + sem válaszol semmit. Amikor viszont nem egy + saját programunknak akarunk jelzést + küldeni, akkor a kill: + PID: Operation not + permitted (a mûvelet nem + engedélyezett) hibaüzenetet látunk. Ha + véletlenül elgépeljük volna a + futó program azonosítóját, akkor a + küldendõ jelzés nem a megfelelõ + folyamatnál fog kikötni (ami nem éppen + jó), vagy ha szerencsénk van, akkor a + jelzést egy éppen használaton + kívüli azonosítóra + küldtük. Az utóbbi esetben a + következõ láthatjuk: kill: + PID: No such process + (nincs ilyen folyamat). + + + Miért <command>/bin/kill</command>? + + A legtöbb parancsértelmezõ + beépítetten tartalmazza a saját + kill parancsát, tehát + ilyenkor közvetlenül maga a + parancsértelmezõ küldi a jelzést, + nem pedig a /bin/kill programon + keresztül. Ez gyakran a javunkra válhat, + azonban a küldhetõ jelzések megadása + parancsértelmezõnként eltérhet. + Így, ahelyett, hogy egyenként ismernünk + kellene mindegyiket, sokkal egyszerûbb + közvetlenül a /bin/kill + ... parancsot + használni. + + + + + A többi jelzés küldése is nagyon + hasonló módon történik, hiszen + elegendõ csupán a TERM vagy a + KILL behelyettesítése a parancs + megfelelõ helyére. + + + A rendszerünkben óvatosan bánjunk a + futó programok + leállítgatásával, és + legyünk különös tekintettel az 1-es + azonosítóval rendelkezõ, speciális + feladattal bíró &man.init.8; folyamatra. A + /bin/kill -s KILL 1 parancs + kiadásával ugyanis gyorsan le tudjuk + állítani a rendszerünket. + Mielõtt egy &man.kill.1; parancsot + lezárnánk az Enter + billentyûvel, mindig + gyõzõdjünk meg róla, hogy valóban + tényleg a jó paramétereket adtuk + meg. + + + + + + Parancsértelmezõk + + parancsértelmezõk + parancssor + + A &os;-ben hétköznapi munkánk legnagyobb + részét a parancsértelmezõknek (shell) + nevezett parancssoros felületen tudjuk elvégezni. A + parancsértelmezõ fõ feladata a + beérkezõ parancsok elfogadása és + végrehajtatása. Sok parancsértelmezõ + ezenfelül rendelkezik beépített + funkciókkal is, amelyek olyan hétköznapi + feladatokban igyekeznek segíteni, mint + például az állományok kezelése + és tömeges elérése reguláris + kifejezések használatával, a parancssor + szerkesztése, parancsok makrózása és a + környezeti változók használata. A &os; + alapból tartalmaz néhány + parancsértelmezõt, ilyen például az + sh, a Bourne Shell, és a + tcsh, a továbbfejlesztett C-shell. Sok + más parancsértelmezõ, mint + például a zsh és + bash is elérhetõ a &os; + Portgyûjteményébõl. + + De melyik parancsértelmezõt is válasszuk? + Ez igazából ízlés kérdése. + Ha inkább C programozók vagyunk, akkor + valószínûleg egy olyan C-szerû shelllel + tudunk kényelmesen dolgozni, amilyen például + a tcsh. Ha viszont egy linuxos rendszert + használtunk korábban vagy éppen még + soha nem használtunk volna a &unix; parancssorát, + érdemes a bash-sel + megpróbálkoznunk. A lényeg az, hogy minden + parancsértelmezõnek vannak olyan egyedi + jellemezõi, amiért használatóak vagy + éppen nem használatóak a munkánkban, + ezért magunknak kell kiválasztani a nekünk + megfelelõt. + + A shellek egyik legáltalánosabb jellemzõje + az állományok neveinek + kiegészítése. Miután + begépeljük egy parancs vagy + állománynév elsõ néhány + karakterét, a Tab billentyû + lenyomásával megkérhetjük a + parancsértelmezõt, hogy magától + egészítse ki (találja ki) a + fennmaradó részt. Nézzük erre egy + példát. Tegyük fel, hogy van két + állományunk, izemize és + ize.mize, és szeretnénk + letörölni az ize.mize nevût. + Ehhez a következõt kell begépelnünk: + rm + iz[Tab].[Tab]. + + Erre a parancsértelmezõ a következõ + parancsot írja ki: rm + ize[SIPOLÁS].mize. + + A [SIPOLÁS] itt a konzol sípjára + vonatkozik, amellyel jelzi, hogy nem tudta teljesen + kiegészíteni az állomány nevét, + mivel egynél több is megfelel a megadott alaknak. Az + izemize és az + ize.mize is egyaránt az + iz elõtaggal kezdõdik, azonban + ebbõl a parancsértelmezõ csak az + ize elõtagot tudta kikövetkeztetni. + Ha most begépelünk még egy . + karaktert és újra megnyomjuk a Tab + billentyût, a parancsértelmezõ ezúttal + képes lesz az állomány teljes nevét + megállapítani. + + környezeti + változók + + A parancsértelmezõk másik + általános jellemzõje a környezeti + változók használata. A környezeti + változók lényegében a + parancsértelmezõ környezetéhez + tárolt név-érték párok. Ezt a + környezetet látja minden olyan program, amit a + parancsértelmezõbõl meghívunk, és + ezért tartalmazni is szokott sok ilyen + beállítást. Íme a leggyakoribb + környezeti változók felsorolása + és rövid leírása: + + környezeti + változók + + + + + + Változó + Leírás + + + + + + USER + A bejelentkezett felhasználó + neve. + + + PATH + Vesszõvel elválasztott + könyvtárak, ahol a parancsértelmezõ + a végrehajtható állományokat + keresi. + + + DISPLAY + Az aktuálisan használt X11 + megjelenítõ hálózati neve, + amennyiben létezik ilyen. + + + SHELL + A használt + parancsértelmezõ. + + + TERM + A felhasználó által + használt terminál típusa. Ebbõl + a terminál képességeit lehet + megállapítani. + + + TERMCAP + A terminálok + adatbázisából származó, + különbözõ + terminálfunkciókhoz tartozó + helyettesítõ (escape) kódok. + + + OSTYPE + Az operációs rendszer típusa, + például &os;. + + + MACHTYPE + A rendszer alatt futó gép + architektúrája. + + + EDITOR + A felhasználó által + használt szövegszerkesztõ. + + + PAGER + A felhasználó által + lapozásra használt program. + + + MANPATH + Vesszõvel elválasztott könyvtárak, + ahol a parancsértelmezõ a man + oldalakat keresi. + + + + + + Bourne-féle + parancsértelmezõk + + A környezeti változók + beállítása + parancsértelmezõként valamennyire eltér. + Például egy C-stílusú + parancsértelmezõ, mint például a + tcsh vagy a csh, a + setenv paranccsal állítja a + környezeti változókat. A Bourne-féle + parancsértelmezõk, mint például az + sh vagy a bash, az + export parancsot használják a + környezeti változók + beállítására. Például a + csh vagy a tcsh + használata során a következõképpen + tudjuk be- vagy átállítani a + EDITOR környezeti változó + értékét + /usr/local/bin/emacs-re: + + &prompt.user; setenv EDITOR /usr/local/bin/emacs + + Ugyanez a Bourne-féle + parancsértelmezõkben: + + &prompt.user; export EDITOR="/usr/local/bin/emacs" + + A legtöbb parancsértelmezõben a nevük + elõtt szerepeltetett $ jel + segítségével kérhetjük a + környezeti változók + értékének + behelyettesítését a parancssorba. Ennek + megfelelõen az echo $TERM parancs + kiíratja a TERM változó + aktuális értékét, mivel ebbe a + parancsértelmezõ már az echo + meghívása elõtt behelyettesíti a + TERM értékét. + + A parancsértelmezõk számos speciális + karaktert, ún. metakarakteret az adatok különleges + reprezentációjaként kezelnek. + Köztük a leggyakrabban használt a + *, amely tetszõleges számú + karaktert helyettesít egy állomány + nevében. Az ilyen metakarakterek + segítségével tudunk egyszerre több + állományt is megnevezni. Például ha + begépeljük az echo * parancsot, + akkor majdnem ugyanazt kapjuk eredményül, mintha az + ls parancsot adtuk volna ki, hiszen a + parancsértelmezõ ilyenkor veszi az összes + * metakarakterre illeszkedõ + állományt, és a kiíratásukhoz + pedig rendre behelyettesíti ezeket a parancssorba az + echo paramétereként. + + Ha nem szeretnénk, hogy a parancsértelmezõ + értelmezze a speciális karaktereket, akkor egy + backslash (visszaper) (\) + karaktert eléjük téve mindezt + megakadályozhatjuk. Az echo $TERM + parancs ugyebár kiíratja a terminálra + vonatkozó környezeti változó + beállítását, azonban a echo + \$TERM változatlanul kiírja a + $TERM szöveget. + + + A parancsértelmezõnk + megváltoztatása + + A parancsértelmezõnk legegyszerûbben a + chsh parancs használatával + változtatható meg. A chsh + kiadása után elindítja az + EDITOR környezeti változónak + megfelelõ szövegszerkesztõt, ha nem lenne ilyen, + akkor alapértelmezés szerint a + vi hívódik meg. Az így + megnyitott állományban változtassuk meg + kedvünk szerint a Shell: kezdetû + sort. + + A chsh parancsnak megadhatjuk az + opciót is, amin keresztül + szövegszerkesztõ használata nélkül + be tudjuk állítani a + parancsértelmezõt. Például ha a + parancsértelmezõnket a bash-re + akarjuk lecserélni, akkor ezt írjuk be: + + &prompt.user; chsh -s /usr/local/bin/bash + + + A használni kívánt + parancsértelmezõnek szerepelnie + kell az /etc/shells + állományban. Ha a kiválasztott + parancsértelmezõt a Portgyûjteménybõl + telepítettük fel, akkor az már minden + bizonnyal bekerült oda. Ha viszont saját magunk + raktuk volna fel, akkor ide is fel kell vennünk. + + Például ha a bash-t + manuálisan telepítettük és + másoltuk a /usr/local/bin + könyvtárba, akkor így kell + eljárnunk: + + &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells + + Majd próbálkozzunk újra a + chsh paranccsal. + + + + + + + Szövegszerkesztõk + + szövegszerkesztõk + szerkesztõk + + A &os; beállításának nagy + része szöveges állományok + szerkesztésével történik. Emiatt sosem + árt legalább egy szövegszerkesztõt + ismernünk. A &os; alaprendszerében, valamint a + Portgyûjteményben is találhatunk + néhányat belõlük. + + ee + + szerkesztõk + ee + + + A legegyszerûbben megtanulható és + legkönnyedebb szövegszerkesztõt + ee-nek, avagy easy + editornak hívják. Az + ee indításához + írjuk be az ee + állománynév + parancsot, ahol az + állománynév lesz a + szerkesztendõ állomány neve. Így + például az /etc/rc.conf + állomány szerkesztéséhez + gépeljük be az ee /etc/rc.conf + parancsot. Miután elindult az ee, az + összes szerkesztéshez használható + parancsa megjelenik a képernyõ felsõ + részében. Itt a kalap + (^) karakter a Ctrl + billentyû lenyomására utal, így + tehát a ^e jelölés a + Ctrle + billentyûkombinációt jelenti. Ha ki akarunk + lépni az ee-bõl, nyomjuk le + az Esc billentyût, majd a felbukkanó + menübõl válasszuk a szerkesztõ + elhagyását (leave editor). Ha az + állományt módosítottuk, + kilépés elõtt még a + szövegszerkesztõ rákérdez, hogy mentse-e a + változtatásainkat. + + vi + + szerkesztõk + vi + + emacs + + szerkesztõk + emacs + + + A &os; nagyobb tudású + szövegszerkesztõket, mint például a + vi-t, is tartalmaz az alaprendszer + részeként, miközben a többi, mint + például az Emacs vagy a + vim a Portgyûjtemény + részeként (editors/emacs és editors/vim) érhetõ el. + Ezek a szerkesztõk sokkal több lehetõséget + és erõt képviselnek, amiért + cserébe viszont valamivel nehezebb megtanulni a + használatukat. Ha viszont rengeteg szöveget akarunk + majd szerkeszteni, akkor egy vim vagy + Emacs használatának + megismerésével sok idõt + megspórolhatunk. + + + + + Eszközök és + eszközleírók + + Az eszköz elnevezést leginkább a + rendszerben folyó, hardverrel kapcsolatos + tevékenységek kapcsán + használják lemezekre, nyomtatókra, grafikus + kártyákra és billentyûzetekre. A &os; + indulása során többnyire azt láthatjuk, + hogy milyen eszközöket sikerült felismernie. + Ezeket a rendszerindításkor megjelenõ + üzeneteket a /var/run/dmesg.boot + állományban nézhetjük meg + újra. + + Például a acd0 az + elsõ IDE CD-meghajtót, míg a + kbd0 a billentyûzetet + képviseli. + + A &unix; operációs rendszerben a legtöbb + eszközt a /dev könyvtárban + található, eszközleíróknak + (device node) nevezett speciális állományokon + keresztül érhetjük el. + + + Eszközleírók + létrehozása + + Amikor egy újfajta eszközt adunk hozzá a + rendszerhez vagy csak annak egy új + példányát, mindig létre kell hoznunk + hozzá egy új + eszközleírót. + + + <literal>DEVFS</literal> (DEVice File System, + Eszköz-állományrendszer) + + Az eszközöket tartalmazó + állományrendszer, avagy + DEVFS, ad hozzáférést + a rendszermag által ismert eszközök neveihez + a globális állományrendszer nevein + keresztül. Így ahelyett, hogy magunknak kellene + létrehoznunk és módosítanunk az + eszközleírókat, a DEVFS + erre a célra fenntart egy külön + állományrendszert. + + A &man.devfs.5; man oldalon olvashatunk bõvebben + errõl. + + + + + + + Bináris formátumok + + Annak megértéséhez, hogy a &os; + miért az &man.elf.5; formátumot használja, + elõször is tisztában kell lennünk a &unix; + típusú rendszerekben használt + végrehajtható állományok három + uralkodó formátumával: + + + + &man.a.out.5; + A legõsibb és egyben a + klasszikus &unix;-os + tárgykódformátum. Egy tömör + és rövidke fejlécet használ, aminek + az elején a formátum + leírására szolgáló + bûvös szám + található (errõl bõvebben lásd + &man.a.out.5;). Három betöltött szegmenst + tartalmaz: .text, .data és .bss, valamint egy + szimbólumokat és karakterláncokat + tároló táblát. + + + + COFF + Az SVR3 tárgykódformátuma. A + fejléc itt már tartalmaz egy table nevû + szegmenst is, tehát a .text, .data és .bss + szegmensekhez hasonlóan ebbõl is többet tud + tárolni. + + + + &man.elf.5; + A COFF után következõ + formátum, amelyben több szegmens is + megtalálható, valamint létezik 32 bites + és 64 bites változatban is. Egyetlen + hátránya van: az ELF + tervezése során + rendszerarchitektúránként csupán + egyetlen ABI-t (bináris alkalmazói + felületet) feltételeztek. Ez azonban + meglehetõsen helytelen, mivel még a kereskedelmi + SYSV világában (ahol már legalább + három ABI található: SVR4, Solaris + és SCO) sem állja meg a helyét. + + A &os; ezt a problémát a + megbélyegzés (branding) + segítségével próbálja + megoldani, aminek révén el tudunk látni + egy ismert ELF állományt a + futtatásához megfelelõ ABI-ra + vonatkozó információkkal. Errõl + részletesebben a &man.brandelf.1; oldalán + tájékozódhatunk. + + + + A &os; a klasszikusok + táborából indult, ezért kezdetben az + &man.a.out.5; formátumot használta, mivel ez a + technológia a BSD kiadások számos + generációjában megméretettett + és bevált, egészen a 3.X ág + elindulásáig. Habár már jóval + elõtte lehetett fordítani és futtatni + natív ELF binárisokat (és + rendszermagokat) a &os; rendszereken, a &os; kezdetben + óckodott váltani az alapértelmezés + szerinti ELF formátumra. De vajon + miért? Nos, a linuxos tábor már megtette a + maga fájdalmas váltását az + ELF formátummal kapcsolatban, és + gyorsan maguk mögött hagyták a + a.out formátumot a rugalmatlan, + ugrótáblákra alapozott oszott + könyvtár-kezelési mechanizmusai miatt, amivel + viszont megnehezítették a + különbözõ fejlesztõk és + gyártók számára az osztott + könyvtárak létrehozását. Mivel + az ELF formátumhoz rendelkezésre + álló eszközök megoldást + kínáltak az osztott könyvtárak + gondjaira, és mivel általánosan + elfogadták a jövõbe vezetõ + útként, a &os; is felvállalta az + átállással kapcsolatos + költségeket és végrehajtotta azt. A + &os; az osztott könyvtárakat leginkább a Sun + &sunos; rendszeréhez hasonlóan kezeli, ami egy + nagyon könnyen használható + megoldás. + + De miért van ilyen sok különbözõ + formátum? + + A ködös és sötét múltban + egyszerûbb hardverek voltak. Ezek az egyszerû hardverek + egyszerû, kicsi rendszereket támogattak. Az + a.out tökéletesen megfelelõ + volt egy ilyen egyszerû rendszer (egy PDP-11) + binárisainak tárolására. Ahogy az + emberek nekiláttak átültetni errõl az + egyszerû rendszerrõl a &unix;-ot más + rendszerekre, az a.out formátumot + továbbra is megtartották, mivel a &unix; kezdeti, + Motorola 68k-ra, VAXenre készített + átírataihoz is elegendõ volt. + + Ezután néhány éles + elméjû hardvermérnök kitalálta, + hogy ha rá tudnák kényszeríteni a + programokat egy-két ügyetlen trükkre, akkor a + terveken meg tudnának spórolni néhány + logikai kaput és ezzel processzor is gyorsabban tudna + futni. Miközben az a.out + formátumot ilyen hardverre (amit manapság + RISC-nek hívnak) is szerették + volna áthozni, kiderült, hogy ebben az esetben szinte + használhatatlan. Ezért az + a.out formátum által + felkínáltnál nagyobb + teljesítmény elérése + érdekében nekiláttak számos más + formátumot is kidolgozni. Ekkor jöttek létre a + COFF, ECOFF és + más hasonló formátumok, amelyek + elõbb-utóbb korlátokba ütköztek + még mielõtt a történelem + megállapodott volna az ELF + formátumnál. + + Ráadásul a programok méretei egyre + inkább kezdtek nõni, miközben a lemezek (valamint + a fizikai memória) továbbra is viszonylag kicsik + maradtak, ezért megszületett az osztott + könyvtár ötlete és a virtuális + memóriát kezelõ alrendszer is sokat finomodott. + Mivel ezek a különbözõ fejlesztések a + a.out formátumra épültek, + annak használatósága a beletömött + módosítások számával + együtt romlott. Emellett az emberek még szerettek + volna betölteni különféle dolgokat + futási idõben dinamikusan, vagy éppen a + memória és a lapozóállomány + megspórolásához kipucolni a programjaik egyes + részeit az inicializáló + kódrészletek lefutása után. A + programozási nyelvek is fejlõdtek, és az + emberek a fõprogram futása elõtt is akartak + kódot futtatni. Az a.out + formátum rengeteg apró foltozáson esett + keresztül, amelyek egy ideig még tudták is + tartani magukat. Azonban egy idõ után már az + a.out formátum egyre növekvõ + teljesítménycsökkenés nélkül + már nem volt képes állni a sarat. + Habár az ELF megszûntette a + fennálló problémák jelentõs + részét, egyúttal megnehezítette egy + alapvetõen mûködõ rendszer + leváltását. Ezért az + ELF formátumnak meg kellett + várnia azt a pillanatot, amikorra az + a.out használata már + kényelmetlenné vált. + + Azonban ahogy múlt az idõ, az + eszközökbõl, amelyekbõl a &os; a + fordításához szükséges + eszközöket származtatta (különösen + az assembler és a betöltõ),létrejött + két párhuzamos fejlesztési fa. A &os;-fa + kiegészült az osztott könyvtárak + támogatásával és hibákat + javított, miközben a GNU-fa alkotói, akik + eredetileg készítették ezeket a programokat, + újraírták az eszközeiket és a + keresztfordításhoz egyszerûbb + támogatást készítettek, + cserélhetõvé tették a + különbözõ formátumokat és + így tovább. Sokan akartak &os;-re + keresztfordítani, azonban nem volt + szerencséjük, mert a &os; régebbi + forrásait az as és + ld már nem emésztette + meg. Az új GNU eszköztár (a + binutils) viszont ismeri már a + keresztfordítást, az ELF + formátumot, az oszott könyvtárakat, a C++ + kiterjesztéseit stb. Idõközben egyre több + gyártó ELF + formátumú binárisokat adott ki, és + jó érzés volt ezeket &os;-n is + futtatni. + + Az ELF sokkal kifejezõbb az + a.out formátumnál és + jóval több bõvítési + lehetõséget enged az alaprendszerben. Az + ELF formátumhoz tartozó + eszközöt jobban karbantartják és + támogatja a keresztfordítást, ami viszont + sokaknak fontos. Az ELF talán + némileg lassabb, mint az a.out, + azonban ez nehezen mérhetõ le. Számos + részletben eltérnek ugyan, például + hogyan képeznek le lapokat, hogyan kezelik az + inicializáló kódot stb., de ezek egyike sem + igazán fontos. Idõvel az a.out + támogatása ki fog kerülni a + GENERIC rendszermagból, és + végül majd teljesen eltávolításra + kerül, ahogy a régi a.out + formátumú programok szépen lassan + kifutnak. + + + + + Bõvebben olvashatunk... + + + Man oldalak + + man oldalak + + A &os; legátfogóbb + dokumentációja a benne található man + oldalak összesége. A rendszerben + található szinte majdnem mindegyik programhoz + létezik egy rövid használati + útmutató, amely bemutatja az adott program + alapvetõ mûködését és a + különbözõ beállításait. + Ezek a leírások a man parancs + segítségével jeleníthetõek meg. + A man parancs használata + egyszerû: + + &prompt.user; man parancs + + ahol a parancs a megismerni + kívánt parancsra utal. Például ha + az ls parancsról szeretnénk + többet megtudni, írjuk be: + + &prompt.user; man ls + + Az elérhetõ használati + útmutatókat a következõ számozott + szakaszokra osztották: + + + + Felhasználói parancsok + + + + Rendszerhívások és + hibakódok + + + + A C függvénykönyvtár + függvényei + + + + Eszközmeghajtók + + + + Állományformátumok + + + + Játékok és egyéb + szórakoztató alkalmazások + + + + Egyéb információk + + + + Rendszerkarbantartási és + -mûködtetési parancsok + + + + Rendszermagfejlesztõk számára + + + + Bizonyos esetekben ugyanaz a téma az + útmutatók több szakaszában is + elérhetõ. Például létezik + chmod felhasználói parancs + és a chmod() + rendszerhívás. Ilyenkor a man + parancsnak meg tudjuk adni pontosan, melyik szakaszra is vagyunk + kíváncsiak: + + &prompt.user; man 1 chmod + + Ennek hatására a chmod + felhasználói parancshoz tartozó oldal + jelenik meg. Írott formában a használati + útmutatók különbözõ + szakaszaira hagyományosan a név után + zárójelbe tett számmal hivatkoznak, + így a &man.chmod.1; a chmod + felhasználói parancs és a &man.chmod.2; a + rendszerhívás. + + Ez a módszer remekül mûködik abban az + esetben, amikor ismerjük a parancs nevét, azonban + mit tegyünk akkor, ha nem is emlékszünk a + nevére? A man parancs a + segítségével + paraméterezhetõ úgy is, hogy a parancsok + leírásai között keressen valamilyen + kulcsszó mentén: + + &prompt.user; man -k mail + + Ezzel a paranccsal megkapjuk azon parancsok + listáját, amelyek leírásában + szerepel a mail kulcsszó. Ez + egyébként mûködésében + teljesen megegyezik a apropos + paranccsal. + + Szóval szeretnénk megtudni, hogy a + /usr/bin könyvtárban levõ + parancsok pontosan mit is csinálnak? Ehhez írjuk + be: + + &prompt.user; cd /usr/bin +&prompt.user; man -f * + + vagy + + &prompt.user; cd /usr/bin +&prompt.user; whatis * + + ami ugyanezt teszi. + + + + + A GNU info állományok + + Szabad Szoftver + Alapítvány + + A &os;-ben megtalálható a Szabad Szofver + Alapítvány (Free Software Foundation, FSF) + által készített számos + alkalmazás. Ezek a programok a szokványos man + oldalakon kívül még altalában + tartalmaznak egy infonak nevezett, sokkal + részletesebb hipertext alapú leírást + is, amelyeket az info paranccsal, vagy ha van + fenn emacs, akkor annak az info + módjában tudjuk megjeleníteni. + + Az &man.info.1; parancs használatához ennyit + kell beírnunk: + + &prompt.user; info + + Itt a h lenyomásával kapunk + egy rövid bemutatkozást. A parancsok rövid + listáját a ? billentyû + hozza elõ. + + + +
+ diff --git a/hu_HU.ISO8859-2/books/handbook/bibliography/Makefile b/hu_HU.ISO8859-2/books/handbook/bibliography/Makefile new file mode 100644 index 0000000000..f926466a22 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/bibliography/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= bibliography/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/bibliography/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/bibliography/chapter.sgml new file mode 100644 index 0000000000..6323fc74cb --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/bibliography/chapter.sgml @@ -0,0 +1,689 @@ + + + + + + Irodalomjegyzék + + Míg a man oldalak a &os; operációs rendszer + egyes önálló részeit + tárgyalják, ismert a tény, hogy arról + egyáltalán nem szólnak, miképpen + illeszkednek egymáshoz ezek az alkotóelemek, és + ezáltal hogyan mûködik maga az + operációs rendszer. Erre a célra egyedül + csak egy jó &unix;-os rendszeradminisztrációs + szakkönyv és egy jó felhasználói + kézikönyv alkalmas. + + + A &os;-rõl szóló könyvek és + folyóiratok + + Idegennyelvû könyvek és + folyóiratok: + + + + Using FreeBSD + (kínai). Drmaster, 1997. + ISBN 9-578-39435-7. + + + FreeBSD Unleashed (kínai fordítás). + China Machine Press. + ISBN 7-111-10201-0. + + + FreeBSD From Scratch (1. kiadás, kínai). China + Machine Press. ISBN 7-111-07482-3. + + + FreeBSD From Scratch (2. kiadás, kínai). China + Machine Press. ISBN 7-111-10286-X. + + + FreeBSD Handbook (2. kiadás, kínai). Posts & Telecom Press. + ISBN 7-115-10541-3. + + + FreeBSD 3.x Internet (kínai). Tsinghua University Press. + ISBN 7-900625-66-6. + + + FreeBSD & Windows (kínai). China Railway Publishing House. + ISBN 7-113-03845-X + + + FreeBSD Internet Services HOWTO (kínai). China Railway + Publishing House. ISBN 7-113-03423-3 + + + FreeBSD for PC 98'ers (japán). SHUWA System Co, LTD. + ISBN 4-87966-468-5 C3055 P2900E. + + + FreeBSD (japán). CUTT. + ISBN 4-906391-22-2 C3055 P2400E. + + + Complete Introduction to FreeBSD + (japán). Shoeisha Co., Ltd. + ISBN 4-88135-473-6 P3600E. + + + Personal &unix; Starter Kit FreeBSD + (japán). ASCII. + ISBN 4-7561-1733-3 P3000E. + + + FreeBSD Handbook (japán fordítás). ASCII. + ISBN 4-7561-1580-2 P3800E. + + + FreeBSD mit Methode (német). Computer und Literatur Verlag/Vertrieb Hanser, + 1998. ISBN 3-932311-31-0. + + + FreeBSD 4 - Installieren, Konfigurieren, Administrieren + (német). Computer und Literatur Verlag, + 2001. ISBN 3-932311-88-4. + + + FreeBSD 5 - Installieren, Konfigurieren, Administrieren + (német). Computer und Literatur Verlag, + 2003. ISBN 3-936546-06-1. + + + FreeBSD de Luxe + (német). Verlag Modere Industrie, 2003. + ISBN 3-8266-1343-0. + + + FreeBSD Install and Utilization Manual + (japán). Mainichi Communications Inc., + 1998. ISBN 4-8399-0112-0. + + + Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo + Building Internet Server with FreeBSD + (indonéz nyelven). Elex Media Komputindo. + + + Absolute BSD: The Ultimate Guide to FreeBSD (kínai + fordítás). GrandTech Press, 2003. + ISBN 986-7944-92-5. + + + The FreeBSD 6.0 Book + (kínai). Drmaster, 2006. ISBN 9-575-27878-X. + + + + Angol nyelvû könyvek és + folyóiratok: + + + + Absolute BSD: The Ultimate Guide to FreeBSD. + No Starch Press, 2002. + ISBN: 1886411743 + + + The Complete FreeBSD. + O'Reilly, 2003. + ISBN: 0596005164 + + + The FreeBSD Corporate Networker's Guide. + Addison-Wesley, 2000. + ISBN: 0201704811 + + + FreeBSD: An Open-Source Operating System for Your Personal Computer. + The Bit Tree Press, 2001. + ISBN: 0971204500 + + + Teach Yourself FreeBSD in 24 Hours. + Sams, 2002. + ISBN: 0672324245 + + + FreeBSD 6 Unleashed. + Sams, 2006. + ISBN: 0672328755 + + + FreeBSD: The Complete Reference. + McGrawHill, 2003. + ISBN: 0072224096 + + + + + + + Felhasználói kézikönyvek + + + + Computer Systems Research Group, UC Berkeley. + 4.4BSD User's Reference Manual. + O'Reilly & Associates, Inc., 1994. + ISBN 1-56592-075-9 + + + Computer Systems Research Group, UC Berkeley. + 4.4BSD User's Supplementary Documents. + O'Reilly & Associates, Inc., 1994. + ISBN 1-56592-076-7 + + + &unix; in a Nutshell. + O'Reilly & Associates, Inc., 1990. + ISBN 093717520X + + + Mui, Linda. + What You Need To Know When You Can't Find Your &unix; System + Administrator. + O'Reilly & Associates, Inc., 1995. + ISBN 1-56592-104-6 + + + Ohio Állami Egyetemnek + van egy Alapozó &unix; kurzusa, + amely az Interneten keresztül is elérhetõ HTML és PostScript + formátumokban. + + Ennek a dokumentumnak egy olasz fordítása + is elérhetõ az Olasz &os; Dokumentációs + Projekt keretében. + + + Jpman Project, Japanese &os; User's Group. + FreeBSD User's Reference Manual + (japán fordítás). Mainichi Communications Inc., 1998. + ISBN4-8399-0088-4 P3800E. + + + Az Edinburghi Egyetemen + készítettek az újoncok számára egy + Internetes kézikönyvet + a &unix; környezetekhez. + + + + + + + Rendszeradminisztrátori kézikönyvek + + + + Albitz, Paul and Liu, Cricket. + DNS and BIND (4. kiadás). + O'Reilly & Associates, Inc., 2001. + ISBN 1-59600-158-4 + + + Computer Systems Research Group, UC Berkeley. + 4.4BSD System Manager's Manual. + O'Reilly & Associates, Inc., 1994. + ISBN 1-56592-080-5 + + + Costales, Brian és mások. + Sendmail (2. kiadás). + O'Reilly & Associates, Inc., 1997. + ISBN 1-56592-222-0 + + + Frisch, Æleen. + Essential System Administration + (2. kiadás). + O'Reilly & Associates, Inc., 1995. + ISBN 1-56592-127-5 + + + Hunt, Craig. + TCP/IP Network Administration + (2. kiadás). + O'Reilly & Associates, Inc., 1997. + ISBN 1-56592-322-7 + + + Nemeth, Evi. + &unix; System Administration Handbook + (3. kiadás). + Prentice Hall, 2000. + ISBN 0-13-020601-6 + + + Stern, Hal. + Managing NFS and NIS. + O'Reilly & Associates, Inc., 1991. + ISBN 0-937175-75-7 + + + Jpman Project, Japan FreeBSD Users Group. + FreeBSD System Administrator's Manual + (japán fordítás). + Mainichi Communications Inc., 1998. + ISBN4-8399-0109-0 P3300E. + + + Dreyfus, Emmanuel. + Cahiers de l'Admin: BSD + (2. kiadás, franciául). + Eyrolles, 2004. + ISBN 2-212-11463-X + + + + + + + Programozói kézikönyvek + + + + Asente, Paul, Converse, Diana, and Swick, Ralph. + X Window System Toolkit. + Digital Press, 1998. + ISBN 1-55558-178-1 + + + Computer Systems Research Group, UC Berkeley. + 4.4BSD Programmer's Reference Manual. + O'Reilly & Associates, Inc., 1994. + ISBN 1-56592-078-3 + + + Computer Systems Research Group, UC Berkeley. + 4.4BSD Programmer's Supplementary Documents. + O'Reilly & Associates, Inc., 1994. + ISBN 1-56592-079-1 + + + Harbison, Samuel P. and Steele, Guy L. Jr. + C: A Reference Manual (4. kiadás). + Prentice Hall, 1995. + ISBN 0-13-326224-3 + + + Kernighan, Brian and Dennis M. Ritchie. + The C Programming Language (2. kiadás). + PTR Prentice Hall, 1988. + ISBN 0-13-110362-8 + + + Lehey, Greg. + Porting &unix; Software. + O'Reilly & Associates, Inc., 1995. + ISBN 1-56592-126-7 + + + Plauger, P. J. + The Standard C Library. + Prentice Hall, 1992. + ISBN 0-13-131509-9 + + + Spinellis, Diomidis. + Code Reading: The Open Source Perspective. + Addison-Wesley, 2003. + ISBN 0-201-79940-5 + + + Spinellis, Diomidis. + Code Quality: The Open Source Perspective. + Addison-Wesley, 2006. + ISBN 0-321-16607-8 + + + Stevens, W. Richard and Stephen A. Rago. + Advanced Programming in the &unix; Environment + (2. kiadás). + Reading, Mass. : Addison-Wesley, 2005. + ISBN 0-201-43307-9 + + + Stevens, W. Richard. + &unix; Network Programming + (2. kiadás), + PTR Prentice Hall, 1998. + ISBN 0-13-490012-X + + + Wells, Bill. + Writing Serial Drivers for &unix;. + Dr. Dobb's Journal. + 19(15), 1994. december, 68-71. és 97-99. oldal. + + + + + + + Az operációs rendszerek belsõ + mûködésérõl + + + + Andleigh, Prabhat K. + &unix; System Architecture. + Prentice-Hall, Inc., 1990. + ISBN 0-13-949843-5 + + + Jolitz, William. + Porting &unix; to the 386. + Dr. Dobb's Journal. + 1991. január - 1992. július. + + + Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels + és John Quarterman. + The Design and Implementation of the 4.3BSD &unix; + Operating System. + Reading, Mass. : Addison-Wesley, 1989. + ISBN 0-201-06196-1 + + + Leffler, Samuel J., Marshall Kirk McKusick. + The Design and Implementation of the 4.3BSD &unix; + Operating System: Answer Book. + Reading, Mass. : Addison-Wesley, 1991. + ISBN 0-201-54629-9 + + + McKusick, Marshall Kirk, Keith Bostic, Michael J Karels és + John Quarterman. + The Design and Implementation of the 4.4BSD Operating + System. + Reading, Mass. : Addison-Wesley, 1996. + ISBN 0-201-54979-4 + + (A könyv 2. fejezete elérhetõ + online + a &os; Dokumentációs Projekt részeként, + valamint + itt a 9. fejezet.) + + + Marshall Kirk McKusick, George V. Neville-Neil. + The Design and Implementation of the FreeBSD Operating + System. + Boston, Mass. : Addison-Wesley, 2004. + ISBN 0-201-70245-2 + + + Stevens, W. Richard. + TCP/IP Illustrated, Vol 1: The Protocols. + Reading, Mass. : Addison-Wesley, 1996. + ISBN 0-201-63346-9 + + + Schimmel, Curt. + &unix; Systems for Modern Architectures. + Reading, Mass. : Addison-Wesley, 1994. + ISBN 0-201-63338-8 + + + Stevens, W. Richard. + TCP/IP Illustrated, Vol 3: TCP for Transactions, HTTP, + NNTP and the &unix; Domain Protocols. + Reading, Mass. : Addison-Wesley, 1996. + ISBN 0-201-63495-3 + + + Vahalia, Uresh. + &unix; Internals — The New Frontiers. + Prentice Hall, 1996. + ISBN 0-13-101908-2 + + + Wright, Gary R. és W. Richard Stevens. + TCP/IP Illustrated, Vol 2: The Implementation. + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-63354-X + + + + + + + Biztonságról szóló + írások + + + + Cheswick, William R. és Steven M. Bellovin. + Firewalls and Internet Security: Repelling the Wily + Hacker. + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-63357-4 + + + Garfinkel, Simson és Gene Spafford. + Practical &unix; & Internet Security + (2. kiadás). + O'Reilly & Associates, Inc., 1996. + ISBN 1-56592-148-8 + + + Garfinkel, Simson. + PGP Pretty Good Privacy. + O'Reilly & Associates, Inc., 1995. + ISBN 1-56592-098-8 + + + + + + + Hardverrel foglalkozó írások + + + + Anderson, Don és Tom Shanley. + Pentium Processor System Architecture + (2. kiadás). + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-40992-5 + + + Ferraro, Richard F. + Programmer's Guide to the EGA, VGA, and Super VGA Cards + (3. kiadás). + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-62490-7 + + + Az &intel; által gyártott processzorokról + és chipsetekrõl, valamint az általuk + kialakított szabványokról a saját fejlesztõi oldalukon, + általában PDF állományok + formájában kaphatunk információkat. + + + Shanley, Tom. + 80486 System Architecture (3. kiadás). + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-40994-1 + + + Shanley, Tom. + ISA System Architecture (3. kiadás). + Reading, Mass. : Addison-Wesley, 1995. + ISBN 0-201-40996-8 + + + Shanley, Tom. + PCI System Architecture (4. kiadás). + Reading, Mass. : Addison-Wesley, 1999. + ISBN 0-201-30974-2 + + + Van Gilluwe, Frank. + The Undocumented PC (2. kiadás). + Reading, Mass: Addison-Wesley Pub. Co., 1996. + ISBN 0-201-47950-8 + + + Messmer, Hans-Peter. + The Indispensable PC Hardware Book + (4. kiadás). + Reading, Mass: Addison-Wesley Pub. Co., 2002. + ISBN 0-201-59616-4 + + + + + + + &unix; történelem + + + + Lion, John. + Lion's Commentary on &unix; (6. kiadás, + forráskóddal). + ITP Media Group, 1996. + ISBN 1573980137 + + + Raymond, Eric S. + The New Hacker's Dictionary (3. kiadás). + MIT Press, 1996. + ISBN 0-262-68092-0. + Vagy Zsargon fájlként + is ismert. + + + Salus, Peter H. + A quarter century of &unix;. + Addison-Wesley Publishing Company, Inc., 1994. + ISBN 0-201-54777-5 + + + Simon Garfinkel, Daniel Weise, Steven Strassmann. + The &unix;-HATERS Handbook. + IDG Books Worldwide, Inc., 1994. + ISBN 1-56884-203-1. + Kifogyott, de elérhetõ + ezen + a linken. + + + Don Libes, Sandy Ressler. + Life with &unix; — + különkiadás. + Prentice-Hall, Inc., 1989. + ISBN 0-13-536657-7 + + + The BSD family tree. + + vagy egy telepített &os; rendszeren a + /usr/share/misc/bsd-family-tree + állomány. + + + The BSD Release Announcements collection. + 1997. + + + Networked Computer Science Technical Reports + Library. + + + + Old BSD releases from the Computer Systems + Research group (CSRG). Ez a 4 CD-s + készlet tartalmazza az összes BSD verziót a + 1BSD-tõl kezdve a 4.4BSD és 4.4BSD-Lite2-ig (de + nem a 2.11BSD-t sajnos nem). Az utolsó lemezen + megtalálhatóak a végleges + források, illetve az SCCS + állományok. + + + + + + + Magazinok és folyóiratok + + + + The C/C++ Users Journal. + R&D Publications Inc. + ISSN 1075-2838 + + + Sys Admin — The Journal for &unix; System + Administrators. + Miller Freeman, Inc. + ISSN 1061-2688 + + + freeX — Das Magazin für &linux; - BSD - &unix; + (német). + Computer- und Literaturverlag GmbH. + ISSN 1436-7033 + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/book.sgml b/hu_HU.ISO8859-2/books/handbook/book.sgml new file mode 100644 index 0000000000..f84e2621a9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/book.sgml @@ -0,0 +1,397 @@ + + + + +%books.ent; + +%chapters; + +%txtfiles; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %pgpkeys; +]> + + + + &os; kézikönyv + + A &os; Dokumentációs Projekt + + 1999. február + + + 1995 + 1996 + 1997 + 1998 + 1999 + 2000 + 2001 + 2002 + 2003 + 2004 + 2005 + 2006 + 2007 + 2008 + A &os; Dokumentációs Projekt + + + &bookinfo.legalnotice; + + + &tm-attrib.freebsd; + &tm-attrib.3com; + &tm-attrib.3ware; + &tm-attrib.arm; + &tm-attrib.adaptec; + &tm-attrib.adobe; + &tm-attrib.apple; + &tm-attrib.corel; + &tm-attrib.creative; + &tm-attrib.cvsup; + &tm-attrib.heidelberger; + &tm-attrib.ibm; + &tm-attrib.ieee; + &tm-attrib.intel; + &tm-attrib.intuit; + &tm-attrib.linux; + &tm-attrib.lsilogic; + &tm-attrib.m-systems; + &tm-attrib.macromedia; + &tm-attrib.microsoft; + &tm-attrib.netscape; + &tm-attrib.nexthop; + &tm-attrib.opengroup; + &tm-attrib.oracle; + &tm-attrib.powerquest; + &tm-attrib.realnetworks; + &tm-attrib.redhat; + &tm-attrib.sap; + &tm-attrib.sun; + &tm-attrib.symantec; + &tm-attrib.themathworks; + &tm-attrib.thomson; + &tm-attrib.usrobotics; + &tm-attrib.vmware; + &tm-attrib.waterloomaple; + &tm-attrib.wolframresearch; + &tm-attrib.xfree86; + &tm-attrib.xiph; + &tm-attrib.general; + + + + Üdvözöljük a &os; + világában! Ez a kézikönyv ismerteti a + &os; &rel2.current;-RELEASE, ill. a + &os; &rel.current;-RELEASE + telepítését és + használatát a mindennapokban. A + kézikönyv tartalmán számos + független fejlesztõ folyamatosan + dolgozik. Emiatt elképzelhetõ, hogy + bizonyos fejezetek már elavultak és + aktualizálásra szorulnak. Amennyiben úgy + érezzük, hogy segíteni tudnánk a + projekt munkájában, értesítsük + a fejlesztõket a &a.doc; címén! Ezen + dokumentum legfrissebb változata mindig + elérhetõ a &os; + honlapjáról (a korábbi + változatok pedig megtalálhatóak a címen). + Ezenkívül még rengeteg más + formátumban és tömörítve is + letölthetõ a &os; FTP + szerverérõl vagy a tüköroldalak + egyikérõl. Amennyiben a kézikönyv + nyomtatott változatára lenne + szükségünk, megvásárolhatjuk a + &os; + Mall-ból. Ha pedig keresni szeretnénk + benne, azt a funkciót itt + érhetjük el. + + + + &chap.preface; + + + Bevezetés + + + A &os; kézikönyv ezen része azoknak a + felhasználóknak és rendszergazdáknak + szól, akik még nem ismerik a &os;-t. A + fejezetek: + + + Bemutatják a &os;-t. + + + + Végigvezetnek a telepítés + folyamatán. + + + + Ismertetik a &unix; alapjait. + + + + Megmutatják, hogyan telepítsük a + &os;-hez elérhetõ megannyi külsõ + alkalmazást. + + + + Megismerhetjük az X-et, a &unix;-os + ablakozórendszert, és részleteiben is + láthatjuk, miként konfiguráljunk be egy + munkakörnyezetet, amellyel kényelmesebbé + válik a munka. + + + + A fejezetek megírása során arra + törekedtünk, hogy minél kevesebb + hivatkozást tegyünk a könyv késõbb + következõ részeire, így ennek + köszönhetõen a kézikönyv ezen + része anélkül olvasható, hogy + közben folyamatosan elõre-hátra kellene + lapozgatnunk benne. + + + + + + + + + + + Gyakori feladatok + + + Miután az alapokat már átvettük, a + &os; kézikönyv következõ része + néhány gyakorta alkalmazott funkciót + tárgyal. Az itt szereplõ fejezetek: + + + + Bemutatnak különféle hasznos és + népszerû asztali alkalmazást: + böngészõket, irodai + elõsegítõ eszközöket, + dokumentum-megjelenítõket stb. + + + + Bemutatják a &os; alatt is elérhetõ + multimédia eszközöket. + + + + Kifejtik egy saját &os; rendszermag + elkészítésének + folyamatát, amellyel így bõvíteni + tudjuk rendszerünk + funkcionalitását. + + + + Részletesen bemutatják a + nyomtatásért felelõs alrendszert, asztali + és hálózati nyomtatók + használata esetén egyaránt. + + + + Megmutatják, hogyan futassunk Linuxra + íródott alkalmazásokat a &os; + rendszerünkön. + + + + + Egyes fejezetek elolvasásához ajánlott + bizonyos mértékû + felkészülés, amely megemlítésre + is kerül az érintett fejezetek + áttekintésében. + + + + + + + + + + + + Rendszeradminisztráció + + + A &os; kézikönyv fennmaradó fejezeteiben + a &os; rendszerek adminisztrációjának + különbözõ aspektusait mutatjuk be. + Mindegyik fejezet elején megtudhatjuk mit is fogunk + megismerni a fejezet elolvasása során, illetve + arról is információkat kapunk, hogy mivel + kell már tisztában lennünk a tárgyalt + anyag feldolgozásához. + + Ezeket a fejezeteket annak érdekében + alakítottuk ki, hogy az adott témákban + ismereteket adjunk. Nincs köztük semmilyen sorrendi + kötöttség, sõt, ezeket + egyáltalán nem is szükséges elolvasni + a &os; alapvetõ használatához. + + + + + + + + + + + + + + + + + + + Hálózati kommunikáció + + + A &os; az egyik legelterjedtebb operációs + rendszer a legnagyobb hálózati + teljesítményt nyújtó + kiszolgálók körében. Az itt + található fejezetek témái: + + + + Soros kommunikáció + + + + PPP és PPP Etherneten keresztül + (PPPoE) + + + + Elektronikus levelezés + + + + Hálózati kiszolgálók + futattása + + + + Tûzfalak + + + + Egyéb haladó hálózati + témák + + + + Ezek a fejezetek nem állnak egymással szoros + kapcsolatban, csupán egy adott + témáról adnak ismereteket. + Ennélfogva nem kötelezõ ezeket sorrendben + elolvasni, valamint egyáltalán nem is kell + mindegyikõjüket átolvasni ahhoz, hogy a &os;-t + hálózati környezetben is használni + tudjuk. + + + + + + + + + + + + + Függelék + + + + + + + + + &chap.colophon; + + + diff --git a/hu_HU.ISO8859-2/books/handbook/boot/Makefile b/hu_HU.ISO8859-2/books/handbook/boot/Makefile new file mode 100644 index 0000000000..92105efc40 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/boot/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= boot/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/boot/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/boot/chapter.sgml new file mode 100644 index 0000000000..ce415b3635 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/boot/chapter.sgml @@ -0,0 +1,1172 @@ + + + + + A &os; rendszerindítási folyamata + + + Áttekintés + + rendszerindítás + rendszertöltõ + + A számítógép + indulását és a rajta található + operációs rendszer + betöltõdését + rendszerindítási folyamatnak + nevezzük, vagy egyszerûen csak + bootolásnak. A &os; + rendszerindítási folyamata + nagymértékû rugalmasságot + kínál a rendszer indulását + követõ események vezérlését + illetõen, legyen az a + számítógépre telepített + különféle operációs rendszerek + egyikének kiválasztása, vagy pedig ugyanazon + operációs rendszer valamelyik + változatának vagy rendszermagjának + kiválasztása. + + Ez a fejezet részleteiben bemutatja a + rendszerindításhoz kapcsolódó + konfigurációs opciókat, illetve a &os; + bootolásának + testreszabhatóságát. Ebbe minden + beleértendõ, ami a &os; rendszermag beindulása + és az eszközök keresése során + történik, majd az &man.init.8; + elindításával zárul. Ha nem vagyunk + teljesen biztosak benne, ez pontosan mikor is következik be, + figyeljük, amikor a szöveg színe + fehérrõl szürkére vált. + + A fejezet elolvasása során + megismerjük: + + + + milyen elemekbõl áll a &os; + rendszertöltõ alrendszere, és ezek + miként kapcsolódnak egymáshoz; + + + + melyek azok a &os; + rendszerindításában résztvevõ + elemeknek átadható opciók, amelyekkel + vezérelhetõ ez a folyamat; + + + + a &man.device.hints.5; alapjait. + + + + + Csak x86 + + Ez a fejezet kizárólag csak az &intel; x86 + típusú architektúráján + futó &os; rendszerindítási + folyamatát mutatja be. + + + + + + A rendszerindítás + problémája + + Az operációs rendszer elindítása a + számítógép bekapcsolása + után egy felettébb érdekes + problémát vet fel. Definíció szerint + a számítógép ugyanis egy + lépést sem tud megtenni az operációs + rendszer elindulása nélkül. + Például nem tud programokat futtatni a + lemezrõl. Eszerint ha a + számítógépünk nem képes + programokat futtatni a lemezrõl az operációs + rendszer segítsége nélkül, viszont az + operációs rendszer programjai a lemezen vannak, + mégis hogyan képes elindulni maga az + operációs rendszer? + + Maga a probléma a Münchausen + báró kalandjai c. könyvben + leírtakhoz hasonló. A történet szerint + ugyanis a fõszereplõ egy mocsárban ragadt + derék lovával, azonban sikerült kihúznia + magát belõle a saját hajánál + fogva. Ez a motívum vált a + számítógépek hõskorában a + rendszerbetöltés + alapjává, vagyis ahogyan + betöltötték az operációs + rendszereket. (Ford.: ezt az angolban bootstrappingnek + hívják, mivel a történet angol + változata szerint a csizmáján (boot) + emelkedett ki. Ebbõl alakult ki késõbb az + elterjedt bootolás szó is.) + + BIOS + + + Alapvetõ be- és kimeneti rendszer + BIOS + + + Az x86-os konfigurációkon a BIOS (Basic + Input/Output System, avagy alapvetõ be- és + kimeneti rendszer) felelõs az operációs + rendszer betöltéséért. Ehhez a BIOS + elõször megkeresi a merevlemezen egy speciális + helyén található Master Boot Record-ot (MBR). + A BIOS elegendõ tudással rendelkezik az MBR + beolvasásához és + lefuttatásához, és feltételezi, hogy + az MBR majd elvégzi az operációs rendszer + betöltéséhez szükséges + további feladatokat, helyenként a BIOS + közremûködésével. + + Master Boot Record (MBR) + Boot Manager + Boot Loader + + Az MBR-ben található programkódot + hívják általában boot + managernek, kiváltképp abban az esetben, + amikor az a felhasználóval is kommunikál. + Ilyenkor a boot manager többnyire további kódot + tartalmaz a lemez elsõ + sávján vagy az egyik + állományrendszerben. (A boot managereket + néha boot loadernek is nevezzük, + de a &os;-s terminológia ezt a kifejezést a + rendszerindítás egy késõbbi + fokozatára használja.) Népszerûbb boot + managerek: boot0 (avagy + Boot Easy, a &os; alapvetõ boot + managere), GRUB, + GAG és a + LILO. (Ezek közül + egyedül csak a boot0 fér el + az MBR-ben.) + + Amennyiben merevlemezeinken csupán egyetlen + operációs rendszer foglal helyet, akkor egy + szabványos MBR tökéletes megfelelõ. Ez az + MBR megkeresi az elsõ indítható (más + néven aktív) slice-ot a lemezen, majd lefuttatja a + benne található indítókódot az + operációs rendszer többi részének + felélesztéséhez. Az &man.fdisk.8; + által alapértelmezés szerint + telepített MBR pontosan ilyen. Ennek alapja a + /boot/mbr állomány. + + Ha viszont több operációs rendszert is + telepítettünk a lemezeinkre, akkor egy ettõl + eltérõ boot managert érdemes + használnunk, olyat, amely képes felsorolni a + rendelkezésre álló operációs + rendszereket, lehetõvé téve, hogy + választani lehessen az indításuk + között. Ezek közül kettõrõl esik + szó a következõ alfejezetekben. + + A &os; rendszertöltõ alrendszerének + fennmaradó része három fokozatra + bontható. Az elsõ fokozatot az MBR indítja el, + amely pontosan eleget tud ahhoz, hogy a + számítógépet egy elõre megadott + állapotba hozza és lefutassa rajta a második + fokozatot. A második fokozat ennél már egy + kicsivel többre képes, majd ezt követi a harmadik + fokozat. Ez a fokozat zárja le végül az + operációs rendszer betöltésének + feladatát. A munka tehát ezen három fokozat + között oszlik meg, mivel a PC-szabványok komoly + korlátozásokat tesznek az elsõ, illetve + második fokozatban futtatható programok + méretére. Ha egy fûzzük össze a + feladatokat, akkor a &os; számára egy sokkal + rugalmasabb betöltõt kapunk. + + rendszermag + init + + Ezután beindul a rendszermag (más néven + kernel), és nekilát a + számítógépben rendelkezésre + álló hardvereszközök + keresésének, majd elõkészíti + õket a használatra. Ahogy a rendszermag + beindításának folyamata véget + ért, az átadja a vezérlést az + &man.init.8; nevû felhasználói programnak, + amely megbizonyosodik a lemezek + használhatóságáról. Az + &man.init.8; ezt követõen megkezdi az + erõforrások felhasználói szintû + bekonfigurálását: csatlakoztatja az + állományrendszereket, beállítja a + hálózati kártyá(ka)t, és + elindítja mindazon programokat, amelyeknek egy &os; + rendszer indulásakor futnia kell. + + + + + A boot manager és az indulás fokozatai + + Boot Manager + + + A boot manager + + Master Boot Record (MBR) + + Az MBR-ben található programkódot, + avagy boot managert, sokszor csak a + rendszerindítás nulladik + fokozataként emlegetik. Ez az alfejezet a + korábban említett két boot managert + tárgyalja: a boot0-t és + a LILO-t. + + + A <application>boot0</application> boot manager: + + A &os; telepítõje vagy a &man.boot0cfg.8; + által kialakított MBR alapértelmezett + állapotban a /boot/boot0 + állományon alapszik. (A + boot0 program nagyon egyszerû, + hiszen az MBR-ben elhelyezhetõ + kód csak 446 byte hosszúságú + lehet, mert a végében még el kell + férnie a slice-táblának és az + 0x55AA azonosítónak.) Ha + telepítettük a boot0-t + és a lemezeinken több operációs + rendszer is megtalálható, akkor a + rendszerindítás során egy hasonló + képet kell látnunk: + + + + A <filename>boot0</filename> munkában + + F1 DOS +F2 FreeBSD +F3 Linux +F4 ?? +F5 Drive 1 + +Default: F2 + + + Más operációs rendszerek, + különösen a &windows;, + telepítésük során + felülírják a már meglevõ MBR-t a + sajátjukkal. Ha ez történne, vagy + egyszerûen csak szeretnénk a meglevõ MBR-t + lecserélni a &os; MBR-jével, adjuk ki a + következõ parancsot: + + &prompt.root; fdisk -B -b /boot/boot0 eszköznév + + ahol az eszköznév + annak az eszköznek a neve, ahonnan a rendszert + indítani szeretnénk, tehát + például ad0 az elsõ + IDE-lemez esetén, vagy ad2 a + második IDE-vezérlõn található + elsõ IDE-lemez esetén, illetve + da0 az elsõ SCSI-lemez + esetén, és így tovább. Ha testre + akarjuk szabni az MBR-t, használjuk a + &man.boot0cfg.8;-t. + + + A LILO boot manager: + + Ezen boot manager telepítéséhez + és beállításához, + elsõként indítsuk el a Linuxot és + vegyük hozzá az alábbi sort a + rendszerünkben található + /etc/lilo.conf + konfigurációs állományhoz: + + + other=/dev/hdXY +table=/dev/hdX +loader=/boot/chain.b +label=FreeBSD + + A fenti sablont kiegészítve, a linuxos + konvenciók szerint adjuk meg a &os; elsõdleges + partícióját és + meghajtóját úgy, hogy a + X-et átírjuk a + linuxos meghajtó betûjelére és az + Y-t átírjuk a &linux; + elsõdleges partíciójának + számára. Ha + SCSI-meghajtót használunk, a + /dev/hd részt is át + kell írnunk az elõbbiek mellett + /dev/sd-re. A + sor elhagyható + abban az esetben, ha mind a két operációs + rendszer ugyanazon a meghajtón található. + Ha befejeztük a módosítást, futtassuk + le a /sbin/lilo -v parancsot a + változtatásaink életbe + léptetéséhez. Ezt + ellenõrizhetjük is a képernyõn + megjelenõ üzenetek alapján. + + + + + Az elsõ fokozat (<filename>/boot/boot1</filename>) + és a második fokozat + (<filename>/boot/boot2</filename>) + + Az elsõ és a második fokozat fogalmilag + ugyanannak a programnak a része, a lemezen ugyanott + helyezkedik el. A tárbeli megszorítások + miatt ugyan el kellett választani õket + egymástól, de a telepítésük + mindig egy helyre történik. A telepítõ + vagy a bsdlabel (lásd lentebb) + használata során a /boot/boot + nevû kombinált állományból + másolódnak ki. + + Az állományrendszereken kívül + találhatóak, az aktív slice elsõ + sávjában, annak elsõ + szektorától kezdõdõen. Ez az a hely, + ahol a boot0, illetve a + többi boot manager is keresi a + rendszerindítás folytatására + alkalmas programot. A felhasznált szektorok száma + könnyedén kideríthetõ a + /boot/boot + méretébõl. + + Legfeljebb 512 byte-os méreténél + fogva a boot1 állomány nagyon + egyszerû felépítésû, és + éppen csak annyit tud a slice-ra vonatkozó + információkat tároló &os; + bsdlabel-rõl, hogy megtalálja + a boot2-t és + elindítsa. + + A boot2 már egy kicsivel + ügyesebb, és ismeri eléggé a &os; + állományrendszerét ahhoz, hogy + megtaláljon rajta állományokat, valamint + képes egy egyszerû felületet nyújtani a + rendszermag vagy a betöltõ + megválasztásához. + + Mivel a betöltõ + pedig már ennél is okosabb, és egy + könnyen használható + rendszerindítási konfigurációt tud a + felhasználó számára nyújtani, + ezért a boot2 + általában ezt indítja el, de elõtte + közvetlenül a rendszermag futtatását + végzi el. + + + A <filename>boot2</filename> mûködés + közben + + >> FreeBSD/i386 BOOT +Default: 0:ad(0,a)/boot/loader +boot: + + + Ha le kellene váltani a korábban + telepített boot1 és + boot2 fokozatokat, használjuk a + &man.bsdlabel.8;-t: + + &prompt.root; bsdlabel -B lemezslice + + ahol a lemezslice annak a + lemeznek és slice-nak a kombinációja, + ahonnan indítjuk a rendszerünket, + például az elsõ IDE-lemez elsõ slice-a + esetén ez az ad0s1. + + + A veszélyesen dedikált mód + (Dangerously Dedicated Mode) + + Amikor a &man.bsdlabel.8; meghívásakor csak + a lemez nevét használjuk, például + ad0-t, a parancs egy + veszélyesen dedikált lemezt hoz létre, + slice-ok nélkül! Szinte biztos, hogy nem ez az, + amire szükségünk lenne, ezért mindig + ellenõrizzük kiadása elõtt a + &man.bsdlabel.8; parancsot! + + + + + + A harmadik fokozat + (<filename>/boot/loader</filename>) + + boot-loader + + A betöltõ a három fokozatú + rendszertöltés utolsó állomása. + Az állományrendszerben + /boot/loader néven találhatjuk + meg. + + A rendszertöltõt az egyszerû + konfigurálhatóságot támogató, + felhasználóbarát eszköznek + tervezték, és könnyen megtanulható, + beépített parancsokat használ, melyek + mögött egy összetettebb parancsokat ismerõ, + erõsebb értelmezõ áll. + + + A rendszertöltõ mûködése + + Az inicializálás során a + rendszertöltõ megpróbálja megkeresni a + konzolt és a lemezek közül igyekszik + megtalálni azt, amelyikrõl elindult a rendszer. A + keresések eredményének megfelelõen + beállítja a változókat, majd elindul + egy értelmezõ, ahol vagy szkriptbõl olvasva + vagy pedig interaktívan feldolgozásra + kerülnek a parancsok. + + rendszertöltõ + a rendszertöltõ + konfigurációja + + A rendszertöltõ ezt követõen beolvassa a + /boot/loader.rc állományt, + ami pedig alapértelmezés szerint feldolgozza a + /boot/defaults/loader.conf + állományt, ahol a változók + értelmes kezdõértéket kapnak, valamint + feldolgozza még a /boot/loader.conf + állományt is, ahol a változók + értékeit változtathatjuk meg. + Miután ez lezajlott, a loader.rc a + változók értékeinek megfelelõen + cselekszik, betöltve az ily módon + kiválasztott rendszermagot és a hozzá + választott modulokat. + + Végezetül, a rendszertöltõ beiktat + egy, alapértelmezés szerint 10 másodperces + várakozási szünetet, majd elindítja a + rendszermagot, ha azt meg nem szakítjuk egy + billentyû lenyomásával. Ha + megszakítjuk ezt a várakozást, a + rendszertöltõ egy parancssort ad, amin keresztül + egyszerû parancsokat adhatunk ki neki: + állíthatjuk a változók + értékeit, modulokat távolíthatunk el + a memóriából, modulokat + töltethetünk be, elindíthatjuk a rendszert vagy + újraindíthatjuk a + számítógépet. + + + + + A rendszertöltõ beépített + parancsai + + Következzenek a leggyakrabban használt parancsok + a rendszertöltõben. Az összes itt + elérhetõ parancsot a &man.loader.8; man oldalon + találjuk meg. + + + + autoboot + másodperc + + + Megkezdi a rendszermag betöltését, + ha nem szakítjuk meg a várakozást + másodpercekben megadott idõtartam alatt. + Ekkor egy visszaszámlálást + láthatunk, ami az alapértelmezés + szerint 10 másodperctõl indul. + + + + + boot + -opciók + rendszermag + + + Amennyiben léteznek, a megadott + opciókkal azonnal megkezdi a megadott rendszermag + betöltését. + + + + + boot-conf + + + Végigmegy a modulok ugyanazon automatikus + konfigurációján, ahogy az a + normális rendszerindítás során + is történik. Ezen parancs + használatának csak akkor van értelme, + ha elõtte az unload parancsot + használjuk, megváltoztatunk egy-két + változót, általában a + kernel-t. + + + + + help + témakör + + + A /boot/loader.help + állományban fellelhetõ + súgóüzeneteket mutatja meg. Ha + témakörnek indexet adunk + meg, akkor az elérhetõ + témakörök listáját kapjuk + meg. + + + + + include + állománynév + … + + + Feldolgozza a megnevezett állományt: + beolvassa, majd sorról-sorra értelmezi. + Hiba esetén azonnal megállítja a + feldolgozást. + + + + load + típus + állománynév + + + A név alapján betölti a + rendszermagot, modult vagy az adott típusú + állományt. Az + állománynév után megadott + további paraméterek az + állománynak adódnak át. + + + + ls + elérési + útvonal + + + Kilistázza a megadott elérési + útvonalon található + állományokat, vagy ennek + hiányában a gyökér + tartalmát. Ha hozzátesszük a + kapcsolót, az + állományok mérete is + látható válik. + + + + lsdev + + + Kilistázza az összes olyan eszközt, + ahonnan modulokat tölthetünk be. Amennyiben a + kapcsolót is megadjuk, + további részleteket tudhatunk meg + róluk. + + + + + lsmod + + + Kilistázza a betöltött modulokat. Ha + többet szeretnénk megtudni róluk, adjuk + meg a kapcsolót. + + + + + more + állománynév + + + Megmutatja a megadott állomány + tartalmát, minden LINES + számú sor után szünetet + tartva. + + + + + reboot + + + Azonnal újraindítja a + számítógépet. + + + + + set + változó + set + változó=érték + + + Beállítja a rendszertöltõ + környezeti változójának + értékét. + + + + + unload + + + Eltávolítja a + memóriából az összes + betöltött modult. + + + + + + + Rendszertöltõ példák + + Íme néhány konkrét példa + a rendszertöltõ használatára: + + + egyfelhasználós + mód + + + Így indíthatjuk + egyfelhasználós módban az + általunk használt rendszermagot: + + boot -s + + + + Távolítsuk el a betöltött + rendszermagot és a moduljait, és + töltsük be helyettük a korábbi (vagy + egy másik) rendszermagot: + + kernel.old + + unload +load kernel.old + + Itt használhatjuk a + kernel.GENERIC nevet is, amely a + telepítõlemezen található + általános rendszermagra utal, vagy a + kernel.old nevet, amely a + korábban használt rendszermagot rejti + (például amikor rendszermagot + frissítettünk vagy + készítettünk magunknak). + + + A következõképpen lehet + betölteni a szokásos moduljainkat egy + másik rendszermaggal: + + unload +set kernel="kernel.old" +boot-conf + + + + Egy rendszermag-konfigurációs szkript + (automatizált szkript, amely ugyanazokat a + beállításokat végzi el, amiket + mi magunk tennénk akkor, amikor a rendszermagot + indítjuk) betöltése: + + load -t userconfig_script /boot/kernel.conf + + + + + + + + + Kapcsolat a rendszermaggal a rendszerindítás + folyamán + + + rendszermag + kapcsolat a + rendszerindítással + + + Ahogy sikerült betölteni (a szokásos + módon) a rendszertöltõvel vagy (a + rendszertöltõ átugrásával) a boot2 + segítségével, a rendszermag + megvizsgálja az esetlegesen átvett + rendszerindítási paramétereket, és + azoknak megfelelõen viselkedik. + + + + + rendszermag + rendszerindítási + paraméter + + + A rendszermag paraméterei + + A rendszermag leginkább használt + paraméterei: + + + + + + + a rendszermag inicializálása + során rákérdez a gyökér + állományrendszerként + csatlakoztatandó eszközre. + + + + + + + + a rendszer indítása CD-rõl. + + + + + + + + a UserConfig, a rendszerindítás + során használt + rendszermag-beállító, + futtatása. + + + + + + + + a rendszer indítása + egyfelhasználós módban. + + + + + + + + részletesebb információk + megjelenítése a rendszermag + indítása során. + + + + + + Ezeken kívül még számos + paraméter létezik, a teljes listát a + &man.boot.8; man oldalon találhatjuk meg. + + + + + + + + + + Tom + Rhodes + Írta: + + + + + device.hints + + Eszköz útmutatók (device.hints) + + + Ez a lehetõség csak a &os; 5.0 vagy + annál késõbbi verzióiban jelenik + meg. + + + A rendszerindítás kezdeti szakaszában a + &man.loader.8; beolvassa a &man.device.hints.5; + állományt. Ebben az állományban + tárolódnak a gyakran csak eszköz + útmutatóknak nevezett + változók, amelyek a rendszermag + számára nyújtanak hasznos + információkat az indulás során. + Ezeket az útmutatókat az + eszközmeghajtók hasznosítják az + általuk ismert eszközök + beállítása során. + + Az eszközökre vonatkozó ilyen jellegû + útmutatások a harmadik + fázisban megjelenõ parancssorban is + megadhatóak. A változókat a + set (beállít) parancs + segítségével tudunk felvenni, míg az + unset (eltávolít) parancs tudunk + törölni, valamint a show (megmutat) + paranccsal megjeleníteni az értéküket. + Sõt, ezen a ponton a /boot/device.hints + állománnyal már beállított + változókat is felülbírálhatjuk. + A rendszerindító parancssorában + elvégzett módosítások viszont nem + fognak megmaradni, és a következõ + rendszerindítás alkalmával elvesznek. + + Ahogy a rendszerünk használatra kész + állapotba került, a &man.kenv.1; parancs + használható a változók + értékeinek listázásához. + + A /boot/device.hints + állományban soronként egy-egy + változót tudunk megadni, illetve a + kettõskereszttel (#) bevezetve + megjegyzéseket illeszthetünk bele. A sorok szerkezete + az alábbi: + + útmutató.meghajtó.egység.kulcsszó="érték" + + A harmadik fázisban pedig így adhatjuk + meg: + + set útmutató.meghajtó.egység.kulcsszó=érték + + Itt a meghajtó az + eszközmeghajtó neve, az + egység az eszközmeghajtó + által kezelt egyik egység sorszáma, a + kulcsszó pedig az + útmutatáshoz tartozó kulcsszó. Ez a + következõk egyike lehet: + + + + at: az útmutatás az + eszköz által használt buszra + vonatkozik. + + + + port: az útmutatás az + eszköz által használt + I/O-címre vonatkozik. + + + + irq: az útmutatás az + eszköz által használt + megszakítás sorszámára + vonatkozik. + + + + drq: az útmutatás az + eszköz által használt DMA-csatorna + sorszámára vonatkozik. + + + + maddr: az útmutatás az + eszköz által használt fizikai + memóriaterület kezdõcímére + vonatkozik. + + + + flags: az eszközhöz + tartozó bitek beállítása. + + + + disabled: ha az értéke + 1, akkor az adott eszköz + használatát letiltjuk. + + + + Az eszközmeghajtók elfogadhatnak (vagy + várhatnak) olyan útmutatásokat is, amelyek + itt nem szerepelnek, ezért mindegyik esetében + érdemes áttekinteni a hozzájuk tartozó + man oldalt. Bõvebben információért + lásd a &man.device.hints.5;, &man.kenv.1;, + &man.loader.conf.5; és &man.loader.8; man oldalakat. + + + + + init + + Init: A folyamatirányítás + elindítása + + Miután a rendszermag sikeresen elindult, átadja + a vezérlést a &man.init.8; + felhasználói folyamatnak, amely vagy az + /sbin/init, vagy pedig a + rendszerindítóban megadott init_path + változó által mutatott program. + + + Az automatikus újraindulási folyamat + + Az automatikus újraindulási folyamat + gondoskodik róla, hogy az indulást + követõen rendelkezésre álló + állományrendszerek ne legyenek + sérültek. Amennyiben mégis + sérültek és a &man.fsck.8; nem tudja + megjavítani õket, az &man.init.8; a rendszert egyfelhasználós + módba állítja, ahol a + rendszergazdának kell közvetlenül megoldania a + fennálló problémákat. + + + + + Egyfelhasználós mód + + egyfelhasználós + mód + konzol + + Ezt a módot az automatikus + újraindítási folyamat során + érhetjük el, vagy akkor, ha a rendszert a + kapcsolóval indítjuk, esetleg + a rendszerindítóban beállítjuk a + boot_single változót. + + Ezt a módot többfelhasználós + módban, a &man.shutdown.8; + hívásával is aktiválhatjuk, ha nem + adjuk meg az újraindítást + () vagy leállítást + () kérõ opciók + egyikét sem. + + Ha az /etc/ttys + állományban a console + értékét insecure (nem + biztonságos)ra állítjuk, a rendszer az + egyfelhasználós módba lépés + elõtt kérni fogja a root + felhasználó jelszavát. + + + Nem biztonságos konzol megadása az + <filename>/etc/ttys</filename>-ben + + # name getty type status comments +# +# If console is marked "insecure", then init will ask for the root password +# when going to single-user mode. +console none unknown off insecure + + + + Az insecure (nem biztonságos) + konzol az, ahol nem tekintjük megbízhatónak + a rendszerkonzol fizikai biztonságát, és + biztosak akarunk lenni benne, hogy csak az képes + használni a rendszert egyfelhasználós + módban, aki ismeri a root + felhasználó jelszavát. Ez tehát + nem arra utal, hogy magát a konzolt akarjuk nem + biztonságos módban mûködtetni. + Szóval, ha biztonságot akarunk, az + insecure-t válasszuk, ne pedig a + secure-t. + + + + + + Többfelhasználós mód + + többfelhasználós + mód + + Ha az &man.init.8; mindent rendben talál, vagy ha a + felhasználó kilépett az egyfelhasználós + módból, a rendszer + többfelhasználós módba lép + át, ahol megkezdi az erõforrások + konfigurálását. + + + + rc-állományok + + Az erõforrások konfigurációja + (rc) + + Az erõforrások konfiguráló + alrendszer beolvassa a folyamathoz kapcsolódó + változók alapértelmezett + értékeit az + /etc/defaults/rc.conf + állományból, majd módosítja + õket a rendszer egyéni + beállításai szerint, amit a + /etc/rc.conf + állományból olvas ki. Ezután + elvégzi meg az /etc/fstab + alapján az állományrendszerek + csatlakoztatását, elindítja a + hálózati szolgáltatásokat, + egyéb rendszerdaemonokat, és + végezetül lefuttatja a telepített csomagok + indítószkriptjeit. + + Az erõforrásokat konfiguráló + alrendszerrõl magáról az &man.rc.8; man + oldalon, valamint az érintett szkriptek + tanulmányozásával tudhatunk meg + többet. + + + + + + + A leállítási folyamat + + leállítás + + A &man.shutdown.8; paranccsal vezérelt + leállítás során az &man.init.8; + megpróbálja lefuttatni az + /etc/rc.shutdown szkriptet, majd ezt + követõen TERM (befejeztetés) + jelzést küld az aktuálisan futó + folyamatoknak, és kis idõ múlva pedig + KILL (leállítás) + jelzést azokat, amelyek még nem álltak le + addig a pillanatig. + + Azokon az architektúrákon és + rendszereken, ahol elérhetõ a fejlett + energiagazdálkodás támogatása, a + &os;-t a shutdown -p now paranccsal + állíthatjuk le, amit közvetlenül a + számítógép automatikus + kikapcsolása követ. A &os;-s rendszer + újraindításához egyszerûen csak + adjuk ki a shutdown -r now parancsot. Fontos + tudni, hogy alapértelmezés szerint a + &man.shutdown.8; használatához + root felhasználónak, vagy + legalább az operator csoport + tagjának kell lennünk. Erre feladatokra + egyébként a &man.halt.8; és &man.reboot.8; + parancsok is használhatóak. + Alkalmazásukról bõvebben a hozzájuk, + valamint a &man.shutdown.8;-hoz tartozó man oldalakon + találhatunk bõvebben + információkat. + + + Az energiagazdálkodás + használatához a rendszermagnak + beépítve vagy a megfelelõ modul + betöltésével bizosítania kell az + &man.acpi.4; támogatást. + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/chapter.decl b/hu_HU.ISO8859-2/books/handbook/chapter.decl new file mode 100644 index 0000000000..e7088464b7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/chapter.decl @@ -0,0 +1,8 @@ + + diff --git a/hu_HU.ISO8859-2/books/handbook/chapters.ent b/hu_HU.ISO8859-2/books/handbook/chapters.ent new file mode 100644 index 0000000000..db2b073c93 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/chapters.ent @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/colophon.sgml b/hu_HU.ISO8859-2/books/handbook/colophon.sgml new file mode 100644 index 0000000000..b3a939b370 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/colophon.sgml @@ -0,0 +1,42 @@ + + + + + Ez a könyv A &os; Dokumentációs + Projekt több száz + résztvevõjének együttes + munkájával jött létre. A forrása + SGML-ben készül a DocBook DTD alapján, és + ebbõl számos különbözõ + formátumba kerül átalakításra a + Jade, a nyílt + forráskódú DSSSL engine + segítségével. Egy további réteg + hozzáadásával Norm Walsh DSSSL + stíluslapjait használtuk fel a + Jade vezérlésére. A + dokumentum nyomtatott változata nem jöhetett volna + létre Donald Knuth &tex; + betûszedõ rendszere, illetve Leslie Lamport + &latex;, valamint Sebastian Rahtz + JadeTeX makrócsomagja + nélkül. + + + diff --git a/hu_HU.ISO8859-2/books/handbook/config/Makefile b/hu_HU.ISO8859-2/books/handbook/config/Makefile new file mode 100644 index 0000000000..40c8e11572 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/config/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= config/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/config/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/config/chapter.sgml new file mode 100644 index 0000000000..4f1830ee5f --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/config/chapter.sgml @@ -0,0 +1,4830 @@ + + + + + + + + + Chern + Lee + Írta: + + + + + Mike + Smith + Az alapjául szolgáló + bemutatást írta: + + + + + Matt + Dillon + Valamint az alapját képzõ tuning(7) + oldalt írta: + + + + + Beállítás és + finomhangolás + + + Áttekintés + + a rendszer + beállítása + a rendszer + finomhangolása + + A &os; egyik fontos szempontja a rendszer megfelelõ + beállítása, aminek + segítségével elkerülhetjük a + késõbbi frissítések során + keletkezõ kellemetlenségeket. Ez a fejezet a &os; + beállítási folyamatából + kíván minél többet bemutatni, + köztük a &os; rendszerek finomhangolására + szánt paramétereket. + + A fejezet elolvasása során + megismerjük: + + + + hogyan dolgozzunk hatékonyan az + állományrendszerekkel és a + lapozóállományokkal; + + + az rc.conf + beállításának alapjait és a + /usr/local/etc/rc.d + könyvtárban található + indítási rendszert; + + + hogyan állítsunk be és + próbáljunk ki egy hálózati + kártyát; + + + hogyan állítsunk be virtuális + címeket a hálózati + eszközökeinken; + + + hogyan használjuk az /etc + könyvtárban megtalálható + különféle konfigurációs + állományokat; + + + hogyan hangoljuk a &os; mûködését + a sysctl változóinak + segítségével; + + + hogyan hangoljuk a lemezek + teljesítményét és + módosítsuk a rendszermag + korlátozásait. + + + + A fejezet elolvasásához ajánlott: + + + + a &unix; és a &os; alapjainak + megértése (); + + + a rendszermag beállításához + és fordításához + kötõdõ alapok ismerete (). + + + + + + + Kezdeti beállítások + + + A partíciók kiosztása + + partíciókiosztás + /etc + /var + /usr + + + Alappartíciók + + Amikor a &man.bsdlabel.8; vagy a &man.sysinstall.8; + segítségével + állományrendszereket telepítünk, nem + szabad figyelmen kívül hagynunk a tényt, + hogy a merevlemezes egységekben a külsõ + sávokból gyorsabban lehet + hozzáférni az adatokhoz, mint a + belsõkbõl. Emiatt a kisebb és gyakrabban + elérni kívánt + állományrendszereket a meghajtó + lemezének külsejéhez közel kell + létrehozni, míg például a + /usr partícióhoz + hasonló nagyobb partíciókat annak + belsõ része felé. A + partíciókat a következõ sorrendben + érdemes kialakítani: gyökér + (rendszerindító), + lapozóállomány, /var + és /usr. + + A /var méretének + tükröznie kell a + számítógép + szándékolt használatát. A + /var partíción foglalnak + helyet a felhasználók postaládái, + a naplóállományok és a + nyomtatási sorok. A postaládák és + a naplóállományok egészen + váratlan mértékben is képesek + megnövekedni attól függõen, hogy mennyi + felhasználónk van a rendszerben és hogy + mekkora naplókat tartunk meg. Itt a legtöbb + felhasználónak soha nem lesz + szüksége egy gigabyte-nál több helyre, + de ne feledjük, hogy a /var/tmp + könyvtárban el kell tudni férnie a + csomagoknak. + + A /usr partíció + tartalmazza a rendszer mûködéséhez + elengedhetetlenül fontos legtöbb + állományt, a portok + gyûjteményét (ajánlott, lásd + &man.ports.7;) és a forráskódot + (választható). Ez utóbbiak a + telepítés során + választhatóak. Ehhez a + partícióhoz legalább két + gigabyte-nyi hely ajánlott. + + Vegyük figyelembe a tárbeli igényeket, + amikor megválasztjuk partíciók + méretét. Igen kellemetlen lehet, amikor + úgy futunk ki az egyik partíción a szabad + helybõl, hogy a másikat alig + használjuk. + + + Egyes felhasználók szerint + elõfordulhat, hogy a &man.sysinstall.8; + Auto-defaults opciója a + /var és / + partíciók méretét túl + kicsire választja. Partícionáljuk + okosan és nagylelkûen! + + + + + + A lapozóállomány + partíciója + + a lapozóállomány + mérete + a lapozóállomány + partíciója + + Általános szabály, hogy a + lapozóállományt tároló + partíció mérete legyen a rendszer fizikai + memóriájának (RAM) kétszerese. + Például, ha a + számítógépünk + 128 megabyte memóriával rendelkezik, akkor + a lapozóállomány méretének + 256 megabyte-nak kell lennie. Az ennél kevesebb + memóriát maguknak tudó rendszerek + több lapozóállománnyal jobban + teljesítenek. 256 megabyte-nál kevesebb + lapozóállományt semmiképpen sem + ajánlunk, és inkább a fizikai + memóriát érdemes + bõvítenünk. A rendszermag virtuális + memóriát kezelõ lapozási + algoritmusait úgy állították be, + hogy abban az esetben teljesítsenek a legjobban, ha a + lapozóállomány mérete + legalább kétszerese a központi + memória mennyiségének. A túl + kicsi lapozóállomány + beállítása rontja a virtuális + memória lapkeresésési rutinjának + hatékonyságát és a memória + bõvítése esetén még + további gondokat is okozhat. + + A több SCSI-lemezzel (vagy a + különbözõ vezérlõkre + csatlakoztatott több IDE-lemezzel) bíró + nagyobb rendszerek esetében érdemes minden egyes + (de legfeljebb négy) meghajtóra + beállítani lapozóállományt. + A lapozóállományoknak közel azonos + méretûnek kell lenniük. A rendszermag + tetszõleges méretûeket képes kezelni, + azonban a belsejében alkalmazott adatszerkezetek a + legnagyobb lapozóállomány + méretének négyszereséig + képesek növekedni. Ha a + lapozóállományokat + nagyjából ugyanazon a méreten tartjuk, + akkor a rendszermag képes lesz a lapozáshoz + felhasznált területet optimálisan elosztani + a lemezek között. A nagyobb + lapozóállományok használata + még akkor is jól jön, ha nem is + használjuk annyira. Segítségével + sokkal könnyebben talpra tudunk állni egy + elszabadult program tombolásából, + és nem kell rögtön + újraindítanunk a rendszert. + + + + + Miért partícionáljunk? + + Egyes felhasználók úgy + gondolják, hogy egyetlen nagyobb méretû + partíció mindenre megfelel, ám ez a + gondolat több okból is helytelennek + tekinthetõ. Elõször is, minden egyes + partíciónak eltér a + mûködési jellemzõje, és + különválasztásukkal + lehetõvé válik az + állományrendszerek megfelelõ + behangolása. Például a + rendszerindításhoz használt és a + /usr partíciókat + többségében csak olvasásra + használják, és nem sokat írnak + rájuk. Eközben a /var + és /var/tmp + könyvtárakban zajlik az írások + és olvasások túlnyomó + része. + + A rendszer megfelelõ felosztásával a + kisebb, intenzívebben írt + partíciókon megjelenõ + töredezettség nem szivárog át a + többségében csak olvasásra + használt partíciókra. Ha a sokat + írt partíciókat közel tartjuk a + lemez széléhez, akkor azokon a + partíciókon növekszik az I/O + teljesítménye, ahol az a leggyakrabban + megjelenik. Mivel mostanság az I/O + teljesítményére inkább a nagyobb + partíciók esetén van szükség, + azzal nem érünk el ebben különösebb + mértékû növekedést, ha a + /var partíciót a lemez + szélére toljuk. Befejezésképpen + hozzátesszük, hogy ennek vannak biztonsági + megfontolásai is. Egy kisebb és takarosabb + rendszerindító partíció, ami + többnyire írásvédett, nagyobb + eséllyel él túl egy csúfos + rendszerösszeomlást. + + + + + + + + A mag beállítása + + + rc állományok + rc.conf + + + A rendszer beállításaira vonatkozó + információk központi lelõhelye az + /etc/rc.conf állomány. Ez az + állomány tartalmazza a + beállításokra vonatkozó adatok + széles körét, amelyet elsõsorban a + rendszer indulása során a rendszer + beállítására használnak. Erre + a neve is utal: ez az rc* + állományok konfigurációs + állománya. + + A rendszergazda az rc.conf + állományban tudja felülbírálni az + /etc/defaults/rc.conf + állományban szereplõ alapértelmezett + beállításokat. Az + alapértelmezéseket tartalmazó + állományt nem szabad közvetlenül + átmásolni az /etc + könyvtárba, hiszen alapértelmezett + értékeket tartalmaz, nem pedig mintákat. + Minden rendszerfüggõ beállítást + magában az rc.conf + állományban kell elvégezni. + + Számos stratégia létezik a tömegesen + adminisztrált + számítógépeknél a + közös és rendszerfüggõ + beállítások + különválasztására, ezáltal a + karbantartási költségek + csökkentésére. A közös + beállításokat ajánlott egy + másik helyre, például az + /etc/rc.conf.site állományba + rakni, majd hivatkozni erre a kizárólag csak + rendszerfüggõ információkat + tartalmazó /etc/rc.conf + állományból. + + Mivel az rc.conf állományt + az &man.sh.1; dolgozza fel, ezt elég könnyen el tudjuk + érni. Például: + + + rc.conf: + . /etc/rc.conf.site + hostname="node15.example.com" + network_interfaces="fxp0 lo0" + ifconfig_fxp0="inet 10.1.1.1" + rc.conf.site: + defaultrouter="10.1.1.254" + saver="daemon" + blanktime="100" + + + Az rc.conf.site állomány + ezt követõen az rsync parancs + használatával már + szétszórható a rendszerben, miközben az + rc.conf állomány + mindenkinél egyedi marad. + + Ha a rendszert a &man.sysinstall.8; vagy a make + world használatával + frissítjük, akkor az rc.conf + tartalma nem íródik felül, így a + rendszer beállításairól + szóló adatok nem vesznek el. + + + + + Az alkalmazások + beállítása + + A telepített alkalmazások + általában saját konfigurációs + állományokkal, amelyek pedig saját + formátummal stb. rendelkeznek. Fontos, hogy ezeket az + állományokat az alaprendszertõl + elkülönítve tároljuk, ezáltal a + csomagkezelõ eszközök könnyen rájuk + tudjanak találni és dolgozni velük. + + /usr/local/etc + + Ezeket az állományokat általában a + /usr/local/etc könyvtárban + találjuk meg. Amennyiben egy alkalmazáshoz + több konfigurációs állomány is + tartozik, akkor ahhoz ezen belül egy külön + alkönyvtár jön létre. + + Normális esetben, amikor egy portot vagy csomagot + telepítünk, minta konfigurációs + állományokat is kapunk. Ezek nevében + többnyire a .default utótag + szerepel. Ha még nincs konfigurációs + állomány az adott alkalmazáshoz, akkor a + .default jelzésû + állományokból ez + létrehozható. + + Példaképpen most tekintsük a + /usr/local/etc/apache könyvtár + tartalmát: + +-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf +-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default +-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf +-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default +-rw-r--r-- 1 root wheel 12205 May 20 1998 magic +-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default +-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types +-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default +-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf +-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default + + Az állományok mérete jól mutatja, + hogy csak az srm.conf változott meg. + Az Apache késõbbi + frissítései ezt az állományt nem + fogják felülírni. + + + + + + + + Tom + Rhodes + Írta: + + + + + Szolgáltatások indítása + + szolgáltatások + + A felhasználók közül sokan + választják a &os; + Portgyûjteményében található + külsõ szoftverek telepítését. A + telepített szoftvert gyakran ilyenkor úgy kell + beállítani, hogy a rendszer + indulásával együtt induljon. Az olyan + szolgáltatások, mint például a + mail/postfix vagy a www/apache13 csupán két + olyan szoftvercsomag, amelyet a rendszerrel együtt kell + elindítani. Ebben a szakaszban a külsõ + szoftverek indítására használatos + eljárásokkal foglalkozunk. + + A &os;-ben megjelenõ legtöbb + szolgáltatás, mint például a + &man.cron.8;, a rendszerindító szkripteken + keresztül kel életre. Habár ezek a szkriptek a + &os; egyes verziói vagy az egyes gyártók + esetén különbözhetnek, azonban az + mindegyikükben közös, hogy az + elindításukra vonatkozó + beállítások egyszerû + indítószkriptekkel adhatóak meg. + + Az rc.d eljövetele elõtt az + alkalmazások indításához be kellett + másolni egy egyszerû indítószkriptet a + /usr/local/etc/rc.d + könyvtárba, melyet aztán a rendszer + indításához használt szkriptek + olvastak be. Ezek a szkriptek aztán késõbb a + rendszer indítása során + végrehajtódtak. + + Miközben rengetegen próbálták + beolvasztani ezt a megszokott konfigurációs + stílust egy új rendszerbe, a külsõ + alkalmazások mûködtetéséhez + továbbra is az elõbb említett + könyvtárban elhelyezett szkriptekre van + szükség. A szkriptek közötti apró + eltérések leginkább abban nyilvánulnak + meg, hogy az rc.d könyvtárat + használják-e vagy sem. A &os; 5.1-es + verziója elõtt a régebbi + konfigurációs megoldást + használták, de az új szkriptek szinte az + összes esetben megfelelõnek bizonyultak. + + Jóllehet minden szkriptnek teljesítenie kell + minimális elvárásokat, ezek a legtöbb + esetben függetlenek a &os; konkrét + verziójától. Minden szkriptnek + .sh kiterjesztéssel kell rendelkeznie + és minden szkriptnek a rendszer által + végrehajthatónak kell lennie. Ez utóbbit + úgy érhetjük el, ha a chmod + parancs felhasználásával + beállítjuk a 755 + kódú engedélyeket. Ezen felül a + szkriptnek még tudnia kell kezelnie a + start és stop + paramétereket. + + A legegyszerûbb indítószkript valahogy + így nézhet ki: + + #!/bin/sh +echo -n ' utility' + +case "$1" in +start) + /usr/local/bin/utility + ;; +stop) + kill -9 `cat /var/run/utility.pid` + ;; +*) + echo "Usage: `basename $0` {start|stop}" >&2 + exit 64 + ;; +esac + +exit 0 + + Ez a szkript képes értelmezni a + start és stop + parancsokat az alkalmazás számára, ami itt + egyszerûen csak a utility nevet + kapta. + + Manuálisan így tudjuk elindítani: + + &prompt.root; /usr/local/etc/rc.d/utility.sh start + + Habár nem mindegyik külsõ szoftvert kell + külön megadni az rc.conf + állományban, majdnem minden nap + módosítani kell egy portot a + beállítások elfogadásához. Az + egyes alkalmazásokra vonatkozó + kiegészítõ információkhoz + nézzük meg a telepítés után + keletkezõ üzeneteket. Egyes külsõ + szoftverekhez mellékelnek olyan + indítószkripteket, amelyek lehetõvé + teszik az alkalmazás meghívását az + rc.d könyvtárból. + Ezekrõl a következõ szakaszban még + szólni fogunk. + + + Az alkalmazások részletesebb + beállítása + + Most miután a &os; rendelkezik egy + rc.d könyvtárral, az + alkalmazások indításának + beállítása is könnyebbé + és ügyesebbé vált. Az rc.d + mûködésérõl szóló + szakaszban megismert kulcsszavak + segítségével az alkalmazások + mostantól kezdve a többi szolgáltatás, + például a DNS után + indulnak el, és az rc.conf + állományon keresztül a szkriptekbe + huzalozottak helyett most már tetszõleges + paramétereket is átadhatunk stb. Egy + egyszerû szkript ehhez hasonlóan néz + ki: + + #!/bin/sh +# +# PROVIDE: utility +# REQUIRE: DAEMON +# KEYWORD: shutdown + +# +# NE VÁLTOZTASSUK MEG AZ ITT LÉVÕ ALAPÉRTELMEZÉSEKET, +# INKÁBB AZ /etc/rc.conf ÁLLOMÁNYBAN ÁLLÍTSUK BE EZEKET +# +utility_enable=${utility_enable-"NO"} +utility_flags=${utility_flags-""} +utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} + +. /etc/rc.subr + +name="utility" +rcvar=`set_rcvar` +command="/usr/local/sbin/utility" + +load_rc_config $name + +pidfile="${utility_pidfile}" + +start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}" + +run_rc_command "$1" + + Ez a szkript gondoskodik arról, hogy a + utility nevû alkalmazás a + daemon szolgáltatás után + induljon el. Emellett még felkínál egy + módszert a PID avagy futó + programok azonosítójának + beállítására és + nyomonkövetésére is. + + Ezt követõen az /etc/rc.conf + állományból az alkalmazás + elindítható az alábbi sor + hozzáadásával: + + utility_enable="YES" + + Ez a módszer megkönnyíti a paranccsorban + átadott paraméterek + módosítását, az + /etc/rc.subr állományban + szereplõ alapértelmezett függvények + használatát, az &man.rcorder.8; + segédprogrammal szembeni kompatibilitást és + az rc.conf állomány + könnyebb beállítását. + + + + + Szolgáltatások indítása + szolgáltatásokkal + + Más szolgáltatások, mint + például a POP3 vagy + IMAP szerverek démonai stb. az + &man.inetd.8; segítségével + indíthatóak el. Ez a + Portgyûjteménybõl telepített + szolgáltatások esetén magával vonja + az adott segédprogram felvételét vagy a + hozzátartozó sor + engedélyezését az + /etc/inetd.conf állományban. + Az inetd + mûködésével és annak + beállításával + mélyrehatóbban az inetd szakasza + foglalkozik. + + A legtöbb esetben a &man.cron.8; démon + használata kézenfekvõ a rendszerszintû + szolgáltatások elindításában. + Ez a megközelítés számos elõnyt + tartogat, mivel a cron ezeket a programokat a + felhasználó crontab + állománya alapján futtatja. Ezzel a mezei + felhasználók számára is + lehetõvé válik, hogy elindítsanak + és karbantsanak alkalmazásokat. + + A cron segédprogramnak van egy + olyan speciális lehetõsége, hogy az idõ + helyett a @reboot értéket + adhatjuk meg. Ennek hatására a feladat a + &man.cron.8; indításával együtt fut + le, tehát megszokott esetben a rendszer + indítása során. + + + + + + + + + Tom + Rhodes + Írta: + + + + + A <command>cron</command> segédprogram + beállítása + + + cron + beállítása + + + A &man.cron.8; a &os; egyik leghasznosabb + segédprogramja. A cron + segédprogram a háttérben fut és + folyamatosan figyeli az /etc/crontab + állományt. Emellett a cron + új crontab állományok + után kutatva folyamatosan ellenõrzi a + /var/cron/tabs könyvtárat. Ezek + a crontab állományok olyan + feladatokról tárolnak adatokat, amelyeket a + cron programnak egy adott pillanatban el kell + végeznie. + + A cron a konfigurációs + állományok két külön + fajtáját, a rendszer- és + felhasználói crontabokat használja. A + két típus között levõ egyetlen + különbség a hatodik mezõben + található. A rendszerszintû crontabok + esetében a hatodik mezõ annak a + felhasználónak a nevét tartalmazza, amivel a + program fut. Ezzel a rendszer szintjén + mûködõ crontaboknak megadatott az a + képesség, hogy tetszõleges + felhasználó nevében futtassanak programokat. + A felhasználók crontabjaiban a hatodik mezõ a + futtatandó parancsot tartalmazza, és ilyenkor az + összes parancs a crontabot létrehozó + felhasználó nevében hajtódik + végre. Ez utóbbi egy fontos biztonsági + jellemzõ. + + + A felhasználói crontabok lehetõvé + teszik az egyes felhasználók + számára, hogy a root + felhasználó jogosultságai + nélkül képesek legyenek feladatokat + ütemezni, ugyanis a felhasználóhoz + tartozó crontabban szereplõ parancsok mindegyike a + tulajdonosának engedélyeivel fut. + + Az átlagos felhasználókhoz + hasonlóan a root + felhasználónak is lehet crontabja, ami nem + ugyanazt, mint az /etc/crontab (a rendszer + saját crontab állománya). De mivel a + rendszernek külön crontabja van, ezért a + root felhasználónak nem kell + külön crontabot létrehozni. + + + Vessünk egy pillanatást az + /etc/crontab (a rendszer crontabjának) + tartalmára: + + # /etc/crontab - a root crontabja &os; alatt +# +# $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ +# +# +SHELL=/bin/sh +PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin +HOME=/var/log +# +# +#minute hour day month wday who command +# +# +*/5 * * * * root /usr/libexec/atrun + + + + + A &os; legtöbb konfigurációs + állományához hasonlóan itt is a + # jelöli a megjegyzéseket. Az + ilyen megjegyzések remekül + használhatóak annak feljegyzésére, + hogy mit és miért akarunk futtatni. A + megjegyzések azonban nem szerepelhetnek a paranccsal + egy sorban, mivel máskülönben a parancs + részeként kerülnek + értelmezésre. Tehát mindig új + sorba kell raknunk ezeket. Az üres sorokat a program nem + veszi figyelembe. + + + + Elõször is meg kell adnunk egy környezetet. + Az egyenlõség (=) karakter + használatos a környezeti + beállítások + meghatározására, ahogy mindezt az itteni + példában is tapasztalhatjuk a + SHELL, PATH és + HOME értékek esetében. Ha + nem adunk meg mást, akkor a cron az + alapértelmezés szerinti sh + parancsértelmezõt használja. Ha nem adjuk + meg a PATH változó + értékét, akkor minden + állományra abszolút elérési + úttal kell hivatkoznunk, mivel ennek nincs + alapértelmezett értéke. Ha nem + definiáljuk a HOME változó + értékét, akkor a cron + a parancshoz tartozó felhasználó + könyvtárából fog dolgozni. + + + + Ez a sor írja le a megadható hét + mezõt. Az itt szereplõ értékek a + minute (perc), hour + (óra), mday (a hónap napja), + month (hónap), + wday (a hét napja), + who (ki) és + command (mit). A mezõk szinte + maguktól értetõdnek. A + minute egy órán belül + adja meg azokat a perceket, amikor az adott parancsot le kell + futtatni. A hour hasonló a + minute beállításhoz, + csak az itt szereplõ értékét + órákban kell értelmezni. Az + mday a hónap napjaiban + számol. A month hasonló a + minute és hour + opciókhoz, de ez hónapot jelöl. A + wday a hét egy napját jelzi. + Ezeknek a mezõknek numerikus, valamint a + huszonnégy órás + idõformátumnak megfelelõ + értékeket kell tartalmazniuk. A + who mezõ, a többiektõl + eltérõ módon, csak az + /etc/crontab állományban + jelenik meg. Ez a mezõ adja meg, hogy a parancsot milyen + felhasználóval kell futtatni. Ez az + opció nem jelenik meg a felhasználók + saját crontab + állományainak telepítésekor. A + sor végén láthatjuk még a + command oszlopot is. Ez az utolsó + mezõ, és ide kerül a + végrehajtandó parancs. + + + + Ez az utolsó sor a fentebb tárgyalt + értékeket határozza meg. + Észrevehetjük, hogy a sor egy + */5 alakú felírással + kezdõdik, amelyet további * + karakterek követnek. A * karakterek + jelentése elsõ-utolsó, ami + arra utal, hogy mindig. Ennek + megfelelõen úgy értelmezhetjük ezt a + sort, hogy a root + felhasználóval le kell futtatni az + atrun parancsot minden ötödik + percben, függetlenül attól, hogy milyen nap + vagy hónap van. Az atrun + parancsról részletesebban az &man.atrun.8; man + oldalán kapunk + felvilágosítást. + + Az itt szereplõ parancsoknak tetszõleges + mennyiségû paraméter + átadható, azonban a több soron + keresztül átívelõ parancsok + tördelését a sor végén a + \ karakterrel kell jelezni. + + + + Ez mindegyik crontab + állomány alapbeállítása, + habár ettõl általában egy dologban + eltérnek. A hatodik mezõ, ahol a + felhasználót adtuk meg, csak a rendszer + /etc/crontab + állományában jelenik meg. Ez a mezõ a + felhasználók crontab + állományaiból kimarad. + + + Egy crontab telepítése + + + Nem kötelezõ az itt ismertetésre + kerülõ módon szerkeszteni vagy + telepíteni a rendszer crontabját. + Egyszerûen nyissuk meg a kedvenc + szövegszerkesztõnkkel és a + cron segédprogram majd + észreveszi, hogy az állomány + megváltozott, majd ennek megfelelõen neki is + lát a módosított változat + használatának. Errõl a + GYIK-ban (angolul) többet is megtudhatunk. + + + Egy frissen készített + felhasználói crontab + telepítéséhez elõször a kedvenc + szövegszerkesztõnk segítségével + létre kell hoznunk a megfelelõ + formátumú állományt, majd + használnunk a crontab + segédprogramot. Ennek általános + alakja: + + &prompt.user; crontab crontab_állomány + + Ebben a példában a + crontab_állomány + a korábban létrehozott + crontab neve lesz. + + Lehetõségünk van lekérdezni a + telepített crontab + állományokat: egyszerûen adjuk át a + kapcsolót a + crontab parancsnak és + nézzük meg mit ad vissza. + + A crontab -e használata olyan + felhasználók számára + ajánlott, akik sablon alkalmazása + nélkül szeretnének teljesen maguktól + megírni egy crontab állományt. Ennek + hatására a kiválasztott + szövegszerkesztõ egy üres állományt + kap. Miután ezt az állományt + elmentettük, a crontab programmal + magától telepítésre + kerül. + + Ha a késõbbiekben törölni akarjuk a + felhasználónkhoz tartozó + crontab állományt, akkor erre + a célra használjuk a crontab + kapcsolóját. + + + + + + + + + Tom + Rhodes + Írta: + + + + + Az rc használata &os; alatt + + A rendszer indítására a &os; 2002-ben + átvette a NetBSD rc.d + rendszerét. Ezt a felhasználók könnyen + felismerhetik a /etc/rc.d + könyvtárban található + állományokról. A legtöbbjük olyan + alapvetõ szolgáltatások, amelyeket a + , és + paraméterekkel lehet + vezérelni. Például az &man.sshd.8; az + alábbi paranccsal indítható + újra: + + &prompt.root; /etc/rc.d/sshd restart + + Ez az eljárás hasonló a többi + szolgáltatás esetén is. Természetesen + ezek a szolgáltatások általában + maguktól indulnak el a rendszer indítása + során az &man.rc.conf.5; állományban megadott + szerint. Például ha a rendszerünk + indulásakor szeretnénk aktiválni a + hálózati címfordítással + foglalatoskodó démont, akkor csak adjuk hozzá + az /etc/rc.conf állományhoz a + következõ sort: + + natd_enable="YES" + + Amennyiben a sor már + szerepel benne, akkor egyszerûen írjuk át a + értéket -re. + Ezután az rc szkriptek a a rendszer következõ + indításakor a lentieknek megfelelõen + automatikusan elindítják a + hozzátartozó szolgáltatásokat + is. + + Mivel az rc.d rendszert elsõsorban + arra használják, hogy szolgáltatásokat + indítsanak el vagy állítsanak le az + operációs rendszerrel együtt, a + szabványos , + és paraméterek csak abban + az esetben látják a feladatukat, ha a nekik + megfelelõ változókat beállítottuk + az /etc/rc.conf állományban. + Tehát például a sshd + restart csak abban az esetben fog bármit is + csinálni, ha az /etc/rc.conf + állományban az sshd_enable + változót a + értékre állítottuk. Ha az + /etc/rc.conf + beállításaitól függetlenül + kívánunk egy szolgáltatásnak + , vagy + parancsot adni, akkor elé kell + tennünk egy one szót. + Például ha az sshd + szolgáltatás + újraindításához az + /etc/rc.conf tartalmát figyelmen + kívül akarjuk hagyni, akkor ezt a parancsot kell + kiadnunk: + + &prompt.root; /etc/rc.d/sshd onerestart + + Könnyen le tudjuk ellenõrizni, hogy az adott + szolgáltatás az /etc/rc.conf + részérõl engedélyezett-e, ha a neki + megfelelõ rc.d szkriptnek megadjuk az + paramétert. Ennek + segítségével például a + rendszergazda így képes ellenõrizni, hogy a + sshd szolgáltatást + engedélyezi-e az /etc/rc.conf: + + &prompt.root; /etc/rc.d/sshd rcvar +# sshd +$sshd_enable=YES + + + A második sor (# sshd) az + sshd parancs kimenete, nem pedig a + root parancssora. + + + A paraméterrel + kideríthetjük, hogy egy szolgáltatás + aktív-e. Ezzel például így tudjuk + ellenõrizni a sshd + szolgáltatás + mûködését: + + &prompt.root; /etc/rc.d/sshd status +sshd is running as pid 433. + + Az üzenet: + + Az sshd a 433-as azonosítóval fut. + + Bizonyos esetekben a paraméter + használatával lehetõségünk a + szolgáltatások + újraindítására is. Ilyenkor a + rendszer megpróbál egy olyan jelzést + küldeni a szolgáltatásnak, amivel a + konfigurációs állományainak + újraolvasását kéri. A + legtöbbször lényegében ez a + SIGHUP jelzést + kiküldését rejti magában. Ez a + lehetõség azonban nem mindegyik + szolgáltatás esetén érhetõ + el. + + Az rc.d rendszer nem csupán + hálózati szolgáltatások esetén + használatos, hanem nagyrészben + hozzájárul a rendszer + indításához is. Erre vegyük + példának a bgfsck + állományt. Amikor ez a szkript lefut, a + következõ üzenetet jeleníti meg: + + Starting background file system checks in 60 seconds. + + Az üzenet fordítása: + + A háttérben 60 másodperc múlva megkezdõdik az állományrendszerek ellenõrzése. + + Ennek megfelelõen tehát ezt az + állományt az állományrendszerek + háttérben folyó + ellenõrzésére használják, ami + pedig a rendszer indítása során fut + le. + + Számos rendszerszolgáltatás + igényel a mûködéséhez + további szolgáltatásokat. + Például a NIS és más egyéb + távoli eljáráshíváson + alapú szolgáltatások egészen addig nem + képesek elindulni, amíg az + rpcbind (portmapper) + szolgáltatást el nem indítjuk. Az ilyen + jellegû gondok feloldására az + indítószkriptek elején levõ + megjegyzésekben található egy kevés + metainformáció a szkript + mûködéséhez szükséges elemekre + (függõségeire) vonatkozóan. A rendszer + indítása közben az &man.rcorder.8; nevû + program képes a megjegyzések közt ezeket az + információkat feldolgozni és ebbõl + megállapítani, hogy a függõségi + viszonyok betartásával milyen sorrendben kell + elindítani a rendszer által felkínált + szolgáltatásokat. + + Ehhez a következõ kulcsszavakat kell megadni az + egyes indító szkriptek elején (az + &man.rc.subr.8; így tudja + engedélyezni az indító + szkriptet): + + + + PROVIDE: + segítségével megmondjuk, hogy ez az + állomány milyen szolgáltatásokat + nyújt. + + + + A következõ kulcsszavak az egyes + indítóállományok elején + szerepelhetnek. Nem kell feltétlenül + használnunk ezeket, de velük az &man.rcorder.8; + munkáját segíthetjük: + + + + REQUIRE: felsoroljuk azokat a + szolgáltatásokat, amelyek a + futásához kellenek. Az állomány + tehát az itt megadott szolgáltatások + után fog lefutni. + + + + BEFORE: felsoroljuk azokat a + szolgáltatásokat, amelyek + elõtt futtatni kell ezt az + állományt. + + + + Az indító szkriptekben a kulcsszavak ügyes + megválasztásával a rendszergazda nagyon + finoman képes az indításkor + végrehajtódó szkriptek sorrendjét + szabályozni és a többi &unix; alapú + operációs rendszerbõl ismert + futtatási szintek használata + nélkül vezérlelni a rendszerben megjelenõ + szolgáltatásokat. + + Az rc.d rendszerrõl bõvebben az + &man.rc.8; és &man.rc.subr.8; man oldalakon olvashatunk. + Ha szeretnénk saját rc.d + szkripteket írni vagy javítani a már + meglevõeken, akkor ez a cikk (angolul) + segítségünkre lehet. + + + + + + + + Marc + Fonvieille + Írta: + + + + + A hálózati kártyák + beállítása + + + hálózati kártyák + beállítása + + + Manapság már el sem tudunk képzelni + számítógépet hálózati + csatlakozás nélkül. A hálózati + csatolókártyák hozzáadása + és beállítása egy &os; rendszergazda + mindennapos feladata. + + + A megfelelõ meghajtóprogram + felderítése + + + hálózati kártyák + meghajtó + + + Mielõtt bárminek is nekikezdenénk, + érdemes tisztában lennünk azzal, hogy a + rendelkezésünkre álló kártya + milyen típusú, milyen chipet használ + és hogy PCI vagy ISA buszon csatlakozik-e. A &os; a PCI + és ISA csatolós kártyák + széles spektrumát ismeri. Az egyes + kiadásokhoz mellékelt Hardware + Compatibility List (Hardverkompatibilitási lista) + dokumentumokban tudjuk ellenõrizni, hogy a + kártyákat ismeri a rendszer. + + Miután meggyõzõdtünk róla, hogy + a kártyánkat ismeri a rendszer, meg kell + keresnünk a hozzátartozó meghajtót. A + /usr/src/sys/conf/NOTES és a + /usr/src/sys/arch/conf/NOTES + állományok tartalmazzák a + hálózati kártyák meghajtóinak + rövid leírását, benne a + támogatott chipsetek és kártyák + típusaival. Ha ez alapján nem tudjuk teljes + biztosággal eldönteni, hogy melyik a + számunkra megfelelõ meghajtó, + nézzük meg a saját man oldalát. Ezen + a man oldalon megtaláljuk az által ismert + összes eszközt és velük kapcsolatban + elõforduló jellemzõ + problémákat. + + Ha egy elterjedt típust sikerült + beszereznünk, akkor nem kell különösebben + sokáig keresnünk a neki megfelelõ + meghajtót. Az ismertebb hálózati + kártyák meghajtói ugyanis alapból + benne vannak a GENERIC rendszermagban, + ezért a rendszer indítása során + ehhez hasonlóan meg is jelennek a + kártyák: + +dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 +000ff irq 15 at device 11.0 on pci0 +dc0: Ethernet address: 00:a0:cc:da:da:da +miibus0: <MII bus> on dc0 +ukphy0: <Generic IEEE 802.3u media interface> on miibus0 +ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto +dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 +000ff irq 11 at device 12.0 on pci0 +dc1: Ethernet address: 00:a0:cc:da:da:db +miibus1: <MII bus> on dc1 +ukphy1: <Generic IEEE 802.3u media interface> on miibus1 +ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto + + Ebben a példában láthatunk is + két olyan kártyát, amelyek a &man.dc.4; + meghajtót használják. + + Ha a hálózati kártyánk + meghajtója nem szerepel a GENERIC + konfigurációban, akkor a + mûködéséhez be kell tölteni a + megfelelõ meghajtót. Ezt alapvetõen + kétféleképpen érhetjük + el: + + + + Ennek legegyszerûbb módja, ha a + &man.kldload.8; használatával + alkalmanként vagy a + /boot/loader.conf + állományban a megfelelõ sor + hozzáadásával a rendszer + indításával együtt + betöltjük a hálózati kártya + meghajtójához tartozó modult. Nem + mindegyik hálózati kártya + meghajtója érhetõ el modul + formájában. Erre konkrét + például szolgálnak az ISA + kártyákhoz tartozó modulok. + + + + Másik lehetõségünk, ha + statikusan beépítjük a + kártyánk támogatását a + rendszermagba. A + /usr/src/sys/conf/NOTES és az + /usr/src/sys/arch/conf/NOTES + állományok, valamint a meghajtóhoz + tartozó man oldal elolvasásából + megtudhatjuk a rendszermag beállításait + tartalmazó állományban megadandó + paramétereket. A rendszermag + újrafordítását lásd . Ha a rendszermag + (GENERIC) az indulás + során észlelte a kártyánkat, nem + kell újat készítenünk. + + + + + A &windows; NDIS meghajtóinak + használata + + NDIS + NDISulator + &windows; + meghajtók + Microsoft Windows + + Microsoft Windows + eszközmeghajtók + KLD (a rendszermag betölthetõ + objektuma) + + Sajnos még mindig sok olyan gyártó + akad, akik a nyílt forrású + közösség számára nem + adják ki a meghajtóik + mûködésének alapjait, mivel az ilyen + adatokat szakmai titkoknak tekintik. Ebbõl + következik, hogy a &os; és más + operációs rendszerek fejlesztõi + számára két választás + marad: vagy a gyári meghajtók + visszafejtésének hosszú és + fájdalmas útján haladva fejlesztik ki a + saját meghajtójukat, vagy pedig a + µsoft.windows; platformra kiadott meghajtók + binárisait hasznosítják. A legtöbb + fejlesztõ, köztük a &os; fejlesztõi is, ez + utóbbi megközelítést + választották. + + Bill Paul (wpaul) jóvoltából a + &os; 5.3-RELEASE változatában megjelent a + Network Driver Interface Specification (NDIS, + avagy hálózati meghajtók + szabványos felülete) natív + támogatása. A &os; NDISulator + (másnéven Project Evil, a Gonosz terve) + nevû komponense fog egy &windows;-os meghajtót + és elhiteti vele, hogy a &windows;-szal + kommunikál. Mivel az &man.ndis.4; meghajtó + &windows; binárisokat használ fel, ezért + csak &arch.i386; és &arch.amd64; rendszerek + esetén érhetõ el. + + + Az &man.ndis.4; meghajtó leginkább a PCI, + CardBus és PCMCIA csatolójú + eszközök támogatására lett + kitalálva, az USB eszközöket még nem + ismeri. + + + Az NDISulator használatához három + tényezõre van szükségünk: + + + + A rendszermag forrása + + + a &windowsxp; meghajtó binárisa + (.SYS a kiterjesztése) + + + a &windowsxp; meghajtó + konfigurációs állománya + (.INF a kiterjesztése) + + + + Keressük meg az említett + állományokat az adott kártyához. + Ezeket általában a mellékelt CD-n vagy a + gyártó honlapján találjuk meg. A + most következõ példákban a + W32DRIVER.SYS és a + W32DRIVER.INF neveket fogjuk + használni. + + + A &windows; i386 architektúrájú + verziójához készült + meghajtóprogramokat nem tudjuk a &os;/amd64 + verziójával használni. A + mûködéshez amd64-re készült + &windows;-os meghajtókra van + szükség. + + + A következõ lépés a + meghajtó binárisainak betölthetõ + modulba fordítása. Ennek + eléréséhez használjuk az + &man.ndisgen.8; parancsot a root + felhasználóval: + + &prompt.root; ndisgen /windowszos/meghajtó/W32DRIVER.INF /windowsos/meghajtó/W32DRIVER.SYS + + Az &man.ndisgen.8; egy interaktív + segédprogram, amely mûködése + közben még rákérdez + néhány szükséges + információra. Az aktuális + könyvtárban létrehoz egy rendszermagmodult, + amelyet az alábbi módon tudunk + betölteni: + + &prompt.root; kldload ./W32DRIVER.ko + + Az elõállított modul mellé be + kell töltenünk még az + ndis.ko és az + if_ndis.ko modulokat is. Ez + általában minden olyan modul esetén + megtörténik magától, amely függ + az &man.ndis.4; használatától. + Kézileg az következõ parancsokkal tudjuk + ezeket betölteni: + + &prompt.root; kldload ndis +&prompt.root; kldload if_ndis + + Itt az elsõ parancs betölti az NDIS miniport + meghajtó burkolására szánt + kódot, valamint a második a tényleges + hálózati csatolófelületet. + + Most pedig a &man.dmesg.8; kimenetében + ellenõrizzük, hogy történt-e valamilyen + hiba a betöltés során. Ha minden + jól ment, akkor az alábbiakhoz hasonló + kimenetet produkált: + + ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 +ndis0: NDIS API version: 5.0 +ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5 +ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps +ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps + + Innentõl kezdve az ndis0 + nevû eszközt úgy tudjuk használni, + mint bármelyik más hálózati + felületet (például + dc0). + + A többi modulhoz hasonló módon be + tudjuk állítani, hogy a rendszer + indulásával együtt betöltõdjenek + az NDIS modulok. Ehhez elõször másoljuk az + imént létrehozott modult, az + W32DRIVER.ko állományt a + /boot/modules + könyvtárba. Ezután adjuk hozzá a + következõ sort a + /boot/loader.conf állomány + tartalmához: + + W32DRIVER_load="YES" + + + + + + A hálózati kártya + beállítása + + + hálózati kártyák + beállítása + + + Ahogy betöltõdött a megfelelõ + meghajtó a hálózati + kártyánkhoz, be is kell állítanunk a + kártyát. A hálózati + kártyák sok más dologgal együtt + beállíthatóak a telepítés + során a sysinstall + segítségével. + + A rendszerünkben beállított + hálózati csatolófelületek + megjelenítéséhez gépeljük be a + következõ parancsot: + +&prompt.user; ifconfig +dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 + ether 00:a0:cc:da:da:da + media: Ethernet autoselect (100baseTX <full-duplex>) + status: active +dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 + ether 00:a0:cc:da:da:db + media: Ethernet 10baseT/UTP + status: no carrier +lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet 127.0.0.1 netmask 0xff000000 +tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 + + + A &os; korábbi változatainál az + &man.ifconfig.8; parancsnak ehhez még meg kell adni az + kapcsolót is. Az &man.ifconfig.8; + érvényes paraméterezésével + kapcsolatban legyünk szívesek elolvasni a + hozzátartozó man oldalt. + Hozzátennénk, hogy IPv6 + (inet6 stb.) típusú + bejegyzések nem szerepelnek a + példában. + + + Az elõbbi parancs kimenetében a + következõ eszközök jelentek meg: + + + + dc0: az elsõ Ethernet + felület + + + + dc1: a második Ethernet + felület + + + + lp0: a párhuzamos port + felülete + + + + lo0: a loopback + eszköz + + + + tun0: a + ppp által használt + tunnelhez tartozó eszköz + + + + A &os; a kártyához tartozó + meghajtó nevével és egy sorszámmal + azonosítja a rendszermag indulása során + talált eszközöket. Például az + sis2 a rendszerben + található harmadik olyan eszköz, amely a + &man.sis.4; meghajtót használja. + + A példában a dc0 + eszköz aktív és + mûködõképes. Ennek legfontosabb + jelei: + + + + Az UP szó mutatja, hogy a + kártyát sikerült beállítani + és készen áll a + használatra. + + + + A kártya internet (inet) + címe (jelen esetünkben ez 192.168.1.3). + + + + Érvényes hálózati maszkkal + rendelkezik (netmask, ahol a 0xffffff00 a 255.255.255.0 címnek felel + meg). + + + + Érvényes broadcast + (üzenetszóró) címmel rendelkezik + (ami itt most 192.168.1.255). + + + + A kártya MAC-címe + (ether) 00:a0:cc:da:da:da. + + + + A hozzátartozó fizikai eszköz + kiválasztása automatikus (media: + Ethernet autoselect (100baseTX + <full-duplex>)). Láthatjuk, hogy a + dc1 eszközt egy + 10baseT/UTP típusú fizikai + eszközhöz állítottuk be. Az egyes + meghajtókhoz tartozó fizikai + módokról a nekik megfelelõ man oldalakon + olvashatunk. + + + + A kapcsolat állapota (status) + active értékû, + tehát van vonal. A dc1 + esetén láthatjuk, hogy a status: no + carrier (nincs vonal). Ez teljesen + normálisnak tekinthetõ minden olyan esetben, + amikor a kártyába még nem dugtunk + Ethernet-kábelt. + + + + Amennyiben az &man.ifconfig.8; kimenete valami + ilyesmi: + + dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 + ether 00:a0:cc:da:da:da + + akkor az arra utal, hogy a kártyát nem + állítottuk be. + + A kártya beállításához a + root felhasználó + jogosultságaira van szükségünk. A + hálózati kártyák + beállítása az &man.ifconfig.8; + segítségével elvégezhetõ + parancssorból is, de a gép + újraindításakor az így megadott + értékek elvesznek. Ezért az + /etc/rc.conf állományba kell + felvennünk a hálózati kártyák + érvényes beállításait. + + A kedvenc szövegszerkesztõnkben nyissuk meg az + /etc/rc.conf állományt. + Minden egyes hálózati csatolóhoz fel kell + vennünk benne egy sort, ennek megfelelõen most a + példához tartozó módon az + alábbiakat: + + ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" +ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" + + A dc0 és + dc1 neveket kell a rendszerünkben + ténylegesen megtalálható eszközök + neveire kicserélni, valamint megadni a nekik + megfelelõ címeket. A kártya + meghajtójának és az &man.ifconfig.8; man + oldalának elolvasásával + kideríthetjük az itt megadható további + beállításokat, valamint az &man.rc.conf.5; + man oldalán részletesebben megismerhetjük az + /etc/rc.conf formai + követelményeit. + + Ha a telepítés során + beállítottuk volna a hálózati + kapcsolatokat, akkor tapasztalhatjuk, hogy egyes + hálózati kártyák sorai itt + már szerepelnek. Ellenõrizzük le az + /etc/rc.conf tartalmát mielõtt + bõvítenénk! + + Mindezek mellett az /etc/hosts + állományba is be kell írnunk a helyi + hálózatunkon található + különféle gépek neveit és + IP-címeit, ha még nem szerepelnének ott. + Errõl további részleteket a &man.hosts.5; man + oldalról és az + /usr/share/examples/etc/hosts + állományból tudhatunk meg. + + + + + Tesztelés és + hibaelhárítás + + Miután az /etc/rc.conf + állományban elvégeztük a + szükséges változtatásokat, + érdemes újraindítanunk a + rendszerünket. Ennek révén + érvényesítjük a + csatolófelületekkel kapcsolatos + változtatásainkat és + ellenõrizzük, hogy így a rendszer + mindenféle hibaüzenet nélkül + képes elindulni. + + Ahogy a rendszerünk + mûködõképessé vált, ki is + tudjuk próbálni a hálózati + felületeket. + + + Az Ethernet kártyák + tesztelése + + + hálózati + kártyák + tesztelése + + + Az Ethernet kártyák helyes + beállításának + vizsgálatához két dolgot kell + kipróbálnunk. Elõször is + pingeljük magát a felületet, majd + ezután pingeljünk meg a helyi + hálózaton egy másik + számítógépet. + + Elsõként tehát próbáljuk + meg a helyi felületet: + + &prompt.user; ping -c5 192.168.1.3 +PING 192.168.1.3 (192.168.1.3): 56 data bytes +64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms +64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms +64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms +64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms +64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms + +--- 192.168.1.3 ping statistics --- +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms + + Most pedig pingeljünk meg egy másik + számítógépet a helyi + hálózaton: + + &prompt.user; ping -c5 192.168.1.2 +PING 192.168.1.2 (192.168.1.2): 56 data bytes +64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms +64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms +64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms +64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms +64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms + +--- 192.168.1.2 ping statistics --- +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms + + Ha beállítottuk az + /etc/hosts állományt, akkor + a 192.168.1.2 helyett a + gép nevét is megadhatjuk. + + + + + A hibák elhárítása + + + hálózati kártyák + hibaelhárítása + + + A hardverek és szoftverek + beállításaiban mindig is valódi + kín megtalálni a hibákat, és + ezeket a kínokat többnyire úgy tudjuk + enyhíteni, ha elõször az egyszerû + hibaforrásokat szûrjük ki. Csatlakoztattuk a + hálózati kábelt? Tisztességesen + beállítottuk a hálózati + szolgáltatásokat? Jól + állítottuk be a tûzfalat? A &os; + képes kezelni a kártyát? A + hibajelentések elküldése elõtt mindig + bújjuk át a támogatott + hardvereszközök listáját. A &os; + verziókat frissítsük a legújabb + STABLE változatra. Olvassuk át a + levelezési listák archívumait vagy + legalább keressünk rá a + témára az interneten. + + Ha a kártya mûködik, de a + teljesítménye nem kielégítõ, + érdemes ennek utánanézni a &man.tuning.7; + man oldalon. Ilyenkor érdemes ellenõrizni a + hálózati beállításainkat + is, mivel a helytelen beállítások gyakran + okoznak teljesítményvesztést. + + Bizonyos esetekben láthatunk egy vagy két + device timeout típusú + hibát is, ami a kártyák egyes + fajtáinál elfogadható. Ha azonban + folyamatosan megjelennek vagy zavaróvá + válnak, érdemes utánanéznünk, + hogy az eszköz nem ütközik-e valamelyik + másikkal. Mindenképpen + gyõzödjünk meg a kábelek + épségérõl és + csatlakoztatásáról. Még az is + elképzelhetõ, hogy egyszerûen csak egy + másik hálózati kártyára van + szükségünk. + + Néha felbukkanak watchdog + timeout jellegû hibák is. Ilyenkor + elsõként mindig a hálózati + kábelt ellenõrizzük. Egyes + kártyáknak olyan PCI foglalatra van + szükségük, ami támogatja a Bus + Mastering opciót. Néhány régebbi + alaplapon csak ilyen PCI bõvítõhely + található (ami általában a 0. + foglalat). Olvassunk utána a hálózati + kártya és az alaplap + dokumentációjában, hátha ezek + okozzák a problémát. + + A No route to host üzenet + akkor jelenik meg, ha a rendszer képtelen + megállapítani, milyen úton jutassa el a + csomagokat a megadott célhoz. Ez többnyire + olyankor történik meg, amikor nem adtunk meg + alapértelmezett kézbesítési + irányt (default route) vagy nem dugtuk be a + hálózati kábelt. A netstat + -rn kimenetébõl meg tudjuk + állapítani, hogy létezik-e + érvényes út az elérni + kívánt cél felé. Ha nincs, akkor + haladjunk tovább a re. + + A ping: sendto: Permission denied + jellegû üzeneteket többségében + egy helytelenül beállított tûzfal + okozza. Ha az ipfw + mûködését engedélyeztük a + rendszermagban, de nem adtunk meg hozzá + szabályokat, akkor az alapértelmezett + házirend szerint minden forgalmat blokkolni fog, + tehát még a pingeket is! Ezzel kapcsolatban a + elolvasását + ajánljuk. + + Elõfordulhat, hogy a kártya + teljesítménye igen gyenge vagy az átlagos + alatt van. Ilyenkor a fizikai eszköz + autoselect (automatikus) + típusú kiválasztása helyett + érdemes megadnunk a konkrét eszköznek + megfelelõ típust. Habár ez a legtöbb + hardver esetén beválik, nem mindenki + számára jelent megoldást. + Ismételten csak annyit tudunk ehhez hozzátenni, + hogy ellenõrizzük a hálózati + beállításainkat és olvassuk el a + &man.tuning.7; man oldalt. + + + + + + + Virtuális címek + + virtuális + címek + IP-álnevek + + A &os; alkalmazása során igen gyakori a + virtuális címek használata, aminek + segítségével egyetlen szerver több + szerverként képes látszódni a + hálózaton. Ezt úgy érik el, hogy + egyetlen felülethez több hálózati + címet rendelnek hozzá. + + Az adott hálózati csatolófelületnek + van egy valódi címe és + tetszõleges számú + álcíme. Ezeket az + álcímeket általában az + /etc/rc.conf állományban kell + feltüntetni. + + Az fxp0 felület esetén az + álcímek megadása valahogy így + néz ki: + + ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" + + Figyeljük meg, hogy az álcímekhez + tartozó bejegyzések az alias0 + névvel kezdõdnek és szám szerint + növekvõleg következnek egymás után + (például, _alias1, + _alias2 és így tovább). A + beállítás a sorozat elsõ kimaradó + tagjánál megszakad. + + Az álcímek hálózati + maszkjának pontos meghatározása nagyon + fontos, de szerencsére nem különösebben + bonyolult. Minden felület esetén lennie kell egy + olyan címnek, ami helyesen reprezentálja a + hálózat hálózati maszkját. + Minden egyéb olyan címnek, ami ugyanabba az + alhálózatba esik, végig + 1-esekbõl álló + hálózati maszkkal kell rendelkezniük (ami + felírható 255.255.255.255 vagy 0xffffffff formájában + is). + + Például vegyük azt, hogy az + fxp0 felületen keresztül + két hálózathoz csatlakozunk, melyek + közül az egyik a 10.1.1.0, amelynek hálózati + maszkja 255.255.255.0, és a + 202.0.75.16, amelynek + hálózati maszkja 255.255.255.240. Azt szeretnénk + elérni, hogy a rendszerünk az 10.1.1.1 címtõl az 10.1.1.5 címig, valamint a 202.0.75.17 címtõl a 202.0.75.20 címig jelenjen meg a + nekik megfelelõ hálózatokon. Ahogy arra + már fentebb is utaltunk, az adott hálózati + tartományban csak az elsõ címnek (ebben az + esetben ez a 10.0.1.1 és a + 202.0.75.17) kell valódi + hálózati maszkkal rendelkeznie. Minden + további címnek (a 10.1.1.2 és 10.1.1.5 között, valamint a + 202.0.75.18 és 202.0.75.20 között) legyen + 255.255.255.255 a + hálózati maszkja. + + Az alábbi /etc/rc.conf + bejegyzések ennek az elrendezésnek megfelelõen + állítják be a kártyát: + + ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" +ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" +ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" +ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" +ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" +ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" +ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" +ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" +ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" + + + + + Konfigurációs állományok + + + Az <filename>/etc</filename> + felépítése + + A beállításokkal kapcsolatos + információk számos könyvtárban + tárolódnak. Többek közt: + + + + + + + + + /etc + Általános rendszerszintû + beállítások. Az itt levõ + adatok a rendszer egészére + vonatkoznak. + + + /etc/defaults + A rendszer konfigurációs + állományainak alapértelmezett + változatait. + + + /etc/mail + A &man.sendmail.8; + beállításához tartozó + további állományok, egyéb + levélküldéshez használt + adatok. + + + /etc/ppp + A felhasználói és rendszermag + szintû ppp programok + beállításai. + + + /etc/namedb + A &man.named.8; mûködéséhez + szükséges adatok alapértelmezett + helye. Általában a + named.conf és a + zónák leírását + tároló állományok + kerülnek ide. + + + /usr/local/etc + A telepített alkalmazások + konfigurációs állományai. + Néha alkalmazásonként + külön könyvtárakba kerülnek a + benne található + állományok. + + + /usr/local/etc/rc.d + A telepített alkalmazások + indításával és + leállításával kapcsolatos + szkriptek. + + + /var/db + Automatikusan generált rendszerszintû + adatbázisok a csomagokkal, a programok + helyével stb. kapcsolatosan. + + + + + + + + Hálózati nevek + + hálózati + név + DNS + + + <filename>/etc/resolv.conf</filename> + + resolv.conf + + Az /etc/resolv.conf határozza + meg, hogy a &os; névfeloldója miként + fér hozzá az internet tartománynév + rendszeréhez (a DNS-hez). + + Az resolv.conf + állományban leggyakrabban a következõ + bejegyzések fordulnak elõ: + + + + + + + + + nameserver + Annak a névszernek az IP-címe, + ahova a névfeloldó küldi a + kéréseit. A névszervereket a + felírás sorrendjében + kérdezi meg, maximum hármat. + + + search + A hálózati nevek + keresõlistája. Ezt + általában a helyi hálózati + nevek tartománya határozza meg. + + + domain + A helyi tartomány neve. + + + + + + Egy átlagos resolv.conf + tartalma: + + search example.com +nameserver 147.11.1.11 +nameserver 147.11.100.30 + + + Csak egy search és + domain opciót szabad + megadni. + + + A DHCP használatakor a &man.dhclient.8; felül + szokta írni a resolv.conf + tartalmát a DHCP szervertõl kapott + információkkal. + + + + + <filename>/etc/hosts</filename> + + hosts + + Az /etc/hosts az internet kezdeti + napjaira emlékeztetõ egyszerû szöveges + adatbázis. A nevek és IP-címek + közti leképzéseket a DNS és NIS + rendszerekkel karöltve oldja fel. Ide a helyi + hálózaton csatlakozó + számítógépek neveit lehet + beírni ahelyett, hogy erre a célra + beállítanánk egy külön + &man.named.8; szervert. Ezenkívül még az + /etc/hosts állományba + internetes nevek rekordját is felvehetjük, amivel + így csökkenthetjük a gyakran használt + nevek feloldására irányuló + külsõ kéréseket. + + # $&os;$ +# +# A hálózati nevek adatbázisa +# +# Ebbe az állományba rakjuk a helyi hálózaton található címeket és +# a hozzájuk tartozó hálózati neveket, ahol szinte ugyanez az +# adatbázis megtalálható. A DNS vagy NIS alkalmazása esetén ez az +# állomány nem feltétlenül kerül felhasználásra. A névfeloldás +# sorrendjét az /etc/nsswitch.conf állományban adhatjuk meg. +# +::1 localhost localhost.my.domain myname.my.domain +127.0.0.1 localhost localhost.my.domain myname.my.domain + +# +# Egy képzeletbeli hálózat. +#10.0.0.2 myname.my.domain myname +#10.0.0.3 myfriend.my.domain myfriend +# +# Az RFC 1918-nak megfelelõen a következõ IP-címekkel rendelkezõ +# alhálózatok sosem csatlakozhatnak közvetlenül az internetre: +# +# 10.0.0.0 - 10.255.255.255 +# 172.16.0.0 - 172.31.255.255 +# 192.168.0.0 - 192.168.255.255 +# +# Amikor csatlakozunk az internethez, egy valódi, hivatalosan +# kiosztott számra lesz szükségünk. NAGYON SZÉPEN KÉRÜNK mindenkit, +# hogy ne találj ki magunknak hálózati címeket, hanem használja az +# internet-szolgáltatótól kapott címet (amennyiben rendelkezünk +# ilyennel) vagy az internetes nyilvántartásban szereplõ címek közül +# valamelyiket (FTP-n keresztül jelentkezzünk be az rs.internic.net +# gépre, majd lépjünk be a /templates könyvtárba). + + + Az /etc/hosts formai + felépítése igen egyszerû: + + [internetes cím] [hivatalos hálózati név] [álnév1] [álnév2] ... + + Tehát például: + + 10.0.0.1 azEnValodiNevem.aHalozaton.hu azEnValodiNevem izemize1 izemize2 + + A részletekért keressük fel a + &man.hosts.5; man oldalt. + + + + + + A naplóállományok + beállítása + + naplóállományok + + + <filename>syslog.conf</filename> + + syslog.conf + + A syslog.conf állomány + a &man.syslogd.8; program beállításait + tartalmazza. Segítségével megadhatjuk, + hogy a syslog által generált + üzenetek egyes típusait milyen + naplóállományokba mentsük. + + # $&os;$ +# +# Ebben az állományban HASZNÁLHATÓAK szóközök a mezõk elválasztására, +# habár a többi *nix-típusú rendszer inkább tabulátorokat használ +# erre a célra. Ha több rendszeren is használni akarjuk ezt az +# állományt, akkor ne használjunk szóközöket. +# +# A többit lásd a syslog.conf(5) man oldalon. +# +.err;kern.debug;auth.notice;mail.crit /dev/console +*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages +security.* /var/log/security +mail.info /var/log/maillog +lpr.info /var/log/lpd-errs +cron.* /var/log/cron +*.err root +*.notice;news.err root +*.alert root +*.emerg * +# Tegyük vissza ezt a sort, ha a /dev/console eszközre kiírt +# üzeneteket át akarjuk irányítani az /var/log/console.log állományba. +#console.info /var/log/console.log +# Ha az összes üzenetet a /var/log/all.log állományba akarjuk menteni, +# akkor tegyük vissza ezt a sort. +#*.* /var/log/all.log +# Ha egy "loghost" nevû gépre szeretnénk naplózni, akkor tegyük vissza +# ezt a sort. +#*.* @loghost +# Az inn használatakor tegyük vissza ezeket a sorokat. +# news.crit /var/log/news/news.crit +# news.err /var/log/news/news.err +# news.notice /var/log/news/news.notice +!startslip +*.* /var/log/slip.log +!ppp +*.* /var/log/ppp.log + + A &man.syslog.conf.5; man oldalának + elolvasásával tudhatunk meg többet + ezekrõl. + + + + + <filename>newsyslog.conf</filename> + + newsyslog.conf + + A newsyslog.conf a &man.newsyslog.8; + beállításait tároló + állomány. Ez egy olyan program, ami + általában a &man.cron.8; futtat le. A + &man.newsyslog.8; dönti el, hogy mikor van + szükség a naplók + archiválására és + átrendezésére. Ennek során a + logfile állományból + logfile.0 lesz, a + logfile.0 + állományból pedig + logfile.1 és így + tovább. Beállíthatjuk úgy is, + hogy a naplóállományokat + archiválja &man.gzip.1; formátumban, aminek + megfelelõen ezek logfile.0.gz, + logfile.1.gz és ehhez + hasonló névvel jönnek létre. + + A newsyslog.conf megadja, hogy melyik + naplóállományokat kell felügyelni, + mennyi példányt tartsunk meg belõlük + és mikor kell velük foglalkozni. A + naplóállományok + átrendezhetõek és/vagy + archiválhatóak egy adott méret + elérésekor vagy egy adott idõ eltelte + után. + + # A newsyslog konfigurációs állománya +# $&os;$ +# +# állománynév [tulajdonos:csoport] mód darab méret mikor [ZB] [/pid_állomány] [jelzés] +/var/log/cron 600 3 100 * Z +/var/log/amd.log 644 7 100 * Z +/var/log/kerberos.log 644 7 100 * Z +/var/log/lpd-errs 644 7 100 * Z +/var/log/maillog 644 7 * @T00 Z +/var/log/sendmail.st 644 10 * 168 B +/var/log/messages 644 5 100 * Z +/var/log/all.log 600 7 * @T00 Z +/var/log/slip.log 600 3 100 * Z +/var/log/ppp.log 600 3 100 * Z +/var/log/security 600 10 100 * Z +/var/log/wtmp 644 3 * @01T05 B +/var/log/daily.log 640 7 * @T00 Z +/var/log/weekly.log 640 5 1 $W6D0 Z +/var/log/monthly.log 640 12 * $M1D0 Z +/var/log/console.log 640 5 100 * Z + + További információkat a + &man.newsyslog.8; man oldaláról + nyerhetünk. + + + + + + <filename>sysctl.conf</filename> + + sysctl.conf + sysctl + + A sysctl.conf állomány + leginkább az rc.conf + állományhoz hasonlít, benne az + értékeket + változó=érték + párokban adhatjuk meg. Az itt definiált + értékek akkor kerülnek ténylegesen + beállításra, amikor a rendszer + többfelhasználós módba vált. + Ezen a módon nem mindegyik változó + értékét tudjuk + átállítani. + + A sysctl.conf állományban + az alábbi érték + beállításával tudjuk + beállítani, hogy a rendszer ne naplózza, + amikor a programok végzetes jelzéssel + fejezõdnek be, valamint azt, hogy a + felhasználók láthassák egymás + futó programjait: + + # Ne naplózzuk a végzetes jelzésekhez (például sig 11) tartozó kilépéseket. +kern.logsigexit=0 + +# Ne engedjük a felhasználóknak, hogy lássák egy másik felhasználó +# azonosítójával futó programokat. +security.bsd.see_other_uids=0 + + + + + + Finomhangolás a sysctl + használatával + + sysctl + + finomhangolás + a sysctl használatával + + + A &man.sysctl.8; egy olyan felület, amely + lehetõséget biztosít egy mûködõ + &os; rendszer megváltoztatására. + Segítségével többek közt + hozzáférhetünk a TCP/IP protokollkészlet + és a virtuális memóriát kezelõ + alrendszer rengeteg apró opciójához, melyek + megfelelõ beállításával egy + tapasztalt rendszergazda kezében drasztikusan + növelhetõ a rendszer teljesítménye. A + &man.sysctl.8; alkalmazásával több mint + ötszáz rendszerszintû változó + kérdezhetõ le és állítható + be. + + A &man.sysctl.8; két funkciót rejt + magában: a rendszer beállításainak + lekérdezését és + módosítását. + + Így nézhetjük meg az összes + lekérdezhetó változót: + + &prompt.user; sysctl -a + + Így kérhetjük egy konkrét + változó, például a + kern.maxproc + értékét: + + &prompt.user; sysctl kern.maxproc +kern.maxproc: 1044 + + Egy adott változó értékének + módosításához pedig használjuk + a + változó=érték + felírást: + + &prompt.root; sysctl kern.maxfiles=5000 +kern.maxfiles: 2088 -> 5000 + + A sysctl változók értékei lehetnek + karakterláncok, számok és logikai + értékek (ahol az 1 az igennek, a + 0 a nemnek felel meg). + + Ha a számítógép + indításakor automatikusan be akarunk + állítani bizonyos változókat, akkor + vegyük fel ezeket az /etc/sysctl.conf + állományba. Ennek pontosabb részleteit a + &man.sysctl.conf.5; man oldalon és a ban találhatjuk + meg. + + + + + + Tom + Rhodes + Írta: + + + + + A &man.sysctl.8; írásvédett + értékei + + Egyes esetekben szükséges lehet a &man.sysctl.8; + írásvédett változóinak + módosítása. Habár gyakran + elengedhetetlen, ezt kizárólag csak a rendszer + (újra)indításakor tudjuk megtenni. + + Például egyes laptopoknál a + &man.cardbus.4; eszköz nem próbálkozik + több memóriaterület használatával, + ezért egy ehhez hasonló hibával + leáll: + + cbb0: Could not map register memory +device_probe_and_attach: cbb0 attach returned 12 + + Az ilyen és ehhez hasonló esetekben gyakran + olyan &man.sysctl.8; változók alapértelmezett + értékeit kellene megváltoztatnunk, amelyek + írásvédettek. Ilyenkor tegyük az + érintett &man.sysctl.8; változó + objektumazonosítóját (OID) + és a hozzátartozó értéket a + /boot/loader.conf + állományunkba. Az alapértelmezéseket + a /boot/defaults/loader.conf + állományban találjuk meg. + + A fentebb tárgyalt probléma + megoldásához a felhasználónak a + + értéket kell beállítania az elõbb + említett állományban. Ezután + már a &man.cardbus.4; megfelelõen fog + mûködni. + + + + + + A lemezek finomhangolása + + + Sysctl változók + + + <varname>vfs.vmiodirenable</varname> + + vfs.vmiodirenable + + A vfs.vmiodirenable sysctl + változó értéke lehet 0 (ki) vagy 1 + (be, és ez az alapértelmezés is). Ez a + változó vezérli a könyvtárak + gyorsítótárazását a + rendszerben. A könyvtárak többsége + kis méretû, így az + állományrendszerbõl csak egyetlen + (általában 1 KB méretû) + darabkát használnak és még + ennél is kevesebbet (általában + 512 byte-ot) a pufferben. A változó + kikapcsolt (avagy 0) értéke mellett a puffer + csak rögzített számú + könyvtárat táraz be még abban az + esetben is, amikor temérdek mennyiségû + memória áll a rendelkezésére. Ha + viszont (az 1 értékkel) + engedélyezzük, akkor a rendszer a + könyvtárak tárazására + felhasználja a virtuális + memóriában pufferelt lapokat is, amivel + lényegében az összes elérhetõ + memóriát a könyvtárak + tárazására fordítja. Ilyenkor + azonban az egyes könyvtárak + tárazására használt legkisebb + memóriaterület a fizikai lapmérettel + egyezik meg (ami általában 4 KB) és + nem 512 byte. Abban az esetben javasoljuk ennek a + beállításnak a használatát, + ha olyan szolgáltatásokkal dolgozunk, amelyek + nagy számú állománnyal dolgoznak + egyszerre. Ilyen szolgáltatások többek + közt a webes gyorsítótárak, nagyobb + levelezõrendszerek és hírrendszerek. Az + opció engedélyezése alapvetõen nem + veti vissza a rendszer teljesítményét + még akkor sem, ha ezzel memóriát + pazarlunk el, de ezt igazából érdemes + kikísérletezni. + + + + + <varname>vfs.write_behind</varname> + + vfs.write_behind + + A vfs.write_behind sysctl + változó alapértelmezett + értéke 1 (bekapcsolt). Ez + arra utasítja az állományrendszert, hogy + csak akkor küldje ki az adatokat az eszközre, ha + belõlük teljes fürtök gyûltek + össze. Ez jellemzõ módon nagyobb + szekvenciális állományok + írása esetén kedvezõ. Arra + szolgál, hogy segítségével el + lehessen kerülni az I/O túlságosan gyakori + módosítások okozta + terhelését. Bizonyos + körülmények közt ez azonban + lassíthatja a futó programok + mûködését, ezért ilyenkor + érdemes megfontolni a + kikapcsolását. + + + + + <varname>vfs.hirunningspace</varname> + + vfs.hirunningspace + + A vfs.hirunningspace sysctl + változó értéke azt adja meg, hogy + tetszõleges számú + példánynál rendszerszinten mekkora + mértékû írási mûvelet + irányítható át a + lemezvezérlõk soraiba. Az + alapértelmezés többnyire elegendõ, de + olyan gépeken, ahol sok lemez dolgozik egyszerre, ez az + érték négy vagy öt + megabyte-ra is felszökhet! + Hozzátennénk, hogy ha ezt az + értéket túlságosan nagyra + állítjuk (és így + túllépjük a puffer írási + küszöbértékét), akkor ezzel + hihetetlenül gyenge fürtözési + teljesítményt nyerünk. Semmiképp se + állítsuk túlzottan nagy + értékre! A nagyobb írási + értékek a velük párhuzamos + olvasások számára + késleltetést is jelentenek. + + Találhatunk még más egyéb + pufferelési és + gyorsítótárazási sysctl + változókat, azonban ezek + megváltoztatását egyáltalán + nem javasoljuk, mivel a virtuális memória + alrendszer kiválóan tudja + önállóan állítani ezeket a + paramétereit. + + + + + <varname>vm.swap_idle_enabled</varname> + + vm.swap_idle_enabled + + A vm.swap_idle_enabled sysctl + változó módosítása olyan + nagyobb többfelhasználós rendszerekben + bizonyulhat hasznosnak, ahol sok felhasználó + lép be és lép ki a rendszerbe és + sok az üresjáratban futó program. Az ilyen + jellegû rendszerek hajlamosak nagy mennyiségû + folyamatos terhelést mérni a tartalékolt + szabad memóriára. A + beállítás + engedélyezésével, valamint a + vm.swap_idle_threshold1 és a + vm.swap_idle_threshold2 + változókon keresztül a kilapozás + reakcióidejének alkalmas + behangolásával a megszokottnál gyorsabban + lenyomhatjuk az üresjáratban dolgozó + programokhoz tartozó memórialapok + prioritását, amivel a kilapozásokat + vezérlõ démon kezére + játszunk. Azonban tényleg csak akkor + engedélyezzük ezt a lehetõséget, ha + valóban szükségünk van rá, + mivel így a memóriát jóval + elõbb lapozzuk ki és ezzel több + lapozóállományt és + lemezteljesítményt emésztünk fel. + Kisebb rendszerekben jól behatárolható a + hatása, azonban a nagyobb rendszerekben, ahol + már eleve visszafogott mértékû + lapozás történik, ez a + beállítás lehetõvé teszi a + virtuális memóriát kezelõ alrendszer + számára, hogy könnyedén ki- + és be rakosgasson komplett futó programokat a + memóriába. + + + + + <varname>hw.ata.wc</varname> + + hw.ata.wc + + A &os; 4.3 egyszer már kacérkodott a + IDE-lemezek írási pufferének + kikapcsolásával. Ez ugyan csökkentette az + IDE-lemezek írási + sávszélességét, azonban bizonyos + merevlemezgyártók + gondatlanságából eredõ súlyos + adatvesztések miatt szükséges volt a + használata. A gond ezzel kapcsolatban ott van, hogy + egyes IDE-meghajtók hazudnak az írások + teljesítésérõl. A lemezek + írási + gyorsítótárazásának + bekapcsolásával az IDE-meghajtók nem csak + az írások sorrendjét rendezik át, + hanem nagyobb terhelés esetén egyes blokkokat + jóval késõbb is rögzítenek. + Ezért a rendszer esetleges összeomlása vagy + egy áramkimaradás súlyos károkat + okozhat az állományrendszerben. A &os; + úgy döntött, hogy a + megbízhatóságot választja. Sajnos + ez olyan nagyságú + teljesítményvesztést okozott, hogy a + következõ kiadásban már + kénytelenek voltunk alapértelmezés + szerint is visszakapcsolni ezt a lehetõséget. A + hw.ata.wc nevû sysctl + változó vizsgálatával + ellenõrizhetjük a rendszerünkön + érvényes alapértelmezett + beállítást. Amennyiben az IDE + írások + gyorsítótárazása nem + engedélyezett, akkor ezt a változó + értékének 1-re + állításával + állíthatjuk vissza. Ezt a rendszer + indításakor a rendszerbetöltõben + tehetjük meg. A rendszermag indítása + után ennek már nincs hatása. + + A részleteket a &man.ata.4; man oldalon tudhatjuk + meg. + + + + + <literal>SCSI_DELAY</literal> + (<varname>kern.cam.scsi_delay</varname>) + + kern.cam.scsi_delay + + + a rendszermag + beállításai + SCSI_DELAY + + + A rendszermag SCSI_DELAY nevû + beállítása a rendszer + indulásának idejét hivatott + mérsékelni. Az alapértelmezett + értéke viszonylag magas, innen származik + a rendszer indítása során keletkezõ + 15 másodperces + csúszást. Általában az is + megfelelõ, aa ezt visszavesszük az + 5 értékre (fõleg a + modernebb meghajtók számára). A &os; + újabb (5.0 vagy késõbbi) + változataiban ez az érték már a + kern.cam.scsi_delay sysctl + változó értékével is + megadható a rendszer indításakor. + Azonban ügyeljünk rá, hogy mind a + finomhangoláshoz használt változó, + mind pedig rendszermag beállítása + ezredmásodpercben és + nem + másodpercben értelmezi ezt + az értéket. + + + + + + Soft Updates + + Soft Updates + tunefs + + A &man.tunefs.8; nevû program használható + az állományrendszerek + finomhangolására. Nagyon sok opciót + találhatunk benne, de itt most csak a Soft + Updates ki- és bekapcsolásával + foglalkozunk, amit a következõ módon + tehetünk meg: + + &prompt.root; tunefs -n enable /allomanyrendszer +&prompt.root; tunefs -n disable /allomanyrendszer + + Amíg egy állományrendszer + csatlakoztatott állapotban van, addig nem + módosítható a &man.tunefs.8; paranccsal. A + Soft Updates bekapcsolására ezért az a + legalkalmasabb idõpont, amikor + egyfelhasználós módban vagyunk és + még egyetlen partíciót sem + csatlakoztattunk. + + A Soft Updates beállítás + engedélyezése a memóriában pufferelt + gyorsítótáron keresztül jelentõs + mértékben fokozza a metaadatok + teljesítményét, elsõsorban az + állományok létrehozását + és törlését. A Soft Updates + használatát ezért minden + állományrendszer esetén ajánljuk. A + Soft Updates alkalmazásának két rossz + oldalára kell tekintettel lennünk. + Elõször is a Soft Updates a rendszer + összeomlása esetén ugyan garantálja az + állományrendszer konzisztenciáját, + de könnyen elképzelhetõ, hogy több + másodperccel (vagy akár egy egész perccel!) + hátrébb jár a fizikai lemez + frissítésében. Másodszor a Soft + Updates késlelteti az állományrendszer + blokkjainak felszabadítását. Ha van egy + olyan állományrendszerünk (mint + például a rendszer + indításához használt + gyökér partíció), ami már + majdnem betelt, akkor egy nagyobb frissítés, + például a make installworld + parancs kiadása, során az + állományrendszer egyszerûen kifogy a + helybõl és így a frissítés + meghiúsul. + + + Bõvebben a Soft Updates + mûködésérõl + + + Soft Updates + részletei + + + Két hagyományos + megközelítés létezik az + állományrendszerek metaadatainak + visszaírására. (A metaadatok + módosításakor olyan nem adatot + tartalmazó blokkok változnak meg, mint + például az állományokra + vonatkozó információk vagy a + könyvtárak.) + + Eredetileg alapértelmezés szerint a + metaadatok változásait szinkron módon + írták ki. Amikor egy könyvtár + megváltozott, a rendszer egészen addig + várt, amíg ez a változás a lemezre + nem íródott. Ugyanekkor az + állományok adatait tartalmazó pufferek + (az állományok tartalma) átkerültek + a pufferelt gyorsítótárba, hogy majd + késõbb, aszinkron módon kerüljenek + kiírásra. Ennek az + implementációnak a biztonságos + mûködés volt az elõnye, mivel így + a metaadatok még akkor is konzisztens állapotban + maradtak, amikor valamilyen hiba következett be. + Tehát egy állomány vagy teljesen + létrejött vagy egyáltalán nem. Ha + az állományhoz tartozó blokkok már + nem tudtak kijutni a + gyorsítótárból az + összeomlás ideje elõtt, akkor az &man.fsck.8; + felismerte ezt a helyzetet és az + állományrendszer ilyen jellegû + hibáját úgy orvosolta, hogy az adott + állomány méretét nullára + állította. Ezenkívül még az + implementációs részletek is + tiszták és egyszerûek maradtak. Ennek + viszont hátránya, hogy a metaadatok + kezelése lassú. Ha például + kiadunk egy rm -r parancsot, akkor az a + könyvtárban levõ állományokat + szekvenciálisan dolgozza fel, de minden egyes + változtatást (az állományok + törlését) csak szinkron módon + rögzíti a lemezre. Ezek a + frissítések érintik magát a + könyvtárat, az állományokkal + kapcsolatos információkat tároló + táblázatot (az ún. inode + táblát) és minden + valószínûség szerint az + állományok által lefoglalt blokkokat is + közvetve. Hasonló megfontolások + élnek a nagyobb könyvtárszerkezetek + kibontása esetén is (tar + -x). + + A második lehetõség a metaadatok + aszinkron frissítése. Ez az + alapértelmezés a Linux ext2fs és BSD-k + mount -o async opcióval + csatlakoztatott UFS állományrendszerei + esetén. Ilyenkor minden metaadattal kapcsolatos + aktualizálás egyszerûen bekerült a + pufferelt gyorsítótárba, tehát az + állományok adatai és ezek a + típusú frissítések keverednek. + Ennek a megvalósításnak az az + elõnye, hogy nem kell megvárni, amíg a + metaadatok is kiíródnak a lemezre, ezért + a metaadatok óriási mennyiségû + változásával járó + mûveletek sokkal gyorsabban hajtódnak + végre, mint a szinkron esetben. Sõt, maga az + implementáció is tiszta és egyszerû + marad, ezért a kódban megjelenõ + hibák beszivárgásának + kockázata alacsony. A módszer + hátránya, hogy egyáltalán + semmilyen garanciát nem kapunk az + állományrendszer + konzisztenciájára. Ha tehát egy rengeteg + metaadat megváltozásával + együttjáró mûvelet közben + történik valamilyen probléma + (áramkimaradás, vagy valaki egyszerûen + megnyomja a reset gombot), akkor az + állományrendszer elõre + kiszámíthatatlan állapotba kerül. A + rendszer újbóli indításakor + ezért nincs lehetõségünk + megvizsgálni az állományrendszer + állapotát. Elképzelhetõ, hogy az + állományokhoz tartozó adatok már + kikerültek a lemezre, miközben a rá + vonatkozó inode- vagy könyvtári + bejegyzések még nem. Így + lényegében lehetetlen olyan + fsck implementációt + készíteni, ami képes lenne + eltüntetni ezt a káoszt (hiszen az ehhez + szükséges adatok nem állnak + rendelkezésre). Ha az állományrendszer + helyrehozhatatlanul károsodott, akkor csak a + &man.newfs.8; és a biztonsági mentés + visszaállítása segíthet + rajta. + + Ezt általában úgy + küszöbölik ki, hogy az egészhez + hozzáteszik még a + módosított területek + feljegyzését, amit gyakran csak + naplózásnak (journaling) + neveznek, habár ezt az elnevezést nem mindenhol + ilyen értelemben használják, ezért + a tranzakciók naplózásának + más formáira is utalhat. A metaadatok + frissítése ebben az esetben is csak szinkron + módon történik, de csak a lemez egy kisebb + területére. Késõbb ez a + megfelelõ helyére kerül. Mivel a lemez + naplózásra fordított része egy + viszonylag kis méretû, folytonos terület, a + lemez fejének még a megterhelõbb + mûveletek esetén sem kell sokat mozognia, + ezért valójában ez a megoldás + gyorsabb, mint a mezei szinkron frissítések. Az + implementáció bonyolultsága + továbbra is jól behatárolható, a + velejáró hibalehetõségek + kockázata alacsony. Hátránya, hogy + minden metaadat kétszer íródik ki + (egyszer a naplózási területre, + aztán a megfelelõ helyre), ezért ez a + hétköznapi használat során + visszaesés tapasztalható a + teljesítményben. Másrészrõl + azonban egy összeomlás esetén a + naplózási terület + segítségével minden függõben + levõ metaadattal kapcsolatos mûvelet könnyen + visszafordítható vagy lezárható a + rendszer következõ indításakor, + és ezzel így egy gyors + helyreállítást nyerünk. + + Kirk McKusick, a Berkeley FFS fejlesztõje ezt a + problémát a Soft Updates + segítségével hidalta át: a + metaadatokkal kapcsolatos minden függõben levõ + frissítést a memóriában tart, majd + ezeket rendezett sorrendben írja ki a lemezre (a + metaadatok rendezett frissítése). Ennek + következményeképpen a metaadatok komolyabb + frissítése során a késõbb + érkezõ módosításoknak + lehetõségük van elkapni a + memóriában levõ korábbi + változataikat, ha azok még nem kerültek ki + a lemezre. Így az összes, például + könyvtárakon végzett, mûvelet a + lemezre írás elõtt általában + elõször a memóriában + játszódik le (a adatblokkok a + pozíciójuknak megfelelõen kerülnek + rendezésre, ezért a rájuk + vonatkozó metaadatok elõtt nem jutnak ki a + lemezre). Ha eközben a rendszer összeomlik, akkor + így implicit módon a napló + visszalapozását eredményezi: + minden olyan mûvelet, ami már nem tudott kijutni a + lemezre, meg nem történtnek számít. + Ezen a módon az állományrendszernek egy + 30 és 60 másodperc közti korábbi + állapota marad fenn. Az algoritmus garantálja, + hogy az összes használt erõforrás a + nekik megfelelõ bittérképekben helyesen + jelölõdik, a blokkokban és az inode-okban. + Az összeomlás után az + erõforrások kiosztásával + kapcsolatban csak egyetlen hiba léphet fel: amikor + olyan erõforrások jelölõdnek + használtnak amely igazából + szabadok. Az &man.fsck.8; azonban képes + felismerni ezeket a helyzeteket és + felszabadítani a nem használt + erõforrásokat. A mount -f + parancs kiadásával minden további + következmény nélkül figyelmen + kívül hagyhatjuk az állományrendszer + félkész állapotát és + csatlakoztathatjuk az állományrendszereket. Az + használatban már nem levõ + erõforrások felszabadításához + az &man.fsck.8; parancsot késõbb kell futtatni. + Ez az alapötlet húzódik meg a + háttérben végzett + lemezellenõrzés mögött. A + rendszer indításakor az + állományrendszernek csupán egy + pillanatképét + rögzítjük, és az + fsck tényleges + lefuttatását késõbbre toljuk. Mivel + mindegyik állományrendszer + csatlakoztatható félkész + állapotban, ezért a rendszer képes + elindulni többfelhasználós módban. + Eközben a háttérben az + fsck beütemezhetõ minden olyan + állományrendszer számára, ahol + arra szükség van, hogy szabadítsa fel az + esetlegesen már nem használt + erõforrásokat. (Így a Soft Updates + opciót nem alkalmazó + állományrendszerek esetén továbbra + is szükség van az elõtérben + elvégzett fsck parancsra.) + + A módszer elõnye, hogy így a + metaadatokkal kapcsolatos mûveletek közel olyan + gyorsak, mint az aszinkron módon végzett + frissítések (tehát gyorsabb mintha + naplóznánk, ami ugye minden + metaadatot kétszer ír ki). A + hátránya a bonyolultabb kód (ami miatt + növekszik az olyan hibák lehetõsége, + amik érzékenyen befolyásolhatják a + felhasználói adatok elvesztését) + és a nagyobb memóriaigény. + Ezenkívül még van néhány + olyan egyéni jellemzõje, amit meg kell szokni. A + rendszer összeomlása után az + állományrendszer valamivel + régebbi lesz. Amikor pedig megszokott + szinkron megközelítés szerint az + fsck lefutása után nulla + méretû állományok + jönnének létre, ezek az + állományok a Soft Updates esetén + egyáltalán meg sem jelennek, mivel sem a + rájuk vonatkozó metaadatok, sem pedig a + tartalmuk nem került ki a lemezre. Egy + rm lefuttatása után a + lemezterület addig nem kerül + felszabadításra, amíg a + frissítések teljesen rá nem kerülnek + a lemezre. Ez nagyobb mennyiségû adat + telepítésekor gondokat okozhat egy olyan + állományrendszeren, ahol nincs elegendõ + hely az állományok kétszeri + tárolására. + + + + + + + A rendszermag korlátainak + finomhangolása + + + finomhangolás + a rendszermag korlátai + + + + Az állományok és a futó + programok korlátozásai + + + <varname>kern.maxfiles</varname> + + kern.maxfiles + + A kern.maxfiles értéke a + rendszerünk igényeinek megfelelõen + növelhetõ vagy csökkenthetõ. Ez a + változó adja meg a rendszerünkben levõ + állományleírók maximális + számát. Amikor az + állományleírókat + tároló táblázat megtelik, a + rendszer üzenetpufferében egy file: + table is full üzenet jelenik meg, amit a + dmesg paranccsal tudunk + megnézni. + + Minden megnyitott állomány, + csatlakozás vagy FIFO elhasznál egy + állományleírót. Egy + nagyméretû szerver könnyen + felemészthet több ezernyi + állományleírót attól + függõen, hogy milyen és mennyi + szolgáltatást futtat egymás + mellett. + + A &os; korábbi kiadásaiban a + kern.maxfiles a rendszermag + beállításait tartalmazó + állomány (a + rendszerben egyszerre jelenlevõ + felhasználók maximumának) + értékébõl származott, + tehát a kern.maxfiles a + értékével + arányosan növekszik. Amikor + készítünk egy saját rendszermagot, + mindig érdemes a rendszerünk + használatának megfelelõen + beállítani ezt az értéket, mivel a + rendszermag ebbõl a számból + határozza meg a legtöbb elõre + meghatározott korlátait. Mivel még egy + komoly szerveren sem jelentkeznek be egyszerre 256 + felhasználónál többen, + nagyjából ugyanannyi erõforrásra van + szüksége, mint egy nagyobb webszervernek. + + A &os; 4.5 változatától + kezdõdõen a kern.maxusers + értéke a rendelkezésre álló + memóriának megfelelõen + magától méretezõdik a rendszer + indításakor, és amit futás + közben csak a kern.maxusers sysctl + változó írásvédett + értékének + lekérdezésébõl tudhatunk meg. Egyes + oldalak üzemeltetése a + kern.maxusers így + megállapított + értékétõl nagyobbat vagy + éppen kisebbet igényel, ezért a + betöltéskor minden gond nélkül + át lehet állítani 64, 128 vagy 256 + értékûre. Senkinek sem ajánljuk, + hogy 256 felé menjen, hacsak tényleg nincs + szüksége ekkora mennyiségû + állományleíróra. A + kern.maxusers + függvényében beállított + alapértelmezett értékek tetszõleges + módon átállíthatóak a + rendszer indításakor vagy futás + közben a /boot/loader.conf + módosításával (az ide + kapcsolódó javaslatokról bõvebben + lásd a &man.loader.conf.5; man oldalt vagy a + /boot/defaults/loader.conf + állományt) illetve a leírás + más részén megadott módok szerint. + A &os; 4.4 változatánál + korábbi rendszerek esetén erre a rendszermag + &man.config.8; beállításának + paraméterét kell + használni. + + A korábbi kiadásokban úgy lehet + önszabályozóra állítani a + maxusers beállítást, + ha explicit módon 0 + értéket adtunk meg neki + + Az önszabályozó algoritmus a + maxusers értékét a + rendszerben található + memóriának megfelelõen legalább + 32-re, legfeljebb 384-re állítja. + . A maxusers paraméter + beállításakor legalább + érdemes 4-et megadni, különösen akkor, + ha használjuk az X Window Systemet vagy szoftvereket + fordítunk le. Azért van erre + szükség, mert a maxusers + értéke által szabályozott + legfontosabb mennyiség az egyszerre futtatható + programok táblázatának maximális + mérete, amelyet így számolunk ki: + 20 + 16 * maxusers. Tehát ha a + maxusers értékét 1-re + állítjuk be, akkor az elõbb képlet + értelmében csak 36 programunk futhat + egymással párhuzamosan, beleértve mindazt + a kb. 18 programot, amik a rendszerrel együtt indulnak, + illetve még azt a további 15 programot, amit az + X Window System használatával indítunk + el. Még egy olyan egyszerû dolog is, mint + például egy man oldal megnézése + legalább kilenc programot elindít a + szûréshez, kitömörítéshez + és megnézéshez. Azonban ha a + maxusers értékét 64-re + állítjuk, akkor egyszerre akár már + 1044 programot futtathatunk, ami szinte mindenre + elegendõ. Ha persze egy új program + indításakor kapunk egy proc table + full típusú üzenetet vagy nagy + számú konkurens felhasználóval + futtatunk szervert (ilyen például a ftp.FreeBSD.org), akkor érdemes + növelni ezt a számot és + újrafordítani a rendszermagot. + + + A maxusers nem + korlátozza a számítógépre + egyszerre bejelentkezni képes + felhasználók számát. + Egyszerûen csak beállítja + néhány táblázat + méretét és az egyszerre + futtatható programok mennyiségét a + rendszert egyidejûleg használni + kívánó felhasználók + maximális számának + figyelembevételével. A távoli + bejelentkezések és X terminálablakok + számát ténylegesen + a pseudo-device + pty 16 paraméter határolja + le. A &os; 5.X változataitól + kezdõdõen már nem kell aggódni + emiatt, mivel a &man.pty.4; meghajtó + önmagát klónozza. + Ezért elegendõ csak a device + pty sor használató a + konfigurációs + állományban. + + + + + + <varname>kern.ipc.somaxconn</varname> + + kern.ipc.somaxconn + + Az kern.ipc.somaxconn sysctl + változó a beérkezõ TCP kapcsolatokat + fogadó sor hosszát határozza meg. Ennek + az alapértelmezett értéke + 128, ami az új kapcsolatok + megbízható kezeléséhez + általában kevés egy erõsen leterhelt + webszerver számára. Ilyen helyzetekben ezt az + értéket javasolt 1024-re vagy + még annál is nagyobbra állítani. + Az egyes szolgáltatások démonai ugyan + szintén le szokták korlátozni a + fogadósoruk méretét + (például a &man.sendmail.8; vagy az + Apache), de gyakran találunk + a beállításai között olyat, + amivel ennek a sornak a mérete növelhetõ. A + nagyobb fogadósorok mellesleg jó + szolgálatot tesznek a Denial of Service + (DoS) típusú + támadásokkal szemben is. + + + + + + Hálózati korlátozások + + A rendszermag NMBCLUSTERS nevû + beállítása szab határt a rendszer + részére elérhetõ + memóriapufferek mennyiségének. Egy nagyobb + forgalmú szerver esetén a pufferek alacsony + száma gátat szabhat a &os; + képességeinek. Minden klaszter + nagyjából 2 KB memóriát takar, + így az 1024-es érték azt jelenti, hogy a + rendszermag memóriájából 2 + megabyte-ot fordítunk a hálózati + pufferelésre. Egyszerûen + kiszámítható mennyire is van + szükségünk: ha van egy webszerverünk, ami + egyszerre legfeljebb 1000 párhuzamos kapcsolatot fogad, + és minden kapcsolat lefoglal 16 KB-ot a + fogadó-, valamint újabb 16 KB-ot a + küldõpuffer számára, akkor + megközelítõleg 32 MB-nyi + hálózati pufferre lesz szükségünk + a webszerver hatékony + mûködéséhez. Ezt az + értéket gyakran még érdemes + megszorozni kettõvel, így + 2 x 32 MB / 2 KB = + 64 MB / 2 KB = 32768. Több + memóriával rendelkezõ + számítógépek esetén egy 4096 + és 32768 közti értéket javaslunk. + Semmilyen körülmények között ne + adjunk meg ennél nagyobb értéket, mert + ezzel a rendszer már az indítása + során összeomolhat. A &man.netstat.1; + beállításával + ellenõrizhetjük a hálózati klaszterek + kihasználtságát. + + A kern.ipc.nmbclusters + változó értékét a rendszer + indításakor érdemes megváltoztatni. + A &os; korábbi változataiban ehhez a rendszermag + NMBCLUSTERS nevû &man.config.8; + paraméterének + módosítására van + szükségünk. + + Az olyan forgalmasabb szervereken, ahol sokat + használják a &man.sendfile.2; + rendszerhívást, szükségünk lehet + a &man.sendfile.2; által használt pufferek + számának növelésére a + rendszermag NFSBUFS nevû + konfigurációs paraméterén vagy a + /boot/loader.conf állományon + keresztül (lásd &man.loader.8;). Amikor a + futó programok közül sokan vannak + sfbufa állapotban, akkor az + egyértelmûen annak a jele, hogy ezen a + paraméteren állítanunk kell. A + kern.ipc.nsfbufs egy + írásvédett változót, amelyet + a rendszermag állít be. Ez a paraméter + névlegesen a kern.maxusers + változó értékének + megfelelõen változik, de bizonyos esetekben + ettõl függetlenül önállóan + kell behangolni. + + + Annak ellenére, hogy egy socketet + blokkolásmentesnek jelöltünk meg, a + &man.sendfile.2; meghívása egy + blokkolásmentes socketre blokkolódást + eredményezhet egészen addig, amíg a + használatához elegendõ struct + sf_buf struktúra össze nem + gyûlik. + + + + <varname>net.inet.ip.portrange.*</varname> + + net.inet.ip.portrange.* + + A net.inet.ip.portrange.* sysctl + változók vezérlik a TCP és UDP + csatlakozásokhoz automatikusan hozzárendelt + portszámok tartományát. Három + ilyen tartomány létezik: az alsó, az + alapértelmezett és a felsõ + tartomány. A legtöbb hálózati + program a net.inet.ip.portrange.first + és net.inet.ip.portrange.last + változók által rendre az 1024-tõl + 5000-ig kijelölt alapértelmezett tartományt + használja. A kimenõ kapcsolatok is + rögzített porttartományokat követnek, + és adott körülmények mellett be lehet + állítani úgy a rendszerünket, hogy + ezen kívül osszon ki portokat. Ez a + legtöbbször akkor fordul elõ, amikor egy + erõsen leterhelt webproxyt mûködtetünk. A + porttartományok nem okoznak gondot olyan + szervereknél, ahol általában + bejövõ kapcsolatokra lehet számítani, + tehát például webszerverek esetén, + vagy ahol korlátozott a kimenõ kapcsolatok + száma, mint például a levelek + továbbításánál. Ha olyan + helyzetbe keverednénk, ahol már kifutunk a + felhasználható portokból, a + net.inet.ip.portrange.last + mérsékelt növelésével + javasolt kitörni. Ilyenkor a 10000, + 20000 vagy 30000 + értékek elfogadhatóak. Amikor + megváltoztatjuk a porttartományok + határait, elõtte mindig gondoljuk át, + milyen hatással lehet ez a tûzfalra. Egyes + tûzfalak blokkolhatnak bizonyos tartományokat + (általában az alacsonyabbakat) és arra + számítanak, hogy a rendszerek a kimenõ + kapcsolatokhoz a nagyobb számú portokat + használják — ebbõl kifolyólag + nem ajánlott csökkenteni a + net.inet.ip.portrange.first + értékét. + + + + + A TCP + sávszélesség-késletetés + szorzat + + + A TCP + sávszélesség-késleltetés + szorzatának korlátozása + net.inet.tcp.inflight.enable + + + A TCP + sávszélesség-késleltetés + szorzat korlátozása hasonlít a NetBSD-ben + megtalálható TCP/Vegas + implementációhoz. A + net.inet.tcp.inflight.enable sysctl + változó 1-re + állításával lehet + engedélyezni. A rendszer ilyenkor minden egyes + kapcsolathoz megpróbálja + kiszámítani a + sávszélesség-késleltetés + szorzatot és az optimális átviteli + sebesség fenntartásához illeszkedõen + korlátozni a hálózat felé + küldött adatok sorának hosszát. + + Ez a lehetõség még olyankor hasznosnak + bizonyulhat, amikor modemen, Gigabit Etherneten vagy + nagysebességû WAN (vagy bármilyen + más nagy + sávszélesség-késleltetés + szorzattal bíró) + összeköttetéseken keresztül + küldünk át adatokat, különösen + abban az esetben, amikor ablakméretezést is + használnunk vagy nagy küldési ablakot + állítottunk be. Az + engedélyezésekor ne felejtsük el + net.inet.tcp.infligt.debug + változót sem beállítani + 0-ra (amivel így kikapcsoljuk a + nyomkövetést) és éles + használat esetén pedig elõnyös lehet a + net.inet.cp.inflight.min + változót legalább + 6144-re állítani. Azonban + hozzátesszük, hogy + összeköttetéstõl függõen a + nagy minimum értékek tulajdonképpen + kikapcsolják a + sávszélességkorlátozást. + Ez a korlátozási lehetõség + csökkenti a közbensõ út adatinak + és csomagváltásokhoz tartozó sorok + méretét, miközben csökkenti a helyi + számítógép felületén + felépülõ sorok méretét is. Ha + kevesebb csomagot rakunk be a sorba, akkor az + interaktív kapcsolatok, különösen a + lassabb modemek esetében, kisebb + körbejárási + idõvel (Round Trip Time) mûködnek. + Továbbá megemlítenénk, hogy ez a + lehetõség csak az adatok + küldésére (feltöltésére, + szerveroldalra) van hatással. Semmilyen + befolyása nincs az adatok fogadására + (letöltésére). + + A net.inet.tcp.inflight.stab + állítgatása nem + ajánlott. A paraméter értéke + alapértelmezés szerint 20, ami legfeljebb 2 + csomag hozzáadását jelenti a + sávszélesség-késleltetés + szorzat ablakának kiszámításakor. + Erre a kiegészítõ ablakra azért van + szükség, hogy stabilizálni tudjuk vele az + algoritmust és javítani tudjuk a + változó feltételekre adott + reakciót, de lassabb összeköttetések + esetében nagyobb ping idõket is + eredményezhet (habár ezek még így + kisebbek, mint ha nem használnánk az + algoritmust). Ilyen esetekben megpróbálhatjuk + 15-re, 10-re vagy esetleg 5-re visszavenni a paraméter + értékét, de ekkor a kívánt + hatás eléréséhez minden bizonnyal + a net.inet.tcp.inflight.min + értékét is redukálunk kell majd + (például 3500-ra). Ezen paraméterek + megváltoztatását csak végsõ + esetben ajánljuk! + + + + + + Virtuális memória + + + <varname>kern.maxvnodes</varname> + + A vnode egy állomány vagy + könyvtár belsõ + ábrázolása. Ennek megfelelõen a + vnode-ok számának növelésével + az operációs rendszer spórolni tud a + lemezmûveletekkel. Ezt általában maga az + operációs rendszer szabályozza, és + nincs szükség a finomhangolására. + Néhány esetben, amikor a lemezmûveletek + jelentik a rendszerben a szûk keresztmetszetet és + a kezdenek elfogyni a vnode-ok, szükség lehet + ennek a számnak a növelésére. Ehhez + az inaktív és szabad fizikai memória + mennyiségét kell számításba + vennünk. + + Így kérhetjük le a pillanatnyilag + használatban levõ vnode-ok + mennyiségét: + + &prompt.root; sysctl vfs.numvnodes +vfs.numvnodes: 91349 + + Így tudhatjuk meg a vnode-ok maximális + számát: + + &prompt.root; sysctl kern.maxvnodes +kern.maxvnodes: 100000 + + Ha a vnode-ok aktuális kihasználtsága + megközelíti a csúcsértéket, + nagyjából ezerrel javasolt megnövelni a + kern.maxvnodes + értékét. Ezután figyeljük + továbbra is a vfs.numvnodes + változását. Ha ismét + felkúszik a maximális értékre, + akkor növeljük megint egy keveset a + kern.maxvnodes + értékén. Eközben a &man.top.1; + használatával figyelhetjük a memória + kihasználtságának + növekedését is, ilyenkor tehát + több memóriának kell használatban + lennie. + + + + + + + A lapozóterület + bõvítése + + Nem számít mennyire tervezük jól + elõre, mindig elõfordulhat, hogy a rendszerünk + mégsem teljesíti a kitûzött + elvárásokat. Amennyiben további + lapozóterület hozzáadására lenne + szükségünk, azt igen könnyen + megtehetjük. Háromféleképpen + növelhetjük a lapozásra szánt + területet: hozzáadunk a rendszerhez egy újabb + merevlemezes meghajtót, NFS-en keresztül lapozunk, + vagy egy már meglevõ partíción hozunk + létre lapozóállományt. + + A lapozóterület + titkosításával, valamint annak + lehetõségeivel és okaival kapcsolatban lapozzuk + fel a kézikönyv át. + + + Lapozás egy új merevlemezre + + A lapozóterület + bõvítésének legjobb módja + természetesen remek indok egy új merevlemez + beszerzésére is. Elvégre egy úgy + merevlemezt mindig fel tudunk ilyen célra + használni. Ha ezt a megoldást választjuk, + elõtte ajánlott (újra) elolvasni a + kézikönyv ában a + lapozóterületek elrendezésére + vonatkozó javaslatokat. + + + + + Lapozás NFS-en keresztül + + NFS-en keresztül csak akkor lapozzunk, ha ezt helyi + lemezek segítségével nem tudjuk megtenni. + Az NFS alapú lapozás + hatékonyságát erõsen + behatárolja a rendelkezésre álló + hálózati sávszélesség + és további terheket ró az NFS + szerverünkre is. + + + + + Lapozóállományok + + Lapozóállománynak egy adott + méretû állományt hozzunk létre. + Ebben a példában erre egy + /usr/swap0 nevû, 64 MB + méretû állományt fogunk + használni. Természetesen bármilyen + más nevet is választhatunk. + + + Lapozóállomány + létrehozása &os;-ben + + + + Gyõzõdjünk meg róla, hogy a + rendszermagunk beállításai + között megtalálható a + memórialemez meghajtójának (&man.md.4;) + használata. Ez a GENERIC + rendszermag alapból tartalmazza. + + device md # Memória "lemezek" + + + + Hozzunk létre egy + lapozóállományt + (/usr/swap0): + + &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 + + + + Állítsuk be rá a megfelelõ + engedélyeket + (/usr/swap0): + + &prompt.root; chmod 0600 /usr/swap0 + + + + Adjuk meg a lapozóállományt az + /etc/rc.conf + állományban: + + swapfile="/usr/swap0" # Állítsuk be swapfile értékét, ha külsõ lapozóállományra van szükségünk. + + + + Indítsuk újra a + számítógépünket, vagy a + lapozóállomány azonnali + használtba vételéhez írjuk + be: + + &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 + + + + + + + + + + + + Hiten + Pandya + Írta: + + + Tom + Rhodes + + + + + Energia- és + erõforrásgazdálkodás + + Fontos a hardveres erõforrásaink hatékony + kihasználása. Az ACPI + megjelenése elõtt az operációs + rendszerek csak nehézkesen és rugalmatlanul + tudták kezelni a rendszer + energiafelhasználási és + hõszabályzási lehetõségeit. A + hardvert a BIOS kezelte, ezért a + felhasználó kevesebbet tudott látni és + irányítani az energiagazdálkodási + beállításokból. Az Fejlett + energiagazdálkodás (Advanced Power Management, + APM) ehhez nyújtott egy erõsen + korlátozott felületet. Napjaink + operációs rendszereiben az energia- és + erõforráskezelés az egyik legfontosabb + alkotóelem. Például, ha az + operációs rendszerrel folyamatosan figyelni akarjuk + a rendszer hõmérsékletének + váratlan növekedését (és + errõl figyelmeztetést kérni). + + A &os; kézikönyvének ezen + szakaszában az ACPI-rõl adunk egy + átfogó áttekintést, a + végén pedig összefoglaljuk a + témához tartozó irodalmat. + + + Mi az ACPI? + + ACPI + APM + + A speciális energia- és + konfigurációs illesztõ felület (Advanced + Configuration and Power Interface, avagy + ACPI) gyártók egy csoportja + által létrehozott szabvány, amely hardveres + erõforrások és az + energiagazdálkodás egységes + felületét rögzíti (innen a neve). + Döntõ szerepet játszik a + Beállítások és az + energiagazdálkodás operációs + rendszerek áltai + vezérlésében, vagyis + segítségével az operációs + rendszer még nagyobb mértékben és + rugalmassággal tudja irányítani ezeket a + lehetõségeket. A modern operációs + rendszerek az ACPI + felbukkanásával kitolták a + jelenleg meglevõ Plug and Play felületek + korlátait. Az ACPI az + APM közvetlen + leszármazottja. + + + + + A Fejlett energiagazdálkodás (APM) + hiányosságai + + A Fejlett energiagazdálkodás + (APM) a rendszer által felhasznált + energiát annak elfoglaltsága alapján + vezérli. Az APM-et támogató BIOS-t a + (rendszert) gyártó állítja elõ + és az adott hardverplatformra jellemzõ. Az APM + operációs rendszerben levõ meghajtója + hozzáférést biztosít az + APM szoftveres felületéhez, + amivel lehetõség nyílik az energiaszintek + kezelésére. Az APM-et 2000 elõtt és + körül még mindig használták egyes + rendszerek gyártásánál. + + Az APM használata négy nagyobb gondot rejt + magában. Elõször is, az + energiagazdálkodást a + (gyártófüggõ) BIOS végzi el, + és az operációs rendszernek errõl + semmilyen ismerete nincsen. Ennek egyik példája + az, amikor a felhasználó az APM-et ismerõ + BIOS-ban beállítja a merevlemezek automatikus + kikapcsolásának idejét, majd amikor ez + letelik, a BIOS az operációs rendszer tudta + nélkül egyszerûen leállítja a + lemezt. Másodszor: az APM + mûködését a BIOS-ban programozták + le, és teljesen az operációs rendszer + hatáskörén túl tevékenykedik. + Ez azt jelenti, hogy a felhasználó csak úgy + tudjuk korrigálni az APM-es BIOS-ok + problémáit, ha frissíti az alaplapi ROM-ot. + Ez viszont egy nagyon kockázatos folyamat, aminek + hibája révén a rendszerünk + helyrehozhatatlan állapotba kerül. Harmadszor: az + APM alapvetõen egy gyártófüggõ + megoldás, ami azt vonja maga után, hogy sok az + átfedés (ugyanazt valósítják + meg több módon), és ha az egyik + gyártó BIOS-ában hibát + találnak, akkor a másikéban az nem + feltétlenül javítható. + Végül, de nem utolsó sorban, az APM + alapú BIOS-okban nincs elég hely az igazán + kifinomult energiagazdálkodási sémák + vagy bármi más kialakítására, + amivel a felhasználók képesek + lennének az igényeikhez alakítani a + számítógépet. + + A Plug and Play BIOS (PNPBIOS) sok + szempontból megbízhatatlannak bizonyult. A + PNPBIOS ráadásul egy 16 bites megoldás, + ezért az operációs rendszereknek 16 bites + emulációt kell használniuk a PNPBIOS + eszközeinek + eléréséhez. + + A &os; APM meghajtójának + dokumentációját az &man.apm.4; man oldalon + találjuk. + + + + + Az <acronym>ACPI</acronym> + beállítása + + Az acpi.ko meghajtó + alapértelmezés szerint a &man.loader.8; + segítségével töltõdik be, + és ne is fordítsuk bele a + rendszermagba. Ezt azzal tudnánk magyarázni, hogy + modulokkal könnyebb dolgozni, például ha a + rendszermag újrafordítása + nélkül egy másik acpi.ko + modult akarunk használni. Ezzel a + lényegében tesztelés is + egyszerûbbé válik. Másik + magyarázta, hogy a rendszer ACPI + támogatása nem minden esetben mûködik + rendesen. Ha a rendszer indítása során + valamilyen problémát tapasztalunk, akkor + próbálkozzunk meg az ACPI + kikapcsolásával. Ezt a meghajtót nem lehet + és nem is szabad kidobni a + memóriából, mivel a hardverrel a + rendszerbuszon keresztül tartja a kapcsolatot. Az + ACPI a + hint.acpi.0.disabled="1" sor + megadásával kapcsolható a + /boot/loader.conf állományban + vagy a &man.loader.8; parancssorában. + + + Az ACPI és + APM egyszerre nem + használatóak. Közülük a + késõbb betöltött magától + kilép, ha észreveszi, hogy a másikuk + már mûködésbe lépett. + + + Az ACPI és az &man.acpiconf.8; + használatával a rendszerünk + készenléti módba helyezhetõ az + valamint az 1-5 + paraméterek megadásával. Ezek + közül is csak a legtöbb felhasználó + számára az 1 vagy a + 3 (állapot mentése a fizikai + memóriába) érdekes. Az + 5 opció egy szoftveres + kikapcsolást eredményez, ehhez + hasonlóan: + + &prompt.root; halt -p + + A további opciók a &man.sysctl.8; man + oldaláról érhetõek el. Ezen + kívül még olvassuk el az &man.acpi.4; + és &man.acpiconf.8; man oldalakat is. + + + + + + + + + Nate + Lawson + Írta: + + + + + Peter + Schultz + Segítségére volt még: + + + + Tom + Rhodes + + + + + A &os; <acronym>ACPI</acronym> + támogatásának használata és + nyomonkövetése + + + ACPI + problémák + + + Az ACPI az eszközök + felderítésének, + energiagazdálkodásának és a + korábban a BIOS által kezelt + hardverek szabványosított + hozzáférésének alapjaiban új + módja. Az ACPI folyamatosan + fejlõdik, de útját az egyes alaplapok + ACPI Machine Language + (AML) bytekód + implementációjában megjelenõ + hibák, a &os; rendszermag alrendszereinek + befejezetlensége és az &intel; + ACPI-CA értelmezõjében + levõ hibák lassítják. + + Ez a leírás azzal a szándékkal + készült, hogy segítsünk a + felhasználóknak megtalálni az általuk + tapasztalt problémák gyökerét és + ezzel kisegíteni az ACPI + fejlesztõket a nyomonkövetésében és + kijavításában. Köszönjük, + hogy ezt elolvassuk és segédkezünk a + rendszerünkkel kapcsolatban felmerült + problémák orvosolásában! + + + A nyomkövetési információk + beküldése + + + Mielõtt beküldenénk bármilyen + problémát is, gondoskodjunk róla, hogy a + BIOS-unk, és ha lehetséges, + akkor a beágyazott vezérlõk, legfrissebb + verzióját használjuk. + + + Megkérnénk azokat, akik hibát akarnak + bejelenteni, hogy a következõ + információkat küldjék a + freebsd-acpi@FreeBSD.org címre: + + + + A hibás mûködés + leírása, beleértve a rendszer + típusát és + gyártmányát, illetve minden olyat, + aminek köze lehet a hibához. Ha eddig + még nem tapasztaltuk, igyezzünk minél + pontosabban leírni a hiba + keletkezésének folyamatát. + + + + A boot -v paranccsal indított + rendszer &man.dmesg.8; kimenetét, beleértve a + vizsgálni kívánt hiba által + okoztt összes hibaüzenetet. + + + + A boot -v paranccsal és az + ACPI használata nélkül + indított rendszer &man.dmesg.8; kimenete abban az + esetben, ha ez segít megoldani a + problémát. + + + + A sysctl hw.acpi parancs kimenete. + Ezzel egyébként kitûnõen + kideríthetõ milyen lehetõségeket is + kínál fel a rendszerünk. + + + + Az általunk használt + ACPI + forrásnyelvének + (ACPI Source Language, + ASL) elérhetõsége az + interneten. Mivel ezek akár igen nagyok is lehetnek, + ezért a listára közvetlenül ne + küldjünk ASL kódokat! + Az ASL másolatát az + alábbi parancs kiadásával hozhatjuk + létre: + + &prompt.root; acpidump -dt > név-rendszer.asl + + (Adjuk meg a név + helyett a bejelentkezéshez használt + nevünket és a + rendszer helyett pedig a + gyártót/típust. Például: + njl-FooCo6000.asl) + + + + Habár a legtöbb fejlesztõ a &a.current;t + figyeli, a problémáink + leírását mindenképpen a + &a.acpi.name; listára küldjük, hogy biztosan + észrevegyék. Legyünk türelmesek, hiszen + emellett mindannyiunk dolgozik. Ha az általunk + felfedezett hiba nem teljesen egyértelmû, akkor a + fejlesztõk valószínûleg meg fognak + kérni arra, hogy a &man.send-pr.1; + használatával hozzunk róla létre egy + hivatalos hibajelentést. A hibajelentés + készítésekor lehetõleg a fentebb + megadott információkat ugyanúgy adjuk meg. + Ez segít a probléma szemmel + tartásában és + elhárításában. Az &a.acpi.name; + lista kihagyása nélkül közvetlenül + ne küldjünk hibajelentést, mivel a + hibabejelentõ rendszert elsõsorban + emlékeztetõnek használjuk, nem pedig a + hibák tényleges bejelentésére. + Gyakran elõfordul, hogy valaki korábban már + találkozott a problémánkkal. + + + + + Háttér + + ACPI + + Az ACPI minden olyan modern + számítógépben + megtalálható, mely megfelel az ia32 (x86), ia64 + (Itanium) vagy amd64 (AMD) architektúrának. A + teljes szabvány rengeteg lehetõséget + biztosít, többek közt a processzor + teljesítményének kezelését, + az energiaszintek vezérlését, + hõzónákat, különféle + akkumulátor rendszereket, beágyazott + vezérlõk és a buszok + felsorolását. A legtöbb rendszer + általában nem a teljes szabványt + valósítja meg. Például egy asztali + rendszer általában csak a buszok + felsorolásával kapcsolatos részeket + tartalmazza, miközben egy laptop felajánlhatja a + hûtés és az akkumulátor + kezelését is. A laptopokban gyakorta + találunk készenléti üzemmódot a + maguk elbonyolított formájában. + + Egy ACPI-nak megfelelõ rendszert + számos összetevõ alkot. A + BIOS-ok és chipkészletek + gyártói a memóriában egy elõre + rögzített ponton elhelyeznek bizonyos + táblázatokat (például + FADT), amelyekkel megadják + például az APIC + összerendeléseit (ezt az SMP + rendszerek használják), a + konfigurációs regisztereket és az + egyszerûbb konfigurációs + értékeket. Itt ezenkívül még + bytekódok egy táblázata (amit + Differenciált rendszerleírtó + táblának, Differentiated System + Description Table, DSDT nevezünk) is + megtalálható, ahol az eszközök és + módszerek neveit szerepelnek faszerû + elrendezésben. + + Az ACPI-hoz tartozó + meghajtónak értelmeznie kell tudnia ezeket a + rögzített táblázatokat, + implementálnia egy bytekód-értelmezõt, + módosítania az eszközmeghajtókat + és a rendszermagot az ACPI + alrendszerbõl érkezõ információk + befogadásához. A Linuxszal és a NetBSD-vel + közösen a &os; kapott egy ilyen értelmezõt + az &intel;tõl (ACPI-CA). Az + ACPI-CA forráskódja a rendszer + forrásai között, a src/sys/dev/acpica + könyvtárban találhatóak. A + src/sys/dev/acpica/0sd + könyvtárban található források + pedig lehetõvé teszik, hogy az + ACPI-CA mûködhessen &os;-n. + Végezetül, az ACPI + eszközöket megvalósító + meghajtók a src/sys/dev/acpica + könyvtárban találhatóak. + + + + + Gyakori problémák + + + ACPI + problémák + + + Az ACPI megfelelõ + mûködéséhez minden + alkotórésznek helyesen kell mûködnie. A + most következendõkben elõfordulásuk + gyakorisága szerint felsorolunk néhány + ismert problémát, valamint a hozzájuk + tartozó javításokat vagy + elkerülésük módszerét. + + + Gondok az egérrel + + Egyes esetekben felfüggesztett + állapotból visszatérve az egerünk + nem hajlandó mûködni. Ezt úgy lehet + elkerülni, ha /boot/loader.conf + állományba beírjuk a + hint.psm.0.flags="0x3000" sort. Ha ez nem + segít, akkor a fentieknek megfelelõen + küldjünk be egy hibajelentést. + + + + + Felfüggesztés/Folytatás + + Az ACPI három + (STR) állapotban képes a + fizikai memória segítségével + készenléti módba váltani, ezek az + S1-S3, és egy + állapotban használja a lemezt + (STD), amelyet S4-nek + hívnak. Az S5 neve a + szoftveres kikapcsolás, ami egy olyan + állapotot takar, amikor a rendszerünk áram + alatt van, de még nem üzemel. Az + S4BIOS állapot a + BIOS segítségével a + lemezre menti a rendszert, az + S4OS állapotot + pedig teljes egészében az + operációs rendszer valósítja + meg. + + A rendszerünk által ismert + készenléti módokat a sysctl + hw.acpi paranccsal ellenõrizhetjük. + Íme mindez egy Thinkpad esetén: + + hw.acpi.supported_sleep_state: S3 S4 S5 +hw.acpi.s4bios: 0 + + Ez azt jelenti, hogy az acpiconf -s + parancs kiadásával kipróbálhatjuk + az S3, + S4OS, és + S5 állapotokat. Ha az + értéke egy + (1), akkor az + S4BIOS + támogatása helyett az S4 + OS állapotot kapjuk. + + A felfüggesztés és folytatás + kipróbálása során kezdjük az + S1 állapottal, már amennyiben + az támogatott a rendszerünkön. Ez az + állapot többnyire használható, mivel + nem igényel túlságosan sok + támogatást a meghajtó + részérõl. Eddig még senki sem + implementálta az S2 + állapotot, de ha ezt is tudja a rendszerünk, akkor + az S1-hez hasonlót nyerünk + vele. A következõ próba az + S3 állapoté. Ez a + legmélyebb STR állapot, + és a hardver megfelelõ + újraélesztéséhez rengeteg + támogatás szükségeltetik a + meghajtó részérõl. Ha gondjaink + lennének a rendszerünk + felébresztésével, nyugodtan írjunk + egy levelet a &a.acpi.name; listára, ám a + probléma gyors megoldódásában ne + reménykedjünk, hiszen ehhez még + temérdek meghajtón és hardveren kell + tesztelni és kell dolgozni. + + A problémát nagy mértékben + segíti különválasztani, ha + igyekszünk minél több meghajtót + kivenni a rendszermagból. Ha így javul a + helyzet, akkor már könnyen le lehet + szûkíteni arra a meghajtóra a kört, + aminek betöltésével esetleg gondok + akadhatnak. Általában ilyenek a bináris + meghajtók, mint például az + nvidia.ko, az X11 + megjelenítésért felelõs és az + USB eszközök meghajtói, + miközben az Ethernet eszközök remekül + szoktak mûködni. Ha különösebb gond + nélkül képesek vagyunk betölteni + és eltávolítani ezeket a + meghajtókat, akkor ezt a folyamatot + önállósítani is tudjuk úgy, + hogy az /etc/rc.suspend és + /etc/rc.resume szkriptekbe + beillesztjük az ehhez szükséges parancsokat. + Ezekben egyébként találunk is egy + megjegyzésbe rakott példát a + meghajtók betöltésérõl + és eltávolításáról. + Ha az ébresztés után elszemetelõdik + a képernyõ tartalma, akkor állítsuk + át a + változó értékét + nullára (0). Sokat segíthet + meg az is, ha a + értékét csökkentjük vagy + növeljük. + + Megpróbálhatjuk azt is, hogy + elindítunk egy frissebb Linux + disztribúciót ACPI + támogatással és ugyanazon a hardveren + kipróbáljuk az általa + felkínált felfüggesztési és + folytatási lehetõséget. Ha Linux alatt ez + megbízhatóan mûködik, akkor nagy a + valószínûsége, hogy ez &os; alatt az + egyik meghajtó hibájából + fakadóan nem használható. Így + fokozatosan le is tudjuk szûkíteni a pontosan + melyikkel lehet a gond, és ezzel pedig a + fejlesztõk munkáját segítjük. + Megjegyeznénk, hogy az ACPI-t + karbantartó fejlesztõk általában nem + foglalkoznak más meghajtókkal + (például hangkártya vagy + ATA stb.), ezért az adott + meghajtóval kapcsolatos hibáról javasolt + értesíteni a &a.current.name; listát + és a meghajtóért felelõs + fejlesztõt is. Ha van egy kis kedvünk és + idõnk, mi magunk is belebiggyeszthetünk a + meghajtóba néhány &man.printf.3; + függvényt annak kiderítésére, + pontosan hol is fagy le a folytatási + funkció. + + Végül megpróbálkozhatunk az + ACPI kikapcsolásával is, + és áttérhetünk helyette az + APM használatára. Ha az + APM-mel mûködnek a + készenléti állapotok, akkor + érdemes inkább azzal dolgozni, + különösen a régebbi (2000 elõtti) + hardverek esetében. A gyártóknak + eltartott egy ideig, amíg rendes + ACPI támogatást voltak + képesek adni, ezért a régebbi + hardvereknél inkább a + BIOS-nak akadnak gondjai az + ACPI-val. + + + + + A rendszer lemerevedik (ideiglenesen vagy + teljesen) + + A legtöbb rendszer olyankor akad meg, amikor sok + megszakítás elveszik, vagy amikor éppen + sok megszakítás érkezik egyszerre. A + chipkészleteknek számos baja származik + abból, hogy a BIOS milyen + módon állítja be a rendszer + indítása elõtt a + megszakításokat, mennyire helyes az + APIC (MADT) + táblázata és hogyan vezérli a + Rendszervezérlõ + megszakítást (System Control + Interrupt, SCI). + + megszakítás-viharok + + A megszakítás-viharok a vmstat + -i parancs kimenetében szereplõ + elveszett megszakításokból + azonosíthatók be, ahol keressünk rá + az acpi0 sorra. Ha ez a + számláló másodpercenként + kettõnél többel növekszik, akkor a + megszakításaink viharba keveredtek. Ha a + rendszer látszólag lefagyott, + próbáljuk meg elõhívni a + DDB-t (konzolban a + CTRLALTESC + ) és gépeljük be, hogy + show interrupts. + + + APIC + kikapcsolása + + + A megszakítási problémákkal + kapcsolatban egyetlen reményünk az + APIC támogatás + kikapcsolása lehet a loader.conf + állományban a + hint.apic.0.disabled="1" sor + hozzáadásával. + + + + + Végzetes hibák + + Az ACPI-vel kapcsolatos végzetes + hibák viszonylag ritkák, és + javításuk a legfontosabb. Ilyenkor az elsõ + teendõnk elkülöníteni a hiba + reprodukálásának egyes + lépéseit és (ha lehetséges) + lekérni a hívási láncot. + Kövessük az options DDB és + a soros vonali konzol + beállításához adott + tanácsokat (lásd ) vagy hozzunk létre egy + &man.dump.8; partíciót. A + DDB-ben a hívási + láncot a tr parancs + segítségével kérhetjük le. + Ha kézzel írjuk le láncot, akkor + legalább az alsó öt (5) és a + felsõ öt (5) sorát mindenképpen + jegyezzük fel! + + Ezután próbáljuk meg úgy + szûkíteni a probléma + lehetõségét, hogy az + ACPI használata nélkül + indítjuk a rendszert. Ha ezzel nincs semmi gond, akkor + a változó + értékének megfelelõ + beállításával egyenként meg + tudjuk figyelni az ACPI alrendszer egyes + részeit. Ehhez példákat az &man.acpi.4; + man oldalon találunk. + + + + + Felfüggesztés vagy + leállítás után elindul a + rendszer + + Elõször is próbáljuk meg a + hw.acpi.disable_on_poweroff + változó értékét + 0-ra állítani a + &man.loader.conf.5; állományban. Ezzel + távoltartjuk az ACPI alrendszert a + rendszer leállítási + folyamatától. Egyes rendszereknek valamilyen + okból kifolyólag szükségük van + itt az 1 (az alapértelmezett) + értékre. Ez többnyire megoldja a + problémát, amikor a rendszer váratlanul + elindul a készenléti mód + aktiválásákor vagy + kikapcsoláskor. + + + + + Egyéb problémák + + Ha más gondjaink lennének az + ACPI-val (dokkoló + állomásunk van, egyes eszközöket nem + vesz észre stb.), akkor természetesen errõl + is küldjünk egy leírást a + levelezési listára. Azonban vegyük + figyelembe, hogy egyes problémák a + ACPI alrendszer eddig még nem + implementált, befejezetlen részeihez + kötõdnek, ezért azok megoldása + még várat magára. Kérünk + mindenkit, hogy legyen türelemmel és álljon + készen a kiküldött javítások + tesztelésére! + + + + + + <acronym>ASL</acronym>, <command>acpidump</command> + és <acronym>IASL</acronym> + + + ACPI + ASL + + + A problémák leggyakoribb forrása, hogy + a BIOS-gyártók rossz (vagy + kifejezetten hibás!) bytekódokat adnak. Ez + általában a következõhöz + hasonló rendszerüzenetbõl derül ki: + + ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ +(Node 0xc3f6d160), AE_NOT_FOUND + + Az ilyen jellegû hibákat gyakran úgy + lehet orvosolni, ha a BIOS-unkat + frissítjük a legújabb verzióra. A + legtöbb ilyen üzenet teljesen ártalmatlan, de + ha vannak más problémáink is, + például az akkumulátor állapota nem + olvasható le, akkor elõször az + AML környékén + érdemes kutakodnunk. A bytekód, más + néven AML, az ASL + elnevezésû forrásnyelvbõl + származik. Az AML egy + DSDT néven ismert + táblázatban található meg. Az + ASL másolatát az + &man.acpidump.8; paranccsal készíthetjük el. + Paraméterként egyaránt adjuk meg a + (megmutatja a rögzített + táblák tartalmát) és + (visszafejti az AML + kódokat az ASL nyelvére) + kapcsolókat. A felírás pontos + formátumát a A + nyomkövetési információk + beküldése címû szakaszban + olvashatjuk. + + Elsõként próbáljuk meg + újrafordítani az így nyert + ASL programot és keressünk benne + hibákat. A figyelmeztetések + általában nyugodtan figyelmen kívül + hagyhatóak, azonban a hibák olyan + implementációs hibákra utalnak, amelyek + akadályozzák az ACPI helyes + mûködését. Az ASL + újrafordítását az alábbi + paranccsal tudjuk elvégezni: + + &prompt.root; iasl saját.asl + + + + + Az <acronym>ASL</acronym> kijavítása + + + ACPI + ASL + + + Végeredményben az a célunk, hogy az + ACPI megfelelõ + mûködéséhez senkinek se kelljen + hozzányúlnia semmihez. Azonban még mindig + szükség van + BIOS-gyártók által + elkövetett gyakori hibák + elkerülésének kifejlesztésére. + A µsoft; értelmezõje + (acpi.sys és + acpiec.sys) nem ellenõrzi + szigorúan a szabvány szerinti megfelelést, + ezért számos olyan + BIOS-gyártó, akik csak + &windows; alatt tesztelik az ACPI + implementációjukat, soha nem fogják + kijavítani a ASL kódjukban + ejtett hibáikat. Reménykedünk, hogy + folyamatosan sikerül felderíteni és + dokumentálni a µsoft; értelmezõje + által eltûrt szabványon kívüli + viselkedést és leutánozni &os; alatt is, + hogy így ne kelljen a felhasználóknak + kézzel a saját ASL + forrásaikat javítgatni. Az ebbõl + fakadó hibákat úgy tudjuk elkerülni + és segíteni a fejlesztõknek + azonosítani a hozzá társuló + viselkedést, hogy magunk javítjuk az + ASL-ben felfedezett hibákat. Ha ez + beválik, akkor küldjük el a régi + és új ASL közti + &man.diff.1;-et a fejlesztõknek, akik így majd az + ACPI-CA-ban ki tudnak dolgozni egy + megoldást a hibás viselkedésre, ezzel a + javításunk szükségtelenné + válik. + + + ACPI + hibaüzenetek + + + Most pedig következzenek a legismertebb + hibaüzenetek, az okaik és + javításuk: + + + Operációs rendszeri + függõségek + + Néhány AML úgy + gondolja, hogy a világ csak a + különbözõ &windows; + verziókból áll. A &os;-nek + megadható, hogy másik operációs + rendszernek adja ki magát, és ezzel talán + meg is szüntethetõ pár hiba. Ezt a + legegyszerûbb úgy tudjuk megtenni, ha a + /boot/loader.conf + állományhoz hozzáfûzzük a + hw.acpi.osname="Windows 2001" sort, vagy + itt egy olyan karakterláncot adunk meg, amit az + ASL forrásban láttunk. + + + + + Hiányzó visszatérési + érték + + Bizonyos módszerek a szabvány szerint + elvártaktól eltérõen nem adnak + vissza explicit módon értéket. Mivel az + ACPI-CA ezt nem kezeli le, ezért a + &os; részérõl tartalmaz egy olyan + módosítást, amivel implicit módon + is vissza lehet adni értéket. Ha biztosak + akarunk lenni a visszaadni kívánt + értékben, akkor helyezzünk el a + megfelelõ helyekre explicit Return + utasításokat. Az iasl a + paraméterrel + kényszeríthetõ az ilyen + ASL források + lefordítására. + + + + + Az alapértelmezett <acronym>AML</acronym> + felülbírálása + + Miután módosítottuk a + saját.asl + állományunkat, így tudjuk + lefordítani: + + &prompt.root; iasl saját.asl + + Az kapcsoló + megadásával + kikényszeríthetjük az + AML létrehozását + még abban az esetben is, amikor hibákat + tartalmaz. Ügyeljünk rá, hogy bizonyos + hibákat (például a hiányzó + visszatérési értékeket) a + fordító magától + kikerül. + + Az iasl alapértelmezett kimenete + a DSDT.aml állomány. A + /boot/loader.conf + átírásával így tudjuk ezzel + helyettesíteni a BIOS-unk + hibás változatát (ami még mindig + megtalálható a flash + memóriában): + + acpi_dsdt_load="YES" +acpi_dsdt_name="/boot/DSDT.aml" + + Ehhez ne felejtsük el a saját + DSDT.aml állományunkat + bemásolni a /boot + könyvtárba. + + + + + + Nyomkövetési információk + kinyerése az <acronym>ACPI</acronym>-bõl + + + ACPI + problémák + + + + ACPI + nyomkövetés + + + Az ACPI meghajtója nagyon rugalmas + nyomkövetési lehetõségekkel rendelkezik. + Ennek révén ugyanúgy megadhatjuk a + nyomonkövetni kívánt alrendszert, mint ahogy + annak mélységét is. A nyomkövetni + kívánt alrendszereket + rétegekként adjuk meg, valamint + ezek ACPI-CA komponensekre + (ACPI_ALL_COMPONENTS) és ACPI + hardvertámogatásra (ACPI_ALL_DRIVERS) bomlanak le. + A nyomkövetéskor keletkezõ kimenet + részletességét a + szintként adjuk meg, ami az + ACPI_LV_ERROR-tól (csak a hibák) + ACPI_LV_VERBOSE-ig (minden) terjedhet. A szint + itt egy bitmaszk, ezért szóközzel + elválasztva egyszerre több + beállítás megadható. Ha + túlságosan sok üzenet érkezik a konzol + üzenetpufferébe, akkor szükségünk + lehet a soros konzol keresztüli nyomkövetésre + is. Az összes szint és réteg az &man.acpi.4; + man oldalon található meg. + + A nyomkövetés alapértelmezés + szerint nem engedélyezett. Az + engedélyezéséhez hozzá kell adnunk + az options ACPI_DEBUG sort a rendszermagunk + beállításait tartalmazó + állományhoz, amennyiben a rendszermagba + fordítjuk az ACPI + támogatást. Ha az + /etc/make.conf állományba + írjuk bele az ACPI_DEBUG=1 sort, akkor + azt globális engedélyezhetjük. Ha + modulként használjuk, elegendõ csak a + következõ módon újrafordítani az + acpi.ko modult: + + &prompt.root; cd /sys/modules/acpi/acpi +&& make clean && +make ACPI_DEBUG=1 + + Telepítsük fel a acpi.ko + modult a /boot/kernel + könyvtárba és állítsuk be a + számunkra megfelelõ szintet és réteget + a loader.conf állományban. + Az alábbi példában + engedélyezzük az összes + ACPI-CA komponens és az összes + ACPI hardvermeghajtó (processzor, + LID stb.) nyomkövetését. + Csak a hibaüzeneteket írja ki + részletesen. + + debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" +debug.acpi.level="ACPI_LV_ERROR" + + Ha az általunk keresett információt egy + adott esemény váltja ki (például egy + felfüggesztés vagy egy ébresztés), + akkor nem is fontos átírnunk hozzá a + loader.conf állományt, hanem + helyette a rendszer indítása után + használjuk a sysctl parancsot a + réteg és a szint megadására akkor, + amikor a rendszert felkészítjük az + eseményre. A sysctl + változókat ugyanúgy nevezték el, + mint a loader.conf + állományban található + beállításokat. + + + + + Hivatkozások + + Az ACPI-rõl az alábbi + helyeken találunk részletesebb + információkat: + + + + A &a.acpi; + + + + Az ACPI levelezési lista + archívuma: + + + + A korábbi ACPI + levelezési lista archívuma: + + + + Az ACPI 2.0 + specifikációja: + + + + A &os; következõ man oldalai: &man.acpi.4;, + &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;, + &man.acpidb.8; + + + + + A DSDT nyomkövetése + (angolul). (Példának a Compaqot hozza + fel, de általánosságban véve + hasznos.) + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/cutting-edge/Makefile b/hu_HU.ISO8859-2/books/handbook/cutting-edge/Makefile new file mode 100644 index 0000000000..29da7845dd --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/cutting-edge/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= cutting-edge/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml new file mode 100644 index 0000000000..05dba6c042 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml @@ -0,0 +1,2624 @@ + + + + + + + + + Jim + Mock + Átdolgozta, átrendezte és egyes + részeit aktualizálta: + + + + + Jordan + Hubbard + Eredetileg írta: + + + Poul-Henning + Kamp + + + John + Polstra + + + Nik + Clayton + + + + + Az élvonal + + + Áttekintés + + A &os; a kiadások közt is állandó + fejlõdésben van. A legfrissebb fejlesztések + elérésének számos egyszerû + eszköze áll rendelkezésre mindazok + számára, akik az élvonalban + kívánnak lenni. Azonban vigyázzunk — + ez az élvonal nem való ám mindenkinek! Ebben + a fejezetben segítünk dönteni a fejlesztõi + változat és a kiadások használata + között. + + A fejezet elolvasása során + megismerjük: + + + + a két fejlesztõi ág, a &os.stable; + és a &os.current; közti + különbséget; + + + hogyan tartsuk naprakészen rendszerünket a + CVSup, + CVS, vagy + CTM + használatával; + + + a make buildworld (stb.) + segítségével hogyan fordítsuk + és telepítsük újra az egész + alaprendszert. + + + + + A fejezet elolvasásához ajánlott: + + + + a hálózati kapcsolatunk helyes + beállítása (); + + + a külsõ szoftverek + telepítésének ismerete (). + + + + + + + &os.current; kontra &os.stable; + + -CURRENT + -STABLE + + A &os;-nek két fejlesztési ága van: a + &os;.current és a &os.stable;. Ebben a szakaszban + mindegyikükrõl monduk pár szót, és + megmutatjuk, miként lehet az adott ághoz + igazítani a rendszerünk + frissítését. Elõször a + &os.current;, majd a &os.stable; változata kerül + tárgyalásra. + + + A &os; friss változatának + használata + + Ahogy arról már az imént is szó + esett, nem szabad elfelejtenünk, hogy a &os.current; a &os; + fejlesztésének frontvonala. Emiatt + a &os.current; használóinak szakmailag + jólképzetteknek kell lenniük, és sosem + szabad visszariadniuk a használat közben + felmerülõ rendszerszintû problémák + önálló megoldásától. Ha + korábban még nem foglalkoztunk &os;-vel, + kétszer is gondoljuk meg a + telepítését! + + + Mi a &os.current;? + + pillanatkép + + A &os.current; a &os; mögött álló + legfrissebb forráskódot képviseli. Itt + találkozhatunk különféle olyan + fejlesztés alatt álló részekkel, + kísérletezésekkel és + átmeneti megoldásokkal, amelyek nem + feltétlenül kerülnek bele a szoftver + következõ hivatalos kiadásába. Noha a + &os; fejlesztõi a &os.current; + forráskódját naponta + fordítják, adódhatnak olyan + idõszakok, amikor a források mégsem + használhatóak maradéktalanul. Az ilyen + gondokat általában a lehetõ leggyorsabban + igyekeznek megoldani, azonban attól függõen, + hogy éppen a forráskód melyik + verzióját sikerült kifogni, a &os.current; + használata kész katasztrófa vagy + akár a fejlõdésben igazi + továbblépés is lehet. + + + + + Kinek van szüksége a &os.current;-re? + + A &os.current; használata elsõsorban az + alábbi 3 csoportot érinti: + + + + A &os; közösség azon tagjait, akik + aktívan dolgoznak a forrásfa valamelyik + részén, és mindazokat, akik + számára a legfrissebb + verzió használata feltétlen + elvárás. + + + + A &os; közösség azon tagjait, akik + aktívan tesztelnek, és a &os.current; + kordában tartásához hajlandóak + idõt áldozni a menet közben + felbukkanó problémák + megoldására. Vannak olyanok is, akik a &os; + változásaival és fejlesztési + irányával kapcsolatban + kívánnak javaslatokat tenni, melyeket + javítások és + módosítások formájában + tesznek közzé. + + + + Mindazokat, akik pusztán + kíváncsiak a fejlesztésben + zajló eseményekre, vagy hivatkozási + szándékkal töltik le a legfrissebb + forrásokat (például csak + nézegetik, de nem + futtatják). Az ilyen emberek esetenként + megjegyzéseket fûznek a fejlesztéshez + vagy kódot küldenek be. + + + + + + + Mi <emphasis>nem</emphasis> a &os.current;? + + + + Az olyan kiadás elõtt álló + funkciók kipróbálásának + egyszerû módja, amelyekrõl hallottunk, + hogy milyen remek újdonságokat hoznak + és mi akarunk lenni az elsõk, akik ezt + használni is fogják. Ne feledjük + azonban, hogy amikor mindenki elõtt kezdünk el + használni egy újítást, mi + leszünk egyben az elsõk is, akik + szembesülnek a benne rejlõ + hibákkal. + + + + A gyors hibajavítások eszköze. A + &os.current; szinte bármelyik változata + pontosan ugyanakkora + valószínûséggel hoz + magával új hibákat, mint ahogy + eltünteti a régieket. + + + + Akármilyen értelemben is + hivatalosan támogatott. + Képességeinktõl függõen + õszintén igyekszünk a lehetõ + legtöbbet megtenni a 3 + törvényes &os.current; + csoportba tartozó emberekért, azonban + egyszerûen nincs idõnk + komolyabb segítségnyújtást + adni. Ez viszont nem azt jelenti, hogy komisz és + fukar emberek vagyunk, akik utálnak segíteni + a másiknak (de máskülönben nem + tudna fejlõdni a &os;). Csupán a &os; + fejlesztése közben + fizikailag képtelenek vagyunk a naponta + érkezõ ezernyi üzenetet rendre + megválaszolni! A &os; + elõremozdítása és a + kísérleti stádiumban + álló kóddal kapcsolatos + kérdések megválaszolása + közül a fejlesztõk általában + az elsõt részesítik + elõnyben. + + + + + + A &os.current; használata + + + -CURRENT + használata + + + + + Iratkozzunk fel az &a.current.name; és + &a.cvsall.name; listákra. Ez nem egyszerûen + hasznos, hanem elengedhetetlen. Ha + nem vagyunk a &a.current.name; + listán, akkor nem fogjuk látni a rendszer + aktuális állapotára vonatkozó + megjegyzéseket, és így esetleg + feleslegesen öljük az idõnket olyan + problémák megoldásába, + amelyeket mások már korábban + megoldottak. Ami viszont ennél is fontosabb, hogy + így elszalasztjuk a rendszerünk folyamatos + életbentartására vonatkozó + létfontosságú + bejelentéseket. + + A &a.cvsall.name; listán láthatjuk az a + forráskód egyes + változtatásaihoz tartozó + naplóbejegyzéseket, a hozzájuk + tartozó esetleges mellékhatások + ismertetésével együtt. + + A listákra vagy a &a.mailman.lists.link; + oldalon található többi lista + valamelyikére úgy tudunk feliratkozni, ha + rákattintunk a nevére. A további + lépésekrõl ezt követõen itt + kapunk értesítést. + + + + A tükrözések + egyikérõl töltsük le a &os; + forrását. Erre két mód is + kínálkozik: + + + cvsup + cron + + -CURRENT + frissítés + CVSuppal + + + + Használjuk a cvsup programot a + /usr/share/examples/cvsup + könyvtárban található + standard-supfile + állománnyal. Ez a leginkább + ajánlott módszer, hiszen így csak + egyszer kell letölteni az egész + gyûjteményt, majd ezután már + csak a változásokat. Sokan a + cvsup parancsot a + cron parancson keresztül + adják ki, és ezzel mindig automatikusan + frissítik a forrásaikat. A cvsup + mûködését a fentebb + említett minta supfile + állomány megfelelõ + módosításával tudjuk a + saját környezetünkhöz + igazítani. + + + + -CURRENT + frissítés CTM-mel + + + + Használjuk a CTM + alkalmazás nyújtotta + lehetõségeket. Amennyiben nagyon rossz + netkapcsolattal rendelkezünk (drága vagy + csak levelezésre használható) a + CTM megoldást + jelenthet számunkra. Legyünk azonban + tekintettel arra, hogy helyenként + zûrös lehet a használata és + néha hibás állományokat + gyárt. Emiatt viszont csak ritkán + használják, így + elõfordulhat, hogy hosszabb ideig nem is + mûködik. A 9600 bps vagy annál + nagyobb sebességû kapcsolatok + esetén ezért inkább a + CVSup + használatát javasoljuk. + + + + + + Ha nem csak böngészésre, hanem + fordításra is szedjük a + forrásokat, mindig töltsük le a + &os.current; egészét, + ne csak egyes részeit. Ez azzal + magyarázandó, hogy a forráskód + bizonyos részei más helyeken + található részektõl is + függenek, és ezért az + önálló fordításuk szinte + garantáltan gondot fog okozni. + + + -CURRENT + fordítása + + + A &os.current; lefordítása elõtt + figyelmesen olvassuk át a + /usr/src könyvtárban + található Makefile + állományt. A frissítési + folyamat részeként elõször + mindenképpen érdemes telepíteni egy új + rendszermagot és újrafordítani az + alaprendszert. Olvassuk el a &a.current; + üzeneteit és a + /usr/src/UPDATING + állományt, ahol megtalálhatjuk az + ezzel kapcsolatos legújabb + információkat, melyek egy-egy újabb + kiadás közeledtével egyre + fontosabbá válnak. + + + + Foglalkozzunk vele! Ha már a &os.current; + változatát használjuk, ne + legyünk restek véleményt + formálni róla, különösen + abban az esetben, ha + továbbfejlesztésekrõl vagy + hibákra van szó. Leginkább a + forráskóddal együtt érkezõ + javaslatoknak szoktak örülni a + fejlesztõk! + + + + + + + + A &os; stabil változatának + használata + + + Mi a &os.stable;? + + -STABLE + + A &os.stable; az a fejlesztési ág, ahonnan + az egyes kiadások származnak. Ebbe az + ágba már más ütemben kerülnek a + változások, mivel általánosan + elfogadott, hogy ide a korábban már + kipróbált módosítások + vándorolnak át a &os.current; + ágból. Ez azonban még + mindig csak egy fejlesztési ág, ami + arra utal, hogy a &os.stable; által adott pillanatban + képviselt források nem feltétlenül + felelnek meg bizonyos célokra. Ez csupán egy + újabb fejlesztési nyomvonal, nem pedig a + végfelhasználók kenyere. + + + + + Kinek van szüksége a &os.stable;-re? + + Ha szeretnénk figyelemmel kísérni + vagy valamilyen módon kiegészíteni a &os; + fejlesztési folyamatát, különösen + a &os; következõ nagyobb + kiadását illetõen, akkor érdemes + követnünk a &os.stable; forrásait. + + Habár a &os.stable; ágba is bekerülnek + a biztonsági jellegû javítások, + ettõl még nem kell feltétlenül ezt + követnünk. A &os;-hez kiadott biztonsági + figyelmeztetések mindig leírják, hogyan + kell javítani a hibát az érintett + kiadásokban + + Ez azért nem teljesen igaz. A régebbi + &os; kiadásokat ugyan nem támogathatjuk a + végtelenségig, de általában + így is több évig foglalkozunk + velük. A &os; régebbi kiadásaival + kapcsolatos jelenleg érvényes + biztonsági házirend részletes + bemutatása a http://www.FreeBSD.org/security/ + oldalon olvasható (angolul). + + , azonban az egész fejlesztési ágat + felesleges csak biztonsági okból + kifolyólag követni, mivel így olyan + változások is kerülhetnek a rendszerbe, + amire nincs szükségünk. + + Habár igyekszünk gondoskodni a &os.stable; + ágban található források + lefordíthatóságáról + és + mûködõképességérõl, + nem minden esetben szavatolható. + Ráadásul mivel a &os.stable; ágba + kerülõ kódokat elõször a + &os.current; ágban fejlesztik ki, és mivel a + &os.stable; felhasználói többen vannak a + &os.current; változaténál, ezért + szinte elkerülhetetlen, hogy ilyenkor a &os.stable; + változatban bizonyos hibák és + szélsõséges esetek be ne + következzenek, amelyek a &os.current; használata + során még nem buktak ki. + + Ezért a &os.stable; ág vakon + követését senkinek sem + ajánljuk, és különösen fontos, + hogy éles szervereken elõzetes + kimerítõ tesztelések nélkül ne + futassunk &os.stable; rendszert. + + Ha ehhez nem rendelkezünk elegendõ + erõforrással, akkor egyszerûen + használjuk a &os; legfrissebb kiadását, + és az egyes kiadások között pedig + bináris frissítéssel + közlekedjünk. + + + + + A &os.stable; használata + + + -STABLE + használata + + + + + Iratkozzunk fel a &a.stable.name; listára. + Ezen keresztül értesülhetünk a + &os.stable; használata során + felmerülõ fordítási + függõségekrõl vagy más, + külön figyelmet igénylõ + problémákról. Gyakran ezen a + levelezési listán elmélkednek a + fejlesztõk a vitatott + javításokról vagy + frissítésekrõl, amibe a + felhasználók is beleszólhatnak, ha a + szóbanforgó változtatással + kapcsolatban bármilyen problémájuk + vagy ötletünk van. + + A &a.cvsall.name; lista + segítségével elolvashatjuk az egyes + változtatásokhoz tartozó + naplóbejegyzéseket, a rájuk + vonatkozó esetleges mellékhatások + ismertetésével együtt. + + Ezekre, valamint a &a.mailman.lists.link; címen + elérhetõ listák valamelyikére + úgy tudunk feliratkozni, ha a nevükre + kattintunk. A további teendõk ezután + itt jelennek meg. + + + + Amennyiben egy új rendszert akarunk + telepíteni és a &os.stable; havonta + készült pillanatképeit akarjuk rajta + futtatni, akkor errõl bõvebb + felvilágosítást a Pillanatképek + honlapján találhatunk (angolul). Emellett a + legfrissebb &os.stable; kiadást + telepíthetjük a tükrözések + valamelyikérõl is, majd innen a lentebb + található utasítások szerint + tudunk hozzáférni a &os.stable; + forráskódjának legfrissebb + változatához. + + Ha már fut a gépünkön a &os; + egy korábbi kiadása, és ezt akarjuk + forráson keresztül frissíteni, akkor + ezt a &os; tükrözéseivel + könnyedén megtehetjük. Két + módon is: + + + cvsup + cron + + -STABLE + frissítés + CVSuppal + + + + Használjuk a cvsup programot a + /usr/share/examples/cvsup + könyvtárból származó + stable-supfile + állománnyal. Ez a leginkább + ajánlott módszer, mivel így csak + egyszer kell letölteni a teljes + gyûjteményt, utána már csak + a hozzátartozó + változtatásokra van + szükségünk. A + cvsup parancsot sokan a + cron + segítségével futtatják, + és ezzel automatikusan frissülnek a + forrásainak. A cvsup + mûködését + környezetünkhöz az elõbb + említett minta supfile + megfelelõ + módosításával tudjuk + behangolni. + + + + -STABLE + frissítés CTM-mel + + + Használjuk a CTM programot. Ha + nincs olcsó vagy gyors internetkapcsolatunk, + akkor érdemes ezt a módszert + választani. + + + + + + Alapvetõen azonban ha gyorsan szeretnénk + hozzájutni a forrásokhoz és a + sávszélesség nem + meghatározó tényezõ, akkor + helyette válasszuk a cvsup vagy + az ftp használatát, + és csak minden más esetben + CTM-et. + + + + -STABLE + fordítása + + + + Mielõtt lefordítanánk a &os.stable; + változatát, figyelmesen olvassuk át a + /usr/src könyvtárban + levõ Makefile + állományt. Az átállási + folyamat részeként elõször minden + bizonnyal telepítenünk kell egy + új rendszermagot és újra kell + fordítanunk az alaprendszert. A &a.stable; + valamint a /usr/src/UPDATING + elolvasásából + értesülhetünk azokról az + egyéb, gyakran nagyon fontos + változásokról, melyek + elengedhetetlenek lesznek a következõ + kiadás használatához. + + + + + + + + + A forrás szinkronizálása + + Az internet (vagy elektronikus levelek) + használatán keresztül számos mód + kínálkozik az &os; Projekthez tartozó + források frissen tartásához egy adott, vagy + éppen az összes területen attól + függõen, hogy mik érdekelnek minket. Ehhez + elsõsorban az Anonim CVS, + CVSup és CTM szolgáltatásokat + ajánljuk fel. + + + Habár lehetséges csupán a + forrásfa egyes részeit letölteni, a + támogatott frissítési eljárás + során azonban szükségünk lesz az + egész fa szinkronizálására és + a rendszerhez tartozó felhasználói + programok (vagyis minden olyan program, amely a + felhasználói térben fut, ilyeneket + találhatunk többek közt a + /bin és /sbin + könyvtárakban) valamint rendszermag + újrafordítására is. Ha csak a + felhasználói programok forrásait, vagy csak + a rendszermagot, esetleg csupán a forrásfa egyes + részeit frissítjük, akkor az gondokat + okozhat. Az itt elõforduló problémák + fordítási hibáktól kezdve + rendszerösszeomlásokon keresztül akár + adatvesztésbe is torkollhatnak. + + + + CVS + anonim + + + Az Anonim CVS és a + CVSup alkalmazások ún. + lehúzással frissítik a + forrásokat. A CVSup + használatakor a felhasználó (vagy a + cron szkript) meghívja a + cvsup programot, amely az + állományok aktualizálásához + felveszi a kapcsolatot egy máshol + megtalálható cvsupd szerverrel. + Az így nyert frissítések az adott pillanatig + visszemenõleg érkeznek meg, de csak akkor, ha + igényeljük ezeket. A frissítést + könnyedén le tudjuk szabályozni a + számunkra érdekes egyes állományokra + és könyvtárakra. A frissítéseket + a szerver hozza létre menet közben annak + megfelelõen, hogy milyen verziókkal rendelkezünk, + és mihez akarunk szinkronizálni. Az + Anonim CVS a + CVSupnál valamivel + egyszerûbb abban a tekintetben, hogy ez a + CVS-nek egy olyan kiterjesztése, + amely lehetõvé teszi a változtatások + közvetlen lehúzását egy távoli + CVS tárházból. Miközben a + CVSup mindezt sokkal + hatékonnyabb valósítja meg, addig az + Anonim CVS jóval könnyebben + használható. + + CTM + + Velük szemben a CTM nem + hasonlítja össze interaktívan a saját + és a központi szerveren tárolt + forrásokat és nem is húzza át ezeket. + Ehelyett egy olyan szkriptõl van szó, amely naponta + többször megvizsgálja a központi CTM + szerveren tárolt állományok a + legutóbbi futtatás óta keletkezett + változtatásait, majd az észlelt + módosulásokat betömöríti, + felcímkézi egy sorozatszámmal és + (nyomtatható ASCII formátumban) + elõkészíti ezeket az e-mailen keresztüli + küldésre. Az így létrehozott CTM + delták megérkezésük után + a &man.ctm.rmail.1; segédprogrammal kerülnek + feldolgozásra, amely magától + visszaalakítja, ellenõrzi és alkalmazza a + változtatásokat a forrásfa + felhasználó birtokában levõ + másolatára. Ez a megoldás hatékonyabb + a CVSup + használatánál, mert kisebb terhelést + jelent a szerverek számára, hiszen a + frissítéshez nem a + lehúzást, hanem a + küldést + alkalmazzák. + + Természetesen minden említett + eljárásnak megvannak a maga kompromisszumai. Ha + véletlenül kitöröljük a + forrásfánk egyes részeit, a + CVSup képes ezt + észrevenni és helyreállítani a + sérült részeket. A + CTM ezzel szemben ezt nem végzi + el, szóval ha (biztonsági mentés + nélkül) letöröljük a + forrásainkat, akkor az egész + szinkronizálást az elejérõl kell + kezdenünk (pontosabban a legfrissebb CVS-es + alapdeltától) és a + CTM-mel + újraépíteni az egészet, esetleg a + Anonim CVS-sel letörölni a + hibás adatokat és + újraszinkronizálni. + + + + + Az alaprendszer újrafordítása + + az alaprendszer + újrafordítása + + Miután sikerült a helyi forrásfánkat + a &os; egy nekünk szimpatikus (&os.stable;, &os.current; + és így tovább) változatához + igazítanunk, elérkezett az idõ, hogy a + segítségével újrafordítsuk az + egész rendszert. + + + Készítsünk biztonsági + mentést + + Nem tudjuk eléggé + nyomatékosítani, hogy + mielõtt nekikezdenénk, + készítsünk egy biztonsági + mentést a rendszerünkrõl. Míg az + alaprendszer újrafordítása nem + túlságosan bonyolult feladat (egészen + addig, amíg a megadott utasításokat + követjük), saját magunk vagy mások + hibájából fakadóan kialakulhatnak + olyan helyzetek, amikor a rendszer nem lesz képes + elindulni. + + Mindenképpen gyõzödjünk meg + róla, hogy tisztességesen elvégeztük a + mentést és akad a kezünk ügyében + egy javításra felhasználható + rendszerindító floppy vagy CD. + Valószínûleg soha nem lesz ténylegesen + szükségünk rájuk, azonban jobb + félni, mint megijedni! + + + + Iratkozzunk fel a megfelelõ levelezési + listákra + + levelezési lista + + A &os.stable; és &os.current; ágak + természetüknél fogva + fejlesztés alatt állnak. A + &os; fejlesztését is emberek végzik, + ezért elõfordulhatnak benne + tévedések. + + Ezek a tévedések gyakran csak + ártalmatlan apróságok, amelyek + hatására kapunk például egy + ismeretlen diagnosztikai hibát. De ezzel szemben + létrejöhetnek pusztító erejû + hibák is, amelyek hatására a + rendszerünk nem lesz képes elindulni, + károsodnak az állományrendszerek (vagy + még rosszabb). + + Ha ilyen történik, akkor egy + felszólítást (egy + heads up témájú + üzenetet) küldenek az érintett + változatokhoz tartozó listákra, amelyben + igyekeznek kifejteni a probléma természetét + és a rendszerre mért hatását. + Miután minden rendbejött, a + probléma megoldásáról is + küldenek egy értesítést. + + Ha a &a.stable; vagy a &a.current; olvasása + nélkül próbáljuk meg használni + a &os.stable; és &os.current; verziókat, akkor + csak magunknak keressük a bajt. + + + + Ne használjuk a <command>make world</command> + parancsot + + Rengeteg régebben készült + dokumentáció erre a feladatra a make + world parancs kiadását javasolja. Ennek + használatával azonban átlépünk + olyan fontos lépéseket, amelyek + valójában csak akkor lennének + kihagyhatóak, ha pontosan tudjuk mit csinálunk. + Ezért az esetek döntõ + többségében nem a make + world használatára van + szükségünk, hanem a most bemutatandó + eljárásra. + + + + A rendszer frissítése + dióhéjban + + A frissítés megkezdése elõtt + érdemes elolvasnunk a + /usr/src/UPDATING állományt, + ahol a letöltött források + használatához elvégzendõ elõzetes + intézkedésekrõl kaphatunk hírt. + Ezután adjuk ki az alábbi + utasításokat: + + &prompt.root; make buildworld +&prompt.root; make buildkernel +&prompt.root; make installkernel +&prompt.root; reboot + + + Néhány ritka esetben a + buildworld lépés + elõtt szükségünk lehet a + mergemaster -p parancs + lefuttatására is. Errõl az + UPDATING állományból + tudakozódhatunk. Általában azonban + nyugodt szívvel kihagyhatjuk ezt a + lépést, kivéve, ha nem egy vagy több + fõbb &os; változatot átívelõ + frissítést végzünk. + + + Miután az installkernel + sikeresen befejezte a munkáját, indítsuk + újra a számítógépet + egyfelhasználós módban (a betöltõ + parancssorában adjuk ki boot -s + parancsot). Itt futtassuk a következõket: + + &prompt.root; mergemaster -p +&prompt.root; make installworld +&prompt.root; mergemaster +&prompt.root; reboot + + + Olvassuk el a magyarázatokat + + Az iménti leírt folyamat csupán + rövid összefoglalás, amivel némi + gyorstalpalást igyekeztünk adni. Az egyes + lépések megértéséhez + azonban javasolt átolvasni a most következõ + szakaszokat is, különösen abban az esetben, ha + saját rendszermagot akarunk használni. + + + + + + Nézzük meg a + <filename>/usr/src/UPDATING</filename> + állományt + + Mielõtt bármihez is nekifognánk, + keressük meg a /usr/src/UPDATING (vagy + hasonló, a forráskód másolatunk + tényleges helyétõl függõ) + állományt. Ebben adják hírül + az esetlegesen felmerülõ problémákra + vonatkozó fontosabb információkat, vagy + határozzák meg az egyes lefuttatandó + parancsok pontos sorrendjét. Amennyiben az + UPDATING ellentmondana az itt + olvasottaknak, az UPDATING tartalma a + mérvadó. + + + A korábban tárgyaltak szerint az + UPDATING elolvasása nem + helyettesíti a megfelelõ levelezési + listák figyelemmel + kísérését. Ez a két + elvárás nem kizárja, hanem + kiegészíti egymást. + + + + + + Ellenõrizzük az + <filename>/etc/make.conf</filename> + állományt + + make.conf + + Vizsgáljuk át a + /usr/share/examples/etc/make.conf és + az /etc/make.conf + állományokat. Az elõbbi tartalmaz + néhány alapértelmezett + beállítást – ezek + javarészét megjegyzésbe rakták. Ha + használni akarjuk a rendszer lefordítása + során, tegyük bele ezeket az + /etc/make.conf állományba. + Ne felejtsük el azonban, hogy minden, amit megadunk az + /etc/make.conf állományba, a + make minden egyes elindításakor + felhasználásra kerül. Éppen + ezért olyanokat érdemes itt + beállítani, amik az egész + rendszerünket érintik. + + A legtöbb felhasználó + számára az /etc/make.conf + állományhoz a + /usr/share/examples/etc/make.conf + állományban található + CFLAGS és + NO_PROFILE sorokra lesz szüksége, + melyeket kivehetünk a megjegyzésbõl. + + A többi definíció + (COPTFLAGS, NOPORTDOCS + és így tovább) + használatáról már mindenki maga + dönt. + + + + + Frissítsük az <filename>/etc</filename> + tartalmát + + Az /etc könyvtár + tartalmazza a rendszer beállításaival + kapcsolatos információk jelentõs + részét, valamint a rendszer indítása + során lefutó szkripteket. Egyes szkriptek a &os; + verzióiról verzióira + változnak. + + Némely konfigurációs + állományok a rendszer hétköznapi + mûködésében is szerepet + játszanak. Ilyen például az + /etc/group. + + Alkalmanként a make installworld + parancs futása során igényt tart adott + nevû felhasználókra és csoportokra. A + frissítéskor azonban ezek a + felhasználók vagy csoportok nem + feltétlenül állnak rendelkezésre, ami + gondokat okozhat. Ezért bizonyos esetekben a + make buildworld elõzetesen + ellenõrzi az igényelt felhasználók + és csoportok meglétét. + + Erre például szolgálhat a + smmsp felhasználó esete. + Nélküle a felhasználók nem + tudták telepíteni az új rendszert, mert + hiányában az &man.mtree.8; nem volt képes + létrehozni a /var/spool/clientmqueue + könyvtárat. + + Ezt úgy lehetett megoldani, hogy még az + alaprendszer lefordítása (a + buildworld) elõtt meg kellett + hívni a &man.mergemaster.8; parancsot a + paraméterrel. Így csak azokat + az állományokat fogja + összehasonlítani, amelyek feltétlenül + szükségesek a buildworld + vagy az installworld sikeres + mûködéséhez. Amennyiben a + mergemaster egy olyan + verziójával rendelkezünk, amely nem ismeri a + paramétert, akkor az elsõ + indításakor használjuk a + forrásfában található újabb + verzióját: + + &prompt.root; cd /usr/src/usr.sbin/mergemaster +&prompt.root; ./mergemaster.sh -p + + + Ha különösen paranoiásak vagyunk, + akkor a csoport törlése vagy + átnevezése elõtt az alábbi + paranccsal ellenõrizni tudjuk az általa birtokolt + állományokat: + + &prompt.root; find / -group GID -print + + Ez megmutatja GID (mely + megadható numerikus vagy név + formájában is) jelzésû csoporthoz + tartozó összes állományt a + rendszerünkben. + + + + + + Váltsunk egyfelhasználós + módba + + egyfelhasználós + mód + + A rendszert egyfelhasználós módban + érdemes lefordítani. A + nyilvánvalóan érezhetõ + gyorsaság elõnyei mellett azért is jobban + járunk, mert az új rendszer + telepítése során számos + rendszerszintû állomány is + módosításra kerül, beleértve a + szabványos rendszerszintû binárisokat, + függvénykönyvtárakat, include + állományokat és így tovább. + Ha üzemelõ rendszeren végezzük el mindezen + változtatásokat (különösen amikor + rajtunk kívül még további + felhasználók is tartózkodnak a + rendszerben), az csak a bajt hozza ránk. + + többfelhasználós + mód + + Másik lehetõség gyanánt a + rendszert magát lefordíthatjuk + többfelhasználós módban is, majd + ezután csak a telepítést hajtjuk + végre egyfelhasználós + üzemmódban. Ha eszerint cselekszünk, + egyszerûen várjunk addig, amíg az összes + fordítás be nem fejezõdik, és az + egyfelhasználósra váltást halasszuk + a installkernel vagy + installworld idejére. + + Egy mûködõ rendszerben + rendszeradminisztrátorként az alábbi parancs + kiadásával válthatunk át + egyfelhasználós módba: + + &prompt.root; shutdown now + + Ezt elérhetjük úgy is, ha + újraindítjuk a rendszert és a rendszer + indításakor a single user pontot + választjuk a menübõl. Ekkor a rendszer + egyfelhasználós módban indul el. + Miután ez megtörtént, adjuk ki a + következõ parancsokat: + + &prompt.root; fsck -p +&prompt.root; mount -u / +&prompt.root; mount -a -t ufs +&prompt.root; swapon -a + + Ezekkel a parancsokkal elõször + ellenõrizzük az állományrendszereket, + ezután újracsatlakoztatjuk a + / állományrendszert + írható módban, csatlakoztatjuk az + /etc/fstab állományban + megadott összes többi UFS típusú + állományrendszert, majd bekapcsoljuk a + lapozóállomány + használatát. + + + Ha a gépünk óráját nem a + greenwich-i, hanem a helyi idõ szerint + állítottuk be (ez akkor áll fenn, ha a + &man.date.1; parancs nem a helyes idõt és + idõzónát jelzi ki), akkor még erre + is szükségünk lehet: + + &prompt.root; adjkerntz -i + + Ezzel a helyi idõzóna + beállításait tudjuk jól + beállítani — nélküle + késõbb még gondjaink akadhatnak. + + + + + + Töröljük a <filename>/usr/obj</filename> + könyvtárat + + A rendszer egyes részei fordításuk + során a /usr/obj + könyvtáron belülre kerülnek + (alapértelmezés szerint). Az itt + található könyvtárak a + /usr/src + könyvtárszerkezetét követik. + + Ha mindenestõl töröljük ezt a + könyvtárat, akkor növeli tudjuk a make + buildworld folyamat sebességét és + megmenekülünk néhány + függõségekkel kapcsolatos + fejfájástól is. + + Egyes /usr/obj könyvtáron + belüli állományoknál szerepelhet a + megváltoztathatatlan (immutable) + állományjelzõ (lásd &man.chflags.1;), + amelyet a mûvelet elvégzéséhez + elõször el kell távolítanunk. + + &prompt.root; cd /usr/obj +&prompt.root; chflags -R noschg * +&prompt.root; rm -rf * + + + + + Fordítsuk újra az alaprendszert + + + A kimenet elmentése + + Jól járunk azzal, ha a &man.make.1; + futásának kimenetét elmentjük egy + állományba, mivel így a hibák + esetén lesz egy másolatunk a + hibaüzenetrõl. Ha konkrétan nekünk nem + is feltétlenül segít megtalálni a + hiba tényleges okát, mások viszont + többet tudnak róla mondani, ha beküldjük + ezt a &os; egyik levelezési + listájára. + + Ezt egyébként a legegyszerûbben a + &man.script.1; parancs segítségével + oldhatjuk meg, amelynek paraméteréül azt az + állományt kell megadni, ahova menteni akarjuk a + kimenetet. Ezt közvetlenül a rendszer + újrafordítása elõtt kell kiadnunk, + majd miután megállt, a + exit paranccsal kiléphetünk + belõle. + + &prompt.root; script /var/tmp/mw.out +Script started, output file is /var/tmp/mw.out +&prompt.root; make TARGET +… fordít, fordít, fordít … +&prompt.root; exit +Script done, … + + Ilyenkor soha ne a + /tmp könyvtárba mentsük + a kimenetet, mert ennek a tartalma a következõ + indítás során magától + törlõdik. Sokkal jobban tesszük, ha a + /var/tmp könyvtárba (ahogy + tettük azt az elõbbi példában is) vagy + a root felhasználó + könyvtárába mentünk. + + + + + Az alaprendszer fordítása + + A /usr/src könyvtárban + kell állnunk: + + &prompt.root; cd /usr/src + + (kivéve természetesen, ha máshol van + a forráskód, akkor abba a könyvtárba + menjünk). + + make + + Az alaprendszert a &man.make.1; paranccsal + fordíthatjuk újra. Ez a + Makefile nevû + állományból olvassa be a &os; + programjainak újrafordítását + leíró utasításokat, a + fordításuk sorrendjét és + így tovább. + + A begépelendõ paranccsor + általános alakja tehát a + következõképpen néz ki: + + &prompt.root; make -x -DVÁLTOZÓ target + + A fenti példában a + egy olyan a + paraméter, amelyet a &man.make.1; programnak adunk + át. A &man.make.1; man oldalán + megtalálhatjuk az összes neki + átadható ilyen + beállítást. + + A + + alakú paraméterek közvetlenül a + Makefile állománynak adnak + át olyan változókat, amelyek + segítségével vezérelhetõ a + viselkedése. Ezek ugyanazok a változók, + mint amelyek az /etc/make.conf + állományban is szerepelnek, és itt a + beállításuk egy másik + módját kapjuk. Így a + + &prompt.root; make -DNO_PROFILE target + + paranccsal is megadhatjuk, hogy ne profilozott + függkönyvtárak jöjjenek létre, + ami pontosan megfelel a + + NO_PROFILE= true # Avoid compiling profiled libraries + + sornak az /etc/make.conf + állományban. + + A target árulja el a + &man.make.1; programnak, hogy mi a teendõje. Minden + egyes Makefile + különbözõ targeteket + definiál, és a kiválasztott target mondja + meg, pontosan mi is fog történni. + + Egyes targetek ugyan megjelennek a + Makefile állományban, + azonban nem feltétlenül hivatkozhatunk + rájuk közvetlenül. Ehelyett csupán + arra valók, hogy a fordítás + folyamatának lépéseit felbontsák + még kisebb allépésekre. + + A legtöbb esetben azonban semmilyen paramétert + nem kell átadnunk a &man.make.1; parancsnak, + ezért a teljes formája így fog + kinézni: + + &prompt.root; make target + + ahol a target az egyik + fordítási lehetõséget + képviseli. Az elsõ ilyen targetnek mindig a + buildworld-nek kell lennie. + + Ahogy a neve is mutatja, a + buildworld lefordítja az + összes forrást a /usr/obj + könyvtárba, majd a + installworld mint másik + target, telepíti az így létrehozott + elemeket a számítógépre. + + A targetek szétválasztása két + okból is elõnyös. Elõször is + lehetõvé teszi, hogy az új rendszert + biztonságban lefordíthassuk, miközben az a + jelenleg futó rendszert nem zavarja. A rendszer + tehát képes saját magát + újrafordítani. Emiatt a + buildworld target akár + többfelhasználós módban is + mindenféle nem kívánatos hatás + nélkül használható. Ennek + ellenére azonban továbbra is azt javasoljuk, + hogy a installworld részt + egyfelhasználós módban futtassuk + le. + + Másodrészt ezzel + lehetõségünk nyílik NFS + állományrendszer alkalmazásával + több számítógépre is + telepíteni hálózaton keresztül. Ha + például három frissítendõ + számítógépünk van, az + A, B és + C, akkor az A gépen + elõször adjuk ki a make + buildworld, majd a make + installworld parancsot. A B + és C gépek ezután NFS + segítségével csatlakoztatják az + A /usr/src és + /usr/obj könyvtárait, amelyet + követõen a make installworld + paranccsal telepíteni tudjuk a fordítás + eredményét a B és + C gépekre. + + Noha a world mint target + még mindig létezik, használata + határozottan ellenjavalt. + + A + + &prompt.root; make buildworld + + parancs kiadásakor a make + parancsnak megadható egy + paraméter is, amellyel párhuzamosíthatjuk + a folyamat egyes részeit. Ez általában + többprocesszoros + számítógépeken nyer + értelmet, azonban mivel a fordítás + folyamatának haladását inkább az + állománymûveletek mintsem a processzor + sebessége korlátozza, ezért + alkalmazható akár egyprocesszoros gépeken + is. + + Tehát egy átlagos egyprocesszoros + gépen így adható ki a parancs: + + &prompt.root; make -j4 buildworld + + Ennek hatására &man.make.1; egyszerre 4 + szálon igyekszik mûködni. A + levelezési listákra beküldött + tapasztalati jellegû bizonyítékok azt + igazolják, hogy általában ez a + beállítás adja a legjobb + teljesítményt. + + Ha többprocesszoros géppel rendelkezünk + és rajta SMP támogatású + rendszermagot indítottunk el, akkor érdemes 6 + és 10 közötti értékekkel + kísérleteznünk. + + + + + Idõigény + + + az alaprendszer + újrafordítása + idõigény + + + Számos tényezõ befolyásolja a + fordítás tényleges idõbeli + hosszát, de a &os.stable; fa lefordítása + mindenféle trükkök és + rövidítések nélkül a + legtöbb számítógépen olyan + egy vagy két órára + taksálható. A &os.current; fához + ennél valamivel több idõre lesz + szükségünk. + + + + + + Fordítsunk és telepítsünk egy + új rendszermagot + + + rendszermagot + fordítása + + + Az újdonsült rendszerünket csak akkor + tudjuk igazán kihasználni, ha egy új + rendszermagot is készítünk hozzá. Ez + gyakorlati szinten tulajdonképpen elvárás, + mivel könnyen elõfordulhat, hogy bizonyos + memóriabeli adatszerkezetek + felépítése megváltozott, + ezért némely programok, mint például + a &man.ps.1; és &man.top.1;, egészen addig nem + lesznek képesek normálisan mûködni, + amíg a rendszer és a rendszermag + forráskódja nem illeszkedik + egymáshoz. + + Ennek legegyszerûbb és egyben + legbiztonságosabb módja, ha a + GENERIC beállításai + alapján gyártunk és telepítünk + egy rendszermagot. Még ha a GENERIC + beállításai nem is tartalmazzák a + rendszerünkben fellelhetõ összes eszközt, + minden megtalálható bennük ahhoz, hogy a + rendszert sikeresen elindíthassuk legalább + egyfelhasználós módban. Ez mellesleg remek + próbája az új rendszer + életképességének. Miután + elindítottuk a rendszert a GENERIC + típusú rendszermaggal és + meggyõzõdtünk róla, hogy a rendszer + tényleg mûködõképes, a megszokott + rendszermagunk konfigurációs + állománya alapján nyugodtan + elkészíthetjük ezután azt is. + + &os; alatt egy új rendszermag + építése elõtt fontos újrafordítani az + alaprendszert. + + + Ha saját beállításaink szerint + akarunk rendszermagot létrehozni és már + van is ehhez egy konfigurációs + állományunk, akkor erre használhatjuk a + KERNCONF=SAJÁTMAG + paramétert is, valahogy így: + + &prompt.root; cd /usr/src +&prompt.root; make buildkernel KERNCONF=SAJÁTMAG +&prompt.root; make installkernel KERNCONF=SAJÁTMAG + + + Hozzátennénk, hogy ha a + kern.securelevel + rendszerváltozó értékét 1 + felé állítottuk + és a rendszermag + állományának beállítottunk + noschg vagy hozzá hasonló + állományjelzõt, akkor az + installkernel + lefuttatásához mindenképpen + egyfelhasználós módba kell + váltanunk. Minden más esetben további + bonyodalmak nélkül ki tudjuk adni az említett + parancsokat. A kern.securelevel + részleteirõl az &man.init.8; oldalán, a + különbözõ + állományjelzõkrõl pedig a + &man.chflags.1; oldalán olvashatunk. + + + + + Indítsuk újra a rendszert + egyfelhasználós módban + + egyfelhasználós + mód + + Az új rendszermag mûködésének + leteszteléséhez indítsuk újra a + rendszert egyfelhasználós módban. Ennek + pontos részleteit lásd . + + + + + Telepítsük az új rendszer + binárisait + + Ha a &os; friss változatát nemrég + fordítottuk le a make buildworld + paranccsal, akkor utána az + installworld + segítségével tudjuk telepíteni a + keletkezett programokat. + + Tehát írjuk be ezeket: + + &prompt.root; cd /usr/src +&prompt.root; make installworld + + + Amennyiben a paranccsorban a make + buildworld használata során adtunk meg + változókat, akkor ne felejtsük el + ugyanazokat megadni a make installworld + kiadása során sem. Ez viszont a többi + paraméterre már nem feltétlenül + érvényes. Például a + beállítást + szigorúan tilos az + installworld targettel együtt + használni. + + Ennek megfelelõen tehát ha korábban ezt + írtuk be: + + &prompt.root; make -DNO_PROFILE buildworld + + akkor így telepítsünk: + + &prompt.root; make -DNO_PROFILE installworld + + Máskülönben azokat a profilozott + függvénykönyvtárakat + próbáljuk meg telepíteni, amelyek a + make buildworld futása során + nem jöttek létre. + + + + + + Frissítsük a <command>make + installworld</command> által kihagyott + állományokat + + Az alaprendszer újrafordítása nem + regisztrálja az új vagy megváltozott + állományokat bizonyos könyvtárakban + (különösen értendõ ez az + /etc, /var és + /usr esetén). + + Az ilyen állományokat a legegyszerûbben a + &man.mergemaster.8; használatával tarthatjuk + karban, de igény szerint akár kézzel is + elvégezhetjük a szükséges + aktualizálásokat. Függetlenül + attól, hogy mit is választunk, mindenképpen + készítsünk biztonsági mentést + az /etc könyvtárról arra + az esetre, ha bármilyen szörnyûség + történne. + + + + + + Tom + Rhodes + Írta: + + + + + A <command>mergemaster</command> + + mergemaster + + A &man.mergemaster.8; segédprogram + valójában egy Bourne szkript, amely segít + az /etc könyvtárunkban + és a forrásfában levõ + /usr/src/etc könyvtárban + elhelyezkedõ konfigurációs + állományok közti eltérések + megállapításában. Ezt a + módszert ajánljuk arra, hogy összevessük + a konfigurációs állományainkat a + forrásfában található + változataikkal. + + A használatának megkezdéséhez + egyszerûen írjuk be, hogy + mergemaster, majd várjunk egy kicsit, + amíg a mergemaster létrehoz + magának egy átmeneti környezetet a + / könyvtárból elindulva + és megtölti azt a különbözõ + rendszerszintû beállításokat + tartalmazó állományokkal. Ezeket az + állományokat aztán + összehasonlítja a jelenleg érvényben + levõ változataikkal. Ilyenkor a köztük + talált eltéréseket a &man.diff.1; + formátumának megfelelõen módon mutatja + meg, ahol a jelöli a hozzáadott + vagy módosított sorokat, a + pedig a teljesen eltávolítandó vagy + cserélendõ sorokat. Errõl a + formátumról bõvebben a &man.diff.1; man + oldalán találhatunk + felvilágosítást. + + A &man.mergemaster.8; ezt követõen megmutatja az + összes olyan állományt, ahol + eltérést tapasztalt, és ezen a ponton van + lehetõségünk letörölni (delete) az + új állományokat (amelyekre itt most + ideiglenes állományként hivatkozik), + telepíteni (install) a módosítatlan + ideiglenes (új) állományt, valamint + összefésülni (merge) az ideiglenes (új) + és a jelenlegi állományokat, vagy + ismét átnézni (view) a &man.diff.1; + által jelzett különbségeket. + + Ha az ideiglenes állomány + törlését választjuk, akkor a + &man.mergemaster.8; ezt úgy értelmezi, hogy + változatlanul meg akarjuk tartani a jelenlegi + változatot és törölni az újat. + Ezt alapvetõen nem javasoljuk, hacsak tényleg nem + látunk valamilyen okot erre. A &man.mergemaster.8; + parancssorában a ? + begépelésével bármikor + kérhetünk segítséget. Ha az + állomány kihagyását (skip) + választjuk, akkor majd ismét felajánlja, + amikor végeztünk az összes + többivel. + + A módosítatlan ideiglenes + állomány telepítésének + választásával lecseréljük a + jelenleg verziót az újra. Ha az aktuális + verziót sem változtattuk meg, akkor + számunkra ez a legjobb megoldás. + + Az állományok + összefésülésének + kiválasztásakor kapunk egy + szövegszerkesztõt, benne a két + állomány tartalmával. Ilyenkor tudjuk a + képernyõn soronként egyeztetni a két + állományt, majd a belõlük a + megfelelõ részek + összeválogatásával kialakítani + az eredményt. Ebben a feldolgozási módban + az l (mint left, vagyis bal) billentyû + lenyomására a bal oldalon látható + részt, az r (mint right, vagyis jobb) + lenyomására pedig a jobb oldalon + látható részt választjuk ki. Az + így keletkezõ eredményt ezután egy + állományba kerül, amelyet telepíteni + tudunk. Ez a megoldás olyan állományok + esetében használható, amikor a + felhasználó módosított az + alapértelmezett + beállításokat. + + Ha a &man.diff.1; szerinti alakban akarjuk + átnézni a különbségeket, akkor a + &man.mergemaster.8; ugyanúgy megmutatja ezeket, mint a + paranccsor megjelenítése elõtt. + + Miután a &man.mergemaster.8; végigment a + rendszerszintû állományokon, további + opciókat mutat. Megkérdezheti, hogy újra + létre akarjuk-e hozni a jelszavakat tároló + állományt (rebuild), illetve a folyamat + végén a megmaradt ideiglenes + állományok törlésére (remove) + vár választ. + + + + + Az állományok aktualizálása + kézzel + + Ha inkább manuálisan szeretnénk + frissíteni, akkor nem másolhatjuk csak + egyszerûen át az állományokat a + /usr/src/etc + könyvtárból a /etc + könyvtárba és nem hagyhatjuk ezeket + sorsukra. Egyes állományokat elõször + telepíteni kell. Ez azért van + így, mert a /usr/src/etc + könyvtár nem pusztán + az /etc könyvtár + egyszerû másolata. Ráadásul az + /etc könyvtárban vannak olyan + állományok, amelyek a + /usr/src/etc könyvtárban nem + is találhatóak meg. + + Ha (az ajánlottak szerint) a &man.mergemaster.8; + segítségével dolgozunk, nyugodtan + átléphetünk a következõ + szakaszra. + + Saját magunk a legegyszerûbben ezt úgy + tudjuk megoldani, ha telepítjük az + állományokat egy új + könyvtárba és ezután + nekiállunk változásokat keresni. + + + Az <filename>/etc</filename> meglevõ + tartalmának mentése + + Habár elméletileg magától + semmi sem fogja bántani ezt a könyvtárat, + azért ettõl függetlenül mindig + érdemes biztosra menni. Ezért másoljuk + az /etc könyvtár + tartalmát egy megbízható helyre. + Például: + + &prompt.root; cp -Rp /etc /etc.old + + Az itt a rekurzív + másolást jelenti, a pedig + a dátumok, az állományok és + egyebek tulajdoni viszonyainak + megõrzését. + + + Az /etc új + változatának telepítéséhez + szükségünk lesz még további + könyvtárakra is. Erre a feladatra a + /var/tmp/root tökéletesen + megfelel, ahol még létre kell hoznunk + néhány alkönyvtárat. + + &prompt.root; mkdir /var/tmp/root +&prompt.root; cd /usr/src/etc +&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution + + Ezzel létrejön a szükséges + könyvtárszerkezet és települnek az + állományok. Sok üres + alkönyvtár is keletkezik a + /var/tmp/root könyvtáron + belül, ezeket töröljük. Ezt a + legkönnyebben így tehetjük meg: + + &prompt.root; cd /var/tmp/root +&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null + + Ezzel törlõdnek az üres + könyvtárak. (A szabvány hibakimenetet + átirányítottuk a + /dev/null eszközre, és ezzel + elnyomtuk a nem üres könyvtárak esetén + keletkezõ hibaüzeneteket.) + + A /var/tmp/root most már + tartalmazza az összes olyan állományt, + amelyek normális esetben a / + könyvtáron belül foglalnak helyet. Ezt + követõen nincs más dolgunk, csak + végigmenni az itt található + állományokon és + megállapítani, miben térnek a + meglévõektõl. + + Vegyük észre, hogy a + /var/tmp/root könyvtárba + telepített állományok + némelyikének neve .-tal + kezdõdik. Az írás pillanatában ezek + csak a /var/tmp/root/ és + /var/tmp/root/root/ + könyvtárakban található + parancsértelmezõhöz tartozó + indító állományok lehetnek, + habár adódhatnak még ilyenek + (attól függõen, mikor olvassuk ezt). + Ezért a feldolgozásukhoz ne felejtsük el a + ls -a parancsot használni. + + A &man.diff.1; alkalmazásával + legegyszerûbben így tudunk + összehasonlítani két + állományt: + + &prompt.root; diff /etc/shells /var/tmp/root/etc/shells + + Ennek hatására megjelennek az + /etc/shells és az új + /var/tmp/root/etc/shells + állományok közti + különbségek. A + segítségével gyorsan el tudjuk + dönteni, hogy összefésüljük-e a + két állományt, vagy csak egyszerûen + írjuk felül a régebbi verziót az + újjal. + + + Az új könyvtár + (<filename>/var/tmp/root</filename>) nevébe + írjuk bele a dátumot is, így + könnyedén össze tudunk hasonlítani + több verziót is + + A rendszer gyakori újrafordítása az + /etc szintén gyakori + aktualizálását is maga után + vonja, ami viszont fárasztó lehet. + + Az iménti folyamatot fel tudjuk + gyorsítani, hogy ha az /etc + legutoljára összefésült + változatát megtartjuk. A most + következõ eljárás ennek + mikéntjét vázolja fel. + + + + A megszokottak szerint fordítsuk le a + rendszert. Majd amikor az /etc + könyvtárat és a többit is + frissíteni akarjuk, a célként + megadott könyvtár nevében adjuk meg a + dátumot. Ha tehát például + 1998. február 14. van, akkor írjuk + ezt: + + &prompt.root; mkdir /var/tmp/root-19980214 +&prompt.root; cd /usr/src/etc +&prompt.root; make DESTDIR=/var/tmp/root-19980214 \ + distrib-dirs distribution + + + + Fésüljük össze a + könyvtárban található az + állományokat a fentiekben + körvonalazottak szerint. + + Befejezés után + õrizzük meg a + /var/tmp/root-19980214 + könyvtárat. + + + + Mikor újra letöltjük a legfrissebb + forrásokat és megismételjük az + elõbbi lépéseket, haladjunk megint az + elsõ lépés szerint. Ekkor + tehát létrejön egy újabb + könyvtár, amelynek a neve ezúttal + már /var/tmp/root-19980221 + lesz (ha például hetente + frissítünk). + + + + Most már meg tudjuk vizsgálni a + közbeesõ héten született + eltéréseket, ha a két + könyvtárra kiadunk egy rekurzív + &man.diff.1; hívást: + + &prompt.root; cd /var/tmp +&prompt.root; diff -r root-19980214 root-19980221 + + Általában így kevesebb + eltérést kapunk, mint amennyi + például a + /var/tmp/root-19980221/etc/ + és az /etc + összehasonlítása során + elkerült volna. Mivel kisebb a keletkezett + különbségek száma, ezért + könnyebb lesz átvinnünk az + /etc könyvtárunkba is a + módosításokat. + + + + Ezután törölhetjük a + régebbi /var/tmp/root-* + könyvtárat: + + &prompt.root; rm -rf /var/tmp/root-19980214 + + + + Az /etc + összefésülésekor mindig + ismételjük meg ezeket a + lépéseket. + + + + A &man.date.1; meghívásával + akár automatikussá is tehetjük a + könyvtárak névadását: + + &prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"` + + + + + + + Újraindítás + + Ezzel készen is vagyunk. Miután + ellenõriztük, hogy minden a megfelelõ + helyére került, indítsuk újra a + rendszert. Ehhez egy egyszerû &man.shutdown.8; is + elegendõ: + + &prompt.root; shutdown -r now + + + + + Befejeztük! + + Gratulálunk, sikerült frissítenünk a + &os; rendszerünket. + + Ha mégis valami balul ütne ki, könnyen + újra tudjuk fordítani a rendszer egyes + részeit. Például, ha + véletlenül letöröltük az + /etc/magic állományt az + /etc frissítése vagy + összefésülése során, a + &man.file.1; parancs nem fog tudni rendesen mûködni. + Ilyenkor a következõket kell tennünk a hiba + kijavításához: + + &prompt.root; cd /usr/src/usr.bin/file +&prompt.root; make all install + + + + + Kérdések + + + + + Minden egyes változtatásnál + újra kell fordítani a rendszert? + + + + Nem könnyû választ adni erre a + kérdésre, mivel ez alapvetõen a + változtatás jellegétõl + függ. Például, ha elindítjuk a + CVSup programot és csak + az alábbi állományok + frissülnek: + + src/games/cribbage/instr.c +src/games/sail/pl_main.c +src/release/sysinstall/config.c +src/release/sysinstall/media.c +src/share/mk/bsd.port.mk + + Ekkor valószínûleg nem éri + meg újrafordítani a teljes rendszert. + Elegendõ csupán belépni az + érintett állományokat + tartalmazó alkönyvtárakba és ott + rendre kiadni a make all install + parancsot. Ha viszont már valami komolyabb, + például az + src/lib/libc/stdlib változott + meg, akkor vagy az egész rendszert, vagy + legalább azon részeit fordítsuk + újra, amely statikusan linkeltek (és minden + más idõközben még + hozzáadott statikusan linkelt dolgot). + + Hogy melyik megoldást választjuk, + teljesen rajtunk áll. + Újrafordíthatjuk az egész rendszert + kéthetente, mondván, hadd gyüljenek fel + szépen a módosítások, vagy a + függõségek pontos + kielemzésével csak azokat az elemeket + fordítjuk újra, amelyek tényleg meg + is változtak. + + Természetesen az egész attól + függ, hogy milyen gyakran és melyik rendszert, + a &os.stable;-t vagy a &os.current;-et + frissítjük. + + + + + + A fordító rengeteg 11-es jelzést + (signal 11) (vagy másfajta jelzéseket) dob + hibával. Mi történhetett? + + + signal 11 + + + Ez általában hardveres + meghibásodásra utal. A rendszer + újrafordítása alapjaiban véve + egy remek módszer + számítógépünk + alkatrészeinek terhelésére, + ezért gyakorta elõhozza a memória + már meglevõ hibáit. Ezek + többnyire abban fogalmazódnak meg, hogy a + fordító rejtélyes módon + leáll mindenféle furcsa jelzések + hatására. + + Errõl biztosan úgy tudunk + meggyõzõdni, ha újraindítjuk a + make programot és az a folyamat egy teljesen + másik pontján vérzik el. + + Ilyenkor nem tudunk mást tenni, mint + egymás után kicserélgetjük, + kivesszük az alkatrészeket és + így próbáljuk + megállapítani, pontosan melyikük is + okozza a gondokat. + + + + + + A fordítása befejezése + után törölhetem a + /usr/obj + könyvtárat? + + + + Röviden: Igen. + + A /usr/obj tartalmazza a + fordítás folyamata során + keletkezõ összes tárgykódot. + Ennek törlése általában a + make buildworld elsõ + lépései között szerepel. + Ezért tulajdonképpen a + /usr/obj megtartásának + nincs túlságosan sok értelme, viszont + elég sok (jelenleg úgy kb. 340 MB) + helyet fel tudunk így szabadítani. + + Ha azonban értjük a dolgunkat, akkor + megadhatjuk a make buildworld + parancsnak, hogy hagyja ki ezt a lépést. + Ennek hatására a fordítás + sokkal hamarabb véget ér, mivel a + legtöbb forrást így nem kell + újrafordítani. Üröm az + örömben, hogy ha netalán aprócska + függõségi problémák + merülnének fel, akkor az egész + fordítás megfeneklik mindenfelé + különös módokon. Emiatt gyakran + írnak feleslegesen leveleket a &os; + levelezési listáira, melyek a rendszer + sikertelen + újrafordításáról + panaszkodnak, miközben kiderül, hogy az maguk az + érintettek akarták lerövidíteni + a folyamatot. + + + + + + Lehetséges a megszakadt fordítás + folytatása? + + + + Ez attól függ, hogy a probléma + bekövetkezése elõtt mennyire + sikerült eljutni a fordításban. + + Általában + (tehát nem feltétlenül minden esetben) + a make buildworld lefordítja a + fordításhoz szükséges + eszközök (például a &man.gcc.1; + és &man.make.1;) újabb változatait + és a rendszer + függvénykönyvtárait, majd ezeket + telepíti. Ezután ezekkel az új + eszközökkel lefordítattja saját + magukat és ismét telepíti. Ezt + követõen fordítja újra az + új rendszerállományokkal az + egész rendszert (így ezúttal + már az olyan szokásos + felhasználói programokat is, mint + például az &man.ls.1; és a + &man.grep.1;). + + Ha tudjuk, hogy az utolsó fázisban + álltunk le (mivel megnéztük a + fordításhoz tartozó kimenetet), akkor + (minden további nélkül) elég + ennyi: + + … kijavítjuk a hibát … +&prompt.root; cd /usr/src +&prompt.root; make -DNO_CLEAN all + + Ezzel megmarad a korábbi make + buildworld munkájának + eredménye. + + Ha ezt az üzenetet látjuk a make + buildworld kimenetében: + + -------------------------------------------------------------- +Building everything.. +-------------------------------------------------------------- + + akkor különösebb gond + nélkül megcsinálhatjuk. + + Amennyiben viszont nem látunk ilyen + üzenetet, vagy nem vagyunk benne biztosak, akkor + még mindig jobb elõvigyázatosnak lenni, + ezért kénytelenek leszünk teljesen + elölrõl kezdeni a + fordítást. + + + + + + Hogyan tudjuk felgyorsítani a + fordítást? + + + + + + Futtassuk egyfelhasználós + módban. + + + + Tegyük a /usr/src + és /usr/obj + könyvtárakat külön + állományrendszerekre, külön + lemezekre. Sõt, ha lehetséges, akkor + ezeket a lemezeket tegyük külön + lemezvezérlõkre. + + + + Még mindig jobb, ha ezeket az + állományrendszereket a &man.ccd.4; + (lemezek összefûzését + vezérlõ meghajtó) + segítségével kiterjesztjük + több lemezes eszközre. + + + + Kapcsoljuk ki a profilozást (az + /etc/make.conf + állományban a + NO_PROFILE=true + megadásával). Többnyire úgy + sem lesz rá szükségünk. + + + + Az /etc/make.conf + állományban a CFLAGS + változót állítsuk az + értékre. Az + gyakran sokkal lassabb, az + és + alig tér el az optimalizálás + mértékében. A + paraméter + hatására pedig a + fordítóprogram átmeneti + állományok helyett csöveket + használ a kommunikációra, + és így megtakarít némi + lemezhasználatot (a + memóriahasználat terhére). + + + + Ha a &man.make.1; parancsnak átadjuk a + + paramétert, akkor képes több + mindent párhuzamosan futtatni. Ez sok esetben + segít attól függetlenül, hogy + egy- vagy többprocesszoros gépünk + van. + + + + A /usr/src + könyvtárat tartalmazó + állományrendszert csatlakoztathatjuk + (vagy újracsatlakoztathatjuk) a + + beállítással. Ilyenkor az + állományrendszer nem rögzíti + a hozzáférés idejét. Erre + az információra sincs + igazából + szükségünk. + + &prompt.root; mount -u -o noatime /usr/src + + + A fenti példa azt feltételezi, + hogy a /usr/src + könyvtárnak saját + állományrendszere van. Ha ez nem + így lenne (tehát például + a /usr része), akkor itt + azt kell megadnunk, nem pedig a + /usr/src nevét. + + + + + A /usr/obj + könyvtárat tartalmazó + állományrendszert csatlakoztathatjuk + (vagy újracsatlakoztathatjuk) az + + beállítással. Ennek + hatására a lemez írása + aszinkron módon történik. Magyarul + az írási mûveletek azonnal + befejezõdnek, miközben az adat + ténylegesen csak pár másodperccel + késõbb kerül ki a lemezre. Ezzel az + írási kérelmek + gyönyörûen + összegyûjthetõek, ami + nagymértékû növekedést + eredményez a + teljesítményben. + + + Ne felejtsük el azonban, hogy ezzel + együtt az + állományrendszerünk is + sérülékenyebbé + válik. Ezen beállítás + használatával megnõ annak az + esélye, hogy egy áramkimaradást + követõ indításnál az + állományrendszer + helyreállíthatatlan állapotba + kerül. + + Ha egyedül csak a + /usr/obj + található ezen az + állományrendszeren, akkor ez nem + jelent akkora veszélyt. Amikor viszont rajta + kívül még értékes + adat is található az + állományrendszeren, a + beállítás + érvényesítése elõtt + mindenképpen készítsünk + róla friss mentéseket. + + + &prompt.root; mount -u -o async /usr/obj + + + Ahogy arról az elõbb is szó + esett, ha a /usr/obj nem egy + különálló + állományrendszeren + található, akkor a + példában szereplõ + csatlakozási pontot cseréljük ki + a megfelelõre. + + + + + + + + + Mi tegyünk, ha valami nem megy rendesen? + + + + Egyértelmûen bizonyosodjunk meg + róla, hogy a korábbi + fordításokból nem maradtak vissza + semmiféle kóbor állományok. + Ennyi sokszor pontosan elég. + + &prompt.root; chflags -R noschg /usr/obj/usr +&prompt.root; rm -rf /usr/obj/usr +&prompt.root; cd /usr/src +&prompt.root; make cleandir +&prompt.root; make cleandir + + Igen, a make cleandir parancsot + tényleg kétszer kell kiadni. + + Ezután a make buildworld + parancstól indulva kezdjük újra a + fordítást. + + Ha még ezek után is fennáll a + probléma, küldjük el a hibát + tartalmazó kimenetet és a uname + -a parancs eredményét a + &a.questions; címére. Ne + lepõdjünk meg, ha a + beállításainkra vonatkozóan + még kapunk további kérdéseket + is! + + + + + + + + + + + + Mike + Meyer + Írta: + + + + + A források követése több + géppel + + + NFS + több gép + telepítése + + + Ha egyszerre több + számítógéppel is szeretnénk + követni ugyanannak a forrásfának a + változásait és ezért mindegyikre + letöltjük a forrásokat majd + újrafordítjuk ezeket, akkor sok + erõforrást, de leginkább lemezterületet, + hálózati sávszélességet + és processzoridõt, feleslegesen használunk. + Ezekkel úgy tudunk spórolni, ha + valójában csak egyetlen géppel + végeztetjük el a munka legtöbb + részét, miközben a többi NFS + használatával dolgozik. Ez a szakasz ezt a + módszert foglalja össze. + + + Elõkészületek + + Elõször is szedjük össze az egyezõ + binárisokat futtató gépeket, melyekre a + továbbiakban csak fordítási + csoport néven hivatkozunk. Minden + gépnek lehet saját rendszermagja, viszont a + felhasználói programok mindegyikõjük + esetében ugyanazok. Ebbõl a csoportból + válasszuk ki egy fordító + gépet. Ez lesz az a gép, amelyen a + rendszer és a rendszermag lefordításra + kerül. Ideális esetben ez a leggyorsabb gép, + amelynek elegendõ a processzorkapacitása arra, hogy + lefuttassa a make buildworld és + make buildkernel parancsokat. Érdemes + még rajta kívül kiválasztanunk egy + tesztelõ gépet is, ahol a + véglegesítés elõtt + kipróbálhatjuk a + szoftverfrissítéseket. Ennek egy olyan + gépnek kell lennie, amely + akár hosszabb ideig is nélkülözhetõ + a csoportból. Lehet akár maga a + fordítást végzõ gép is, de nem + elvárás. + + A fordítási csoportban levõ összes + gépnek ugyanarról a géprõl és + ugyanarra a pontra kell csatlakoztatnia a + /usr/obj és + /usr/src könyvtárakat. Ezek + optimális esetben a fordítással + foglalkozó gép két külön + lemezmeghajtóján vannak, melyek egyaránt + elérhetõek NFS-en keresztül. Ha több + fordítási csoportunk is van, akkor az + /usr/src könyvtárnak + elegendõ csak egyetlen fordító gépen + meglennie, a többi pedig csatlakoztassa NFS-en + keresztül. + + Végül gyõzödjünk meg róla, + hogy az /etc/make.conf tartalma a + fordítási csoport mindegyik + gépénél megegyezik a fordító + gépével. Ez azt jelenti, hogy a + fordító gépnek az alaprendszer ugyanazon + részeit és ugyanúgy kell létrehozni, + mint amelyet a fordítási csoport akármelyik + gépére telepíteni is akarunk. + Ezenkívül még a fordítási + csoportban levõ minden egyes gép + /etc/make.conf + állományában a KERNCONF + értékének a saját + rendszermagjára vonatkozó + konfigurációt kell megadni, illetve a + fordítással foglakozó gép + KERNCONF + változójánál pedig az együtt + összeset, a sajátjával kezdve. Ennek + megfelelõen a fordító gépnek a + rendszermagok lefordításához rendelkeznie + kell az egyes gépek + /usr/src/sys/arch/conf + könyvtárában meglevõ + állományaival. + + + + + Az alaprendszer + + Most, miután mindent megfelelõen + elõkészítettünk, készen + állunk a munkára. A ban leírtak szerint + fordítsuk le a rendszermagokat és az alaprendszert + a fordító gépen, de utána még + nem telepítsünk semmit se. Ha + befejezõdött a fordítás, + lépjünk be a tesztelõ gépre és + telepítsük a frissen fordított rendszermagot. + Ha ez a gép NFS-en keresztül éri a + /usr/src és + /usr/obj könyvtárakat, akkor az + egyfelhasználós módban aktiválni + kell a hálózatot, majd csatlakoztatni ezeket. Ezt + legkönnyebben úgy tudjuk megcsinálni, ha a + gépet elõször elindítjuk + többfelhasználós módban, majd a + shutdown now paranccsal + egyfelhasználós módba váltunk. Ha + eljuttunk ide, telepítsünk az új + rendszermagot és rendszert, illetve a megszokott + módon futtassuk a mergemaster + parancsot. Amikor ezt befejeztük, ezen a gépen + térjünk vissza a hétköznapi + többfelhasználós mûködési + módba. + + Miután a tesztelésre szánt gépen + ellenõriztük, hogy minden a megfelelõ + módon mûködik, az elõbb tárgyalt + eljárással telepítsük fel a + fordítási csoportban levõ összes + többi gépre is az új szoftvereket. + + + + + Portok + + Ugyanezt a gondolatmenet alkalmazható a portfa + esetében is. Az elsõ és egyben legfontosabb + lépés a /usr/ports + csatlakoztatása ugyanarról a géprõl a + fordítási csoport minden gépére. Az + /etc/make.conf megfelelõ + beállításával még a + terjesztési állományokat is meg tudjuk + osztani. A DISTDIR + értékét egy olyan közösen + használt könyvtárra állítsuk, + amely írható az NFS-en keresztül megosztott + állományrendszerünkben a + root felhasználóként + tevékenykedõk számára. A + WRKDIRPREFIX változót minden + gépen egy helyi fordítási + könyvtárra állítsuk. + Zárásképpen még + hozzátesszük, hogy ha csomagokat akarunk + készíteni és mások + számára is elérhetõvé tenni, + akkor ne felejtsük el a PACKAGES + változót a DISTDIR + változóhoz hasonlóan + beállítani. + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/desktop/Makefile b/hu_HU.ISO8859-2/books/handbook/desktop/Makefile new file mode 100644 index 0000000000..6dd222f080 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/desktop/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= desktop/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml new file mode 100644 index 0000000000..d0ec059e5c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml @@ -0,0 +1,1415 @@ + + + + + + + + Christophe + Juniet + Írta: + + + + + Asztali alkalmazások + + + Áttekintés + + A &os;-n asztali alkalmazások széles + spektrumát lehet futtatni, például + böngészõket és + szövegszerkesztõket. Legtöbbjük + csomagként áll rendelkezésre, illetve + automatizált módon lefordíthatóak a + Portgyûjteménybõl. Az új + felhasználók közül sokan + szeretnének ilyen fajta alkalmazásokat + használni, ezért ez a fejezet bemutatja, + miként lehet a népszerûbb asztali + alkalmazásokat minden különösebb + erõfeszítés nélkül + telepíteni, legyen szó az elõre csomagolt vagy + a Portgyûjteményben megtalálható + formájukról. + + Amikor portként telepítünk egy programot, + lényegében a forráskódját + fordítjuk le. Ez bizonyos esetekben nagyon sokáig + is eltarthat attól függõen, hogy pontosan mit is + fordítunk le, illetve mekkora az erre a célra + felhasznált számítógépünk + vagy számítógépeink + teljesítménye. Amennyiben a + fordításra nem tudunk vagy nem + kívánunk elegendõ idõt szánni, a + Portgyûjteményben található programok + többségét már elõre + lefordított csomagból is + telepíthetjük. + + Mivel a &os;-ben bináris szintû Linux + kompatibilitás is található, ezért az + eredetileg Linuxra fejlesztett alkalmazások is + használhatóak a munkakörnyezetünkben. + Azonban határozottan javasoljuk, hogy a linuxos + alkalmazások használatához elõször + figyelmesen olvassuk át a et. A + linuxos bináris kompabilitást használó + portok neve általában a linux- + elõtaggal kezdõdik, amit ne felejtsük el figyelembe + venni, amikor például a &man.whereis.1; + segítségével keressük valamelyiket. A + fejezet további részében + feltételezzük, hogy a linuxos alkalmazások + telepítése elõtt aktiváltuk a + bináris Linux kompatibilitást. + + Íme a fejezetben tárgyalt + kategóriák: + + + + Böngészõk (mint a + Mozilla, + Opera, + Firefox, + Konqueror) + + + + Irodai eszközök (mint a + KOffice, + AbiWord, The + GIMP, + OpenOffice.org) + + + + Dokumentum-megjelenítõk (mint az + &acrobat.reader;, + gv, + Xpdf, + GQview) + + + + Pénzügyi szoftverek (mint a + GnuCash, + Gnumeric, + Abacus) + + + + A fejezet elolvasásához ajánlott: + + + + a külsõ alkalmazások + telepítésének ismerete (); + + + + linuxos alkalmazások + telepítésének ismerete (). + + + + a multimédiás környezet + kialakítására vonatkozó + információkért a t + érdemes elolvasni. Az elektronikus levelezés + beállítását és + használatát a bõl + tudhatjuk meg. + + + + + Böngészõk + + + böngészõk + világháló + + + A &os;-vel együtt nem települ semmilyen + böngészõ. Helyette keressük meg a + Portgyûjteményben a www + könyvtárat, ahol ezzel szemben rengeteg + böngészõ áll telepítésre + készen. Ha nem lenne idõnk mindent lefordítani + (ami egyes esetekben akár rengeteg idõnkbe is + kerülhet), ezek csomagolt formában is + elérhetõek. + + A KDE-hez és a + GNOME-hoz eleve tartoznak + HTML-böngészõk. Ezen komplett + munkakörnyezetek beállításához a + t olvassuk el. + + Ha viszont csak egy kevés erõforrást + igénylõ böngészõkre vágyunk, + érdemes megnéznünk a + Portgyûjteményben található www/dillo, www/links vagy www/w3m portokat. + + Ez a rész az alábbi alkalmazásokat + említi: + + + + + + Alkalmazás + Erõforrásigény + Telepítés + forrásból + Fõbb függõségek + + + + + + Mozilla + sok + nehéz + Gtk+ + + + + Opera + kevés + könnyû + Vannak &os;-s és linuxos változatai is. + A linuxos verzió használatához + azonban szükség van a bináris Linux + kompatibilitásra és a + linux-openmotif portra. + + + + Firefox + közepes + nehéz + Gtk+ + + + + Konqueror + közepes + nehéz + A KDE + függvénykönyvtárai. + + + + + + + Mozilla + + Mozilla + + A Mozilla egy modern, + megbízható böngészõ, amelyet + sikeresen portoltak &os;-re. Ez egy nagyon jó, a + szabványoknak megfelelõ HTML-megjelenítõ + motorral rendelkezik, valamint hírolvasót + és levelezõ klienst is tartalmaz. Ezenfelül + találhatunk benne egy HTML-szerkesztõt is, ami + jól használható honlapok + készítéséhez. A + &netscape;-hez szokott + felhasználók felfedezhetnek némi + hasonlóságot a + Communicator programcsomaggal, mivel + ez a két böngészõ valaha egy és + ugyanaz volt. + + 233 MHz-nél lassabb processzorral vagy 64 + MB-nál kevesebb memóriával rendelkezõ + gépeken a kielégítõ + mûködéshez a Mozilla + erõforrásigényesnek tûnhet. Ebben az + esetben inkább érdemes a fejezet egy + késõbbi részében bemutatandó + Opera böngészõt + használni. + + Ha bármilyen okból nem akarjuk vagy nem tudjuk + lefordítani a Mozillat, + nyugodtan támaszkodhatunk a &os; GNOME csapatának + munkájára. Hálózaton keresztül + csomagból a következõ paranccsal tudjuk + telepíteni: + + &prompt.root; pkg_add -r mozilla + + Ha ez a csomag nem érhetõ el, de van + elegendõ idõnk és tárhelyünk, + letölthetjük a Mozilla + forrását is, amit aztán lefordítunk + és telepítünk. Ennek módja: + + &prompt.root; cd /usr/ports/www/mozilla +&prompt.root; make install clean + + A Mozilla portja a + root felhasználó jogaival + végzett regisztrációs + beállítások + érvényesítésével gondoskodik + a megfelelõ inicializálásról. Azonban + ha további kiegészítéseket is + szeretnénk még telepíteni, + például az egérmozdulatok + támogatását, magunknak kell + root felhasználóként + futtatni a Mozillat, hogy ezek + szabályosan telepítõdhessenek. + + Amint sikeresen befejezõdõtt a + Mozilla telepítése, + nincs szükség rá, hogy továbbra is + root felhasználók + legyünk. A Mozilla + böngészõt így tudjuk elindítani a + parancssorból: + + &prompt.user; mozilla + + Hírolvasóként és levelezõ + kliensként pedig az alábbi módon lehet + elindítani: + + &prompt.user; mozilla -mail + + + + + Firefox + + Firefox + + A Firefox a + Mozilla alapjaira + építkezõ, következõ + generációs böngészõ. A + Mozilla egy teljes programcsomag, + tehát böngészõ, levelezõ kliens, + csevegõkliens stb. A Firefox + azonban csak egy egyszerû böngészõ, aminek + köszönhetõen kisebb és gyorsabb is. + + Csomagból így telepíthetõ: + + &prompt.root; pkg_add -r firefox + + Ha forrásból szeretnénk felrakni, + használhatjuk a Portgyûjteményben + található portját is: + + &prompt.root; cd /usr/ports/www/firefox +&prompt.root; make install clean + + + + + Firefox, Mozilla és a &java; plugin + + + Ennél és a következõ + résznél feltételezzük, hogy + már korábban telepítettük a + Firefox vagy a + Mozilla alkalmazások + valamelyikét. + + + A &os; Alapítvány megegyezett a Sun + Microsystems-szel, hogy terjesztheti a &java; + futtatókörnyezet (&jre;) és a &java; + fejlesztõkörnyezet (&jdk;) &os;-re lefordított + bináris változatait. Ezek a csomagok + elérhetõek a &os; + Alapítvány + honlapjáról. + + Ha tehát &java;-támogatást + szeretnénk hozzáadni a + Firefox vagy a + Mozilla valamelyikéhez, + elsõként fel kell telepítenünk a + java/javavmwrapper portot. + Ezután le kell töltenünk a Diablo + &jre; csomagot a + címrõl, majd telepítenünk azt a + &man.pkg.add.1; segítségével. + + Indítsuk el a böngészõnket, + és írjuk be a címsorba, hogy + about:plugins és nyomjuk le az + Enter billentyût. Az + eredményül kapott oldalon láthatjuk az eddig + telepített pluginok listáját, ahol mostanra + már a &java; pluginnak is meg + kell jelennie. Amennyiben ez nem következne be, + root felhasználóként + adjuk ki az alábbi parancsot: + + &prompt.root; ln -s /usr/local/diablo-jre1.5.0/plugin/i386/ns7/libjavaplugin_oji.so \ + /usr/local/lib/browser_plugins/ + + Ezt követõen indítsuk újra a + böngészõnket. + + + + + + Firefox, Mozilla és a ¯omedia; &flash; + plugin + + A ¯omedia; &flash; plugin nem érhetõ el + közvetlenül &os;-re. Azonban létezik egy, a + plugin linuxos verziójára épített + szoftveres réteg (wrapper). Ez a wrapper még + többek közt az &adobe; &acrobat; és a + &realplayer; pluginjait is használhatóvá + teszi. + + Telepítsük fel a www/linuxpluginwrapper portot. A port + telepítése viszont maga után vonja a + emulators/linux_base + telepítését is, ami viszont egy nagyobb + port. Igyekezzünk minél pontosabban követni a + port telepítése során megjelenõ + utasításokat és minél jobban + beállítani a /etc/libmap.conf + állományt! Ehhez segítséget a + /usr/local/share/examples/linuxpluginwrapper/ + könyvtárban találhatunk. + + A következõ lépésben + telepítsük a www/linux-flashplugin7 portot. + Miután felkerült a plugin, indítsuk el a + böngészõt és írjuk be az + about:plugins sort a címsorba, majd + nyomjuk le az Enter billentyût. Az eddig + telepített pluginok felsorolása fog + megjelenni. + + Ha nem szerepel közte a &flash; plugin, akkor annak az + oka (legalább is az esetek + többségében) egy hiányzó + szimbolikus link. A pótlásához + root felhasználóként + adjuk ki a következõ parancsokat: + + &prompt.root; ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so \ + /usr/local/lib/browser_plugins/ +&prompt.root; ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt \ + /usr/local/lib/browser_plugins/ + + Ha most újraindítjuk a + böngészõt, a pluginnak meg kell jelennie az + elõbb említett listában. + + + A linuxpluginwrapper csak az + &i386; architektúrán mûködik. + + + + + + Opera + + Opera + + Az Opera egy sokoldalú + és szabványokkal kompatibilis + böngészõ. Tartalmaz beépített + levelezõ klienst és hírolvasót, + IRC-klienst, RSS/Atom-olvasót és még sok + mindent mást. Ennek ellenére az + Opera viszonylag + pehelysúlyúnak és gyorsnak + számít. Két fajta módon is + használható: létezik + natív &os;-s változata, valamint a + Linux emulációval futó + változata. + + Az Opera &os;-s + változatát a megfelelõ csomag + telepítésével érhetjük + el: + + &prompt.root; pkg_add -r opera + + Habár egyes FTP oldalakon nem található + meg az összes csomag, viszont a + Portgyûjteménybõl még ekkor is be tudjuk + szerezni az Operat: + + &prompt.root; cd /usr/ports/www/opera +&prompt.root; make install clean + + A linuxos Opera + telepítéséhez opera + helyett linux-opera nevet kell megadnunk a + fenti parancsokban. Ennek a verziónak a + használata akkor lehet elõnyös, ha olyan + plugineket akarunk elérni, amelyek csak Linuxra + léteznek. Ilyen például az + Adobe &acrobat.reader;. Ettõl + eltekintve azonban a &os;-s és a linuxos + változatok szinte teljesen megegyeznek. + + + + + Konqueror + + Konqueror + + A Konqueror a + KDE része, de a + használatához elegendõ, ha csak a x11/kdebase3 portot + telepítjük fel. A + Konqueror több, mint egy + egyszerû böngészõ: + állománykezelõ és + multimédiás nézegetõ is. + + Számtalan plugin áll rendelkezésre a + Konquerorhoz, melyeket a misc/konq-plugins portban + találunk meg. + + A Konqueror ismeri a + &flash;t is. A + &flash; és a + Konqueror kapcsolatával egy + külön Hogyan is foglalkozik, amelyet a + + címen olvashatunk el. + + + + + + Irodai eszközök + + Amikor irodai felhasználásról van + szó, az új felhasználók gyakorta + keresnek egy jó irodai programcsomagot vagy egy + barátságos szövegszerkesztõt. + Habár az egyes munkakörnyezetek, mint + például a KDE, gyakran + saját irodai eszközöket is tartalmaznak, &os; + alatt nincs alapértelmezett irodai programcsomag. A + rendszer a munkakörnyezetektõl függetlenül + igyekszik felkínálni mindazt, amire + szükségünk lehet. + + Ebben a részben a következõ + alkalmazásokról esik szó: + + + + + + Alkalmazás + Erõforrásigény + Telepítés + forrásból + Fõbb függõségek + + + + + + KOffice + kevés + nehéz + KDE + + + + AbiWord + kevés + könnyû + Gtk+ vagy + GNOME + + + + The Gimp + kevés + nehéz + Gtk+ + + + + OpenOffice.org + sok + nagyon nehéz + &jdk; 1.4, + Mozilla + + + + + + + KOffice + + KOffice + + irodai programcsomag + KOffice + + + A KDE közösség által kiadott + munkakörnyezethez társul egy irodai programcsomag + is, amely a KDE-tõl + függetlenül is használható. Tartalmazza + a többi irodai programcsomagban is + megtalálható négy szabványos + komponenst: a KWord + szövegszerkesztõt, a + KSpread táblazatkezelõt, + a KPresenter + prezentációkészítõt és + végezetül a Kontourt, + mellyel grafikus dokumentumokat tudunk + elkészíteni. + + A legfrissebb KOffice + telepítése elõtt bizonyosodjuk meg + róla, hogy a KDE legfrissebb + verziójával is rendelkezünk. + + Ha a KOffice-t csomagként + akarjuk telepíteni, akkor adjuk ki az alábbi + parancsot: + + &prompt.root; pkg_add -r koffice + + Amennyiben ez a csomag nem érhetõ el, + telepíthetjük a Portgyûjteménybõl + is. Például a KDE3-hoz + tartozó KOffice-t így + rakhatjuk fel: + + &prompt.root; cd /usr/ports/editors/koffice-kde3 +&prompt.root; make install clean + + + + + AbiWord + + AbiWord + + Az AbiWord egy szabad + szövegszerkesztõ program, a µsoft; + Word-höz hasonló kinézettel. + Remekül használható levelek, + beszámolók, feljegyzések, cikkek stb. + írásához. Nagyon gyors, rengeteg + funkciót ajánl fel, és kifejezetten + felhasználóbarát. + + Az AbiWord képes + többféle állományformátumba + exportálni és onnan importálni, + beleértve az olyan zárt formátumokat is, + mint például a µsoft; + .doc. + + Az AbiWord csomagból + telepíthetõ a következõ + módon: + + &prompt.root; pkg_add -r abiword + + Amennyiben ez a csomag nem érhetõ el, + lefordítható a Portgyûjteménybõl + is, ami ráadásul sokszor egy frissebb + verziót tartalmaz. Ezt így tudjuk + megtenni: + + &prompt.root; cd /usr/ports/editors/abiword +&prompt.root; make install clean + + + + + The GIMP + + The GIMP + + Képek készítésére vagy + retusálásra a The GIMP + a legfejlettebb képszerkesztõ program. + Egyszerû rajzolóprogram gyanánt is + használható, de akár minõségi + fényképretusálásra is. + Óriási mennyiségû plugin + található hozzá és magában + foglal egy szkriptes interfészt is. A The + GIMP formátumok széles + skáláját ismeri. Számos scanner + és digitális rajztábla + csatlakoztatható hozzá. + + A hozzátartozó csomag a következõ + módon telepíthetõ fel: + + &prompt.root; pkg_add -r gimp + + Ha a csomagoknak beállított FTP oldalon nem + található meg ez a csomag, + megpróbálkozhatunk vele a + Portgyûjteményen keresztül is. A + gyûjtemény graphics + könyvtárában ezen felül + fellelhetjük a The Gimp Manualt, + vagyis a The GIMP + kézikönyvét. Így kell ezeket innen + telepíteni: + + &prompt.root; cd /usr/ports/graphics/gimp +&prompt.root; make install clean +&prompt.root; cd /usr/ports/graphics/gimp-manual-pdf +&prompt.root; make install clean + + + A Portgyûjtemény graphics + könyvtárában a The + GIMP fejlesztõi változatával + is találkozhatunk a graphics/gimp-devel + alkönyvtárban. A The Gimp + Manual HTML változata pedig a graphics/gimp-manual-html + alkönyvtárban található. + + + + + + OpenOffice.org + + OpenOffice.org + + irodai programcsomag + OpenOffice.org + + + Az OpenOffice.org tartalmaz + minden olyan elengedhetetlenül fontos alkalmazást, + amelyek napjaink bármelyik irodájához + hozzátartoznak: egy szövegszerkesztõt, egy + táblázatkezelõt, egy + prezentációszerkesztõt és egy + rajzolóprogramot. A felhasználói + felülete nagyon hasonlít a többi irodai + programcsomagéhoz, és képes + többféle elterjedt + állományformátumot kezelni. Számos + különbözõ nyelven elérhetõ + — a honosítása kiterjed a felületekre, + helyesírás ellenõrzõkre és + szótárakra is. + + Az OpenOffice.org + szövegszerkesztõje natív XML + állományformátumot használ a + hordozhatóság és a rugalmasság + növeléséhez. A + táblázatkezelõje tartalmaz egy + makrónyelvet és könnyedén + összekapcsolható külsõ + adatbázisokkal. Az + OpenOffice.org natívan + és megbízhatóan fut &windows;-on, + &solaris;-on, &linux;-on, &os;-n és &macos; X-en. + Az OpenOffice.org-ról + bõvebb információt a projekt saját + honlapján találhatunk. A &os;-s + változatra vonatkozó információkat + és a csomagokat pedig a &os; OpenOffice.org + Porting Team honlapján lelhetjük meg. + + Az OpenOffice.org + telepítéséhez ennyit kell csak + beírni: + + &prompt.root; pkg_add -r openoffice.org + + + Ha a &os; -RELEASE ágát használjuk, + ennek mûködnie kell. Ettõl eltérõ + esetben érdemes egy pillantást vetni a &os; + OpenOffice.org Porting Team + honlapjára, ahonnan le tudjuk tölteni a + verziókhoz megfelelõ csomagot, amelyet + ezután a &man.pkg.add.1;-al fel is tudunk + telepíteni. A legfrissebb megbízható + és fejlesztõi változat egyaránt + elérhetõ errõl a helyrõl. + + + Ahogy sikerült feltelepíteni a csomagot, + egyszerûen csak be kell gépelni a + következõ parancsot az + OpenOffice.org + futtatásához: + + &prompt.user; openoffice.org + + + Az elsõ futtatás során + válaszolnunk kell még néhány + további kérdésre is, valamint a + felhasználói könyvtárunkban + keletkezik egy .openoffice.org2 + könyvtár. + + + Ha nem érhetõek el + OpenOffice.org csomagok, + lefordíthatjuk a forrását is. Azonban + mielõtt még ennek nekilátnánk, el kell + fogadnunk, hogy ez a mûvelet a lemezünkön + rettenetesen sok területet fog igényelni és + meglehetõsen sokáig tart. + + &prompt.root; cd /usr/ports/editors/openoffice.org-2 +&prompt.root; make install clean + + + Ha egy honosított verziót szeretnénk + fordítani, az utolsó parancs helyett + írjuk inkább ezt: + + &prompt.root; make LOCALIZED_LANG=nyelv install clean + + A nyelv helyett itt + természetesen a nyelvnek megfelelõ + ISO-kódot kell megadni. Az itt támogatott + nyelvek kódjának listája a port + könyvtárán belül, a + files/Makefile.localized + állományban található meg. + + + Ahogy a fordítás befejezõdött, az + OpenOffice.org így + indítható el parancssorból: + + &prompt.user; openoffice.org + + + + + + Dokumentum-megjelenítõk + + A &unix; megjelenése óta néhány + új népszerû dokumentumformátum is + felbukkant, melyek szabványos megjelenítõi nem + minden esetben részei az alaprendszernek. Ebben a + részben azt tekintjük át, hogyan lehet ilyen + megjelenítõket telepíteni. + + Ez a rész az alábbi alkalmazásokat + említi: + + + + + + Alkalmazás + Erõforrásigény + Telepítés + forrásból + Fõbb függõségek + + + + + + &acrobat.reader; + kevés + könnyû + Bináris Linux kompatibilitás + + + + gv + kevés + könnyû + Xaw3d + + + + Xpdf + kevés + könnyû + FreeType + + + + GQview + kevés + könnyû + Gtk+ vagy + GNOME + + + + + + + &acrobat.reader; + + Acrobat Reader + + + PDF + megjelenítõ + + + A dokumentumok többsége manapság PDF + (Portable Document Format, avagy hordozható + dokumentumformátum) állományok + formájában terjed. Az ilyen típusú + állományok megnézésére az + egyik legalkalmasabb alkalmazás az + &acrobat.reader;, melyet az Adobe + adott ki Linuxra. De mivel a &os; képes Linux + binárisok futtatására, ezért + így &os;-re is elérhetõ. + + Ha az &acrobat.reader; 7-et a + Portgyûjteménybõl akarjuk telepíteni, + akkor írjuk be: + + &prompt.root; cd /usr/ports/print/acroread7 +&prompt.root; make install clean + + Licencelési megszorítások miatt csomag + nem áll rendelkezésre. + + + + + gv + + gv + + PDF + megjelenítõ + + + PostScript + megjelenítõ + + + A gv egy &postscript; és + PDF megjelenítõ. Eredetileg a + ghostview alapján + készült, de a Xaw3d-nek + köszönhetõen sokkal szebben néz ki. Gyors + és az felülete letisztult. A + gv sok mindent tud, többek + közt beállítható benne a dokumentum + tájolása, a papírméret, + skálázás és az + élsimítás. Szinte bármelyik + mûvelet elvégezhetõ csak + billentyûzetrõl vagy egérrel. + + A gv csomagjának + telepítéséhez a következõ + parancsot használhatjuk: + + &prompt.root; pkg_add -r gv + + Ha pedig nem tudjuk letölteni a csomagot, + használhatjuk a Portgyûjteményt is: + + &prompt.root; cd /usr/ports/print/gv +&prompt.root; make install clean + + + + + Xpdf + + Xpdf + + PDF + megjelenítõ + + + Ha egy egyszerû &os;-s PDF megjelenítõre + lenne szükségünk, erre a célra az + Xpdf pontosan megfelel. Nagyon + kevés erõforrást igényel és + nagyon megbízható. A szabványos X-beli + betûtípusokat használja, és nincs + szüksége sem a &motif;ra, + sem pedig más X-es eszközkészletre. + + Az Xpdf csomagjának + felrakásához az alábbi parancs + javasolt: + + &prompt.root; pkg_add -r xpdf + + Amennyiben nem áll rendelkezésre az + említett csomag, vagy egyszerûen csak a + Portgyûjteménybõl szeretnénk felrakni, + adjuk ki ezeket a parancsokat: + + &prompt.root; cd /usr/ports/graphics/xpdf +&prompt.root; make install clean + + Ahogy a telepítés befejezõdik, már + el is indíthatjuk az Xpdf + alkalmazást, ahol a jobb egérgombbal tudjuk + aktiválni a menüt. + + + + + GQview + + GQview + + A GQview egy + képkezelõ. Állományokat tudunk + megnyitni benne egyetlen kattintással, külsõ + szerkesztõprogramot tudunk indítani vagy akár + még a képek kicsinyített változatait + is láthatjuk és így tovább. + Megtalálható benne a diavetítés + és az alapvetõ állománymûveletek. + Képgyûjteményeket is kezelhetünk + és könnyedén megtalálhatjuk a + bennük levõ képek között az + egyezõeket. A GQview teljes + képernyõs nézegetést is megenged, + illetve támogatja a honosítást. + + A GQview csomag + telepítéséhez ezt a parancsot kell + kiadni: + + &prompt.root; pkg_add -r gqview + + Amikor ez a csomag nem tölthetõ le, vagy amikor + inkább a Portgyûjteménybõl + szeretnénk felrakni, ezt írjuk be: + + &prompt.root; cd /usr/ports/graphics/gqview +&prompt.root; make install clean + + + + + + Pénzügyi szoftverek + + Ha bármilyen ok folytán a &os;-vel + szeretnénk kezeli személyes + pénzügyeinket, akadnak olyan kellõen komoly + és könnyen kezelhetõ alkalmazások, amelyek + csak a telepítésükre várnak. + Néhányuk közülük kompatibilis az + elterjedtebb állományformátumokkal, mint + például amiben a Quicken és az + Excel is tárolja az + adatait. + + Ebben a részben az alábbi programokat + vesszük sorra: + + + + + + Alkalmazás + Erõforrásigény + Telepítés + forrásból + Fõbb függõségek + + + + + + GnuCash + kevés + nehéz + GNOME + + + + Gnumeric + kevés + nehéz + GNOME + + + + Abacus + kevés + könnyû + Tcl/Tk + + + + KMyMoney + kevés + nehéz + KDE + + + + + + + GnuCash + + GnuCash + + + A GnuCash a + GNOME része, és egy + felhasználóbarát, mégis + hatékony eszközt ad a felhasználók + kezébe. A GnuCash + segítségével nyilván tudjuk tartani + a bevételeinket és kiadásainkat, + bankszámláinkat és befektetéseinket. + Felülete intuitív, miközben továbbra is + professzionális minõségû. + + A GnuCash-ben + megtalálhatunk egy intelligens + nyilvántartást, a számlák + hierarchikus rendszerét, és számtalan + billentyûkombinációt és automatikus + kiegészítést, amivel felgyorsul a + munkánk. Egyetlen tranzakciót képes + felbontani több kisebb és részletesebb + elemre. A GnuCash képes + importálni és exportálni a + Quicken QIF típusú + állományait. Ezen kívül még + kezeli a legtöbb nemzetközi + dátumformátumot és pénznemet. + + A GnuCash-t az alábbi + módon tudjuk telepíteni a + rendszerünkre: + + &prompt.root; pkg_add -r gnucash + + Ha ez a csomag nem érhetõ el, + használhatjuk a Portgyûjteményt is: + + &prompt.root; cd /usr/ports/finance/gnucash +&prompt.root; make install clean + + + + + Gnumeric + + Gnumeric + + táblázatkezelõ + Gnumeric + + + A Gnumeric egy + táblázatkezelõ program, a + GNOME munkakörnyezet + része. Sok esetben képes a helyzethez + alkalmazkodva automatikusan kitalálni a + felhasználó gondolatait a cellák + formátumának megfelelõ automatikus + kiegészítõ rendszerével. Be tud + olvasni számos népszerûbb formátumot, + mint például az Excel, + Lotus 1-2-3 vagy a + Quattro Pro + állományait. A math/guppi + grafikonkészítõ programon keresztül + támogatja grafikonok rajzolását is. Nagy + számú beépített funkcióval + rendelkezik, és ismeri az összes megszokott + cellaformátumot, legyen az szám, pénznem, + dátum, idõ vagy bármi más. + + A Gnumeric + telepítését az alábbi paranccsal + adhatjuk ki: + + &prompt.root; pkg_add -r gnumeric + + Ha valamiért nem érhetõ el ez a csomag, a + Portgyûjteménybõl is fel tudjuk rakni: + + &prompt.root; cd /usr/ports/math/gnumeric +&prompt.root; make install clean + + + + + Abacus + + Abacus + + táblázatkezelõ + Abacus + + + Az Abacus egy kicsi és + egyszerûen használható + táblázatkezelõ program. Számos olyan + funkciót tartalmaz beépítve, amelyek + kifejezetten hasznosnak bizonyulhatnak a statisztika, + pénzügyek és a matematika + területén. Importálni és + exportálni tudja az Excel + állományformátumát is. Az + Abacus még &postscript; + formátumú kimenetet is tud + készíteni. + + Az Abacus + telepítéséhez csupán ennyit kell + tennünk: + + &prompt.root; pkg_add -r abacus + + Amennyiben viszont nem érhetõ el ez a csomag, + használhatjuk a Portgyûjteményt is: + + &prompt.root; cd /usr/ports/deskutils/abacus +&prompt.root; make install clean + + + + + KMyMoney + + KMyMoney + + táblázatkezelõ + KMyMoney + + + A KMyMoney a + KDE részeként + kifejlesztett személyi pénzügyi + nyilvántartó. A + KMyMoney igyekszik az összes + kereskedelmi pénzügyi nyilvántartó + programban megtalálható fontosabb + lehetõséget magában foglalni és + rendelkezésre bocsátani. Mindezek mellett egy + könnyen használható és nagyon + ügyes kettõs könyvelést is + találhatunk benne. A KMyMoney + képes beolvasni a szabványos Quicken Interchange + Format (QIF) szerint készült + állományokat, követni a + befektetéseket, többféle pénznemet + kezelni és sok fajta kimutatást tudunk vele + készíteni. A megfelelõ + bõvítmény hozzáadásával + még az OFX formátumú + állományok olvasására is + alkalmas. + + A KMyMoney csomagként + így telepíthetõ: + + &prompt.root; pkg_add -r kmymoney2 + + Ha ez a csomag nem érhetõ el, akkor a + Portgyûjteményen keresztül is fel tudjuk + rakni: + + &prompt.root; cd /usr/ports/finance/kmymoney2 +&prompt.root; make install clean + + + + + + Összefoglalás + + Miközben a &os; igen népszerû az + internetszolgáltatók körében a + teljesítménye és + megbízhatósága révén, a + hétköznapi használatban is remekül + beválik. Többezernyi olyan alkalmazás + érhetõ el hozzá csomagként + vagy portként, + amelyekkel az igényeinknek megfelelõ + munkakörnyezetet tudjuk kiépíteni. + + Íme egy rövidke emlékeztetõ + azokról az asztali alkalmazásokról, melyeket + a fejezetben tárgyaltunk: + + + + + + Alkalmazás + Csomag + Port + + + + + + Mozilla + mozilla + www/mozilla + + + + Opera + opera + www/opera + + + + Firefox + firefox + www/firefox + + + + KOffice + koffice-kde3 + editors/koffice-kde3 + + + + AbiWord + abiword + editors/abiword + + + + The GIMP + gimp + graphics/gimp + + + + OpenOffice.org + openoffice + editors/openoffice-1.1 + + + + &acrobat.reader; + acroread + print/acroread7 + + + + gv + gv + print/gv + + + + Xpdf + xpdf + graphics/xpdf + + + + GQview + gqview + graphics/gqview + + + + GnuCash + gnucash + finance/gnucash + + + + Gnumeric + gnumeric + math/gnumeric + + + + Abacus + abacus + deskutils/abacus + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/disks/Makefile b/hu_HU.ISO8859-2/books/handbook/disks/Makefile new file mode 100644 index 0000000000..140975c79e --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/disks/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= disks/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml new file mode 100644 index 0000000000..5b9594140c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml @@ -0,0 +1,5836 @@ + + + + + + Háttértárak + + + Áttekintés + + Ez a fejezet arról szól, hogy miként + használjuk a lemezeinket a &os;-vel. Itt többek + közt szó esik a memória (alapú) + lemezekrõl, a hálózaton keresztül + csatlakoztatott meghajtókról, a szabványos + SCSI/IDE tárolóeszközökrõl és + az USB felületet használó + eszközökrõl. + + A fejezet elolvasása során + megismerjük: + + + + a &os; által alkalmazott + terminológiát, amivel a fizikai lemezeken + elhelyezkedõ adatokat írja le + (partíciók és slice-ok); + + + hogyan bõvítsük rendszerünket + további merevlemezekkel; + + + hogyan állítsuk be a &os;-t USB + tárolóeszközök + használatára; + + + hogyan állítsunk be virtuális + állományrendszereket, például + memórialemezeket; + + + hogyan használjuk a kvótákat a + lemezterület használatának + korlátozására; + + + hogyan védjüket meg lemezeinket + titkosítással az + illetéktelenektõl; + + + &os; alatt hogyan készítsünk és + írjuk CD-ket, DVD-ket; + + + a biztonsági mentések + készítésének + különbözõ lehetõségeit; + + + hogyan használjuk a &os; alatt + rendelkezésünkre álló, + biztonsági mentést készítõ + programokat; + + + hogyan mentsünk floppy lemezekre; + + + mik az állományrendszerek + pillanatképei és hogyan kell ezeket + hatékonyan használni. + + + + A fejezet elolvasásához ajánlott: + + + + a &os; rendszermag + beállításának és + telepítésének ismerete () + + + + + + + Az eszközök elnevezései + + A most következõ listában felsoroljuk a &os; + által ismert fizikai + tárolóeszközöket és a + hozzájuk tartozó elnevezéseket. + + + A fizikai lemezek elnevezésének + szabályai + + + + + A meghajtó típusa + A meghajtóeszköz neve + + + + + IDE merevlemezek + ad + + + IDE CD-meghajtók + acd + + + SCSI merevlemezek és USB + tárolóeszközök + da + + + SCSI CD-meghajtók + cd + + + Különbözõ nem szabványos + CD-meghajtók + mcd (Mitsumi CD-ROM) és + scd (Sony CD-ROM) + + + + Floppy meghajtók + fd + + + SCSI szalagos meghajtók + sa + + + IDE szalagos meghajtók + ast + + + Flash meghajtó + fla (&diskonchip; Flash + eszköz) + + + RAID meghajtók + aacd (&adaptec; AdvancedRAID), + mlxd és mlyd + (&mylex;), amrd (AMI &megaraid;), + idad (Compaq Smart RAID), + twed (&tm.3ware; RAID). + + + +
+ +
+ + + + + + David + O'Brien + Eredetileg írta: + + + + + Lemezek hozzáadása + + + lemezek + hozzáadás + + + Tegyük fel, hogy a jelenleg egyetlen meghajtót + tartalmazó rendszerünket szeretnénk + bõvíteni egy új SCSI-lemez + hozzáadásával. Ehhez elsõként + kapcsoljuk ki a számítógépünket + és szereljük be a helyére az új + meghajtót a számítógép, a + lemezvezérlõ és a meghajtó + gyártójának utasításai + alapján. Mivel ezt a mûveletet rengeteg módon + lehet elvégezni, ezért ennek pontos + részleteivel ez a leírás most nem + foglalkozik. + + Jelentkezzünk be root + felhasználóként. Miután + beszereltük a meghajtót, a + /var/run/dmesg.boot állomány + végignézésével bizonyosodjuk meg + róla, hogy a rendszer valóban megtalálta a + lemezt. A példánk szerint ez a meghajtó + tehát a da1 nevet fogja viselni, + amelyet a /1 könyvtárba akarunk + csatlakoztatni (ha IDE-meghajtót telepítünk, + akkor a hozzátartozó eszköz neve + ad1 lesz). + + partíciók + slice-ok + fdisk + + Mivel a &os; IBM PC kompatibilis + számítógépeken fut, ezért nem + szabad figyelmen kívül hagynunk a PC BIOS + partícióit is. Ezek eltérnek a + hagyományos BSD partícióktól. Egy + PC-s lemeznek négy BIOS-os + partícióbejegyzése lehet. Ha egy lemezt + tényleg csak a &os;-nek szánunk, akkor + használhatjuk az ún. + dedikált módot. Minden + más esetben a &os;-nek egy PC BIOS + partícióban kell elhelyezkednie. A &os; a PC BIOS + partícióit slice-nak nevezi, + ezzel különbözteti ezeket a hagyományos BSD + partícióktól. Dedikált esetekben is + használhatjuk, de elsõsorban akkor kap fontosabb + szerepet, amikor a &os;-nek más operációs + rendszerekkel kell megosztani a helyet. Ezzel el tudjuk + kerülni, hogy a más operációs + rendszerekben megtalálható, nem &os; alapú + fdisk parancs megzavarodjon. + + A slice-ok használatakor a meghajtó + /dev/da1s1e néven kerül + hozzáadásra. Így kell olvasni: egyes SCSI + lemezes egység (második SCSI lemez), elsõ slice + (elsõ PC BIOS partíció) és + e BSD partíció. A + dedikált esetben a meghajtó neve viszont + egyszerûen csak /dev/da1e. + + Mivel a &man.bsdlabel.8; 32 bites egész számokat + használ a szektorok számának + tárolására, ezért lemezenként + csak 2^32-1 szektort tud ábrázolni, ami az esetek + többségében 2 TB méretû + címezhetõ területet jelent. Az &man.fdisk.8; + formátuma szerint sem a kezdõszektor, sem a hossz nem + lehet 2^32-1-nél több, amivel így a + partíciókat 2 TB, a lemezeket pedig 4 TB + méretûre korlátozza. A &man.sunlabel.8; + formátuma partíciónként 2^32-1 + szektort enged meg és összesen 8 + partíciót, amely ezáltal 16 TB + terület lefedését teszi lehetõvé. + Nagyobb lemezekhez &man.gpt.8; partíciók + használatosak. + + + A &man.sysinstall.8; használatával + + + sysinstall + lemezek hozzáadása + + su + + + + Közlekedés a + <application>sysinstall</application> programban + + A sysinstall könnyen + használható menüinek + segítségével az új lemezen + pillanatok alatt létre tudunk hozni + partíciókat és + megcímkézni ezeket. Ehhez vagy + root + felhasználóként jelentkezzünk be a + rendszerbe, vagy adjuk ki a su parancsot. + A sysinstall parancs kiadása + után lépjünk be a + Configure + (Beállítások) menübe. A + &os; Configuration Menu menüben + ezután keressük meg és válasszuk + ki az Fdisk menüpontot. + + + + Az <application>fdisk</application> + partíciószerkesztõ + + Miután eljutottunk az + fdisk alkalmazáshoz, az + A lenyomásával + felajánlhatjuk az egész lemezt a &os; + számára. Amikor elõkerül a + kérdés, hogy remain cooperative with + any future possible operating systems + (mûködõképes maradjon-e a + késõbbiekben telepítendõ + operációs rendszerekkel), akkor + válaszoljuk rá YES-szel + (tehát igen). A W gomb + lenyomásával írjuk a lemezre a most + elvégzett változtatásokat. + Ezután már a Q + használatával ki is léphetünk az + FDISK szerkesztõbõl. A következõ + lépésben a Master Boot + Record-ról fognak minket megkérdezni. + Mivel most egy már mûködõ rendszert + bõvítünk, ezért a válaszunk + erre None lesz. + + + + A lemezcímkék szerkesztése + + BSD + partíciók + + Most lépjünk ki a + sysinstall + alkalmazásból és indítsuk el + újra. Kövessük az iménti + útmutatásokat, de ezúttal a + Label menüpontot válasszuk + ki. Ezzel a Disk Label Editor-ba vagyis + a lemezcímkék szerkesztõjéhez + jutunk. Itt fogjuk létrehozni a hagyományos + BSD partíciókat. Egy lemezen nyolc ilyen + partíció lehet, + a-tól h-ig. + Közülük néhány + partíció címkéjét + megkülönböztetjük. Az + a partíció jelöli a + rendszer indításához használt + partíciót, a + gyökérpartíciót + (/). Tehát a + partíció csak a rendszerlemezünkön + szerepelhet (tehát ahonnan indul a rendszer). A + b partíció a + lapozáshoz használt partíciókat + jelöli és több lemezen is szerepelhet. A + c partíción keresztül + lehet elérni az egészt lemezt dedikált + módban vagy az egész &os; slice-ot slice + módban. A többi partíció + tetszõlegesen felhasználható. + + A sysinstall + címkeszerkesztõje az e + betûvel szereti megjelölni a sem nem + rendszerindító, sem nem lapozó + partíciókat. A címkeszerkesztõben + egyetlen állományrendszert a + C lenyomásával lehet + készíteni. Amikor erre válaszul + megkérdezi a típusát (FS + (állományrendszer) vagy swap + (lapozóterület) legyen), akkor válasszuk + az FS beállítást + és adjuk meg a csatlakozási pontját + (például /mnt). Amikor a + lemezt telepítés után (post-install) + adjuk hozzá, akkor a + sysinstall + valójában nem hoz létre hozzá + bejegyzéseket az /etc/fstab + állományban, ezért a + csatlakozási pont megadása nem is + feltétlenül fontos. + + Most már készen állunk arra, hogy + rögzítsük az új címkét + a lemezre és létrehozzunk vele egy + állományrendszert. Ehhez nyomjuk le a + W gombot. Ne foglalkozzunk vele, ha a + sysinstall nem képes + csatlakoztatni az új partíciót. Ha + ezzel megvagyunk, akkor lépjünk ki a + címkeszerkesztõbõl és a + sysinstallból is. + + + + Befejezés + + Most már csak annyi teendõnk maradt, hogy + felvegyük az /etc/fstab + állományba az új lemezhez + tartozó bejegyzést. + + + + + + Parancssoros eszközök + használatával + + + Slice módban + + Ezzel a beállítással a + lemezünkre késõbb más + operációs rendszereket is + telepíthetünk, és nem okoz gondot a + saját fdisk segédprogramjaik + mûködésében. Az új lemezek + telepítésénél ezt a módszer + ajánlatos követni. A dedikált módot + viszont csak abban az esetben használjuk, ha erre + nyomós okunk van! + + &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 +&prompt.root; fdisk -BI da1 # inicializáljuk az új lemezt +&prompt.root; bsdlabel -B -w da1s1 auto # címkézzük meg +&prompt.root; bsdlabel -e da1s1 # szerkeszzük át a frissen létrehozott címkét és vegyünk fel egy új partíciót +&prompt.root; mkdir -p /1 +&prompt.root; newfs /dev/da1s1e # ismételjük meg minden létrehozott partícióhoz +&prompt.root; mount /dev/da1s1e /1 # csatlakoztassuk a partíció(ka)t +&prompt.root; vi /etc/fstab # vegyük fel a megfelelõ bejegyzés(eke)t az /etc/fstab állományba + + IDE-lemezek esetén azad + eszközt a da eszközzel + helyettesítsük. + + + + + Dedikált módban + + OS/2 + + Amennyiben az új meghajtót nem akarjuk + megosztani egyetlen más operációs + rendszerrel sem, használhatjuk a + dedicated (dedikált) módot. + Ne felejtsük el azonban, hogy ez képes + összezavarni a Microsoft operációs + rendszereit, habár ebbõl semmilyen kárunk + nem fog származni. Az IBM &os2; + operációs rendszere azonban + kisajátít minden olyan + partíciót, amelyet nem tud olvasni. + + &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 +&prompt.root; bsdlabel -Bw da1 auto +&prompt.root; bsdlabel -e da1 # létrehozzuk az `e' partíciót +&prompt.root; newfs /dev/da1e +&prompt.root; mkdir -p /1 +&prompt.root; vi /etc/fstab # felvesszük a /dev/da1e partíciót +&prompt.root; mount /1 + + Egy másik megoldás: + + &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 +&prompt.root; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin +&prompt.root; newfs /dev/da1e +&prompt.root; mkdir -p /1 +&prompt.root; vi /etc/fstab # felvesszük a /dev/da1e partíciót +&prompt.root; mount /1 + + + + + + + RAID + + + Szoftveres RAID + + + + + + Christopher + Shumway + Eredetileg készítette: + + + + + Jim + Brown + Ellenõrizte: + + + + + RAIDszoftveres + RAIDCCD + + Összefûzött lemezek + beállítása + + A nagyobb méretû + háttértárolók + kiválasztásánál a legfontosabb + tényezõk a sebesség, + megbízhatóság és a + költség. Nagyon ritkán lehet csak ezt a + hármat egyensúlyba hozni: + általában a gyors és + megbízható + tárolóeszközök sok pénzbe + kerülnek, valamint a költségek + megtakarításához vagy a sebességet + vagy pedig a megbízhatóságot kell + feláldoznunk. + + A továbbiakban egy olyan rendszert mutatunk be, + ahol a elsõsorban a költségek, majd csak + ezután a sebesség és + megbízhatóság kerültek + elõtérben. A rendszer adatátviteli + sebességét a hálózat + korlátozza. Habár emellett a + megbízhatóság is nagyon fontos, a + tárgyalt összefûzött meghajtó + (Concenated Disk, CCD) csak adatokat szolgáltat + és a teljes tartalma bármikor + visszaállítható, mivel + rendelkezésre áll CD-n. + + A feladat elvégzésére alkalmas + háttértároló + kiválasztásában elsõként a + saját elvárásainkat kell tudnunk + megfogalmazni. Ha nekünk jobban számít az + árnál a sebesség vagy a + megbízhatóság, akkor a + mostaniaktól némileg eltérõ + konfigurációt kell majd + építenünk. + + + A hardver telepítése + + A rendszert tartalmazó IDE-lemez mellett + három darab, egyenként 30 GB-os 5400-as + percenkénti fordulatszámú Western + Digital gyártmányú merevlemez alkotja + majd a létrehozni kívánt, kb. + 90 GB összméretû + összefûzött lemezt. Ideális esetben + minden IDE-lemez saját külön + vezérlõn és kábelen van, de a + költségek csökkentése miatt nem + használtunk további + IDE-vezérlõket. Ehelyett inkább + jumperekkel úgy állítottuk be a + lemezeket, hogy minden vezérlõre egy mester + (master) és egy szolga (slave) módú + merevlemez kapcsolódjon. + + A beszerelés után + beállítottuk a rendszer BIOS-át, hogy + automatikusan felismerje a csatlakoztatott lemezeket. De + ami még fontosabb, hogy a &os; is észlelte + ezeket az indítás során: + + ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 +ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 +ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 +ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 + + + Ha a &os; nem látná az összes + lemezt, akkor ellenõrizzük a jumperek helyes + beállítását. Napjainkban a + legtöbb IDE-meghajtón találunk egy + Cable Select jumpert is. Ezzel + nem a mester/szolga módot + állítjuk be! A megfelelõ jumper + beazonosításához olvassuk el a + meghajtóhoz tartozó + dokumentációt. + + + A következõ lépésben azt + vesszük nagyító alá, hogyan lehet + ezeket az állományrendszer + részévé tenni. Ezzel kapcsolatban a + &man.vinum.8; () és a + &man.ccd.4; elolvasása ajánlatos. Erre a + célra itt most a &man.ccd.4; + használatát választottuk. + + + + + A CCD beállítása + + A &man.ccd.4; meghajtó + segítségével több ugyanolyan + lemezt tudunk összefûzni egyetlen logikai + állományrendszerré. A &man.ccd.4; + használatához arra is + szükségünk van, hogy a &man.ccd.4; + támogatása jelen legyen a rendszermagban. A + következõ sor tegyük bele a rendszermag + konfigurációs + állományába, fordítsuk + újra és telepítsük a + rendszermagot: + + device ccd + + A &man.ccd.4; támogatása modulként + is betölthetõ. + + A &man.ccd.4; beállításához + elõször a &man.bsdlabel.8; programmal meg fel kell + címkéznünk a lemezeket: + + bsdlabel -w ad1 auto +bsdlabel -w ad2 auto +bsdlabel -w ad3 auto + + Így létrejön egy-egy BSD + típusú címke a + ad1c, ad2c + és ad3c + eszközökre, amely így lefedi a lemez + egész területét. + + Most pedig változtassuk meg a lemezcímke + típusát. Ehhez használjuk ismét + a &man.bsdlabel.8; programot: + + bsdlabel -e ad1 +bsdlabel -e ad2 +bsdlabel -e ad3 + + Az EDITOR környezeti + változóban megadott + szövegszerkesztõvel (ez általában a + &man.vi.1;) megnyílik minden egyes lemezhez a + jelenlegi lemezcímke. + + Egy módosítatlan lemezcímke + valahogy így néz ki: + + 8 partitions: +# size offset fstype [fsize bsize bps/cpg] + c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) + + A &man.ccd.4; számára hozzunk létre + egy új e partíciót. + Ezt lényegében a c + partíció lemásolásával + keletkezik, de nála az (az + állományrendszer típusa) oszlopban + mindenképpen 4.2BSD + szerepeljen! A lemezcímke most már valahogy + így fog kinézni: + + 8 partitions: +# size offset fstype [fsize bsize bps/cpg] + c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) + e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) + + + + + Az állományrendszer + kiépítése + + Most, miután felcímkéztük az + összes lemezünket, lássunk neki a + &man.ccd.4; kiépítésének. Ezt a + &man.ccdconfig.8; meghívásával + és az alábbihoz hasonló + paraméterek átadásával + tehetjük meg: + + ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e + + A paraméterek rövid leírása + és használata: + + + + Az elsõ paraméter a + létrehozandó eszköz, ami jelen + esetünkben a /dev/ccd0c. A + /dev/ részt nem + kötelezõ megadni. + + + + A kihagyás nagysága az + állományrendszerben. A kihagyás + határozza meg a lemezblokkban alkalmazott + csíkozás (striping) vastagságát, ami + általában 512 byte. Ennek megfelelõen a + 32-es kihagyás 16 384 byte-os csíkokat ad + meg. + + + + A &man.ccdconfig.8; + beállításai. Ha engedélyezni + akarjuk a lemezek tükrözését, akkor itt + megadhatjuk. Mivel ez a konfiguráció most nem + nyújt tükrözést a &man.ccd.4; + számára, ezért állítsuk + nullára (0). + + + + A &man.ccdconfig.8; parancsnak + utolsóként azokat az eszközöket + kell felsorolni, amelyeket tömbbe akarunk fûzni. + Minden eszközt teljes elérési úttal + adjuk meg. + + + + A &man.ccdconfig.8; futtatása után a + &man.ccd.4; beállítódik. Most + már állományrendszert is rakhatunk + rá. A &man.newfs.8; man oldalról szedjük + össze a szükséges + paraméterezést, vagy egyszerûen csak + gépeljünk be ennyit: + + newfs /dev/ccd0c + + + + + Az egész önmûködõvé + tétele + + A &man.ccd.4; eszközt általában + minden egyes indítás után + használni akarjuk. Ennek + eléréséhez elõször ezt be + kell állítanunk. Az alábbi parancs + kiadásával írassuk be a jelenlegi + beállítasainkat tükrözõ + /etc/ccd.conf + állományt: + + ccdconfig -g > /etc/ccd.conf + + Az újraindítás során az + /etc/rc parancs futtatja le a + ccdconfig -C parancsot, ha az + /etc/ccd.conf állomány + létezik. Ez automatikusan beállítja a + &man.ccd.4; eszközöket, így ilyenkor tudjuk + csatlakoztatni is ezeket. + + + Ha egyfelhasználós módban + indítjuk a rendszert, mielõtt még a + &man.mount.8; paranccsal csatlakoztatni tudnánk a + &man.ccd.4; eszközt, a tömb + beállításához meg kell + hívnunk a következõ parancsot: + + ccdconfig -C + + + Ha a rendszerindításkor automatikusan + csatlakoztatni akarjuk a &man.ccd.4; eszközt, akkor az + /etc/fstab állományba + helyezzünk el egy hozzátartozó + bejegyzést: + + /dev/ccd0c /media ufs rw 2 2 + + + + + + A Vinum kötetkezelõ + + + RAID + szoftveres + + + RAID + Vinum + + + A Vinum kötetkezelõ egy blokkos + eszközmeghajtó, ami virtuális lemezes + meghajtókat valósít meg. + Elkülöníti a lemezes + hardvereszközöket a blokkos + eszközmeghajtók felületétõl + és a kettõ között úgy + képezi le az adatokat, hogy a hagyományos + lemezes tárolással szemben megnövekedett + rugalmasságot, teljesítményt és + megbízhatóságot kapunk. A &man.vinum.8; + ismeri a RAID-0, RAID-1 és RAID-5 modelleket + egyaránt, melyeket önmagukban és + együttesen kombinálva is + használhatunk. + + A bõvebben ismerteti a + &man.vinum.8; rendszerét. + + + + + + Hardveres RAID + + + RAID + hardveres + + + A &os; rengeteg különbözõ + típusú hardveres + RAID-vezérlõt ismer. Ezek az + eszközök a &os; külön erre a célra + szánt támogatása nélkül + képesek vezérelni a + RAID-alrendszert. + + A rajta levõ BIOS + segítségével a kártya a legtöbb + lemezmûveletet egyedül kezeli. A + következõkben egy Promise IDE + RAID vezérlõt alkalmazó + rendszert fogunk beállítani. Miután + telepítettük a kártyát és + indítjuk a rendszert, bekéri a + szükséges információkat. + Kövessük az utasításokat és + lépjünk be a kártya + beállító képernyõjére. + Itt tudjuk kombinálni az összes csatlakoztatott + meghajtónkat. Amikor ezzel a végeztünk, a + lemezek egyetlen lemezként fognak a &os; + számára viselkedni. A többi + RAID-szint is ehhez hasonlóan + állítható be. + + + + + Az ATA RAID-1 tömbök + újraszervezése + + A &os; lehetõséget a tömbben levõ + meghibásodott eszközök menet közben + elvégezhetõ cseréjére. Ehhez arra van + szükségünk, hogy még + újraindítás elõtt + elcsípjük a hibát. + + Hiba esetén valami hasonlót fogunk + látni a /var/log/messages + állományban vagy a &man.dmesg.8; + kimenetében: + + ad6 on monster1 suffered a hard error. +ad6: READ command timeout tag=0 serv=0 - resetting +ad6: trying fallback to PIO mode +ata3: resetting devices .. done +ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ +status=59 error=40 +ar0: WARNING - mirror lost + + További információkat az + &man.atacontrol.8; programtól szerezhetünk: + + &prompt.root; atacontrol list +ATA channel 0: + Master: no device present + Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 + +ATA channel 1: + Master: no device present + Slave: no device present + +ATA channel 2: + Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 + Slave: no device present + +ATA channel 3: + Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 + Slave: no device present + +&prompt.root; atacontrol status ar0 +ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED + + + + A lemez biztonságos + eltávolításához + elõször válasszuk le (detach) a + meghibásodott lemezhez tartozó + csatornát: + + &prompt.root; atacontrol detach ata3 + + + + Cseréljük ki a lemezt. + + + + Csatlakoztassuk újra (attach) az ATA + csatornát: + + &prompt.root; atacontrol attach ata3 +Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 +Slave: no device present + + + + Tartalékként (spare) adjuk hozzá az + új lemezt a tömbhöz: + + &prompt.root; atacontrol addspare ar0 ad6 + + + + Szervezzük újra (rebuild) a + tömböt: + + &prompt.root; atacontrol rebuild ar0 + + + + A folyamat elõrehaladását a + következõ parancs + begépelésével tudjuk figyelni: + + &prompt.root; dmesg | tail -10 +[a kimenet többi része] +ad6: removed from configuration +ad6: deleted from ar0 disk1 +ad6: inserted into ar0 disk1 as spare + +&prompt.root; atacontrol status ar0 +ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed + + + + Várjunk a mûvelet + befejezõdéséig. + + + + + + + + + + + Marc + Fonvieille + Írta: + + + + + USB tárolóeszközök + + + USB + lemezek + + + Manapság már számos külsõ + tárolóeszköz az USB (Universal Serial Bus) + közvetítésével csatlakozik a + számítógéphez: merevlemezek, pen + drive-ok, CD-írók stb. A &os; ezeket az + eszközöket is ismeri. + + + Beállítás + + A USB tárolóeszközöket kezelõ + meghajtó, az &man.umass.4; felelõs az USB + alapú tárolóeszközök + támogatásáért. Ha a + GENERIC rendszermagot használjuk, + akkor semmit sem kell változtatnunk. Ha saját + rendszermagunk van, akkor gondoskodjunk róla, hogy a + következõ sorokat beraktuk a rendszermag + beállításait tartalmazó + állományba: + + device scbus +device da +device pass +device uhci +device ohci +device usb +device umass + + Az &man.umass.4; meghajtó a SCSI alrendszeren + keresztül éri el az USB + tárolóeszközöket, tehát az USB + eszközeinket a rendszer SCSI eszközként + látja. Az alaplapon található USB + chipkészlet típusától + függõen vagy csak a device uhci + vagy pedig a device ohci bejegyzésre + lesz szükségünk. De abból sem + származik kárunk, ha mind a kettõt + meghagyjuk. Ha módosítani kellett a + konfigurációs állományt, akkor ne + felejtsük el újrafordítani és + telepíteni sem a rendszermagot. + + + Ha az USB eszközünk egy CD- vagy + DVD-író, akkor a következõ sorral a + SCSI CD-meghajtók meghajtóját, a + &man.cd.4; eszközt kell beépítenünk a + rendszermagba: + + device cd + + Mivel az író is SCSI eszközként + látszik, ezért az &man.atapicam.4; nem + szerepelhet a rendszermag beállításai + között. + + + A &os;-ben a USB 2.0-ás vezérlõk + támogatásához azonban a következõ + sort is fel kell vennünk a konfigurációs + állományba: + + device ehci + + Ha mellette tovább is szükségünk + lenne az USB 1.X támogatásra, akkor hagyjuk meg + a &man.uhci.4; és &man.ohci.4; + eszközmeghajtókat. + + + + + A beállítások + kipróbálása + + A beállításaink készen + állnak a kipróbálásra: + csatlakoztassuk a számítógéphez az + USB eszközünket és a rendszerüzeneteket + tároló pufferben (&man.dmesg.8;) hamarosan meg is + jelenik a hozzátartozó meghajtó: + + umass0: USB Solid state disk, rev 1.10/1.00, addr 2 +GEOM: create disk da0 dp=0xc2d74850 +da0 at umass-sim0 bus 0 target 0 lun 0 +da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device +da0: 1.000MB/s transfers +da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) + + Természetesen a gyártóra, + márkára, az eszköz + leírójára (da0) + és egyebekre vonatkozó részletek + eltérhetnek. + + Mivel az USB eszköz SCSI eszközként + látszik, ezért a camcontrol + parancs használható a rendszerhez csatlakoztatott + USB tárolóeszközök + listázásához: + + &prompt.root; camcontrol devlist +<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) + + Ha a meghajtón állományrendszer is + található, akkor képesek vagyunk + csatlakoztatni. A + elolvasása segíthet az USB meghajtón + partíciókat kialakítani és + formázni, amennyiben szükséges. + + Ha az eszközt normál + felhasználókkal is + csatlakoztathatóvá akarjuk tenni, akkor + további lépések megtételére + is szükségünk lesz. Elõször is a + felhasználóknak valahogy el kell tudniuk + érniük az USB tárolóeszköz + csatlakoztatásakor keletkezõ eszközöket. + Ezt úgy tudjuk megoldani, ha az érintett + felhasználókat felvesszük az + operator csoportba. Ebben a &man.pw.8; + lehet a segítségünkre. Másodsorban + amikor ezek az eszközök létrejönnek, az + operator csoportnak tudniuk kell ezeket + olvasniuk és írniuk. Ezt úgy tudjuk + megvalósítani, ha felvesszük a + következõ sorokat az + /etc/devfs.rules + állományba: + + [localrules=1] +add path 'da*' mode 0660 group operator + + + Ha viszont vannak SCSI lemezeink is rendszerben, akkor a + helyzet egy kicsit megváltozik. Tehát + például a rendszerben már eleve vannak + da0, da1 + és da2 néven lemezek, + akkor a második sort ennek megfelelõen + változtassuk meg: + + add path 'da[3-9]*' mode 0660 group operator + + Ezzel kizárunk minden, korábban már + létezõ lemezt az operator + csoportból. + + + Emellett még az /etc/rc.conf + állományban engedélyeznünk kell a + saját &man.devfs.rules.5; + szabályrendszerünket is: + + devfs_system_ruleset="usb_rules" + + Ezt követõen be kell állítanunk a + rendszermagban, hogy a hagyományos + felhasználók képesek legyenek + állományrendszereket csatlakoztatni. Ezt a + legkönnyebb úgy tudjuk megtenni, ha az + /etc/sysctl.conf állományba + felvesszük a következõ sort: + + vfs.usermount=1 + + Azonban ne felejtsük el, hogy ez csak a rendszer + következõ indításától + él. De a &man.sysctl.8; parancs + használatával is beállíthatjuk ezt + az értéket. + + Az utolsó lépésben hozzunk létre + egy könyvtárat az állományrendszer + csatlakoztatásához. Ezt a könyvtárat + az a felhasználó fogja birtokolni, aki az + állományrendszert csatlakoztatnia akarja. Ez + például root + felhasználóként úgy tudjuk megtenni, + ha a felhasználónak létrehozunk egy + könyvtárat + /mnt/felhasználó + néven (ahol a + felhasználó nevet + cseréljük a tényleges + felhasználó nevére): + + &prompt.root; mkdir /mnt/felhasználó +&prompt.root; chown felhasználó:felhasználó /mnt/felhasználó + + Most tegyük fel, hogy csatlakoztatnuk egy USB pen + drive-ot és ennek megfelelõen megjelenik a + /dev/da0s1 eszköz. Mivel az ilyen + eszközökre általában gyárilag FAT + állományrendszert tesznek, ezért így + kell ezeket csatlakoztatni a &man.mount.8; paranccsal: + + &prompt.user; mount -t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/felhasználó + + Ha leválasztjuk az eszközt (miután + kiadtuk a &man.umount.8; parancsot), akkor a + rendszerüzenetek között valami ilyesmit fogunk + látni: + + umass0: at uhub0 port 1 (addr 2) disconnected +(da0:umass-sim0:0:0:0): lost device +(da0:umass-sim0:0:0:0): removing device entry +GEOM: destroy disk da0 dp=0xc2d74850 +umass0: detached + + + + + A témáról bõvebben + + A Lemezek + hozzáadása és az Állományrendszerek + csatlakoztatása és + leválasztása címû szakaszok + elolvasása mellett a következõ man oldalakat is + ajánljuk: &man.umass.4;, &man.camcontrol.8; és + &man.usbdevs.8;. + + + + + + + + + Mike + Meyer + Írta: + + + + + Lézeres tárolóeszközök (CD-k) + létrehozása és használata + + + CD-k + létrehozása + + + + Bevezetés + + A CD-k számos lehetõségünkben + eltérnek a hagyományos lemezektõl. Kezdetben + a felhasználók nem is voltak képesek + írni ezeket. Olyannak tervezték, hogy a fejek + sávok közti mozgásából + fakadó késleltetés nélkül + lehessen folyamatosan olvasni. A + szállítása a maga idejében sokkal + könnyebb volt minden vele egyforma méretû + eszköznél. + + A CD-ken is találhatunk sávokat, azonban ez + csak a folyamatosan olvasható adat egy szakaszát + jelenti, nem pedig a lemez fizikai tulajdonságát. + Ha &os;-n akarunk CD-t készíteni, akkor ehhez + elõször össze kell állítanunk a CD + egyes sávjaira kerülõ adatokat és + ezután rögzíteni ezeket a sávokat a + CD-n. + + ISO 9660 + + állományrendszerek + ISO 9660 + + + Az ISO 9660 állományrendszert úgy + tervezték, hogy megbirkózzon ezekkel az + eltérésekkel. Sajnos ezzel együtt kõbe + vésték az állományrendszerek + akkoriban érvényes korlátozásait is. + Szerencsére lehetõséget ad + bõvítésre, ezáltal a helyesen + megírt CD-k képesek úgy + átlépni ezeket a határokat, hogy + közben az általuk alkalmazott + kiterjesztéseket nem ismerõ rendszerekkel is + együtt tudnak mûködni. + + sysutils/cdrtools + + A sysutils/cdrtools port + tartalmaz egy &man.mkisofs.8; nevû programot, amellyel + létre tudunk hozni ISO 9660 típusú + állományrendszert tartalmazó + adatállományt. Többféle + kiterjesztést is ismer, amit majd a lentebb ismertett + opciókkal érhetünk el. + + + CD-író + ATAPI + + + A CD írásához használt + konkrét segédeszköz attól függ, + hogy ATAPI vagy esetleg másmilyen írónk + van. Az ATAPI CD-írók az alaprendszer + részeként elérhetõ burncd programon + keresztül használhatóak. A SCSI és + USB CD-írók esetén pedig a sysutils/cdrtools portban + megtalálható cdrecord programot + használhatjuk. Az ATAPI/CAM + modul segítségével a cdrecord és + más SCSI-írókra készült + programokat is tudunk használni ATAPI hardvereken. + + Ha a CD-író szoftverünket grafikus + felhasználói felületen keresztül + szeretnénk használni, akkor az + X-CD-Roast vagy a + K3b alkalmazásokat + érdemes szemügyre vennünk. Ezek az + eszközök elérhetõek csomagként vagy + a sysutils/xcdroast + és sysutils/k3b + portokból. ATAPI hardver esetén az + X-CD-Roast és a + K3b alkalmazások + használatához szükségünk lesz az + ATAPI/CAM modulra. + + + + + mkisofs + + A sysutils/cdrtools port + részeként elérhetõ &man.mkisofs.8; + program képes a &unix; típusú + állományrendszer könyvtárszerkezete + alapján egy ISO 9660 típusú + állományrendszert tartalmazó image-et + készíteni. Legegyszerûbb módon + így használhatjuk: + + &prompt.root; mkisofs -o image.iso /az/elérési/út + + + állományrendszerek + ISO 9660 + + + Ezzel a paranccsal egy olyan + image.iso nevû + állományt hozunk létre, amely + /az/elérési/út + által megadott helyen található + könyvtárszerkezetet mintázza ISO 9660 + állományrendszer formájában. A + folyamat során minden olyan állományt + leképez szabványos ISO 9660 + állományrendszerbeli névre, amely megfelel + a szabvány elvárásainak, és kihagy + minden olyan állományt, amely nem jellemzõ az + ISO állományrendszerekre. + + + állományrendszerek + HFS + + + + állományrendszerek + Joliet + + + Számos opció lehet + segítségünkre az ilyenkor felbukkanó + akadályok leküzdésében. Ezek + közül különösen fontos az + , amely a &unix; rendszerek + számára megszokott Rock Ridge + kiterjesztéseket, valamint a , amely a + Microsoft rendszerekben használt Joliet + kiterjesztéseit, és végül a + , amely a &macos; alatt létrehozott + HFS állományrendszerek kiterjesztéseit + engedélyezi. + + A kizárólag csak &os; rendszereken + használt CD-k esetében a + megadásával kapcsolhatjuk ki az + állománynevek mindenféle + korlátozását. Az + beállítás használatával olyan + állományrendszer képét hozzuk + létre, amely teljesen megegyezik a parancsban megadott + könyvtárból induló fa + tartalmával, habár több módon is + sérti az ISO 9660 szabvány + elõírásait. + + + CD-k + rendszerindításhoz + + + Az utolsó általános jelleggel + használható beállítás a + . Ezzel lehet megadni az El + Torito szabványnak megfelelõ + rendszerindító CD + készítéséhez szükséges + rendszerindító image + elérését. Ennél a + beállításnál tehát meg kell + adni a rendszerindításhoz használt lemez + image-ét, amely a CD tartalmát magában + foglaló könyvtárszerkezetben + található valahol. A &man.mkisofs.8; + alapértelmezés szerint egy ún. + floppy emulációs módban + hozza létre az ISO image-et, ezért a + rendszerindításhoz használatos lemez + image-ének pontosan 1200, 1440 vagy 2880 KB + méretûnek kell lennie. Egyes + rendszerbetöltõk, mint amilyen például a + &os; terjesztéséhez használt lemezeken + található, nem használják ezt az + emulációt. Ilyen helyzetekben a + kapcsolót kell megadni. + Tehát ha a + /tmp/sajátboot + könyvtárban van egy indítható &os; + rendszerünk, amelyben a + /tmp/sajátboot/boot/cdboot + a rendszerindító lemez image-e, akkor egy + /tmp/indítható.iso + nevû ISO 9660 formátumú + állományrendszert tartalmazó image-et + például így tudunk + elkészíteni: + + &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/indítható.iso /tmp/sajátboot + + Miután ezt megtettük, és a + rendszermagunkban benne van az md + eszköz támogatása, csatlakoztathatjuk is az + állományrendszert: + + &prompt.root; mdconfig -a -t vnode -f /tmp/indítható.iso -u 0 +&prompt.root; mount -t cd9660 /dev/md0 /mnt + + Ezután már össze tudjuk vetni az + /mnt és + /tmp/sajátboot + könyvtárak egyezõségét. + + A &man.mkisofs.8; viselkedését több + más opcióval tudjuk finomhangolni, mint + például az ISO 9660 kiosztás + módosítása vagy a Joliet és HFS + lemezek készítése. A &man.mkisofs.8; man + oldalon mindezekrõl bõvebben olvashatunk. + + + + + burncd + + + CD-k + írása + + + Ha ATAPI CD-írónk van, akkor a + burncd paranccsal írhatjuk az ISO + image-et a lemezre. A burncd az alaprendszer + része, és /usr/sbin/burncd + néven érhetõ el. A használata igen + egyszerû, csupán pár paramétere + van: + + &prompt.root; burncd -f eszköz data image.iso fixate + + Ezzel a paranccsal rámásoljuk az + image.iso állományt az + eszköz eszközre. Az + alapértelmezett eszköz a + /dev/acd0. A &man.burncd.8; man + oldalán találjuk meg az írási + sebességgel, a CD írás utáni + kiadásával és az audio lemezek + írásával kapcsolatos + beállításokat. + + + + + cdrecord + + Ha nincs ATAPI CD-írónk, akkor az + íráshoz a cdrecord parancsot + kell használnunk. A cdrecord nem az + alaprendszer része: vagy a sysutils/cdrtools portból vagy + a neki megfelelõ csomagból kell + telepítenünk. Az alaprendszerben + végbemenõ változások miatt a program + bináris változatai hibázhatnak, aminek + következtében csak + poháralátéteket fogunk tudni + gyártani. Ezért a rendszerrel együtt + érdemes frissíteni ezt a portot is. Vagy ha a + -STABLE verziót + használjuk, akkor mindig érdemes a port + elérhetõ legújabb verziójára + frissíteni. + + Miközben a cdrecord számos + paraméterrel rendelkezik, az alapvetõ + használata mégis egyszerûbb a + burncd parancsénál. Egy ISO + 9660 formátumú image-et ugyanis a + következõ módon tudunk felírni + lemezre: + + &prompt.root; cdrecord dev=eszköz image.iso + + A cdrecord használatának + trükkös része a megfelelõ eszköz + megtalálása, tehát a + beállítás helyes megadása. Ehhez + használjuk a cdrecord + paraméterét, amely az + alábbihoz hasonló eredményt fog + produkálni: + + + CD-k + írása + + + &prompt.root; cdrecord -scanbus +Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling +Using libscg version 'schily-0.1' +scsibus0: + 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk + 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk + 0,2,0 2) * + 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk + 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM + 0,5,0 5) * + 0,6,0 6) * + 0,7,0 7) * +scsibus1: + 1,0,0 100) * + 1,1,0 101) * + 1,2,0 102) * + 1,3,0 103) * + 1,4,0 104) * + 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM + 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner + 1,7,0 107) * + + Itt felsorolásra kerülnek a + beállítás értékeként + felhasználható eszközök. Keressük + meg köztük a CD írónkat és a + értékének a + három vesszõvel elválasztott számot + adjuk meg. Ebben az esetben a CD-író eszköz + most az 1,5,0 lesz, tehát itt a helyes + paraméterezés . Ezt az + értékét könnyebben is meg lehet adni. + Ennek részleteirõl a &man.cdrecord.1; man + oldalán olvashatunk. Abban az esetben is érdemes + fellapoznunk, ha az audio sávok + írásáról, az írási + sebesség korlátozásáról vagy + más hasonló dolgokról akarunk + olvasni. + + + + + Audio CD-k másolása + + Audio CD-t úgy tudunk másolni, ha + elõször állományok sorozatába + mentjük a lemez tartalmát, majd ezeket az + állományokat egy üres CD-re írjuk. + Ennek konkrét folyamata azonban némileg + eltér az ATAPI- és SCSI-meghajtók + használata során. + + + SCSI-meghajtók esetén + + + A cdda2wav programmal mentsük le + a lemez tartalmát. + + &prompt.user; cdda2wav -v255 -D2,0 -B -Owav + + + + A cdrecord paranccsal írjuk + fel a .wav kiterjesztésû + állományokat. + + &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav + + Gondoskodjunk róla, hogy a + 2,0 értéket a nak megfelelõen helyesen + állítottuk be. + + + + + ATAPI-meghajtók esetén + + + Az ATAPI CD meghajtója az egyes sávokat + /dev/acddtnn + néven teszi + elérhetõvé, ahol a + d a meghajtó + sorszáma, a nn a + sáv két számjeggyel kiírt + sorszáma, amelyet szükség szerint + balról nullával egészítenek ki. + Így tehát az elsõ meghajtó + elsõ sávja a /dev/acd0t01, + a második a /dev/acd0t02, a + harmadik a /dev/acd0t03 és + így tovább. + + Ellenõrizzük, hogy ezek az eszközök + jelen vannak a /dev + könyvtárban. Amennyiben + hiányoznának, kényszerítsük + ki a lemez újbóli + beolvasását: + + &prompt.root; dd if=/dev/acd0 of=/dev/null count=1 + + + + Szedjük le az egyes sávokat a &man.dd.1; + használatával. A parancs kiadásakor + meg kell adnunk egy blokkméretet is: + + &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 +&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352 +... + + + + + A burncd használatával + írjuk fel a lemezre az imént lementett + állományokat. Meg kell adnunk, hogy ezek + audio állományok, és hogy a + burncd a munka befejeztével + zárja le (fixate) a lemezt. + + &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate + + + + + + + Adat CD-k másolása + + Az adatot tartalmazó CD-ket le tudjuk másolni + egy olyan image-be, amely funkcionálisan megegyezik egy + &man.mkisofs.8; által létrehozott image-dzsel + és amivel le tudunk másolni bármilyen adat + CD-t. Az itt megadott példa azt feltételezi, hogy + a CD-meghajtónk neve acd0. + Helyére a saját CD-meghajtónk nevét + kell behelyettesíteni. + + &prompt.root; dd if=/dev/acd0 of=állomány.iso bs=2048 + + Most miután lementettük az image-et, + írjuk fel CD-re a fentiek szerint. + + + + + Adat CD-k használata + + Most, hogy már készítettünk egy + szabványos adat CD-t, valószínûleg + szeretnénk is valamilyen csatlakoztatni és + elérni a rajta levõ adatokat. + Alapértelmezés szerint a &man.mount.8; mindig azt + feltételezi, hogy az állományrendszerek + ufs típusúak. Ezért ha + valami ilyesmivel próbálkozunk: + + &prompt.root; mount /dev/cd0 /mnt + + akkor egy Incorrect super block + szövegû hibaüzenetet lesz a jutalmunk, és + természetesen nem tudjuk csatlakoztatni a CD-t. Mivel a + CD nem UFS állományrendszert + tartalmaz, ezért az ilyen jellegû + kísérleteink mind kudarcba fognak fulladni. + Valahogy fel kell világosítanunk a &man.mount.8; + parancsot arról, hogy itt most egy + ISO9660 típusú + állományrendszert akarunk csatlakoztatni, + és akkor minden a helyére kerül. Ezt + úgy tudjuk megtenni, ha a &man.mount.8; parancsnak + megadjuk a paramétert. + Például, ha a /dev/acd0 + néven elérhetõ CD-meghajtóban + levõ lemezt akarjuk a /mnt + könyvtárba csatlakoztatni, akkor ezt kell + begépelnünk: + + &prompt.root; mount -t cd9660 /dev/cd0 /mnt + + Vegyük észre, hogy az eszköz neve (ez ebben + a példában most /dev/cd0) + lehet más is attól függõen, hogy milyen + csatolófelületet használ a + CD-meghajtónk. Sõt, a + valójában csak a &man.mount.cd9660.8; parancsot + indítja el. Ennek tükrében tehát az + elõbbi példát így + rövidíthetjük le: + + &prompt.root; mount_cd9660 /dev/cd0 /mnt + + Ezen a módon bármilyen + gyártmányú adat CD-t képesek vagyunk + csatlakoztatni. Egyes ISO 9660 kiterjesztéseket + használó lemezek azonban esetleg furcsán + mûködhetnek. Például Joliet lemezek az + összes állomány nevét + kétbyte-os Unicode karakterben tárolják. A + &os; rendszermagja ugyan nem beszéli a Unicode-ot, de a + &os; CD9660 meghajtója képes menetközben + átkonvertálni a Unicode karaktereket. Ha bizonyos + nem angol karakterek kérdõjelekként + jelennének meg, akkor a + beállítás használatával + még egy helyi kódlapot is meg kell adnunk. Ezzel + kapcsolatban bõvebb + tájékoztatásért forduljunk a + &man.mount.cd9660.8; man oldalhoz. + + + A beállítás + segítségével csak akkor lesz képes + a rendszermag elvégezni ezt az + átalakítást, ha elõtte + betöltjük a cd9660_iconv.ko + modult. Ezt megtehetjük úgy, hogy ha + felvesszük a következõ sort a + loader.conf + állományba: + + cd9660_iconv_load="YES" + + Indítsuk újra a + számítógépünket, vagy + közvetlenül töltsük be a modult a + &man.kldload.8; használatával. + + + Estenként elõfordulhat, hogy kapunk egy + Device not configured hibaüzenetet a + CD-k csatlakoztatásakor. Ez általában arra + utal, hogy a CD-meghajtó nem érzékeli a + berakott lemezt, vagy éppen a meghajtó nem + látható a buszon. A CD-meghajtók + esetében pár másodpercig eltarthat, + amíg felismeri a berakott lemezt, ilyenkor mindig + legyünk türelemmel. + + Néha a SCSI CD-meghajtó nem + látható, mert nem volt elég ideje + válaszolni busz újraindítása + elõtt. Ha SCSI CD-meghajtónk van, akkor a + következõ beállítást tegyük + hozzá a rendszermagunk + konfigurációjához és fordítsuk újra a + rendszermagukat. + + options SCSI_DELAY=15000 + + Ezzel utasítjuk a SCSI buszunkat egy 15 + másodperces várakozásra a rendszer + indítása során, és így ezzel + elég esélyt adunk arra, hogy a CD-meghajtó + válaszolni tudjon a busz + újraindítása elõtt. + + + + + Nyers adat CD-k írása + + Írhatunk közvetlenül is + állományokat a CD-re, ISO 9660 + formátumú állományrendszer + használata nélkül. Sokan így + oldják meg a mentést. Ezt sokkal gyorsabban + lebonyolítható egy szabványos + CD esetében: + + &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate + + Az ezen a módon megírt CD-ket szintén + nyers módon kell olvasnunk: + + &prompt.root; tar xzvf /dev/acd1 + + Az ilyen lemezeket nem tudjuk a normális CD-khez + hasonlóan csatlakoztatni. Sõt, az ilyen CD-ket csak + &os; alatt tudjuk olvasni. Ha csatlakoztathatóvá + akarjuk tenni a lemezt, vagy más operációs + rendszerek alól is szeretnénk olvasni, akkor erre + a célra a fentebb bemutatott &man.mkisofs.8; parancsot + kell használnunk. + + + + + + + + Marc + Fonvieille + Írta: + + + + + + CD-írók + ATAPI/CAM meghajtó + + + Az ATAPI/CAM meghajtó használata + + Ez a meghajtó lehetõvé teszi az ATAPI + eszközök (CD-ROM, CD-RW, DVD meghajtók stb...) + számára, hogy a SCSI alrendszeren keresztül + legyenek elérhetõek, így esetünkben is + használhatóvá válnak olyan + alkalmazások, mint például sysutils/cdrdao vagy a + &man.cdrecord.1;. + + A meghajtó használatához a + következõ sort kell a + /boot/loader.conf állományba + illeszteni: + + atapicam_load="YES" + + Indítsuk újra a + számítógépet. + + + Amennyiben a rendszermagban az &man.atapicam.4; statikus + támogatását szeretnénk + használni, úgy a következõ sort kell a + rendszermag konfigurációs + állományába felvenni: + + device atapicam + + Továbbá a következõ sorokra lesz + még szükségünk: + + device ata +device scbus +device cd +device pass + + Ezeknek már eleve ott kell szerepelnie. + Ezután fordítsuk újra és + telepítsük a rendszermagot, majd indítsuk + újra a számítógépet. + + + A rendszer indulásakor az írónak ehhez + hasonló módon kell megjelennie: + + acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 +cd0 at ata1 bus 0 target 0 lun 0 +cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device +cd0: 16.000MB/s transfers +cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed + + A meghajtó most már elérhetõ a + /dev/cd0 eszközön keresztül, + és például ennyi + begépelésével csatlakoztatni tudunk + róla egy CD-t a /mnt + könyvtárba: + + &prompt.root; mount -t cd9660 /dev/cd0 /mnt + + root + felhasználóként a következõ + paranccsal tudjuk lekérdezi az író SCSI + címét: + + &prompt.root; camcontrol devlist +<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) + + Eszerint a 1,0,0 lesz az eszköz SCSI + címe, amelyet a &man.cdrecord.1; és más + SCSI alkalmazások esetén adunk meg. + + Az ATAPI/CAM és SCSI rendszerek tekintetében + olvassuk el az &man.atapicam.4; és &man.cam.4; man + oldalakat. + + + + + + + + + Marc + Fonvieille + Írta: + + + + + Andy + Polyakov + Segítséget nyújtott benne: + + + + + + Lézeres tárolóeszközök (DVD-k) + létrehozása és használata + + + DVD + írása + + + + Bevezetés + + A DVD a CD-hez képest a lézeres + tárolóeszközök + technológiájának újabb + generációját képviseli. A DVD + bármelyik CD-nél több adatot képes + tárolni és napjaink ez a videók + kiadásának szabványa. + + Öt fizikailag írható formátummal + határozhatjuk meg az írható DVD + fogalmát: + + + + DVD-R: Ez volt az elsõ elérhetõ + írható DVD formátum. A DVD-R + szabványát a DVD + Fórum fektette le. Ez a formátum csak + egyszer írható. + + + + DVD-RW: Ez a DVD-R szabvány + újraírható változata. A DVD-RW + körülbelül 1000 alkalommal + írható újra. + + + + DVD-RAM: Ez is a DVD Fórum által + támogatott újraírható + formátum. A DVD-RAM cserélhetõ + merevlemeznek látzsik. Azonban ez + típusú adathordozó nem kompatibilis + legtöbb DVD-ROM hajtóval és DVD-Video + lejátszóval. Csupán csak + néhány DVD-író ismeri a DVD-RAM + formátumot. A DVD-RAM + használatáról a ban találunk bõvebben + információkat. + + + + DVD+RW: Ezt az újraírható + formátumot a DVD+RW + szövetség alkotta meg. A DVD+RW lemezek + nagyjából 1000 alkalommal + írhatóak újra. + + + + DVD+R: Ez a formátum a DVD+RW formátum + egyszer írható változata. + + + + Az egyrétegû írható DVD-k + összesen 4 700 000 000 byte-ot + képesek rögzíteni, ami 4,38 GB vagy + 4 485 MB (1 kilobyte itt 1024 byte). + + + Meg kell különböztetnünk fizikai + tárolóeszközt és az + alkalmazást. Például a DVD-Video + állományok olyan jellegû + elrendezését írja elõ, ami + bármelyik írható fizikai DVD + eszközön megjelenhet: DVD-R, DVD+R, DVD-RW stb. + Mielõtt kiválasztanánk az eszköz + típusát, biztosnak kell lennünk benne, hogy + az író és a DVD-Video + lejátszó (ez lehet egy önálló + lejátszó vagy egy + számítógép DVD-ROM + meghajtója) kompatibilis a szóbanforgó + lemezzel. + + + + + + Beállítás + + A &man.growisofs.1; programot fogjuk a DVD + rögzítésére használni. Ez a + program a dvd+rw-tools + segédprogramok (sysutils/dvd+rw-tools) + gyûjteményének része. A + dvd+rw-tools az összes DVD + médium típusát ismeri. + + Ezek a segédprogramok a SCSI alrendszeren + keresztül érik az eszközöket, ezért + a használhatukhoz a rendszermagban + szükségünk lesz az ATAPI/CAM támogatásra. + Ha az írónk USB felületen csatlakozik, akkor + mindez szükségtelen, és ehelyett a t kell elolvasnunk az USB eszközök + beállításához. + + Engedélyeznünk kell az ATAPI eszközök + DMA hozzáférését is, amit a + /boot/loader.conf állományban + a következõ sor hozzáadásával + tudunk megtenni: + + hw.ata.atapi_dma="1" + + A dvd+rw-tools + használatának megkezdése elõtt a + DVD-írónkkal kapcsolatban érdemes + átolvasnunk a + dvd+rw-tools hardverkompatibilitási jegyzeteit + (angolul). + + + Ha grafikus felületet szeretnénk + használni, akkor érdemes egy pillanatást + vetnünk a K3bre (sysutils/k3b), amely egy + felhasználóbarát felületet ad a + &man.growisofs.1; és sok más + íróprogram felé. + + + + + + Adat DVD-k írása + + A &man.growisofs.1; a mkisofs + parancs elõlapja, tehát az + állományrendszer + létrehozásához a &man.mkisofs.8; programot + fogja meghívni és ezt írja fel a DVD-re. + Ez azt jelenti, hogy az írási folyamat + megkezdése elõtt nem kell semmilyen image-et + létrehoznunk. + + A /az/elérési/út + könyvtárból a következõ paranccsal + tudjuk kiírni az adatokat DVD+R vagy DVD-R + lemezre: + + &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /az/elérési/út + + A beállítások a + &man.mkisofs.8; programhoz kerülnek át az + állományrendszer létrehozásakor (itt + most egy ISO 9660 állományrendszert hozunk + létre, Joliet és Rock Ridge + kiterjesztésekkel), használatának + részleteit lásd &man.mkisofs.8;. + + A beállítást a + kezdõmenetek létrehozásakor + használjuk: több menetben akarjuk írni a + lemezt vagy sem. A DVD eszközt, amely itt most a + /dev/cd0, a saját + konfigurációnknak megfelelõen kell megadni. + A paraméterrel + lezárjuk a lemezt, így ezután + további írás már nem + lehetséges. Ezért cserébe jobb + kompatibilitást kapunk a DVD-ROM + meghajtókkal. + + Elõre legyártott image-dzsel is dolgozhatunk, + tehát például, ha az + image.iso állományt + akarjuk kiírni, akkor ezt kell lefuttatnunk: + + &prompt.root; growisofs -dvd-compat -Z /dev/cd0=image.iso + + Az írási sebességet + magától beállítja a lemez és + meghajtó képességeinek megfelelõen. + Az írási sebesség + felülbírálásához + használjuk a paramétert. + A paraméterek lehetõségeirõl a + &man.growisofs.1; man oldaláról tudhatunk meg + többet. + + + + + DVD + DVD-Video + + + + DVD-Video írása + + A DVD-Video az állományok speciális + szervezésére utal, amely az ISO 9660 és az + mikró UDF (M-UDF) specifikációkon alapszik. + A DVD-Video emellett egy adott adatszerkezeti hierarchiát + is takar, ezért kell egy külön programmal, + például a multimedia/dvdauthor + segítségével + összeállítani egy DVD-t. + + Ha már a birtokunkban van egy DVD-Video + állományrendszer képe, akkor az eddigiek + szerint egyszerûen csak írjuk fel egy lemezre, ahogy + azt az elõzõ szakaszban is láthattuk. Ha + összeállítottuk a DVD anyagát + és például a /a/videó/elérési/útja + könyvtárba raktuk, akkor a következõ + paranccsal írathatjuk ki a DVD-Video + formátumú lemezt: + + &prompt.root; growisofs -Z /dev/cd0 -dvd-video /a/videó/elérési/útja + + A paramétert kell + átadni a &man.mkisofs.8; programnak, amelynek + hatására létrehoz egy DVD-Video + formátumú állományrendszert. + Emellett a + beállítás maga után vonja a + &man.growisofs.1; + beállítását is. + + + + + DVD + DVD+RW + + + + A DVD+RW használata + + Eltérõen a CD-RW-tõl, egy érintetlen + DVD+RW-t az elsõ használat elõtt meg kell + formázni. A &man.growisofs.1; program errõl az + elsõ adandó alkalommal gondoskodik, és ez az + ajánlott. Azonban a DVD+RW + formázására használhatjuk a + dvd+rw-format parancsot is: + + &prompt.root; dvd+rw-format /dev/cd0 + + Ezt a mûveletet csak egyszer kell elvégezni, + hiszen ne feledjük, hogy csak a szûz DVD+RW lemezeket + kell megformázni. Ezután a DVD+RW-t a + korábbi szakaszoknak megfelelõen tudjuk + írni. + + Ha a DVD+RW-re új adatot akarunk írni (egy + teljesen új állományrendszert, nem pedig + adatokat hozzáfûzni), akkor nem kell + üressé tenni a lemezt, egyszerûen csak + elegendõ felülírni az elõzõeket (egy + új kezdõmenet létrehozásával) + valahogy így: + + &prompt.root; growisofs -Z /dev/cd0 -J -R /az/új/adat/helye + + A DVD+RW formátum felajánlja annak + lehetõségét is, hogy könnyedén + hozzá lehessen fûzni adatokat az elõzõ + íráshoz. A mûvelet során az új + menetet összefûzi a meglévõvel, + tehát ez nem egy többmenetes írás, + hanem a &man.growisofs.1; megnöveli a + lemezen található ISO 9660 + állományrendszert. + + Például, ha egy korábban megírt + DVD+RW lemezen levõ adatokhoz akarunk + hozzáírni, akkor a következõ parancsot + kell kiadnunk: + + &prompt.root; growisofs -M /dev/cd0 -J -R /az/új/adat/helye + + A &man.mkisofs.8; beállításainál + a kezõmenetnél megadottakat érdemes + ismét megadni. + + + Ha kompatibilisek akarunk maradni a többi + DVD-meghajtóval, akkor adjuk meg + paramétert. Ez a DVD+RW + esetében annyit jelent, hogy nem tudunk további + adatokat hozzáfûzni. + + + Ha valamilyen okból mégis üressé + szeretnénk tenni a lemez, akkor ír + járhatunk el: + + &prompt.root; growisofs -Z /dev/cd0=/dev/zero + + + + + DVD + DVD-RW + + + + A DVD-RW használata + + A DVD-RW két lemezformátumot fogad el: a + inkrementális soros hozzáférést + és a korlátozott felülírást. + Alapértelmezés szerint a DVD-RW lemezek soros + elérésûek. + + A még fel nem használt DVD-RW lemezek + közvetlenül írhatóak külön + formázás nélkül, habár a + korábban már soros formátumban + használt DVD-RW lemezeket egy új kezdõmenet + létrehozása elõtt üressé kell + tenni. + + Soros módban így kell letörölni egy + DVD-RW lemezt: + + &prompt.root; dvd+rw-format -blank=full /dev/cd0 + + + A teljes törlés () + egy 1x média esetén körülbelül + egy órát vesz igénybe. A + beállítással egy + gyorsított törlés zajlik le, amennyiben a + DVD-RW lemezt Disk-At-Once (DAO) módban írjuk. + A DVD-RW lemezeket az alábbi paranccsal tudjuk DAO + módban írni: + + &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=image.iso + + A + beállítást nem kötelezõ + megadni, mivel a &man.growisofs.1; igyekszik a lehetõ + leggyorsabban törölni a lemezt és megkezdeni + a DAO módú írást. + + A DVD-RW esetében valójában a + korlátozott felülírást lenne + érdemes használnunk, mivel ez a formátum + sokkal rugalmasabb az alapértelmezés szerint + felkínált inkrementális soros + elérésnél. + + + A soros DVD-RW lemezekre ugyanúgy tudunk adatokat + rögzíteni, mint az összes többi + formátum esetében: + + &prompt.root; growisofs -Z /dev/cd0 -J -R /az/adat/helye + Ha az elõzõ íráshoz akarunk + még hozzáfûzni adatokat, akkor ehhez a + &man.growisofs.1; + beállítását kell használnunk. + Azonban ha a DVD-RW lemezhet inkrementális soros + módban adunk hozzá adatot, akkor ezzel egy + új menetet hozunk létre a lemezen és + így egy többmenetes lemezt kapunk. + + A korlátozott felülírású + DVD-RW formátum használata esetén nem kell + mindegyik kezdõmenet elõtt törölni a lemezt, + egyszerûen csak felül kell írni a + beállítással, + hasonlóan a DVD+RW esetéhez. A DVD+RW + beállításához + hasonlóan lehetõségünk van a lemezen + található ISO 9660 formátumú + állományrendszer növelésére. + Ennek az eredménye egy egymenetes DVD. + + A következõ paranccsal tudjuk a DVD-RW lemezt + korlátozott felülírású + módba tenni: + + &prompt.root; dvd+rw-format /dev/cd0 + + Így tudunk visszaváltani a soros + formátum használatára: + + &prompt.root; dvd+rw-format -blank=full /dev/cd0 + + + + + Több menet használata + + Nagyon kevés DVD-ROM meghajtó ismeri a + többmenetes DVD-ket, és legtöbbször is + csak általában az elsõ menetet + olvassák. A DVD+R, DVD-R és DVD-RW + formátumok soros formátumban képesek + több mentetet is befogadni, viszont a DVD+RW és + DVD-RW korlátozott felülírású + formátuma esetén nem létezik több + menet. + + Az alábbi parancs egy újabb menetet ad + hozzá egy megkezdett (le nem zárt) DVD+R, DVD-R + vagy DVD-RW soros formátumú lemezhez: + + &prompt.root; growisofs -M /dev/cd0 -J -R /az/új/adat/helye + + Ha ezt a parancsot egy korlátozott + felülírású DVD+RW vagy DVD-RW lemez + esetén adjuk ki, akkor az új adatokat úgy + fûzi hozzá, hogy egy új menetet + összefésüli a meglévõvel. Ezzel + egy egymenetes lemez keletkezik. Ilyenkor így + bõvítik a megkezdett lemezeket. + + + A menetek kezdése és befejezése + általában felhasznál valamennyi helyet a + lemezen. Ezért úgy tudjuk optimalizálni + a lemez helykihasználtságát, hogy + kevés menetben sok adatot viszünk fel rá. + A DVD+R esetén 154, a DVD-R-nél + körülbelül 2000, és a dupla + rétegû DVD+R lemezeknél 127 menetet tudunk + létrehozni. + + + + + + További olvasnivalók + + A DVD lemezrõl részletesebb + információkat a dvd+rw-mediainfo + /dev/cd0 parancs + kiadásával tudunk lekérdezni. + + A dvd+rw-tools + használatáról a &man.growisofs.1; man + oldalon találunk információt, valamint a + dvd+rw-tools + honlapján (angolul) és a cdwrite levelezési + lista archívumaiban (angolul). + + + Futassuk dvd+rw-mediainfo parancsot + minden olyan esetben, amikor gondunk akad valamilyen lemez + írásával. A kimenete nélkül + szinte lehetetlen segítenünk bárkinek + is. + + + + + + A DVD-RAM használata + + + DVD + DVD-RAM + + + + Beállítás + + A DVD-RAM írók SCSI vagy ATAPI + csatolófelülettel rendelkeznek. Az ATAPI + eszközök esetén engedélyezni kell a + DMA elérését, amit a + /boot/loader.conf + állományban az alábbi sor + hozzáadásával tudunk megtenni: + + hw.ata.atapi_dma="1" + + + + + A lemez elõkészítése + + Ahogy arra már korábban utaltunk a fejezet + bevezetésében, a DVD-RAM úgy + látható, mint egy cserélhetõ + merevlemez. A hagyományos merevlemezekhez + hasonlóan a DVD-RAM-ot is elõ kell + készíteni az elsõ + használatához. Ebben a példában a + lemez teljes területét egy szabványos UFS2 + állományrendszerrel töltjük + fel: + + &prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1 +&prompt.root; bsdlabel -Bw acd0 +&prompt.root; newfs /dev/acd0 + + A DVD eszköz nevét, vagyis az + acd0 eszközt a saját + rendszerünknek megfelelõen kell + módosítani. + + + + + A lemez használata + + Miután az elõbbi mûveletet + elvégeztük a DVD-RAM lemezen, már tudjuk is + normális merevlemezként csatlakoztatni: + + &prompt.root; mount /dev/acd0 /mnt + + Ezt követõen a DVD-RAM egyaránt + olvasható és írható. + + + + + + + + + + Julio + Merino + Eredetileg készítette: + + + + + Martin + Karlsson + Átdolgozta: + + + + + Hajlékonylemezek létrehozása és + használata + + Néha hasznos lehet, ha az adatokat floppy lemezeken + tároljuk, például olyankor, amikor más + cserélhetõ tárolóeszköz már + nem jöhet számításba, vagy amikor kis + mennyiségû adatot kell átvinnünk az egyik + számítógéprõl a + másikra. + + Ebben a szakaszban bemutatjuk hogyan kell &os; alatt floppy + lemezeket használni. Elsõsorban a 3,5 colos DOS + lemezek formázásával és + használatával foglalkozik, de ezek fogalmak a + többi hajlékonylemezes formátum esetében + is hasonlóak. + + + A hajlékonylemezek formázása + + + Az eszköz + + A floppy lemezek a többi eszközhöz + hasonlóan a /dev + könyvtárban érhetõek el. A nyers + floppy lemezek eléréséhez egyszerûen + csak használjuk a + /dev/fdN + hivatkozást. + + + + + A formázás + + Használat elõtt a floppy lemezeket alacsony + szinten meg kell formázni. Ezt általában + maga a gyártó végzi el, de a + formázás gyakran hasznos lehet a lemez + sértetlenségének + ellenõrzésére. A legtöbb floppy lemez + hivatalos kapacitása 1440 KB, de + használhatjuk nagyobb (és kisebb) + méretekben is. + + A floppy lemezek alacsony szintû + formázására az &man.fdformat.1; parancsot + használhatjuk. Ez a segédprogram + paraméterként az eszköz nevét + várja. + + Figyeljünk a menetközben megjelenõ + hibaüzenetekre, mivel ezek segítik eldönteni, + hogy a lemez használható vagy sem. + + + A hajlékonylemezek + formázása + + A + /dev/fdN + eszközök segítségével tudunk + megformázni egy floppy lemezt. Tegyünk be egy + 3,5 colos floppy lemezt a meghajtóba, majd adjuk + ki a következõ parancsot: + + &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 + + + + + + + A lemez címkézése + + Miután alacsony szinten formáztuk a lemezt, + tennünk kell rá egy lemezcímkét is. + Ez a lemezcímke késõbb meg fog + semmisülni, de a rendszernek szüksége van + rá, hogy pontosan meg tudja állapítani a + lemez méretét és + geometriáját. + + Az új lemezcímke lefedi az egész + lemezt, és tartalmazni fogja az összes + információt a floppy + geometriájáról. A + lemezcímkék geometriaértékeit az + /etc/disktab állományban + találjuk meg felsorolva. + + Most már futtathatjuk is a &man.bsdlabel.8; + parancsot: + + &prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440 + + + + + Az állományrendszer + + A hajlékonylemez most már készen + áll a magas szintû formázásra. Ennek + során egy új állományrendszert + teszünk rá, amelyet a &os; képes írni + és olvasni. Miután létrejött ez az + új állományrendszer, a lemezcímke + megsemmisül, így tehát ha újra meg + akarjuk formázni a lemezt, akkor újra létre + kell majd hoznunk a lemezcímkét. + + A floppy állományrendszere lehet UFS vagy FAT. + A FAT általánosságban véve jobb + választás a floppy lemezek + számára. + + Az alábbi módon tudunk új + állományrendszert tenni a floppyra: + + &prompt.root; /sbin/newfs_msdos /dev/fd0 + + A lemez most már készen áll a + használatra. + + + + + A hajlékonylemezek használata + + A floppy lemezt használatához a + &man.mount.msdosfs.8; paranccsal kell csatlakoztatnunk. + Ugyanerre a célra használhatjuk a + Portgyûjteménybõl elérhetõ + emulators/mtools portot + is. + + + + + + Szalagok létrehozása és + használata + + szalagos + adathordozó + + A legfontosabb szalagos adathordozók a 4 mm-es, + 8 mm-es, QIC, a minikazettás és a DLT. + + + 4 mm-es (Digitális adattároló, + avagy DDS: Digital Data Storage) + + + szalagos adathordozó + (4 mm-es) DDS-szalagok + + + szalagos adathordozó + QIC-szalagok + + + A 4 mm-es szalagok a QIC-szalagokat + váltják fel a munkaállomások + biztonsági mentésének + eszközeként. Ez a tendencia csak tovább + növekedett, ahogy a Conner felvásárolta az + Archive-ot, a QIC típusú meghajtók + legnagyobb gyártóját, majd + leállított a QIC-meghajtók + gyártását. A 4 mm-es meghajtók + mérete kicsi és csendben is dolgoznak, de a + megbízhatóság terén nem + tudhatják maguknak mindazt a sikert, amit a 8 mm-es + társaiknál könyvelhettünk el. A + kazetták is sokkal olcsóbbak és kisebbek + (3 x 2 x 0,5 col, ami 76 x 51 x + 12 mm) a 8 mm-es kiadásénál. A + 4 mm-es feje, hasonlóan a 8 mm-eséhez, + valamilyen okból szintén viszonylag rövid + ideig bírja, és mind a kettõ spirális + pásztázást használ. + + Ezeknél a meghajtóknál az + adatátvitel nagyjából + 150 KB/mp-nél kezdõdik és + 500 KB/mp-nél végzõdik. Az + adattárolási képességük + 1,3 GB-tól indul és 2,0 GB-ig tart. A + hardveres tömörítés, ami a legtöbb + ilyen típusú meghajtónál + elérhetõ, közel megduplázza a + kapacitást. A többmeghajtós szalagos + könyvtár egységek egyetlen szekrényben + 6 meghajtót képes befogadni, a szalagok + automatikus cserélgetésével. Az ilyen + könyvtárak kapacitása a 240 GB-ot is + elérheti. + + A DDS-3 szabvány most már akár + 12 GB (vagy tömörítve 24 GB) + kapacitást is elérhetõvé tesz. + + A 4 mm-es meghajtók, hasonlóan a + 8 mm-es meghajtókhoz, spirális + pásztázást alkalmaznak. A spirális + pásztázás összes elõnye és + hátránya ezért egyaránt él a + 4 mm-es és 8 mm-es meghajtók + esetén. + + A szalagok 2 000 menet vagy 100 teljes mentes + után kopnak el. + + + + + 8 mm-es (Exabyte) + + + szalagos adathordozó + (8 mm-es) Exabyte szalagok + + + A 8 mm-es szalagok a legelterjedtebb szalagos + SCSI-meghajtók. A szalagok használatára ez + a legjobb választás. Szinte mindegyik rendszerben + egy 2 GB-os 8 mm-es Exabyte szalagos meghajtót + használnak. A 8 mm-es meghajtók + megbízhatóak, kényelmesek és + csendesek. A kazetták olcsók és kicsik + (4,8 x 3,3 x 0,6 col, azaz 122 x 84 x + 15 mm). A 8 mm-es szalagok feje viszonylag csak + rövid ideig bírja a szalag nagy + mértékû oda-vissza mozgása + miatt. + + Az adatátvitel sebessége + 250 KB/mp-tõl 500 KB/mp-ig terjed, valamint a + 300 MB-tól egészen 7 GB-os + méretig találkozhatunk velük. A + meghajtókban elérhetõ hardveres + tömörítés képes közel + megduplázni a kapacitást. Ezek a meghajtók + önálló egységként is + beszerezhetõek vagy egy 6 egységbõl + álló és 120 szalagos szalagos + könyvtár részeként. Ezek az + egységek önállóan + váltják a szalagokat. Az ilyen + könyvtárak kapacitása eléri a + közel 840 GB-ot. + + Az Exabyte Mammoth modellje + szalagonként 12 GB + (tömörítéssel pedig 24 GB) adatot + képes tárolni, viszont a hagyományos + szalagos meghajtóknál nagyjából + kétszer többe kerül. + + Az adatok spirális pásztázással + kerülnek a szalagra, és a fejek adott + (nagyjából 6 fokos) szögben állnak a + szalag felett. A szalag a fejeket tartó orsó + köré tekeredik, körülbelül 270 + fokban. Ennek eredményképpen nagyobb + adatsûrûség és szorosan zárt + sávok jönnek létre, ahogy ebben a + szögben a fej eljut a szalag egyik + élérõl a másikra. + + + + + QIC + + + szalagos adathordozó + QIC-150 + + + A QIC-150 meghajtók és szalagok talán a + legelterjedtebb szalagos egységek és + adathordozók. A QIC szalagos meghajtók a + legolcsóbb komolynak tekinthetõ + biztonsági mentésre alkalmas meghajtók. Az + olcsóság azonban megköveteli a maga + árát. A QIC-szalagok a 4 és 8 mm-es + szalagokkal szemben akár ötször is + drágábbak lehetnek gigabyte-onként. De ha + megelégszünk csupán féltucat szalaggal + is, akkor a QIC jó vásárnak tûnhet. A + QIC a leginkább elterjedtebb + szalagos meghajtó. Minden rendszerben biztonsan + találunk valamilyen minõségben + QIC-meghajtót. A QIC fizikailag hasonló + (és gyakran azonos) felépítésû + szalagokat gyárt rengeteg különbözõ + adatsûrûséggel. Az ilyenkor keletkezõ + súrlódások miatt a QIC-meghajtók + egyáltalán nem nevezhetõek csendesnek. Az + ilyen típusú meghajtók az adatok + rögzítése elõtt külön + hangjelenség kíséretében keresik meg + a megfelelõ pozíciót és tisztán + hallható, ahogy olvasnak, írnak és + keresnek. A QIC-szalagok mérete 6 x 4 x + 0,7 col (avagy 152 x 102 x 17 mm). + + Az adatátviteli sebesség + nagyjából 150 KB/mp-tõl + 500 KB/mp-ig terjedhet. A kapacitás + szalagonként 40 MB és 15 GB + között változhat. A legtöbb újabb + QIC-meghajtó támogatja a hardveres + tömörítést. QIC-meghajtókat + azonban egyre kevésbé találhatunk, + helyüket szépen lassan mindenhol átveszik a + DAT-meghajtók. + + A szalagokra sávokban rögzítik az + adatokat. Ezek a sávok szalag felületének + hosszanti tengelyén futnak az egyik + végétõl a másikig. A sávok + száma valamint a sávok vastagsága a + szalagok kapacitásától függõen + változnak. Ha nem is összes legújabb, de a + legtöbb meghajtó legalább olvasás + szintjén kompatibilis a régebbi típusokkal + (de gyakran írásban is). A QIC híresen + megbízható az adatbiztonság + tekintetében (a mechanikája sokkal egyszerûbb + és strapabíróbb a spirális + pásztázással mûködõ + meghajtókénál). + + A szalagokat 5000 mentés után érdemes + lecserélni. + + + + + DLT + + + szalagos adathordozó + DLT + + + A DLT rendelkezik a legnagyobb adatátviteli + sebességgel az itt összefoglalt mezõnyben. A + 1/2 colos (12,5 mm-es) szalag egy egyorsós + tokban foglal helyet (mérete 4 x 4 x + 1 col, azaz 100 x 100 x 25 mm). A tok egyik + oldalán végig egy csúszó kapu + található. A meghajtó ezt a kaput nyitja + ki és ezen keresztül húzza be a szalagot. A + szalag elején található egy ovális + lyuk, amibe a meghajtó bele tud + akaszkodni. A feszítõ orsó a + szalagos meghajtóban foglal helyet. Az összes + többi szalag esetén (kivéve egyedül a 9 + sávos szalagokat) mind a segéd- és + feszítõ orsók magában a + kazettában találhatóak. + + Az adatátviteli sebessége + megközelítõleg 1,5 MB/mp, tehát + háromszor nagyobb bármelyik 4 mm-es, + 8 mm-es vagy QIC-szalagos egységénél. + Az adattároló képessége + kazettánként 10 GB-tól 20 GB-ig + terjedhet. A meghajtók egyaránt + elérhetõek többkazettás, + cserélgetõs és többkazettás, + többmeghajtós könyvtárakban is, melyek 5 + kazettától egészen 900 kazettáig, + illetve 1 meghajtótól 20 meghajtóig + képesek befogadni, így teljes + tárterületük 50 GB-tól 9 TB-ig + terjed. + + A DLT Type V formátum + tömörítéssel közel 70 GB-os + kapacitást képes elérni. + + A szalagra az adatok a haladási iránnyal + párhuzamosan kerülnek fel (akárcsak a + QIC-szalagok esetében). Egyszerre két + sávot rögzít. A + író/olvasó fejek élettartama + viszonylag nagy. Ahogy a szalag megáll, a fej és + a szalag között nincs szükség + további relatív mozgásra. + + + + + AIT + + + szalagos adathordozó + AIT + + + Az AIT a Sony új formátuma, ami egészen + 50 GB mennyiségû adatot képes + tárolni (tömörítéssel) egyetlen + szalagon. A szalagokat memóriachipekkel + látják el, melyek a szalag tartalmát + indexelik. Az indexek felhasználásával + aztán a szalagos meghajtó villámgyorsan + képes meghatározni a szalagon + található állományok helyét, + szemben az ilyenkor megszokott többperces mûvelettel. + A SAMS:Alexandria és a + hozzá hasonló szoftverek negyven vagy több + AIT-szalagos könyvtárral is képesek egyszerre + dolgozni, és közvetlenül a szalagok + memóriájával veszik fel a kapcsolatot a + tartalmuk megjelenítéséhez, a mentett + állományok rendszerezéséhez, a + helyes szalag megkereséséhez, + betöltéséhez és + visszatöltéséhez. + + Az ilyen könyvtárak a 20 000 + dolláros (kb. 3,5 millió forintos) + árkategóriába tartoznak, ami miatt csak egy + kicsivel csúsznak ki a hobbi + kategóriából. + + + + + Az új szalagok elsõ használata + + Amikor az elsõ alkalommal akarunk beolvasni vagy + írni egy új, teljesen üres szalagot, + hibára fogunk futni. Egy ehhez hasonló + konzolüzenet fog megjelenni: + + sa0(ncr1:4:0): NOT READY asc:4,1 +sa0(ncr1:4:0): Logical unit is in process of becoming ready + + A szalag nem tartalmaz azonosító blokkot + (Identifier Block) a nulladik blokkban. A QIC-525 + szabvány átvétele óta mindegyik QIC + szalagos meghajtó létrehozza ezt az + azonosító blokkot. Tehát két + megoldás létezik: + + + + Az mt fsf 1 paranccsal + felírunk egy ilyen azonosító blokkot a + szalagra. + + + + A meghajtó elõlapján + található gomb + segítségével dobassuk ki a + szalagot. + + Rakjuk vissza a szalagot és hajtsunk végre + rajta egy dump parancsot. + + A dump parancs erre egy + DUMP: End of tape detected + (szalag vége) hibaüzenetet ad, + majd a következõ jelenik meg a konzolon: + HARDWARE FAILURE info:280 + asc:80,96. + + Tekertessük vissza a szalagot az mt + rewind paranccsal. + + A szalag következõ mûvelete most + már sikeres lesz. + + + + + + + + Biztonsági mentés + hajlékonylemezekre + + + Hajlékonylemezre is lehet biztonsági + mentést készíteni? + + biztonsági + floppyk + floppy lemezek + + A floppy lemezek nem igazán felelnek meg + biztonsági mentés + készítésére, mivel: + + + + Nem megbízható adathordozók, + különösen hosszabb idõre. + + + + Esetükben a mentés és + visszaállítás nagyon + lassú. + + + + Kapacitásuk erõsen korlátozott (annak + már régen elmúlt az ideje, amikor + egész merevlemezeket tudtunk lementeni egy tucat + floppyra). + + + + Habár ha máshogy nem tudunk biztonsági + mentést készíteni, akkor a floppy + lemezekkel még mindig jobban járunk, mint + nélkülük. + + Ha már mindenképpen floppy lemezeket kell + használnunk, akkor igyekezzünk minél jobb + minõségûeket beszerezni. Tehát az olyan + floppyk, amik már évek óta kavarognak az + irodában, erre a célra nem éppen + bizonyulnak a legjobb választásnak. + Ideális esetben egy megbízható + gyártótól származó új + floppykat használunk. + + + + + Tehát akkor hogyan mentsük az adatokat + hajlékonylemezre? + + Legegyszerûbban a &man.tar.1; + (többkötetes) opciójával tudunk floppy + lemezre menteni, aminek használatával több + floppyra kiterjedõ mentéseket is + készíthetünk. + + Az aktuális könyvtár és a benne + levõ alkönyvtárak tartalmát + (root) felhasználóként + a következõ paranccsal tudjuk lementeni: + + &prompt.root; tar Mcvf /dev/fd0 * + + Amikor az elsõ floppy megtelik, a &man.tar.1; + kérni fogja a következõ kötetet (volume) + (mivel a &man.tar.1; adathordozótól független + módon hivatkozik a kötetekre, tehát ebben a + környezetben a kötet egy floppy lemezt jelent): + + Prepare volume #2 for /dev/fd0 and hit return: + + Az üzenet fordítása: + + Készítse elõ a 2. kötetet a /dev/fd0 eszközön és nyomja le a +return billentyût + + A folyamat egészen addig ismétlõdik (a + kötetek számának + növekedésével), amíg az összes + állomány lementésre nem kerül. + + + + + Lehet tömöríteni a + mentéseket? + + tar + gzip + tömörítés + + Sajnos a &man.tar.1; többkötetes mentések + esetén nem engedi a + beállítás használatát. + Természetesen ettõl függetlenül a + &man.gzip.1; segítségével még be + tudjuk tömöríteni az összes + állományt, a &man.tar.1; paranccsal floppyra + menteni ezeket, majd a &man.gunzip.1; paranccsal + kitömöríteni. + + + + + Hogyan állítsuk vissza a biztonsági + mentéseket? + + Az egész mentés + visszaállításához adjuk ki a + következõ parancsot: + + &prompt.root; tar Mxvf /dev/fd0 + + Két módon tudunk csak bizonyos + állományokat visszaállítani. + Elõször is, tegyük be a mentés elsõ + lemezét és adjuk ki a következõ + parancsot: + + &prompt.root; tar Mxvf /dev/fd0 állomány + + A &man.tar.1; segédprogram ezután sorban + kérni fogja a többi lemezt egészen addig, + amíg meg nem találja a keresett + állományt. + + Vagy ha pontosan tudjuk, hogy melyik lemezen + található a keresett állomány, akkor + az iménti parancs használatát azzal a + lemezzel kezdjük. Vigyázzunk, mert ha a lemezen + található elsõ állomány az + elõzõ lemezen kezdõdik, akkor a &man.tar.1; + figyelmeztetni fog minket, hogy nem állítja vissza + még akkor sem, ha erre nem is kértük! + + + + + + + + + Lowell + Gilbert + Eredetileg készítette: + + + + + Mentési stratégiák + + Egy biztonsági mentés kidolgozása + során az elsõ követelmény gondoskodnunk az + alábbi problémákról: + + + + Lemezhiba + + + Az állományok véletlen + törlése + + + Az állományok véletlenszerû + károsodása + + + Számítógépek teljes + megsemmisülése (például tûz + által), belértve a közelében + tárolt összes biztonsági + mentést + + + + Tökéletesen megoldható, hogy egyes + rendszerek a fentebb felsorolt problémák + mindegyikét teljesen eltérõ technikával + oldják meg. A nagyon személyes rendszerektõl + és a nagyon értéktelen adatoktól + eltekintve szinte egyértelmûen kizárt, hogy + egyetlen technika képes lefedni az összes + problémát. + + Kelléktárunk néhány alapvetõ + eszköze: + + + + Az egész rendszer mentése, amit egy + megbízható helyre elzárt, tartós + adattárolóra készítünk. Ez + tulajdonképpen védelmet biztosít a + fentebb megemlített összes probléma + esetében, de lassú és kényelmetlen + róla visszaállítani az adatokat. A + közelben és/vagy neten is tarthatunk errõl + másolatokat, de még így is + kényelmetlen az állományok + visszaállítása, különösen + az egyszerû felhasználók + számára. + + + + Pillanatképek készítése az + állományrendszerrõl. Ez + valójában csak olyan esetekben lehet a + segítségünkre, amikor + véletlenül töröltünk + állományokat, ám ilyenkor + határozottan jól jön, + mivel igen gyorsan és könnyen lehet vele + dolgozni. + + + + Az egész állományrendszer + és/vagy az összes lemez másolata + (például az &man.rsync.1; idõszakos + alkalmazása a komplett gépre). Az + általában az egyedi igényekkel + bíró hálózatok esetében + eshet a kezünkre. A lemezhiba ellen védelemben ez + a megoldás általában a + RAID alatt áll. A + véletlenül törölt + állományok + visszaállításának + tekintetében az UFS + pillanatképeivel mérhetõ össze, de ez + leginkább a saját igényeinktõl + függ. + + + + RAID alkalmazása. A lemezek + meghibásodása esetén segíti + minimalizálni vagy elkerülni a kiesést, + ugyan gyakori lemezhibák árán (mivel + ilyenkor több lemezt használunk) de kisebb + sürgõsséggel. + + + + Az állományok ujjlenyomatának + ellenõrzése. Az &man.mtree.8; segédprogram + nagyon hasznos tud lenni ebben az esetben. Habár ez + nem egy mentési technika, mégis segít + megállapítani, hogy mikor kell nyugdíjba + küldenünk a biztonsági mentéseinket. + Ez különösen az aktív nem + használt mentésekre vonatkozik, ezeket bizonyos + idõ elteltével mindig érdemes + ellenõrizni. + + + + Nagyon könnyû lenne további + technikákat is felsorolni, melyek legtöbbje az + iméntiek valamilyen kombinációja lenne. A + speciális igények általában + speciális technikákat eredményeznek + (például egy éles adatbázis + biztonsági mentése általában az + adott adatbáziskezelõ rendszer + közremûködését is elvárja). + Mindig fontos tudni, hogy milyen veszélyek ellen + védekezünk és hogyan kezeljük le + ezeket. + + + + + Alapvetõ tudnivalók a biztonsági + mentésrõl + + A &man.dump.8;, &man.tar.1; és &man.cpio.1; a + három legfontosabb biztonsági mentésekkel + kapcsolatos program. + + + Mentés és + helyreállítás + + + biztonsági mentést végzõ + szoftverek + mentés / + helyreállítás + + dump + restore + + A &unix; típusú rendszerekben a + biztonsági mentést hagyományosan a + dump és restore + programok végzik. A meghajtókat lemezblokkok + összeségeként kezelik, az + állományrendszerek által létrehozott + állományok, linkek és + könyvtárak szintje alatt. A dump + az adott eszközön egy egész + állományrendszert képes lementeni. Nem + képes csak az állományrendszer vagy egy + több állományrendszerre kiterjedõ + könyvtárszerkezet egy részét + lementeni. A dump nem + állományokat és könyvtárakat + ír a szalagra, hanem nyers adatblokkokat, amelyek + állományokat és könyvtárakat + formáznak. + + + Ha a dump parancsot a + gyökér könyvtárban adjuk ki, akkor nem + fogja lementeni a /home vagy + /usr vagy bármilyen más + könyvtárat, mivel ezek jellemzõ módon + más állományrendszerek + csatlakozási pontja vagy más + állományrendszerekre mutató szimbolikus + linkek. + + + A dump parancsnak vannak olyan + rigolyái, amelyek még az AT&T UNIX 6. + verziójából (1975 + környékérõl) maradtak vissza. Az + alapértelmezett paraméterezése 9 + sávos szalagokat feltételezi (6250 bpi), nem pedig + a napjainkban elterjedt nagy + írássûrûsségû + (egészen 62 182 ftpi-s) adathordozókat. Ezek + az alapértelmezések természetesen + paranccsorból felülbírálhatóak, + és így a manapság alkalmazott szalagos + meghajtók teljes kapacitása is + kihasználható vele. + + .rhosts + + Emellett az rdump és + rrestore programok + segítségével hálózaton + keresztül is le tudjuk menteni az adatainkat egy + másik számítógépre + csatlakoztatott szalagos egységre. Mind a két + program az &man.rcmd.3; és a &man.ruserok.3; parancsokat + használja a távoli szalagos meghajtó + eléréséhez. Az rdump + és rrestore paramétereinek a + távoli számítógép + használatához kell illeszkedniük. Amikor egy + &os; rendszerû számítógépet az + rdump paranccsal egy Sun rendszerû, + komodo nevû + számítógépre mentünk, amelyhez + egy Exabyte szalagos meghajtó csatlakozik, akkor ezt a + írjuk be: + + &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 + + Figyelem: az .rhosts + állományon keresztül + hitelesítésnek megvannak a maga biztonsági + kockázatai. Ne felejtsük el felmérni ezt a + saját környezetünkben sem. + + A dump és + restore parancsokat az ssh + használatával még + biztonságosabbá tehetjük. + + + A <command>dump</command> használata az + <application>ssh</application> alkalmazással + + &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ + célfelhasználó@cél.gép.hu dd of=/nagyállományok/dump-usr-l0.gz + + + + Vagy az RSH környezeti + változó megfelelõ + beállításával használhatjuk a + dump beépített + módszerét: + + + A <command>dump</command> használata az + <application>ssh</application> alkalmazással, az + <envar>RSH</envar> környezeti változó + beállításával + + &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f célfelhasználó@cél.gép.hu:/dev/sa0 /usr + + + + + + + <command>tar</command> + + + biztonsági mentést végzõ + szoftverek + tar + + + A &man.tar.1; is az AT&T UNIX 6. + verziójáig nyúlik vissza (tehát + nagyjából 1975-ig). A tar az + állományrendszerrel szoros + együttmûködésben dolgozik, + állományokat és könyvtárakat + ír a szalagra. A tar ugyan nem ismeri + a &man.cpio.1; által felkínált összes + lehetõséget, de nincs is szüksége olyan + szokatlan paranccsoros összekapcsolásokra, mint a + cpio parancsnak. + + tar + + A &os; 5.3 vagy késõbbi + változataiban a GNU tar és az + alapértelmezés szerinti bsdtar + egyaránt elérhetõ. A GNU változat a + gtar paranccsal hívható meg. + Az rdump parancshoz hasonló + felírásban képes kezelni a távoli + eszközöket. Tehát így tudjuk + használni a tar parancsot a + komodo nevû Sun + számítógép Exabíte szalagos + meghajtójának + elérésére: + + &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 + + Ugyanez eltérhetõ a bsdtar + használatával is, amikor az rsh + programmal összekapcsolva küldünk át a + távoli szalagos egységre. + + &prompt.root; tar cf - . | rsh hálózati-név dd of=szalagos-eszköz obs=20b + + Ha a hálózaton keresztül mentés + során fontos számunkra a biztonság, akkor + az rsh parancs helyett az + ssh parancsot használjuk. + + + + + <command>cpio</command> + + + biztonsági mentést végzõ + szoftverek + cpio + + + A &man.cpio.1; eredetileg a &unix; szalagos programjai + és szalagos egységei között + közvetített. A cpio parancs + (többek közt) képes a byte-ok + sorrendjének felcserélésére, + több különbözõ archívum + formátuma szerint írni és adatokat + közvetíteni más programok felé. Ez + utóbbi lehetõsége miatt a + cpio kíválóan alkalmas a + telepítõeszközök számára. A + cpio nem képes bejárni a + könyvtárszerkezetet, és az + állományok listáját a + szabványos bemeneten keresztül kell megadni + neki. + + cpio + + A cpio nem támogatja a + biztonsági mentés + átküldését a hálózaton. + Programok összekapcsolásával és az + rsh használatával tudunk + adatokat küldeni távoli szalagos + meghajtókra. + + &prompt.root; for f in könyvtár_lista; do +find $f >> mentési.lista +done +&prompt.root; cpio -v -o --format=newc < backup.list | ssh felhasználó@gép "cat > mentõeszköz" + + Ahol a könyvtár_lista + a menteni kívánt könyvtárak + listája, a + felhasználó@gép + a mentést végzõ gép + felhasználójának és + hálózati nevének együttese, valamint a + mentõeszköz, ahova a + mentés kerül (például + /dev/nsa0). + + + + + <command>pax</command> + + + biztonsági mentést végzõ + szoftverek + pax + + pax + POSIX + IEEE + + A &man.pax.1; az IEEE/&posix; válasza a + tar és cpio + programokra. Az évek során a + tar és a cpio + különbözõ változatai egy kissé + inkompatibilissé váltak. Ezért a + szabványosításuk kiharcolása helyett + inkább a &posix; létrehozott egy új + archiváló segédprogramot. A + pax megpróbálja írni + és olvasni a cpio és + tar formátumok legtöbb + változatát, valamint emellett további + saját formátumokat is kezel. A + parancskészlete inkább a cpio + parancséra emlékeztet, mintsem a + tar parancséra. + + + + + <application>Amanda</application> + + + biztonsági mentést végzõ + szoftverek + Amanda + + Amanda + + Az Amanda (Advanced Maryland + Network Disk Archiver) egy kliens-szerver alapú + mentési rendszer, nem pedig egy önálló + program. Az Amanda szerver menti + tetszõleges számú + számítógép adatát egyetlen + szalagra, melyek az Amanda klienst + futtatják és hálózaton + keresztül hozzá csatlakoznak. A nagy + mennyiségû és nagy kapacitású + lemezekkel rendelkezõ rendszerekben közvetlenül a + mentéshez szükséges idõ nem áll + rendelkezésre a feladat + elvégzéséhez. Az + Amanda viszont képes megoldani + ezt a problémát. Az + Amanda képes egy + saját lemez használatával + egyszerre több állományrendszerrõl is + biztonsági mentést készíteni. Az + Amanda + archívumkészleteket hoz + létre: az Amanda + konfigurációs állományában + megadott állományrendszerekrõl + készít teljes mentést egy adott idõ + alatt egy adott mennyiségû szalagra. Az + archívumkészlet + ezenkívül még tartalmaz egy napi + inkrementális (vagy különbözeti) + mentést is minden egyes + állományrendszerrõl. A sérült + állományrendszerek + visszaállításához mindig a + legújabb teljes biztonsági mentésre + és a hozzátartozó inkrementális + mentésekre van szükségünk. + + A konfigurációs állomány + segítségével precíz + irányítást gyakorolhatunk a + létrehozott mentések és az + Amanda által keltett + hálózati forgalom felett. Az + Amanda a fentiek közül + bármelyik programmal képes az adatokat szalagra + rögzíteni. Az Amanda + portként vagy csomagként is elérhetõ, + alapértelmezés szerint nem települ. + + + + + Ne csináljunk semmit + + A Ne csináljunk semmit nem egy + újabb számítógépes program, + hanem egy igen gyakran alkalmazott mentési + stratégia. Nem kell beruházni. Nem kell + semmilyen biztonsági mentési rendet követni. + Egyszerûen semmit se csinálunk. Ha + véletlenül valami történne az + adatainkkal, akkor csak mosolyogjunk és + törõdjünk bele! + + Amennyiben az idõnk és adataink keveset vagy + éppen semmit se érnek, akkor a Ne + csináljunk semmit az elérhetõ legjobb + biztonsági mentési megoldás + számítógépünk + számára. De legyünk óvatosak, mert a + &unix; egy igen hasznos eszköz, és fél + éven belül könnyen úgy + találhatjuk magunkat, hogy mégis csak vannak + értékes adataink. + + A Ne csináljunk semmit + tökéletesen megfelelõ mentési + módszer a /usr/obj és a + hozzá hasonló módon a + számítógépen automatikusan + generált könyvtárak és + állományok esetében. Ugyanilyen + példa lehetne a kézikönyv HTML vagy + &postscript; változata. Ezek a formátumok ugyanis + az SGML források alapján keletkeznek, így a + HTML vagy &postscript; állományok mentése + nem életbevágó. Az SGML + állományokat viszont már annál + inkább mentsük! + + + + + Melyik a legjobb? + + LISA + + &man.dump.8; Pont. Elizabeth D. Zwicky + komolyan letesztelte az itt felsorolt összes programot. A + &unix; állományrendszerek + jellegzetességeinek és rajtuk az összes + adatunk megõrzésének egyértelmûen + a dump felel meg a legjobban. Elizabeth a + minden egyes program tesztjéhez olyan + állományrendszereket hozott létre, amelyek + rengeteg különféle szokatlan helyzetet + tartalmaztak (valamint néhány nem annyira + szokatlant). Az érintett jellegzetességek: lyukas + állományok, lyukas állományok + és egy halom nulla, állományok + érdekes karakterekkel a nevükben, olvashatatlan + és írhatatlan állományok, + eszközök, a mentés közben + méretüket változtató + állományok, a mentés közben + keletkezõ és megszûnõ + állományok és még sok minden + más. Az eredményeit a LISA V-ben jelentette meg + 1991. októberében. Lásd A + biztonsági mentéshez és + archiváláshoz használt programok tesztje + (angolul). + + + + + Az adatok helyreállítása + vészhelyzetben + + + A katasztrófa elõtt + + Csupán négy lépést kell + megtennünk az esetleges katasztrófák + bekövetkezésének esetére. + + bsdlabel + + Elõször is két példányban + nyomtassuk ki az egyes lemezek + lemezcímkéjét (például a + bsdlabel da0 | lpr paranccsal) valamint az + állományrendszerek + táblázatát (az + /etc/fstab állományt) + és az összes rendszerindításkor + megjelenõ üzenetet. + + helyreállító + lemezek + + Másodsorban gondoskodjunk róla, hogy a + helyreállító lemezek + (boot.flp és + fixit.flp) használatakor minden + eszközünk látható. Ezt a + legkönnyebben úgy tudjuk ellenõrizni, hogy + újraindítjuk a gépet a lemezrõl + és átnézzük a + rendszerindítás során megjelenõ + üzeneteket. Ha szerepel bennük minden eszköz + és a rendszer indulása után + mûködõképesek, akkor jöhet a + következõ lépés. + + Ellenkezõ esetben létre kell hoznunk + két saját rendszerindító lemezt, + amelyeken a rendszermag olyan változata + található, amely képes csatlakoztatni az + összes lemezünket és el tudja érni a + szalagos egységünket. A floppykon a + következõknek kell meglennie: + fdisk, bsdlabel, + newfs, mount és a + program, amellyel a biztonsági mentéseinket + kezeljük. Az összes program legyen statikusan + linkelt. Ha a dump programot + használjuk, akkor a lemezekrõl ne felejtsük + le a restore programot sem. + + A harmadik lépésben igyekezzünk + minél gyakrabban szalagra menteni. Mindig gondoljuk + arra, hogy a legutolsó mentés óta + létrehozott változatásaink teljesen el + fognak veszni. A mentéseket tartalmazó + szalagokat tegyük + írásvédetté. + + A negyedik lépésben ellenõrizzük a + helyreállító lemezeket (vagy a + boot.flp és + fixit.flp állományokat, + vagy a második lépésben + készített saját lemezeinket) és + mentéseket tartalmazó szalagokat. + Jegyezzük le az eljárást. Ezeket a + jegyzeteket is rakjuk el rendszerindító + lemezekkel, a kinyomtatott adatokkal és a + mentéseket tartalmazó szalagokkal együtt. + Ezek a jegyzetek megvédenek minket attól, hogy a + helyreállítás közbeni + kétségbeesésünkben nehogy + véletlenül tönkretegyük a + biztonsági mentéseinket. (Hogy miként + is? Például ha a tar xvf + /dev/sa0 parancs helyett izgalmunkban a tar + cvf /dev/sa0 parancsot gépeljük be, + akkor azzal felülírjuk a biztonsági + mentéseinket). + + A fokozott biztonság kedvéért minden + alkalommal készítsünk + rendszerindító lemezeket és + legalább két mentést. Az egyiket + valamilyen távoli helyen tároljuk. Ez a + távoli hely NE ugyanannak az épületnek az + alagsora legyen! Számos cég alaposan megtanulta + ezt a szabályt a Világkereskedelmi központ + tragédiája kapcsán. Ez a távoli + hely számítógépeinkbõl + és merevlemezes meghajtóinkól is + fizikailag jól elkülöníthetõ, + jelentõs távolságban legyen. + + + A rendszerindító lemezek + létrehozásához + használható szkript + + /mnt/sbin/init +gzip -c -best /sbin/fsck > /mnt/sbin/fsck +gzip -c -best /sbin/mount > /mnt/sbin/mount +gzip -c -best /sbin/halt > /mnt/sbin/halt +gzip -c -best /sbin/restore > /mnt/sbin/restore + +gzip -c -best /bin/sh > /mnt/bin/sh +gzip -c -best /bin/sync > /mnt/bin/sync + +cp /root/.profile /mnt/root + +chmod 500 /mnt/sbin/init +chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt +chmod 555 /mnt/bin/sh /mnt/bin/sync +chmod 6555 /mnt/sbin/restore + +# +# Egy minimális állományrendszeri táblázat létrehozása. +# +cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < + + + + + + + A katasztrófa után + + Az alapvetõ kérdés: a hardver + túlélte? Ha rendszeresen + készítettünk biztonsági + mentéseket, akkor a szoftverek miatt + egyáltalán nem kell aggódnunk. + + Ha a hardver megsérült, akkor a + számítógép + használatának újból + megkezdése elõtt javasolt cserélni a + meghibásodott alkatrészeket. + + Ha a hardverrel minden rendben találtunk, akkor + nézzük meg a floppykat. Ha saját + rendszerindító lemezt használunk, akkor + indítsuk el egyfelhasználós módban + (a boot: parancssornál írjuk + be, hogy -s) és ugorjuk át a + következõ bekezdést. + + Amennyiben viszont a boot.flp + és fixit.flp + állományok alapján + készítettük a lemezeket, olvassunk + tovább. Helyezzük a boot.flp + tartalmú lemezt az elsõdleges floppy + meghajtóba és indítsuk el vele a + számítógépet. Az eredeti + telepítõmenü jelenik meg ezután a + képernyõn. Innen válasszuk ki a + Fixit -- Repair mode with CDROM or floppy + (Helyreállítás -- A rendszer + helyreállítása CD-rõl vagy + floppyról) menüpontot. Amikor kéri + a telepítõ, tegyük be a + fixit.flp alapján + készült lemezt. A restore + és az összes többi számunkra fontos + program a /mnt2/rescue + könyvtárban található (vagy a + &os; 5.2-nél korábbi változatai + esetén a /mnt2/stand + könyvtárban). + + Egyenként állítsuk vissza az egyes + állományrendszereket. + + mount + gyökér + partíció + bsdlabel + newfs + + A mount paranccsal + próbáljuk meg csatlakoztatni az elsõ + lemezünk rendszerindító + partícióját (például + mount /dev/da0a /mt). Ha a + lemezcímke megsérült, akkor + bsdlabel alkalmazásával + partícionáljuk újra a lemezt és + címkézzük meg a korábban + kinyomtatott címke adatainak megfelelõen. A + newfs segítségével + újra hozzuk létre az + állományrendszereket. + Írható-olvasható módban + csatlakoztassuk újra a floppy + rendszerinító partícióját + (mount -u -o rw /mnt). A biztonság + mentést végzõ program és a + biztonsági mentést tartalmazó szalagok + használatával állítsuk helyre az + állományrendszer tartalmát + (például restore vrf + /dev/sa0). Válasszuk le az + állományrendszert (például + umount /mnt). Mindegyik sérült + állományrendszerre ismételjük a + folyamatot. + + Ahogy mûködõképessé + vált a rendszerünk, mentsük az adatainkat + új szalagokra. Akármi is okozta a rendszer + összeomlását vagy az adatvesztést, + ismét lecsaphat. Ha most áldozunk erre + még egy órát, akkor azzal a + késõbbiekben számos + kellemetlenségtõl óvhatjuk meg + magunkat. + + + + + * Mit tegyek, ha nem készültem fel a + katasztrófára? + + + +]]> + + + + + + + + + Marc + Fonvieille + Átdolgozta és feljavította: + + + + + + Hálózat, memória és + állomány alapú + állományrendszerek + + virtuális lemezek + + lemezek + virtuális + + + A számítógépünkben + létezõ fizikai lemezek, például floppyk, + CD-k, merevlemezek és egyebek mellett a lemezek egy + másik formáját is képes + megérteni a &os; — a virtuális + lemezeket. + + NFS + Coda + + lemezek + memória + + + A virtuális lemeznek tekinthetõek többek + közt az olyan hálózati + állományrendszerek, mint például a + Hálózati + állományrendszer (Network File System, NFS) + és a Coda, valamint a memóriában és + állományokban létrehozott + állományrendszerek. + + Attól függõen, hogy a &os; melyik + változatát használjuk, az + állomány és memória alapú + állományrendszerek + létrehozásához, illetve + használatához különbözõ + segédprogramokra lesz szükségünk. + + + A &man.devfs.5; a felhasználó + számára láthatatlan módon hozza + létre az eszközök leíróit. + + + + Állomány alapú + állományrendszerek + + + lemezek + állomány alapú + + + &os; alatt az &man.mdconfig.8; segédprogram + segítségével tudunk memórialemezeket + (&man.md.4;) beállítani és + engedélyezni. Az &man.mdconfig.8; + használatához be kell töltenünk az + &man.md.4; modult vagy hozzá kell tennünk a + rendszermagunk beállításait + tartalmazó állományhoz: + + device md + + Az &man.mdconfig.8; parancs háromféle + memória alapú virtuális lemezt ismer: a + &man.malloc.9;, állományok vagy + lapozóterület használatával + létrehozott memórialemezeket. Így lehet + például csatlakoztatni a floppyk vagy CD-k + állományokban tárolt image-eit. + + Egy meglevõ állományrendszer + image-ének csatlakoztatása: + + + Egy meglevõ állományrendszer + image-ének csatlakoztatása az + <command>mdconfig</command> paranccsal + + &prompt.root; mdconfig -a -t vnode -f image -u 0 +&prompt.root; mount /dev/md0 /mnt + + + Új állományrendszer + létrehozása az &man.mdconfig.8; + használatával: + + + Új állomány alapú lemez + létrehozása az <command>mdconfig</command> + paranccsal + + &prompt.root; dd if=/dev/zero of=új-image bs=1k count=5k +5120+0 records in +5120+0 records out +&prompt.root; mdconfig -a -t vnode -f új-image -u 0 +&prompt.root; bsdlabel -w md0 auto +&prompt.root; newfs md0a +/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048 + using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. +super-block backups (for fsck -b #) at: + 160, 2720, 5280, 7840 +&prompt.root; mount /dev/md0a /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0a 4710 4 4330 0% /mnt + + + Ha az beállítással + nem adjuk meg az egység számát, akkor az + &man.mdconfig.8; az &man.md.4; automatikus + kiosztásán keresztül fog egy + használatban még nem levõ eszközt + kiválasztani. Az így kiosztott egység neve + az md4 névhez hasonlóan + jelenik meg a szabványos kimeneten. Az &man.mdconfig.8; + használatának részleteirõl olvassuk el + a hozzátartozó man oldalt. + + Az &man.mdconfig.8; egy nagyon sokoldalú + segédeszköz, habár használatakor + viszonylag sok parancsot kell kiadni egy állomány + alapú állományrendszer + létrehozásához. A &os; azonban + alapból tartalmaz még egy &man.mdmfs.8; nevû + segédprogramot is, ami az &man.md.4; lemezeket az + &man.mdconfig.8; segítségével + állítja be, létrehoz rajtuk egy UFS + típusú állományrendszert a + &man.newfs.8; segítségével és + csatlakoztatja a &man.mount.8; paranccsal. Így + például, ha az iménti + állományrendszert akarjuk létrehozni + és csatlakoztatni, akkor egyszerûen csak + gépeljünk be ennyit: + + + Állomány alapú lemezek + beállítása és + csatlakoztatása az <command>mdmfs</command> + paranccsal + + &prompt.root; dd if=/dev/zero of=új-image bs=1k count=5k +5120+0 records in +5120+0 records out +&prompt.root; mdmfs -F új-image -s 5m md0 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0 4718 4 4338 0% /mnt + + + Ha az paramétert az egység + száma nélkül adjuk meg, akkor &man.mdmfs.8; + az &man.md.4; automatikus kiosztására + támaszkodva fog egy addig még nem használt + eszközt kiválasztani. A &man.mdmfs.8; + használatának pontos részleteivel + kapcsolatban lásd a hozzátartozó man + oldalt. + + + + + Memória alapú + állományrendszerek + + + lemezek + memória + állományrendszer + + + A memória alapú + állományrendszerek esetében + általában a + lapozóállomány alapú + megközelítést alkalmazzák. A + lapozóállomány alapúság nem + arra utal, hogy a memórialemezt alapból + kilapozzák lemezre, hanem inkább arra, hogy a + memórialemez olyan területen jön létre, + amelyet szükség esetén lemezre lehet lapozni. + Memória alapú lemezeket a (rendszermag + szintû) &man.malloc.9; használatával is + létre lehet hozni, de a malloc alapú + memórialemezeknél, különösen a + nagyon nagyok esetében, a rendszer könnyen + össze tud omlani, ha kifut a rendelkezésére + álló memóriából. + + + Új memória alapú lemez + létrehozása az <command>mdconfig</command> + paranccsal + + &prompt.root; mdconfig -a -t swap -s 5m -u 1 +&prompt.root; newfs -U md1 +/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 + using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. + with soft updates +super-block backups (for fsck -b #) at: + 160, 2752, 5344, 7936 +&prompt.root; mount /dev/md1 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md1 4718 4 4338 0% /mnt + + + + Új memória alapú lemez + létrehozása az <command>mdmfs</command> + paranccsal + + &prompt.root; mdmfs -s 5m md2 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md2 4846 2 4458 0% /mnt + + + + + + Memórialemezek leválasztása a + rendszerrõl + + + lemezek + egy memórialemez + leválasztása + + + Amikor már nem akarunk tovább használni + egy memória vagy állomány alapú + állományrendszert, érdemes visszaadnunk az + általuk felhasznált erõforrásokat a + rendszernek. Elsõként válasszuk le + magát az állományrendszert, majd az + &man.mdconfig.8; segítségével kapcsoljuk le + a lemezt a rendszerrõl és szabadítsuk fel az + általa felhasznált + erõforrásokat. + + Például az /dev/md4 + eszközt így lehet lekapcsolni és + felszabadítani: + + &prompt.root; mdconfig -d -u 4 + + A beállított &man.md.4; eszközökkel + kapcsolatos többi információt az + mdconfig -l paranccsal tudjuk + lekérdezni. + + + + + + + + + Tom + Rhodes + Írta: + + + + + Az állományrendszerek + pillanatképei + + + állományrendszerek + pillanatképek + + + A &os; a Soft Updates + mellett felkínál egy másik + lehetõséget: az + állományrendszerekrõl + készíthetõ + pillanatfelvételeket. + + Ezek a pillanatképek lehetõvé teszik a + felhasználók számára, hogy adott + állományrendszerekrõl képeket hozzanak + létre és azt állományként + kezeljék. A pillanatképeket az adott + állományrendszerben kell létrehozni, + és a felhasználók + állományrendszerenként + húsznál többet nem hozhatnak + belõlük létre. Az aktív + pillanatképek a szuperblokkban kerülnek + rögzítésre, ezért az + állományrendszerek leválasztása + és újracsatlakoztatása esetén is + megmaradnak, még újraindítás + után is. Amikor egy pillanatképre már + nincs tovább szükségünk, egy szimpla + &man.rm.1; paranccsal eltávolítható. A + pillanatképek tetszõleges sorrendben + eltávolíthatóak, habár ilyenkor az + összes általuk lefoglalt hely nem szabadul fel, + mivel más pillanatképeknek még + szüksége lehet bizonyos blokkjaira. + + Miután az &man.mksnap.ffs.8; paranccsal + létrehoztunk egy pillanatképet tartalmazó + állományt, beállítódik + rá a módosíthatatlanságot + jelentõ + állományjelzõ. Egyedül az + &man.unlink.1; parancs képez ez alól + kivételt, mivel segítségével a + pillanatképek + eltávolíthatóak. + + A pillanatképek a &man.mount.8; paranccsal + hozhatóak létre. A következõ + módon tudjuk a /var egy + pillanatképét elkészíteni a + /var/snapshot/snap + állományban: + + &prompt.root; mount -u -o snapshot /var/snapshot/snap /var + + Vagy a &man.mksnap.ffs.8; meghívásával + is készíthetünk + pillanatképeket: + + &prompt.root; mksnap_ffs /var /var/snapshot/snap + + Az állományrendszeren (például + /var) a pillanatképeket + tartalmazó állományokat a &man.find.1; + paranccsal kereshetjük meg: + + &prompt.root; find /var -flags snapshot + + Ahogy elkészítettünk egy + pillanatképet, több mindenre is + felhasználhatjuk: + + + + Egyes rendszergazdák a pillanatképeket + biztonsági mentésekhez + használják, mivel ezek gond nélkül + áttehetõek CD-re vagy szalagra. + + + + Az állományrendszerek + sértetlenségét ellenõrzõ + program, az &man.fsck.8; is lefuttatható egy ilyen + pillanatképen. Feltéve, hogy az + állományrendszer csatlakoztatásakor + tiszta volt, mindig egy tiszta (és + változásokat nem tartalmazó) + eredményt kell kapnunk. Ennek megléte + elengedhetetlen a háttérben futtatható + &man.fsck.8; mûködéséhez. + + + + Futassuk le a &man.dump.8; segédprogramot a + pillanatképen. Az így létrehozott + mentés megegyezik az állományrendszer + adott pillanatban felvett állapotával. Az + beállítás + megadásával maga a &man.dump.8; is + képes egyetlen parancsban pillanatfelvételt + készíteni, ebbõl létrehozni a + mentést, majd eltávolítani. + + + + A pillanatképet képesek vagyunk a + &man.mount.8; paranccsal az állományrendszer + befagyasztott változataként + csatlakoztatni: + + &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 +&prompt.root; mount -r /dev/md4 /mnt + + + + Így már a /mnt + könyvtárba csatlakoztatva be tudjuk járni a + befagyasztott /var + állományrendszert. Minden a + pillanatfelvétel készítésének + idõpontjának megfelelõ állapotban fog + maradni. Az egyetlen kivétel talán annyi, hogy + korábbi pillanatképek nulla méretû + állományként fognak megjelenni. Mikor + befejeztük a pillanatképek + használatát, a &man.umount.8; paranccsal le tudjuk + választani: + + &prompt.root; umount /mnt +&prompt.root; mdconfig -d -u 4 + + A és az + állományrendszerek pillanatképeinek + használatával, illetve mûszaki + leírásukkal kapcsolatban látogassuk meg + Marshall Kirk McKusick honlapját a címen + (angolul). + + + + + Az állományrendszerek + kvótái + + + nyilvántartás + lemezterület + + lemezkvóták + + A kvóták használata az + operációs rendszerben egy olyan + választható lehetõség, aminek + segítségével + állományrendszerenként korlátozni + tudjuk az egyes felhasználók vagy csoporttagok + által elhasznált lemezterület és/vagy + állományok mennyiségét. Ezt + leggyakrabban olyan idõosztásos rendszerekben + használják ki, ahol szükség lehet az + egyes felhasználókra vagy csoportokra esõ + erõforrások mennyiségének + szabályozására. Ezzel tudjuk + megakadályozni, hogy a felhasználók vagy + csoportok elfogyasszák az összes rendelkezésre + álló lemezterületet. + + + A kvóták használatának + beállítása + + Mielõtt nekilátnánk a + kvóták használatának, meg kell + gyõzõdnünk róla, hogy a rendszermagunkban + megvan hozzá a szükséges + támogatás. A kvótákat a + következõ sorral lehet engedélyezni a + rendszermag beállításait tartalmazó + állományban: + + options QUOTA + + A gyári GENERIC rendszermag ezt + alapból nem engedélyezi, ezért ehhez + mindenképpen be kell állítani, le kell + fordítani és telepíteni egy kell + saját rendszermagot. A saját rendszermag + létrehozásához kövessük a utasításait. + + Ha ezzel megvagyunk, akkor a következõ sorral + bõvítsük ki az + /etc/rc.conf + állományt: + + enable_quotas="YES" + + + lemezkvóták + ellenõrzése + + + A kvótákat kezelõ rendszer + indításának finomabb + szabályozására létezik még + egy további beállítási + lehetõség is. A rendszer indítása + során általában az egyes + állományrendszerek kvótáját a + &man.quotacheck.8; program ellenõrzi. A &man.quotacheck.8; + gondoskodik róla, hogy a kvótákat + tároló adatbázis ténylegesen az + állományrendszeren található + adatokat tükrözi. Ez egy nagyon + idõigényes folyamat, ami rányomja + bélyegét a rendszer elindulásához + szükséges idõ mennyiségére is. + Amennyiben szeretnénk megtakarítani ezt a + lépést, tegyük bele az + /etc/rc.conf állományba a + direkt erre a célra kialakított + beállítást: + + check_quotas="NO" + + Végezetül az állományrendszereken + az /etc/fstab megfelelõ + módosításával tudjuk + egyenként engedélyezni a lemezkvóták + használatát. Itt lehet bekapcsolni az + állományrendszerek felhasználókra + vagy csoportokra, esetleg mind a kettõjükre + vonatkozó kvótáikat. + + Ha felhasználói szintû + kvótákat akarunk engedélyezni egy + állományrendszeren, akkor az + /etc/fstab állományban az + állományrendszer beállításai + közé vegyük fel a + opciót. Például így: + + /dev/da1s2g /home ufs rw,userquota 1 2 + + Ehhez hasonlóan tudjuk engedélyezni a + helyett a + opció használatával a csoportszintû + kvótákat is. A felhasználói- + és csoportszintû kvóták együttes + engedélyezéséhez így kell + átírni az állományrendszer + bejegyzését: + + /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 + + Alapértelmezés szerint az + állományrendszerekhez tartozó + kvóták a gyökerükben + található quota.user valamint + quota.group állományokban + tárolódnak. Errõl részletesebben az + &man.fstab.5; man oldalon olvashatunk. Noha még az + &man.fstab.5; man oldala szerint is megadható más + elérési út a kvótákat + tároló állományokhoz, + semmiképpen sem javasoljuk ezt, mert úgy + tûnik, hogy a kvótákat kezelõ + különbözõ segédprogramok ezzel nem + képesek rendesen megbirkózni. + + Most kell újraindítani a rendszerünket az + új rendszermaggal. Az /etc/rc + magától le fogja futtatni a kezdeti + kvótaállományok + létrehozásához szükséges + parancsokat az /etc/fstab + állományban megadott + állományrendszereken. Ennek megfelelõen + tehát nem nekünk kell kézzel + létrehoznunk ezeket az állományokat. + + Hétköznapi esetben egyáltalán nem + kell manuális futtatnunk a &man.quotacheck.8;, + &man.quotaon.8; vagy &man.quotaoff.8; parancsokat. Habár + ha tisztában szeretnénk lenni a pontos + mûködésükkel, akkor mindenképpen + lapozzuk fel a hozzájuk tartozó man + oldalakat. + + + + + A kvóták + beállítása + + + lemezkvóták + korlátok + + + Ahogy sikerült beállítani a + kvóták használatát, egybõl + ellenõrizzük is a + mûködõképességüket. Ezt + legegyszerûbben a következõ paranccsal + tehetjük meg: + + &prompt.root; quota -v + + Itt egy sorban összefoglalva láthatjuk a + jelenlegi lemezhasználatot és az egyes + állományrendszereken engedélyezett + kvóták korlátait. + + Most már készenállunk arra, hogy az + &man.edquota.8; paranccsal végre korlátokat is + beállítsunk a kvótákhoz. + + Számos beállítás áll + rendelkezésünkre a felhasználók vagy + csoportok által lefoglalható lemezterület + vagy a létrehozható állományok + számának korlátozását + illetõen. A helyfoglalást szabályozhatjuk + lemezterület alapján (blokk kvóta) vagy az + állományok száma szerint + (állományleíró kvóta), + esetleg a kettõ kombinációjával. A + korlátok további két + kategóriára bonthatóak: erõsre + és gyengére. + + erõs korlát + + Az erõs korlátot (hard limit) nem lehet + túllépni. Ahogy a felhasználó + eléri a számára kiszabott erõs + korlátot, semmilyen további területet nem + használhat fel a kérdéses + állományrendszeren. Például, ha a + felhasználónak az állományrendszeren + 500 kilobyte-os erõs korlátot + állítottunk be, és éppen 490 + kilobyte-nál tart, akkor a felhasználó + innen már csak 10 kilobyte-nyi helyet foglalhat le. 11 + kilobyte lefoglalása már nem fog sikerrel + járni. + + gyenge korlát + + Ezzel szemben a gyenge korlátok (soft limit) egy + adott ideig átléphetõek. Ezt az idõt + türelmi idõnek (grace period) nevezik, ami + alapértelmezés szerint egy hét. Ha a + felhasználó a gyenge korláton felül + marad a türelmi idõ után is, akkor ezt a gyenge + korlát erõssé válik és + semmilyen további helyfoglalásra nem lesz + lehetõsége. Amikor a felhasználók + újra a gyenge korlát alá kerül, a + türelmi idõ is visszaáll a + beállított értékére. + + A most következõ példában az + &man.edquota.8; parancsot mutatjuk be. Amikor meghívjuk + az &man.edquota.8; parancsot, akkor elindul az + EDITOR környezeti változónak + megfelelõ szövegszerkesztõ, illetve ennek + hiányában a vi, + és lehetõségünk nyílik a + kvóta korlátainak + módosítására. + + &prompt.root; edquota -u teszt + + Quotas for user teszt: +/usr: kbytes in use: 65, limits (soft = 50, hard = 75) + inodes in use: 7, limits (soft = 50, hard = 60) +/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) + inodes in use: 0, limits (soft = 50, hard = 60) + + Normális esetben minden kvótával + rendelkezõ állományrendszerhez két + sort kapunk. Közülük az egyik sorban szerepelnek + a blokkok korlátai, a másikban az + állományleírók korlátai. Ha + valamelyiküket meg akarjuk változtatni, akkor + egyszerûen csak át kell írnunk az adott + korlát értékét. + Például növeljük meg a + felhasználók 50-es gyenge és 75-ös + erõs blokk korlátját 500-as gyenge és + 600-as erõs korlátra. Ehhez szerkesszük + át a + + /usr: kbytes in use: 65, limits (soft = 50, hard = 75) + + sort erre: + + /usr: kbytes in use: 65, limits (soft = 500, hard = 600) + + Az új korlátok akkor fognak + érvénybe lépni, miután + kiléptünk a + szövegszerkesztõbõl. + + Néha hasznos lehet a korlátokat adott + felhasználói azonosítókhoz + beállítani. Ezt az &man.edquota.8; parancs + paraméterével tudjuk + elvégezni. Elõször is állítsuk + be egy felhasználónak a beállítani + kívánt korlátokat, majd futtassuk le az + edquota -p teszt + kezdõuid-véguid + parancsot. Például ha a + teszt nevû + felhasználónak állítottuk be a + számunkra megfelelõ korlátokat, akkor a + következõ paranccsal lehet a rá + vonatkozó korlátokat kiterjeszteni a 10 000 + és 19 999 közötti + azonosítójú + felhasználókra: + + &prompt.root; edquota -p teszt 10000-19999 + + Errõl bõvebben az &man.edquota.8; man + oldalán kaphatunk + felvilágosítást. + + + + + A kvóták korlátainak és a + lemezhasználat ellenõrzése + + + lemezkvóták + ellenõrzése + + + A kvóták korlátait és a lemez + jelenlegi kihasználtságát a &man.quota.1; + vagy &man.repquota.8; parancsokkal is ellenõrizhetjük. + A &man.quota.1; parancs segítségével + ellenõrizhetõ az egyes felhasználók vagy + csoportok kvótája és + lemezhasználata. A felhasználók csak a + saját adataikhoz férhetnek hozzá, illetve + mindazon csoportokéhoz, aminek tagjai. Egyedül a + rendszeradminisztrátor képes látni az + összes felhasználó és csoport + kvótáját. A &man.repquota.8; paranccsal + kérdezhetõ le az összes kvóta és + lemezhasználat rövid kimutatása minden olyan + állományrendszeren, ahol azok + engedélyezettek. + + A következõ kimenet a quota -v + parancstól származik, ahol a + felhasználónak két + állományrendszeren is vannak + kvótái: + + Disk quotas for user teszt (uid 1002): + Filesystem usage quota limit grace files quota limit grace + /usr 65* 50 75 5days 7 50 60 + /usr/var 0 50 75 0 50 60 + + türelmi idõ + + A fenti példában látható, hogy a + felhasználó a /usr + állományrendszeren pillanatnyilag 15 kilobyte-tal + van az 50 kilobyte-os gyenge korlátja felett + és 5 napja van hátra a türelmi + idõbõl. Vegyük észre a szám + mellett levõ csillagot (*), amivel a + rendszer jelzi, hogy a felhasználó + túllépte a korlátját. + + A &man.quota.1; parancs kimenetében + általában nem jelennek meg azok az + állományrendszerek, amelyeken a + felhasználónak ugyan vannak kvótái, + de nem foglal rajtuk lemezterületet. A + beállítás megadásával ezek az + állományrendszerek is + láthatóvá válnak, mint ahogy azt a + fenti példában is megfigyelhettük a + /usr/var esetében. + + + + + Kvóták NFS-en keresztül + + NFS + + A kvóták az NFS szerver + kvótákért felelõs + alrendszerében is engedélyezhetõek. Az + &man.rpc.rquotad.8; démon teszi az NFS klienseken + futtatott &man.quota.1; parancsok számára + elérhetõvé a kvótákkal + kapcsolatos információkat, aminek + köszönhetõen a felhasználók + távolról is képesek lekérdezni a + kvótáikat. + + Az rpc.rquotad + aktivilásához a következõt kell + beállítani az /etc/inetd.conf + állományban: + + rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad + + Majd ne felejtsük el újraindítani az + inetd démont sem: + + &prompt.root; /etc/rc.d/inetd restart + + + + + + + + + + Lucky + Green + Írta: + +
shamrock@cypherpunks.to
+
+
+
+
+ + A lemezpartíciók + titkosítása + + + lemezek + titkosítása + + + A &os; kitûnõ futásközbeni + védelmet ajánl fel az adatok illetéktelen + hozzáférése ellen. Az + állományok engedélyei és a + kötelezõ + hozzáférés-vezérlés (Mandatory + Access Control, MAC, lásd ) + segítenek megvédeni érzékeny + adatainkat az illéktelenek ellen az operációs + rendszer futása és a + számítógép mûködése + során. Azonban az operációs rendszerben + kezelt engedélyek teljesen hatástalanok abban az + esetben, ha a támadó fizikailag is képes + hozzáférni a + számítógépünkhöz, + eltávolítani a merevlemezt és egy + másik operációs rendszer + segítségével kielemezni a rajta + található fontos adatainkat. + + Függetlenül attól, hogy a + támadó valójában miként is + férkõzött hozzá a + merevlemezünkhöz, vagy miként kapcsolta le a + számítógépünket, a &os; + megtalálható GEOM alapú + lemeztitkosítás (gbde) és a + geli titkosítási alrendszer + egyaránt képes védelmet nyújtani a + számítógépen található + állományrendszerek számára az + értékes adatok után kutató igen + motivált betörõk ellen. A csupán egyes + állományokra kiterjedõ körmönfont + titkosítási módszerekkel szemben a + gbde és a geli az + egész állományrendszert + észrevétlen módon titkosítja. + Titkosítatlan adat nem is kerül a merevlemezre. + + + A lemez titkosítása a + <application>gbde</application> + használatával + + + + Váljunk <username>root</username> + felhasználóvá + + A gbde + beállításához + rendszeradminisztrátori jogosultságokra lesz + szükségünk. + + &prompt.user; su - +Password: + + + + Adjuk hozzá a &man.gbde.4; + támogatását a rendszermag + konfigurációs + állományához + + Tegyük a következõ sort a rendszermag + beállításait tartalmazó + állományba: + + options GEOM_BDE + + Fordítsuk újra a rendszermagot a ben leírtak szerint. + + Indítsuk el a + számítógépet az új + rendszermaggal. + + + + A rendszermag újrafordítása helyett + a kldload paranccsal is + betölthetjük a &man.gbde.4; + modulját: + + &prompt.root; kldload geom_bde + + + + + A titkosított merevlemez + elõkészítése + + A következõ példa azt feltételezi, + hogy a rendszerünkhöz egy új merevlemezt adunk + hozzá, amin egyetlen titkosított + partíció foglal helyet. Ezt a + partíciót a /private + könyvtárba fogjuk csatlakoztatni. A + gbde használható a + /home és a + /var/mail + titkosítására is, de ennek + megvalósítása olyan bonyolult + utasításokat igényel, amelyek + meghaladják ennek a bevezetésnek a + kereteit. + + + + Az új merevlemez + hozzáadása + + A ban bemutatottak szerint + adjuk hozzá a rendszerünkhöz az új + merevlemezt. A példában az új lemez + partícióját a + /dev/ad4s1c néven fogjuk + tudni elérni. A + /dev/ad0s1* + eszközök a példában szereplõ + &os; rendszer szabványos partícióit + jelölik. + + &prompt.root; ls /dev/ad* +/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 +/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c +/dev/ad0s1a /dev/ad0s1d /dev/ad4 + + + + Hozzunk létre egy könyvtárat a gbde + zárolásainak + tárolásához + + &prompt.root; mkdir /etc/gbde + + A gbdenek azért van + szüksége a zárolásokat + rögzítõ állományokra, hogy + hozzá tudjon férni a titkosított + partíciókhoz. Amennyiben ezt nem tudja + megtenni, a gbde + anélkül nem lesz képes visszafejteni a + titkosított partíciókon tárolt + adatokat, hogy az ezeket elérni akaró + szoftvereknek ne kelljen jelentõsebb + mértékben manuálisan beavatkoznia. + Mindegyik titkosított partíció + külön zároló állományt + használ. + + + + A gbde partíció + inicializálása + + A gbde által + használt partíciókat használatuk + elõtt inicializálni kell. Ezt a mûveletet + azonban csak egyszer kell elvégezni: + + &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock + + A &man.gbde.8; ekkor elindít egy + szövegszerkesztõt és benne egy sablon + segítségével be tudjuk + állítani a különbözõ + konfigurációs értékeket. Az + UFS1 vagy UFS2 használata esetén + állítsuk a szektorméretet + 2048-ra: + + $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ +# +# Sector size is the smallest unit of data which can be read or written. +# Making it too small decreases performance and decreases available space. +# Making it too large may prevent filesystems from working. 512 is the +# minimum and always safe. For UFS, use the fragment size +# +sector_size = 2048 +[...] + + + A megjegyzés fordítása: + + A szektorméret az adatok írásának és olvasásának legkisebb egysége. Ha +túlságosan kicsire választjuk meg, akkor csökken a teljesítmény és csökken a +rendelkezésre álló hely. Ha viszont túlságosan nagyra hagyjuk, akkor azzal +akadályozzuk az állományrendszerek munkáját. 512 a legkisebb érték, amely mindig +megbízható. Az UFS esetén használjuk a fragmensek méretét. + + A &man.gbde.8; kétszer is rá fog + kérdeni az adatok titkosítására + használt jelmondatra. A jelmondatnak + természetesen mind a kétszer ugyanannak kell + lennie. A gbde + védelmének hatékonysága teljesen + mértékben az általunk választott + jelmondat minõségétõl függ + + A könnyen megjegyezhetõ ám + mégis biztonságos jelmondatok + megválasztásához a Diceware + Passphrase honlapján találunk egy + kis segítséget + (angolul). + . + + A gbde init parancs létrehoz + egy zároló állományt a + gbde partícióhoz, + amely ebben a példában az + /etc/gbde/ad4s1c.lock néven + keletkezett. A gbde + zároló állományainak + .lock névre kell + végzõdniük, mivel az + /etc/rc.d/gbde + indítószkript csak ebben az esetben + észleli rendesen. + + + A gbde zároló + állományait a titkosított + partíciók tartalmával együtt + kell lementeni. Miközben a + zároló állomány + törlése nem tudja megakadályozni, hogy + az elszánt támadó visszafejtse a + gbde által + titkosított partíciót, addig a + zároló állomány + nélkül a jogos tulajdonos órási + mennyiségû munka befektetése + nélkül képtelen lesz + hozzáférni a rajta levõ adatokhoz. Ez + utóbbitól egyébként a + &man.gbde.8; és a rendszer tervezõje is + totálisan elhatárolja magát. + + + + + A titkosított partíció + illesztése a rendszermaghoz + + &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock + + Ekkor a titkosított partíció + illesztéséhez a rendszer kérni fogja az + inicializálás során választott + jelmondatot. Ezután az új titkosított + eszköz megjelenik a /dev + könyvtárban + /dev/eszköznév.bde + néven: + + &prompt.root; ls /dev/ad* +/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 +/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c +/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde + + + + Állományrendszer + kialakítása egy titkosított + eszközön + + Ahogy sikerült a titkosított eszközt + illeszteni a rendszermaghoz, létre is tudunk hozni + egy állományrendszert rajta. Erre a + célra a &man.newfs.8; remekül + használható. Mivel egy új UFS2 + állományrendszerek + inicializálása sokkal gyorsabb a régi + UFS1 állományrendszerek + inicializálásánál, ezért + a &man.newfs.8; használata esetén az + beállítás + megadása ajánlott. + + &prompt.root; newfs -U -O2 /dev/ad4s1c.bde + + + A &man.newfs.8; parancsot egy illesztett + gbde partíción + kell végrehajtani, amit onnan ismerhetünk meg, + hogy az eszköz nevében szerepel a + *.bde + kiterjesztés. + + + + + A titkosított partíció + csatlakoztatása + + Hozzunk létre egy csatlakozási pontot a + titkosított állományrendszer + számára. + + &prompt.root; mkdir /privát + + Csatlakoztassuk a titkosított + állományrendszert. + + &prompt.root; mount /dev/ad4s1c.bde /privát + + + + Ellenõrizzük a titkosított + állományrendszer + mûködõképességét + + A titkosított állományrendszert + most már látja a &man.df.1; program és + készen áll a használatra. + + &prompt.user; df -H +Filesystem Size Used Avail Capacity Mounted on +/dev/ad0s1a 1037M 72M 883M 8% / +/devfs 1.0K 1.0K 0B 100% /dev +/dev/ad0s1f 8.1G 55K 7.5G 0% /home +/dev/ad0s1e 1037M 1.1M 953M 0% /tmp +/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr +/dev/ad4s1c.bde 150G 4.1K 138G 0% /private + + + + + + + Létezõ titkosított + állományrendszerek csatlakoztatása + + A rendszer minden egyes indítása után + az összes titkosított + állományrendszert tényleges + használata elõtt újra illeszteni kell a + rendszermaghoz, ellenõrizni az épségét + és csatlakoztatni. Az ehhez szükséges + parancsokat root + felhasználóként kell kiadni. + + + + A gbde partíció illesztése a + rendszermaghoz + + &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock + + A gbde partíció + inicializálása során megadott + jelmondatot kell megadnunk a mûvelet + elvégzéséhez. + + + + Az állományrendszer + épségének + ellenõrzése + + Mivel a titkosított + állományrendszerek az automatikus + csatlakoztatáshoz még nem + szerepeltethetõek az /etc/fstab + állományban, ezért az ilyen + állományrendszereket csatlakoztatásuk + elõtt manuálisan ellenõriztetni kell a + &man.fsck.8; lefuttatásával. + + &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde + + + + A titkosított állományrendszer + csatlakoztatása + + &prompt.root; mount /dev/ad4s1c.bde /privát + + A titkosított állományrendszer most + már készen áll a + használatra. + + + + + A titkosított partíciók + önálló csatlakoztatása + + Lehet írni olyan szkriptet, amely a + titkosított partíciókat + magától illeszti, ellenõrzi és + csatlakoztatja, de biztonsági + megfontolásokból semmi esetben sem szabad + tartalmaznia a &man.gbde.8; jelszavát. Ehelyett azt + javasoljuk, hogy az ilyen szkripteknek külön meg + kelljen adni a jelszót konzolon vagy az &man.ssh.1; + használatán keresztül. + + De használhatjuk a mellékelt + rc.d szkriptet is. A szkript + paramétereit az &man.rc.conf.5; + állományon keresztül adhatjuk meg, + például: + + gbde_autoattach_all="YES" +gbde_devices="ad4s1c" +gbde_lockdir="/etc/gbde" + + Ilyenkor a gbde által + használt jelmondatot a rendszer + indításakor kell megadni. Miután + begépeltük a megfelelõ jelmondatot, a + titkosított gbde + partíció magától + csatlakoztatásra kerül. Ez akkor lehet hasznos, + ha a gbde + megoldását hordozható + számítógépeken + alkalmazzuk. + + + + + + A gbde által alkalmazott titkosítási + módszerek + + A &man.gbde.8; a szektorok tartalmát 128 bites + AES használatával CBC módban + titkosítja. A lemezen található minden + egyes szektort eltérõ AES kulccsal kódolja. + A gbde kriptográfiai + felépítését, valamint mindazt, + hogy az egyes szektorok kulcsai miként + származtathatóak a felhasználó + által megadott jelmondatból, a &man.gbde.4; man + oldalán olvashatjuk. + + + + + Kompatibilitási problémák + + A &man.sysinstall.8; nem kompatibilis a + gbde által + titkosított eszközökkel. A + &man.sysinstall.8; indítása elõtt minden + *.bde + eszközt ki kell iktatni a rendszermagból, + különben az eszközök keresése + során össze fog omlani. A + példánkban használt titkosított + eszközt a következõ paranccsal kell + lekapcsolni: + + &prompt.root; gbde detach /dev/ad4s1c + + Továbbá megjegyezzük azt is, hogy a + &man.vinum.4; nem használja a &man.geom.4; alrendszert, + ezért a gbde + alkalmazása során nem használhatunk + Vinum-köteteket. + + + + + + + + + Daniel + Gerzo + Írta: + + + + + A lemezek titkosítása a + <command>geli</command> használatával + + A &os; 6.0 változatától kezdve egy + új kriptográfiai GEOM osztály is a + rendelkezésünkre áll, melyet pillanatnyilag + &a.pjd; fejleszt. A geli segédprogram + némileg különbözõ a + gbde megoldásától + — más lehetõségeket kínál + fel és a titkosítást is egy + eltérõ séma mentén + valósítja meg. + + A &man.geli.8; legfontosabb jellemzõi a + következõk: + + + + A &man.crypto.9; keretrendszerét használja + — tehát ha rendelkezünk + kriptográfiai hardverrel, akkor a + geli automatikusan használni + fogja. + + + Több kriptográfiai algoritmust is ismer + (melyek jelenleg az AES, Blowfish és a 3DES). + + + Segítségével a + rendszerindításhoz használt + (gyökér) partíció is + titkosítható. Ilyenkor a + szükséges jelmondatot a rendszer + indításakor kell megadni. + + + Két független kulcsot (például + egy kulcsot és egy céges + kulcsot) is használhatunk vele. + + + A geli gyors — egyszerûen + csak szektorról szektorra titkosít. + + + Lehetõvé teszi a mesterkulcsok + mentését is + visszaállítását. Ha a + felhasználó véletlenül + megsemmisítené a kulcsát, akkor a + biztonsági mentésbõl + helyreállított kulcsok + segítségével vissza tudjuk szerezni az + adatainkat is. + + + Segítségével a lemezeket + véletlenszerû, egyszeri jelszavakkal is + illeszthetjük — ez különösen + fontos lapozóterületek és ideiglenes + állományrendszerek esetében. + + + + A geli által + felkínált lehetõségekrõl a + &man.geli.8; man oldalán találhatunk + többet. + + A következõ lépések + bemutatják, hogyan lehet a &os; rendszermagjában + engedélyezni a geli + támogatását, és hogyan lehet + létrehozni és használni egy + geli titkosítással + rendelkezõ adathordozót. + + A geli alkalmazásához + legalább a &os; 6.0-RELEASE vagy késõbbi + változatára van szükségünk. + Mivel a rendszermagot is módosítanunk kell, + ezért rendszeradminisztrátori jogosultságok + kellenek a mûveletek + elvégzéséhez. + + + + A <command>geli</command> + támogatásának hozzáadása + a rendszermaghoz + + Vegyük hozzá a következõ sorokat a + rendszermag beállításait + tartalmazó állományhoz: + + options GEOM_ELI +device crypto + + Fordítsuk újra a rendszermagot a ben leírtak szerint. + + Betölthetjük a geli + modulját is a rendszer indításakor. + Ehhez a következõ sort kell betenni a + /boot/loader.conf + állományba: + + geom_eli_load="YES" + + A &man.geli.8; most már használható + a rendszermagban. + + + + A mesterkulcs legenerálása + + A most következõ példában egy + kulcsot tartalmazó állomány + létrehozását illusztráljuk, amit + a /privát + könyvtárba csatlakoztatott titkosított + adathordozó mesterkulcsához fogunk + használni. A kulcs állomány a + mesterkulcs titkosításához + felhasznált véletlenszerû adatot fogja + tartalmazni, valamint rajta kívül még a + mesterkulcsot egy jelmondattal is védjük. Az + adathordozó szektormérete 4 kilobyte-os + lesz. Emellett még bemutatjuk, hogyan kell + illeszteni egy geli-adathordozót, + állományrendszert létrehozni rajta, + csatlakoztatni, dolgozni vele és lekapcsolni. + + A nagyobb teljesítmény + érdekében javasolt nagyobb + szektorméretet választani (mint + például 4 kilobyte). + + A mesterkulcsot egy jelmondattal fogjuk védeni + és a kulcsok készítéséhez + használt adatforrás a + /dev/random lesz. A + /dev/da2.eli, amelyet mit csak + adathordozónak fogunk csak hívni, szektorainak + mérete 4 kilobyte lesz. + + &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 +&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 +Enter new passphrase: +Reenter new passphrase: + + Nem kötelezõ egyszerre használni a + jelmondatot és a kulcs állományt. A + mesterkulcs elzárásának + bebiztosítására bármelyik + módszer alkalmas. + + Ha a kulcs állomány a - + paraméterrel adjuk meg, akkor a szabványos + bemenetrõl olvassa be a program. Ez a példa + több kulcs használatát mutatja be. + + &prompt.root; cat kulcs1 kulcs2 kulcs3 | geli init -K - /dev/da2 + + + + Az adathordozó illesztése a + generált kulccsal + + &prompt.root; geli attach -k /root/da2.key /dev/da2 +Enter passphrase: + + Az új titkosítatlan eszköz neve + /dev/da2.eli + lesz. + + &prompt.root; ls /dev/da2* +/dev/da2 /dev/da2.eli + + + + Az új állományrendszer + kialakítása + + &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m +&prompt.root; newfs /dev/da2.eli +&prompt.root; mount /dev/da2.eli /privát + + A titkosított állományrendszer most + már &man.df.1; számára is + látszik és használható: + + &prompt.root; df -H +Filesystem Size Used Avail Capacity Mounted on +/dev/ad0s1a 248M 89M 139M 38% / +/devfs 1.0K 1.0K 0B 100% /dev +/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr +/dev/ad0s1d 989M 1.5M 909M 0% /tmp +/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var +/dev/da2.eli 150G 4.1K 138G 0% /private + + + + + Az adathordozó leválasztása + és lekapcsolása + + Miután befejeztük a munkát a + titkosított partíción, és a + /privát + partícióra már nincs tovább + szükségünk, érdemes + leválasztanunk és kiiktatnunk a + geli titkosítású + partíciót a rendszermagból. + + &prompt.root; umount /privát +&prompt.root; geli detach da2.eli + + + + A &man.geli.8; használatáról + bõvebben a saját man oldalán + tájékozódhatunk. + + + A <filename>geli</filename> <filename>rc.d</filename> + szkriptjének használata + + A geli mellett találhatunk egy + saját rc.d szkriptet, amely + jelentõsen leegyszerûsíti a + geli használatát. A + geli például így + paraméterezhetõ az &man.rc.conf.5; + állományon keresztül: + + geli_devices="da2" +geli_da2_flags="-p -k /root/da2.key" + + Ennek segítségével a + /dev/da2 eszközt + geli adathordozóként + állítjuk be a /root/da2.key + állományban található mesterkulcs + felhasználásával, de az + illesztéskor a geli nem kér + jelmondatot (ezt csak akkor fogja tenni, ha a geli + init parancs kiadásához + hozzátesszük a + beállítást). A rendszer + leállítása elõtt pedig a + geli adathordozó így + automatikusan leválasztásra kerül. + + Az rc.d + beállításával kapcsolatos + tudnivalókat a kézikönyv rc.d szkriptekrõl + szóló szakaszában ismerhetjük + meg. + + + +
+ + + + + + + Christian + Brüffer + Írta: + + + + + A lapozóterület titkosítása + + + lapozóterület + titkosítása + + + A &os;-ben a lapozóterület + titkosítása nagyon könnyen + beállítható és már a + &os; 5.3-RELEASE változata óta + elérhetõ. Attól függõen, hogy + konkrétan a &os; melyik verzióját + használjuk, a konfigurációhoz + kapcsolódó beállítások + némileg eltérhetnek. A &os; 6.0-RELEASE + változatától kezdõdõen a + &man.gbde.8; és a &man.geli.8; alrendszerek is + használhatóak a lapozóterület + titkosítására. A korábbi + verziókban egyedül csak a &man.gbde.8; + érhetõ el. Mind a két rendszer az + encswap rc.d szkriptet + használja. + + Az elõzõ szakaszban, vagyis a A lemezpartíciók + titkosításában már röviden + összefoglaltuk a különbözõ + titkosítással foglalkozó + alrendszereket. + + + Miért kellene titkosítanunk a + lapozóterületet? + + Hasonlóan a lemezpartíciók + titkosításához, a lapozóterület + titkosításának is az a célja, hogy + védjük az érzékeny + információkat. Képzeljük el, hogy egy + olyan alkalmazással dolgozunk, amely jelszavakat kezel. + Amíg ezek a jelszavak a memóriában + maradnak, addig minden a legnagyobb rendben van. Azonban amikor + az operációs rendszer nekilát a fizikai + memória felszabadításához kilapozni + ezeket az adatokat, a jelszavak titkosítatlanul + kerülnek a lemez felületére és egy + támadó számára könnyû + prédává válnak. Ilyen helyzetekben + csak lapozóterület titkosítása + jelenthet megoldást. + + + + + Elõkészületek + + + A szakasz további részében a + ad0s1b lesz a lapozásra + használt partíció. + + + Egészen mostanáig nem titkosítottuk a + lapozóterületet. Így + elképzelhetõ, hogy a lemezre már + titkosítatlanul kikerültek jelszavak vagy + bármilyen más érzékeny adatok. A + csorba kiköszörülésére a + lapozóterületen található összes + adatot írjuk felül véletlenszerûen + generált szeméttel: + + &prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m + + + + + A lapozóterület titkosítása a + &man.gbde.8; használatával + + Ha a &os; 6.0-RELEASE vagy újabb + változatát használjuk, akkor az + /etc/fstab állományban + tegyük hozzá a .bde + utótagot az a lapozóterülethez tartozó + eszköz nevéhez. + + +# Device Mountpoint FStype Options Dump Pass# +/dev/ad0s1b.bde none swap sw 0 0 + + + A &os; 6.0-RELEASE elõtti kiadások + esetében a következõ sort is hozzá kell + tennünk az /etc/rc.conf + állományhoz: + + gbde_swap_enable="YES" + + + + + A lapozóterület titkosítása a + &man.geli.8; használatával + + A &man.gbde.8; használatához hasonlóan + a &man.geli.8; által felajánlott + titkosítást is alkalmazhatjuk a + lapozóterület védelmére. Ilyenkor az + /etc/fstab állományban az + .eli utótagot kell hozzátenni a + lapozóterülethez tartozó eszköz + névhez. + + +# Device Mountpoint FStype Options Dump Pass# +/dev/ad0s1b.eli none swap sw 0 0 + + + Az &man.geli.8; az AES algoritmust + alapértelmezés szerint 256 bites kulccsal + használja. + + Ezek az alapértelmezések + megváltoztathatóak az + /etc/rc.conf állományban a + geli_swap_flags + beállítás használatával. A + következõ sor arra utasítja az + encswap rc.d szkriptet, hogy a &man.geli.8; + és a Blowfish algoritmus használatával + hozzon létre egy lapozópartíciót + 128 bites kulccsal, 4 kilobyte-os + szektormérettel és a detach on last + close (lekapcsolás használat + után) beállítással: + + geli_swap_flags="-e blowfish -l 128 -s 4096 -d" + + A &os; 6.2-RELEASE verzió elõtti + rendszerekben a következõ sort kell + használni: + + geli_swap_flags="-a blowfish -l 128 -s 4096 -d" + + A többi beállításhoz a + &man.geli.8; man oldalán a onetime + parancs leírását érdemes + áttanulmányozni. + + + + + Ellenõrizzük a + mûködését + + Miután újraindítottuk a rendszert, a + titkosított lapozóterület helyes + mûködését a swapinfo + paranccsal ellenõrizhetjük le. + + A &man.gbde.8; esetében: + + &prompt.user; swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ad0s1b.bde 542720 0 542720 0% + + + Valamint a &man.geli.8; esetében: + + &prompt.user; swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ad0s1b.eli 542720 0 542720 0% + + + + +
+ + diff --git a/hu_HU.ISO8859-2/books/handbook/eresources/Makefile b/hu_HU.ISO8859-2/books/handbook/eresources/Makefile new file mode 100644 index 0000000000..cb030a0162 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/eresources/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= eresources/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml new file mode 100644 index 0000000000..fbea333fe9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml @@ -0,0 +1,2304 @@ + + + + + + Erõforrások az interneten + + A &os; gyors ütemû fejlõdése a nyomtatott + médiát alkalmatlanná teszi a legfrissebb + fejlesztések nyomonkövetésére. Ezzel + szemben az elektronikus erõforrások a biztos, ha gyakran + nem is csak az egyetlen, módjai a legújabb + elõrelépések figyelemmel + követésének. Mivel a &os;-t + többségében önkéntesek fejlesztik, az + õt körülvevõ felhasználói + közösség önmaga is egyfajta szakmai + segélynyújtó egyletként + funkcionál, amelyet leghatékonyabban elektronikus + levelében vagy USENET hírcsoportokon keresztül + érhetünk el. + + A továbbiakban a &os; felhasználók + közösségének különbözõ + fajtájú elérhetõségeit + vázoljuk fel nagyvonalakban. Ha úgy + érezzük, hogy ebbõl a felsorolásban kimaradt + volna valami, akkor ne habozzunk róla + értesítést küldeni a &a.doc; + címére (angolul), hogy felvehessük a többi + közé. + + + Levelezési listák + + Habár sok &os; fejlesztõ olvas USENET-et, nem + tudjuk mindig szavatolni, hogy a + comp.unix.bsd.freebsd.* csoportok + valamelyikére küldött levelek idõben (vagy + egyáltalán) megválaszolásra + kerülnek. A megfelelõ levelezési listák + címére küldött levelekkel a + fejlesztõk mellett a &os; közönségét + is egyaránt el tudjuk érni, ami változatlanul + jobb (de legalább is gyorsabb) válaszokkal + kecsegtet. + + A különbözõ listák + témájának rövid leírása a + dokumentum alján olvasható. + Szeretnénk mindenkit megkérni, hogy + mielõtt feliratkozik vagy levelet küld valamelyik + listára, figyelmesen olvassa el ezeket. Az egyes + listák tagjai már így is naponta + többszáz &os;-vel kapcsolatos üzenetet kapnak, + miközben a listák tematikájának + és szabályainak lefektetésével + igyekszünk a jel-zaj arányt minél + kedvezõbb szinten tartani. Ezek nélkül a + levelezési listák a Projekt számára + haszontalan kommunikációs + eszközökké válnának. + + + A &a.test.name; címet használjuk, ha + ki akarjuk próbálni, hogy tudunk-e levelet + küldeni a &os; listáira. A többi + listára viszont lehetõleg ne küldjünk + teszt jellegû üzeneteket. + + + Ha nem tudjuk eldönteni, hogy pontosan melyik + listát is kellene megcímeznünk + kérdésünkkel, olvassuk el a Hogyan kapjunk + értékelhetõ választ a &os;-questions + levelezési listáról címû + leírást (angolul). + + Mielõtt akármelyik listára is levelet + küldenénk, olvassuk el a Levelezési + listák Gyakran Ismételt + Kérdéseit (angolul), amivel + elkerülhetjük a gyakran feltett kérdések + és témák ismételt + felhozását. + + A levelezési listák tartalma folyamatosan + archiválódik, és ezekben az + archívumokban a + &os; honlapján tudunk keresni. Az itt + elérhetõ, kulcsszavak alapján + történõ keresés remek módját + nyújtja a gyakran felmerülõ + kérdések egyszerû és gyors + megválaszolásának, ezért ilyen + esetekben elõször mindig ezt javasolt + használni. + + + A listák összefoglalása + + Általános listák: + A következõ általános célú + listákhoz szabadon (és nyugodtan) + csatlakozhatunk: + + + + + + Lista + Tartalom + + + + + + &a.cvsall.name; + Értesítés a &os; + forrásfájában elvégzett + változtatásokról + + + + &a.advocacy.name; + A &os; igéjének + terjesztése + + + + &a.announce.name; + Fontosabb események és + elõrelépések a projektek + életében + + + + &a.arch.name; + Architekturális és tervezési + kérdések tárgyalása + + + + &a.bugbusters.name; + A &os; hibabejelentéseit + tároló adatbázis és a + kapcsolódó eszközök + karbantartására vonatkozó + megbeszélések + + + + &a.bugs.name; + Hibajelentések + + + + &a.chat.name; + A &os; közösség nem szakmai + jellegû dolgai + + + + &a.current.name; + A &os.current; használatának + tárgyalása + + + + &a.isp.name; + A &os;-t alkalmazó + internet-szolgáltatók + fóruma + + + + &a.jobs.name; + &os;-s munkalehetõségek + + + + &a.policy.name; + A &os; fejlõdését + irányító csoport (Core Team) + döntéseirõl + tájékoztató lista. A forgalma + kicsi, csak olvasható. + + + + &a.questions.name; + A felhasználók kérdései + és szakmai + segítségnyújtás + + + + &a.security-notifications.name; + Biztonsági figyelmeztetések + + + + &a.stable.name; + A &os.stable; használatát illetõ + kérdések + + + + &a.test.name; + Ide lehet küldeni a + próbaüzeneteket + + + + + + Szakmai listák: A + következõ listák szakmai jellegû + témákat képviselnek. Mielõtt + bármelyikükre levelet küldenénk vagy + feliratkoznánk, figyelmesen olvassuk el a tartalmukat + és céljaikat bemutató rövid + leírásukat. + + + + + + Lista + Tartalom + + + + + + &a.acpi.name; + Az ACPI és energiagazdálkodás + támogatás fejlesztése + + + + &a.afs.name; + Az AFS portolása &os;-re + + + + &a.aic7xxx.name; + Az &adaptec; AIC 7xxx sorozat meghajtóinak + fejlesztése + + + + &a.alpha.name; + A &os; Alpha portja + + + + &a.amd64.name; + A &os; AMD64 portja + + + + &a.apache.name; + Az Apache és + hozzátartozó portok + tárgyalása + + + + &a.arm.name; + A &os; &arm; portja + + + + &a.atm.name; + &os; használata ATM + hálózatokkal + + + + &a.audit.name; + A forráskód + ellenõrzésérõl + szóló projekt + + + + &a.binup.name; + A bináris frissítésekkel + foglalkozó rendszer tervezése és + fejlesztése + + + + &a.bluetooth.name; + A &bluetooth; technológia használata + a &os;-ben + + + + &a.cluster.name; + A &os; klaszteres környezetben + + + + &a.cvsweb.name; + A CVSweb karbantartása + + + + &a.database.name; + Adatbázisok használata és + fejlesztése &os; alatt + + + + &a.doc.name; + &os;-rõl szóló + leírások + készítése + + + + &a.drivers.name; + Eszközmeghajtók írása + &os;-re + + + + &a.eclipse.name; + Az Eclipse integrált fejlesztõi + környezet, eszközeinek, gazdag kliens + alkalmazásinak és portjainak &os; alatti + használata + + + + &a.embedded.name; + A &os; használata beágyazott + alkalmazásokban + + + + &a.eol.name; + Olyan &os;-s szoftverek független + továbbfejlesztése, amelyeket hivatalosan + már nem támogatnak + + + + &a.emulation.name; + Linux/&ms-dos;/&windows; és hasonló + rendszerek emulációja + + + + &a.firewire.name; + A &os; és a &firewire; (iLink, IEEE 1394) + kapcsolatának technikai + kérdései + + + + &a.fs.name; + Állományrendszerek + + + + &a.geom.name; + A GEOM-hoz tartozó témák + és implementációk + + + + &a.gnome.name; + A GNOME és + GNOME-alkalmazások + portolása + + + + &a.hackers.name; + Általános szakmai + témák + + + + &a.hardware.name; + A &os; futtatására + szolgáló hardverekkel foglalkozó + témák + + + + &a.i18n.name; + A &os; honosítása + + + + &a.ia32.name; + A &os; használata az IA-32 (&intel; x86) + platformon + + + + &a.ia64.name; + A &os; portolása az &intel; + következõ IA64 rendszereire + + + + &a.ipfw.name; + Az IP tûzfal kódjának + újratervezését érintõ + szakmai megbeszélések + + + + &a.isdn.name; + ISDN fejlesztõk levelei + + + + &a.jail.name; + A &man.jail.8; segédprogram + + + + &a.java.name; + &java; fejlesztõk kérdései + és a &jdk;-k átültetése + &os;-re + + + + &a.kde.name; + A KDE és + KDE-alkalmazások + portolása + + + + &a.lfs.name; + Az LFS portolása &os;-re + + + + &a.libh.name; + A második generációs + telepítõ- és csomagrendszer + + + + &a.mips.name; + A &os; portolása &mips;-re + + + + &a.mobile.name; + A mobil számítógépekkel + kapcsolatos megbeszélések + + + + &a.mozilla.name; + A Mozilla + átültetése &os;-re + + + + &a.multimedia.name; + Multimédia alkalmazások + + + + &a.newbus.name; + A buszarchitektúrával kapcsolatos + szakmai megbeszélések + + + + &a.net.name; + A TCP/IP forráskódjával + és hálózatkezeléssel + kapcsolatos kérdések + + + + &a.openoffice.name; + A OpenOffice.org + és &staroffice; + alkalmazások portolása &os;-re + + + + &a.performance.name; + Nagy terhelésû és + teljesítményû rendszerek + teljesítményhangolási + kérdései + + + + &a.perl.name; + A rengeteg Perl alapú port + karbantársa + + + + &a.pf.name; + A csomagszûrõ + mûködésével kapcsolatos + kérdések és + megbeszélések + + + + &a.platforms.name; + Portolás nem &intel; + architektúrájú platformokra + + + + &a.ports.name; + A Portgyûjtemény + mûködése + + + + &a.ports-bugs.name; + A portokhoz tartozó hibák és + hibajelentések megbeszélése + + + + &a.ppc.name; + A &os; portolása &powerpc;-re + + + + &a.proliant.name; + HP ProLiant szerverek és a &os; + kapcsolata + + + + &a.python.name; + A Python &os;-n futó + változatának + problémái + + + + &a.qa.name; + A minõségbiztosítás + megbeszélése, különösen a + kiadások közeledtével + + + + &a.rc.name; + Az rc.d rendszer és + annak fejlõdése + + + + &a.realtime.name; + A &os; valósidejû + kiterjesztéseinek fejlesztése + + + + &a.scsi.name; + A SCSI alrendszer + + + + &a.security.name; + A &os; mûködését + fenyegetõ biztonsági + problémák + + + + &a.small.name; + A &os; használata beágyazott + alkalmazásokban (elavult; helyette a + &a.embedded.name; címét + használjuk) + + + + &a.smp.name; + Az [A]Szimmetrikus többszálú + feldolgozáshoz ([A]Symmetric MultiProcessing) + tartozó tervezési + megbeszélések + + + + &a.sparc.name; + A &os; portolása &sparc; alapú + rendszerekre + + + + &a.standards.name; + A &os; megfelelése a C99 és &posix; + szabványoknak + + + + &a.sun4v.name; + A &os; portolása &ultrasparc; T1 + alapú rendszerekre + + + + &a.threads.name; + A &os; szálkezelése + + + + &a.testing.name; + A &os; teljesítmény- és + megbízhatósági tesztjei + + + + &a.tokenring.name; + A Token Ring támogatása a + &os;-ben + + + + &a.usb.name; + USB támogatás a &os;-ben + + + + &a.vuxml.name; + A VuXML infrastruktúra + tárgyalása + + + + &a.x11.name; + Az X11 karbantartása és + támogata &os; alatt + + + + + + Korlátozott listák: + (Limited lists) A következõ listák sokkal jobban + specializálódótt (és + igényesebb) közösségnek szólnak, + nem a nagyközönségnek. Ezért + mielõtt egy ilyen listára feliratkoznánk, + érdemes némi tapasztalatot gyûjtenünk a + szakmai témájú listákon, így + megismerjük az itt alkalmazott kommunikációs + szabályokat. + + + + + + Lista + Tartalom + + + + + + &a.hubs.name; + A tükrözések üzemeltetõi + számára (infrastrukturális + támogatás) + + + + &a.usergroups.name; + A felhasználói csoportok + összefogása + + + + &a.vendors.name; + A forgalmazók koordinálása a + kiadások elõtt + + + + &a.www.name; + A www.FreeBSD.org + karbantartói számára + + + + + + Kivonatolt listák: (Digest + lists) Az eddig említett listák + elérhetõek kivonatolt formában is. + Miután feliratkoztunk egy listára, a + hozzáférésünk + beállításainál + kiválaszthatjuk, hogy kivonatolt formátumban + kívánjuk-e kapni a leveleket. + + CVS listák: (CVS lists) A + következõ listák a forrásfa + különbözõ részeinek + változtatásáról és a + hozzájuk tartozó üzenetekrõl adnak + értesítést. Ezek a listák + csak olvasásra vannak, nem szabad + rájuk levelet küldeni. + + + + + + Lista + Forráskód területe + A terület leírása (minek a + forrása) + + + + + + &a.cvsall.name; + /usr/(CVSROOT|doc|ports|projects|src) + A fában végzett akármelyik + módosítás (az összes CVS lista + együtt) + + + + &a.cvs-doc.name; + /usr/(doc|www) + A doc és www ágak + változásai + + + + &a.cvs-ports.name; + /usr/ports A + portfa változásai + + + + &a.cvs-projects.name; + /usr/projects + A projektek változásai + + + + &a.cvs-src.name; + /usr/src + A rendszer forrásának + változásai + + + + + + + + Hogyan iratkozzunk fel + + Ha fel akarunk iratkozni valamelyik listára, + kattintsunk a nevére, vagy menjünk a + &a.mailman.lists.link; címre és a válasszuk + ki onnan a keresett listát. A lista oldalán + megtalálunk minden feliratkozással kapcsolatos + utasítást. + + Ténylegesen úgy tudunk üzenni egy + listára, ha levelet küldünk az + listanév@FreeBSD.org + címre, amely ezután a lista tagjai + között kézbesítésre kerül a + világban. + + A listáról úgy tudunk leiratkozni, ha a + róla kapott valamelyik levél alján + található URL-re kattintunk. Másik + megoldás, ha magunk küldünk egy levelet a + listanév-unsubscribe@FreeBSD.org + címre. + + Még egyszer szeretnénk kérni, hogy a + szakmai témájú levelezési + listákon folyó társalgásokat + igyekezzünk az adott témán belül + tartani. Ha csupán a fontosabb bejelentésekre + vagyunk kíváncsiak, akkor a kisforgalmú + &a.announce; használatát válasszuk. + + + + + A listák tematikája + + Minden &os;-s levelezési lista + rendelkezik bizonyos alapszabályokkal, amelyek minden + tagnak el kell fogadnia. Az ismeretett irányelvek elleni + vétkezés a &os; postamesterének + postmaster@FreeBSD.org két (2, azaz + kettõ) írásos figyelmeztetését + vonja maga után, amelyek figyelmen kívül + hagyásával, tehát a harmadik + szabálysértés alkalmával, a + küldõ eltávolításra kerül a + &os; összes levelezési + listájáról és a továbbiakban + szûrni fogják a leveleit. Sajnáljuk, hogy + ilyen szabályokat és szankciókat kellett + bevezetnünk, de napjaink internetes + technológiái igen elvadultak és ahogy az + látható is, sokan egyszerûen nem + fogják fel, mennyire sérülékenyek + egyes részei. + + Közlekedési szabályok: + + + + Minden beküldött levél + témájának meg kell felelnie az adott + lista tartalmának, tehát például + a szakmai kérdésekkel foglalkozó + listákon csak szakmai témájú + leveleknek szabad megjelenniük. Az oda nem illõ + cseverészés és értelmetlen + vitázás csak a lista + értékét csökkenti, ezért + ezt senkitõl sem tûrjük. A kötetlenebb, + konkrét téma nélküli + megbeszéléseket inkább a &a.chat; + címén folytassuk. + + + + 2 listánál többre ne + küldjük be ugyanazt a levelet, és 2 + listára is csak akkor küldjük, ha az + egyértelmûen és + nyilvánvalóan indokolt. A legtöbb + listánál így is rengeteg az + átfedés, kivéve a legtitkosabb + kombinációkat (például + -stable és -scsi), ezért nem + túl sok értelme van egyszerre egynél + több listát is értesíteni. Ha + olyan üzenetet kapunk, amelynek a Cc + (másolat) mezõjében több lista + címe is szerepel, akkor + továbbküldés vagy + válaszadás során + töröljük ezeket. Az + általunk küldött levelekért + továbbra is mi magunk vagyunk a felelõsek, + függetlenül attól, hogy ki volt a + levél eredeti feladója. + + + + Tilos (vita közben) személyeskedni vagy + káromkodni, beleértve a + felhasználókat és a fejlesztõket + is. A netikett megszegését, + például a privát levelezés + elõzetes engedély nélküli + továbbküldését vagy egyes + részleteinek közlését, + elítéljük, de nyíltan nem tiltjuk. + Nagyon ritka esetekben azonban + elõfordulhat, hogy a sértõ tartalom + önmagában ellenkezik a lista elveivel és + figyelmeztetést (esetleg kitiltást) von maga + után. + + + + A &os;-hez nem kötõdõ termékek + vagy szolgáltatások reklámozása + szigorúan tilos, és ha bebizonyosodik, hogy a + küldõ szándékosan küldte + szét, akkor azonnali kitiltásban + részesül. + + + + Az egyes listák + tematikája: + + + + + &a.acpi.name; + + + Az ACPI és + energiagazdálkodás + támogatásának + fejlesztése + + + + + &a.afs.name; + + + Andrew File System + + Ez a lista a CMU/Transarc AFS + portolásáról szól + + + + + &a.announce.name; + + + Fontosabb események / nagyobb + lépések + + Olyan emberek számára ajánlott ez + a levelezési lista, akik csak a &os; + jelentõsebb eseményei bejelentései + iránt érdeklõdnek. Ide + értendõk a különbözõ + idõközi és egyéb kiadások, + a &os; újításainak + bejelentései. Idõnként + önkéntesek toborzására stb. is + használják. A forgalma nagyon kicsi, + tartalma szigorúan ellenõrzõtt. + + + + + &a.arch.name; + + + Architekturális és + tervezési + kérdések + + Ez a lista a &os; architektúráját + érintõ megbeszélések + színtere. Az itt megjelenõ üzenetek + szigorúan szakmai jellegûek. + Néhány idevágó + téma: + + + + Hogyan alakítsuk úgy át a + fordítási rendszert, hogy egyszerre + több különbözõ + paraméterû fordítás is + képes legyen futni. + + + + Mit kellene javítani a VFS-en a + Heidemann-rétegek + mûködéséhez. + + + + Hogyan tudnánk úgy + átalakítani az + eszközmeghajtók felületét, + hogy ugyanazok a meghajtók minden gond + nélkül képesek legyenek több + buszon és architektúrán is + mûködni. + + + + Hogyan írjunk meghajtót + hálózati + eszközökhöz. + + + + + + + &a.audit.name; + + + A forráskód + vizsgálatát végzõ + projekt + + Ez a levelezési lista a &os; + forráskódjának + vizsgálatával foglalkozik. Habár + eredetileg csak a biztonságot érintõ + változtatások + ellenõrzésére jött létre, + napjainkra már a forráskód + mindenféle változását + felülvizsgálja. + + Erre a listára rengeteg javítás + érkezik, amelyek valószínûleg + egy átlag &os; felhasználó + számára nem túlzottan + érdekesek. A kód + változásától független + biztonsági kérdések + megvitatása a freebsd-security listán + történik. Viszont az összes + fejlesztõnek javasoljuk, hogy küldjék be + felülvizsgálatra a javításaikat, + különösen abban az esetben, amikor a + forráskód olyan részéhez + nyúlnak, ahol az adott hiba javítása + a rendszer egészének + mûködésére kihatással + lehet. + + + + + + &a.binup.name; + + + A &os; bináris + frissítésével foglalkozó + projekt + + Ez a lista ad otthont a + binup vagy más + néven a bináris frissítési + rendszer (binary update system) körül + felmerülõ problémák + tárgyalásának. Tervezési + kérdések, implementációs + részletek, javítások, hiba- és + állapotjelentések, funkciók + igénylése, a kód + változásainak naplózása + és minden, ami a + binuppal kapcsolatos. + + + + + &a.bluetooth.name; + + + &bluetooth; a &os;-ben + + Ez a &bluetooth;-os &os; felhasználók + gyülekezõhelye. Tervezési és + implementációs kérdések, + javítások, hiba- és + állapotjelentések, funkciók + igénylése, minden, ami &bluetooth;. + + + + + &a.bugbusters.name; + + + A hibajelentések + kezelésének + összefogása + + A lista célja a Bugmeister és az õ + Bugbustereinek, valamint a hibajelentések + adatbázisai iránti kifejezetten + érdeklõdõ személyek + együttmûködésének és + kapcsolattartásának + elõsegítése. Ez a lista nem az egyes + hibákról, javításokról + vagy azok jelentésérõl + szól. + + + + + &a.bugs.name; + + + Hibajelentések + + Ezen a levelezési listán lehet a &os; + hibáit bejelenteni. Ha lehet, akkor a + hibákat a &man.send-pr.1; paranccsal vagy a webes felületen + keresztül küldjük be. + + + + + &a.chat.name; + + + A &os; közösség nem szakmai + jellegû dolgai + + Erre a listára kerül minden olyan nem + szakmai jellegû, társadalmi + érintkezéssel kapcsolatos + információ, ami a többi + listáról kimaradt: Jordan mennyire + hasonlít a rajzfilmeken látható + vadászgörényre, kis- vagy + nagybetûvel írjuk-e, ki iszik sok + kávét, hol fõzik a legjobb + söröket, ki fõz sört az + alagsorában és így tovább. + Elvétve felbukkannak olyan fontosabb + események is (bulik, lakodalmak, + gyermekáldás, új munkahely stb), + amelyek ugyan szakmai témájúak, de a + folyományaik már inkább a -chat + listára tartoznak. + + + + + &a.core.name; + + + A &os; + irányítását végzõ + csapat + + Ezt a belsõ levelezési listát a + Core Team tagjai használják. Akkor + érdemes ide levelet küldeni, ha &os;-vel + kapcsolatos fontos ügyekben lenne + szükségünk döntésre vagy + véleményre. + + + + + &a.current.name; + + + A &os.current; használatával + kapcsolatos megbeszélések + + A &os.current; felhasználóinak + levelezési listája. Itt + értesülhetünk a -CURRENT + felhasználókat érintõ friss + újdonságairól, és + azokról az utasításokról, + amelyek követésével + mûködéképesen tarthatjuk a + -CURRENT rendszerünket. Aki a + -CURRENT verziót használja, + mindenképpen iratkozzon fel erre a listára. + Ez is egy szakmai jellegû lista, ahová csak + szigorúan ilyen témákat + várnak. + + + + + &a.cvsweb.name; + + + A &os; CVSweb projekt + + A &os; CVSweb szolgáltatásának + használatáról, + fejlesztésérõl és + karbantartásáról szóló + megbeszélések. + + + + + &a.doc.name; + + + A dokumentációs + projekt + + Ez a levelezési lista a &os;-rõl + szóló különbözõ + dokumentumok készítésével + kapcsolatos problémák és projektek + tárgyalásait öleli fel. A + levelezési lista tagjait együttesen a + &os; Dokumentációs + Projekt-nek nevezik. Ez egy nyílt lista, + csatlakozzunk hozzá bátran! + + + + + &a.drivers.name; + + + Eszközmeghajtók + írása &os;-re + + A &os;-hez készülõ + eszközmeghajtókról szóló + szakmai fórum. Elsõsorban itt tehetik fel a + meghajtók készítõi a &os; + rendszermagjában megtalalálható + API-kra vonatkozó kérdéseiket. + + + + + &a.eclipse.name; + + + Az Eclipse integrált fejlesztõi + környezetének, segéprogramjainak, + kliensalkalmazásainak és portjainak &os; + felhasználók számára + meghirdetett fóruma. + + A lista azzal a szándékkal jött + létre, hogy kölcsönös + támogatást nyújtson az Eclipse + fejlesztõi környezet, a + hozzátartozó segédeszközök, + kliensalkalmazások &os; változatának + megválasztásában, + telepítésében és + használatában. Emellett az Eclipse + környezet és pluginjainak &os;-re + történõ portolásáról + is szó esik. + + Valamint igyekszik minél többet + profitálni az Eclipse és a &os; + köré csoportosuló + közösségek kölcsönös + információcseréjébõl. + + Habár a lista elsõdlegesen az Eclipse + felhasználóinek igényeire + koncentrál, azok számára is + táptalajt ad, akik az Eclipse keretrendszer + segítségével &os; specifikus + alkalmazásokat szeretnének + kifejleszteni. + + + + + &a.embedded.name; + + + A &os; használata beágyazott + alkalmazásokban + + Ez a lista a &os; beágyazott rendszerekben + történõ használatát + igyekszik megvitatni. Ez egy szakmai jellegû lista, + ezért ide szigorúan csak ilyen + témájú leveleket várunk. A + listán tárgyalt beágyazott + rendszereknek tekintünk minden olyan + számítási eszközt, amely az + általános számítási + környezetekkel szemben egyetlen feladatot lát + el. Nem feltétlenül csak ilyenek, de + például a különféle + telefonok, illetve hálózati + eszközök, mint például + útválasztók, switchek, PBX-ek, + távoli mérõeszközök, PDA-k, + eladási rendszerek és így + tovább. + + + + + &a.emulation.name; + + + A Linux/&ms-dos;/&windows; rendszerek + emulációja + + Ezen a listán arról + értekezhetünk és olvashatunk, hogy &os; + alatt miként futtassunk más + operációs rendszerekre írt + programokat. + + + + + &a.eol.name; + + + Összefogás a &os; Projekt + által tovább már támogatott, + &os;-hez tartozó + szoftverekért + + Ezen a listán kap vagy kaphat helyet a &os; + Projekt által hivatalosan tovább már + nem fejlesztett szoftverek felhasználói + összefogáson alapuló + támogatása (például + biztonsági figyelmeztetések vagy + javítások formájában). + + + + + &a.firewire.name; + + + &firewire; (iLink, IEEE 1394) + + Ez a levelezési lista foglalkozik a &os; + &firewire; (azaz IEEE 1394, avagy iLink) + alrendszerének + implementációjával. Az itt + felmerülõ témák többek + közt a szabványok, buszos eszközök + és a hozzájuk tartozó protokollok, + vezérlõkártyák és + chipkészletek, valamint a + mûködtetésükre szánt + programok felépítése és + megvalósítása. + + + + + &a.fs.name; + + + Állományrendszerek + + A &os;-ben megjelenõ + állományrendszerek kivesézése. + Mivel ez egy szakmai jellegû lista, ide + határozottan csak ilyen jellegû leveleket + várunk. + + + + + &a.geom.name; + + + GEOM + + A GEOM és a vele kapcsolatos + implementáció megbeszélései. + Szakmai jellegû lista, ezért erre tekintettel + csak ilyen témájú leveleket + postázzunk ide. + + + + + &a.gnome.name; + + + GNOME + + A GNOME + asztalkörnyezet &os; rendszereket érintõ + használatáról szóló + lista. Mûszaki jellegû, ezért + szigorúan csak ilyen témákban + társgalodjunk itt. + + + + + &a.ipfw.name; + + + IP tûzfalak + + A &os;-ben levõ IP tûzfal + újratervezésével foglalkozó + elgondolások és szakmai + témájú megbeszélések + otthona. Ide szigorúan csak ilyen + témájú leveleket + küldjünk! + + + + + &a.ia64.name; + + + A &os; portolása + I64-re + + Ez a levelezési lista a &os; az &intel; IA-64 + platformjára készített + portjával foglalkozó egyének + kommunikációs eszköze, ahol az ezzel + kapcsolatos problémák és azok + különbözõ megoldásai + kerülnek terítékre. A téma + iránt érdeklõdõket is + szívesen látjuk. + + + + + &a.isdn.name; + + + ISDN + kommunikáció + + Ez a levelezési lista a &os; ISDN + támogatásáról + szól. + + + + + &a.java.name; + + + &java; alapú + fejlesztések + + A levelezési listán a nagyobb &java; + alkalmazások &os; alapú + fejlesztését, valamint a &jdk;-k + portolásáról és + karbantartását beszélik meg. + + + + + &a.jobs.name; + + + Munkát + keres/kínál + + Erre a fórumra tudjuk beküldeni a + kifejezetten &os;-hez kapcsolódó + munkaajánlatokat és + önéletrajzokat, tehát ez a + megfelelõ hely, ha &os;-s munkát + keresünk, vagy éppen &os; + szakértõket. Ez azonban + nem egy általános + célú állásbörze, mert + arra megvannak a megfelelõ helyek. + + Szeretnénk hozzátenni, hogy ez a lista, + a többi FreeBSD.org levelezési + listához hasonlóan, + világméretekben mûködik. + Ezért ne felejtsük sosem pontosan + megjelölni a munkavégzés helyét, + illetve hogy milyen kommunikációs és + esetlegesen költözési + lehetõségeket javaslunk. + + A leveleket csak nyílt formátumban + küldjük — elsõsorban szöveges + formátumban, de az egyszerûbb + PDF, HTML vagy még + néhány más hozzájuk + hasonló formátumot is alkalmazhatunk. Az + olyan zárt formátumok, mint + például a µsoft; Word + (.doc) azonban nem fognak + továbbítódni. + + + + + &a.kde.name; + + + KDE + + A KDE és &os; + kapcsolatáról szóló lista. + Szigorúan szakmai jellegû, ezért csak + ilyen témájú levelek + küldése elfogadott. + + + + + &a.hackers.name; + + + Szakmai + kérdések + + Ez a &os; szakmai jellegû + kérdéseivel foglalkozó fórum. + Ez az elsõ számû szakmai + levelezési lista. A &os; + fejlesztésével aktívan + foglalkozó egyének számára + ajánljuk, hiszen itt vethetik fel + problémáikat, itt kereshetnek rájuk + megoldásokat. Az ilyen típusú + megbeszéléseket figyelemmel követõ + egyéneket is szívesen fogadjuk. Mivel ez + egy erõsen szakmai jellegû lista, ezért + csak ilyen témájú leveleket + várunk ide. + + + + + &a.hardware.name; + + + A &os; és a hardverek + kapcsolatáról + általában + + Ezen a listán kerül megvitatásra + minden olyan hardver, amelyen a &os; mûködik: + milyen gondok adódhatnak, milyen hardvereket + érdemes beszereznünk vagy + elkerülnünk. + + + + + &a.hubs.name; + + + Tükrözések + + A &os; tükrözéseit karbantartó + egyének számára fontos + bejelentések és + megbeszélések. + + + + + &a.isp.name; + + + Az internet-szolgáltatók + fóruma + + Ezen a levelezési listán a &os;-t + használó internet-szolgáltatók + tehetik fel kérdéseiket. Szigorúan + csak szakmai jellegû kérdések + engedélyezettek. + + + + + &a.openoffice.name; + + + OpenOffice.org + + Az OpenOffice.org és + &staroffice; + portolásával és + karbantartásával kapcsolatos + megbeszélések. + + + + + &a.performance.name; + + + A &os; hangolásának és + gyorsításának + tárgyalása + + Ezen a levelezési listán van + lehetõségük a hackereknek, + rendszergazdáknak és/vagy az érintett + feleknek a &os; teljesítményével + kapcsolatos témákban kifejteni a + véleményüket. Leginkább nagy + terhelés alatt levõ, vagy + teljesítménybeli problémákkal + küszködõ, esetleg még többet + tudó &os; rendszerek tárgyalása a + cél. Lehetõleg az érintett + gyártókkal és + szállítókkal együttesen + próbáljuk kidolgozni a &os; + teljesítményének + növelésére tett + kísérleteinket, ezért õket is + szívesen látjuk ezen a listán. Ez a + kifejezetten szakmai jellegû lista + többségében a tapasztalt &os; + felhasználók, hackerek vagy + rendszergazdák számára tárja + fel a gyors, megbízható és + skálázható &os; rendszerek + lehetõségeit. Ez alapvetõen nem egy + kérdezgetõs lista, ahol a + dokumentációk elolvasását + tudjuk megspórolni, hanem egy olyan hely, ahol a + teljesítményt érintõ + megválaszolatlan kérdések és + elõremutató fejlesztések nyernek + teret. + + + + + + &a.pf.name; + + + A csomagszûrõ + tûzfalrendszerrel kapcsolatos + kérdések + + A &os; csomagszûrõjéhez (packet + filter, pf) tartozó tûzfalrendszer + megbeszéléseit összefoglaló + lista. Szakmai jellegû fejtegetések és + felhasználói kérdések + egyaránt jöhetnek. Továbbá ezen + a listán foglalkozunk az ALTQ rendszer + mûködésével is. + + + + + + &a.platforms.name; + + + Portolás nem &intel; + plaformokra + + A &os; különbözõ, nem az &intel; + architektúrára építkezõ + portjainak indítványozása és + általános jellegû megvitatása. Ez egy + kiemelten szakmai jellegû lista, ezért ide csak + ilyen témájú leveleket + várunk. + + + + + &a.policy.name; + + + Az Core Team + szabályozásai + + Alacsony forgalmú, csak olvasható lista, + ahol a &os; fejlesztését + irányító csoport + különbözõ döntéseirõl + olvashatunk. + + + + + &a.ports.name; + + + A portok + megbeszélése + + A &os; + portgyûjteményével + (/usr/ports), a portok + infrastruktúrájával és a + portok fejlesztésének + irányításával kapcsolatos + megbeszélések. Erõsen szakmai + jellegû lista, ezért ide csak ilyen + témában írjunk. + + + + + &a.ports-bugs.name; + + + A portok hibáinak + tárgyalása + + A &os; + portgyûjteményének + (/usr/ports), a bejelentett portok + és azok módosításához + kötõdõ hibajelentésekkel + foglalkozó lista. Ez egy szakmai jellegû + lista, ahol csak ilyen jellegû témákra + számítunk. + + + + + &a.proliant.name; + + + A &os; és a HP ProLiant szerverek + kapcsolatát érintõ szakmai + megbeszélések + + Ezen a levelezési listán a &os; HP + ProLiant szervereken történõ + használatát célozzuk meg, + beleértve a ProLianthoz tartozó + eszközmeghajtókat, karbantartó + és konfigurációs szoftvereket + és BIOS-frissítéseket. Ennek + megfelelõen tehát a hpasmd, hpasmcli és + hpacucli modulok is elsõsorban itt kerülnek + felboncolásra. + + + + + &a.python.name; + + + A &os; és a Python + + A lista a &os; Python + támogatásának + fejlesztésérõl folytatott szakmai + megbeszéléseket foglalja össze. + Elsõsorban a Python portolásával + foglalkozó egyének, valamint a + külsõ fejlesztõk által + készített modulok és a + Zope &os;-s + alkalmazásával foglalkozik. Az + említett témák iránti + érdeklõdõket is szeretettel + várjuk. + + + + + &a.questions.name; + + + Felhasználói + kérdések + + Ez a levelezési lista a &os;-vel kapcsolatos + kérdésekrõl szól. + Lehetõleg ne küldjünk hogyan + témájú kérdéseket erre + a szakmai listára, hacsak nem kifejezetten szakmai + jellegûnek szánjuk. + + + + + &a.scsi.name; + + + A SCSI alrendszer + + Ezt a levelezési listát a &os; alatt a + SCSI alrendszerrel foglalkozók számára + tarjuk fenn. Mivel ez egy erõsen szakmai + jellegû lista, ezért rajta csak szakmai + témák megengedettek. + + + + + &a.security.name; + + + Biztonsági + problémák + + A &os; biztonságát illetõ + kérdések (DES, Kerberos, biztonsági + rések és javításaik, stb.) + Szakmai jellegû lista, ezért ide csak a + témához szorosan kapcsolódó + leveleket szabad beküldeni. Alapvetõen nem + kérdezz-felelek típusú a lista + mûködése, habár a GYIK-hoz minden + hozzájárulást (kérdést + ÉS választ EGYARÁNT) szívesen + veszünk. + + + + + &a.security-notifications.name; + + + Biztonsági + figyelmeztetések + + A &os;-t érintõ biztonsági + problémákról és + javításaikról szóló + értesítések. + Megbeszélésekkel, vitákkal nem + foglalkozik, mivel azok a &os;-security listán + folynak. + + + + + &a.small.name; + + + A &os; használata beágyazott + alkalmazásokban + + A szokatlanul kis méretû vagy + beágyazott &os; rendszerekhez + kapcsolódó megbeszélések + színhelye. Szakmai jellegû lista, + ezért szigorúan csak a témához + tartozó leveleket fogad. + + + Ezt a listát idõközben + felváltotta a &a.embedded.name; lista. + + + + + + + &a.stable.name; + + + A &os.stable; + használatáról szóló + lista + + Ez a &os.stable; használóinak + levelezési listája. Ide kerülnek + beküldésre a -STABLE ágat + futtató felhasználókat + érintõ friss változások, + valamint hozzájuk kötõdõen a -STABLE + használatához szükséges + elvégzendõ lépések. Aki a + STABLE jelzésû + változatot használja, mindenképpen + iratkozzon fel rá. Szigorúan szakmai + jellegû lista, ezért csak szakmai + témájú leveleket vár. + + + + + &a.standards.name; + + + C99 és POSIX + megfelelés + + Ez a fórum foglalkozik a &os; és a C99, + valamint a POSIX szabványok szerinti + megfelelésével. + + + + + &a.usb.name; + + + A &os; USB + támogatása + + Ez a levelezési lista fogja összes a &os; + USB támogatásával foglalkozó + szakmai témákat. + + + + + &a.usergroups.name; + + + A felhasználói csoportokat + irányító lista + + Ez a levelezési lista az egyes területeken + mûködõ felhasználói csoportok + az irányítást végzõ + központi csoport tagjai általi + összehangolásához tartozó + problémák + megbeszélésére való. Ez a + lista leginkább a gyûlések + letisztázására és a több + csoporton átívelõ nagyobb projektek + szervezéséhez használatos. + + + + + &a.vendors.name; + + + Gyártók + + A &os; projekt és a hozzá + kötödõ hardver- és + szoftvergyártók + együttmûködését + elõsegítõ lista. + + + + + + + + + A levelezési listák + szûrése + + A kéretlen reklámlevelek, vírusok + és egyebek elleni védekezés + céljából a &os; levelezési + listáinak forgalmát több módon is + szûrik. Az ebben a szakaszban bemutatott + szûrési megoldások nem fedik le a + levelezési listák védelme + érdekében alkalmazott összes + lehetõséget. + + A levelezési listákra csak bizonyos + típusú csatolt állományokat + küldhetünk be. Az alábbi listában nem + található MIME típusú csatolt + objektumokat még a listára érkezés + elõtt törlik. + + + + application/octet-stream + + + + application/pdf + + + + application/pgp-signature + + + + application/x-pkcs7-signature + + + + message/rfc822 + + + + multipart/alternative + + + + multipart/related + + + + multipart/signed + + + + text/html + + + + text/plain + + + + text/x-diff + + + + text/x-patch + + + + + Egyes levelezési listák ugyan megengedhetnek + további csatolt MIME objektumokat is, habár a + legtöbb lista esetében a fenti lista a + mérvadó. + + + Ha egy levélben a szöveg HTML és nyers + szöveg formátumban is szerepel, a HTML + változat automatikusan eltávolításra + kerül. Ha az e-mail csak HTML formában tartalmazza + a szöveget, akkor automatikusan nyers szövegre + alakítódik át. + + + + + + Usenet hírcsoportok + + A két &os;-s hírcsoport mellett még + akadnak olyan további csoportok is, ahol &os; + témájú kérdéseket vitathatunk + meg vagy hasznos lehet számunkra. Az itt felsorolt + hírcsoportok + kulcsszavakkal kereshetõ archívuma Warren + Toomey tulajdona (wkt@cs.adfa.edu.au). + + + BSD-s hírcsoportok + + + + comp.unix.bsd.freebsd.announce + + + + comp.unix.bsd.freebsd.misc + + + + de.comp.os.unix.bsd + (német) + + + + fr.comp.os.bsd + (francia) + + + + it.comp.os.freebsd + (olasz) + + + + tw.bbs.comp.386bsd + (hagyományos kínai) + + + + + + Egyéb érdekes &unix;-os + hírcsoportok + + + + comp.unix + + + + comp.unix.questions + + + + comp.unix.admin + + + + comp.unix.programmer + + + + comp.unix.shell + + + + comp.unix.user-friendly + + + + comp.security.unix + + + + comp.sources.unix + + + + comp.unix.advocacy + + + + comp.unix.misc + + + + comp.bugs.4bsd + + + + comp.bugs.4bsd.ucb-fixes + + + + comp.unix.bsd + + + + + + + X Window System + + + + comp.windows.x.i386unix + + + + comp.windows.x + + + + comp.windows.x.apps + + + + comp.windows.x.announce + + + + comp.windows.x.intrinsics + + + + comp.windows.x.motif + + + + comp.windows.x.pex + + + + comp.emulators.ms-windows.wine + + + + + + + + Világhálós + szolgáltatások + + &chap.eresources.www.inc; + + + + + E-mail címek + + A következõ felhasználói csoportok + nyújtanak &os;-s e-mail címeket tagjaiknak. A + rendszergazdák bármilyen visszaélés + esetén fenntartják a visszavonás + jogát. + + + + + + Címtartomány + Lehetõségek + Felhasználói csoport + Rendszergazda + + + + + + ukug.uk.FreeBSD.org + Csak továbbítás + freebsd-users@uk.FreeBSD.org + Lee Johnston + lee@uk.FreeBSD.org + + + + + + + + + Felhasználói + hozzáférések + + A következõ felhasználói csoportok + felhasználói hozzáféréseket + nyújtanak a &os; projektet aktívan + támogató egyének számára. A + felsorolásban szereplõ rendszergazdáknak + visszaélés esetén jogukban áll + megszüntetni a fiókot. + + + + + + Hálózati cím + Hozzáférés típusa + Lehetõségek + Rendszergazda + + + + + + dogma.freebsd-uk.eu.org + Telnet/FTP/SSH + Levelezés, tárhely, anonim FTP + Lee Johnston + lee@uk.FreeBSD.org + + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/firewalls/Makefile b/hu_HU.ISO8859-2/books/handbook/firewalls/Makefile new file mode 100644 index 0000000000..331f5bf8ec --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/firewalls/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= firewalls/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml new file mode 100644 index 0000000000..13d63a7b4e --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml @@ -0,0 +1,4502 @@ + + + + + + + + + Joseph J. + Barbish + Írta: + + + + + Brad + Davis + SGML formátumúra alakította + és aktualizálta: + + + + + Tûzfalak + + tûzfalak + + + biztonság + tûzfalak + + + + Bevezetés + + A tûzfalakkal a rendszerünkön + keresztülfolyó bejövõ és kimenõ + forgalmat tudjuk szûrni. A tûzfalak egy vagy több + szabályrendszer alapján + vizsgálják az éppen érkezõ vagy + távozó hálózati csomagokat, és + vagy továbbengedik ezeket vagy + megállítják. A tûzfalak + szabályai a csomagok egy vagy több + jellemzõjét veszik szemügyre, amelyek lehetnek + például a protokoll típusa, a forrás + vagy cél hálózati címe, esetleg a + forrás- vagy a célport. + + A tûzfalak jelentõs mértékben + képesek gyarapítani egy gép vagy egy + hálózat védelmét. Leginkább a + következõkre tudjuk felhasználni: + + + + A belsõ hálózatunkban futó + alkalmazások, szolgáltatások, + gépek megvédésére és + elszigetelésére az internetrõl + érkezõ nem kívánt forgalom + ellen + + + + A belsõ hálózatban levõ + gépek elérését tudjuk + korlátozni vagy letiltani az interneten + elérhetõ szolgáltatások + felé + + + + A hálózati címfordítás + (Network Address Translation, NAT) + beállításához, ahol a belsõ + hálózatunk privát + IP-címeket használnak + és egy közös kapcsolaton keresztül + érik el az internetet (egyetlen + IP-címmel, vagy pedig automatikusan + kiosztott publikus címekkel). + + + + A fejezet elolvasása során + megismerjük: + + + + hogyan adjuk meg helyesen a csomagok + szûrését leíró + szabályokat; + + + + a &os;-be épített tûzfalak közti + különbségeket; + + + + hogyan állítsuk be és + használjuk az OpenBSD PF + tûzfalát; + + + + hogyan állítsuk be és + használjuk az IPFILTER + tûzfalat; + + + + hogyan állítsuk be és + használjuk az IPFW + tûzfalat. + + + + A fejezet elolvasása elõtt ajánlott: + + + + a &os;-hez és az internethez kötõdõ + alapvetõ fogalmak ismerete. + + + + + + + Röviden a tûzfalakról + + + tûzfalak + szabályrendszerei + + + A tûzfalak szabályrendszereit alapvetõen + kétféleképpen tudjuk + összeállítani: inkluzív, + vagyis megengedõ, illetve exkluzív + vagyis kizáró módon. Az exkluzív + tûzfalak minden forgalmat átengednek, amirõl nem + rendelkeznek a tûzfal szabályai. Az inkluzív + tûzfalak ennek pontosan az ellenkezõjét teszik. + Csak azt a forgalmat engedik át, amirõl van + szabály és minden mást blokkolnak. + + Az inkluzív tûzfalak általában + biztonságosabbak az exkluzív + társaiknál, mivel esetükben jelentõs + mértékben visszaszorul a nem kívánatos + átfolyó forgalom. + + Ez a típusú védelem még + tovább fokozható az állapottartó + tûzfalak (stateful firewall) + használatával. Ilyenkor a tûzfal szemmel + tartja a rajta keresztül megnyitott kapcsolatokat, és + vagy csak a már meglevõ kapcsolathoz tartozó + forgalmat engedi át, vagy nyit egy újat. Az + állapottartó tûzfalak hátránya, + hogy a Denial of Service (DoS) + típusú támadásokkal szemben sokkal + sérülékenyebbek olyan helyzetekben, amikor az + új kapcsolatok nagyon gyorsan jönnek létre. A + legtöbb tûzfal esetében azonban tudjuk + vegyíteni az állapottartó és nem + állapottartó viselkedést, és ezzel egy + ideális beállítást + kialakítani. + + + + + Tûzfalak + + A &os; alaprendszerébe három + különbözõ tûzfalat + építettek be, melyek a következõk: az + IPFILTER (másik nevén + IPF), az IPFIREWALL + (más néven IPFW) és az + OpenBSD csomagszûrõje (Packet + Filter, azaz PF). A forgalom + szabályozására (vagyis alapvetõen a + sávszélesség + kihasználtságának + vezérlésére) a &os; két + beépített csomagot tartalmaz: ez az &man.altq.4; + és a &man.dummynet.4;. Általában a Dummynet + az IPFW, míg az ALTQ + a PF partnere. Az IPFILTER + esetében maga az IPFILTER végzi a + címfordítást és a szûrést, + a sávszélességet pedig az + IPFW a &man.dummynet.4; + vagy a PF az + ALTQ segítségével. Az + IPFW és a PF + szabályokkal rendelkezik a rendszerünkbe + érkezõ vagy onnan távozó + csomagokról, habár megoldásaik teljesen + máshogy mûködnek és a szabályok + megadási módja is eltér. + + A &os; azért tartalmaz egyszerre ennyiféle + tûzfalat, mert az emberek elvárásai és + igényei eltérnek. Egyikük sem tekinthetõ + a legjobbnak. + + A szerzõ egyébként az IPFILTER + megoldását részesíti elõnyben, + mivel egy hálózati címfordítást + alkalmazó környezetben sokkal könnyebb vele + megfogalmazni az állapottartó szabályokat, + valamint tartalmaz egy beépített FTP proxyt is, + amivel így a kimenõ FTP kapcsolatok + beállítása még tovább + egyszerûsödik. + + Mivel az összes tûzfal a csomagok + fejlécének bizonyos mezõinek alapján + dolgozik, ezért a tûzfal + szabályrendszerét megalkotó egyénnek + teljesen tisztában kell lennie a + TCP/IP + mûködésével, továbbá azzal, + hogy ezekben a mezõkben milyen értékek + szerepelhetnek és ezeket hogyan használják + egy átlagos kapcsolat alatt. Ebben a témában + a + címen találhatunk egy remek ismertetõt + (angolul). + + + + + Az OpenBSD csomagszûrõje (PF) és az + <acronym>ALTQ</acronym> + + + tûzfalak + PF + + + 2003 júliusában az OpenBSD PF + néven ismert csomagszûrõjét + átírták &os;-re és + elérhetõvé tették a &os; + Portgyûjteményének részeként. A + PF programot beépítetten + tartalmazó elsõ kiadás pedig 2004 + novemberében a &os; 5.3 volt. A PF + egy teljes, mindentudó tûzfal, amely támogatja + az ún. ALTQ (Alternate Queuing, vagyis + a váltóbesorolás) + megoldást. Az ALTQ lehetõvé + teszi a sávszélesség + korlátozását a szolgáltatás + minõsége (Quality of Service, QoS) + alapján, aminek köszönhetõen a + különbözõ szolgáltatások a + szûrési szabályok mentén + garantált sávszélességhez juthatnak. + Az OpenBSD Projekt kiváló munkát végez + a PF felhasználói útmutatójának + karbantartásával, amely így most nem lesz + része a kézikönyvnek, hiszen ez csak az + erõforrások kétszerezése lenne. + + A + címen olvashatunk többet arról (angolul), hogy a + PF-et hogyan használjunk &os;-n. + + + A PF engedélyezése + + A PF a &os; 5.3 verziója utáni + kiadásokban az alaprendszer része, amelyet a + rendszer mûködése közben egy + külön modul betöltésével + aktiválhatunk. Ha az rc.conf + állományban megadjuk a + pf_enable="YES" sort, akkor a rendszer + magától be is tölti a PF-hez tartozó + rendszermag modult. Ez a betölthetõ modul + egyébként még a &man.pflog.4; + felületen keresztüli naplózást is + engedélyezi. + + + A modul feltételezi az options + INET és a device bpf sorok + jelenlétét. Hacsak nem adtuk meg + &os; 6.0-RELEASE elõtti verziókban a + NOINET6, illetve az utána + következõ verziókban a + NO_INET6 beállítást + (például a &man.make.conf.5; + állományban) a rendszer + fordítására vonatkozóan, akkor az + options INET6 + beállításra is szükség + lesz. + + + Ahogy betöltõdött a modul, vagy ha már + eleve a rendszermagba építettük a PF + támogatását, a + pf használatát a + pfctl paranccsal tudjuk engedélyezni + vagy letiltani. + + Ebben a példában a + pf + engedélyezését láthatjuk: + + &prompt.root; pfctl -e + + A pfctl parancs + segítségével könnyedén lehet + irányítani a pf + mûködését. A + használatáról többet úgy + tudhatunk meg, ha elolvassuk a &man.pfctl.8; man oldalt. + + + + + A rendszermag beállításai + + + a rendszermag + beállításai + device pf + + + + a rendszermag + beállításai + device pflog + + + + a rendszermag + beállításai + device pfsync + + + Egyáltalán nem fontos a PF + támogatását beépíteni a + rendszermagba. Az itt szereplõ információk + csupán kiegészítésként + szerepelnek. Ha a PF használatát beletesszük + a rendszermagba, akkor a modulra már nincs + szükségünk. + + A rendszermag forrásai között + található + /usr/src/sys/conf/NOTES + állományban a PF + beállításaira vonatkozó + utasítások így foglalhatóak + össze: + + device pf +device pflog +device pfsync + + A device pf engedélyezi a + csomagszûrõ tûzfalat. + + A device pflog megadásával + keletkezik egy &man.pflog.4; pszeudo hálózati + eszköz, amellyel egy &man.bpf.4; eszközre + érkezõ forgalmat tudunk naplózni. + Ezután a &man.pflogd.8; démon + használható tõle származó + naplózott adatok + rögzítésére. + + A device pfsync engedélyezi a + &man.pfsync.4; pszeudo hálózati eszköz + létrejöttét, amely az ún. + állapotváltások + megfigyelésére alkalmas. Mivel ez nem + része a betölthetõ modulnak, ezért egy + saját rendszermagot kell készíteni a + használatához. + + Ezek a beállítások csak akkor + lépnek érvénybe, ha fordítunk + velük egy saját rendszermagot és + telepítjük azt. + + + + + Az <filename>rc.conf</filename> állományban + elérhetõ beállítások + + Az /etc/rc.conf + állományba a következõket kell + betennünk ahhoz, hogy a PF a rendszer + indítása során + aktivizálódjon: + + pf_enable="YES" # a PF engedélyezése (a modul betöltése, ha kell) +pf_rules="/etc/pf.conf" # a pf szabályait tartalmazó állomány +pf_flags="" # a pfctl indításához szükséges további paraméterek +pflog_enable="YES" # a pflogd(8) elindítása +pflog_logfile="/var/log/pflog" # hol tartsa a pflogd az naplóit +pflog_flags="" # a pflogd indításához szükséges paraméterek + + Ha a tûzfalunk mögött egy helyi + hálózat is meghúzódik, akkor az ott + levõ gépek számára valamilyen + módon tudnunk kell továbbítani a csomagokat + vagy címfordítást kell végezni, + így ez a beállítás is + mindenképpen kelleni fog: + + gateway_enable="YES" # az átjáró funkciók engedélyezése + + + + + Az <acronym>ALTQ</acronym> + engedélyezése + + Az ALTQ kizárólag csak + úgy érhetõ el, ha belefordítjuk a &os; + rendszermagjába. Az ALTQ nem minden + hálózati kártya részérõl + támogatott. Az &man.altq.4; man oldalán + megtalálhatjuk azokat a meghajtókat, amelyek a + &os; aktuális kiadásában + támogatottak. A következõ + beállítások az ALTQ + további lehetõségeit igyekeznek + engedélyezni. + + options ALTQ +options ALTQ_CBQ # osztályozás alapú besorolás (Class Bases Queuing, CBQ) +options ALTQ_RED # véletlen korai észlelés (Random Early Detection, RED) +options ALTQ_RIO # RED befele/kifele +options ALTQ_HFSC # hiearchikus csomagütemezõ (Hierarchical Packet Scheduler, HFSC) +options ALTQ_PRIQ # prioritásos besorolás (Priority Queuing, PRIQ) +options ALTQ_NOPCC # az SMP esetén kell + + Az options ALTQ az + ALTQ rendszert engedélyezi. + + Az options ALTQ_CBQ engedélyezi a + osztályozás alapú besorolást (Class + Based Queuing, CBQ). A + CBQ használatával a + kapcsolatunkhoz tartozó + sávszélességet + különbözõ osztályokra vagy sorokra + tudjuk bontani és a szûrési + szabályoknak megfelelõen osztályozni + segítségükkel a forgalmat. + + Az options ALTQ_RED a véletlen + korai észlelés (Random Early Detection, + RED) használatát + engedélyezi. A RED a + hálózati forgalomban keletkezõ + torlódások elkerülésére + alkalmas. A RED ezt a + problémát úgy oldja meg, hogy méri a + sorok hosszát és összeveti a + hozzátartozó minimális és + maximális küszöbértékekkel. Ha a + sor hossza meghaladja a számára elõírt + maximális értéket, akkor az új + csomagokat eldobja. Nevéhez hûen a + RED az eldobásra ítélt + csomagokat véletlenszerûen választja + ki. + + Az options ALTQ_RIO engedélyezi a + RED használatát mind a + két irányba, tehát be- és + kifelé. + + Az options ALTQ_HFSC a pártatlan + hierachikus szolgáltatási görbe alapú + csomagütemezõt (Hierarchical Fair Service Curve Packet + Scheduler, HFSC) engedélyezi. Vele + kapcsolatban a + címen találhatunk bõvebben + olvasnivalót (angolul). + + Az options ALTQ_PRIQ a prioritásos + besorolást (Priority Queuing, PRIQ) + teszi elérhetõvé. A PRIQ + mindig elsõként a nagyobb értékû + sorban levõ forgalmat továbbítja. + + Az options ALTQ_NOPCC az + ALTQ SMP, vagyis + többprocesszoros támogatását adja meg. + Ilyen típusú rendszerekben ez + kötelezõ. + + + + + A szûrési szabályok + megfogalmazása + + A csomagszûrõ a &man.pf.conf.5; + állományból olvassa be a szabályokat + és a benne szereplõ szabályok vagy + definíciók alapján módosítja, + eldobja vagy átengedi a csomagokat. A &os; + telepítésében alapértelmezés + szerint az /etc/pf.conf + állomány látja el ennek szerepét, + amely számos hasznos példát és + magyarázatot tartalmaz. + + Noha a &os; saját /etc/pf.conf + állománnyal rendelkezik, a + felépítése mégis + tökéletesen megegyezik az OpenBSD-ben + használatossal. A pf + tûzfal beállításával az OpenBSD + csapat által írt nagyszerû írás + foglalkozik, amely a címrõl + érhetõ el (angolul). + + + A pf felhasználói + útmutatóját olvasgatva azonban soha nem + szabad elfelejtenünk, hogy &os; egyes változatai a + pf különbözõ + verzióit tartalmazzák. A &os; 5.X + változataiban az OpenBSD 3.5 + pf tûzfalát, míg + a &os; 6.X változataiban az OpenBSD 3.7 + szerinti verzióját találjuk. + + + A &a.pf; kitûnõ hely a + pf + beállításával és + mûködtetésével kapcsolatos + kérdések feltevésére. Viszont + mielõtt itt kérdeznénk, ne felejtsük el + átnézni a levelezési lista + archívumait sem. + + + + + + Az IPFILTER (IPF) tûzfal + + + tûzfalak + IPFILTER + + + + Ez a szakasz fejlesztés alatt áll. Ennek + megfelelõen a tartalma nem minden esetben pontos. + + + Az IPFILTER szerzõje Darren Reed. Az IPFILTER nem + kötõdik egyik rendszerhez sem: ez egy olyan nyílt + forráskódú alkalmazás, amelyet + átírtak &os;, NetBSD, OpenBSD, &sunos;, HP/UX + és &solaris; operációs rendszerekre. Az + IPFILTER karbantartása és támogatása + pillanatnyilag is aktív, folyamatosan jelennek meg + újabb változatai. + + Az IPFILTER egy rendszermag oldalán + mûködõ tûzfalazási és egy + címfordítási mechanizmusra alapszik, amelyet + felhasználói programokkal tudunk felügyelni + és vezérelni. A tûzfal szabályai az + &man.ipf.8; segédprogrammal + állíthatóak be vagy + törölhetõek. A hálózati + címfordításra vonatkozó + szabályokat az &man.ipnat.1; segédprogrammal + állíthatjuk be vagy törölhetjük. Az + &man.ipfstat.8; segédprogram képes futás + közben statisztikákat készíteni az + IPFILTER rendszermagban elhelyezkedõ részeinek + viselkedésérõl. Az &man.ipmon.8; program pedig + az IPFILTER cselekvéseit képes a + rendszernaplókba feljegyezni. + + Az IPF eredetileg olyan szabályfeldolgozási + módszer szerint készült, amelyben az + utolsó egyezõ szabály nyer és + csak állapotnélküli szabályokat ismert. + Az idõ múlásával az IPF + részévé vált a quick + opció és a keep state opción + keresztül az állapottartás is, melyek + drámai mértékben + korszerûsítették a szabályok + feldolgozásának elvét. Az IPF hivatalos + dokumentációja tartalmazza a régi + szabályok létrehozását és azok + feldolgozásának leírását. A + korszerûsített funkciók csak + kiegészítésképpen jelennek meg, + és az általuk felkínált + elõnyök megértése egy sokkal magasabb + szintû és biztonságosabb tûzfal + megépítését teszik + lehetõvé. + + A szakaszban szereplõ utasításokban olyan + szabályok szerepelnek, amelyek kihasználják a + quick és keep state + opciókat. Ezek az inkluzív + tûzfalszabályok létrehozásának + alapjai. + + Az inkluzív tûzfalak csak olyan csomagokat + engednek keresztül, amelyek megfelelnek a + szabályoknak. Ezen módon képesek vagyunk + megmondani, hogy a tûzfal mögül milyen + szolgáltatások érhetõek el az interneten + és segítségével azt is megadhatjuk, + hogy az internetrõl a belsõ hálózatunkon + milyen szolgáltatásokat érhetnek el. A + tûzfal alapból minden mást visszautasít + és naplóz. Az inkluzív tûzfalak sokkal, + de sokkal megbízhatóbbak az exkluzív + tûzfalaknál, ezért itt most csak ilyenekkel + foglalkozunk. + + A régi típusú szabályokról + a + és + címeken olvashatunk (angolul). + + Az IPF gyakran ismételt kérdései a címen + érhetõek el (angolul). + + A nyílt forrású IPFILTER + levelezési lista kereshetõ archívumait a + címen találjuk (angolul). + + + Az IPF engedélyezése + + + IPFILTER + engedélyezés + + + Az IPF megtalálható a &os; + alaptelepítésében mint menet közben + külön betölthetõ modul. Ha az + rc.conf állományba + beírjuk a ipfilter_enable="YES" sort, + akkor ez a modul dinamikusan betöltõdik. A + betölthetõ modul alapból naplóz + és a default pass all + beállítást tartalmazza. Ha helyette a + block all szabályt akarjuk + használni, akkor emiatt még nem kell + feltétlenül újrafordítanunk a &os; + rendszermagját, elég ha egyszerûen csak a + szabályrendszerünk végére + beszúrjuk. + + + + + A rendszermag beállításai + + + a rendszermag + beállításai + IPFILTER + + + + a rendszermag + beállításai + IPFILTER_LOG + + + + a rendszermag + beállításai + IPFILTER_DEFAULT_BLOCK + + + + IPFILTER + a rendszermag + beállításai + + + Az IPF használatához nem kötelezõ a + következõ beállításokkal + újrafordítani a &os; rendszermagját, itt + csupán + háttérinformációként + szerepel. Amikor az IPF a rendszermagba kerül, a + betölhetõ modulra nem lesz szükség. + + Az IPF a rendszermag forrásai között + található + /usr/src/sys/conf/NOTES + állományban megadott + beállításai a következõ + módon foglalhatóak össze: + + options IPFILTER +options IPFILTER_LOG +options IPFILTER_DEFAULT_BLOCK + + Az options IPFILTER engedélyezi az + IPFILTER tûzfal + támogatását. + + Az options IPFILTER_LOG + hatására az IPF az ipl + csomagnaplózó pszeudo eszközre jegyzi fel a + forgalmat — minden olyan szabály esetén, + ahol megjelenik a log kulcsszó. + + Az options IPFILTER_DEFAULT_BLOCK + megváltoztatja az alapértelmezett + viselkedést, tehát minden olyan csomag, amely nem + illeszkedik a tûzfal valamelyik pass + típusú (átengedõ) + szabályára, blokkolásra kerül. + + Ezek a beállítások csak azt + követõen érvényesülnek, ha + fordítottunk és telepítettünk + velük egy új rendszermagot. + + + + + Az <filename>rc.conf</filename> állomány + beállításai + + Az /etc/rc.conf + állományban a következõ + utasításokra lesz szükségünk az + IPF mûködésbe hozására a rendszer + indítása során: + + ipfilter_enable="YES" # az ipf tûzfal indítása +ipfilter_rules="/etc/ipf.rules" # betölti a szabályokat tartalmazó szöveges állományt +ipmon_enable="YES" # elindítja az IP monitor naplózását +ipmon_flags="-Ds" # D = indítás démonként + # s = naplózás a syslog használatával + # v = a tcp ablak, ack, seq csomagok naplózása + # n = az IP-címek és portok feloldása + + Ha olyan helyi hálózat áll meg a + tûzfal mögött, amely egy fenntartott + privát IP-címtartományt használ, + akkor még a következõ + utasításokra is szükségünk lesz a + címfordítás + bekapcsolásához: + + gateway_enable="YES" # a helyi hálózat átjárója +ipnat_enable="YES" # az ipnat funkció elindítása +ipnat_rules="/etc/ipnat.rules" # az ipnat mûködéséhez szükséges definíciók + + + + + IPF + + ipf + + Az ipf parancs használható + a szabályokat tartalmazó állomány + betöltésére. Általában egy + állományba írjuk össze a tûzfal + szabályait és ezzel a paranccsal + cseréljük le egyszerre a tûzfalban levõ + jelenlegi szabályokat: + + &prompt.root; ipf -Fa -f /etc/ipf.rules + + Az az összes belsõ + szabály törlését jelenti. + + Az jelzi, hogy egy + állományból kell beolvasni a + betöltendõ szabályokat. + + Ezzel mintegy lehetõségünk van + változtatni a korábban + összeállított szabályainkon, futtatni + a fenti IPF parancsot és ezen keresztül úgy + frissíteni a szabályok friss + másolatával a már mûködõ + tûzfalat, hogy nem is kell újraindítanunk a + rendszert. Ez a módszer igen kényelmes az + új szabályok + kipróbálásához, mivel + bármikor tetszõlegesen + végrehajtható. + + Az &man.ipf.8; man oldala tartalmazza a parancsnak + megadható további + beállításokat. + + Az &man.ipf.8; parancs a szabályokat + tároló állományt egy + szabványos szöveges állománynak + tekinti, semmilyen szimbolikus helyettesítést + alkalmazó szkriptet nem fogad el. + + Lehetõségünk van azonban olyan IPF + szabályokat készíteni, amelyek + kiaknázzák a szkriptek szimbolikus + helyettesítésének lehetõségeit. + Errõl bõvebben lásd . + + + + + Az IPFSTAT + + ipfstat + + + IPFILTER + statisztika + + + Az &man.ipfstat.8; alapértelmezés szerint a + arra használatos, hogy le tudjuk kérdezni + és megjeleníteni a tûzfalhoz tartozó + számlálók értékeit, amelyek a + legutóbbi indítás vagy az ipf + -Z parancs által kiadott + lenullázásuk óta a bejövõ vagy + kimenõ forgalomból a megadott szabályoknak + megfelelõ csomagok alapján gyûjtenek össze + statisztikákat. + + A parancs mûködésének + részleteit az &man.ipfstat.8; man oldalon + olvashatjuk. + + Az &man.ipfstat.8; meghívása alapból + így néz ki: + + input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 + output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0 + input packets logged: blocked 99286 passed 0 + output packets logged: blocked 0 passed 0 + packets logged: input 0 output 0 + log failures: input 3898 output 0 + fragment state(in): kept 0 lost 0 + fragment state(out): kept 0 lost 0 + packet state(in): kept 169364 lost 0 + packet state(out): kept 431395 lost 0 + ICMP replies: 0 TCP RSTs sent: 0 + Result cache hits(in): 1215208 (out): 1098963 + IN Pullups succeeded: 2 failed: 0 + OUT Pullups succeeded: 0 failed: 0 + Fastroute successes: 0 failures: 0 + TCP cksum fails(in): 0 (out): 0 + Packet log flags set: (0) + + Az mint bejövõ (inbound), vagy + az mint kimenõ (outbound) forgalomra + vonatkozó paraméterek megadásával a + rendszermagban az adott oldalon jelenleg telepített + és alkalmazott szabályokat kérhetjük + le és jeleníthetjük meg. + + Az ipfstat -in parancs így a + bejövõ forgalomra vonatkozó belsõ + szabályokat mutatja a szabályok + számával. + + Az ipfstat -on parancs a kimenõ + forgalmat érintõ belsõ szabályokat + mutatja a szabályok számával. + + Az eredmény körülbelül ilyen + lesz: + + @1 pass out on xl0 from any to any +@2 block out on dc0 from any to any +@3 pass out quick on dc0 proto tcp/udp from any to any keep state + + Az ipfstat -ih a bejövõ + forgalomhoz tartozó belsõ szabályokat mutatja + és mindegyik elé odaírja, hogy eddig mennyi + csomag illeszkedett rájuk. + + Az ipfstat -oh ugyanígy a + kimentõ forgalom esetén mutatja a belsõ + szabályokat és mindegyik elõtt + feltünteti, hogy az adott pillanatig mennyi csomag + illeszkedett rájuk. + + A kimenete nagyjából ilyen lesz: + + 2451423 pass out on xl0 from any to any +354727 block out on dc0 from any to any +430918 pass out quick on dc0 proto tcp/udp from any to any keep state + + Az ipfstat parancs talán egyik + legfontosabb funkciója a + kapcsolóval csalható elõ, melynek + hatására a rendszerben aktív + állapotok táblázatát mutatja meg + ugyanúgy, ahogy a &man.top.1; a &os; rendszerben + futó programokat. Amikor a tûzfalunk + támadás alatt áll, ezzel a + funkcióval tudjuk a problémát + beazonosítani, leásni a mélyébe + és látni a támadótól + érkezõ csomagokat. A + kiegészítésképpen megadható + alkapcsolók megadásával + kiválaszthatjuk azt a cél vagy forrás + IP-címet, portot vagy protokollt, amelyet valós + idõben meg akarunk figyelni. Ennek részleteit az + &man.ipfstat.8; man oldalán láthatjuk. + + + + + Az IPMON + + ipmon + + + IPFILTER + naplózás + + + Az ipmon megfelelõ + mûködéséhez be kell kapcsolnunk a + rendszermag IPFILTER_LOG + beállítását. Ez a parancs + két különbözõ módban + használható. Ha parancsot a + opció nélkül gépeljük be, akkor + ezek közül alapból a natív módot + kapjuk meg. + + A démon mód abban az esetben hasznos, ha + folyamatosan naplózni akarjuk a rendszerben zajló + eseményeket, majd késõbb ezeket + átnézni. Így képes egymással + együttmûködni a &os; és az IPFILTER. A + &os; beépítve tartalmaz olyan + lehetõséget, aminek révén + magától cseréli a rendszernaplókat. + Ezért ha átküldjük a syslogd + démonnak a naplózandó üzeneteket, + akkor sokkal jobban járunk, mintha egyszerûen csak + mezei állományba naplóznánk. Az + rc.conf alapértelmezései + között az ipmon_flags + beállítás a + kapcsolókat rögzíti: + + ipmon_flags="-Ds" # D = indítás démonként + # s = naplózás a syslog használatával + # v = a tcp ablak, ack, seq csomagok naplózása + # n = az IP-címek és portok nevének feloldása + + Ennek a viselkedésnek az elõnyei minden + bizonnyal egyértelmûek. + Segítségével képesek vagyunk az + esetek megtörténte után + átnézni, hogyan milyen csomagokat dobott el a + rendszer, azok milyen címekrõl érkeztek + és hova szánták. Ez egy komoly fegyver a + támadók lenyomozásában. + + Hiába engedélyezzük a + naplózást, az IPF + önszántából semmilyen + naplózási szabályt nem fog gyártani. + A tûzfal gazdájának kell eldöntenie, + hogy a szabályokat közül melyiket akarja + naplózni, és így neki kell megadnia a + log kulcsszót ezekben az esetekben. + Normális esetben csak a deny + szabályokat naplózzák. + + Egyáltalán nem ritka, hogy a + szabályrendszer végén egy + alapértelmezés szerint mindent eldobó + szabály áll, amely naplóz. Ezzel + lehetõségünk nyílik + rögzíteni azokat a csomagokat, amelyek egyetlen + szabályra sem illeszkedtek. + + + + + Naplózás az IPMON + használatával + + A syslogd egy saját + módszert alkalmaz a naplózott adatok + elkülönítésére. Egy + funkciók (facility) és + szintek (level) segítségével + kialakított speciális csoportosítást + alkalmaz. Az IPMON módja a + security (biztonság) + funkciót használja. Tehát + az IPMON által naplózott összes adat a + security csoportjába kerül. Ezen + túl a következõ szinteken + különíthetjük el igényeinknek + megfelelõen a naplózott adatokat: + + LOG_INFO - az átengedés vagy blokkolás helyett a "log" kulcsszóval ellátott csomagok +LOG_NOTICE - az át is engedett csomagok +LOG_WARNING - a blokkolt csomagok +LOG_ERR - a naplózott csomagok közül azok, amelyek túlságosan kicsik (hibás a fejlécük) + + Az IPFILTER csak akkor tud naplózni a + /var/log/ipfilter.log + állományba, ha elõtte létrehozzuk. Az + alábbi parancs erre tökéletesen + megfelelõ: + + &prompt.root; touch /var/log/ipfilter.log + + A syslog mûködését az + /etc/syslog.conf állományban + szereplõ definíciók vezérlik. A + syslog.conf állomány + számottevõ mértékben képes + meghatározni azt, ahogy a syslog az IPF és a + hozzá hasonló alkalmazásoktól kapott + rendszerszintû üzeneteket kezeli. + + Az /etc/syslog.conf + állományba az alábbi sor kell + felvennünk: + + security.* /var/log/ipfilter.log + + A security.* megadásával az + összes ilyen típusú üzenet egy + elõre rögzített helyre kerül. + + Az /etc/syslog.conf + állományban elvégzett + módosításokat úgy + léptethetjük érvénybe, ha + újraindítjuk a + számítógépet vagy az + /etc/rc.d/syslogd reload paranccsal + megkérjük a syslog programot, hogy olvassa + újra az /etc/syslog.conf + állományt. + + Az imént létrehozott naplót ne + felejtsük el megadni az + /etc/newsyslog.conf + állományban sem, és akkor ezzel a + cseréjét is megoldjuk. + + + + + A naplózott üzenetek formátuma + + Az ipmon által létrehozott + üzenetek whitespace karakterekkel elválasztott + adatmezõkbõl állnak. A következõ + mezõk az összes üzenet esetében + megjelennek: + + + + A csomag megérkezésének + dátuma + + + + A csomag megérkezésének + idõpontja. ÓÓ:PP:MM.E alakban jelennek + meg az órák, percek, másodpercek + és ezredmásodpercek (ez több + számjegy hosszú is lehet) szerint + + + + Annak a felületnek a neve, ahol a csomag + feldolgozásra került, például + dc0 + + + + A szabályhoz tartozó csoport és + sorszám, például + @0:17 + + + + Ezek az ipfstat -in paranccsal + nézhetõek meg. + + + + Cselekvés: a p mint átment (passed), b + mint blokkolt (blocked), S mint rövid csomag (short + packet), n mint egyik szabályra sem illeszkedett (not + match), L mint naplózás (log). A + módosítók + megjelenítésének sorrendje: S, p, b, n, + L. A nagybetûs P és B azt jelzi, hogy a + csomagot egy felsõbb szintû + beállítás miatt + naplózták, nem egy szabály + hatására. + + + + Címek: ez tulajdonképpen három + mezõt takar: a forrás címet és + portot (melyet egy vesszõ választ el), a -> + jelet és cél címet és portot. + Például: 209.53.17.22,80 -> + 198.73.220.17,1722. + + + + A PR után a protokoll neve + vagy száma olvasható, például + PR tcp. + + + + A len csomaghoz tartozó + fejléc és törzsének teljes + hosszát jelöli, például + len 20 40. + + + + Amennyiben a csomag TCP, egy + kötõjellel kezdõdõen további + mezõk is megjelenhetnek a beállított + opcióknak megfelelõ betûk + képében. A betûket és + beállításaikat az &man.ipmon.8; man + oldalán olvashatjuk. + + Amennyiben a csomag ICMP, a sort két mezõ + zárja, melyek közül az elsõ tartalma + mindig ICMP, és ezt egy perjellel + elválasztva az ICMP üzenet típusa és + altípusa követi. Tehát például + az ICMP 3/3 a nem elérhetõ port + üzenetet hordozza. + + + + + A szabályok felírása szimbolikus + helyettesítéssel + + Az IPF használatában gyakorlott + felhasználók közül + néhányan képesek olyan + stílusú szabályrendszert + készíteni, ahol szimbolikus + helyettesítést használnak. Ennek az egyik + legnagyobb elõnye az, hogy ilyenkor elég csak a + szimbolikus névhez tartozó értéket + megváltoztatni és amikor a szkript lefut, akkor az + összes rá hivatkozó szabályba ez + kerül be. Szkript lévén a szimbolikus + helyettesítéssel ki tudjuk emelni a gyakran + használt értékeket és + behelyettesíteni ezeket több helyre. Ezt a most + következõ példában + láthatjuk. + + Az itt alkalmazott felírás kompatibilis az sh, + csh és tcsh parancsértelmezõkkel. + + A szimbolikus helyettesítést egy + dollárjellel fejezzük ki: + $. + + A szimbolikus mezõkben nem szerepel a $ + jelölés. + + A szimbolikus mezõ tartalmát kettõs + idézõjelbe (") + tesszük. + + Kezdjük így el a szabályok + írását: + + ######### Az IPF szabályait tartalmazó szkript eleje ########### + +oif="dc0" # a kimenõ felület neve +odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe +myip="192.0.2.7" # a szolgáltatótól kapott statikus IP-címünk +ks="keep state" +fks="flags S keep state" + +# Választhatunk, hogy az /etc/ipf.rules állományt ebbõl a szkriptbõl +# hozzuk létre vagy futtathatjuk "magát" a szkriptet. +# +# Egyszerre csak az egyik sort használjuk. +# +# 1) Ezzel gyárhatjuk le az /etc/ipf.rules állományt: +#cat > /etc/ipf.rules << EOF +# +# 2) Ezzel futtathajuk "magát" a szkriptet: +/sbin/ipf -Fa -f - << EOF + +# Engedélyezzük a szolgáltató névszerverének elérését. +pass out quick on $oif proto tcp from any to $odns port = 53 $fks +pass out quick on $oif proto udp from any to $odns port = 53 $ks + +# Engedélyezzük kifelé a titkosítatlan www funkciót. +pass out quick on $oif proto tcp from $myip to any port = 80 $fks + +# Engedélyezzük kifelé a TLS SSL felett üzemelõ titkosított www funkciót. +pass out quick on $oif proto tcp from $myip to any port = 443 $fks +EOF +################## Itt az IPF szkript vége ######################## + + Ennyi lenne. A példában szereplõ + szabályok most nem annyira lényegesek, a + hangsúly most igazából a szimbolikus + helyettesítésen és annak + használatán van. Ha a fenti példát + az /etc/ipf.rules.script + állományba mentjük, akkor ezeket a + szabályokat a következõ paranccsal újra + tudjuk tölteni: + + &prompt.root; sh /etc/ipf.rules.script + + Egyetlen aprócska gond van a beágyazott + szimbólumokat tartalmazó + állományokkal: az IPF maga nem képes + megérteni a helyettesítéseket, azért + közvetlenül nem olvassa a szkriptet. + + Ez a szkript két módon + hasznosítható: + + + + Vegyük ki megjegyzésbõl a + cat paranccsal kezdõdõ sort, + és tegyük megjegyzésbe az + /sbin/ipf kezdetût. A megszokottak + szerint tegyük az + ipfilter_enable="YES" sort az + /etc/rc.conf állományba, + majd minden egyes módosítása + után futtassuk le a szkriptet az + /etc/ipf.rules állomány + létrehozásához vagy + frissítéséhez. + + + + Tiltsuk le az IPFILTER aktiválását + a rendszerindításkor, tehát + írjuk bele az ipfilter_enable="NO" + sort (ami mellesleg az alapértelmezett + értéke) az /etc/rc.conf + állományba. + + Tegyünk egy, az alábbi szkripthez + hasonlót az /usr/local/etc/rc.d/ + könyvtárba. A szkriptnek adjuk valamilyen + értelmes nevet, például + ipf.loadrules.sh. Az + .sh kiterjesztés + használata kötelezõ. + + #!/bin/sh +sh /etc/ipf.rules.script + + A szkript engedélyeit állítsuk be + úgy, hogy a root + tulajdonában legyen és képes legyen + olvasni, írni valamint végrehajtani. + + &prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh + + + + Most miután a rendszer elindult, az IPF + szabályai be fognak töltõdni. + + + + + Szabályrendszerek az IPF-ben + + Az ipf esetében a szabályrendszer olyan + szabályokból áll, amelyek a + csomagokról tartalmuk alapján eldöntik, hogy + át kell engedni vagy vissza kell tartani. A gépek + közt két irányban áramló + csomagok egy munkamenet alapú társalgást + képeznek. A tûzfal szabályrendszere minden + csomagot kétszer dolgoz fel: egyszer, amikor befut az + internetrõl, illetve még egyszer, amikor + visszatér az internetre. Mindegyik TCP/IP + szolgáltatást (például telnet, www, + levelezés stb.) elõre meghatározza a + hozzátartozó protokoll, cél és + forrás IP-cím vagy port. Ez az alapja a + szolgáltatások + engedélyezésérõl vagy + tiltásáról szóló + szabályok megfogalmazásának. + + + IPFILTER + a szabályok feldolgozásának + sorrendje + + + Az IPF eredetileg úgy íródott, hogy a + szabályokat az utolsó illeszkedõ + szabály nyer stílusban dolgozza fel + és csak állapot nélküli + szabályokat ismert. Az idõk folyamán az IPF + szabályai kiegészültek a quick + és az állapottartásra vonatkozó + keep state opciókkal, amelynek + köszönhetõen óriási + mértékben korszerûsödött a + szabályok feldolgozása. + + A szakaszban szereplõ utasítások olyan + szabályokat alkalmaznak, amelyekben egyaránt + szerepel a quick és az + állapottartásért felelõs keep + state beállítás. Ez az + inkluzív tûzfalak + létrehozásának egyik + alapeszköze. + + Az inkluzív tûzfalak csak olyan + szolgáltatásokat engednek át, amelyek + megfelelnek valamelyik szabálynak. Ezzel + lényegében meg tudjuk adni, hogy milyen + szolgáltatások érhetõek el a + tûzfal mögül az internet felé, valamint az + internetrõl a magánhálózatunkon. A + tûzfal minden mást elutasít és + alapértelmezés szerint naplóz. Az + inkluzív tûzfalak sokkal, de sokkal + biztonságosabbak az exkluzív + tûzfalaknál, ezért itt most csak ezzel az + egyetlen típussal foglalkozunk. + + + A tûzfal szabályainak + összeállítása során + nagyon óvatosnak kell + lennünk! Bizonyos beállítások + hatására akár ki is + zárhatjuk magunkat a + szerverünkrõl. Az ebbõl fakadó + esetleges kellemetlenségek elkerülése + érdekében javasoljuk, hogy a tûzfal + alapjait elõször helyi konzolról + építsük fel, ne pedig + távolról, például + ssh + segítségével. + + + + + + A szabályok felépítése + + + IPFILTER + a szabályok + felépítése + + + A szabályok felépítésének + bemutatását itt most leszûkítjük + a modern állapottartó szabályokra és + az elsõ illeszkedõ szabály nyer + típusú feldolgozásra. A szabályok + felírásának régebbi módjai az + &man.ipf.8; man oldalon találhatóak. + + A # karakterrel egy megjegyzés + kezdetét jelezzük, és általában + a sor végén vagy egy külön sorban bukkan + fel. Az üres sorokat a rendszer nem veszi + figyelembe. + + A szabályok kulcsszavakat tartalmaznak. Ezeknek a + kulcsszavaknak balról jobbra haladva adott sorrendben + kell szerepelniük. A kulcsszavakat kiemeltük. Egyes + kulcsszavakhoz további beállítások + is tartozhatnak, amelyek maguk is kulcsszavak lehetnek, + és még további opciókkal + rendelkezhetnek. Az alábbi nyelvtan mindegyik + elemét kiemeltük és az alábbiakban + egyenként kifejtjük a részleteiket. + + CSELEKVÉS BE-KI OPCIÓK + SZÛRÉS ÁLLAPOTTARTÓ PROTOKOLL + FORRÁS_CÍM,CÉL_CÍM OBJEKTUM + PORTSZÁM TCP_BEÁLLÍTÁS + ÁLLAPOTTARTÓ + + CSELEKVÉS = block | + pass + + BE-KI = in | out + + OPCIÓK = log | quick | on + felületnév + + SZÛRÉS = proto + érték | + forrás/cél IP | port = + szám | flags + beállítás + + PROTOKOLL = tcp/udp | udp | tcp | + icmp + + FORRÁS_CÍM,CÉL_CÍM + = all | from objektum to + objektum + + OBJEKTUM = + IP-cím | any + + PORTSZÁM = + portszám + + TCP_BEÁLLÍTÁS + = S + + ÁLLAPOTTARTÓ = keep + state + + + CSELEKVÉS + + A cselekvés határozza meg, hogy mit kell + tenni azokkal a csomagokkal, amelyek illeszkednek a + szabály többi részére. Minden + szabályhoz tartoznia kell egy + cselekvésnek. A következõ cselekvések + közül választhatunk: + + A block megadásával a + szabályban szereplõ szûrési + feltételre illeszkedõ csomagot eldobjuk. + + A pass megadásával a + szabályban szereplõ szûrési + feltételre illeszkedõ csomagot + átengedjük a tûzfalon. + + + + + BE-KI + + Az összes szûrési szabály + esetében kötelezõ egyértelmûen + nyilatkozunk arról, hogy a bemenõ vagy a + kimenõ forgalomra vonatkozik. Ezért a + következõ kulcsszó vagy az in + vagy pedig az out, de közülük + egyszerre csak az egyiket szabad használni, + máskülönben a szabály hibásnak + minõsül. + + Az in jelenti, hogy a szabályt + az internet felõl az adott felületen + beérkezõ csomagokra kell alkalmazni. + + Az out jelenti, hogy a szabályt + az internet felé az adott felületen + kiküldött csomagokra kell alkalmazni. + + + + + OPCIÓK + + + Ezek az opciók csak a lentebb bemutatott + sorrendben használhatók. + + + A log jelzi, hogy illeszkedés + esetén a csomag fejlécét az + ipl eszközön keresztül + naplózni kell (lásd a + naplózásról szóló + szakaszt). + + A quickjelzi, hogy illeszkedés + esetén ez lesz a legutolsónak + ellenõrzött szabály és így egy + olyan rövidzárat tudunk + képezni a feldolgozásban, amellyel + elkerüljük a csomagra egyébként + vonatkozó többi szabály + illesztését. Ez az opció a + korszerûsített szabályfeldolgozás + kihasználásához elengedhetetlen. + + Az on használatával a + szûrés feltételei közé + bevonhatjuk a csomaghoz tartozó hálózati + felületet. Itt a felületek az &man.ifconfig.8; + által megjelenített formában + adhatóak meg. Az opció + megadásával csak az adott felületen az + adott irányba (befelé/kifelé) + közlekedõ csomagokra fog illeszkedni a + szabály. Ez az opció a + korszerûsített szabályfeldolgozás + kihasználásához + nélkülözhetetlen. + + Amikor naplózunk egy csomagot, akkor a + hozzátartozó fejléc az IPL + csomagnaplózó pszeudo eszközhöz + kerül. A log kulcsszó után + közvetlenül a következõ + minõsítõk szerepelhetnek (a + következõ sorrendben): + + A body jelzi, hogy a csomag + tartalmának elsõ 128 byte-ját még + jegyezzük fel a fejléc mellé. + + A first minõsítõt + akkor érdemes használnunk, amikor a + log kulcsszót a keep + state opcióval együtt alkalmazzuk, mivel + ilyenkor csak a szabályt kialakító csomag + kerül naplózásra és nem minden + olyan, ami illeszkedik az állapottartási + feltételekre. + + + + + SZÛRÉS + + Ebben a szakaszban olyan kulcsszavak jelenhetnek meg, + amelyekkel a csomagok különféle + tulajdonságai alapján + ítélkezhetünk azok + illeszkedésérõl. Itt adott egy + kiinduló kulcsszó, amelyhez további + kulcsszavak is tartoznak, és amelyek közül + csak egyet választhatunk. Az alábbi + általános tulajdonságok alapján + tudjuk szûrni a csomagokat, ebben a sorrendben: + + + + + PROTOKOLL + + A proto egy olyan kulcsszó, + amelyhez hozzá kell rendelnünk még + valamelyik opcióját is. Ez az opció + segít az adott protokolloknak megfelelõen + válogatni a csomagok között. A + korszerûsített szabályfeldolgozás + lehetõségeinek + kihasználásához + nélkülözhetetlen. + + Opcióként a tcp/udp | udp | tcp | + icmp, vagy bármelyik, az + /etc/protocols állományban + megtalálható kulcsszó + felhasználható. A tcp/udp + ebbõl a szempontból speciálisnak + tekinthetõ, mivel hatására egyszerre + illeszthetõek a szabályra a TCP + és UDP csomagok, és + így a protokolltól eltekintve azonos + szabályok felesleges + többszörözését + kerülhetjük el. + + + + + FORRÁS_CÍM/CÉL_CÍM + + Az all kulcsszó gyakorlatilag a + from any to any (bárhonnan + bárhova) szinonímája és + nem tartozik hozzá paraméter. + + A from forrás + to cél + felépítése: a from + és to kulcsszavak az IP-címek + illesztésére használhatóak. + Ilyenkor a szabályokban a forrás ÉS a + cél paramétereknek is szerepelniük kell. + Az any egy olyan speciális + kulcsszó, amely tetszõleges IP-címre + illeszkedik. Néhány példa az + alkalmazására: from any to any + vagy from 0.0.0.0/0 to any, from any to + 0.0.0.0/0, from 0.0.0.0/0 to any vagy + from any to 0.0.0.0. + + Az IP-címek megadhatóak pontozott numerikus + formában a hálózati maszk bitekben + mért hosszával együtt, vagy akár + egyetlen pontozott numerikus IP-címként. + + Nincs lehetõség olyan + IP-címtartományok illesztésére, + amelyek nem adhatóak meg kényelmesen a maszk + hosszával. A hálózati maszkok + hosszának megállapításban + segíthet a következõ (angol nyelvû) + honlap: . + + + + + PORT + + Amikor portra vonatkozó illeszkedést + írunk elõ, megadhatjuk a forrásra és + célra, amit aztán vagy csak + TCP vagy pedig csak UDP + csomagokra alkalmazunk. A portok feltételeinek + megfogalmazásánál használhatjuk a + portok számát vagy az + /etc/services állományban + szereplõ nevüket. Amikor a port egy + from típusú objektum + leírásában jelenik meg, akkor + automatikusan a forrásportot jelenti, míg a + to objektum leírásában + pedig a célportot. A to + objektumoknál a port megadása elengedhetetlen a + korszerûsített szabályfeldolgozás + elõnyeinek kihasználásához. + Példa: from any to any port = 80. + + A portokat különbözõ mûveletek + segítségével, numerikusan + hasonlíthatjuk össze, ahol akár + porttartományt is megadhatunk. + + port "=" | "!=" | "<" | ">" | "<=" | ">=" | + "eq" | "ne" | "lt" | "gt" | "le" | "ge". + + A porttartományok megadásához + használjuk a port "<>" | + "><" felírási módot. + + + A forrásra és célra + vonatkozó paraméterek után + szereplõ másik két paraméter + nélkülözhetetlen a + korszerûsített szabályfeldolgozás + mûködéséhez. + + + + + + <acronym>TCP</acronym>_BEÁLLÍTÁS + + A beállítások csak a + TCP forgalom + szûrésénél + érvényesülnek. A betûk jelölik + azokat a lehetséges beállításokat, + amelyek a TCP csomagok + fejlécében + megvizsgálhatóak. + + A korszerûsített + szabályfeldolgozás a flags S + paraméter segítségével ismeri fel + a TCP munkameneteket + kezdeményezõ kéréseket. + + + + + ÁLLAPOTTARTÓ + + A keep state jelzi, hogy a + szabály paramétereinek megfelelõ + bármely csomag aktiválja az + állapottartó szûrés + használatát. + + + Ez a beállítás + feltétlenül szükséges a + korszerûsített szabályfeldolgozás + megfelelõ kihasználásához. + + + + + + + Állapottartó csomagszûrés + + + IPFILTER + állapottartó + szûrés + + + Az állapottartó szûrés a csomagok + kétirányú áramlását + egy létrejött kapcsolatba sorolja be. Amikor + aktiválódik, az állapottartó + szabály elõre dinamikusan létrehozza a + kétirányú kommunikációban + megforduló csomagokhoz a megfelelõ belsõ + szabályokat. Olyan vizsgálatokat végez, + amelyek segítségével ki tudja + deríteni, hogy a csomag küldõje és + címzettje között fennálló + kétirányú kapcsolat érvényes + szabályok szerint zajlik-e. Minden olyan csomagot, amely + nem illeszkedik megfelelõen a kapcsolatra vonatkozó + sémára, csalásnak tekintjük és + automatikusan eldobjuk. + + Az állapottartás révén + lehetõségünk van a TCP vagy + UDP kapcsolatokhoz tartozó + ICMP csomagokat is átengedni a + tûzfalon. Tehát ha kapunk egy 3-as + típusú, 4-es kódú + ICMP választ valamilyen + böngészésre használt + állapottartó szabályon keresztül + kiküldött kérésre, akkor az + automatikusan bejöhet. Amelyik csomagot az IPF + egyértelmûen képes besorolni az aktív + kapcsolatba, még ha az eltérõ protokollt is + használ, beengedi. + + Ami ilyenkor történik: + + Az internethez csatlakozó felületen + keresztül kifelé haladó csomagokat + elõször egy dinamikus állapottábla + alapján illesztjük, és ha a csomag + illeszkedik az aktív kapcsolatban + következõként várt csomagra, akkor + átmegy a tûzfalon és a dinamikus + állapottáblában frissül a kapcsolat + állapota, a fennmaradó csomagok pedig a + kimenõ szabályrendszer szerint kerülnek + ellenõrzésre. + + Hasonlóan az elõzõhöz, az internethez + csatlakozó felületen keresztül befelé + haladó csomagokat elõször egy dinamikus + állapottábla alapján illesztjük, + és ha a csomag illeszkedik az aktív kapcsolatban + következõként várt csomagra, akkor + átmegy a tûzfalon és a dinamikus + állapottáblában frissül a kapcsolat + állapota, a fennmaradó csomagok pedig a + bejövõ szabályrendszer szerint kerülnek + ellenõrzésre. + + Amikor egy kapcsolat befejezõdik, automatikusan + törlõdik a dinamikus + állapottáblából. + + Az állapottartó csomagszûrés + használatával az újonnan keletkezõ + kapcsolatok elutasítására vagy + engedélyezésére tudunk koncentrálni. + Ha engedélyeztük egy új kapcsolat + létrejöttét, akkor a + rákövetkezõ összes többi csomag + automatikusan átmegy a tûzfalon és minden + más hamis csomag eldobódik. Ha tiltjuk az + új kapcsolatot, akkor egyetlen + rákövetkezõ csomag sem juthat át. Az + állapottartó szûrés által + felkínált fejlett elemzési + lehetõségek képesek védelmet + nyújtani a behatolók részérõl + alkalmazott megannyi különbözõ + támadási módszer ellen. + + + + + Példa inkluzív + szabályrendszerre + + A most következõ szabályrendszer arra mutat + példát, hogyan programozzunk le egy nagyon + biztonságos inkluzív tûzfalat. Az + inkluzív tûzfalak csak a szabályainak + megfelelõ szolgáltatásokat engedik + keresztül, és alapértelmezés szerint + minden mást blokkolnak. Minden tûzfal + legalább két felülettel dolgozik, melyek + mindegyikéhez írnunk kell szabályokat a + tûzfal megfelelõ + mûködéséhez. + + Mindegyik &unix;-típusú rendszert, + köztük a &os;-t is úgy + alakították ki, hogy az operációs + rendszeren belüli kommunikáció az + lo0 felületen és a 127.0.0.1 IP-címen keresztül + történik. A tûzfal szabályai + között feltétlenül szerepelniük kell + olyanoknak, amelyek lehetõvé teszik ezen a + speciális felületen a csomagok zavartalan + mozgását. + + Az internetre csatlakozó felülethez kell + rendelni a kifelé haladó forgalom + hitelesítését és az internetrõl + befelé irányuló + hozzáférés vezérlését. + Ez lehet a felhasználói PPP által + létrehozott tun0 felület + vagy a DSL-, illetve kábelmodemhez csatlakozó + hálózati kártya. + + Ahol egy vagy több hálózati kártya + is csatlakozik a tûzfal mögött elhelyezkedõ + helyi magánhálózathoz, ott ezeket a + felületeket úgy kell felvenni a tûzfal + szabályai közé, hogy a helyi + hálózaton zajló forgalmat ne + akadályozzuk. + + A szabályokat elõször három nagy + csoportba kell szerveznünk: az összes szabadon + forgalmazó felület, az internet felé + haladó kimenõ forgalom és az internet + felõl befelé haladó forgalom. + + Az egyes csoportokban szereplõ szabályokat + úgy kell megadni, hogy közülük elõre + kerüljenek a leggyakrabban alkalmazottak, és a + csoport utolsó szabálya blokkoljon és + naplózzon minden csomagot az adott felületen + és irányban. + + A kimenõ forgalomat vezérlõ + szabályrendszer csak pass (tehát + átengedõ) szabályokat tartalmazhat, amelyek + bentrõl az interneten elérhetõ + szolgáltatásokat azonosítják + egyértelmûen. Az összes ilyen + szabályban meg kell jelenni a quick, + on, proto, port + és keep state + beállításoknak. A proto tcp + szabályok esetében meg kell adni a + flag opciót is, amivel fel tudjuk + ismertetni a kapcsolatok keletkezését és + ezen keresztül aktiválni az + állapottartást. + + A bejövõ forgalmat vezérlõ + szabályrendszerben elõször az eldobni + kívánt csomagokat kell megadni, aminek két + eltérõ oka van. Elõször is a blokkolt + elemek lehetnek egy egyébként szabályos + csomag részei, amit a késõbbiekben a + hitelesített szolgáltatások alapján + beengedünk. Másodszor ezzel az olyan + rendszertelenül érkezõ csomagokat tudjuk + blokkolni, amelyeket nem akarunk a naplóban látni, + mivel ilyenkor a csoport utolsójaként megadott + blokkoló és naplózó + szabályhoz már nem jut el. A csoport + utolsó tagjaként megadott szabály blokkolja + és naplózza az illétektelen + hozzáféréseket, amit akár jogi + bizonyítékként is felhasználhatunk a + rendszerünket megtámadók ellen. + + A másik, amire még oda kell figyelnünk, + hogy a blokkolt csomagok esetében semmilyen válasz + nem keletkezik, egyszerûen csak eltûnnek. Így + a támadó nem fogja tudni, hogy a csomagjai vajon + elérték-e a rendszerünket. Minél + kevesebb információt tudnak + összegyûjteni a rendszerünkrõl a + támadók, annál több idõt kell + szánniuk csínytevéseik + kieszelésére. Javasolt a beérkezõ + OS fingerprint jellegû + kéréseket az elsõ alkalmommal + naplózni, mert ez az elsõ jele annak, amikor valaki + meg akar támadni minket. + + Amikor a log first szabály + alapján keletkezõ üzeneteket akarjuk + látni, hívjuk meg a ipfstat + -hio parancsot, ahol megjelenik, hogy melyik + szabályra mennyi csomag illeszkedett. Ennek + alapján el tudjuk dönteni, hogy éppen + elárasztanak-e bennünket, tehát meg akarnak-e + támadni. + + Ha ismeretlen porthoz tartozó csomagokat + naplózunk, akkor az /etc/services + állományban vagy a + (angol nyelvû) honlap segítségével + tudjuk kideríteni, hogy pontosan melyik portról + van szó. + + Érdemes továbbá megnézni a + trójai programok által használt portokat a + + címen (angolul). + + A következõ szabályrendszer egy olyan + biztonságos inkluzív + típusú tûzfal, amelyet maga a szerzõ is + használ. Ha ezt átvesszük egy az egyben, + akkor abból semmilyen bajunk nem származhat. + Egyszerûen csak vegyük ki azokat a szabályokat, + amelyek olyan szolgáltatásokra vonatkoznak, amiket + nem akarunk hitelesíteni. + + Ha nem akarunk látni bizonyos üzeneteket a + naplóban, akkor vegyünk fel hozzájuk egy + block típusú szabályt a + befelé irányuló forgalomhoz tartozó + szabályok közé. + + Ne felejtsük el minden szabályban + átírni a dc0 felület + nevét annak a hálózati + kártyának a felületére, amelyen + keresztül csatlakozunk az internethez. A + felhasználói PPP esetében ez a + tun0 lesz. + + Tehát a következõket kell beírni az + /etc/ipf.rules + állományba: + + ################################################################# +# A helyi hálózatunkon zajló forgalmat ne korlátozzuk. +# Csak akkor kell, ha helyi hálózathoz is csatlakozunk. +################################################################# + +#pass out quick on xl0 all +#pass in quick on xl0 all + +################################################################# +# A belsõ felületen szintén ne korlátozzunk semmit. +################################################################# +pass in quick on lo0 all +pass out quick on lo0 all + +################################################################# +# Az internet felé forgalmazó felület (kimenõ kapcsolatok) +# A saját hálózatunkról belülrõl vagy errõl az átjáróról +# kezdeményezett kapcsolatokat vizsgáljuk az internet felé. +################################################################# + +# Engedélyezzük az internet szolgáltatók névszerverének elérését, +# az "xxx" helyett a névszervet IP-címét kell megadni. +# Másoljuk le ezeket a sorokat, ha a szolgáltatónknak több +# névszerverét is beakarjuk állítani. A címeiket az /etc/resolv.conf +# állományban találjuk. +pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state +pass out quick on dc0 proto udp from any to xxx port = 53 keep state + +# DSL vagy kábeles hálózatoknál engedélyezzük a +# szolgáltatónk DHCP szerverének elérését. +# Ez a szabály nem kell, ha "felhasználói PPP"-vel +# kapcsolódunk az internethez, ilyenkor tehát az egész +# csoport törölhetõ. +# Használjuk az alábbi szabályt és keressük meg a naplóban az +# IP-címet. Ha megtaláltuk, akkor tegyük bele a megjegyzésben +# szereplõ szabályba és töröljük az elsõ szabályt. +pass out log quick on dc0 proto udp from any to any port = 67 keep state +#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state + +# Kifelé engedélyezzük a szabványos nem biztonságos WWW funkciókat. +pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state + +# Kifelé engedélyezzük a biztonságos WWW funkciókat TLS SSL +# protokollal. +pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state + +# Kifelé engedélyezzük az e-mailek küldését és fogadását. +pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state +pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state + +# Kifelé engedélyezzük az idõ szolgáltatást. +pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state + +# Kifelé engedélyezzük az nntp híreket. +pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state + +# Kifelé engedélyezzük az átjáróról és a helyi hálózatról a nem +# biztonságos FTP használatát (passzív és akív módokban is). Ez a +# funkció a mûködéséhez a nat szabályokat tartalmazó állományban +# hivatkozott FTP proxyt használja. Amennyiben a pkg_add paranccsal +# csomagokat akarunk telepíteni az átjáróra, erre a szabályra +# mindenképpen szükségünk lesz. +pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state + +# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP szolgáltatások +# elérését az SSH (secure shell) használatával. +pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state + +# Kifelé engedélyezzük a nem biztonságos telnet elérését. +pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state + +# Kifelé engedélyezzük FreeBSD CVSUP funkcióját. +pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state + +# Kifelé engedélyezzük a pinget. +pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state + +# Kifelé engedélyezzük a helyi hálózatról érkezõ whois kéréseket. +pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state + +# Minden mást eldobunk és naplózzuk az elsõ elõfordulásukat. +# Ezzel a szabállyal állítjuk be, hogy alapértelmezés szerint minden +# blokkolva legyen. +block out log first quick on dc0 all + +################################################################# +# Az internet felõli felület (bejövõ kapcsolatok) +# A saját hálózatunk felé vagy erre az átjáróra +# nyitott kapcsolatokat vizsgáljuk az internet felõl. +################################################################# + +# Eldobjuk az összes olyan bejövõ forgalmat, amit hivatalosan nem +# lehetne továbbítani vagy fenntartott címterülethez tartozik. +block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918: privát IP +block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918: privát IP +block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918: privát IP +block in quick on dc0 from 127.0.0.0/8 to any #helyi +block in quick on dc0 from 0.0.0.0/8 to any #helyi +block in quick on dc0 from 169.254.0.0/16 to any #DHCP +block in quick on dc0 from 192.0.2.0/24 to any #dokumentációs célokra fenntartva +block in quick on dc0 from 204.152.64.0/23 to any #Sun klaszterek összekötésére használt +block in quick on dc0 from 224.0.0.0/3 to any #D és E osztályú többesküldés + +##### Itt eldobunk egy rakás csúf dolgot ############ +# Ezeket nem akarjuk a naplóban látni: + +# Eldobjuk a töredékcsomagokat. +block in quick on dc0 all with frags + +# Eldobjuk a túlságosan rövid TCP csomagokat. +block in quick on dc0 proto tcp all with short + +# Eldobjuk a forrás által közvetített (source routed) csomagokat. +block in quick on dc0 all with opt lsrr +block in quick on dc0 all with opt ssrr + +# Elutasítjuk az "OS fingerprint" kéréseket. +# Naplózzuk az elsõ elõfordulást, így nálunk lesz a kíváncsiskodó +# egyén IP-címe. +block in log first quick on dc0 proto tcp from any to any flags FUP + +# Eldobunk mindent, aminek speciális beállításai vannak. +block in quick on dc0 all with ipopts + +# Elutasítjuk a publikus pinget. +block in quick on dc0 proto icmp all icmp-type 8 + +# Elutasítjuk az ident kéréseket. +block in quick on dc0 proto tcp from any to any port = 113 + +# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram, +# 139=session. A Netbios az MS Windows megosztását implementálja. +# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es +# porton. +block in log first quick on dc0 proto tcp/udp from any to any port = 137 +block in log first quick on dc0 proto tcp/udp from any to any port = 138 +block in log first quick on dc0 proto tcp/udp from any to any port = 139 +block in log first quick on dc0 proto tcp/udp from any to any port = 81 + +# Engedélyezzük a szolgáltatónk DHCP szerverétõl érkezõ forgalmat. +# Ebben a szabályban meg kell adnunk a szolgáltató DHCP szerverének +# IP-címét, mivel itt csak a hiteles forrásból fogadunk el csomagokat. +# Erre csak DSL- és kábelmodemes kapcsolat esetében van szükség, a +# "felhasználói PPP" alkalmazása során szükségtelen. Ez az IP-cím +# megegyezik a kimenõ kapcsolatoknál megadott címmel. +pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state + +# Befelé engedélyezzük a szabványos WWW funkciót, mivel webszerverünk +# van. +pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state + +# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet +# kapcsolatokat. Azért nem biztonságos, mert az azonosítókat és +# jelszavakat titkosítatlan formában közli az interneten keresztül. +# Töröljük ezt a szabályt, ha nem használunk telnet szervert. +#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state + +# Befelé engedélyezzük az internetrõl érkezõ biztonságos FTP, telnet és SCP +# kapcsolatokat az SSH (secure shell) használatával. +pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state + +# Minden mást dobjuk el és naplózzuk az elsõ elõfordulásukat. +# Az elsõ alkalom naplózásával elejét tudjuk venni a "Denial of +# Service" típusú támadásoknak, amivel egyébként lehetséges lenne a +# napló elárasztása. +# Ez a szabály gondoskodik arról, hogy a rendszer alapértelmezés +# szerint mindent eldobjon. +block in log first quick on dc0 all +################### Itt van a szabályok vége ############################## + + + + + <acronym>NAT</acronym> + + NAT + + IP maszkolás + NAT + + + + hálózati + címfordítás + NAT + + + A NAT jelentése Network + Address Translation, vagyis hálózati + címfordítás. A &linux; esetében ezt + IP masqueradingnak, vagyis IP maszkolásnak + hívják. A hálózati + címfordítás és az IP + maszkolás lényegben ugyanazt takarja. Az IPF + címfordításért felelõs + funkciójának köszönhetõen + képesek vagyunk a tûzfal mögött + elhelyezkedõ helyi hálózat + számára megosztani az + internet-szolgáltatól kapott publikus + IP-címet. + + Sokakban felmerülhet a kérdés, hogy erre + vajon mi szükségünk lehet. Az + internet-szolgáltatók a + magánszemélyeknek általában + dinamikus IP-címeket osztanak ki. A dinamikus itt arra + utal, hogy a címünk minden alkalommal + változik, amikor betárcsázunk a + szolgáltatóhoz vagy amikor ki- és + bekapcsoljuk a modemünket. Ez az IP-cím lesz az, + ami alapján az interneten elérhetõek + leszünk. + + Most tegyük fel, hogy öt gépünk van + otthon, viszont csak egyetlen elõfizetéssel + rendelkezünk. Ebben az esetben öt telefonvonalat + kellene használnunk és mindegyik géphez + elõfizetni az internetre. + + A hálózati címfordítás + alkalmazásával azonban mindössze egyetlen + elõfizetés kell. A gépek közül + négyet hozzákötünk egy switch-hez + és a switch-et pedig a fennmaradó géphez, + amelyen &os; fut. Ez utóbbi lesz az így + kialakított helyi hálózatunk + átjárója. A tûzfalban + mûködõ címfordítás + segítségével a helyi + hálózaton található gépek + IP-címeit észrevétlenül át + tudjuk fordítani a hálózatunk publikus + IP-címére, ahogy a csomagok elhagyják az + átjárót. A beérkezõ csomagok + esetében mindez visszafelé történik + meg. + + A hálózati címfordítás + gyakran a szolgáltató engedélye vagy + éppen tudta nélkül történik, + és ha a szolgáltató rájön, + akkor a legtöbb esetben ez az elõfizetés + megszûntetésével jár. Az üzleti + felhasználók jóval többet fizetnek az + internet kapcsolatért és általában + egy olyan statikus IP-címblokkot kapnak, amely sosem + változik. A szolgáltatók az üzleti + célú felhasználás esetében + gyakran ajánlják és + támogatják a hálózati + címfordítást a belsõ + hálózatok számára. + + Az IP-címek közül adott egy + tartomány, amit a címfordítást + használó helyi hálózatok + részére tartanak fenn. Az RFC 1918 szerint + az alábbi IP-címtartományok + használhatók a helyi hálózatban, + mivel ezeken keresztül közvetlenül sosem lehet + kijutni az internetre: + + + + + + + + + + Kezdõ IP: 10.0.0.0 + - + Záró IP: 10.255.255.255 + + + + Kezdõ IP: 172.16.0.0 + - + Záró IP: 172.31.255.255 + + + + Kezdõ IP: 192.168.0.0 + - + Záró IP: 192.168.255.255 + + + + + + + + IP<acronym>NAT</acronym> + + + NAT + IPFILTER + + + ipnat + + A címfordításra vonatkozó + szabályokat az ipnat paranccsal tudjuk + betölteni. Az ilyen típusú + szabályokat általában az + /etc/ipnat.rules állományban + találjuk. A részleteket lásd az + &man.ipnat.1; man oldalán. + + Amikor a címfordítás üzembe + helyezése után meg akarjuk változtatni a + címfordítás szabályait, + elõször a címfordítás + szabályait tartalmazó állományt + módosítsuk, majd a belsõ + címfordítási szabályok és a + címfordítási táblázatban + szereplõ aktív bejegyzések + törléséhez futassuk le az + ipnat parancsot a + beállítással. + + A címfordítási szabályok + újratöltését egy ehhez hasonló + paranccsal tudjuk elvégezni: + + &prompt.root; ipnat -CF -f /etc/ipnat.szabályok + + A címfordításhoz tartozó + statisztikákat ezzel a paranccsal tudjuk + lekérdezni: + + &prompt.root; ipnat -s + + A címfordítási + táblázatban pillanatnyilag szereplõ + összerendeléseket a következõ paranccsal + tudjuk listázni: + + &prompt.root; ipnat -l + + A szabályok feldolgozásával és + az aktív szabályokkal/bejegyzésekkel + kapcsolatos információk + részletezését így + engedélyezhetjük: + + &prompt.root; ipnat -v + + + + + A címfordítási + szabályok + + A címfordítási szabályok nagyon + rugalmasak és rengeteg olyan funkciót meg tudunk + velük valósítani, ami az üzleti + és otthoni felhasználók + számára egyaránt hasznos. + + Itt most a szabályok + felépítését csak + egyszerûsítve mutatjuk be, leginkább a nem + üzleti környezetek tekintetében. A + szabályok komplett formai leírását + az &man.ipnat.5; man oldalán találjuk. + + Egy címfordítási szabály + tehát valahogy így néz ki: + + map FELÜLET HELYI_IP_TARTOMÁNY -> PUBLIKUS_CÍM + + A szabályt a map kulcsszó + kezdi. + + A FELÜLET helyére az + internet felé mutató külsõ felület + nevét írjuk be. + + A HELYI_IP_TARTOMÁNY lesz + az, amelyben a kliensek címeznek. Ez + például a 192.168.1.0/24. + + A PUBLIKUS_CÍM lehet egy + külsõ IP-cím vagy a 0/32 + speciális kulcsszó, amellyel a + FELÜLET-hez rendelt + IP-címre hivatkozunk. + + + + + Hogyan mûködik a hálózati + címfordítás + + A publikus cél felé haladó csomag + megérkezik a helyi hálózatról. + Miután a kimenõ kapcsolatokra vonatkozó + szabályok átengedik, a + címfordítás kapja meg a szerepet és + fentrõl lefelé haladva nekilát alkalmazni a + saját szabályait, ahol az elsõ egyezõ + szerint cselekszik. A címfordítás a + szabályokat a csomaghoz tartozó felületre + és a forrás IP-címére illeszti. + Amikor a csomag felületének neve illeszkedik egy + címfordítási szabályra, akkor + ezután a csomag forrás (vagyis a helyi + hálózaton belüli) + IP-címérõl igyekszik eldönteni, hogy a + szabály nyilának bal oldalán szereplõ + tartományba esik-e. Ha erre is illeszkedik, akkor a + forrás IP-címét átírjuk a + 0/32 kulcsszó alapján + felderített publikus IP-címre. A + címfordító rutin ezt feljegyzi a + saját belsõ táblázatába, + így amikor a csomag visszatér az internetrõl, + akkor képes lesz visszafordítani az eredeti + belsõ IP-címére és + feldolgozásra átadni a tûzfal + szabályainak. + + + + + A címfordítás + engedélyezése + + A címfordítás életre + keltéséhez a következõket kell + beállítanunk az /etc/rc.conf + állományban. + + Elõször engedélyezzük a + gépünknek, hogy közvetítsen forgalmat a + felületek között: + + gateway_enable="YES" + + Minden alkalommal indítsuk el a + címfordításért felelõs IPNAT + programot: + + ipnat_enable="YES" + + Adjuk meg az IPNAT számára a + betöltendõ szabályokat: + + ipnat_rules="/etc/ipnat.rules" + + + + + Hálózati címfordítás + nagyon nagy helyi hálózatok + esetében + + Az olyan helyi hálózatokban, ahol rengeteg PC + található vagy több alhálózatot + is tartalmaz, az összes privát IP-cím + egyetlen publikus IP-címbe + tömörítése igen komoly + problémává tud dagadni és az azonos + portok gyakori használata a helyi hálózatra + kötött számítógépek + között ütközéseket okoz. Két + módon tudunk megoldást nyújtani erre a + problémára. + + + A használható portok + kiosztása + + Egy normális címfordítási + szabály valahogy így nézne ki: + + map dc0 192.168.1.0/24 -> 0/32 + + A fenti szabályban a csomag + forrásportját az IPNAT változatlanul a + feldolgozás után hagyja. Ha ehhez még + hozzátesszük a portmap + kulcsszót, akkor ezzel utasítani tudjuk az + IPNAT-ot, hogy csak az adott tartományban + képezze le a forrásportokat. + Például a következõ szabály + hatására az IPNAT a forrásportokat egy + adott tartományon belül fogja + módosítani: + + map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000 + + Ha viszont még inkább meg akarjuk + könnyíteni a dolgunkat, akkor itt egyszerûen + csak adjuk meg az auto kulcsszót, + amellyel az IPNAT önmagától + megállapítja, hogy milyen portokat tud + használni: + + map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto + + + + + Több publikus cím használata + + Minden nagyobb helyi hálózat esetében + elérkezünk ahhoz a ponthoz, ahol már + egyetlen publikus cím nem elég. Ha több + publikus IP-címmel is rendelkezünk, akkor + ezekbõl a címekbõl egy közös + készletet hozhatunk létre, amibõl + majd az IPNAT válogathat miközben a csomagok + címeit átírja kifelé + menetben. + + Például ahelyett, hogy a csomagokat egyetlen + publikus IP-címre képeznénk le, ahogy itt + tesszük: + + map dc0 192.168.1.0/24 -> 204.134.75.1 + + A hálózati maszk + segítségével meg tudjuk adni + IP-címek egy tartományát is: + + map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0 + + CIDR-jelöléssel: + + map dc0 192.168.1.0/24 -> 204.134.75.0/24 + + + + + + A portok átirányítása + + Gyakran elõfordul, hogy van webszerverünk, + levelezõ szerverünk, adatbázis szerverünk + és névszerverünk, melyek a helyi + hálózat különbözõ + gépein futnak. Ebben az esetben a szerverekhez + tartozó forgalmat is fordítanunk kell, illetve + valamilyen módon a bejövõ forgalmat is + át kell irányítanunk a helyi + hálózat megfelelõ gépeihez. Az IPNAT + ezt a gondot a hálózati + címfordítás + átirányítást támogató + funkcióival szünteti meg. Tegyük fel, hogy a + 10.0.10.25 belsõ + címen van egy webszerverünk, amelyhez a 20.20.20.5 publikus IP tartozik. + Ilyenkor a következõ szabályt adjuk meg: + + rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80 + + vagy: + + rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80 + + Így tudjuk beállítani a 10.0.10.33 címmel + rendelkezõ névszervert a kintrõl + érkezõ névfeloldási + kérések fogadására: + + rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udp + + + + + Az FTP és a címfordítás + + Az FTP egy olyan õskövület, amely még + az internet egy régi korszakából maradt fenn, + amikor az egyetemek között még bérelt + vonal létezett és az FTP szolgált a + kutatók közt az állományok + megosztására. Ez még abban az idõben + történt, amikor a biztonság + egyáltalán nem volt lényeges szempont. Az + évek elõrehaladtával az FTP protokoll + beleivódott a feltörekvõ internet + gerincébe és a titkosítatlanul + küldött azonosítóival és + jelszavaival továbbra is ugyanolyan védtelen + maradt. Az FTP két változatban, aktív + és passzív módban képes + mûködni. Az eltérés kettejük + között az adatcsatorna + megállapításában van. A + passzív mód sokkal biztonságosabb, mivel + ilyenkor az adatcsatornát az FTP kapcsolatot + kezdeményezõ állítja be. Az FTP + különbözõ módjainak + magyarázatát és a köztük + levõ különbséget a + címen ismerhetjük meg részleteiben + (angolul). + + + Az IPNAT szabályai + + Az IPNAT egy speciális beépített FTP + proxyval rendelkezik, amelyre a hálózati + címfordítás leképezései + között hivatkozhatunk. Képes figyelni az + összes aktív vagy passzív FTP kapcsolathoz + tartozó kimenõ kérést és + ezekhez dinamikusan létrehozni olyan ideiglenes + szûrési szabályokat, amelyek valóban + csak az adatcsatornához felhasznált portokat + tartalmazzák. Ezzel ki tudjuk + küszöbölni az FTP azon káros + hatását a tûzfalra nézve, hogy + egyszerre túlságosan sok magasabb + tartománybeli port legyen nyitva. + + Ez a szabály a belsõ hálózat + összes FTP forgalmát lekezeli: + + map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcp + + Ez a szabály pedig az + átjáróról érkezõ FTP + forgalommal bírkózik meg: + + map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp + + Ez a szabály kezeli a belsõ + hálózatról érkezõ összes + nem FTP típusú forgalmat: + + map dc0 10.0.10.0/29 -> 0/32 + + Az FTP leképzésére vonatkozó + szabály a szokásos leképzési + szabály elé kerül. Az összes csomag + fentrõl haladva az elsõ illeszkedõ + szabály alapján kerül feldolgozásra. + Elõször a felület nevét + vizsgáljuk, majd a belsõ hálózatbeli + forrás IP-t, végül azt, hogy a csomag egy + FTP kapcsolat része. Ha minden + paraméterében megfelel, akkor az FTP proxy + készít egy ideiglenes szûrési + szabályt hozzá, amellyel az FTP kapcsolathoz + tartozó csomagok mind a két irányba + képesek lesznek vándorolni, természetesen + a címfordítással együtt. Az + összes többi bentrõl érkezõ csomag + átlép ezen a szabályon és + megáll a harmadiknál, ahol a felületnek + és forrás IP-nek megfelelõen + átfordítjuk a címét. + + + + + Az IPNAT szûrési szabályai + FTP-re + + Az FTP esetében csak egyetlen szûrési + szabályra van szükségünk a + hálózati címfordításba + épített FTP proxy + használatához. + + FTP proxy nélkül az alábbi három + szabály kellene: + + # Kifelé engedélyezzük a belsõ gépek FTP elérést az internet irányába, +# aktív és passzív módokban. +pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state + +# Kifelé engedélyezzük a passzív módhoz tartozó magasabb tartománybeli +# adatcsatornákat. +pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state + +# Aktív módban beengedjük az FTP szervertõl érkezõ adatcsatornát. +pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state + + + + + + + IPFW + + + tûzfalak + IPFW + + + + Ez a szakasz fejlesztés alatt áll. Ennek + megfelelõen a tartalma nem minden esetben pontos. + + + Az IPFIREWALL (IPFW) a &os; által támogatott + tûzfalazó alkalmazás, melyet a &os; Projektben + résztvevõ önkéntesek fejlesztettek ki + és tartanak karban. Régi típusú, + állapottartás nélküli szabályokat + használ, és az itt használatos + szabályírási technikát + egyszerû állapottartó + megoldásnak nevezzük. + + Az IPFW szabvány &os;-ben levõ, mintaként + szolgáló szabályrendszere (ez az + /etc/rc.firewall állományban + található meg) annyira egyszerû, hogy komolyabb + módosítások nélkül nem + ajánlatos használni. Ez a példa nem + tartalmaz állapottartó szûrést, ami + viszont a legtöbb esetben kívánatos lenne, + ezért ezt a szakaszt nem erre alapozzuk. + + Az IPFW állapottartás nélküli + szabályainak felépítésében + olyan technikailag kifinomult leválogatási + képességek bújnak meg, amelyek + jócskán meghaladják az átlagos + tûzfalépítõk tudását. Az + IPFW elsõsorban olyan szakemberek vagy szakmailag + elõrehaladott felhasználók + számára készült, akiknek + speciális csomagszûrési igényeik vannak. + A különbözõ protokollok + használatának és a hozzájuk + tartozó fejlécinformációk mindenre + kiterjedõ ismerete szinte nélkülözhetetlen + az IPFW valódi erejének + kihasználásához. Ez a szint azonban + túlmutat a kézikönyv ezen szakaszának + keretein. + + Az IPFW hét komponensbõl épül fel, + melyek közül az elsõdleges a rendszermag + tûzfalazásért felelõs + szabályfeldolgozó és a + hozzátartozó csomagnyilvántartás, majd + ezt követi a naplózás, a hálózati + címfordítást aktiváló + divert szabály, valamint a komolyabb + célok megvalósítására alkalmas + lehetõségek: a forgalom + korlátozásáért felelõs dummynet, + a továbbküldésre alkalmas fwd + szabály, a hálózati hidak + támogatása, illetve az ipstealth. + + + Az IPFW engedélyezése + + + IPFW + engedélyezése + + + Az IPFW az alap &os; telepítésben + külön, futás idõben betölthetõ + modulként érhetõ el. Ha az + rc.conf állományban megadjuk + a firewall_enable="YES" + beállítást, akkor a rendszer + indulásakor ezt a modult dinamikusan betölti. Az + IPFW-t csak akkor kell a &os; rendszermagjába + beépítenünk, ha szükségünk + van a címfordítási + funkciójára is. + + Ha tehát az rc.conf + állományban megadtuk a + firewall_enable="YES" sort és + újraindítottuk a + számítógépünket, akkor a + következõ fehérrel kiemelt üzenet fog + megjelenni a rendszerindítás során: + + ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabled + + A logging disabled üzenetbõl + kiderül, hogy a modul nem végez + naplózást. A naplózást és a + hozzátartozó részletesség + szintjét úgy tudjuk beállítani, ha + az /etc/sysctl.conf + állományba felvesszük a következõ + sorokat, amivel a következõ indításkor + már mûködni fog: + + net.inet.ip.fw.verbose=1 +net.inet.ip.fw.verbose_limit=5 + + + + + A rendszermag beállításai + + + a rendszermag + beállításai + IPFIREWALL + + + + a rendszermag + beállításai + IPFIREWALL_VERBOSE + + + + a rendszermag + beállításai + IPFIREWALL_VERBOSE_LIMIT + + + + IPFW + a rendszermag + beállításai + + + Ha nem akarjuk kihasználni az IPFW által + felkínált címfordítási + lehetõségeket, akkor egyáltalán nem + szükséges a &os; rendszermagjába + belefordítani a támogatását. + Ezért az alábbiakat csak + kiegészítõ + információként tüntettük + fel. + + options IPFIREWALL + + Ez a beállítás engedélyezi az + IPFW használatát a rendszermag + részeként. + + options IPFIREWALL_VERBOSE + + Ezzel és a log kulcsszóval + tudjuk az IPFW szabályain keresztülhaladó + csomagokat naplózni. + + options IPFIREWALL_VERBOSE_LIMIT=5 + + Ez az érték korlátozza a + &man.syslogd.8; segítségével + naplózott azonos bejegyzések maximális + számát. Ezt a beállítást + olyan veszélyes környezetekben érdemes + használnunk, ahol naplózni akarunk. + Segítségével meg tudjuk akadályozni, + hogy a rendszernapló elárasztásával + megakasszák a rendszerünket. + + + a rendszermag + beállításai + IPFIREWALL_DEFAULT_TO_ACCEPT + + + options IPFIREWALL_DEFAULT_TO_ACCEPT + + Ezen beállítás hatására a + tûzfal alapértelmezés szerint mindent + átenged, ami általában akkor jöhet + jól, amikor még csak ismerkedünk a + tûzfallal. + + options IPV6FIREWALL +options IPV6FIREWALL_VERBOSE +options IPV6FIREWALL_VERBOSE_LIMIT +options IPV6FIREWALL_DEFAULT_TO_ACCEPT + + Ezek a beállítások teljesen megegyeznek + az IPv4 alapú társaikkal, csak ezek az IPv6-ra + vonatkoznak. Ha nem akarunk IPV6-ot használni, akkor ne + adjunk meg az IPV6FIREWALL beállításhoz + szabályokat, és így az összes IPv6 + csomag blokkolásra kerül. + + + a rendszermag + beállításai + IPDIVERT + + + options IPDIVERT + + Ezzel a beállítással + engedélyezzük a címfordítás + használatát. + + + Ha nem adjuk meg az IPFIREWALL_DEFAULT_TO_ACCEPT + beállítást, vagy ha nem + engedélyezzük a bejövõ csomagokat, akkor + a gépünkre semmilyen csomag nem lesz képes + bejutni, illetve onnan kijutni. + + + + + + Az <filename>/etc/rc.conf</filename> + beállításai + + Így tudjuk engedélyezni a + tûzfalat: + + firewall_enable="YES" + + A &os;-hez mellékelt alapértelmezett + tûzfaltípusok közül az + /etc/rc.firewall állomány + átolvasásával tudunk választani, + és megadni az alábbi helyett: + + firewall_type="open" + + A következõ értékek állnak + rendelkezésünkre: + + + + open — átengedi az + összes forgalmat + + + client — csak ezt a + gépet védi + + + simple — az egész + hálózatot védi + + + closed — a helyi felület + kivételével minden IP alapú forgalmat + tilt + + + UNKNOWN — tiltja a tûzfal + szabályainak betöltését + + + állománynév + — a tûzfal szabályait tartalmazó + állomány abszolút elérési + útvonala + + + + Két különbözõ módon lehet + betölteni a saját ipfw + szabályainkat. Az egyik közülük, ha a + firewall_type változóban + megadjuk a tûzfal szabályait + tartalmazó állomány abszolút + elérési útvonalát, az &man.ipfw.8; + parancssori beállításai nélkül. + Egy egyszerû szabályrendszer lehet + például a következõ: + + add block in all +add block out all + + Másrészrõl az + firewall_script változóban is + megadhatjuk azt a szkriptet, amelyben a + rendszerindítás során meghívjuk + ipfw parancsot. Az iménti + szabályrendszert az alábbi szkripttel tudjuk + kiváltani: + + #!/bin/sh + +ipfw -q flush + +ipfw add block in all +ipfw add block out all + + + Ha a firewall_type + változó client vagy + simple értékét + használjuk, akkor az + /etc/rc.firewall + állományban található + alapértelmezett szabályokat érdemes + átvizsgálnunk, hogy kellõen illeszkednek-e + az adott géphez. Hozzátennénk, hogy a + fejezetben szereplõ példák azt + feltételezik, hogy a firewall_script + értéke az /etc/ipfw.rules + állomány. + + + A naplózás így + engedélyezhetõ: + + firewall_logging="YES" + + + A firewall_logging + változó egyedül csak annyit tesz, hogy + beállítja a + net.inet.ip.fw.verbose sysctl + változónak az 1 + értéket (lásd ). A napló + korlátozására nincs külön + változó az rc.conf + állományon belül, de az + /etc/sysctl.conf állomány + segítségével és manuálisan + be tudjuk állítani a hozzátartozó + változót: + + net.inet.ip.fw.verbose_limit=5 + + + Amennyiben a gépünk + átjáróként viselkedik, tehát + a &man.natd.8; segítségével + címfordítást végez, a ban olvashatunk utána, hogy ehhez + az /etc/rc.conf állományban + milyen beállításokat kell megadnunk. + + + + + Az IPFW parancs + + ipfw + + Normál esetben az ipfw parancs + használatos arra, hogy a tûzfal + mûködése közben az aktív belsõ + szabályai közé vegyünk fel vagy + töröljünk közülük + manuálisan bejegyzéseket. Ennek a + módszernek az egyedüli hátránya, hogy + az így végrehajtott + módosítások el fognak veszni a rendszer + leállításával. Itt inkább + azt a megoldást javasoljuk, hogy az összes + szabályt tegyük bele egy állományba + és a rendszerindítás során ezt + töltsük be, majd ha változtatni akarunk a + tûzfalon, akkor ezt az állományt + módosítsuk és a régiek + törlésével töltsük be újra + az egész szabályrendszert. + + Az ipfw parancs mellesleg remekül + használható a jelenleg futó + tûzfalszabályok megjelenítésére + a konzolon. Az IPFW nyilvántartásában az + egyes szabályokhoz dinamikusan jönnek létre + számlálók, amelyek a rá + illeszkedõ csomagokat számolják. A + tûzfal tesztelése folyamán a szabályok + és hozzátartozó + számlálók lekérdezése a + megfelelõ mûködés + ellenõrzésének egyik lehetséges + módja. + + A szabályokat így tudjuk egymás + után felsoroltatni: + + &prompt.root; ipfw list + + A szabályokat így tudjuk az utolsó + illeszkedésük idejével együtt + megjeleníteni: + + &prompt.root; ipfw -t list + + A nyilvántartás lekérdezésekor a + szabályok mellett az illeszkedõ csomagok + száma is láthatóvá válik. Az + elsõ sorban a szabály száma szerepel, majd + ezt követi rendre az illeszkedõ kimenõ és + bejövõ csomagok mennyisége, valamint + végül maga a szabály. + + &prompt.root; ipfw -a list + + A statikus szabályok mellett a dinamikusakat + így lehet kilistázni: + + &prompt.root; ipfw -d list + + A lejárt dinamikus szabályokat is meg tudjuk + nézni: + + &prompt.root; ipfw -d -e list + + A számlálók + nullázása: + + &prompt.root; ipfw zero + + Csak a SZÁM + sorszámú szabályhoz tartozó + számlálók nullázása: + + &prompt.root; ipfw zero SZÁM + + + + + Szabályrendszerek az IPFW-ben + + Egy szabályrendszer lényegében nem + több, mint ipfw szabályok egy + csoportja, amelyekben a csomagokat tartalmuktól + függõen továbbengedjük vagy eldobjuk. A + gépek közti kétirányú + csomagváltás egy kapcsolat + létrejöttének számít. A + tûzfalszabályok a csomagokat kétszer + dolgozzák fel: elõször amikor az + internetrõl megérkeznek, másodjára + pedig akkor, amikor visszatérnek az internetre. Minden + egyes TCP/IP szolgáltatást + (vagyis a telnet, www, levelezés stb.) meghatároz + a saját protokollja és a + hozzátartozó port száma. Ez az az + alapvetõ szûrési feltétel, ami + alapján a szolgáltatásokhoz + engedélyezését vagy tiltását + megvalósító szabályokat + megalkotjuk. + + + IPFW + a szabályok feldolgozásának + sorrendje + + + Amikor egy csomag eléri a tûzfalat, a + szabályrendszer elsõ szabályával + kerül összehasonlításra és + amíg nem illeszkedik valamelyikre, addig lefut rá + a többi szabály is fentrõl lefelé + egyesével, a sorszámuknak megfelelõ + növekvõ sorrendben. Ha a csomag megfelel valamelyik + szabály leválogatási paramétereinek, + akkor a benne megnevezett cselekvés zajlik le, és + számára a feldolgozás befejezõdik. + Ezt a viselkedést neveztük az elsõ + illeszkedés nyer típusú + keresésnek. Amennyiben a csomag egyetlen + szabályra sem illeszkedik, akkor az + ipfw 65535-ös sorszámú + állandó szabálya fogja elcsípni, + amely feladata szerint eldobja az összes hozzá + beérkezõ csomagot anélkül, hogy + bármit is válaszolna a csomag + feladójának. + + + A keresés a count, + skipto és tee + szabályok után még + folytatódik. + + + Az itt szereplõ utasítások az + állapottartó keep state, a + limit, + in/out és + via szabályokra + építkeznek. Ezek szolgálnak az + inkluzív tûzfalak + megvalósításának alapvetõ + eszközeiként. + + Az inkluzív tûzfal csak a szabályoknak + megfelelõ szolgáltatásokat engedélyez. + Segítségével meg tudjuk határozni, + hogy a tûzfal mögül milyen + szolgáltatásokat érhetünk el az + interneten, valamint azt is megadhatjuk vele, hogy az + internetrõl melyik szolgáltatásokhoz + férhetnek hozzá a saját belsõ + hálózatunkban. Felépítése + szerint minden mást tilt. Az inkluzív + jellegû tûzfalak sokkal bizontságosabbak az + exkluzív tûzfalaknál, ezért itt most + csak ilyen típusú szabályrendszerekkel + foglalkozunk. + + + A tûzfal szabályainak + beállítása során nem árt + óvatosnak lennünk, mert + figyelmetlenségünk révén + könnyen kizárathatjuk magunkat a + gépünkrõl. + + + + A szabályok + felépítése + + + IPFW + a szabályok + felépítése + + + Az itt bemutatásra kerülõ + szabályok felépítését csak + olyan mértékig részletezzük, ami + elengedõ a szabványos inkluzív + típusú tûzfalak + kialakításához. A szabályok + felépítésének pontos + leírását az &man.ipfw.8; man + oldalán találhatjuk meg. + + A szabályok kulcsszavakat tartalmaznak. Ezeket a + kulcsszavakat soronként egy elõre + rögzített sorrendben kell szerepeltetni. A + kulcsszavakat a szövegben kiemeltük. Bizonyos + kulcsszavakhoz további opciókhoz is + tartozhatnak, amelyek gyakran maguk is kulcsszavak és + szintén további opciókat + tartalmazhatnak. + + A # egy megjegyzés + kezdetét jelzi, mely egyaránt megjelenhet egy + külön sorban, vagy egy szabályt + tartalmazó sor végén. Az üres sorok + nem vesznek részt a feldolgozásban. + + PARANCS SZABÁLY_SZÁM + CSELEKVÉS NAPLÓZÁS SZÛRÉS + ÁLLAPOTTARTÁS + + + PARANCS + + Minden új szabály elõttt az + add (mint hozzáadás) + parancsnak kell szerepelni, amellyel a belsõ + táblázatba tudjuk felvenni. + + + + + SZABÁLY_SZÁM + + A szabályokhoz mindig tartozik egy sorszám + is. + + + + + CSELEKVÉS + + A szabályhoz az alábbi cselekvések + valamelyike kapcsolható, amely akkor hajtódik + végre, amikor a csomag megfelel a + hozzátartozó szûrési + feltételeknek. + + allow | accept | pass | + permit + + A fentiek közül mindegyik ugyanazt jelenti, + vagyis hatásukra az illeszkedõ csomag + kilép a tûzfalból. Ez a szabály + megállítja a keresést. + + check-state + + A csomagot a dinamikus szabályokat + tároló táblázattal veti + össze. Ha itt egyezést talál, akkor + végrehajtja az egyezõ dinamikus + szabályhoz tartozó cselekvést, minden + más esetben továbblép a + következõ szabályra. Ennek a + szabálynak nincs illeszthetõ paramétere. + Ha a szabályrendszerben nem szerepel ilyen, akkor a + dinamikus szabályok vizsgálatát az + elsõ keep-state vagy + limit használatánál + vonja be a rendszer. + + deny | drop + + Mind a két szó ugyanarra utal, vagyis a + szabályra illeszkedõ csomagokat el kell dobni. + Ebben az esetben a keresés befejezõdik. + + + + + NAPLÓZÁS + + log vagy + logamount + + Amikor egy csomag egy log + kulcsszót tartalmazó szabályra + illeszkedik, akkor a rendszernaplóban egy üzenet + keletkezik a security (biztonság) + funkción keresztül. A naplóba + ténylegesen csak akkor kerül bele az + üzenet, ha az adott szabály még nem + haladta meg a hozzátartozó + logamount paraméter + értékét. Ha ezt nem adtuk meg, akkor + az itt érvényes korlát a + net.inet.ip.fw.verbose_limit sysctl + változóból fog származni. A + nulla érték mind a két esetben + megszünteti ezt a korlátozást. Ha + elértük a korlátot, akkor a + naplózást úgy tudjuk újra + engedélyezni, ha töröljük a + naplózáshoz tartozó + számláló értékét, + lásd az ipfw reset log + parancsot. + + + A naplózás mindig az összes + paraméter illeszkedésének + ellenõrzése után történik, + de még a cselekvés (accept, deny) + elvégzése elõtt. Teljesen rajtunk + múlik, hogyan milyen szabályokat + naplózunk. + + + + + + SZÛRÉS + + Ebben a szakaszban azok a kulcsszavak + találhatóak, amelyek + segítségével a csomagok + különbözõ tulajdonságait tudjuk + megvizsgálni és eldönteni, hogy + illeszkedik-e a szabályra vagy sem. A + következõ általános + tulajdonságokat tudjuk megvizsgálni, ebben a + kötött sorrendben: + + udp | tcp | icmp + + Bármilyen más olyan protokoll is + megadható, amely megtalálható az + /etc/protocols + állományban. Ezzel adjuk a csomaghoz + tartozó protokollt. Használata + kötelezõ. + + from forrás + to cél + + Mind a from és + to kulcsszavak IP-címek + illesztésére alkalmasak. A + szabályoknak tartalmazniuk kell a + forrás ÉS a + cél paramétereket + is. Az any egy olyan kulcsszó, + amely tetszõleges IP-címre illeszkedik. A + me pedig egy olyan speciális + kulcsszó, amely a tûzfalat + mûködtetõ &os;-s gép (tehát ez + a gép) adott felülethez tartozó + IP-címét jelöli, mint ahogy a from + me to any, from any to me, + from 0.0.0.0/0 to any, from any to + 0.0.0.0/0, from 0.0.0.0 to any, + from any to 0.0.0.0 vagy from me to + 0.0.0.0 paraméterekben. Az IP-címek + numerikus pontozott formában a hálózati + maszk hosszával együtt, vagy egyszerûen + csak pontozott formában adhatóak meg. A + hálózati maszkok + megállapításában a címen + található honlap nyújthat + segítséget (angolul). + + port + szám + + A portszámokat is ismerõ protokollok + esetében (mint például a + TCP vagy UDP) adhatjuk meg. Fontos, hogy + itt annak a szolgáltatásnak a + portszámát adjuk meg, amelyre a szabály + vonatkozik. A szolgáltatás (az + /etc/services + állományból származó) + nevét is megadhatjuk a port száma + helyett. + + in | out + + A beérkezõ valamint a kimenõ csomagokat + adhatjuk meg ezen a módon. Itt az + in és out + kulcsszavak, melyeket kötelezõ megadni a + szabály részeként. + + via + felület + + Név szerint az adott felületen + keresztül haladó csomagokat tudjuk szûrni. + A via kulcsszó + hatására a használt felület is + számítani fog a csomag feldolgozása + során. + + setup + + Ez a kulcsszó a TCP csomagok + esetében a kapcsolatok + felépítésére vonatkozó + kéréseket segít + beazonosítani. + + keep-state + + Ez egy kötelezõ kulcsszó. + Feldolgozásakor a tûzfal létrehoz + dinamikus szabályt, amely + alapértelmezés szerint az egyazon protokollt + használó forrás és cél + IP/port párosok közti + kétirányú forgalomra fog automatikusan + illeszkedni. + + limit + {forráscím | + forrásport | + célcím | + célport} + + A tûzfal csak N darab, a + szabálynak megfelelõ azonos + paraméterû kapcsolatot fog átengedi. Itt + egy vagy több forrás- és + célcím valamint forrás- és + célport adható meg. A + limit és a + keep-state egy szabályon + belül nem használható. A + limit ugyanazokat az + állapottartó funkciókat + képviseli, mint a keep-state, csak + a saját kiegészítéseivel + megtoldva. + + + + + + ÁLLAPOTTARTÁS + + + IPFW + állapottartó + szûrés + + + Az állapottartó szûrés a + kétirányú csomagváltásokat + egy létrejött kapcsolatba sorolja. Olyan + vizsgálatokat végez, amivel képes + megállapítani, hogy a csomag küldõje + és címzettje között kialakult + kommunikáció követ-e valamilyen + kétirányú csomagküldésre + érvényes folyamatot. Az így + felállított sablontól eltérõ + összes csomag hamisnak minõsül és + automatikusan eldobásra kerül. + + A check-state + segítségével ellenõrizhetjük, + hogy az adott csomag a IPFW szerint megfelel-e valamelyik + dinamikusan leképzett szabálynak. Ha egyezik + valamelyikõjükkel, akkor a csomag a + tûzfalból kilépve folytatja + útját és a kommunikációban + soron következõ csomag számára + létrejön egy másik dinamikus + szabály. Ha nincs egyezés, akkor csomag + feldolgozása a szabályrendszer + következõ szabályánál + folytatódik. + + A dinamikus szabályokat kezelõ rutin + sebezhetõ, mivel ha egyszerre nagy mennyiségû + SYN csomagot küldünk, akkor olyan sok dinamikus + bejegyzés keletkezik, hogy egyszerûen kifogyunk a + rendelkezésre álló + erõforrásokból. A &os; fejlesztõi + azonban az ilyen természetû + támadások kivédésére is + felkészítették, és + kialakították belõle a + limit opciót. + Alkalmazásával le tudjuk korlátozni az + egyszerre folyó párhuzamos kapcsolatok + számát a forrás vagy a cél a + limit paraméternél megadott + mezõinek és a csomag IP-címe + alapján. Így az adott szabályhoz + és IP-címhez csak elõre + rögzített mennyiségû nyitott + állapotú dinamikus szabály + létezhet egy idõben. Ha ezt a korlátot + átlépjük, a csomag eldobódik. + + + + + A tûzfal üzeneteinek + naplózása + + + IPFW + naplózás + + + A naplózás elõnyei + nyilvánvalóak. Ha engedélyezzük, + aktiválása után képesek + leszünk olyan információknak + utánanézni, mint például milyen + csomagokat dobtunk el, honnan érkeztek, hova tartottak. + Ez egy komoly fegyverünk lehet a potenciális + támadókkal szemben. + + Azonban hiába engedélyezzünk + önmagában a naplózást, attól + az IPFW még saját magától nem fog + naplózást elõíró + szabályokat gyártani. A tûzfal + karbantartóinak maguknak kell eldöntenie, hogy a + szabályrendszerben mely szabályokhoz tartozzon + naplózás, nekik kell felvenni ezekhez a + log kulcsszót. + Általában csak az eldobással + járó deny + típusú szabályokat vagy a + bejövõ ICMP pingeket + szokták naplózni. Gyakran úgy + oldják meg ezt, hogy a szabályrendszer + utolsó szabályaként + lemásolják az ipfw + alapértelmezett mindent eldobunk + szabályát és a naplózást + adják meg benne. Ezen a módon fény + derül azokra a csomagokra, amelyek a + szabályrendszerben semmire sem illeszkedtek. + + A naplózás azonban egy + kétélû fegyver, mivel ha nem vagyunk + elég körültekintõek, akkor a sok + naplóinformáció között + könnyen el tudunk veszni és a lemezünk is + gyorsan betelhet a mindent elfoglaló + naplóktól. Mellesleg a naplók + megdagasztását célzó DoS + típusú támadás a rendszerek + lebénítására alkalmazott egyik + legõsibb technika. Ezek az üzenetek nem csak a + rendszernaplóba kerülnek bele, hanem az + elsõdleges konzol képernyõjére is + kiíródnak, ami egy idõ után + idegesítõ tud lenni. + + A rendszermag + IPFIREWALL_VERBOSE_LIMIT=5 + beállításával azonban + képesek vagyunk korlátozni azokat a + rendszernapló felé küldött + egymás után következõ üzeneteket, + amelyek ugyanarra a szabályra vonatkoznak. Amikor ezt + a beállítást megadjuk a rendszermag + fordításánál, akkor az egyes + szabályokhoz az általa meghatározott + értéken felül nem jön létre + több hasonló üzenet. Hiszen semmi sem + derül ki 200 teljesen azonos + naplóüzenetbõl. Például, ha az + egyes szabályokhoz legfeljebb öt egymást + követõ üzenetet engedélyezünk, + akkor a többi fennmaradó azonos üzenetet + összeszámolja a rendszer és a + következõ módon közvetíti a + rendszernaplózó szolgáltatás + felé: + + last message repeated 45 times + + Ami magyarul így hangzik: + + az utolsó üzenet 45 alkalommal ismétlõdött meg + + Az összes csomagokkal kapcsolatos + naplózás alapértelmezés szerint a + /var/log/security + állományba kerül, amelyet az + /etc/syslog.conf állomány + definiál. + + + + + Szabályokat tartalmazó szkript + készítése + + A rutinosabb IPFW felhasználók a + szabályokat egy állományban + programozzák le olyan stílusban, hogy + szkriptként is futtatható legyen. Ennek az + egyik legnagyobb elõnye, hogy a tûzfal + szabályai így egyszerre cserélhetõek + a rendszer újraindítása + nélkül. Ez a módszer nagyon + kényelmes az új szabályok + kipróbálásánál, mivel + tetszõleges alkalommal végrehajthatjuk. Mivel ez + egy szkript, ki tudjuk használni az itt megszokott + szimbolikus helyettesítés által + felkínált lehetõségeket, és + ezzel a gyakran használt értékeket is + egyszerre több szabályban tudjuk + helyettesíteni. Erre a következõkben fogunk + egy konkrét példát látni. + + A szkript felépítése kompatibilis a + sh, csh és + tcsh parancsértelmezõkkel. A + szimbolikus mezõk helyettesítését a + $ vagyis dollárjel vezeti be. Maguk a + szimbolikus mezõk nem tartalmazzák a $ + elõtagot. A szimbolikus mezõk + értékeit "kettõs idézõjelek" + között kell megadni. + + A szabályok összeírását + kezdjük el így: + + ####### itt kezdõdik az ipfw szabályait tartalmazó szkript ###### +# +ipfw -q -f flush # töröljük az összes aktuális szabályt +# Set defaults +oif="tun0" # a kimenõ felület +odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe +cmd="ipfw -q add " # a szabályok hozzáadásához szükséges elemek +ks="keep-state" # csupán a lustaság miatt +$cmd 00500 check-state +$cmd 00502 deny all from any to any frag +$cmd 00501 deny tcp from any to any established +$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks +$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks +$cmd 00611 allow udp from any to $odns 53 out via $oif $ks +#### itt fejezõdik be az ipfw szabályait tartalmazó szkript ###### + + Ezzel készen is vagyunk. Most ne + törõdjünk a példában + szereplõ szabályokkal, itt most a szimbolikus + helyettesítés használatát + igyekeztük bemutatni. + + Ha az iménti példát az + /etc/ipfw.rules állományba + mentettük el, akkor az alábbi parancs + kiadásával tudjuk újratölteni a + benne szereplõ szabályokat: + + &prompt.root; sh /etc/ipfw.rules + + Az /etc/ipfw.rules + állományt egyébként + tetszõleges néven hívhatjuk és + bárhová rakhatjuk. + + Ugyanez természetesen elérhetõ a + következõ parancsok egymás utáni + begépelésével is: + + &prompt.root; ipfw -q -f flush +&prompt.root; ipfw -q add check-state +&prompt.root; ipfw -q add deny all from any to any frag +&prompt.root; ipfw -q add deny tcp from any to any established +&prompt.root; ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state +&prompt.root; ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state +&prompt.root; ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state + + + + + Állapottartó + szabályrendszerek + + A most következõ + címfordítás nélküli + szabályrendszer arra mutat példát, hogyan + valósítsunk meg egy biztonságos + inkluzív tûzfalat. Az + inkluzív tûzfalak csak a szabályainak + megfelelõ szolgáltatásokat engedik + át, minden mást alapértelmezés + szerint tiltanak. Minden tûzfalhoz legalább + két felület tartozik, és a + mûködéséhez ezek mindegyikéhez + meg kell adnunk szabályokat. + + Az &unix; mintájú operációs + rendszer, köztül a &os; is olyan, hogy a rendszerben + belüli kommunikációt a + lo0 nevû felületen + és a 127.0.0.1 + IP-címen bonyolítja le. A tûzfalban + mindenképpen szerepelniük kell olyan + szabályoknak, amelyek gondoskodnak ezen + speciális belsõ csomagok zavartalan + közlekedésérõl. + + Az internet felé csatlakozó felület + lesz az, amelyen keresztül a kifelé menõ + kéréseket hitelesítjük és + vezéreljük az internet + elérését, valamint ahol szûrjük + az internet felõl érkezõ + kéréseket. Ez lehet a PPP esetében a + tun0 eszköz, vagy a DSL-, + illetve kábelmodemhez csatlakozó + hálózati kártya. + + Abban az esetben, amikor egy vagy több + hálózati kártyával csatlakozunk a + tûzfal mögött található + belsõ helyi hálózatra, szintén + gondoskodnunk kell a helyi hálózaton belül + mozgó csomagok akadálymentes + továbbításáról. + + A szabályokat elõször három + nagyobb osztályba kell sorolnunk: az összes + szabadon forgalmazó felület, a publikus + kimenõ és a publikus bejövõ felület + csoportjába. + + A publikus felületekhez tartozó csoportokban + úgy kell rendeznünk a szabályokat, hogy + elõre kerüljenek a gyakrabban használtak + és hátra a kevésbé + használtak, valamint a csoportok utolsó + szabálya blokkoljon és naplózzon minden + csomagot az adott felületen és + irányban. + + A következõ szabályrendszerben + szereplõ, a kimenõ kapcsolatokat tartalmazó + csoport csak olyan allow + típusú szabályokat tartalmaz, amelyek + szûrési feltételei egyértelmûen + azonosítják az interneten elérhetõ + szolgáltatásokat. Az összes + szabályban megjelennek a proto, + port, + in/out, + via és keep + state opciók. A proto + tcp szabályokban emellett szerepel még + egy setup opció is, amellyel a + kapcsolatokat kezdeményezõ csomagokat tudjuk + azonosítani és felvenni az + állapottartásért felelõs dinamikus + szabályok közé. + + A bejövõ felülettel foglalkozó + csoport elsõsorban a kéretlen csomagokat igyekszik + blokkolni, aminek két oka is van. Elõször is + a blokkolt csomagról elképzelhetõ, hogy + egyébként érvényes és + valamelyik késõbbi szabály fogja + hitelesíteni. Másodszor ezekkel a + szabályokkal olyan szabálytalan + idõközönként érkezõ + csomagokat tudunk eldobni, amelyeket nem akarunk a + naplóban feljegyezni, és ennek + segítségével távoltartjuk az + utolsó, mindent blokkoló és + naplózó szabálytól. A csoport + utolsó szabálya dobja el és + naplózza a hozzá befutó összes + csomagot, illetve ezen keresztül + rögzíthetünk olyan jogi + bizonyítékot, amellyel hivatalosan fel tudunk + lépni a rendszerünket támadó emberek + ellen. + + Amit még nem szabad elfelejtenünk: a + tûzfal az eldobott csomagokra egyáltalán + nem válaszol, egyszerûen csak eltûnnek, + mintha sosem lettek volna. Ennek köszönhetõen + a támadóknak fogalma sem lesz arról, hogy + a csomagjaik elérték-e a rendszerünket. + Minél kevesebbet tudnak a támadók a + rendszerünkrõl, annál biztonságosabb. + Amikor ismeretlen portokra érkezõ csomagokat + naplózunk, érdemes az + /etc/services/ állományban + vagy + címen (angolul) utánanézni a porthoz + tartozó szolgáltatásnak. A + különbözõ trójai programok + által portok számai ezen a linken + érhetõek el (angolul): . + + + + + Példa egy inkluzív + szabályrendszerre + + A most következõ, + címfordítást nem tartalmazó + szabályrendszer teljesen inkluzív + típusú. Ha ezt használjuk, nem + járunk rosszul. Egyszerûen csak annyit kell + tennünk, hogy megjegyzésbe tesszük az olyan + szolgáltatásokra vonatkozó + szabályokat, amelyeket nem akarunk engedélyezni. + Amikor pedig olyan üzenetek jelennek meg a + naplóban, amelyeket nem akarunk tovább + látni, a bejövõ kapcsolatokhoz vegyünk + fel egy deny típusú + szabályt hozzájuk. Minden szabályban + cseréljük ki a dc0 + felületet arra a hálózati + kártyára, amely közvetlenül + csatlakoztatja rendszerünket az internethez. A + felhasználói PPP esetében ez a + tun0. + + A szabályok használatában + felfedezhetünk egyfajta + rendszerszerûséget: + + + + Mindegyik sorban, ahol az internet felé nyitunk + meg egy kapcsolatot, a + opciót használjuk. + + + + Az internetrõl az összes hitelesített + szolgáltatás elérése + tartalmazza a opciót az + elárasztások kivédése + miatt. + + + + Az összes szabályban az + vagy az + paraméterrel megadjuk szûrni + kívánt forgalom + irányát. + + + + Az összes szabályban szerepel a + paraméterrel a csomagokat + továbbító felület neve. + + + + Az alábbi szabályokat tegyük az + /etc/ipfw.rules + állományba. + + ############## Itt kezdõdnek az IPFW szabályai ########################## +# Kezdés elõtt töröljük az összes aktív szabályt. +ipfw -q -f flush + +# Állítsuk be a parancsok további szükséges opciót. +cmd="ipfw -q add" +pif="dc0" # az internethez csatlakozó + # felület neve + +################################################################# +# A belsõ hálózat számára ne korlátozzunk semmit se. +# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk. +# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó +# felület nevére. +################################################################ +#$cmd 00005 allow all from any to any via xl0 + +################################################################ +# A rendszer belsõ felületét se szûrjük. +################################################################ +$cmd 00010 allow all from any to any via lo0 + +################################################################ +# A csomagot engedjük át a tûzfalon, ha korábban már felvettünk +# hozzá egy dinamikus szabályt a keep-state opcióval. +################################################################ +$cmd 00015 check-state + +################################################################ +# Az internet felé forgalmazó felület (kimenõ kapcsolatok) +# A saját hálózatunkról belülrõl vagy errõl az átjáróról +# kezdeményezett kapcsolatokat vizsgáljuk az internet felé. +################################################################ + +# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének +# elérését. Az x.x.x.x a szolgáltatónk névszerverének IP-címe +# legyen. Ha a szolgáltatónak több névszervere is van, akkor +# másoljuk le ezeket a sorokat és az /etc/resolv.conf +# állományban található IP-címeket helyettesítsük be. +$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state +$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state + +# Kábel/DSL konfigurációk esetében kifelé engedélyezzük a +# szolgáltatónk DHCP szerverének elérését. Ha a "felhasználói +# PPP"-t használjuk, akkor erre nem lesz szükségünk, az egész +# csoportot törölhetjük. Az alábbi szabállyal csíphetjük el a +# beírandó IP-címet. Ha a naplóban megtaláltuk, akkor vegyük +# ki az elsõ szabályt, a másodikba írjuk bele a címet és +# engedélyezzük. +$cmd 00120 allow log udp from any to any 67 out via $pif keep-state +#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state + +# Kifelé engedélyezzük a szabvány nem biztonságos WWW +# funkció elérését. +$cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state + +# Kifelé engedélyezzük a biztonságos HTTPS funkció +# elérését TLS SSL használatával. +$cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state + +# Kifelé engedélyezzük a e-mailek küldését és fogadását. +$cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state +$cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state + +# Kifelé engedélyezzük a FreeBSD (a make install és a CVSUP) +# funkcióit. Ezzel lényegében a rendszeradminisztrátornak +# ,,ISTENI'' jogokat adunk. +$cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root + +# Kifelé engedélyezzük a pinget. +$cmd 00250 allow icmp from any to any out via $pif keep-state + +# Kifelé engedélyezzük az idõ szolgáltatást. +$cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state + +# Kifelé engedélyezzük az nntp news szolgáltatást +# (vagyis a hírcsoportokat) +$cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state + +# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP +# elérését az SSH (secure shell) használatával. +$cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state + +# Kifelé engedélyezzük a whois szolgáltatást. +$cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state + +# Dobjuk el és naplózzunk mindent, ami megpróbál kijutni. +# Ez a szabály gondoskodik róla, hogy alapértelmezés szerint +# mindent blokkoljunk. +$cmd 00299 deny log all from any to any out via $pif + +################################################################ +# Az internet felõli felület (bejövõ kapcsolatok) +# A saját hálózatunk felé vagy erre az átjáróra +# nyitott kapcsolatokat vizsgáljuk az internet felõl. +################################################################ + +# Blokkoljunk minden olyan bejövõ forgalmat, amely a fenntartott +# címtartományok felé tart. +$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP +$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP +$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP +$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #helyi +$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #helyi +$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP +$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott +$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszterek összekötésére használt +$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú többesküldés + +# A nyilvános pingek tiltása. +$cmd 00310 deny icmp from any to any in via $pif + +# Az ident szolgáltatás tiltása. +$cmd 00315 deny tcp from any to any 113 in via $pif + +# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram, +# 139=session. A Netbios az MS Windows megosztását implementálja. +# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es +# porton. +$cmd 00320 deny tcp from any to any 137 in via $pif +$cmd 00321 deny tcp from any to any 138 in via $pif +$cmd 00322 deny tcp from any to any 139 in via $pif +$cmd 00323 deny tcp from any to any 81 in via $pif + +# Eldobjuk az összes késõn érkezõ csomagot. +$cmd 00330 deny all from any to any frag in via $pif + +# Eldobjuk azokat az ACK csomagokat, amelyek egyik dinamikus +# szabálynak sem felelnek meg. +$cmd 00332 deny tcp from any to any established in via $pif + +# Befelé engedélyezzük a szolgáltató DHCP szerverének válaszát. Ebben +# a szabályban csak a DHCP szerver IP-címe szerepelhet, mivel ez az +# egyetlen olyan hitelesített forrás, ami ilyen csomagokat küldhet. +# Ez csak a kábeles és DSL típusú kapcsolatok esetében szükséges. +# Amikor a "felhasználói PPP"-vel csatlakozunk az internethez, nem +# kell ez a szabály. Ugyanazt az IP-címet kell megadnunk, amelyet a +# kimenõ kapcsolatoknál is. +#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state + +# Befelé engedélyezzük a szabvány WWW funkciót, mivel webszerverünk +# is van. +$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2 + +# Befelé engedélyezzük a biztonságos FTP, telnet és SCP +# típusú kapcsolatokat az internetrõl. +$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2 + +# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet +# kapcsolatokat. Azért tekintjük nem biztonságosnak, mert az +# azonosítók és a jelszavak az interneten titkosítatlanul vándorolnak. +# Töröljük ezt a csoportot, ha nincs telnet szolgáltatásunk. +$cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2 + +# Dobjuk el és naplózzuk az összes többi kintrõl érkezõ csomagot. +$cmd 00499 deny log all from any to any in via $pif + +# Alapértelmezés szerint dobjuk el mindent. Az ide érkezõ +# csomagokat is naplózzuk, amibõl többet is ki tudunk majd +# deríteni. +$cmd 00999 deny log all from any to any +############# Itt fejezõdnek be az IPFW szabályai ##################### + + + + + Példa hálózati + címfordításra és + állapottartásra + + + címfordítás + és az IPFW + + + Az IPFW címfordító + funkciójának + kihasználásához további + konfigurációs beállítások + alkalmazására is szükségünk + lesz. A rendszermagban opció között meg kell + adnunk az option IPDIVERT sort a többi + IPFIREWALL sor mellett, és + fordítanunk egy saját verziót. + + Emellett még az /etc/rc.conf + állományban is engedélyezni kell az IPFW + alapvetõ funkcióit. + + natd_enable="YES" # engedélyezzük a címfordításért felelõs démont +natd_interface="rl0" # az internet felé mutató hálózati kártya neve +natd_flags="-dynamic -m" # -m = a portszámok megtartása, ha lehetséges + + Az állapottartó szabályok + használata a divert natd + címfordítási opcióval együtt + nagyban növeli a szabályrendszer + leprogramozásának bonyolultságát. + A check-state és divert + natd szabályok helye kritikus a + megfelelõ mûködés tekintetében. + Az eddig megszokott egyszerû viselkedés itt + már nem érvényesül. Bevezetünk + egy új cselekvést is, amelynek a neve + skipto. A skipto + parancs használatához elengedhetetlen a + szabályok sorszámozása, mivel pontosan + tudnunk kell, hogy a skipto + hatására hova kell ugrania a + vezérlésnek. + + A következõ példában nem fogunk + sok megjegyzést látni, mivel benne az egyik + lehetséges programozási stílust + próbáljuk érzékeltetni és a + csomagok szabályrendszerek közti + áramlását magyarázzuk. + + A feldolgozás a szabályokat + tartalmazó állomány tetején + található elsõ szabállyal + kezdõdik, és innen egyesével pereg + végig lefelé a feldolgozás egészen + addig, amíg a csomag a szûrési + feltételek valamelyikének eleget nem tesz + és távozik a tûzfalból. + Leginkább a 100-as, 101-es, 450-es, 500-as és + 510-es sorszámú szabályokat + emelnénk ki. Ezek vezérlik kimenõ + és bejövõ csomagok + fordítását, ezért a + hozzájuk tartozó dinamikus + állapottartó bejegyzések mindig a helyi + hálózat IP-címeire hivatkoznak. Amit + még érdemes megfigyelnünk, hogy az + összes áteresztõ és eldobó + szabályban szerepel a csomag haladási + iránya (tehát kimenõ vagy éppen + bejövõ) és az érintett felület + megnevezése. Emellett azt is vegyük észre, + hogy az összes kifelé irányuló + kapcsolatlétrehozási kérés az + 500-as sorszámú szabályhoz fog ugrani a + címfordítás + elvégzéséhez. + + Tegyük fel, hogy a helyi hálózatunkon + levõ felhasználók szeretnek honlapokat + nézgetni az interneten. A honlapok a 80-as porton + keresztül kommunikálnak. Tehát amikor egy + ilyen csomag eléri a tûzfalat, nem fog illeszkedni + a 100-as szabályra, mert a fejléce szerint + kifelé halad és nem befelé. A 101-es + szabályon is átlép, mivel ez az elsõ + csomag, így a dinamikus állapottartó + táblázatban sem szerepel még. A csomag + végül a 125-ös szabályra fog + illeszkedni: kifelé halad az internetre + csatlakozó hálózati + kártyán. A csomagban azonban még mindig + az eredeti forrás IP-címe + található, amely a helyi hálózat + egyik gépére hivatkozik. A szabály + illeszkedésekor két cselekvés is + végbemegy. A opció + hatására ez a szabály felveszi ezt a + kapcsolatot az állapottartó dinamikus + szabályok közé és végrehajtja + a másik megadott feladatot. Ez a feladat része + a dinamikus táblázatba rögzített + bejegyzésnek, ami ebben az esetben a skipto + 500 (ugorjunk az 500-as + szabályra) lesz. Az 500-as szabály a + továbbküldés elõtt lefordítja a + csomag forrás IP-címét. Ezt ne + felejtsük el, nagyon fontos! A csomag ezután + eljut a céljához, és visszatérve + ismét belép a szabályrendszer + tetején. Ezúttal illeszkedni fog a 100-as + szabályra és a cél IP-címét + visszafordítjuk a helyi hálózatunk + megfelelõ gépének címére. + Ezután a check-state + szabályhoz kerül, amely megtalálja a + dinamikus szabályok között és + továbbengedi a belsõ hálózatra. + Ezzel visszakerül a küldõ géphez, amely + egy újabb csomagot küld egy újabb + adatszeletet kérve a távoli szervertõl. + Ekkor már a check-state + szabály megtalálja a hozzátartozó + bejegyzést a dinamikus szabályok + között és végrehajtódik a + korábban letárolt skipto 500 + mûvelet. A csomag erre az 500-as szabályra ugrik, + ahol lefordítjuk a címét és + továbbküldjük. + + Az bejövõ oldalon minden, ami egy + korábban kialakult kapcsolat részeként + érkezik, automatikusan a check-state + és a megfelelõ helyre rakott divert + natd szabályok által dolgozódik + fel. Itt mindössze a rossz csomagok + eldobásával és a hitelesített + szolgáltatások elérésének + biztosításával kell foglalkoznunk. + Például a tûzfalon egy webszerver fut, + és azt szeretnénk, hogy az internetrõl + képesek legyenek elérni a rajta levõ + oldalakat. Az újonnan beérkezõ + kapcsolatépítési kérelem a 100-as + szabályra fog illeszkedni, amelynek a cél + IP-címét a tûzfal helyi + hálózaton található + címére fogjuk leképezni. A csomagot + ezután még megvizsgáljuk, nem tartalmaz-e + valamilyen huncutságot, majd végül a + 425-ös szabálynál fog kikötni. Az + egyezéskor két dolog történhet: a + csomaghoz felveszünk egy dinamikus szabályt, de + ezúttal az adott forrás IP-címrõl + érkezõ kapcsolatkérések + számát 2-re lekorlátozzuk. Ezzel az + adott szolgáltatás portján meg tudjuk + óvni a tûzfalat üzemeltetõ gépet + a DoS típusú támadásoktól. + A csomagot ezután hozzátartozó + cselekvés szerint továbbengedjük a + belsõ hálózat felé. + Visszatéréskor a tûzfal felismeri, hogy a + csomag egy már meglevõ kapcsolathoz tartozik, + ezért közvetlenül az 500-as szabályhoz + kerül címfordításra, majd a + kimenõ felületen keresztül + továbbküldjük. + + Íme az elsõ példa egy ilyen + szabályrendszerre: + + #!/bin/sh +cmd="ipfw -q add" +skip="skipto 500" +pif=rl0 +ks="keep-state" +good_tcpo="22,25,37,43,53,80,443,110,119" + +ipfw -q -f flush + +$cmd 002 allow all from any to any via xl0 # nem szûrjük a belsõ hálózatot +$cmd 003 allow all from any to any via lo0 # nem szûrjük a helyi felületet + +$cmd 100 divert natd ip from any to any in via $pif +$cmd 101 check-state + +# A kimenõ csomagok hitelesítése: +$cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks +$cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks +$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks +$cmd 130 $skip icmp from any to any out via $pif $ks +$cmd 135 $skip udp from any to any 123 out via $pif $ks + + +# Az összes olyan csomagot eldobjuk, amely a fenntartott +# címtartományokba tart: +$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP +$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP +$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP +$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi +$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi +$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP +$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott +$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter +$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú többesküldés + +# Az érkezõ csomagok hitelesítése: +$cmd 400 allow udp from xx.70.207.54 to any 68 in $ks +$cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1 + + +$cmd 450 deny log ip from any to any + +# Ide ugrunk a kimenõ állapottartó szabályoknál: +$cmd 500 divert natd ip from any to any out via $pif +$cmd 510 allow ip from any to any + +##################### a szabályok vége ################## + + A következõ példa teljesen megegyezik az + elõzõvel, azonban itt már + dokumentációs szándékkal + szerepelnek megjegyzések is, melyek a tapasztalatlan + IPFW szabályíróknak segítik jobban + megérteni a szabályok pontos + mûködését. + + A második példa: + + #!/bin/sh +############# Az IPFW szabályai itt kezdõdnek ########################### +# Kezdés elõtt töröljük az összes jelenleg aktív szabályt: +ipfw -q -f flush + +# Beállítjuk a parancsok megfelelõ elõtagjait: +cmd="ipfw -q add" +skip="skipto 800" +pif="rl0" # az internethez csatlakozó + # hálózati felület neve + +################################################################# +# A belsõ hálózat számára ne korlátozzunk semmit se. +# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk. +# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó +# felület nevére. +################################################################# +$cmd 005 allow all from any to any via xl0 + +################################################################# +# A rendszer belsõ felületét se szûrjük. +################################################################# +$cmd 010 allow all from any to any via lo0 + +################################################################# +# Ellenõrizzük, hogy ez egy beérkezõ csomag és ha igen, akkor +# fordítsuk a címét. +################################################################# +$cmd 014 divert natd ip from any to any in via $pif + +################################################################# +# Ha ehhez a csomaghoz korábban már vettük fel dinamikus +# szabályt a keep-state opció révén, akkor engedjük tovább. +################################################################# +$cmd 015 check-state + +################################################################# +# Az internet felé forgalmazó felület (kimenõ kapcsolatok) +# A saját hálózatunkról belülrõl vagy errõl az átjáróról +# kezdeményezett kapcsolatokat vizsgáljuk az internet felé. +################################################################# + +# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének +# elérését. Az x.x.x.x a szolgáltató névszerverének IP-címe +# lesz. Ha a szolgáltatónknak több névszervere is van, akkor +# az /etc/resolv.conf állományból nézzük ki a címeiket és +# másoljuk le az alábbi sor mindegyikükhöz. +$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state + + +# A kábeles és DSL kapcsolatok esetén engedélyezzük a szolgáltató +# DHCP szerverének elérését. +$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state + +# Kifelé engedélyezzük a szabvány nem biztonságos WWW funkciót +$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state + +# Kifelé engedélyezzük a biztonságos HTTPS funkciót a TLS SSL +# használatával. +$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state + +# Kifelé engedélyezzük az e-mailek küldését és fogadását. +$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state +$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state + +# Kifelé engedélyezzük a FreeBSD (make install és CVSUP) funkcióit. +# Ezzel a rendszeradminisztrátornak ,,ISTENI'' jogokat adunk. +$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root + +# Kifelé engedélyezzük a pinget. +$cmd 080 $skip icmp from any to any out via $pif keep-state + +# Kifelé engedélyezzük az idõ szolgáltatást. +$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state + +# Kifelé engedélyezzük az nntp news szolgáltatást (tehát a +# hírcsoportokat). +$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state + +# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP +# funkciókat az SSH (secure shell) használatával. +$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state + +# Kifelé engedélyezzük ki a whois kéréseket. +$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state + +# Kifelé engedélyezzük az NTP idõszerver elérését. +$cmd 130 $skip udp from any to any 123 out via $pif keep-state + +################################################################# +# Az internet felõli felület (bejövõ kapcsolatok) +# A saját hálózatunk felé vagy erre az átjáróra +# nyitott kapcsolatokat vizsgáljuk az internet felõl. +################################################################# + +# Tiltsuk a fenntartott címtartományok felé haladó összes beérkezõ +# forgalmat. +$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP +$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP +$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP +$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi +$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi +$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP +$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott +$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter +$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú többesküldés + +# Az ident tiltása. +$cmd 315 deny tcp from any to any 113 in via $pif + +# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram, +# 139=session. A Netbios az MS Windows megosztását implementálja. +# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es +# porton. +$cmd 320 deny tcp from any to any 137 in via $pif +$cmd 321 deny tcp from any to any 138 in via $pif +$cmd 322 deny tcp from any to any 139 in via $pif +$cmd 323 deny tcp from any to any 81 in via $pif + +# Dobjuk el a késõn érkezõ csomagokat. +$cmd 330 deny all from any to any frag in via $pif + +# Dobjuk el azokat az ACK csomagokat, amelyekre nincs +# dinamikus szabály. +$cmd 332 deny tcp from any to any established in via $pif + +# Engedélyezzük a szolgáltató DHCP szerverétõl érkezõ forgalmat. Ennek +# a szabálynak tartalmaznia kell a DHCP szerver címét, mert csak tõle +# fogadunk el ilyen típusú csomagokat. Egyedül csak kábeles vagy DSL +# konfigurációk esetén használatos, a "felhasználói PPP" esetében +# törölhetjük. Ez ugyanaz az IP-cím, amelyet a kimenõ kapcsolatoknál +# megadtunk. +$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state + +# Befelé engedélyezzük a szabvány WWW funkciót, mivel van +# webszerverünk. +$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2 + +# Befelé engedélyezzük a biztonságos FTP, telnet és SCP +# használatát az internetrõl. +$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2 + +# Befelé engedélyezzük a nem biztonságos telnet elérését az +# internetrõl. Azért nem tekintjük biztonságosnak, mert az +# azonosítókat és a jelszavakat az interneten titkosítatlanul +# közvetíti. Ha nincs telnet szolgáltatásunk, akkor törölhetjük is ezt +# a csoportot. +$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2 + +# Dobjuk el és naplózzuk az összes internetrõl érkezõ hitelesítetlen kapcsolatot. +$cmd 400 deny log all from any to any in via $pif + +# Dobjuk el és naplózzuk az összes internetre menõ hitelesítetlen kapcsolatot. +$cmd 450 deny log all from any to any out via $pif + +# Ez lesz a kimenõ szabályokhoz tartozó "skipto" célja. +$cmd 800 divert natd ip from any to any out via $pif +$cmd 801 allow ip from any to any + +# Minden mást alapértelmezés szerint tiltunk és naplózunk. +$cmd 999 deny log all from any to any +############# Az IPFW szabályai itt fejezõdnek be ##################### + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/geom/Makefile b/hu_HU.ISO8859-2/books/handbook/geom/Makefile new file mode 100644 index 0000000000..59e5759cdc --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/geom/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= geom/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml new file mode 100644 index 0000000000..d4d23a6dbe --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml @@ -0,0 +1,889 @@ + + + + + + + + + Tom + Rhodes + Írta: + + + + + GEOM: A moduláris lemezszervezõ rendszer + + + Áttekintés + + GEOM + + A GEOM lemezrendszer + GEOM + + + Ez a fejezet a &os;-ben található GEOM rendszert + mutatja be. Ez a rendszer tömöríti az + általa is alkalmazott fontosabb RAID-vezérlõ + segédprogramokat. A fejezet nem részletezi, hogy a + GEOM konkrétan milyen módon kezeli és + vezérli az I/O-t, ahogy azt sem, hogyan mûködik + az alapjául szolgáló alrendszer vagy hogy + néz ki annak forráskódja. Az ilyen + jellegû információk a &man.geom.4; man oldalon, + valamint az ott felsorolt helyeken találhatóak meg. + Továbbá, ez a fejezet magukról a + RAID-konfigurációkról sem + ad pontos tájékoztatást. + Kizárólag csak a GEOM által is + támogatott + RAID-besorolásokról esik + szó. + + A fejezet elolvasása során + megismerjük: + + + + a GEOM segítségével milyen + fajtájú RAID + támogatást érhetünk el; + + + + hogyan kell használni a rendszer által + nyújtott alapvetõ segédeszközöket + a különféle RAID-szintek + konfigurálásához, + karbantartásához és + kezeléséhez; + + + + hogyan kell a GEOM-on keresztül tükrözni, + csíkozni, titkosítani és + távolról összekapcsolni lemezes + eszközöket; + + + + hogyan kell a GEOM rendszerben összekapcsolt + lemezeknél felmerülõ hibákat + felderíteni. + + + + A fejezet elolvasásához + ajánlott: + + + + megérteni, hogyan kezeli a &os; a lemezes + eszközöket (); + + + + ismerni, hogyan konfiguráljunk és + telepítsünk egy új &os; rendszermagot (). + + + + + + A GEOM bemutatása + + A GEOM rendszer adatszolgáltatókon vagy + speciális /dev-állományokon + keresztül hozzáférést és + vezérlést tesz lehetõvé bizonyos + osztályokhoz — Master Boot Recordokhoz, + BSD-címkékhez stb. Számos + szoftveres RAID konfiguráció + támogatásával a GEOM transzparens + elérést tesz lehetõvé mind az + operációs rendszer, mind pedig az általa + felkínált segédprogramok + számára. + + + + + + + + Tom + Rhodes + Írta: + + + Murray + Stokely + + + + + RAID0 - Csíkozás + + GEOM + Lemezcsíkozás + + A csíkozás módszerét + használjuk abban az esetben, amikor több + lemezmeghajtót akarunk egyetlen kötetté + összevonni. A GEOM lemezalrendszer szoftveres + támogatást nyújt a RAID0, + más néven a lemezcsíkozás + megvalósításához. + + Egy RAID0 rendszerben az adatokat blokkokra + bontva írjuk fel a tömbben található + lemezek között szétosztva. Így ahelyett, + hogy meg kellene várnunk 256 kb-nyi adat egyetlen lemezre + írását, egy RAID0 + rendszerben egyszerre íródik 64 kb-nyi adat + négy különbözõ lemezre, és + ezáltal gyorsabb elérést szolgáltat. + Ez a gyorsaság további lemezvezérlõk + használatával még jobban + fokozható. + + Az egy RAID0-csíkozásban + résztvevõ lemezek mindegyikének azonos + méretûnek kell lennie, mivel az írásra + és olvasásra irányuló + I/O-kérések a párhuzamos + kiszolgálás érdekében + összefésülõdnek. + + + + + + + + Példa lemezcsíkozásra + + + + + Csíkozás kialakítása + formázatlan ATA-lemezekkel + + + Töltsük be a geom_stripe + modult: + + &prompt.root; kldload geom_stripe + + + + Bizonyosodjuk meg róla, hogy a rendszerünkben + található egy szabad csatlakozási pont. + Ha majd ezt a kötetet szánjuk rendszerünk + gyökérpartíciójának, + használjunk erre a célra egy másik + könyvtárat, például a /mnt-ot: + + &prompt.root; mkdir /mnt + + + + Keressük meg a csíkozásra + felhasználni kívánt lemezek + eszközneveit, és hozzunk létre + belõlük egy új csíkozott eszközt. + Például, ha két használatban nem + levõ, particionálatlan + ATA-lemezt, név szerint a + /dev/ad2 és + /dev/ad3 eszközöket akarjunk + csíkozni: + + &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 + + + + Az így létrejött új köteten + most hozzunk létre egy általános + címkét, vagy más néven egy + partíciós táblát, és + telepítsük fel rá a rendszer + alapértelmezett rendszerindító + programját: + + &prompt.root; bsdlabel -wB /dev/stripe/st0 + + + + Ezzel meg kellett jelennie további másik + két eszköznek is a /dev/stripe + könyvtárban, a st0 + eszköz mellett. Ezek többek közt az + st0a és az + st0c. Itt már ki is tudunk + alakítani egy állományrendszert az + st0a eszközön a + newfs használatával: + + &prompt.root; newfs -U /dev/stripe/st0a + + Sok-sok számot fogunk látni cikázni a + képernyõn, majd néhány + másodperc múlva befejezõdik a folyamat. + Létrehoztuk a kötetet, ami most már + készen áll a becsatolásra. + + + + A kialakított lemezcsíkozást így + tudjuk kézzel csatlakoztatni: + + &prompt.root; mount /dev/stripe/st0a /mnt + + A csíkozott állományrendszert a + rendszerindítás folyamán automatikusan + becsatlakoztathatjuk, ha elhelyezzük az alábbi + kötetinformációkat az + /etc/fstab állományba: + + &prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ + >> /etc/fstab + + A geom_stripe modult is automatikusan be + kell tölteni a rendszerindítás során. + Ehhez a következõ sort kell hozzáadni a + /boot/loader.conf + állományhoz: + + &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf + + + + + RAID1 - Tükrözés + + GEOM + lemeztükrözés + + A tükrözés számos + vállalatnál és háztartásban + alkalmazott technológia, amely az adatok + megszakítás nélküli + lementésére használatos. Amikor + tükrözést használunk, az egyszerûen + csak arra utal, hogy a B lemez ugyanazokat az adatokat + tartalmazza, mint az A lemez. Vagy amikor a C és D lemez + tartalma egyezik meg az A és B lemezekével. + Függetlenül a lemezek kiosztásától, + itt az a lényeg, hogy az egyik lemez teljes területe + vagy az egyik partíciója le van másolva. + Késõbb az ezen a módon lementett adatok + könnyen visszaállíthatóak + anélkül, hogy ez a szolgáltatásban vagy + az elérhetõségben bármilyen + kimaradást okozna, és akár még + fizikailag is biztonságosan tárolhatóak. + + Elõször is szereznünk kell két egyforma + méretû lemezt, valamint ez a példa + feltételezi, hogy ezek a lemezek közvetlen + elérésû (&man.da.4;) + SCSI-lemezek. + + Kezdetnek telepítsük fel a &os;-t az elsõ + lemezre, de csak két partícióval. Ezek + egyike legyen a lapozóállományt + tartalmazó partíció, aminek mérete + pedig a fizikailag rendelkezésre álló + memória (RAM) méretének + kétszere legyen. A többi helyet adjuk oda a + gyökérpartíciónak (/). Természetesen a többi + csatolási pontot is kihasználhatjuk, külön + partíciókkal, de ezzel a feladat + nehézsége tízszeresére növekszik, + mivel ekkor manuálisan kell átírnunk a + &man.bsdlabel.8; és &man.fdisk.8; + beállításokat. + + Indítsuk újra a + számítógépet és várjuk + meg, amíg a rendszer teljesen készen nem áll. + Amint ez a folyamat véget ért, jelentkezzük be + a root felhasználóval. + + Hozzuk létre a /dev/mirror/gm + eszközt és kössük hozzá a + /dev/ad1 eszközhöz: + + &prompt.root; gmirror label -vnb round-robin gm0 /dev/da1 + + A rendszernek erre így kell reagálnia: + + +Metadata value stored on /dev/da1. +Done. + + Keltsük életre a GEOM-ot, aminek során + betöltõdik a + /boot/kernel/geom_mirror.ko modul: + + &prompt.root; gmirror load + + + Ezzel a paranccsal létre kellett jönnie a + gm0 eszköznek a /dev/mirror + könyvtárban. + + + Helyezzünk el egy partíciós + táblát és rendszerindító + programot az fdisk + segítségével az újonnan + létrehozott gm0 + eszközön: + + &prompt.root; fdisk -vBI /dev/mirror/gm0 + + Most pedig tegyünk fel egy általános + címkét a bsdlabel + programmal: + + &prompt.root; bsdlabel -wB /dev/mirror/gm0s1 + + + Ha több slice-unk és partíciónk is + van, az iménti két parancsban máshogy kell + megadnunk a paramétereket. Meg kell egyezniük a + másik lemezen található slice-al és + a partíciójának + méretével. + + + Használjuk a &man.newfs.8; segédprogramot a + gm0s1a eszközön egy + UFS típusú + állományrendszer + létesítésére: + + &prompt.root; newfs -U /dev/mirror/gm0s1a + + Ennek eredményeképpen kapunk egy halom + számot a képernyõn. Nagyon jó! + Ellenõrizzük, nem látunk-e a + képernyõn valamilyen hibaüzenetet, majd + csatlakoztassuk az eszközt a a /mnt pontra: + + &prompt.root; mount /dev/mirror/gm0s1a /mnt + + Ezt követõen pedig mozgassunk át minden + adatot a frissen létrehozott + állományrendszere arról a lemezrõl, + ahonnan elindítottuk a rendszert. Ebben a + példában ezt ugyan a &man.dump.8; és + &man.restore.8; parancsokkal oldjuk meg, erre a célra + viszont a &man.dd.1; is remekül + használható. + + &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-) + + Ezt el kell végeznünk mindegyik + állományrendszerre. Egyszerûen másoljuk + be az érintett állományrendszert a + megfelelõ helyre az elõbb bemutatott parancsban. + + Ezután írjuk át a duplikált + /mnt/etc/fstab állományt, + és távolítsuk el vagy csak kommentezzük + ki belõle a lapozóállományt + + Megjegyezzük, hogy az fstab + állományból kiszedett bejegyzés + miatt valószínûleg más módon + kell majd engedélyeznünk a + lapozóállomány használatát. + Errõl bõvebben lásd a . + . + Írjuk felül a másik + állományrendszer adatait is az új + eszköznek megfelelõ beállításokkal, + ahogy a példa is mutatja: + + # Device Mountpoint FStype Options Dump Pass# +#/dev/da0s2b none swap sw 0 0 +/dev/mirror/gm0s1a / ufs rw 1 1 + + Az alábbi paranccsal gondoskodjunk róla, hogy a + geom_mirror.ko modul + betöltõdjön a rendszerindítás + során: + + &prompt.root; echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf + &prompt.root; echo 'geom_mirror_load="YES"' >> /boot/loader.conf + + Indítsuk újra a rendszert: + + &prompt.root; shutdown -r now + + A rendszerindító képernyõn az + egyfelhasználós mód + eléréséhez válasszuk a negyedik (4) + opciót. A konzol használatával + gyõzödjünk meg róla, hogy a rendszer a + gm0s1a eszközrõl indult. Ezt a + &man.df.1; kimenetébõl deríthetjük + ki. + + Ha minden rendben zajlott, akkor a rendszerünk elindult a + gm0s1a eszközrõl, és a + login vár minket. Innen a lemez a + következõ parancsok kiadásával + törölhetõ és illeszhetõbe a + tükrözések közé: + + &prompt.root; dd if=/dev/zero of=/dev/da0 bs=512 count=79 + + &prompt.root; gmirror configure -a gm0 +&prompt.root; gmirror insert gm0 /dev/da0 + + Az paraméter tudatja a + &man.gmirror.8;-al, hogy automatikus szinkronizációt + használjon, tehát az lemezre írást + magától tükrözze. A + hozzátartozó man oldal elmagyarázza, hogyan + építsük át a tömböt és + hogyan cseréljük benne a lemezeket, habár az + data névvel hivatkozik az itt + említett gm0 eszközre. + + A frissen létrehozott tükrözés + állapotát az alábbi paranccsal + ellenõrizhetjük: + + &prompt.root; gmirror status + + + Hibakeresés + + + A rendszer nem hajlandó elindulni + + Ha a rendszerünk ehhez hasonló módon + indul: + + ffs_mountroot: can't find rootvp +Root mount failed: 6 +mountroot> + + Indítsuk újra a gépünket a + kikapcsoló gomb vagy a reset + segítségével. A + rendszerindító menüben válasszuk a + hatodik opciót (6). Ennek + eredményeképpen megkapjuk a &man.loader.8; + parancssorát. Töltsük be a modult + manuálisan: + + OK? load geom_mirror +OK? boot + + Ha ez beválik, akkor valamiért a modult nem + sikerült rendesen betölteni. Helyezzük el + a + + options GEOM_MIRROR + + sort a rendszermag konfigurációs + állományában, fordítsuk + újra és telepítsük. Ezzel + várhatóan orvosoltuk a + problémát. + + + + + + + Eszközök hálózati illesztése a + GEOM-ban + + A GEOM távoli eszközök, például + lemezek, CD-meghajtók stb. használatát is + támogatja a hálózati illesztést + szolgáló segédprogramjaival, hasonlóan + az NFS-hez. + + Kezdésként létre kell hozni a + megosztást elõsegítõ + állományt. Ez az állomány + határozza meg, ki és milyen szinten jogosult + használni a megosztott erõforrásokat. + Például ha megosztjuk az elsõ + SCSI-lemezen a negyedik slice-ot, az + alábbi /etc/gg.exports + állomány tökéletesen megfelel: + + 192.168.1.0/24 RW /dev/da0s4d + + Ezzel a belsõ hálózaton levõ + összes számítógép képes + lesz elérni a da0s4d + partíción található + állományrendszert. + + Az eszköz megosztásához elõször + gondoskodnunk kell róla, hogy ne legyen csatlakoztatva, + majd ezután indítsuk el a &man.ggated.8; szerver + démonját: + + &prompt.root; ggated + + Ezt követõen a mount + felhasználásával csatoljuk az eszközt a + kliensen, az alábbi parancs + kiadásával: + + &prompt.root; ggatec create -o rw 192.168.1.1 /dev/da0s4d +ggate0 +&prompt.root; mount /dev/ggate0 /mnt + + Innentõl kezdve az eszköz elérhetõ lesz + a /mnt csatlakozási + ponton keresztül. + + + Fontos kiemelnünk, hogy ez a mûvelet + eredménytelen, ha az adott eszközt vagy maga a + szerver, vagy pedig valamelyik másik kliens már + korábban csatolta. + + + Amikor az eszközre már nincs tovább + szükségünk, biztonságosan le tudjuk + választani az &man.umount.8; paranccsal, hasonlóan + bármelyik más lemezes eszközhöz. + + + + + A lemezes eszközök + címkézése + + GEOM + Lemezcímkék + + A rendszer indítása közben a &os; + rendszermagja a talált eszközöknek + megfelelõen mindegyiknek létrehoz egy-egy + eszközleírót. Ezzel a + próbálgatásos módszerrel együtt + jár néhány gond, például mi + történik akkor, ha az új lemezes eszközt + USB-n keresztül adjuk a rendszerhez? + Nagyon valószínû, hogy ez az eszköz + megkapja a da0 nevet és ezzel az + eredeti da0 eszköz eltolódik + a da1 névhez. Ennek + köszönhetõen az /etc/fstab + állományban felsorolt + állományrendszerek csatolása veszélybe + kerül, aminek következtében akár + meghiúsulhat a rendszerindulás is. + + Az egyik lehetséges megoldása a + problémának, ha sorbafûzzük a + SCSI eszközeinket, és így a + SCSI-kártyához kapcsolt + újabb eszköz egy addig nem használt + számot fog birtokba venni. Mi helyzet azonban az + USB-s eszközökkel, amelyek + kiüthetik az elsõdleges + SCSI-lemezeinket? Ez egyébként + azért történhet meg, mert az + USB-s eszközöket + általában hamarabb keresi a rendszer, mint a + SCSI kártyán levõ + eszközöket. Megoldhatjuk úgy ezt a gondot, hogy + csak azután csatlakoztatjuk az említett + eszközöket, miután a rendszer elindult. + Megoldhatjuk viszont úgy is, hogy csak egyetlen + ATA-meghajtót használunk + és soha nem soroljuk fel a SCSI + eszközöket az /etc/fstab + állományban. + + Ezeknél kínálkozik azonban egy jobb + megoldás! A glabel nevû + segédprogrammal a rendszergazda vagy a + felhasználó úgy tudja címkézni + a lemezmeghajtókat, hogy azok a + /etc/fstab állományban + szereplõ címkéket használják. + Mivel a glabel a címkét az adott + szolgáltató utolsó szektorában + tárolja el, ez a címke megmarad az + újraindítás után is. Ha ezt a + címkét eszközként használjuk, az + állományrendszerek mindig ugyanarról a + meghajtóról fognak csatolódni, + függetlenül attól, hogy milyen + eszközleírón keresztül érjük + el ezeket. + + + Egyáltalán nem állítottuk, hogy + egy címke csak állandó lehet. A + glabel segítségével + egyaránt létre lehet hozni állandó + és átmeneti címkéket, de csak az + állandó címke képes az + újraindítás után is megmaradni. A + két címketípus közti + különbségeket a &man.glabel.8; man oldal + tárgyalja részletesebben. + + + + Címketípusok és + példák + + A címkéknek két típusa + létezik, az általános címke + és az állományrendszer-címke. A + kettõ közötti eltérés az + állandó címkékkel kapcsolatos + automatikus detektálás, illetve a tény, + hogy ez a típusú címke az + újraindítás után is megmarad. + Ezeknek a címkéknek van egy külön, az + állományrendszerük szerint elnevezett + könyvtára a /dev könyvtáron + belül. Például az UFS2 + állományrendszer-címkék a /dev/ufs könyvtárban + keletkeznek. + + Egy általános címke a + következõ induláskor elveszik. Ezek a + címkék a /dev/label könyvtárban + keletkeznek, és ideálisak a + kísérletezgetésre. + + Állandó címkék az + állományrendszereken a tunefs + vagy a newfs segédprogramok + valamelyikével helyezhetõek el. Ha egy + UFS2 állományrendszerre + szeretnénk tenni egy állandó + címkét az adataink megsemmisítése + nélkül, adjuk ki a következõ + parancsot: + + &prompt.root; tunefs -L home /dev/da3 + + + Ha az érintett állományrendszeren + nincs üres hely, ennek a parancsnak a használata + adatvesztéshez vezethet. Ilyen esetben inkább a + felesleges állományok + eltávolításával kellene + törõdnünk, nem pedig címkék + hozzáadásával. + + + Ezután egy címkének kell megjelennie a + /dev/ufs + könyvtárban, amelyet vegyünk is fel az + /etc/fstab állományba: + + /dev/ufs/home /home ufs rw 2 2 + + + Az állományrendszert tilos csatolni a + tunefs futtatása alatt! + + + Most már a megszokott módon csatolhatjuk az + állományrendszert: + + &prompt.root; mount /home + + Ettõl a ponttól kezdve, amíg a + geom_label.ko modul betöltõdik a + rendszerindítás során a + /boot/loader.conf állományon + keresztül, vagy a GEOM_LABEL + opció megtalálható a rendszermag + konfigurációs állományában, + az eszközleíró a rendszerre nézve + minden komolyabb következmény nélkül + megváltozhat. + + Állományrendszereket létrehozhatunk + alapértelmezett címkével is a + newfs + paraméterével. Errõl részletesebben a + &man.newfs.8; man oldalon olvashatunk. + + Az alábbi paranccsal tudjuk törölni a + címkét: + + &prompt.root; glabel destroy home + + + + + + Naplózó UFS GEOM-on keresztül + + GEOM + naplózás + + A &os; 7.0-ás verziójának + megjelenésével egy rég várt + kiegészítés, a naplózó + UFS végre elérhetõvé + válik. Maga az implementáció a + GEOM alrendszeren keresztül + érhetõ el, és a &man.gjournal.8; + segédprogram segítségével + könnyedén beállítható. + + Mit is jelent a naplózás? A + naplózás támogatásával a + rendszer egy naplót vezet az + állományrendszert érintõ + tranzakciókról — például az + olyan változtatásokról, amelyek egy komplett + írási mûveletet eredményeznek — + mielõtt még a metaadatok és + lemezírási mûveletek szabályosan + befejezõdnének. Ez a könyvelés + késõbb visszajátszható az + állományrendszerben lezajlott tranzakciók + reprodukálásához, és ezzel + megelõzhetõek az állományrendszerben + keletkezõ esetleges ellentmondások. + + Ez egy újabb módszer az adatvesztés + és az állományrendszerben + elõforduló ellentmondások + elkerülésére. Eltérõen a Soft + Updates módszertõl, ahol a metaadatok + frissítését biztosítják + és követik nyomon, vagy a Snapshots + módszertõl, ahol pillanatképeket + tárolunk az állományrendszerrõl, itt egy + konkrét naplót tárolunk az utolsó + szektorokban, illetve bizonyos esetekben egy teljesen másik + lemezen. + + Ellentétben a többi naplózó + állományrendszertõl, a + gjournal módszere blokk alapú + és nem az állományrendszer + részeként került implementálásra + — csupán a GEOM egyik + bõvítménye. + + A gjournal + támogatásához a &os; rendszermag + konfigurációs állományában be + kell állítani a következõ opciót + — amely a 7.X rendszereken + alapbeállítás: + + options UFS_GJOURNAL + + Ha ezt aktiváltuk, egy szabad + állományrendszeren az alábbi + lépéseken keresztül tudunk létrehozni + egy naplót, feltéve, hogy a + da4 egy új + SCSI-meghajtó: + + &prompt.root; gjournal label /dev/da4 +&prompt.root; gjournal load + + Ennél a pontnál lennie kell egy + /dev/da4 és egy + /dev/da4.journal + eszközleírónak. Hozzunk létre egy + állományrendszert ezen az eszközön: + + &prompt.root; newfs -O 2 -J /dev/da4.journal + + Ez a parancs létrehoz egy naplózó + UFS2 állományrendszert. + + Csatoljuk is be a mount + segítségével az eszközt + kívánt csatlakozási pontra: + + &prompt.root; mount /dev/da4.journal /mnt + + + Ha több slice-unk is van, akkor a napló + mindegyik slice-hoz külön létrejön. + Például, ha az ad4s1 + és ad4s2 egyaránt + slice-ok, akkor a gjournal legyártja + az ad4s1.journal és + ad4s2.journal + eszközleírókat. Abban az esetben, ha + kétszer futattjuk le a parancsot, az eredmény + journals lesz. + + + Bizonyos körülmények között + kívánatos lehet a naplót egy másik + lemezen tartani. Ilyen esetekben a naplózás + bekapcsolásához a naplót + biztosító szolgáltatót vagy + tárolóeszközt a naplózni + kívánt eszköz után kell szerepeltetni. + A naplózás akár az aktuálisan + használt állományrendszeren is + aktiválható a tunefs + használatával. Az állományrendszer + módosításakor viszont mindig érdemes + biztonsági másolatot készíteni! Az + esetek többségében a + gjournal hibát fog jelezni, mivel nem + tudja létrehozni a naplót, azonban ez nem + védi meg az adatainkat a tunefs + helytelen használata által okozott + sérülésektõl. + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/geom/striping.pic b/hu_HU.ISO8859-2/books/handbook/geom/striping.pic new file mode 100644 index 0000000000..3365fbad7b --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/geom/striping.pic @@ -0,0 +1,57 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +define disk_box { + offset = 0.3 + line dashed from $1 + (-offset, -offset) to ($1.x, $2.y) + (-offset, offset) + line dashed from last line.end to $2 + (offset, offset) + line dashed from last line.end to ($2.x, $1.y) + (offset, -offset) + line dashed from last line.end to $1 + (-offset, -offset) +} + +define disk { + ellipse wid 1.4 ht 0.2 fill 0.4 + line down 0.1 from last ellipse.w + line down 0.1 from last ellipse.e + arc cw rad 3.4 to last ellipse.w + (0, -0.1) + for i = 1 to 4 do { + ellipse wid 1.4 ht 0.2 fill 0.4 at last ellipse.s - (0, 0.2) fill 0.4 + line down 0.1 from last ellipse.w + line down 0.1 from last ellipse.e + arc cw rad 3.4 to last ellipse.w + (0, -0.1) + } + disk_box(last ellipse.sw, 1st ellipse.ne) +} + +A: box wid 2 "256 KB-nyi írást négy" "64 KB-os párhuzamos írásra" "bontunk fel a négy lemez között" + +B1: box ht 0.2 wid 0.4 "64 KB" at A.e + (0.4, 0.5) +B2: box ht 0.2 wid 0.4 "64 KB" at A.e + (0.4, 0.2) +B3: box ht 0.2 wid 0.4 "64 KB" at A.e + (0.4, -0.1) +B4: box ht 0.2 wid 0.4 "64 KB" at A.e + (0.4, -0.4) + +move to A.s + (-0.5, -1.9) +[disk];"1. lemez" at last [].s above +spline from B4.e then right 0.5 then to last [].e + (-0.2, 0.0) -> + +move to last [].e + (0.2,0) +[disk];"2. lemez" at last [].s above +spline from B3.e then right 1.2 then to last [].e + (-0.4, -0.3) -> + +move to last [].e + (0.2,0) +[disk];"3. lemez" at last [].s above +spline from B2.e then right 2.4 then to last [].e + (-0.8, 0.28) -> + +move to last [].e + (0.2,0) +[disk];"4. lemez" at last [].s above +spline from B1.e then right 4 then to last [].e + (-0.5, 0.6) -> + +spline from A.e then up 0.2 then to B1.w +spline from A.e then up 0.1 then to B2.w +spline from A.e then down 0.1 then to B3.w +spline from A.e then down 0.2 then to B4.w + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/install/Makefile b/hu_HU.ISO8859-2/books/handbook/install/Makefile new file mode 100644 index 0000000000..738cdb647d --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= install/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/install/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/install/chapter.sgml new file mode 100644 index 0000000000..c4b786fdfa --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/chapter.sgml @@ -0,0 +1,7158 @@ + + + + + + + + + Jim + Mock + Átszervezte, átrendezte és egyes + részeit átdolgozta: + + + + + + Randy + Pratt + A sysinstall bemutatása, ábrái + és bemásolása: + + + + + A &os; telepítése + + + Áttekintés + + telepítés + + A &os; telepítéséhez egy könnyen + használható szöveges + telepítõprogram, a + sysinstall használható. + Ez a &os; alapértelmezett telepítõprogramja, + habár ezt a különféle + gyártók kedvük szerint lecserélhetik. + Ebben a fejezetben bemutatjuk a &os; + sysinstall + segítségével történõ + telepítését. + + A fejezet elolvasása során + megismerjük: + + + + hogyan készítsünk + telepítõlemezeket a &os;-hez; + + + + a &os; miként hivatkozza és osztja fel a + merevlemezeinket; + + + + hogyan indítsuk el a + sysinstall programot; + + + + milyen kérdéseket tesz fel nekünk a + sysinstall, mire gondol, hogyan is + kell azokat megválaszolni. + + + + A fejezet elolvasásához ajánlott: + + + + a telepítendõ &os; verzióhoz + tartozó támogatott hardvereket felsoroló + lista átolvasása és benne a saját + hardvereszközeink megkeresése. + + + + + Általánosan elmondható, hogy a most + következõ telepítési + utasítások az &i386; (PC + kompatibilis) architektúrájú + számítógépekre vonatkoznak. Ahol + erre szükség van, ott más platformokra + (például Alpha) vonatkozó + utasítások is szerepelhetnek. Habár ezt a + leírás igyekszünk a lehetõ legjobban + naprakészen tartani, elképzelhetõ, hogy + felfedezhetünk kisebb eltérésket a + telepítõben és az itt leírtak + közt. Ezért ezt a fejezetet inkább egy + általános útmutatónak javasoljuk, + nem pedig egy szó szerint értelmezendõ + kézikönyvként. + + + + + + Hardverkövetelmények + + + Minimális konfiguráció + + A &os; telepítéséhez + szükséges minimális + konfiguráció &os; verziónként + és architektúránként + eltérõ. + + A minimális konfigurációt a &os; + honlapján a kiadásokról + szóló oldalon, az Installation + Notes részben találhatjuk meg. Ezt a + következõ szakaszokban foglaljuk össze. A &os; + telepítésének + módszerétõl függõen + szükségünk lehet egy hajlékonylemezes + (floppy) vagy CD-ROM meghajtóra, esetleg egy + hálózati kártyára. Ezt a ban tárgyaljuk. + + + &os;/&arch.i386; és &os;/&arch.pc98; + + A &os;/&arch.i386; és &os;/&arch.pc98; + egyaránt egy 486 vagy jobb processzort és + legalább 24 MB memóriát + igényel. A legkisebb telepítéshez + legalább 150 MB szabad lemezterület + szükséges. + + + Régebbi konfigurációk esetén + nem egy gyorsabb processzor, hanem inkább több + memória beszerzése, illetve több + lemezterület felszabadítása a + fontosabb. + + + + + + &os;/&arch.alpha; + + Alpha + + A &os;/&arch.alpha; telepítéséhez egy + ismert platformra (lásd: ), valamint a &os;-nek + szánt külön lemezre van + szükségünk. Pillanatnyilag nem + lehetséges más operációs + rendszerekkel megosztani a lemezeket. A lemezt egy olyan + SCSI-vezérlõre kell csatlakoztatnunk, amelyet + támogat az SRM firmware-je, vagy használhatunk + IDE-lemezeket is, feltéve, hogy az SRM tud róluk + rendszert indítani. + + ARC + Alpha BIOS + SRM + + Szükségünk lesz a platformunkon az SRM + konzol firmware-jére. Sok esetben tudunk + váltani az AlphaBIOS (vagy ARC) és az SRM + firmware-je között. Minden más helyzetben le + kell töltenünk egy új firmware-t a + gyártó honlapjáról. + + + Az Alpha támogatás a &os; 7.0 + beindulásával + eltávolításra került. A + &os; 6.X sorozat az + utolsó, amely valamilyen támogatást + ajánl ehhez az architektúrához. + + + + + + &os;/&arch.amd64; + + Két típusú processzor képes + futtatni a &os;/&arch.amd64; verzióját. Az + elsõ ezek közül az AMD64 processzorok, + beleértve az &amd.athlon;64, &amd.athlon;64-FX, + &amd.opteron; vagy újabb processzorokat. + + A &os;/&arch.amd64; verzióját + kihasználni képes processzorok másik + csoportja az &intel; EM64T + architektúrájára épülõ + processzorok. Ilyen processzor például az + &intel; &core; 2 Duo, Quad és Extreme + processzorcsaládok, valamint az &intel; &xeon; + 3000, 5000 és 7000 sorozatszámú + processzorai. + + Ha nVidia nForce3 Pro-150 alapú géppel + rendelkezük, ki kell kapcsolnunk a + BIOS-ban az IO APIC használatát. Ha nem + találnánk ilyen beállítást, + akkor helyette magát az ACPI-t kell kikapcsolnunk. A + Pro-150 chipsetnek vannak bizonyos hibái, amelyekre + eddig még nem sikerült megfelelõ + megoldást találnunk. + + + + + &os;/&arch.sparc64; + + A &os;/&arch.sparc64; telepítéséhez + egy támogatott platformra van + szükségünk (lásd: ). + + A &os;/&arch.sparc64; telepítéséhez + egy egész lemezre lesz szükségünk, + mivel a rendszer jelenleg nem képes megosztani azt + más operációs rendszerekkel. + + + + + + Támogatott hardverek + + A &os; minden kiadásához mellékelik a + támogatott hardverek listáját &os; + Hardware Notes címmel. Ezt a dokumentum + többnyire egy HARDWARE.TXT nevû + állomány, amelyet a rendszer CD-n vagy FTP-n + keresztül elérhetõ változatának + gyökerében vagy a + sysinstall + dokumentációkat tartalmazó + menüjében találhatunk meg. + + + + + + A telepítés elõtt elvégzendõ + feladatok + + + Készítsünk leltárt a + számítógépünkrõl + + A &os; telepítése elõtt érdemes + összeszedni, pontosan mi minden is található + a számítógépünkben. A &os; + telepítõrutinjai mutatni fogják a + különbözõ komponensek (merevlemezek, + hálózati kártyák, + CD-meghajtók és a többi) modelljét + és gyártóját. A &os; + ezenkívü megpróbálja kideríteni + a megjelenõ eszközök pontos + konfigurációját is, beleértve a + használt IRQ és IO portok + kiosztását. A PC-s hardverek + különféle szeszélyei miatt azonban ez az + iménti folyamat nem minden esetben + megbízható, ezért elõfordulhat, hogy + helyesbíteni kell a &os; által + megállapított értékeket. + + Ha már van a gépünkön egy + másik operációs rendszer, + például &windows; vagy &linux;, akkor + mindenképpen hasznos lehet az általa + felkínált eszközökkel lekérdezni + a hardvereink beállításait. Ha nem + lennénk biztosak benne, hogy az adott + bõvítõkártyákat pontosan milyen + beállításokkal is használjuk, + nézzük meg ezeket magán a + kártyán. A népszerû IRQ + értékék általában a 3, 5 + és 7, valamint az IO portok számát + általában tizenhatos számrendszerben + szerepeltetik, például 0x330. + + Javasoljuk, hogy nyomtassuk ki vagy írjuk le ezeket a + paramétereket a &os; telepítése elõtt. + Ehhez rendezzük ezeket egy táblázatban, + valahogy így: + + + Példa egy eszközleltárra + + + + + + + + + Eszköz neve + IRQ + IO portok + Megjegyzés + + + + + Elsõ merevlemez + - + - + Mérete 40 GB, gyártmánya + Seagate, elsõdleges IDE master + + + CD-ROM meghajtó + - + - + Elsõdleges IDE slave + + + Második merevlemez + - + - + Mérete 20 GB, gyártmánya + IBM, másodlagos IDE master + + + Elsõ IDE vezérlõ + 14 + 0x1f0 + + + + Hálózati kártya + - + - + &intel; 10/100 + + + Modem + - + - + &tm.3com; 56K-s faxmodem, COM1 + + + + + + +
+ + Ahogy elkészítettük a + számítógépünk + alkatrészeit tartalmazó listát, vessük + ezeket össze a telepítendõ &os; kiadás + által megkövetelt eszközökkel. + +
+ + + Mentsük le az adatainkat + + Amennyiben a &os; telepítéséhez + használt számítógép + számunkra értékes adatokat tárol, + igyekezzünk lementeni ezeket, és a &os; + tényleges telepítése elõtt + gyõzõdjünk is meg róla, hogy a + mentés sikeres volt. A &os; telepítõrutinjai + természetesen megerõsítést fognak + kérni bármilyen adat lemezre írása + elõtt, azonban ha egyszer már elindítottuk a + folyamatot, már semmit sem tudunk + visszafordítani. + + + + + Döntsük el a &os; + telepítésének helyét + + Ha a &os; telepítéséhez az egész + merevlemezünket fel akarjuk használni, akkor + még nincs miért izgatnunk magunkat — + nyugodtan átléphetjük ezt a szakaszt. + + Amikor viszont a &os;-t más operációs + rendszerek mellé szeretnénk telepíteni, + ismernünk kell, miként is helyezkednek el az adatok + a lemezeken, és hogy ez miként is érint + bennünket. + + + A lemezek kiosztása a &os;/&arch.i386; + esetén + + A PC-k által használt lemezek + különálló darabokra tagolhatóak. + Ezeket a darabokat + partícióknak nevezzük. + Mivel azonban &os; a saját maga szintén + tárol partíciókat, ezért ez az + elnevezés pillanatok alatt + megtévesztõvé válhat, ezért + ezeket a lemezdarabokat a &os; lemezslice-oknak vagy + egyszerûen csak slice-oknak hívja. + Például a PC-s lemezpartíciókkal + dolgozó, fdisk nevû &os;-s + segédprogram partíciók helyett is + slice-okra hivatkozik. A PC lemezenként alapvetõen + csak négy partíciót enged meg. Ezeket a + partíciókat nevezik elsõdleges + partícióknak. Ettõl a + korlátozástól egy új típus, a + kiterjesztett partíció + létrehozásával szabadultak meg, amivel + így négynél több + partíció is készíthetõ. + Lemezenként egyetlen ilyen kiterjesztett + partíció található, de ezen + belül speciális, ún. logikai + partíciók hozhatóak + létre. + + Minden partíciónak van egy + partíció-azonosítója, + melyet a partíción található adatok + típusának + megállapítására használnak. + A &os; partícióinak azonosítója a + 165. + + Általánosságban véve minden + operációs rendszer így azonosítja a + partíciókat. Például a DOS + és annak leszármazottai, mint + például a &windows;, minden elsõdleges + és logikai partícióhoz egy + C:-tõl induló + meghajtó-betûjelet + társít. + + A &os;-t egy elsõdleges partícióra kell + telepíteni. A &os; az összes adatát, + beleértve minden általunk létrehozott + állományt is, ezen az egyetlen + partíción fogja elhelyezni. Ha viszont több + lemezünk van, többen is, vagy akár mindegyiken + létrehozhatunk &os;-s partíciókat. A &os; + telepítésekor azonban legalább egy ilyen + partíciónak használhatónak kell + lennie. Ez lehet elõre megtisztított üres + partíciói is, vagy akár egy olyan + partíció, amelyen már nem használt + adatok vannak. + + Ha már mindegyik partíciónk betelt, + akkor a többi operációs rendszer által + felkínált eszközök + (például &ms-dos;-ban vagy &windows;-ban az + fdisk) valamelyikével + elõször fel kell közülük + szabadítanunk egyet a &os; számára. + + Amennyiben akadna egy használható + partíció, akkor használjuk azt. Ekkor + azonban elõfordulhat, hogy ehhez elõször a + meglévõk közül össze kell majd + zsugorítanunk valamelyiket. + + A &os; legkisebb telepíthetõ változata + nagyjából 100 MB lemezterületet + igényel. Azonban ez egy nagyon + kicsi változat és szinte semmi helyet nem hagy a + saját állományainknak. Sokkal + valósághûbb, ha grafikus felület + nélkül nagyjából 250 MB-ot + mondunk, és legalább 350 MB-ot a grafikus + felület használata esetén. Ha ezeken + felül további szoftvereket is telepíteni + kívánunk, még több helyre lesz + szükségünk. + + Amikor a &os; számára akarunk helyet + csinálni, vagy partíciókat akarunk + átméretezni, használjuk + például a + &partitionmagic; nevû + kereskedelmi szoftvert vagy esetleg egy olyan szabad + eszközt, mint például a + GParted. A telepítõ CD-n + megtalálható tools + könyvtárban találhatunk erre a feladatra + két szabad szoftvert is, név szerint a + FIPS és + PResizer programokat. Ugyanitt a + hozzájuk tartozó dokumentáció is + megtalálható. A FIPS, + a PResizer és a + &partitionmagic; egyaránt + képes az &ms-dos; és a &windows; ME által + használt FAT16 és + FAT32 partíciókat + átméretezni. Ismereteink szerint a + &partitionmagic; és a + GParted is használható + az NTFS partíciókkal. A + GParted számos Live CD-s + linuxos disztribúción + megtalálható, ilyen többek közt a SystemRescueCD. + + Gondok lehetnek azonban a µsoft; Vista által + használt partíciókkal. Ezért nem + árt, ha az átméretezésekor a + kezünk ügyében van a Vista telepítõ + CD-je. Természetesen, mint minden lemezkarbantási + mûvelet esetén, ilyenkor is határozottan + ajánlott biztonsági mentéseket + készíteni. + + + Az említett eszközök helytelen + használata megsemmisítheti a lemezeinken + tárolt adatokat, ezért a használatuk + elõtt gondoskodjunk friss, + mûködõképes biztonsági + mentésekrõl. + + + + Meglevõ partíció használata a + méret megváltoztatása + nélkül + + Tegyük fel, hogy a + számítógépünkben egyetlen + 4 GB méretû lemez van, amelyen + megtalálható a &windows; valamelyik + verziója, és ezt a lemezt korábban + két, egyaránt 2 GB méretû + meghajtóra osztottuk, a C:-re + és D:-re. 1 GB adatunk + van a C: meghajtón és + fél GB a D:-n. + + Mindez tehát azt jelenti, hogy a + lemezünkön két partíció + található, betûjelenként egy. Ha + átmásoljuk a D: + meghajtón levõ adatainkat a + C: meghajtóra, akkor ezzel + felszabadíthatjuk a &os; számára a + második partíciót. + + + + Meglevõ partíció + zsugorítása + + Tegyük fel, hogy a + számítógépünkben egyetlen + 4 GB méretû lemez van, amelyet teljes + egészében a &windows; valamelyik + példánya foglal el. A &windows; + telepítése során ezért minden + bizonnyal egyetlen nagy partíciót hoztunk + létre, amely a C: + betûjelet kapta és a mérete 4 GB. + Jelen pillanatban másfél GB helyet + használunk a lemezen, és szeretnénk a + &os; számára 2 GB helyet + felszabadítani. + + A &os; telepítéséhez a + következõk valamelyikét kell + tennünk: + + + + Mentsük le a &windows;-os adatainkat, + telepítsük újra a &windows;-t + úgy, hogy egy 2 GB méretû + partíciót választunk neki a + telepítése során. + + + + A partíció + összezsugorítására + használjuk az elõbb említett + alkalmazásokat, például a + &partitionmagic;-et. + + + + + + + + A lemezek kiosztása Alphán + + Alpha + + Alphán egy egész lemezre lesz + szükségünk a &os; + telepítéséhez, mivel jelen pillanatban + nem tud más rendszerekkel osztozni a lemezeken. A + gépünkben található lemez + rendelkezhet IDE- vagy SCSI-csatolóval is, egyedül + az a fontos, hogy el tudjuk róla indítani a + rendszert. + + A Digital, illetve Compaq leírásainak + megfelelõen az SRM összes parancsát + nagybetûkkel írjuk, habár az SRM nem + különbözteti meg a kis- és + nagybetûket. + + A gépünkben található lemezek + neveit és típusát a az SRM konzolban + kiadott SHOW DEVICE paranccsal + kérdezhetjük le: + + >>>SHOW DEVICE +dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 +dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 +dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 +dva0.0.0.0.1 DVA0 +ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 +pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 +pqa0.0.0.4.0 PQA0 PCI EIDE +pqb0.0.1.4.0 PQB0 PCI EIDE + + Ebben a példában egy Digital Personal + Workstation 433au szerepel, és láthatjuk, hogy + három meghajtót csatlakoztattunk hozzá. + Ezek közül az elsõ a + DKA0 nevet viselõ CD-ROM + meghajtó, valamint van még két + további lemezünk, DKC0 + és DKC100 néven. + + A DKx alakú névvel + rendelkezõ eszközök a SCSI-lemezek. Ennek + megfelelõen például a + DKA100 név az elsõ (A) + SCSI-buszon található 1 + célazonosítóval (target ID) + ellátott SCSI-lemezre, miközben a + DKC300 a harmadik (C) SCSI-buszon + levõ 3 célazonosítóval + ellátott SCSI-lemezre hivatkozik. A + PKx alakú + eszköznév magára a + SCSI-vezérlõre vonatkozik. Ahogy az a + SHOW DEVICE kimenetében is + látszik, a SCSI csatolón keresztül + csatlakoztatott CD-ROM meghajtókat a többi + SCSI-merevlemezhez hasonlónak tekinti. + + Az IDE-lemezek nevei ehhez hasonlóan + DQx alakúak, ahol a + PQx a hozzájuk tartozó + IDE-vezérlõt jelöli. + + + + + + Szedjük össze a hálózati + beállításainkat + + Amennyiben a &os; telepítésének + részeként hálózatra is + szándékozunk csatlakozni (például + egy FTP vagy NFS szerverrõl akarunk telepíteni), + ismernünk kell a hálózatra vonatkozó + beállításainkat is. A telepítõ + rá fog kérdezni ezekre az + információkra, amelyek megadása után + a &os; a telepítés befejezéséhez + csatlakozni tud majd a hálózatra. + + + Csatlakozás Ethernet-hálózaton, + kábel- vagy DSL-modemen keresztül + + Ha egy Ethernet-hálózathoz, vagy + magához az internethez csatlakozunk egy DSL- vagy + kábelmodemen keresztül, akkor az alábbi + adatokra lesz szükségünk: + + + + IP-cím + + + Az alapértelmezett átjáró + IP-címe + + + A gépünk neve + + + DNS (névfeloldó) szerverek + IP-címei + + + Hálózati maszk + + + + Ha nem ismerjük ezeket, érdeklõdjünk + a rendszergazdától vagy a + szolgáltatónktól. + Elképzelhetõ az is, hogy mindezen + információkat DHCP + segítségével, automatikusan kapjuk meg. + Ezt is mindenképpen jegyezzük fel. + + + + + Kapcsolódás modemmel + + Ha az internet-szolgáltatónkhoz + hagyományos modemen keresztül csatlakozunk, akkor + is tudjuk telepíteni a &os;-t interneten + keresztül, azonban ez nagyon sokáig + tarthat. + + Ehhez tudnunk kell: + + + + Az internet-szolgáltatónk + behívószámát + + + A soros (COM) port számát, amelyen + keresztül a modem kapcsolódik a + gépünkhöz + + + Az internet-szolgáltatónktól + kapott felhasználói nevet és + jelszót + + + + + + + + Olvassuk el &os; hibajegyzékét + + Habár a &os; Projekt igyekszik a &os; minden egyes + kiadását a lehetõ + legmegbízhatóbban felkészíteni, + hibák óvatlanul is maradnak bennük. Nagyon + ritka esetekben ezek a hibák magára a + telepítés folyamatára is kihathatnak. + Amint ezeket a problémákat sikerül + felderíteni és javítani, rögvest + megjelennek a &os; honlapján található + + hibajegyzékben (angolul). A + telepítés elõtt ezért mindig + ajánlott átolvasni ezt a dokumentumot, így + megbizonyosodunk róla, hogy semmilyen utólag + felmerült probléma nem akadályozza + munkánkat. + + Az összes kiadáshoz tartozó + információ, beleértve az egyes + kiadások hibajegyzékeit is, a &os; + honlapjáról a kiadásokra + vonatkozó információkat + tartalmazó részen érhetõ el + (angolul). + + + + + Szerezzük be a &os; telepítéséhez + szükséges állományokat + + A &os; telepítése az alábbi helyek + bármelyikén megtalálható + állományok felhasználásával + történik: + + + Lokálisan: + + + CD vagy DVD + + + + Ugyanazon a számítógépen + levõ &ms-dos; partíció + + + + SCSI- vagy QIC-szalag + + + + Floppylemezek + + + + + Hálózaton keresztül: + + + FTP oldalról, tûzfalon keresztül vagy + szükség szerint HTTP proxy + használatával + + + + NFS szerverrõl + + + + Párhuzamos vagy soros vonali kapcsolaton + keresztül + + + + Ha megvásároltuk a &os; telepítõ + CD-jét vagy DVD-jét, akkor már mindennel + rendelkezünk a telepítéshez. + Lépjünk bátran tovább a + következõ szakaszra ()! + + Ha eddig még nem szereztük volna be a &os; + telepítéséhez szükséges + állományokat, ugorjunk a hoz, ahol megtudhatjuk, hogyan + készítsük elõ a &os; + telepítését az imént felsorolt + helyzetekben. A szakasz elolvasása után pedig + jöjjünk vissza ide, majd folytassuk az olvasást + a ban. + + + + + Készítsünk egy + rendszerindító lemezt + + A &os; telepítése úgy kezdõdik, + hogy a számítógépünkkel a &os; + telepítõjét indítjuk el — ez + viszont nem egy olyan program, amit más + operációs rendszerben el tudunk indítani. + A számítógépünk + általában a merevlemezünkre telepített + operációs rendszert indítja el, azonban + beállítható úgy is, hogy az + indulásához egy ún. + rendszerindító (bootolható) + floppy lemezt használjon. Napjaink + számítógépei azonban a + CD-meghajtóban levõ CD-krõl is el tudnak + indulni. + + + Ha CD-n vagy DVD-n megvan a &os; telepítõje + (akár megvettük, akár éppen magunk + készítettük) és a + számítógépünk tud CD-rõl + vagy DVD-rõl rendszert indítani (a BIOS-ban van + egy Boot Order vagy hozzá hasonló + nevû beállítás), akkor kihagyhatjuk + ezt a szakaszt. A &os; CD- és DVD image-ek + kiírásával egy + rendszerindításra alkalmas lemezt kapunk, + amirõl minden további elõkészület + nélkül telepíthetünk. + + + A rendszerindító floppy lemezt az + alábbi lépések mentén haladva tudjuk + elkészíteni: + + + + A rendszerindító lemezek image-einek + beszerzése + + A rendszerindító lemezek a + telepítõeszköz + floppies/ + könyvtárában találhatóak, + illetve letölthetõek az + ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<architektúra>/<változat>-RELEASE/floppies/ + helyrõl. Az + <architektúra> + és <változat> + helyére természtesen írjuk be a + telepíteni kívánt + architektúrát és verziót. + Így például a + &os;/&arch.i386; &rel.current;-RELEASE + rendszerindító lemezei az + címrõl érhetõek el. + + A floppyk image-einek .flp + kiterjesztésûek. A + floppies/ könyvtár + számos különféle image-et tartalmaz, + ezek közül leginkább a + telepítendõ &os; változat, valamint + emellett olykor konkrétan a hardver határozza + meg a használandót. Az esetek + túlnyomó részében négy + floppyra lesz szükségünk: + boot.flp, + kern1.flp, + kern2.flp és + kern3.flp. A lemezek image-eit + illetõ legfrissebb információkat + ugyanazon a könyvtáron belül szereplõ + README.TXT állományban + olvashatjuk (angolul). + + + Az FTP-hez használt programunkat az image-ek + letöltése során ne felejtsük el + bináris (binary) + átviteli módban használni. Egyes + böngészõk hajlamosak ugyanis + szöveges (text vagy ASCII) + átviteli módot használni, ami viszont + csak abból vehetõ észre, hogy nem + tudjuk a lemezekrõl elindítani a + rendszert. + + + + + A floppyk + elõkészítése + + Mindegyik letöltendõ image-hez elõ kell + készíteni egy-egy hajlékonylemezt. + Nagyon fontos, hogy ezek a lemezek teljesen + hibátlanok legyenek. Errõl a legkönnyebben + úgy gyõzõdhetünk meg, ha a lemezeket + magunk formázzuk, és nem bízunk a + különféle elõreformázott + (preformatted) floppykban. A &windows;-ban + található formázó + segédprogram sem árul nekünk semmit a + lemezeken található hibás + részekrõl, egyszerûen csak + rossznak (bad) jelöli meg és + figyelmen kívül hagyja ezeket. + Határozottan ajánljuk, hogy amennyiben a + telepítésnek ezt a módját + választjuk, mindig használjunk teljesen + új floppykat. + + + Ha megpróbáljuk telepíteni a + &os;-t, és a telepítõprogram + összeomlik, lefagy vagy bármilyen + furcsaságot mûvel, elsõként + mindenképpen a floppykra gyanakodhatunk. Ilyenkor + írjuk ki az image-eket új lemezekre + és próbálkozzunk újra a + telepítéssel. + + + + + Az image-ek kiírása a floppykra + + Az .flp kiterjesztésû + állományok nem a lemezre + másolható hagyományos + állományok, hanem a lemezek teljes + tartalmának képei, ezért ezeket + egyszerûen nem másolhatjuk + egyik lemezrõl a másikra. Az image-ek + közvetlen lemezreírásához ehelyett + kifejezetten erre a célra alkalmas + eszközöket kell használnunk. + + DOS + + Azok számára, akik a floppykat + &ms-dos;/&windows; rendszerû + számítógépeken + kívánják elkészíteni, + mellékeltünk egy fdimage + nevû segédprogramot. + + Ha a CD-meghajtónk betûjele + például E: és a + telepítõ CD-n található image-eket + szeretnénk kiírni vele, akkor ezt a parancsot + kell kiadnunk: + + E:\> tools\fdimage floppies\boot.flp A: + + Ezután ismételten adjuk ki az + iménti parancsot minden egyes használni + kívánt .flp + állományra, azonban elõtte mindig + tegyünk be egy újabb floppyt, és a + ráírt image-ek neveivel folyamatosan + címkézzük fel a lemezeket. A megadott + parancsot természetesen mindig írjuk át + a konkrét .flp + állományok tényleges + elérési útvonalainak megfelelõen. + Ha nincs CD-nk, akkor az fdimage + programot az &os; FTP oldalán található + tools + könyvtárból is + letölthetjük. + + Amikor a lemezeket egy &unix; rendszeren + készítenénk el (például + egy másik &os; rendszeren), akkor a &man.dd.1; + parancs is használható az image-ek + közvetlen lemezreírásához. &os; + alatt így néz ki a + paraméterezése: + + &prompt.root; dd if=boot.flp of=/dev/fd0 + + &os;-n a /dev/fd0 az elsõ + hajlékonylemezes meghajtóra hivatkozik + (tehát az A: + betûjelû meghajtóra). Ennek + megfelelõen a /dev/fd1 jelenti a + B: meghajtót és + így tovább. Más &unix; + változatok esetleg más neveket + használhatnak a hajlékonylemezes + meghajtók megnevezésére, ezért + errõl érdemes ilyenkor + tájékozódni az adott rendszerhez + tartozó dokumentációban. + + + + Most már készen állunk a &os; + telepítésére! + + +
+ + + A telepítés megkezdése + + + Alapértelmezés szerint a + telepítés egészen addig nem fog semmit sem + írni a lemezekre, amíg a következõ + üzenet fel nem bukkan: + + Last Chance: Are you SURE you want continue the installation? + +If you're running this on a disk with data you wish to save then WE +STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! + +We can take no responsibility for lost disk contents! + + A szöveg fordítása: + + Utolsó esély: BIZTOSAN folytatni kívánja a telepítést? + +Ha olyan lemezre szeretne telepíteni, amelyen fontos adatok +találhatóak, HATÁROZOTTAN JAVASOLJUK, hogy a továbblépés elõtt +KÉSZÍTSEN RÓLUK MEGBÍZHATÓ BIZTONSÁGI MÁSOLATOT! + +Nem vállalunk semmilyen felelõsséget az elveszett adatokért! + + A telepítõbõl tehát a fenti, + végsõ figyelmeztetés elõtt + bármikor ki lehet lépni anélkül, hogy + a merevlemezünkön levõ adatokat + veszélyeztetnénk. Ha úgy + érezzük, hogy valamit véletlenül rosszul + állítottunk volna be a telepítés + során, ekkor még minden komolyabb kár + okozása nélkül kikapcsolhatjuk a + számítógépünket. + + + + A rendszer indítása + + + Rendszerindítás &i386;-on + + + + Kezdjünk egy kikapcsolt + számítógéppel. + + + + Kapcsoljuk be a + számítógépet. Az + indulása során látnunk kell egy olyan + opciót, amivel be tudunk lépni a rendszer + beállításait tartalmazó + menübe, avagy a BIOS-ba. Ezt többnyire a + F2, F10, + Del vagy a + AltS + lenyomásával érhetjük el. Ezek + közül használjuk a képernyõn + megjelenõ billentyûket. Elõfordulhat, hogy + induláskor a + számítógépünk semmilyen + szöveget, csak egy képet mutat. Ilyenkor + általában a Esc + billentyû megnyomására eltûnik a + kép és láthatóvá + válnak a számunkra fontos + üzenetek. + + + + Miután beléptünk a menübe, + keressük meg azt a beállítást, + amely a rendszerindításhoz használt + eszközt határozza meg. Ennek a neve sokszor + Boot Order (rendszerindítási + sorrend) vagy valami hozzá hasonló. Itt + mindenféle eszköz felsorolását + találjuk: Floppy, + CDROM, First Hard + Disk (elsõ merevlemezes meghajtó) + és így tovább. + + Ha a rendszerindításhoz korábban + floppykat készítettünk elõ, + gondoskodjunk róla, hogy itt a floppyra + vonatkozó beállítást + válasszuk ki. Amennyiben viszont CD-rõl akarjuk + a telepítést elindítani, akkor helyette + azt válasszuk. Ha bármilyen + kétség merülne fel bennünk, + keressük meg ezt a beállítást a + számítógéphez és/vagy az + alaplaphoz kapott kézikönyvben. + + Igényeink szerint végezzük el a + beállítást, majd mentsük el + és lépjünk ki. Most indítsuk + újra a + számítógépet. + + + + Ha a ban leírtak + szerint rendszerindító lemezeket + készítettünk, akkor ezek valamelyike lesz + az elsõ rendszerindító lemez, + valószínûleg az, amelyikre a + boot.flp image tartalmát + írtuk ki. Ezt a lemezt tegyük a + meghajtóba. + + Ha CD-rõl indítjuk a + telepítést, akkor kapcsoljuk be a + számítógépet és az + elindulása után igyekezzünk minél + hamarabb betenni a lemezt a meghajtóba. + + Ha minden próbálkozásunk + ellenére a + számítógépünk a megszokott + módon indul és a meglevõ + operációs rendszert tölti be, akkor a + következõkkel lehet a gond: + + + + A lemezeket nem raktuk be eléggé + korán. Hagyjuk benn ezeket és + próbáljuk meg ismét + újraindítani a + számítógépet. + + + + Nem állítottuk be jól a BIOS-t. + Próbáljuk meg egészen addig + újra végrehajtani az elõzõ + lépést, amíg a megfelelõ + beállítást el nem + találjuk. + + + + A BIOS nem támogatja a kiválasztott + eszközrõl történõ + rendszerindítást. + + + + + + A &os; megkezdi az indulását. Ha + CD-rõl indítjuk, akkor valami ehhez + hasonlót fogunk látni (a konkrét + verzióra vonatkozó adatokat itt most + kihagytuk): + + Booting from CD-Rom... +CD Loader 1.2 + +Building the boot loader arguments +Looking up /BOOT/LOADER... Found +Relocating the loader and the BTX +Starting the BTX loader + +BTX loader 1.00 BTX version is 1.01 +Console: internal video/keyboard +BIOS CD is cd0 +BIOS drive C: is disk0 +BIOS drive D: is disk1 +BIOS 639kB/261120kB available memory + +FreeBSD/i386 bootstrap loader, Revision 1.1 + +Loading /boot/defaults/loader.conf +/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] +\ + + Amikor floppyról indítjuk a rendszert, + ehhez hasonlóval találkozhatunk (itt sem + szerepelnek most verzióadatok): + + Booting from Floppy... +Uncompressing ... done + +BTX loader 1.00 BTX version is 1.01 +Console: internal video/keyboard +BIOS drive A: is disk0 +BIOS drive C: is disk1 +BIOS 639kB/261120kB available memory + +FreeBSD/i386 bootstrap loader, Revision 1.1 + +Loading /boot/defaults/loader.conf +/kernel text=0x277391 data=0x3268c+0x332a8 | + +Insert disk labelled "Kernel floppy 1" and press any key... + + Kövessük a képernyõn + megjelenõ utasítást (Helyezze be a + "Kernel floppy 1" címkéjû lemezt + és nyomjon meg egy billentyût...), + tehát vegyük ki a boot.flp + image-hez tartozó lemezt és tegyük be + helyette a kern1.flp image-hez + tartozó lemezt, majd nyomjuk le az + Enter billentyût. Várjuk meg + amíg a rendszer megkezdi az indulást az + elsõ lemezrõl, majd az utasításoknak + megfelelõen folyamatosan tegyük be a soron + következõ lemezeket. + + + + Miután elindítottuk a rendszert + floppyról vagy CD-rõl, a + rendszerindítási folyamat be fogja hozni a + &os; rendszertöltõjének + menüjét: + +
+ &os; rendszerbetöltõ menüje + + + + + + +
+ + Várjuk ki a tíz másodperces + szünetet vagy egybõl nyomjuk le az + Enter billentyût. +
+
+ +
+ + + Rendszerindítás Alphán + + Alpha + + + + Kezdjünk egy kikapcsolt + számítógéppel. + + + + Kapcsoljuk be a számítógépet + és várjuk meg rendszerindító + monitor parancssorát. + + + + Ha a ban leírtak + szerint készítettünk + rendszerindító lemezeket, akkor ezek + valamelyike lesz majd a rendszer + indításához használt elsõ + lemez, valószínûleg az, amelyik a + boot.flp image-et tartalmazza. + Helyezzük ezt a lemezt a hajlékonylemezes + meghajtóba és a rendszer + indításához írjuk be a + következõ parancsot (amennyiben + szükséges, a DVA0-ról írjuk + át benne a saját lemezes meghajtónk + hivatkozását): + + >>>BOOT DVA0 -FLAGS '' -FILE '' + + Ha CD-rõl telepítünk, akkor tegyük + a CD-t a meghajtójába és a + telepítéshez megkezdéséhez + írjuk be az alábbi parancsot (ha + szükség lenne rá, írjuk át + DKA0-t a saját CD-meghajtónk + hivatkozására): + + >>>BOOT DKA0 -FLAGS '' -FILE '' + + + + A &os; megkezdi az indulását. Amennyiben + floppyról indítjuk, hamarosan fel fog + jönni a következõ üzenet: + + Insert disk labelled "Kernel floppy 1" and press any key... + + Kövessük az utasítást + (Helyezze be a "Kernel floppy 1" + címkéjû lemezt és nyomjon le egy + billentyût...), tehát vegyük ki a + boot.flp image-et tartalmazó + lemezt és tegyük be helyette a + kern1.flp image-et tartalmazó + lemezt, majd zárjuk le a folyamatot az + Enter lenyomásával. + + + + Akár floppyról, akár CD-rõl + indítottuk a rendszert, a + rendszeindítás folyamata + elõbb-utóbb eljut ehhez a részhez: + + Hit [Enter] to boot immediately, or any other key for command prompt. +Booting [kernel] in 9 seconds... _ + + Az üzenet fordítása: + + A közvetlen indításhoz nyomja le az [Enter] billentyût, vagy egy +másik billentyût a paranccsor felhozásához. +A [kernel] indítása 9 másodpercen belül... _ + + Várjuk tíz másodpercet vagy + egyszerûen nyomjuk le az Enter + billentyût. Ezzel elindul a rendszermag + beállításait tartalmazó + menü. + + + + + + + Rendszerindítás &sparc64;-en + + A legtöbb &sparc64; alapú rendszert úgy + állították be, hogy automatikusan + lemezrõl induljon. A &os; + telepítéséhez azonban + hálózaton keresztül vagy CD-rõl kell + indítanunk a rendszert, ezért + módosítanunk kell a PROM (az OpenFirmware) + beállításait. + + Mindehhez indítsuk újra a rendszert + és várjuk meg, amíg feltûnik a + rendszerindító üzenet. A konkrét + üzenet nagyban függ a + számítógép + típusától, azonban valami ilyesmi + lesz: + + Sun Blade 100 (UltraSPARC-IIe), Keyboard Present +Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. +OpenBoot 4.2, 128 MB memory installed, Serial #51090132. +Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4. + + Amikor megpróbálja a rendszert + elindítani a lemezrõl, a PROM + parancssorának bekéréshez nyomjuk le a + billentyûzeten az L1 + A vagy a + StopA + billentyûket, esetleg a soros konzolon keresztül + küldjünk egy BREAK parancsot + (például a &man.tip.1; vagy &man.cu.1; man + oldalakon szereplõ ~# parancs + használatával). Körülbelül + így néz ki: + + + + + + + + ok +ok {0} + + + + Ez a fajta parancssor csak az egy processzorral + rendelkezõ rendszereken jelenik meg. + + + + Ez a fajta parancssor többprocesszoros (SMP) + rendszereken jelenik meg, ahol a szám az + éppen aktív processzor + sorszámát jelöli. + + + + + Most helyezzük a CD-t a meghajtóba, és + a PROM parancssorában pedig gépeljük be + boot cdrom parancsot. + + +
+ + + Az eszközkeresés eredményeinek + vizsgálata + + A képernyõn megjelenõ utolsó + pár száz sor mindig eltárolódik, + késõbb tetszõlegesen + átvizsgálhatóak. + + A puffer tartalmának + átnézéséhez nyomjuk le a + Scroll Lock billentyût, amivel + bekapcsoljuk a korábban megjelent üzenetek + közti visszalépést. Itt a + nyílbillentyûk, vagy a PageUp + és PageDown billentyûk + használhatóak a kiírások + átböngészéséhez. A + Scroll Lock ismételt + lenyomásával kiléphetünk ebbõl a + módból. + + Tegyük most mi is ezt, és nézzük az + összes olyan üzenetet, amely a rendszermag + indulása során keletkezett. A ban látható + szövegekhez hasonlóakat fogunk találni, + habár ez a számítógépben + található konkrét + eszközöktõl függõen eltérõ + lehet. + +
+ Példa az eszközkeresés + eredményeire + + avail memory = 253050880 (247120K bytes) +Preloaded elf kernel "kernel" at 0xc0817000. +Preloaded mfs_root "/mfsroot" at 0xc0817084. +md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 + +md1: Malloc disk +Using $PIR table, 4 entries at 0xc00fde60 +npx0: <math processor> on motherboard +npx0: INT 16 interface +pcib0: <Host to PCI bridge> on motherboard +pci0: <PCI bus> on pcib0 +pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 +pci1: <PCI bus> on pcib1 +pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 +isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 +isa0: <iSA bus> on isab0 +atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 +ata0: at 0x1f0 irq 14 on atapci0 +ata1: at 0x170 irq 15 on atapci0 +uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci +0 +usb0: <VIA 83572 USB controller> on uhci0 +usb0: USB revision 1.0 +uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 +uhub0: 2 ports with 2 removable, self powered +pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 +dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir +q 11 at device 8.0 on pci0 +dc0: Ethernet address: 00:04:5a:74:6b:b5 +miibus0: <MII bus> on dc0 +ukphy0: <Generic IEEE 802.3u media interface> on miibus0 +ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto +ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. +0 on pci0 +ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) +isa0: too many dependant configs (8) +isa0: unexpected small tag 14 +orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 +fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 +fdc0: FIFO enabled, 8 bytes threshold +fd0: <1440-KB 3.5” drive> on fdc0 drive 0 +atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 +atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 +kbd0 at atkbd0 +psm0: <PS/2 Mouse> irq 12 on atkbdc0 +psm0: model Generic PS/@ mouse, device ID 0 +vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 +sc0: <System console> at flags 0x100 on isa0 +sc0: VGA <16 virtual consoles, flags=0x300> +sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 +sio0: type 16550A +sio1 at port 0x2f8-0x2ff irq 3 on isa0 +sio1: type 16550A +ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 +pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode +ppc0: FIFO with 16/16/15 bytes threshold +plip0: <PLIP network interface> on ppbus0 +ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 +acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 +Mounting root from ufs:/dev/md0c +/stand/sysinstall running as init on vty0 +
+ + Figyelmesen olvassuk át az üzeneteket, és + bizonyosodjuk meg róla, hogy a &os; minden + számunkra fontos eszközt felismert. Ha nem + látunk egy eszközt, akkor azt + valószínûleg nem találta meg. Egy + saját rendszermag + létrehozásával azonban fel tudunk + ismertetni olyan eszközöket is, amelyek + támogatása eredetileg nem szerepel a + GENERIC rendszermagban. Ilyenek + például a hangkártyák. + + A &os; 6.2 vagy késõbbi + változataiban az eszközök felkutatása + után a ban + láthatóak következnek. Itt a + nyílbillentyûk segítségével + választhatjuk ki az országot (country), + térséget (region) vagy csoportot (group). Az + Enter lenyomása után pillanatok + alatt beállítódik az országunknak + és billentyûzetünknek megfelelõ + kiosztás. Ha meg akarjuk ismételni az + iménti beállítást, pillanatok alatt + ki tudunk lépni a sysinstall + programból. + +
+ Az ország kiválasztása + + + + + + +
+ +
+ Kilépés a + <application>sysinstall</application> programból + + + + + + +
+ + A telepítõprogram + fõképernyõjén válasszuk ki a + nyílbillentyûkkel az Exit + Install (Kilépés a + telepítésbõl) menüpontot. Erre + a következõ üzenet fog megjelenni: + + User Confirmation Requested + Are you sure you wish to exit? The system will reboot + (be sure to remove any floppies/CDs/DVDs from the drives). + + [ Yes ] No + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + Valóban ki akar lépni? A rendszer ezt követõen újra fog + indulni (ezért ne felejtsük el eltávolítani az összes + floppyt, CD-t és DVD-t a meghajtókból)! + + [ Igen ] Nem + + Ha a CD-t bennhagyjuk a meghajtóban és a + &gui.yes; választ adjuk, akkor a + telepítõprogram még egyszer el fog + indulni. + + Ha floppyról indítottuk volna a rendszert, az + újraindítás elõtt vegyük ki a + boot.flp image-et tartalmazó + lemezt. + +
+
+ + + A <application>sysinstall</application> + bemutatása + + A sysinstall a &os; Projekt + által fejlesztett telepítõprogram. Konzol + alapú, menükre és képernyõkre + oszlik, amelyeken a beállításokat és a + telepítési folyamat + irányítását tudjuk + elvégezni. + + A sysinstall + menürendszerét több más billentyû + mellett legfõképpen a nyílbillentyûkkel, + az Enter, Tab és a + Szóköz billentyûkkel + kezelhetjük. Ezek és az általuk + elvégezhetõ feladatok részletes + leírása a sysinstall + használatáról szóló + információk között + található. + + Ennek megtekintéséhez elõször + gyõzõdjünk meg róla, hogy a által illusztrált + helyzetnek megfelelõen kiválasztottuk a + Usage (Használat) + menüpontot és a [Select] + (Kiválaszt) feliratú gombon + állunk, majd nyomjuk le az Enter + billentyût. + + Ezt követõen megjelenik a menürendszer + használatát bemutató leírás. + Miután végigolvastuk, a fõmenübe az + Enter billentyû lenyomásával + tudunk visszajutni. + +
+ A <quote>Usage</quote> kiválasztása a + <application>sysinstall</application> + fõmenüjében + + + + + + +
+ + + A dokumentációs menü + kiválasztása + + A fõmenüben a nyílbillentyûkkel + válasszuk a Doc + feliratú menüpontot és nyomjuk meg az + Enter billentyût. + +
+ A dokumentációs menü + kiválasztása + + + + + + +
+ + Ezzel megjelenik a dokumentációs + menü. + +
+ A <application>sysinstall</application> + dokumentációs menüje + + + + + + +
+ + Feltétlenül olvassuk el az itt + található leírásokat. + + A dokumentumok elolvasásához elõször + válasszunk közülük a + nyílbillentyûkkel, majd nyomjuk meg az + Enter billentyût. A dokumentum + elolvasása után az Enter + lenyomásával tudunk visszatérni a + dokumentációs menübe. + + A dokumentációs menübõl a + fõmenübe úgy tudunk kilépni, ha a + nyílbillentyûkkel kiválasztjuk az + Exit + (Kilépés) menüpontot és + megnyomjuk az Enter billentyût. + +
+ + + A billentyûkiosztás menüjének + kiválasztása + + A billentyûzetkiosztás + megváltoztatásához válasszuk ki a + nyílbillentyûk segítségével a + Keymap menüpontot a + menübõl és nyomjuk meg az + Enter billentyût. Erre + természetesen csak akkor lesz + szükségünk, ha nem szabványos vagy nem + angol billentyûzetet használunk. + +
+ A <application>sysinstall</application> + fõmenüje + + + + + + +
+ + A különbözõ + billentyûkiosztásoknak megfelelõ + menüpontok a fel/le nyílak és a + Szóköz billentyû + segítségével választhatóak + ki. A Szóköz ismételt + lenyomásával töröljük a + választásunkat. A befejezéshez + válasszuk ki a nyilakkal a &gui.ok; gombot és + nyomjuk le az Enter billentyût. + + A mellékelt képen a lista egy része + látható csupán. Ha a Tab + billentyûvel a &gui.cancel; gombot választjuk, akkor + az alapértelmezett billentyûkiosztást kapjuk + és visszakerülünk a fõmenübe. + +
+ A <application>sysinstall</application> + billentyûkiosztást beállító + menüje + + + + + + +
+ +
+ + + A telepítés beállításai + tartalmazó képernyõ + + Válasszuk az Options + (Beállítások) menüpontot, + majd nyomjuk le az Enter billentyût. + +
+ A <application>sysinstall</application> + fõmenüje + + + + + + +
+ +
+ A <application>sysinstall</application> + beállításai + + + + + + +
+ + Az itt szereplõ alapértelmezett + értékek a legtöbb felhasználó + számára minden további nélkül + megfelelnek, nem szükséges a + megváltoztatásuk. A kiadás neve + (release name) mezõ értéke a + telepítendõ verziótól + függõen változhat. + + A kiválasztott mezõ rövid + leírása a képernyõ alján, + kékkel kiemelten jelenik meg. A Use + Defaults (Az alapértelmezések + használata) beállítás az + alapértelmezésére állítja + vissza az összes értéket. + + Az F1 lenyomásával + elolvashatjuk a különbözõ + beállításokhoz tartozó + súgót. + + A Q billentyûvel + visszatérhetünk a fõmenübe. + +
+ + + Egy szabványos telepítés + megkezdése + + A Standard + (Szabványos) elnevezésû + menüpont által felkínált + telepítési módszer ajánlott a + &unix;-szal vagy a &os; most ismerkedõk + számára. A telepítés + megkezdéséhez a nyilakkal válasszuk ki a + Standard menüpontot, majd + nyomjuk meg az Enter billentyût. + +
+ Egy szabványos telepítés + megkezdése + + + + + + +
+ +
+
+ + + Lemezterület lefoglalása + + Elsõ feladatunk lemezterületet foglalni a &os; + számára, majd megcímkézni azt, hogy a + sysinstall elõ tudja + készíteni. Ehhez tisztában kell lennünk + azzal, hogy a &os; milyen formában is keresi az adatokat a + lemezünkön. + + + A BIOS meghajtószámozása + + Egy témára különösen + tekintettel kell lennünk mielõtt + telepítenénk és + beállítanánk a &os;-t a + rendszerünkön, fõleg abban az esetben, ha + több merevlemezünk is van. + + DOS + Microsoft Windows + + Egy BIOS-függõ operációs rendszert, + például &ms-dos;-t vagy &windows;-t futattó + PC esetén a BIOS az operációs rendszer + beleegyezésével képes elvonatkoztatni a + lemezek megszokott sorrendjétõl. Ennek + köszönhetõen a felhasználó nem csak + az ún. primary master (elsõdleges + master) merevlemezes meghajtótól tudja + elindítani a rendszert. Ez kifejezetten kényelmes + megoldás az olyan felhasználók + számára, akik az elsõvel teljesen + megegyezõ második merevlemez + megvásárlásával + kialakították a rendszerük egyszerû + és egyben a legolcsóbb biztonsági + mentését, amire a Ghost vagy + XCOPY programokkal tudnak rendszeres + másolatokat készíteni. Így, ha az + elsõdleges meghajtó tönkremegy vagy + vírus támadja meg, esetleg az + operációs rendszer egy hiba miatt + használhatatlanná teszi, akkor a BIOS-t + utasíthatjuk a meghajtók logikai + cseréjére és ezzel könnyen helyre + tudjuk állítani. Olyan, mintha a ház + felnyitása nélkül felcseréltük + volna a lemezeket bekötõ kábeleket. + + SCSI + BIOS + + A SCSI-vezérlõkkel szerelt drágább + rendszerek gyakran tartalmaznak olyan + BIOS-bõvítéseket, amelyeken keresztül a + SCSI-lemezek ugyanígy tetszõlegesen + átrendezhetõek, egészen hét + meghajtóig. + + Az ilyen lehetõségek használatához + szokott felhasználókat azonban könnyen + csalódás érheti, amikor a &os; nem az + elvárásaiknak megfelelõen cselekszik. A &os; + ugyanis nem használja a BIOS-t és nem ismeri a + BIOS logikai + meghajtókiosztását. Ez + meghökkentõ eredményekre vezethet, fõleg + akkor, amikor paramétereiket tekintve a meghajtók + fizikailag teljesen megegyeznek és ráadásul + egymás másolatait tartalmazzák. + + A &os; telepítése elõtt mindig + állítsuk vissza a BIOS-ban a meghajtók + eredeti sorrendjét, és a + használatához hagyjuk is így ezt a + beállítást. Ha valamiért + mégis meg kellene cserélnünk a + meghajtókat, akkor ezentúl válasszuk a + nehezebb utat: nyissuk ki a gépházat és + kössük át a kábeleket, tegyük + át a jumpereket mi magunk. + + + Részlet Frédi és Vili + különleges kalandjaiból: + + Vili fogott egy öreg Winteles + számítógépet, hogy + készítsen belõle egy &os;-s rendszert + Frédinek. Vili ehhez beszerel egy + SCSI-meghajtót, ami így nullás + SCSI-egység lesz, majd telepíti rá a + &os;-t. + + Frédi nekilát használni a rendszert, + azonban pár nap elteltével tapasztalja, hogy az + öregecske SCSI-meghajtó számos + apróbb hibát jelez, és ezért + szól Vilinek. + + Néhány nappal késõbb Vili + eldönti, ideje pontot tenni az ügy + végére, ezért a raktárban + levõ SCSI-lemezek köztül elhoz az eredetivel + egy teljesen megegyezõt. Az elõzetes + felületellenõrzés eredményei szerint a + meghajtó tökéletesen mûködik, + ezért Vili beszerelni ezt a meghajtót a + négyes SCSI-egységként, majd + lemásolja a nullás meghajtó + tartalmát a négyesre. Miután beszerelte + a tökéletesen üzemelõ új + meghajtót, Vili úgy határoz, ideje + megkezdeni a használatát, ezért + beállítja a SCSI BIOS-át, hogy a rendszer + a nullás helyett ezentúl a négyes + egységrõl induljon. A &os; elindul és + mindenki örül. + + Frédi ezután folytatja megszokott + munkáját, majd Vili és Frédi + úgy gondolják, itt az ideje az újabb + izgalmaknak — frissítsünk a &os; egy + újabb változatára. Vili ekkor + eltávolítja a nullás + SCSI-egységet, mivel már egyébként + is kezdett tönkremenni, és kicseréli egy + másik teljesen azonos lemezes meghajtóra. Vili + ezt követõen Frédi internetrõl + letöltött varázslatos floppyjainak + segítségével feltelepíti a &os; + új verzióját az új nullás + SCSI-egységre. A telepítés minden gond + nélkül lezajlik. + + Frédi próbálgatja is a &os; új + változatát néhány napig, és + számára ez elegendõ + bizonyíték ahhoz, hogy a munkahelyén is + használja. Ideje hát átmásolni a + régi munkáit, ezért Frédi + csatlakoztatja a (korábbi &os; változat + legfrissebb változatát tartalmazó) + négyes SCSI-egységet. Frédin azonban + hirtelen aggodalom tör ki, hiszen a négyes + SCSI-egységen sehol sem találja munkája + féltett eredményeit. + + Hova tûntek azok a komisz adatok? + + Amikor Vili másolatot készített az + eredeti nullás SCSI-egységrõl a + négyes SCSI-egységre, a négyes + egység egy új klón lett. + Amikor a rendszerindításhoz Vili + átrendezte a meghajtókat a SCSI BIOS-ban, azzal + csak magát csapta be, ugyanis a &os; továbbra is + a nullás SCSI-egységrõl indult el! A BIOS + által kiválasztott meghajtóról az + effajta beállítások + hatására ugyan behozható a + rendszerindító és -betöltõ + programok egy része, de amikor a &os; rendszermagja + átveszi a vezérlést, a BIOS által + meghatározott sorrendiség figyelmen + kívül marad és a &os; visszatér a + meghajtók eredeti rendezéséhez. + Tehát ebben az esetben a rendszer továbbra is az + eredeti nullás SCSI-egységrõl folytatja a + mûködést, és Frédi összes + adata itt található, nem pedig a négyes + SCSI-egységen. A négyes + SCSI-egységrõl futó rendszer + illuziója így mindössze az emberi + elvárások szüleménye. + + Örömmel említjük meg, hogy egyetlen + byte-nyi adat sem sérült meg vagy pusztult el a + jelenség felfedezése során. A + korábbi nullás SCSI-egységet még + sikerült megmenteni a szemétdombról + és Frédi összes munkája + visszakerült (és Vili most már el tud + számolni nulláig). + + Habár a tanmesénkben + SCSI-meghajtókról esett szó, ugyanez + fennáll az IDE-meghajtókra is. + + + + + + Slice-ok létrehozása az FDisk + használatával + + + Itt még semmilyen változtatás nem + kerül lemezre. Ha úgy érezzük, hogy + valamit rosszul csináltunk és újra el + akarjuk kezdeni a telepítést, a menük + segítségével büntetlenül + távozhatunk a + sysinstallból és + újra próbálkozhatunk, vagy az + U billentyû lenyomásával + aktiválhatjuk az Undo + (Visszacsinál) funkciót. Ha + véletlenül összezavarodtunk volna és + nem találunk kilépési + lehetõséget, akkor bármikor ki tudjuk + kapcsolni a számítógépet. + + + A sysinstallban a + szabványos telepítés megkezdésekor + az alábbi üzenet jelenik meg: + + Message + In the next menu, you will need to set up a DOS-style ("fdisk") + partitioning scheme for your hard disk. If you simply wish to devote + all disk space to FreeBSD (overwriting anything else that might be on + the disk(s) selected) then use the (A)ll command to select the default + partitioning scheme followed by a (Q)uit. If you wish to allocate only + free space to FreeBSD, move to a partition marked "unused" and use the + (C)reate command. + [ OK ] + + [ Press enter or space ] + + Az üzenet fordítása: + + Üzenet + A most következõ menüben össze kell állítanunk a merevlemezünk + DOS-szerû ("fdiskes") partícióit. Amennyiben egyszerûen csak át + akarjuk adni az összes lemezterületet a FreeBSD számára (ezzel + felülírva mindent, ami a kiválasztott lemezeken található), akkor + az alapértelmezett partíció-kiosztás kiválasztásához használjuk az + (A)ll (Mind), majd utána a (Q)uit (Kilépés) parancsokat. Ha viszont + csak az éppen szabad területet szánjuk a FreeBSD-nek, lépjünk egy + "unused" ("üres") feliratú partícióra és használjuk a (C)reate + (Létrehozás) parancsot. + + [ OK ] + + [ Nyomja le az Enter vagy a Szóköz billentyût ] + + Az utasításnak megfelelõen nyomjuk le az + Enter billentyût. Ezután a + rendszermag által az eszközök + felkutatása során megtalált összes + merevlemezes meghajtót láthatjuk. A egy két IDE-lemezzel + rendelkezõ rendszert mutat be, amelyeknek nevei rendre + ad0 és + ad2. + +
+ A meghajtó kiválasztása az FDisk + számára + + + + + + +
+ + Feltûnhet, hogy itt nem szerepel az + ad1. Vajon miért maradt + ki? + + Képzeljük el, mi történne, ha + két IDE-csatolós merevlemezünk lenne: az + egyik az elsõ IDE-vezérlõn, a másik + pedig a második IDE-vezérlõn lenne master. + Ha a &os; a megtalálásuk szerint + ad0 és + ad1 nevekkel számozná + ezeket, attól még minden remekül + mûködhetne. + + Ha azonban beszerelnénk egy harmadik lemezt, + például egy slave eszközt kapcsolnánk az + elsõ IDE-vezérlõre, akkor már ez lenne a + ad1, és ennek megfelelõen a + korábban ad1 + megnevezésû meghajtó pedig az + ad2. Mivel az + állományrendszerek felkutatására + általában az eszközneveket (mint amilyen a + ad1s1a) használják, + ezért ilyenkor azt tapasztalhatnánk, hogy bizonyos + állományrendszerek helytelenül jelennek meg, + ezért meg kell változtatnunk a &os; ezeket + érintõ beállításait. + + A probléma megoldására a rendszermag + beállítható úgy, hogy az + IDE-lemezeket a kapcsolódásuk szerint + azonosítsa, ne pedig a megtalálásuk + sorrendje szerint. Ezzel a kialakítással a + második IDE-vezérlõn található + master lemez mindig az + ad2 eszköz lesz, tehát + még olyankor is, amikor egyáltalán nincs a + rendszerünkben ad0 vagy + ad1 eszköz. + + Ez a beállítás + alapértelmezés a &os; rendszermagjában, + és ez magyarázza, hogy az iménti + ábra miért csak ad0 + és ad2 eszközöket + mutat. Tehát a képen szereplõ + számítógép mind a két + IDE-vezérlõjének master + csatornáján található egy-egy + IDE-lemez, a slave csatornákon pedig nincs egy + sem. + + Itt válasszuk ki azt a lemezt, amelyre a &os;-t + telepíteni kívánjuk, majd nyomjuk meg a + &gui.ok; gombot. Erre az + által bemutatott képernyõvel elindul az + FDisk. + + Az FDisk képernyõje + három részre osztható. + + Az elsõ részben, amely a képernyõ + felsõ két sorát foglalja össze, + láthatjuk az éppen kiválasztott lemez + adatait: a &os; szerinti nevét, a paramétereit + és az összméretét. + + A második részben láthatjuk a lemezen + megtalálható slice-okat: hol kezdõdnek + (Offset) és hol érnek véget (End); + mekkorák (Size); a &os; milyen névvel hivatkozik + rájuk (Name); milyen leírás (Description) + és altípus (Subtype) tartozik hozzájuk. A + példában két kicsi üres slice-ot + láthatunk, ami a PC-k lemezkiosztására + jellemzõ. Ezenkívül felfedezhetünk egy + nagyobb méretû FAT + típusú slice-ot is, amely az &ms-dos; / &windows; + világban szinte minden bizonnyal a + C: betûjelet viseli, valamint egy + kiterjesztett slice-ot is, amely az &ms-dos; / &windows; + számára további meghajtókat is + tartalmazhat. + + A harmadik részben az + FDisk + mûködtetésére használható + parancsok láthatóak. + +
+ Átlagos Fdisk partíciók + szerkesztés elõtt + + + + + + +
+ + A most következõ teendõink attól + függenek, hogy miként is akarjuk felosztani a + lemezünket. + + Ha az egész lemezt a &os; használatára + áldozzuk (és amikor majd + megerõsítjük a + sysinstall számára a + továbblépést, a lemezen így minden + más adat törlõdni fog), akkor nyomjuk le az + A billentyût, amely megfelel a + Use Entire Disk (Az egész + lemez használata) menüpontnak. A létezõ + slice-ok eltávolításra kerülnek + és helyettük megjelenik egy + unused (üres) jelzésû kis + méretû terület (elvégre PC-rõl + beszélünk), valamint egy nagyobb slice a &os; + számára. Ha így jártunk el, akkor + válasszuk ki nyilakkal a frissen létrejött + &os; slice-ot és az S billentyû + lenyomásával jelöljük be + indíthatónak (bootable). A képernyõ + ekkor a által + mutatotthoz fog erõsen hasonlítani. A + Flags (Beállítások) + oszlopban láthatjuk az A + jelzést, amelybõl kiderül, hogy az adott slice + aktív, tehát róla tud + indulni a rendszer. + + Ha a &os; számára egy meglevõ slice + törlésével szeretnénk helyet + csinálni, akkor ehhez válasszuk ki + nyílbillentyûkkel a használni kivánt + slice-ot és nyomjuk le a D + billentyût. Ezután nyomjuk le a C + billentyût is, amire felbukkan a létrehozandó + slice méretét kérdezõ ablak. Adjuk + meg a számunkra megfelelõ méretet a + számunkra megfelelõ formában, majd + zárjuk le az Enter + lenyomásával. Az ablakban szereplõ + alapértelmezett érték a + létrehozható lehetõ legnagyobb + méretû slice-ot adja meg, ami vagy a legnagyobb + összefüggõ üres terület, vagy pedig az + egész merevlemez összterülete lehet. + + Ha már korábban + készítettünk elõ helyet a &os;-nek + (például egy + &partitionmagic; vagy egy + hozzá hasonló alkalmazás + segítségével), akkor csak elegendõ az + új slice létrehozásához megnyomnunk + a C billentyût. Ekkor szintén + megkérdezésre kerül a + létrehozandó slice mérete. + +
+ Particíonálás az Fdisk <quote>Using + Entire Disk</quote> funkciójával + + + + + + +
+ + Amikor befejeztük, nyomjuk le a Q + billentyût. Ekkor a sysinstall + elmenti a beállított értékeket, + azonban a lemezre ekkor még nem kerülnek ki. + +
+ + + A rendszerválasztó + telepítése + + Mindezek után lehetõségünk + nyílik telepíteni egy + rendszerválasztót (boot manager). + Általában véve akkor van + szükségünk a &os; + rendszerválasztójának + telepítésére, ha: + + + + Egynél több meghajtónk van, és + közülük nem az elsõ meghajtóra + telepítjük a &os;-t. + + + + A &os;-t ugyanazon a lemezen más + operációs rendszerek mellé + telepítjük, és szeretnénk + választhatóvá tenni, hogy a + számítógép + indításakor a &os; vagy a többi + operációs rendszer induljon-e el. + + + + Amennyiben a &os; lesz az egyetlen operációs + rendszer a gépünkön és az elsõ + merevlemezes meghajtóra telepítjük, akkor a + Standard (Szabványos) + rendszerválasztó tökéletesen megteszi. + Ha viszont a &os; indításához egy + másik rendszerválasztót szeretnénk + használni, válasszuk a + None (Nincs) opciót. + + Válasszunk, majd nyomjuk le az Enter + billentyût! + +
+ A <application>sysinstall</application> + rendszerválasztókat tartalmazó + menüje + + + + + + +
+ + Az F1 billentyû + lenyomásán keresztül elérhetõ + súgóképernyõn olvashatunk az egy + merevlemezen több operációs rendszer + használatával kapcsolatos + problémákról. + +
+ + + Slice-ok létrehozása egy másik + meghajtón + + Ha egynél több meghajtónk van, a program + a rendszerválasztó képernyõje + után ismét visszatér a meghajtók + kiválasztásához. Amennyiben a &os;-t egy + másik meghajtóra is telepíteni + szeretnénk, itt válasszuk ki azt és + ismételjük meg vele az imént az + FDisk programmal végzett + felosztási folyamatot. + + + Amikor a &os;-t nem az elsõ meghajtóra + telepítjük, akkor a &os; + rendszerválasztóját mind a két + meghajtóra telepíteni kell. + + +
+ Kilépés a + meghajtóválasztó + menübõl + + + + + + +
+ + A Tab billentyûvel tudunk + váltani a legutoljára kiválasztott + meghajtó, a &gui.ok; és a &gui.cancel; gombok + között. + + A &gui.ok; gombra álláshoz nyomjuk le egyszer + a Tabot, majd a telepítés + folytatásához nyomjuk le az Enter + billentyût. + +
+ + + Partíciók létrehozása a + <application>Disklabel</application> + segítségével + + A következõ lépésként + létre kell hoznunk partíciókat a frissen + létrehozott slice-okban. Ne felejtsük el, hogy + minden partíció rendelkezik egy + a-tól h-ig + terjedõ betûjellel, amelyek közül a + b, c és + d jelzésûeknek külön + szerepe van, amire tekintettel kell lennünk. + + Bizonyos alkalmazások kedvelnek egyes + partíciókiosztási sémákat, + különösen az egynél több lemezen + elhelyezkedõ partíciókat. Azonban az + elsõ &os; telepítésünk során + még nem annyira fontos koncentrálnunk a + lemezünk hatékony felosztására. + Sokkal inkább fontosabb, hogy elõször + egyszerûen csak telepítsük a &os;-t és + tanuljuk meg a használatát. Amikor már + jobban ismerni fogjuk az operációs rendszert, a + partíciók kiosztásának + megváltoztatásához mindig újra + tudjuk telepíteni a &os;-t. + + Ebben a sémában négy + partíció szerepel — egy a + lapozóállománynak és három az + állományrendszereknek. + + + Az elsõ lemez partícióinak + kiosztása + + + + + + + + + + Partíció + Állományrendszer + Méret + Leírás + + + + + + a + / + 512 MB + Ez a rendszerindításhoz + használt, más néven a + gyökér állományrendszer (root + filesystem). Minden további + állományrendszer ehhez csatlakozik + valahol. Ennek az állományrendszernek + 512 MB méret elfogadható, mivel nem + fogunk túlságosan sok adatot + tárolni rajta, a &os; telepítõje is + csak kb. 128 MB adatot fog ide pakolni. Az + így fennmaradó lemezterület + felhasználható átmeneti adatok + tárolására, illetve a + / könyvtárban helyet ad + a &os; késõbbi változatainak + terjeszkedéséhez is. + + + + b + - + RAM mérete x 2-3 + + A rendszer lapozóállománya a + b partíción + tárolódik. Itt a megfelelõ + méret megválasztása egyfajta + mûvészet, azonban minden esetben + hasznosnak bizonyulhat, ha tudjuk, hogy + méretnek mindig érdemes a fizikai avagy + központi memória (RAM) + méretének két, esetleg + háromszorosát választani. Legyen + mindig legalább 64 MB-nyi + méretû + lapozóállományunk, és ha + 32 MB RAM-nál kevesebb van a + számítógépünkben, + akkor is legalább 64 MB-ra + állítsuk be. + + Ha egynél több lemezünk van, + mindegyikre rakhatunk + lapozóállományt, ezzel a &os; + mindegyikõjüket fel tudja használni + lapozásra, amivel pedig gyakorlatilag + felgyorsítja a folyamatot. Ilyenkor + számoljunk úgy, hogy elõször + meghatározzuk a teljes + lapozóállomány + méretét (például + 128 MB), majd ezt elosztjuk a + rendelkezésünkre álló + lemezek számával (például + kettõ). Ebbõl + kiszámítható az egyes lemezeken + elhelyezendõ lapozóállomány + mérete, ami most a példánk + szerint 64 MB lesz. + + + + + e + /var + 256 MB-tl 1024 MB-ig + A /var könyvtár + foglalja magában az állandó + változó + naplóállományokat, valamint a + többi, adminisztrációhoz + használt állományt. Ezek + többsége a &os; mindennapos + mûködése közben folyamatosan + íródnak vagy olvasódnak. Ha ezeket + az állományokat egy külön + állományrendszerre rakjuk, akkor ezzel + segítünk a &os;-nek optimalizálni az + ilyen állományok + elérését anélkül, hogy + ez hatással lenne a többi, más + hozzáférési gyakorisággal + bíró állományra. + + + + f + /usr + A lemez többi része (legalább + 2 GB) + Az összes többi állomány + többnyire a /usr + könyvtárban és annak + alkönyvtáraiban helyezkedik el. + + + +
+ + + Az imént megadott értékeket csak + példaként adtuk meg és csak a tapasztalt + felhasználók számára + ajánljuk. A többi felhasználónak + inkább a partíciók automatikus + kiosztását javasoljuk a &os; + partíciószerkesztõjében + található Auto Defaults + opció használatával. + + + Ha a &os;-t egynél több lemezre + telepítjük, akkor a korábban megadott + többi slice-ban is létre kell hoznunk + partíciókat. Ezt legegyszerûbben úgy + tehetjük meg, ha minden lemezen létrehozunk + két partíciót: egyet a + lapozóállománynak, egyet pedig az + állományrendszernek. + + + Több lemez partícióinak + kiosztása + + + + + + + + + + Partíció + Állományrendszer + Méret + Leírás + + + + + + b + - + Lásd a leírást + Ahogy már korábban is + említettük, szét tudjuk osztani a + lapozóállományt a lemezek + között. Habár az a + partíció szabad, a hagyományok + mégis azt diktálják, hogy a + lapozáshoz használt terület maradjon + a b partíción. + + + + e + /diskn + A lemez többi része + A lemez fennmaradó része egyetlen + nagy partícióval fedhetõ le. Ez az + e partíció helyett + lehetne minden további nélkül az + a partíció, azonban a + hagyományok szerint az a + partíciónak a rendszer gyökér + állományrendszerét + (/) kell tartalmaznia. Nekünk + ugyan nem kellene ezt a megszokást + követnünk, azonban a + sysinstall viszont így + tesz, ezért ezzel a választással + csak magunkkal teszünk jót. Az + állományrendszer bárhová + csatlakoztatható — ebben a + példában a lemezeket rendre a + /diskn + könyvtárakhoz csatoltuk, ahol az + n az adott lemez + sorszáma. De itt természetesen más + rendszert is követhetünk. + + + +
+ + A partíciók elrendezésének + kigondolása után most már létre is + hozathatjuk ezeket a sysinstall + segítségével. Ekkor a következõ + üzenetet fogjuk látni: + + Message + Now, you need to create BSD partitions inside of the fdisk + partition(s) just created. If you have a reasonable amount of disk + space (200MB or more) and don't have any special requirements, simply + use the (A)uto command to allocate space automatically. If you have + more specific needs or just don't care for the layout chosen by + (A)uto, press F1 for more information on manual layout. + + [ OK ] + [ Press enter or space ] + + Az üzenet fordítása: + + Üzenet +Most létre kell hoznunk az fdiskkel nemrég elkészített partíciókban a +BSD-s partíciókat. Ha van hozzá elegendõ helyünk (200 MB vagy több) és +nincs semmilyen különleges elvárásunk, akkor egyszerûen csak osszuk +fel automatikusan az (A)uto paranccsal. Amennyiben azonban ennél +többre lenne szükségünk, vagy csak nincs szükségünk az (A)uto által +felkínált sémára, az F1 lenyomására bõvebb információkat is kaphatunk +a kézi kiosztás lehetõségeirõl. + + [ OK ] + [ Nyomja le az Enter vagy a Szóköz billentyût ] + + Nyomjuk le a Enter billentyût a &os; + partíciószerkesztõjének, avagy a + Disklabel + elindításához. + + A mutatja a + Disklabel elsõ + elindulásakor megjelenõ képet. A + képernyõ három részre + tagolható. + + A felsõ pár sorban a jelenleg használt + lemez nevét láthatjuk, valamint azt a slice-ot, + ami az általunk létrehozott + partíciókat tartalmazza (itt a + Disklabel a Partition + name megnevezéssel hivatkozik a slice-ra). A + képernyõn továbbá láthatjuk a + slice-ban levõ szabad helyet is, vagyis azt a helyet, amely + ugyan a slice-hoz tartozik, viszont még nem + rendeltünk hozzá partíciót. + + A képernyõ közepén + találhatóak az eddig már létrehozott + partíciók, az általuk tartalmazott + állományrendszerek, azok mérete és + az állományrendszerek + létrehozására vonatkozó + különbözõ + beállítások. + + A képernyõ alsó harmadában a + Disklabel programban + használható billentyûk felsorolása + szerepel. + +
+ A <application>sysinstall</application> Disklabel + partíciószerkesztõje + + + + + + +
+ + A Disklabel képes + magától partíciókat + készíteni a nekik megfelelõ + alapértelmezett méretekkel. A + partíciók automatikus méretét egy + belsõ partícióméretezõ algoritmus + számítja ki a lemez összmérete + alapján. Próbáljuk most mi is ezt ki, + és nyomjuk le az A billentyût. + Ekkor a szerint + illusztráltaknak megfelelõ képernyõt + tapasztalhatunk. A használt lemez + méretétõl függõen az + alapértelmezett értékek megfelelõek + lesznek vagy sem. Ez igazából nem + számít, hiszen nem kell feltétlenül + elfogadnunk az alapértelmezetten + megállapított értékeket. + + + Az alapértelmezett + partícionálási sémában a + /tmp könyvtár nem a + / könyvtár része + lesz, hanem saját partíciót kapott. + Ezzel igyekszünk elkerülni, hogy a + / partíció + átmenetileg tárolt állományokkal + teljen be. + + +
+ A <application>sysinstall</application> Disklabel + partíciószerkesztõje, + alapértelmezett értékekkel + + + + + + +
+ + Ha nem az alapértelmezett partíciókat + szeretnénk használni, és le akarjuk + váltani ezeket a saját magunk által + megadottakra, akkor a nyílbillentyûkkel + válasszuk ki az elsõ partíciót + és a törléséhez nyomjuk meg a + D billentyût. Hasonlóan + járjunk el az összes többi javasolt + partíció törléséhez. + + Az elsõ (a, vagyis a + / könyvtárként, azaz a + gyökérként csatolt) partíció + elkészítéséhez elõször + gyõzõdjünk arról, hogy a felsõ sorban + a megfelelõ slice van kiválasztva, majd nyomjuk meg + a C billentyût. Ekkor az új + partíció méretét kérdezõ + párbeszédablak jelenik meg (lásd: ). Itt a méret a lemez + blokkjainak számában adható meg, amit + viszont M-mel lezárva megabyte-ban, + G-vel gigabyte-ban vagy + C-vel cilinderben is + kifejezhetünk. + + + A &os; 5.X verziójától + kezdõdõen a felhasználók + további lehetõségei: a Custom + Newfs (Z) opciónál + megadható az UFS2 (amely a + &os; 5.1 és késõbbi + változataiban már + alapbeállítás), az Auto + Defaults opcióval létrehozhatunk + partíciókat, amelyeket aztán + módosítani tudunk a Custom + Newfs beállítással vagy az + opcióval a megszokott + létrehozási periódus során. A + Custom Newfs + használatánál azonban ne felejtsük + el a opció + megadásával bekapcsolni a SoftUpdatest! + + +
+ Szabad hely a + gyökérpartíción + + + + + + +
+ + Az alapértelmezés szerint + felkínált méret az egész slice-ot + lefoglaló partíciót hoz létre. + Amennyiben a korábbi példában + tárgyalt partícióméreteket + kívánjuk használni, akkor a + Backspace billentyû + használatával töröljük ki az + így megadott értéket, és helyette + gépeljük be, hogy 512M, ahogy + ez a + segítségével is látható. A + bevitelt zárjuk a &gui.ok; gomb + lenyomásával. + +
+ A gyökérpartíció + méretének szerkesztése + + + + + + +
+ + Miután meghatároztuk a partíció + méretét, a telepítõ megkérdezi, + hogy a létrehozandó partícióban + állományrendszer vagy + lapozóállomány foglaljon-e helyet. Ennek a + párbeszédablakját a mutatja. Mivel az elsõ + partíciónk állományrendszert fog + tartalmazni, ezért mindenképpen az + FS paramétert válasszuk + ki, majd nyomjuk meg az Enter + billentyût. + +
+ A gyökérpartíció + típusának kiválasztása + + + + + + +
+ + Végezetül, mivel egy + állományrendszert hoztunk létre, meg kell + mondanunk a Disklabelnek, hova + csatlakoztassa. A hozzátartozó + párbeszédablak a n látható. A + gyökér állományrendszer + csatlakozási pontja a /, + ezért itt csak annyit adjunk meg, hogy + / és zárjuk az + Enter billentyû + lenyomásával. + +
+ A gyökér csatlakozási pontjának + megadása + + + + + + +
+ + A képernyõn látható lista + ezután az újonnan létrehozott + partíciónak megfelelõen frissül. A + többi partícióra ugyanígy meg kell + ismételnünk ezt a mûveletsort. Arra azonban + figyeljünk, hogy a lapozásra használt + partíciót + létrehozásánál a szerkesztõ nem + fogja megkérdezni a csatlakozási pontot, hiszen az + ilyen típusú partíciókat sosem + csatlakoztatjuk. A /usr, vagyis az + utolsó partíció + készítése során a slice + fennmaradó részének + lefoglalásához már nyugodtan meghagyhatjuk + a felajánlott értéket. + + A &os; partíciószerkesztõjének + utolsó képernyõje a n hasonlóhoz, habár az + általunk választott értékek minden + bizonnyal eltérnek. A mûvelet + befejezéséhez nyomjuk le a Q + billentyût. + +
+ A Disklabel partíciószerkesztõ + + + + + + +
+
+
+ + + A telepítendõ összetevõk + kiválasztása + + + A terjesztések típusának + kiválasztása + + A telepítendõ terjesztések típusa + nagyban függ attól, hogy a rendszerünket mire + szándékozzuk majd használni és + mennyi szabad hely áll rendelkezésünkre. Az + elõre megadott beállítások a + lehetõ legkisebb konfiguráció + telepítésétõl egészen a + komplett rendszer telepítéséig terjednek. + A &unix; és/vagy &os; világában még + az új felhasználók számára + szinte tökéletesen megfelelõnek bizonyulhat az + egyik ilyen elõkészített + beállítás kiválasztása. A + terjesztések kiválogatása pedig + általában a tapasztaltabb + felhasználók számára lehet + hasznos. + + Az F1 billentyûvel többet is + megtudhatunk a terjesztések különbözõ + típusairól és bennük + található összetevõkrõl. + Miután befejeztük a súgó + áttanulmányozását, nyomjuk le az + Enter billentyût, és ezzel + visszatérünk a terjesztések + kiválasztását tartalmazó + menübe. + + Általános alapelv, hogy ha grafikus + felületet szeretnénk használni, akkor az + X-szel kezdõdõ terjesztési + típusok közül válasszunk. Az X szerver + és az alapértelmezett munkakörnyezet + beállítását a &os; + telepítése után tudjuk majd megtenni. A X + szerver beállításáról + részletesebben a ben + olvashatunk. + + Az X11 alapértelmezett változataként az + &xorg; kerül fel. + + Ha egy saját rendszermag + építését is fontolgatjuk, akkor + olyan terjesztést válasszuk, amiben a + forráskód (kernel source) is + megtalálható. A saját rendszermag + építésének + hátterérõl és + mikéntjérõl lásd a et. + + Értelemszerûen a legsokoldalúbb rendszer + az, amiben minden megtalálató. Így + aztán, ha a lemezünk is megengedi, a nyilak + és az Enter használatával + válasszuk a All (Minden) + opciót, ahogy azt az + is mutatja. Ha viszont úgy érezzük, hogy + ehhez nem eléggé nagy a lemezünk, akkor + válasszuk az igényeinkhez jobban illeszkedõ + típust. Sokat azonban ne üljünk a + tökéletes megoldás + kiötlésén, hiszen ezek a terjesztések + még a telepítés befejezése + után is hozzáadhatóak a + rendszerünkhöz. + +
+ A terjesztések kiválasztása + + + + + + +
+
+ + + A Portgyûjtemény + telepítése + + Miután kiválasztottuk a nekünk + megfelelõ terjesztést, a telepítõprogram + felajánlja a &os; Portgyûjteményének + (Ports Collection) telepítésének + lehetõségét. A portok + gyûjteménye a szoftverek + telepítésének egyszerû és + kényelmes módja. A Portgyûjtemény + önmaga nem tartalmazza a szoftverek + lefordításához szükséges + forráskódot, hanem helyette csupán azokat + az állományokat, amelyek a + különbözõ külsõs programok + letöltéséhez, + fordításához és + telepítéséhez kellenek. A ben megtalálhatjuk, miként is kell + használni ezt a gyûjteményt. + + A telepítõprogram nem fogja ellenõrizni a + kibontásához szükséges helyet, + ezért csak abban az esetben válasszuk ezt a + lehetõséget, ha mindenképpen elfér a + merevlemezünkön. A &os; jelenlegi, &rel.current; + változatában a Portgyûjtemény + nagyjából &ports.size; helyet foglal el a lemezen. + A &os; frissebb verzióiban nyugodtan + feltételezhetünk ennél valamivel nagyobb + értéket is. + + User Confirmation Requested + Would you like to install the FreeBSD ports collection? + + This will give you ready access to over &os.numports; ported software packages, + at a cost of around &ports.size; of disk space when "clean" and possibly much + more than that if a lot of the distribution tarballs are loaded + (unless you have the extra CDs from a FreeBSD CD/DVD distribution + available and can mount it on /cdrom, in which case this is far less + of a problem). + + The Ports Collection is a very valuable resource and well worth having + on your /usr partition, so it is advisable to say Yes to this option. + + For more information on the Ports Collection & the latest ports, + visit: + http://www.FreeBSD.org/ports + + [ Yes ] No + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + Szeretné telepíteni a FreeBSD portjainak gyûjteményét? + + Ezen keresztül közel &os.numports; portolt szoftvercsomaghoz tudunk + könnyedén hozzáférni, amelyek "tiszta" állapotukban nagyjából + &ports.size; lemezterületünkbe kerülnek, ami a késõbbiekben + valószínûleg majd növekedni fog, ahogy letöltjük a különbözõ + szoftverekhez tartozó állományokat (hacsak nincs meg a FreeBSD + valamelyik CD- vagy DVD alapú terjesztésének az összes lemeze, + amelyeket a /cdrom könyvtárba csatlakoztatva el tudjuk ezeket érni, + mert ekkor kevesebb gondunk lesz vele). + + A Portgyûjtemény egy nagyon értékes erõforrás, amelynek megéri helyet + szentelni a /usr partíciónkon, ezért javasoljuk, hogy válassza az + "Igen" opciót. A Portgyûjteményrõl és annak legújabb portjairól a + http://www.FreeBSD.org/ports oldalon olvashat részletesebben. + + [ Igen ] Nem + + A Portgyûjtemény + telepítéséhez a &gui.yes; gombot, ennek + kihagyásához pedig a &gui.no; gombot + válasszuk ki a nyilakkal, majd az Enter + lenyomásával mehetünk tovább. Ekkor a + kiválasztott terjesztések menüje fog + újra megjelenni. + +
+ A terjesztések telepítésének + megerõsítése + + + + + + +
+ + Ha elégedettek vagyunk a + beállításokkal, válasszuk ki a + nyilakkal az Exit menüpontot, + gyõzõdjünk meg róla, hogy a &gui.ok; + gombon állunk, majd nyomjuk le az Enter + billentyût a folytatáshoz. + +
+
+ + + A telepítés eszközének + kiválasztása + + Ha CD-rõl vagy DVD-rõl telepítünk, akkor + a következõ képernyõn a + nyílbillentyûkkel válasszuk ki a + Install from a CDROM or DVD + (Telepítés CD-rõl vagy DVD-rõl) + menüpontot. Ügyeljünk a &gui.ok; gomb + kiválasztására is, majd a + telepítés megkezdéséhez nyomjuk meg az + Enter billenyût. + + A telepítés másfajta módszereinek + alkalmazásához válasszuk ki a menüpontok + közül a nekünk megfelelõt és + kövessük a megjelenõ + utasításokat. + + Az F1 billentyû + lenyomására megjelenik az adott + telepítõeszközhöz tartozó + súgó. Innen az Enter + lenyomása után térhetünk vissza a + menühöz. + +
+ A telepítési eszköz + kiválasztása + + + + + + +
+ + + Telepítés FTP szerverrõl + + + telepítés + hálózat + FTP + + + Három FTP-s telepítési mód + közül választhatunk: aktív, + passzív vagy HTTP proxyn keresztül. + + + + Aktív FTP: Install from an FTP + server (Telepítés FTP + szerverrõl) + + + Ezzel a beállítással az + összes FTP-n keresztüli átvitel + aktív módban + történik. Ez tûzfalak esetén nem + mûködik, de gyakran alkalmazható olyan + régebbi FTP szerverek esetén, amelyek nem + ismerik az passzív adatátvitelt. Ha (az + alapértelmezett) passzív módban + megakadna a kapcsolat, próbáljunk meg + helyette az aktívat. + + + + + Passzív FTP: Install from an FTP + server through a firewall + (Telepítés tûzfalon keresztül FTP + szerverrõl) + + + + FTP + passzív mód + + + Ezzel a beállítással a + sysinstall programot az FTP + mûvelet végrehajtásakor a + passzív mód + használatára utasítjuk. Így + át tudunk menni olyan tûzfalakon is, amelyek + nem engedik a véletlenszerû TCP portokon + érkezõ kapcsolatokat. + + + + + FTP HTTP proxyn keresztül: Install + from an FTP server through a http proxy + (Telepítés HTTP proxyn keresztül FTP + szerverrõl) + + + + FTP + HTTP proxyn keresztül + + + Ezzel a beállítással + megmondhatjuk a sysinstall + programnak, hogy (egy böngészõhöz + hasonlóan) a HTTP protokollon keresztül + használja az FTP mûveletek + elvégzéséhez használt proxyt. + Ennek a proxynak lesz a feladata az átadott + kérések lefordítása és + elküldése az FTP szervernek. Ennek + köszönhetõen át tudunk menni olyan + tûzfalakon is, amelyek egyáltalán nem + engednek semmilyen FTP mûveletet, azonban tartozik + hozzájuk egy HTTP proxy. Ilyenkor az FTP szerver + beállításai mellett meg kell adnunk + ezt a HTTP proxyt is. + + + + + Az FTP szervert proxyn keresztül + általában úgy érjük el, hogy a + felhasználói név részeként + egy @ jellel elválasztva megadjuk a + ténylegesen elérni kívánt szerver + nevét. A proxy szerver ezután + helyettesíti a valódi szervert. + Például tegyük fel, hogy a ftp.FreeBSD.org szerverrõl akarunk + telepíteni az 1234 porton várakozó ize.minta.com proxy + használatával. + + Ehhez lépjünk be a + beállításokat tartalmazó + menübe, állítsuk az FTP kapcsolathoz + használt felhasználói nevet az + ftp@ftp.FreeBSD.org értékre, + majd jelszónak adjuk meg az e-mail címünket. + Telepítési eszközként adjuk meg az + FTP-t (vagy a passzív FTP-t, amennyiben a proxy ismeri) + és a + ftp://ize.minta.com:1234/pub/FreeBSD + címet. + + Mivel az ftp.FreeBSD.org + címrõl származó + /pub/FreeBSD könyvtár a ize.minta.com szerveren keresztül + érhetõ el számunkra, ezért + lényegében arról a + géprõl fogunk telepíteni (amely pedig a + telepítõ kéréseire elhozza a ftp.FreeBSD.org szervertõl az + állományokat). + + +
+ + + A telepítés + véglegesítése + + Ezután ha óhajtjuk, megkezdhetjük a + telepítést. Ez egyben az utolsó + lehetõségünk a telepítés + megszakítására és merevlemezünket + érintõ változtatások + érvénytelenítésére. + + User Confirmation Requested + Last Chance! Are you SURE you want to continue the installation? + + If you're running this on a disk with data you wish to save then WE + STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! + + We can take no responsibility for lost disk contents! + + [ Yes ] No + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + Utolsó esély: BIZTOSAN folytatni kívánja a telepítést? + + Ha olyan lemezre szeretne telepíteni, amelyen fontos adatok + találhatóak, HATÁROZOTTAN JAVASOLJUK, hogy a továbblépés elõtt + KÉSZÍTSEN RÓLUK MEGBÍZHATÓ BIZTONSÁGI MÁSOLATOT! + + Nem vállalunk semmilyen felelõsséget az elvesztett adatokért! + + [ Igen ] Nem + + A továbblépéshez válasszuk a + &gui.yes; gombot és nyomjuk meg az Enter + billentyût. + + A telepítés idõtartama a + kiválasztott terjesztéstõl, a + telepítésre használt eszköztõl + és számítógépünk + sebességétõl függ. A folyamat + elõrehaladásáról üzenetek sorozata + tájékoztat minket. + + A telepítés befejezése után a + következõ üzenet jelenik meg: + + Message + +Congratulations! You now have FreeBSD installed on your system. + +We will now move on to the final configuration questions. +For any option you do not wish to configure, simply select No. + +If you wish to re-enter this utility after the system is up, you may +do so by typing: /usr/sbin/sysinstall. + + [ OK ] + + [ Press enter or space ] + + A szöveg fordítása: + + Üzenet + +Gratulálunk, sikeresen telepítette a FreeBSD rendszert a számítógépére! + +Most rátérünk az utolsó néhány kérdésre. A "Nem" választásával +egyszerûen átugorhatjuk mindazt, amit nem szeretnénk beállítani. Ezt a +segédprogramot a rendszer újbóli elindítása után a "/usr/sbin/sysinstall" +parancs begépelésével tudjuk elérni. + + [ OK ] + + [ Nyomja le az Enter vagy a Szóköz billentyût ] + + Az Enter billentyû + lenyomásával megkezdhetjük a + telepítés utáni + beállításokat. + + A &gui.no; gomb kiválasztásával és + az Enter lenyomásával + megszakíthatjuk a telepítést, így a + rendszerünkön semmilyen változtatás nem + történik. Ilyenkor a következõ üzenet + jelenik meg: + + Message +Installation complete with some errors. You may wish to scroll +through the debugging messages on VTY1 with the scroll-lock feature. +You can also choose "No" at the next prompt and go back into the +installation menus to retry whichever operations have failed. + + [ OK ] + + Az üzenet fordítása: + + Üzenet +A telepítés során hiba történt. A Scroll Lock használatával érdemes +átnézni a VTY1 terminál megjelenõ üzeneteket. A következõ ablakban a +"Nem" választásával vissza tudunk menni a telepítõmenühöz és +megpróbálkozhatunk ismét a sikertelen mûveletek végrehajtásával. + + [ OK ] + + Ez az üzenet azért jelent meg, mert semmit sem + sikerült telepíteni. Innen az Enter + megnyomásával térhetünk vissza a + fõmenübe, majd onnan tudunk kilépni a + telepítõbõl. + + + + + A telepítés után + + A sikeres telepítést különféle + beállítások követik. + Közülük az új &os; rendszer + indítása elõtt bármelyik + megismételhetõ a beállítások + opcióit tartalmazó menü újbóli + használatával, vagy pedig a telepítés + után a sysinstall (illetve a &os; + 5.2-nél régebbi verziói esetén + /stand/sysinstall) parancs + kiadásával, majd a + Configure + (Beállítások) menüpont + kiválasztásával. + + + A hálózati eszközök + beállítása + + A következõ képernyõ már nem + jelenik meg, ha az FTP szerveren keresztüli + telepítéshez korábban már + beállítottuk a PPP kapcsolatot. Ez a + korábbiakban említettek szerint + állítható be. + + Ha többet szeretnénk megtudni a helyi + hálózatokról (LAN), vagy a &os;-t + átjáróként, illetve + útválasztóként + kívánjuk beállítani, olvassuk el az + Egyéb haladó + hálózati témák + címû fejezetet. + + User Confirmation Requested + Would you like to configure any Ethernet or SLIP/PPP network devices? + + [ Yes ] No + + Fordítása: + + Felhasználói megerõsítés szükséges + Szeretnénk beállítani valamilyen Ethernet- vagy SLIP/PPP hálózati eszközt? + + [ Igen ] Nem + + A hálózati eszközeink + beállításához válasszuk a + &gui.yes; gombot, majd nyomjuk meg az Enter + billentyût. Ellenkezõ esetben a &gui.no; gombbal + mehetünk tovább. + +
+ Az Ethernet-eszköz + kiválasztása + + + + + + +
+ + A beállítandó csatoló + kiválasztásához használjuk a + nyílbillentyûket és utána nyomjuk meg + az Enter billentyût. + + User Confirmation Requested + Do you want to try IPv6 configuration of the interface? + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + Megpróbálkozik az IPv6 beállításával a csatolón? + + Igen [ Nem ] + + A példánkban szereplõ helyi + hálózatban az aktuális internetes protokoll + (IPv4) egyelõre megfelelõ, + ezért válasszuk a &gui.no; gombot és + nyomjuk meg az Enter billentyût. + + Amennyiben RA-szerveren keresztül + egy már létezõ IPv6 + hálózathoz csatlakozunk, akkor válasszuk a + &gui.yes; gombot és nyomjuk meg az Enter + billentyût. Ezt követõen az RA-szerverek + felderítése kezdõdik meg, ami + néhány másodpercig eltarthat. + + User Confirmation Requested + Do you want to try DHCP configuration of the interface? + + Yes [ No ] + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + Megpróbálkozik a DHCP használatával a csatolón? + + Igen [ Nem ] + + Ha nincs szükségünk a DHCP (Dynamic Host + Configuration Protocol, azaz a Dinamikus + állomáskonfigurációs protokoll) + használatára, akkor a &gui.no; gomb + kiválasztásával majd az + Enter lenyomásával + továbbléphetünk. + + A &gui.yes; gomb kiválasztására elindul + a dhclient nevû program, + és amennyiben sikerrel jár, magától + kitölti a hálózati + beállításokra vonatkozó adatokat. + Ennek részleteit a ben + találhatjuk meg. + + Az alábbi hálózati + beállító képernyõ mutatja a + helyi hálózat + átjárójaként használni + kívánt Ethernet-eszköz + konfigurációját. + +
+ Az ed0 hálózati + beállítása + + + + + + +
+ + A Tab billentyûvel tudunk + navigálni az adatlap mezõi között + és kitölteni ezeket a megfelelõ + információkkal: + + + + Host + (Számítógépnév) + + + A számítógépünk + teljes neve, amely a példában most k6-2.example.com. + + + + + Domain (Tartomány) + + + Annak a tartománynak a neve, amelyben a + számítógépünk a + található. Ez itt konkrétan a + example.com. + + + + + IPv4 Gateway (IPv4-átjáró) + + + A helyben nem elérhetõ célok + megközelítésére használt + gép IP-címe. Ezt a mezõt + mindenképpen töltsük ki akkor, ha a + számítógépünk valamilyen + hálózatba van kötve. Azonban + hagyjuk üresen, ha a + számítógép a + hálózat átjárója az + internet felé. Az IPv4 + átjárót más néven + default gateway-nek (alapértelmezett + átjárónak) vagy default + route-nak (alapértelmezett + útvonalnak) is nevezik. + + + + + Name server (Névszerver) + + + A helyi DNS (névfeloldó) szerverünk + IP-címe. Ha nem található ilyen a + helyi hálózatunkon, akkor az + internet-szolgáltató DNS szerverének + címét (a példában ez a 208.163.10.2) adjuk meg. + + + + + IPv4 address (IPv4-cím) + + + A csatoló IP-címe, amely az + ábrán a 192.168.0.1. + + + + + Netmask (Hálózati maszk) + + + A helyi hálózatban használt + címtartomány a 192.168.0.0 - 192.168.0.255, amihez a 255.255.255.0 + hálózati maszk tartozik. + + + + + Extra options to ifconfig (Az ifconfig további + beállításai) + + + Az ifconfig parancs adott + csatolóra vonatkozó egyéb + beállításai. Jelen esetünkben + itt semmi sem szerepel. + + + + + + Miután végeztünk, a Tab + billentyû lenyomásával válasszuk ki a + &gui.ok; gombot és nyomjuk le az Enter + billentyût. + + User Confirmation Requested + Would you like to Bring Up the ed0 interface right now? + + [ Yes ] No + + A fordítás: + + Felhasználói megerõsítés szükséges + Aktiválja most az ed0 csatolót? + + [ Igen ] Nem + + A &gui.yes; gomb kiválasztásával, majd + az Enter lenyomásával + csatlakoztatjuk a számítógépet a + hálózathoz, ami ezután + használhatóvá válik. Ez azonban a + telepítés számára nem jelent + túlságosan sokat, hiszen ettõl + függetlenül a számítógépet + egyébként is újra kell majd + indítanunk. + +
+ + + Az átjáró + beállítása + + User Confirmation Requested + Do you want this machine to function as a network gateway? + + [ Yes ] No + + A fordítás: + + Felhasználói megerõsítés szükséges + Ezt a számítógépet hálózati átjáróként is használni akarja? + + [ Igen ] Nem + + Ha a számítógépet a helyi + hálózat átjárójaként + használni akarjuk gépek közti csomagok + továbbítására, akkor + válasszuk a &gui.yes; gombot és nyomjuk meg + hozzá az Enter billentyût. Ha + viszont ez a gép csupán a hálózat + egy tagja, akkor válasszuk a &gui.no; gombot és a + folytatáshoz nyomjuk meg az Enter + billentyût. + + + + + A hálózati szolgáltatások + beállítása + + User Confirmation Requested +Do you want to configure inetd and the network services that it provides? + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges +Beállítja az inetd démont és az általa felkínált hálózati szolgáltatásokat? + + Igen [ Nem ] + + Ha itt a &gui.no; gombot választjuk, akkor ezzel + kikapcsoljuk a különbözõ + szolgáltatásokat, például a + telnetd démont. Ez azt + jelenti, hogy a távoli felhasználók nem + lesznek képesek a telnet + program használatával belépni erre a + számítógépre. A helyi + felhasználók viszont továbbra is + képesek lesznek távoli + számítógépeket elérni a + telnet + segítségével. + + Az /etc/inetd.conf + átírásával azonban ezek a + szolgáltatások késõbb + természetesen engedélyezhetõek. A foglalkozik a téma + részleteivel. + + A &gui.yes; gomb választásával + már a telepítés során + beállíthatjuk a szolgáltatásokat. + Ekkor egy további párbeszédablak is + felbukkan: + + User Confirmation Requested +The Internet Super Server (inetd) allows a number of simple Internet +services to be enabled, including finger, ftp and telnetd. Enabling +these services may increase risk of security problems by increasing +the exposure of your system. + +With this in mind, do you wish to enable inetd? + + [ Yes ] No + + Fordítása: + + Felhasználói megerõsítés szükséges +A fõ internetes kiszolgáló (az inetd) számos egyszerû internetes +szolgáltatás, többek közt a finger, ftp és telnet elérését teszi +lehetõvé. Ezen szolgáltatások engedélyezése azonban a felmerülõ +biztonsági problémák kockázatát, mivel ezzel rendszerünket jobban +kitesszük támadásoknak. + +Mindezek tudatában használni kívánja az inetd démont? + + [ Igen ] Nem + + A folytatáshoz válasszuk a &gui.yes; + gombot. + + User Confirmation Requested +inetd(8) relies on its configuration file, /etc/inetd.conf, to determine +which of its Internet services will be available. The default FreeBSD +inetd.conf(5) leaves all services disabled by default, so they must be +specifically enabled in the configuration file before they will +function, even once inetd(8) is enabled. Note that services for +IPv6 must be separately enabled from IPv4 services. + +Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to +use the current settings. + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges +Az inetd(8) démonnak az elérhetõ internetes szolgáltatások +megállapításához szüksége van a beállításait tartalmazó +/etc/inetd.conf állományra. A FreeBSD-hez tartozó inetd.conf(5) +állomány alapértelmezés szerint az összes szolgáltatást letiltja, +ezért a mûködéséhez minden egyes szolgáltatást külön kell engedélyezni +az említett állományban, még abban az esetben is, ha az inetd(8) +démont korábban már engedélyeztük. Az IPv6 szolgáltatások az IPv4 +szolgáltatásoktól külön engedélyezendõek. + +Az [ Igen ] választásával behívjuk az /etc/inetd.conf szerkesztését, +míg a [ Nem ] választásával pedig az imént felvázolt beállításokat +fogadjuk el. + + [ Igen ] Nem + + A &gui.yes; gomb kiválasztásával + lehetõségünk nyílik + szolgáltatásokat engedélyezni a sorok + elején található # jel + törlésével. + +
+ Az <filename>inetd.conf</filename> + módosítása + + + + + + +
+ + Miután felvettük az összes használni + kívánt szolgáltatást, az + Esc billentyû lenyomásával + elõhozhatjuk azt a menüt, ahol elmenthetjük a + módosításainkat és + kiléphetünk. + +
+ + + Az SSH-n keresztüli bejelentkezés + engedélyezése + + + SSH + sshd + + + User Confirmation Requested + Would you like to enable SSH login? + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + Engedélyezi az SSH-n keresztüli bejelentkezést? + Igen [ Nem ] + + A &gui.yes; gomb kiválasztása + engedélyezi az OpenSSH-hoz + tartozó &man.sshd.8; démont, aminek + segítségével a + számítógépünkre + biztonságosan be tudunk jelentkezni + távolról. Az OpenSSH + részleteirõl lásd a t. + + + + + Anonim FTP + + + FTP + anonim + + + User Confirmation Requested + Do you want to have anonymous FTP access to this machine? + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + Hozzáférhetõ legyen ez a számítógép anonim FTP használatán keresztül? + + Igen [ Nem ] + + + Az anonim FTP tiltása + + Az alapértelmezett &gui.no; gomb + kiválasztásával és az + Enter billentyû + lenyomásával a jelszóval védett + FTP hozzáféréssel rendelkezõ + felhasználók továbbra is elérhetik + a számítógépünket. + + + + + Az anonim FTP engedélyezése + + Ha ezt választjuk, akkor anonim FTP kapcsolaton + keresztül bárki hozzáférhet a + számítógépünkhöz. Ebben + az esetben azonban alaposan meg kell fontolnunk + néhány biztonsági + következményt. A + beállítással járó + kockázatokról az ben + olvashatunk többet. + + Az anonim FTP bekapcsolásához a + nyílbillentyûkkel válasszuk ki a &gui.yes; + feliratú gombot és nyomjuk meg az + Enter billentyût. Ekkor egy + további párbeszédablak is + megjelenik: + + User Confirmation Requested + Anonymous FTP permits un-authenticated users to connect to the system + FTP server, if FTP service is enabled. Anonymous users are + restricted to a specific subset of the file system, and the default + configuration provides a drop-box incoming directory to which uploads + are permitted. You must separately enable both inetd(8), and enable + ftpd(8) in inetd.conf(5) for FTP services to be available. If you + did not do so earlier, you will have the opportunity to enable inetd(8) + again later. + + If you want the server to be read-only you should leave the upload + directory option empty and add the -r command-line option to ftpd(8) + in inetd.conf(5) + + Do you wish to continue configuring anonymous FTP? + + [ Yes ] No + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + + Az anonim FTP használatával a rendszer FTP szolgáltatásához + hitelesítetlen felhasználók is hozzáférhetnek, amennyiben az aktív. A + névtelen felhasználók az állományrendszernek csak egy részét érhetik + el, valamint az alapbeállítások szerint a feltöltést egy külön erre + a célra fenntartott könyvtárba végezhetik el. Az FTP szolgáltatás + használatát külön engedélyeznünk kell az inetd(8) démon részérõl és + az inetd.conf(5) állományban található ftpd(8) démon aktiválásával. + Ha eddig még nem tettük volna meg, akkor az inetd(8) használatát + késõbb még újra engedélyezhetjük. + + Ha csak letöltést kívánunk engedni, akkor hagyjuk a feltöltési + könyvtárra vonatkozó paramétert üresen és az inetd.conf(5) + állományban az ftpd(8) parancssorához adjuk hozzá az -r kapcsolót. + + Folytatja az anonim FTP beállítását? + + [ Igen ] Nem + + Az üzenet értesít minket arról, + hogy az anonim FTP kapcsolatok + engedélyezéséhez az FTP + szolgáltatást az + /etc/inetd.conf állományban + is be kell majd kapcsolni, lásd . Válasszuk a &gui.yes; + gombot és a folytatáshoz nyomjuk meg az + Enter billentyût. Ekkor a + következõ képernyõ jön + elõ: + +
+ Az anonim FTP + alapbeállításai + + + + + + +
+ + A beállítások kitöltése + során a Tab billentyûvel + mozoghatunk az adatmezõk között: + + + + UID (felhasználói + azonosító) + + + A névtelen FTP felhasználókhoz + társított felhasználói + azonosító. Az feltöltött + állomány tulajdonosa ez az + azonosító lesz. + + + + + Group (csoport) + + + A névtelen FTP felhasználók + csoportja. + + + + + Comment (megjegyzés) + + + Ez a szöveg szerepel a + felhasználónál az + /etc/passwd + állományban. + + + + + FTP Root Directory (az FTP gyökere) + + + Itt találhatóak az anonim FTP-n + keresztül elérhetõ + állományok. + + + + + Upload Subdirectory (feltöltési + könyvtár) + + + A névtelen FTP felhasználók + által feltöltött + állományok ide kerülnek. + + + + + Az FTP gyökere alapból a + /var könyvtár lesz. Ha a + becsült FTP-forgalom + lebonyolításához itt nem + rendelkezünk elegendõ hellyel, akkor az + /usr könyvtárban + található /usr/ftp + alkönyvtár is beállítható az + FTP gyökerének. + + Ha elfogadhatónak találjuk az + értékeket, nyomjuk le az Enter + billentyût a folytatáshoz. + + User Confirmation Requested + Create a welcome message file for anonymous FTP users? + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges + Létre kíván hozni egy köszöntõ üzenetet tartalmazó állományt + az anonim FTP felhasználók számára? + + [ Igen ] Nem + + A &gui.yes; választásával és + az Enter megnyomásával az + üzenet szerkesztéséhez egy + szövegszerkesztõ fog elindulni. + +
+ Az FTP köszöntõ üzenetének + szerkesztése + + + + + + +
+ + Ez az ee szövegszerkesztõ. + Az üzenet átírásához + használjuk a megadott utasításokat, de + akár késõbb is módosíthatjuk + ezt a kedvenc szövegszerkesztõnkkel. Ehhez a + módosítandó állomány neve + és helye a szerkesztõ + képernyõjének alján + olvasható. + + A kilépéshez az Esc + lenyomására felbukkanó menüben + alapból az a) leave editor + (kilépés a szerkesztõbõl) + menüpont érhetõ el, ezért itt az + Enter lenyomásával + léphetünk tovább. Az + Enter ismételt + lenyomásával elmenthetjük a + módosításainkat. + +
+
+ + + A hálózati állományrendszer + beállítása + + A hálózati állományrendszer + (Network File System, NFS) állományok + közzétételét teszi + lehetõvé hálózaton keresztül. + Használata során egy + számítógép + beállítható szervernek, kliensnek vagy + akár mindkettõnek. Ezzel kapcsolatban a ajánlott + elolvasásra. + + + Az NFS szerver + + User Confirmation Requested + Do you want to configure this machine as an NFS server? + + Yes [ No ] + + A fordítása: + + Felhasználói megerõsítés szükséges + Be akarja állítani NFS szervernek ezt a számítógépet? + + Igen [ Nem ] + + Ha nincs szükségünk a + hálózati állományrendszer szerver + részére, akkor válasszuk a &gui.no; + gombot és nyomjuk le az Enter + billentyût. + + Amennyiben a &gui.yes; gombot válasszuk, egy + üzenet fogja közölni velünk, hogy + létre kell hoznunk az exports + állományt. + + Message +Operating as an NFS server means that you must first configure an +/etc/exports file to indicate which hosts are allowed certain kinds of +access to your local filesystems. +Press [Enter] now to invoke an editor on /etc/exports + [ OK ] + + Az üzenet fordítása: + + Üzenet +Az NFS szerver mûködtetéséhez elõször az /etc/exports állomány +összeállításán keresztül meg kell adnunk, hogy milyen gépek milyen +típusú hozzáféréssel rendelkezzenek a helyi állományrendszereinken. +Az [Enter] lenyomására megkezdõdik az /etc/exports állomány +szerkesztése. + [ OK ] + + Az Enter billentyû + lenyomásával továbbléphetünk. + Ekkor az exports állomány + létrehozására és + szerkesztésére egy szövegszerkesztõ + indul el. + +
+ Az <filename>exports</filename> + szerkesztése + + + + + + +
+ + A exportálni kívánt + állományrendszerek felsorolásához + használjuk képernyõn a megadott + utasításokat, vagy tegyük meg ezt + késõbb az általunk választott + szövegszerkesztõ segítségével. + Ilyenkor ne felejtsük el megjegyezni az + állomány képernyõ alján + látható nevét és + helyét. + + Amikor végeztünk, az Esc + billentyûvel felhozható menüben + alapból az a) leave editor + (kilépés a szövegszerkesztõbõl) + menüpont aktív, ezért itt a + folytatáshoz egyszerûen nyomjuk le az + Enter billentyût. + +
+ + + Az NFS kliens + + Az NFS kliens beállításával + NFS szerverekhez tudunk hozzáférni. + + User Confirmation Requested + Do you want to configure this machine as an NFS client? + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + Beállítja NFS kliensnek ezt a számítógépet? + + Igen [ Nem ] + + A nyílbillentyûkkel igényeinknek + megfelelõen válasszuk a &gui.yes; vagy &gui.no; + gombokat és utána nyomjuk meg az + Enter billentyût. + + +
+ + + A rendszerkonzol beállításai + + Számos beállítás + kapcsolódik a rendszerben található + konzolok testreszabásához. + + User Confirmation Requested + Would you like to customize your system console settings? + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges + Testreszabja a rendszerkonzol beállításait? + + [ Igen ] Nem + + A beállítások + megtekintéséhez és + megváltoztatásához válasszuk a + &gui.yes; gombot és nyomjuk le az Enter + billentyût. + +
+ A rendszerkonzol beállításai + + + + + + +
+ + A képernyõkímélõ + beállítása egy gyakori opció. A + nyilak használatával álljunk a + Saver menüpontra, majd nyomjuk + le az Enter billentyût. + +
+ A képernyõkímélõ + beállításai + + + + + + +
+ + A nyilakkal válasszuk ki a használni + kívánt + képernyõkímélõt és nyomjuk + meg hozzá az Enter billentyût. + Ekkor a rendszerkonzol beállításait + tartalmazó menü jelenik meg ismét. + + Az aktivizálódás ideje + alapbeállítás szerint 300 másodperc. + Ennek megváltoztatásához válasszuk + ismét a Saver menüpontot. + A képernyõkímélõ + beállításait tartalmazó menüben + a nyílbillentyûkkel válasszuk a + Timeout (Idõkorlát) + menüpontot és nyomjuk meg az Enter + billentyût. Ekkor egy párbeszédablak jelenik + meg: + +
+ A képernyõkímélõhöz + tartozó idõkorlát + beállítása + + + + + + +
+ + Miután megváltoztattuk az + értéket, a rendszerkonzol + beállításához a &gui.ok; gomb + kiválasztásával, majd az + Enter billentyû lenyomásával + térhetünk vissza. + +
+ Kilépés a rendszerkonzol + beállító + menüjébõl + + + + + + +
+ + A Exit (Kilépés) + választásával és az + Enter lenyomásával folytathatjuk + tovább a telepítés utólagos + beállításait. + +
+ + + Az idõzóna + beállítása + + Ha kiválasztjuk + számítógépünk + számára a megfelelõ + idõzónát, akkor lehetõvé + tesszük, hogy magától elvégezze a + helyi idõhöz kapcsolódó összes + szükséges korrekciót és helyesen + kezelje az idõzónákhoz + kapcsolódó többi funkciót. + + A példában az Egyesült Államok + keleti idõzónájában elhelyezkedõ + számítógépet láthatunk. A mi + beállításaink természetesen a + saját földrajzi helyzetünktõl + függenek. + + User Confirmation Requested + Would you like to set this machine's time zone now? + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges + Beállítja most a számítógép idõzónáját? + + [ Igen ] Nem + + A &gui.yes; gomb és az Enter + billentyû segítségével + kiválaszthatjuk az idõzóna + beállítását. + + User Confirmation Requested + Is this machine's CMOS clock set to UTC? If it is set to local time + or you don't know, please choose NO here! + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + A számítógép órája az egységes világidõhöz (UTC) van beállítva? Ha a + helyi idõhöz vagy nem tudjuk, akkor itt válasszuk a NEM gombot! + + Igen [ Nem ] + + A számítógépünk + órájának + beállításának megfelelõen + válasszuk a &gui.yes; vagy &gui.no; gombot, és + nyomjuk meg az Enter billentyût. + +
+ A térség kiválasztása + + + + + + +
+ + A nyilakkal kiválasztható a megfelelõ + térség, amit aztán az + Enter billentyûvel tudunk + lezárni. + +
+ Az ország kiválasztása + + + + + + +
+ + A megfelelõ ország a + nyílbillentyûkkel, valamint az + Enter billentyûvel + választható ki. + +
+ Az idõzóna kiválasztása + + + + + + +
+ + A nekünk megfelelõ idõzóna a nyilakkal + választható meg, amit ezután az + Enter billentyûvel tudunk + jóváhagyni. + + Confirmation + Does the abbreviation 'EDT' look reasonable? + + [ Yes ] No + + Az üzenet fordítása: + + Megerõsítés + Ezek szerint az 'EDT' elfogadható? + + [ Igen ] Nem + + Erõsítsük meg, hogy az idõzóna + helyes-e. Ha rendbenlevõnek látszik, nyomjuk meg az + Enter billentyût a + folytatáshoz. + +
+ + + Linux binárisok használata + + User Confirmation Requested + Would you like to enable Linux binary compatibility? + + [ Yes ] No + + A fordítás: + + Felhasználói megerõsítés szükséges + Engedélyezi a Linux binárisok futtatását? + + [ Igen ] Nem + + A &gui.yes; gomb kiválasztásával + és az Enter lenyomásával + megengedjük, hogy a Linuxra készült + szoftvereket futtassunk &os;-n. A telepítõ ennek + biztosításához még további + csomagokat is fel fog rakni. + + Ha FTP-n keresztül telepítünk, akkor a + számítógépnek csatlakoznia kell az + internetre. Ilyenkor elõfordulhat, hogy az FTP szerveren + nem találhatóak meg a &linux; + kompatibilitással kapcsolatos csomagok. Ezeket azonban + késõbb is telepíthetjük. + + + + + Az egér beállításai + + Ezen beállítás + használatával egy háromgombos + egérrel lehetõségünk adódik a + konzol és a felhasználói programok + között kivágni és bemásolni + szövegeket. Kétgombos egér használata + esetén nézzük meg a &man.moused.8; man + oldalán, miként tudjuk emulálni a + háromgombos mûködést. A + következõ példa egy nem USB-s (tehát + PS/2-es vagy soros portra csatlakozó) egér + beállítását + illusztrálja: + + User Confirmation Requested + Does this system have a PS/2, serial, or bus mouse? + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges + Csatlakozik a rendszeréhez PS/2-es, soros vagy buszos egér? + + [ Igen ] Nem + + A PS/2, soros vagy buszos egér + használatához válasszuk a &gui.yes; gombot, + illetve az USB-s egérhez pedig a &gui.no; gombot, majd + nyomjuk meg az Enter billentyût. + +
+ Az egér által használt protokoll + típusának + beállítása + + + + + + +
+ + A nyílbillentyûk használatával + keressük ki a Type + (Típus) menüpontot és nyomjuk le az + Enter billentyût. + +
+ Az egér protokolljának + beállítása + + + + + + +
+ + A példában használt egér + típusa PS/2, ezért itt a + alapértelmezés szerint felkínált + Auto megfelelõ. A protokoll + megváltoztatásához a nyilakkal + válasszunk ki egy másikat. Ezután + gondoskodjunk róla, hogy az &gui.ok; gombot + választottuk ki és a kilépéshez + nyomjuk meg az Enter billentyût. + +
+ Az egér portjának + beállítása + + + + + + +
+ + A nyílbillentyûkkel válasszuk ki a + Port menüpontot és + nyomjuk meg az Enter billentyût. + +
+ Az egér portjának + kiválasztása + + + + + + +
+ + Mivel a példában szereplõ rendszerhez egy + PS/2 egér csatlakozik, ezért az + alapértelmezett PS/2 + menüpont megfelelõnek tûnik. A port + megváltoztatásához használjuk a + nyilakat, majd nyomjuk le az Enter + billentyût. + +
+ Az egérdémon + engedélyezése + + + + + + +
+ + Befejezésül a egérhez tartozó + démon aktiválásához és + kipróbálásához válasszuk ki a + nyilakkal az Enable + (Engedélyezés) menüpontot. + +
+ Az egérdémon + kipróbálása + + + + + + +
+ + Próbáljuk mozgatni a képernyõn + megjelenõ egérkurzort, és + ellenõrizzük, hogy a kurzor a mozdulatainknak + megfelelõen reagál-e. Ha mindent rendben + találunk, akkor válasszuk a &gui.yes; gombot + és nyomjuk le az Enter billentyût. + Ellenkezõ esetben az egeret nem jól + állítottuk be — válasszuk a &gui.no; + gombot és kísérletezzünk tovább + más beállításokkal. + + Az utólagos beállítások + folytatásához válasszuk elõször + az Exit (Kilépés) + menüpontot, majd nyomjuk meg az Enter + billentyût. + +
+ + + Csomagok telepítése + + A csomagok elõre lefordított binárisokat + tartalmaznak, és használatukkal igen + kényelmesen tudunk szoftvereket telepíteni. + + Szemléltetés céljából + most bemutatjuk az egyik ilyen csomag + telepítését. Természetesen + igény szerint más csomagokat is + hozzávehetünk. A telepítés + után a sysinstall parancs + használható további csomagok + telepítésére. + + User Confirmation Requested + The FreeBSD package collection is a collection of hundreds of + ready-to-run applications, from text editors to games to WEB servers + and more. Would you like to browse the collection now? + + [ Yes ] No + + Az üzenet fordítása: + + Felhasználói megerõsítés szükséges + A FreeBSD csomaggyûjteménye többezernyi azonnal használható + alkalmazást tartalmaz, a szövegszerkesztõktõl a játékokon keresztül a + WEBszervereken át szinte mindent. Át kívánja lapozni most ezt a + gyûjteményt? + + [ Igen ] Nem + + A &gui.yes; kiválasztása és az + Enter lenyomása után a + csomagválasztó képernyõ + következik: + +
+ A csomagok kategóriájának + kiválasztása + + + + + + +
+ + Ekkor csak az adott telepítõeszközön + elérhetõ csomagok fognak megjelenni. + + Az összes csomagot a All + (Mind) menüpont kiválasztásával + láthatjuk, vagy leszûkíthetjük ezt egy + adott kategóriára is. Álljunk a + kiválasztott kategóriához tartozó + menüpontra és nyomjuk meg az Enter + billentyût. + + Ezután egy menü fogja felsorolni az adott + kategórián belül telepíthetõ + csomagokat: + +
+ Csomag kiválasztása + + + + + + +
+ + A példában a bash + parancsértelmezõt választottuk ki. + Válogassunk kedvünkre a csomagok között, + és álljunk a telepíteni + kívántakra, majd a + Szóköz billentyû + lenyomásával jelöljük be ezeket. Minden + egyes csomag rövid leírása a + képernyõ bal alsó sarkában + olvasható. + + A Tab billentyû + segítségével mozoghatunk az utoljára + kiválasztott csomag, az &gui.ok; és &gui.cancel; + gombok között. + + Miután bejelöltük az összes + telepítésre szánt csomagot, a + csomagválasztó menübe úgy tudunk + visszatérni, ha a Tab billentyûvel + átváltunk az &gui.ok; gombra és megnyomjuk + meg az Enter billentyût. + + Ezeken felül a bal és jobb nyilak + használhatóak az &gui.ok; és &gui.cancel; + gombok közti váltásra. Ugyanezzel a + módszerrel választható ki az &gui.ok; gomb + is, ami után az Enter billentyû + megnyomásával visszajutunk a + csomagválasztó menübe. + +
+ Csomagok telepítése + + + + + + +
+ + A nyilakkal és a Tab + billentyûvel válasszuk ki az + [ Install ] + (Telepítés) gombot és nyomjuk meg az + Enter billentyût. Ekkor meg kell + erõsítenünk a csomagok + telepítését: + +
+ Csomagok telepítésének + megerõsítése + + + + + + +
+ + Az &gui.ok; kiválasztása majd az + Enter billentyû lenyomása + indítja el a csomagok telepítését. + A telepítés befejezéséig + különbözõ üzenetek fognak megjelenni. + Figyeljünk az ilyenkor felbukkanó + hibaüzenetekre! + + A beállítások + véglegesítése a csomagok + telepítése után folytatódik. + Amennyiben egyetlen csomagot sem választottunk és + szeretnénk továbblépni, akkor is az + Install (Telepítés) gombot + válasszuk. + +
+ + + Felhasználók és csoportok + felvétele + + A telepítés során legalább egy + felhasználót érdemes hozzáadnunk a + rendszerhez, mivel a rendszer használatához + így nem kell root + felhasználóként bejelentkezni. + Általánosságban véve ahhoz + egyébként is kicsi a + gyökérpartíció, hogy + root felhasználóként + (rendszeradminisztrátorként) futtassunk rajta + programokat, és gyorsan be is telik. A nagyobb + veszélyt azonban itt olvashatjuk: + + User Confirmation Requested + Would you like to add any initial user accounts to the system? Adding + at least one account for yourself at this stage is suggested since + working as the "root" user is dangerous (it is easy to do things which + adversely affect the entire system). + + [ Yes ] No + + Felhasználói megerõsítés szükséges + Szeretnénk mosta rendszerbe felvenni felhasználói fiókokat? Ebben a + lépésben legalább egy felhasználó felvétele javasolt, hiszen "root" + felhasználóként veszélyes dolgozni (mivel így könnyen tehetünk olyan + dolgokat, amelyek káros hatással lehetnek rendszerünkre). + + [ Igen ] Nem + + Ezért válasszuk a &gui.yes; gombot és + az Enter billentyû + lenyomásával lépjünk tovább a + felhasználók felvételéhez. + +
+ Felhasználók + kiválasztása + + + + + + +
+ + A nyílbillentyûkkel válasszuk ki a + User (Felhasználó) + menüpontot és nyomjuk meg az Enter + billentyût. + +
+ A felhasználó adatainak + megadása + + + + + + +
+ + Amikor a Tab billentyûvel + lépkedünk a kitöltendõ mezõk + között, a képernyõ alsó + részén az alábbi leírások + magyarázzák az egyes mezõk + tartalmát: + + + + Login ID (Bejelentkezési + azonosító) + + + Az új felhasználó + bejelentkezési neve (kötelezõ). + + + + + UID (Felhasználói + azonosító) + + + A felhasználó számszerû + azonosítója (automatikusan + létrejön, ha üresen hagyjuk). + + + + + Group (Csoport) + + + A felhasználó bejelentkezési + csoportjának neve (automatikusan + létrejön, ha üresen hagyjuk). + + + + + Password (Jelszó) + + + A felhasználó jelszava (óvatosan + bánjunk ezzel a mezõvel!) + + + + + Full name (Teljes név) + + + A felhasználó teljes neve + (megjegyzés). + + + + + Member groups (További csoportok) + + + A felhasználó ezen csoportoknak is tagja + (tehát rendelkezik az + engedélyeikkel). + + + + + Home directory (Felhasználói + könyvtár) + + + A felhasználó saját + könyvtára (ha üresen hagyjuk, az + alapértelmezés szerint töltõdik + ki). + + + + + Login shell (Parancsértelmezõl) + + A felhasználó által + használt parancsértelmezõ (ha + üresen hagyjuk, az alapértelmezés + szerint töltõdik, mint például + /bin/sh). + + + + + Az ábrán a bejelentkezés után + használt parancsértelmezõt a + /bin/sh + parancsértelmezõrõl a + /usr/local/bin/bash + parancsértelmezõre változtattuk, így + most a korábban telepített + bash parancsértelmezõt + fogjuk használni. Itt ne is próbáljunk nem + létezõ parancsértelmezõt + kiválasztani, hiszen ekkor nem tudunk majd bejelentkezni. + A BSD világban egyébként a C shell a + leggyakrabban használt, amelyet a + /bin/tcsh megadásával + választhatjuk ki. + + Az ábrán szereplõ + felhasználót ezenkívül még a + wheel csoportba is felvettük, aminek + köszönhetõen képes lesz a + rendszerünkben a root + felhasználói jogaival rendelkezõ + rendszeradminisztrátorrá válni. + + Amikor mindent megfelelõnek találunk, nyomjunk + az &gui.ok; gombra és ekkor ismét a + felhasználók és csoportok + karbantartását tartalmazó menü jelenik + meg: + +
+ Kilépés a felhasználók + és csoportok menüjébõl + + + + + + +
+ + Csoportokat is létre tudunk hozni, amennyiben erre + szükségünk lenne. Ez a rész a + telepítés befejezése után + továbbra is elérhetõ a + sysinstall (vagy a &os; 5.2 elõtt + verzióiban a /stand/sysinstall) + parancs segítségével. + + Amikor befejeztük a felhasználók + hozzáadását, a nyilakkal válasszuk + ki az Exit (Kilépés) + menüpontot és a telepítés + folytatásához nyomjuk meg az + Enter billentyût. + +
+ + + A <username>root</username> felhasználó + jelszavának megadása + + Message + Now you must set the system manager's password. + This is the password you'll use to log in as "root". + + [ OK ] + + [ Press enter or space ] + + Fordítása: + + Üzenet + Most meg kell adnia a rendszergazda jelszavát. Ezt a jelszót + kell a "root" felhasználó bejelentkezésekor használni. + + [ OK ] + + [ Nyomja le az Enter vagy a Szóköz billentyût ] + + A root felhasználó + jelszavának beállításához + nyomjuk meg az Enter billentyût. + + A jelszót kétszer kell megadnunk. Felesleges + megemlíteni, hogy gondoskodjunk arról az + esetrõl is, ha véletlenül elfelejtenénk + ezt a jelszót. Megemlítjük, hogy az itt + begépelt jelszó nem lesz látható + és a betûk helyett sem jelennek meg + csillagok. + + New password: +Retype new password : + + A jelszó sikeres megadása után a + telepítés folytatódik. + + + + + Kilépés a + telepítõbõl + + Ha be szeretnénk még állítani + egyéb + hálózati szolgáltatást vagy + valamilyen más konfigurációs + lépést kívánunk még + elvégezni, ezen a ponton megtehetjük vagy a + telepítés után a + sysinstall (illetve a &os; 5.2-nél + régebbi változatai esetén a + /stand/sysinstall) parancs + kiadásával. + + User Confirmation Requested + Visit the general configuration menu for a chance to set any last + options? + + Yes [ No ] + + Fordítás: + + Felhasználói megerõsítés szükséges + Végignézi még utoljára a beállításokat arra az esetre, ha véletlenül + kihagytunk volna valamit? + + Igen [ Nem ] + + Ha a nyilakkal a &gui.no; gomnbot választjuk, majd + megnyomjuk rajta az Enter billentyût, + akkor visszatérünk a telepítõ + fõmenüjébe. + +
+ Kilépés a + telepítõbõl + + + + + + +
+ + Válasszuk ki a nyílbillentyûkkel a + [X Exit Install] + (Kilépés a telepítõbõl) gombot + és nyomjuk meg az Enter billentyût. + Ezután meg kell erõsítenünk + kilépési szándékunkat: + + User Confirmation Requested + Are you sure you wish to exit? The system will reboot (be sure to + remove any floppies/CDs/DVDs from the drives). + + [ Yes ] No + + Fordítás: + + Felhasználói megerõsítés szükséges + Valóban ki akar lépni? A rendszer ezt követõen újra fog + indulni (ezért ne felejtsük el eltávolítani az összes + floppyt, CD-t és DVD-t a meghajtókból)! + + [ Igen ] Nem + + Válasszuk a &gui.yes; gombot és ha + floppyról indítottuk a rendszert, akkor azt + vegyük ki a meghajtóból. A + CD-meghajtó egészen az + újraindítás megkezdéséig + zárolt lesz, ezért csak ekkor tudjuk (gyorsan) + kivenni a meghajtóból a lemezt. + + A rendszer újraindul, legyünk résen + és figyeljük a megjelenõ hibaüzeneteket, + errõl bõvebben lásd a ban. + +
+ + + + + + Tom + Rhodes + Írta: + + + + + További hálózati + szolgálatások + beállítása + + A hálózati szolgáltatások + terén csekély tapasztalattal rendelkezõ + kezdõ felhasználók számára + ijesztõ lehet ezek beállítása. A + hálózatok és többek közt az + internet kezelése napjaink modern operációs + rendszereink, így a &os;-nek is az egyik fontos + területe. Ezért nagyon hasznos ismernünk + valamennyire a &os; által felkínált + hálózati lehetõségeket. A + telepítés közben ezért a + felhasználónak tisztában kell lennie a + rendelkezésére álló + szolgáltatásokkal. + + A hálózati szolgáltatások olyan + programok, amelyek a hálózat minden + részérõl fogadnak adatokat. Mindent el kell + követnünk annak érdekében, hogy ezek a + programok ne tehessenek semmilyen kárt. + Sajnos a programozók sem tökéletesek, + és az idõk során már elõfordult + párszor, hogy a hálózati + szolgáltatásokban maradtak hibák, amelyek + kihasználásával a támadók + rossz dolgokat tudtak csinálni. Ezért fontos, + hogy csak is azokat a szolgáltatásokat + engedélyezzük, amelyekre ténylegesen + szükségünk van. Ha nem tudjuk eldönteni, + akkor az a legjobb, ha egészen addig egyiket sem + engedélyezzük, amíg valóban + szükségünk nem lesz rájuk. A + sysinstall újbóli + elindításával vagy az + /etc/rc.conf megfelelõ + beállításával mindig tudunk + új szolgáltatásokat + aktiválni. + + A Networking + (Hálózatok) menüpont + kiválasztása után valami ilyesmit + láthatunk: + +
+ A hálózati beállítások + menüjének felsõ szintje + + + + + + +
+ + Ezek közül a Interfaces + (Csatolók), vagyis az elsõ menüpontról + korábban már szó esett a ban, ezért ez most nyugodtan + kihagyható. + + Az AMD menüpont + kiválasztásával engedélyezzük a + BSD automatikus + csatlakoztatásokért felelõs + segédeszközét (AMD, az AutoMounter Daemon). + Ezt általában az NFS + protokollal (lásd lentebb) együtt szokás + használni a távoli + állományrendszerek automatikus + csatlakoztatásához. Itt nincs szükség + semmilyen különleges + beállításra. + + A következõ sorban az AMD + Flags (Az AMD beállításai) + menüpont szerepel. Kiválasztása után + az AMD beállításait + bekérõ ablak fog felbukkani. Ez már + számos alapértelmezett + beállítást tartalmaz: + + -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map + + A kapcsolóval adjuk meg a + csatlakozási pontok alapértelmezett helyét, + amely ebben az esetben az /.amd_mnt. A + kapcsolóval adjuk meg az + alapértelmezett log (napló) + állományt, habár a + syslogd használata során az + összes naplózási tevékenység a + rendszer naplózó démonján fut majd + keresztül. A /host + könyvtárba fognak csatlakozni a távoli + gépek exportált állományrendszerei, + míg a /net + könyvtárba a különbözõ + IP-címekrõl exportált + állományrendszerek kerülnek + csatlakoztatásra. Az /etc/amd.map + állomány tartalmazza az AMD + exportjainak alapértelmezett + beállításait. + + + FTP + anonim + + + Az Anon FTP menüponton + keresztül engedélyezhetjük az anonim + FTP kapcsolatokat. A menüpont + kiválasztásával + számítógépünket egy anonim + FTP szerverré tehetjük, azonban + legyünk tekintettel a beállításhoz + tartozó biztonsági veszélyekkel! A + kiválasztásakor egy ablak tájékoztat + minket a beállítás részleteirõl + és felmerülõ biztonsági + kockázatokról. + + A Gateway + (Átjáró) menüpont + használatával a korábbiakban + tárgyaltak szerint állíthatjuk be + számítógépünket + hálózati átjárónak. + Ugyanekkor a Gateway menüben + nyílik lehetõségük kikapcsolni ezt a + beállítást, amennyiben a + telepítési folyamat korábbi + lépései során véletlenül + engedélyeztük volna. + + Az Inetd menüpont + segítségével beállíthatjuk, + vagy akár teljesen ki is kapcsolhatjuk a korábban + tárgyalt &man.inetd.8; démont. + + A Mail (Levelezés) + menüpontban beállíthatjuk a rendszer + alapértelmezett MTA avagy + levéltovábbító + ügynökét (Mail Transfer Agent). Ennek + hatására a következõ menü jelenik + meg: + +
+ Az alapértelmezett MTA + kiválasztása + + + + + + +
+ + Itt válaszhatunk, hogy a + különbözõ levélküldõ + rendszerek közül melyiket telepítsük + alapértelmezettként. Egy ilyen alkalmazás + lényegében nem több, mint egy + levélküldésre használt szerver, amely + továbbítja a rendszerben vagy az interneten + található felhasználók + számára a leveleket. + + A Sendmail + választásával a &os; alapból + felkínált megoldását, a + népszerû sendmail + szervert telepíthetjük. A Sendmail + local (Helyi Sendmail) menüpont + kiválasztásával szintén a + sendmail lesz a + telepítendõ levélküldõ szerver, + azonban nem lesz képes az internetrõl + érkezõ leveleket fogadni. Az itt felsorolt + többi beállítás, tehát a + Postfix és + Exim, a + Sendmail + beállításához hasonlóan + zajlik. Mind a kettõ elektronikus levelek + kézbesítésére + használható, azonban bizonyos + felhasználók a sendmail + helyett inkább ezek valamelyikét + használják. + + Valamelyik vagy éppen semelyik + levéltovábbító szerver + kiválasztása után az NFS + client (NFS kliens) + beállítására vonatkozó + menü jelentkezik. + + Az NFS client + beállításával a rendszerünk + NFS szerverekkel lesz képes + kapcsolatba lépni. Egy ilyen NFS + szerver az NFS protokoll + segítségével a hálózaton + keresztül elérhetõvé tesz + állományrendszereket. Ha gépünk + független, akkor nem fontos kiválasztanunk ezt a + menüpontot. A rendszernek késõbb + további beállításokra is + szüksége lehet, amelyekrõl az ban olvashatunk + részletesebben. + + Az NFS server (NFS szerver) + menüpont kiválasztásával + hozzájárulunk, hogy rendszerünk + NFS szerverként üzemeljen. Ehhez + meg kell adnunk az RPC, vagyis a + távoli eljáráshívások + kiszolgálásának + elindításához szükséges + adatokat is. Az RPC + használatával a különbözõ + kiszolgálók és programok között + tudjuk vezérelni a kapcsolatot. + + A sorban az Ntpdate + beállítása következik, ahol az + idõszinkronizációhoz kapcsolódó + opciókat találjuk. Kiválasztásakor + az ábrán szereplõhöz hasonló + menü fog megjelenni: + +
+ Az Ntpdate beállítása + + + + + + +
+ + Ebbõl a menübõl válasszuk ki a + hozzánk legközelebb levõ szevert. Egy + közeli szerver megadásával az + idõszinkronizáció sokkalta pontosabbá + válik, mivel a tõlünk távolabbi + szerverek kapcsolatának késleltetése + nagyobb lehet. + + A következõ beállítás az + PCNFSD. Ennek kiválasztása + során a Portgyûjteménybõl + telepítésre kerül a net/pcnfsd csomag. Ez + lényegében egy hasznos segédprogram, + amellyel olyan operációs rendszerek + számára tudunk hitelesítést + szolgáltatni az NFS használata + során, amelyek maguktól erre nem képesek, + mint például a µsoft; &ms-dos; + rendszere. + + A többi beállítás + megtekintéséhez egy kicsit lejjebb kell haladnunk + a listában: + +
+ A hálózati beállítások + menüjének alsó szintje + + + + + + +
+ + Az &man.rpcbind.8; és &man.rpc.statd.8;, valamint az + &man.rpc.lockd.8; segédprogramok mind a távoli + eljáráshívásokhoz (Remote Procedure + Call, RPC) használhatóak. Az + rpcbind segédprogram az + NFS szerverei és kliensei + között felügyeli a kapcsolatot, ezért a + használata az NFS szerverek és + kliensek mûködéséhez elengedhetetlen. + Az állapot figyeléséhez az + rpc.statd démon felveszi a + kapcsolatot a többi gépen futó + rpc.statd démonokkal. A + jelentett állapotok általában a + /var/db/statd.status + állományban találhatóak. Itt a + következõként felsorolt elem az + rpc.lockd, amelynek + kiválasztásával + állományzárolási + szolgáltatásokat érhetünk el. Ezt + többnyire az rpc.statd + démonnal együtt alkalmazzák a + zárolásokat kérõ gépek + és a kérések gyakoriságának + nyilvántartására. Míg ezekkel a + beállításokkal gyönyörûen + nyomon lehet követni a mûködést, az + NFS szerverek és kliensek + megfelelõ mûködéséhez nem + kötelezõ a használatuk. + + Ahogy haladunk tovább a listában, a + következõ elem a Routed, + vagyis az útválasztásért + felelõs démon lesz. A &man.routed.8; + segédprogram a hálózati + útválasztó táblázatokat + tartja karban, felderíti az elérhetõ + útválasztókat és + kérésre bármelyik hozzá fizikailag + csatlakozó gép számára átadja + az általa nyilvántartott + útválasztási adatokat. Ezt + leginkább a helyi hálózat + átjárójaként mûködõ + számítógépek + használják. Kiválasztásakor egy + ablak fog rákérdezni a segédprogram + helyére. Az itt alapból felkínált + érték általában megfelelõ, + ezért nyugtázhatjuk az Enter + billentyû lenyomásával. Ezt + követõen egy másik menü jelenik meg, ahol + a routed + beállításait adhatjuk meg. Itt + alapértelmezés szerint a + kapcsoló szerepel. + + A következõ sor az + Rwhod + beállításé, aminek + kiválasztásával el tudjuk indíttatni + az &man.rwhod.8; démont a rendszer + elindítása során. Az + rwhod segédprogram a + rendszerüzeneteket a hálózaton + idõközönként szétküldi vagy + figyelõ (consumer) módban + összegyûjti ezeket. Ennek pontosabb részleteit + az &man.ruptime.1; és &man.rwho.1; man oldalakon + találhatjuk meg. + + Az &man.sshd.8; démoné az utolsó + elõtti beállítás. Ez az + OpenSSH biztonságos shell + szervere, melyet a szabványos + telnet és + FTP szerverek helyett ajánlanak. Az + sshd szerver tehát két + gép közti biztonságos, titkosított + kapcsolatok létrehozására + használható. + + A lista végén a TCP + Extensions (TCP kiterjesztések) + menüpontot találhatjuk. + Segítségével a TCP + RFC 1323 és + RFC 1644 dokumentumokban leírt + kiterjesztéseinek használatát + engedélyezhetjük. Ezzel egyes gépek + esetén felgyorsulhat a kapcsolat, azonban más + esetekben pedig eldobódhat. Ez szerverek + használatánál nem ajánlott, viszont + független gépeknél kifizetõdõ + lehet. + + Most, miután beállítottuk a + hálózati szolgáltatásokat, + lépjünk vissza a lista elején + található X Exit + (Kilépés) menüpontra és folytassuk a + beállítást a következõ + opcióval, vagy egyszerûen az + X Exit kétszeri + kiválasztásával, majd a + [X Exit Install] + (Kilépés a telepítõbõl) gomb + lenyomásával lépjünk ki a + sysinstall programból. + +
+ + + A &os; indulása + + + A &os;/&arch.i386; indulása + + Ha minden remekült ment, a képernyõn + lentrõl felfelé gördülõ + üzeneteket fogunk látni, majd a rendszer + várni fog tõlünk egy bejelentkezési + nevet. A kiírt üzeneteket között a + Scroll Lock lenyomása után a + PgUp és PgDn + billentyûk használatával tudunk lapozni. A + Scroll Lock ismételt + lenyomásával visszatérünk a + bejelentkezéshez. + + Nem minden esetben lesz látható az + összes üzenet (a puffer végessége + miatt), de miután bejelentkeztünk, ezeket a + dmesg parancs kiadásával is + megnézhetjük. + + Bejelentkezni a telepítéskor megadott + felhasználói név/jelszó + párossal tudunk (a példában ez most + rpratt). Lehetõleg ne + jelentkezzünk be root + felhasználóként! + + A rendszer indításakor jellemzõen + elõforduló üzenetek (a verzióra + vonatkozó adatokat kihagytuk): + + Copyright (c) 1992-2002 The FreeBSD Project. +Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 + The Regents of the University of California. All rights reserved. + +Timecounter "i8254" frequency 1193182 Hz +CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) + Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 + Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> + AMD Features=0x80000800<SYSCALL,3DNow!> +real memory = 268435456 (262144K bytes) +config> di sn0 +config> di lnc0 +config> di le0 +config> di ie0 +config> di fe0 +config> di cs0 +config> di bt0 +config> di aic0 +config> di aha0 +config> di adv0 +config> q +avail memory = 256311296 (250304K bytes) +Preloaded elf kernel "kernel" at 0xc0491000. +Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. +md0: Malloc disk +Using $PIR table, 4 entries at 0xc00fde60 +npx0: <math processor> on motherboard +npx0: INT 16 interface +pcib0: <Host to PCI bridge> on motherboard +pci0: <PCI bus> on pcib0 +pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 +pci1: <PCI bus> on pcib1 +pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 +isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 +isa0: <ISA bus> on isab0 +atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 +ata0: at 0x1f0 irq 14 on atapci0 +ata1: at 0x170 irq 15 on atapci0 +uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 +usb0: <VIA 83C572 USB controller> on uhci0 +usb0: USB revision 1.0 +uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 +uhub0: 2 ports with 2 removable, self powered +chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 +ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at +device 10.0 on pci0 +ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) +isa0: too many dependant configs (8) +isa0: unexpected small tag 14 +fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 +fdc0: FIFO enabled, 8 bytes threshold +fd0: <1440-KB 3.5" drive> on fdc0 drive 0 +atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 +atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 +kbd0 at atkbd0 +psm0: <PS/2 Mouse> irq 12 on atkbdc0 +psm0: model Generic PS/2 mouse, device ID 0 +vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 +sc0: <System console> at flags 0x1 on isa0 +sc0: VGA <16 virtual consoles, flags=0x300> +sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 +sio0: type 16550A +sio1 at port 0x2f8-0x2ff irq 3 on isa0 +sio1: type 16550A +ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 +ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode +ppc0: FIFO with 16/16/15 bytes threshold +ppbus0: IEEE1284 device found /NIBBLE +Probing for PnP devices on ppbus0: +plip0: <PLIP network interface> on ppbus0 +lpt0: <Printer> on ppbus0 +lpt0: Interrupt-driven port +ppi0: <Parallel I/O> on ppbus0 +ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 +ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 +acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 +Mounting root from ufs:/dev/ad0s1a +swapon: adding /dev/ad0s1b as swap device +Automatic boot in progress... +/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS +/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) +/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS +/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) +/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS +/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) +/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS +/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) +Doing initial network setup: hostname. +ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 + ether 52:54:05:de:73:1b +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 + inet6 ::1 prefixlen 128 + inet 127.0.0.1 netmask 0xff000000 +Additional routing options: IP gateway=YES TCP keepalive=YES +routing daemons:. +additional daemons: syslogd. +Doing additional network setup:. +Starting final network daemons: creating ssh RSA host key +Generating public/private rsa1 key pair. +Your identification has been saved in /etc/ssh/ssh_host_key. +Your public key has been saved in /etc/ssh/ssh_host_key.pub. +The key fingerprint is: +cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com + creating ssh DSA host key +Generating public/private dsa key pair. +Your identification has been saved in /etc/ssh/ssh_host_dsa_key. +Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. +The key fingerprint is: +f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. +setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib +/usr/local/lib +a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout +starting standard daemons: inetd cron sshd usbd sendmail. +Initial rc.i386 initialization:. +rc.i386 configuring syscons: blank_time screensaver moused. +Additional ABI support: linux. +Local package initialization:. +Additional TCP options:. + +FreeBSD/i386 (k6-2.example.com) (ttyv0) + +login: rpratt +Password: + + Az RSA és DSA kulcsok generálása a + lassabb gépeken sokág is eltarthat, habár + ez mindig csak a friss telepítések utáni + elsõ indításkor történik meg. + A rendszer késõbbi indulásai ettõl + már gyorsabbak lesznek. + + Ha X szervert is beállítottunk és + választottunk hozzá egy alapértelmezett + munkakörnyezetet, akkor ezt a parancssorból a + startx kiadásával + elindíthatjuk el. + + + + + A &os;/&arch.alpha; indulása + + Alpha + + Ahogy a telepítés befejezõdõtt, az + SRM konzolból valami ilyesmi + begépelésével tudjuk elindítani a + &os;-t: + + >>>BOOT DKC0 + + Ezzel utasítjuk a firmware-t, hogy indítsa + el a rendszert a megadott lemezrõl. A &os; + jövõbeni automatikus + indításához használjuk az + alábbi parancsokat: + + >>> SET BOOT_OSFLAGS A +>>> SET BOOT_FILE '' +>>> SET BOOTDEF_DEV DKC0 +>>> SET AUTO_ACTION BOOT + + A rendszer indításakor megjelenõ + üzenetek hasonló (de nem teljesen azonosak) + lesznek az &i386; architektúrán induló + &os; esetéhez. + + + + + + A &os; leállítása + + Fontos, hogy mindig szabályosan + állítsuk le az operációs rendszert, + ne kapcsoljuk ki csak úgy egyszerûen a + számítógépünket! A + leállításhoz elõször a + su parancs kiadásával, majd itt + a root jelszavának + megadásával vegyük fel az ehhez + szükséges rendszeradminisztrátori + jogosultságokat. Ez viszont csak abban az esetben fog + mûködni, ha a felhasználónk tagja a + wheel csoportnak. Minden más + esetben egyszerûen jelentkezzünk be + root felhasználóként + és használjuk a shutdown -h now + parancsot. + + The operating system has halted. +Please press any key to reboot. + + A fenti üzenet jelzi, hogy a + leállító parancs kiadása után + már kikapcsolhatjuk a + számítógépet, vagy ha ehelyett egy + billentyût nyomunk le, akkor a gép + újraindul. + + A Ctrl + Alt Del + billentyûkombináció + használatával is újra tudjuk + indítani a rendszert, azonban ez normál + mûködés közben nem ajánlott. + + +
+ + + Hibakeresés + + + telepítés + hibakeresés + + + A most következõ szakaszban azokra a + telepítés során felmerülõ + problémákra próbálunk meg + megoldásokat adni, amelyeket eddig már sokan + jeleztek nekünk. Ezek mellett szerepel néhány + kérdés és válasz is a &os; és + az &ms-dos; vagy &windows; közös + használatáról. + + + Mit tegyünk ha valami nem mûködik + + A PC architektúra különféle + korlátozásai miatt szinte lehetetlen 100%-ban + megbízhatóvá tenni az eszközök + felderítését, azonban ennek hibája + kapcsán néhány dolgot még tenni + tudunk. + + Ellenõrizzük a Hardware + Notes (Hardverjegyzék) címû + dokumentumban, hogy az adott hardvert a &os; valóban + ismeri. + + Amennyiben a hardvereszközünket a rendszer ismeri, + azonban még mindig jelentkeznek fagyások vagy + egyéb gondok, készítenünk kell egy + saját rendszermagot. + Ezzel olyan eszközök támogatását + is beépíthetjük a rendszermagba, amelyek + eredetileg nem szerepelnek a GENERIC + rendszermagban. A telepítéshez + készített rendszerindító lemezeken + található rendszermag a legtöbb eszközt + a gyári IRQ, IO-cím és DMA csatorna + beállításaik mentén + próbálja felkutatni. Ha viszont a + hardverünket átállítottuk, ennek + megfelelõen módosítanunk kell a rendszermag + beállításait és újra kell + fordítanunk, hogy a &os; tudja, hol is keresse az + eszközt. + + Olyan is adódhat, hogy egy nem létezõ + eszköz keresése egy utána keresendõ + másik, jelenlevõ eszköz + felkutatását akadályozza meg. Ilyenkor az + ütközõ meghajtókat le kell tiltani. + + + Egyes problémák elkerülhetõek vagy + csillapíthatóak a különbözõ + hardverösszetevõk, különösen az + alaplapi firmware frissítésével. Az + alaplap firmware-jére sokszor csak + BIOS-ként hivatkoznak, és a + legtöbb alaplap- vagy + számítógépgyártó + honlapján találhatjuk meg ezeket, valamint a + rájuk vonatkozó + utasításokat. + + A legtöbb gyártó azonban erõsen + tiltakozik az alaplapi + BIOS-frissítések ellen, + és csak indokolt esetekben, például + kritikus javításoknál javasolják. + A frissítés kimenetele + lehet rossz is, aminek + következménye a BIOS + tartós károsodása. + + + + + + Az &ms-dos; és &windows; + állományrendszereinek használata + + A &os; jelenleg nem támogatja a Double + Space™ alkalmazással + tömörített állományrendszereket, + ezért a &os; csak úgy tud az adataihoz + hozzáférni, ha elõtte + kitömörítjük ezeket. Ezt a + Start menü + Programs (Programok) > + System Tools + (Rendszereszközök) menüjében + található Compression + Agent (Lemeztömörítés) + elindításával tehetjük meg. + + A &os; támogatja az &ms-dos; alapú (gyakran + csak FAT típusúnak nevezett) + állományrendszereket. A &man.mount.msdosfs.8; + parancs segítségével az ilyen rendszerek + könnyedén becsatlakoztathatók a már + létezõ könyvtárszerkezetbe, amivel + így el tudjuk érni a tartalmát. A + &man.mount.msdosfs.8; programot általában nem + közvetlenül hívjuk meg, hanem az + /etc/fstab vagy a &man.mount.8; + segédprogram megfelelõ + paraméterezésével. + + Az /etc/fstab állományban + általában így néz ki egy ilyen + sor: + + /dev/ad0sN /dos msdosfs rw 0 0 + + + A mûvelet végrehajtásához a + /dos könyvtárnak már + léteznie kell. Az /etc/fstab + pontos formátumával kapcsolatban a &man.fstab.5; + man oldalt olvassuk el. + + + Az &ms-dos; állományrendszerek esetében + a &man.mount.8; parancsot többnyire így adjuk + ki: + + &prompt.root; mount -t msdosfs /dev/ad0s1 /mnt + + Ebben a példában a &ms-dos; + állományrendszer az elsõdleges merevlemez + elsõ partícióján helyezkedik el. A mi + helyzetünk ettõl eltérõ lehet, + ezért ehhez vizsgáljuk meg a + dmesg és mount + parancsok kimeneteit. Segítségükkel + elegendõ információt tudunk összeszedni + a gépünkön található + partíciók + kiosztásáról. + + + Elõfordulhat, hogy a &os; a többi + operációs rendszertõl eltérõ + módon számozza a slice-okat (vagyis az &ms-dos; + partíciókat). Konkrétan: a kiterjesztett + &ms-dos; partíciók általában + nagyobb sorszámot kapnak, mint az elsõdleges + &ms-dos; partíciók. Az &man.fdisk.8; + segédprogram segíthet + megállapítani, hogy mely slice-ok tartoznak a + &os;-hez és melyek más operációs + rendszerekhez. + + + A &man.mount.ntfs.8; parancs használatával az + NTFS partíciók hasonló módon + csatlakoztathatóak. + + + + + Kérdések és válaszok + + + + + A rendszeren teljesen lemerevedik, amikor az + indítás során eszközöket + próbál megtalálni, vagy + furcsán viselkedik a telepítés + során, esetleg a floppy meghajtót nem is + keresi. + + + A &os; 5.0 és késõbbi + változatai az i386, amd64 és ia64 + platformokon az indítás közben az + eszközök felderítésében + erõsen építkeznek a rendszeren + elérhetõ ACPI szolgáltatásra. + Sajnos még mindig vannak hibák az ACPI + meghajtóban, az alaplapokban és a + BIOS-okban. A rendszerbetöltõ harmadik + fokozatában viszont az + hint.acpi.0.disabled + megadásával kikapcsolható az ACPI + használata: + + set hint.acpi.0.disabled="1" + + Ez a beállítás a rendszer minden + egyes indításakor törlõdik, + ezért a hint.acpi.0.disabled="1" + bejegyzést fel kell vennünk a + /boot/loader.conf + állományba. A rendszerbetöltõ + mûködésérõl + részletesebben a ban + olvashatunk. + + + + + + A &os; telepítése után + elõször indítom el a merevlemezrõl a + rendszert, a rendszermag betöltõdik és + nekilát felkutatni a hardvereszközöket, + azonban megáll a következõ + üzenettel: + + changing root device to ad1s1a panic: cannot mount root + + Mi lehet a gond? Mit tegyek? + + Mit jelent a + bios_drive:interface(unit,partition)kernel_name + a rendszerindítás során + megjelenõ súgóban? + + + Ez egy régóta fennálló + probléma olyan rendszerek esetén, ahol a + rendszerindításhoz használt lemez nem + az elsõ. A BIOS a &os;-tõl eltérõ + sorszámozást használ, és az + általa alkalmazott megfeleltetések + megfejtése nehézkes. + + Amikor a rendszer indítására + használt lemez nem az elsõ lemez a + rendszerünkben, segítenünk kell a + &os;-nek a megtalálásában. + Két gyakori helyzet alakulhat ki, és mind a + kettõben el kell árulnunk a &os;-nek, hogy hol + található a rendszer + indításához használható + gyökér állományrendszer. Ezt a + lemez BIOS-ban nyilvántartott + sorszámának, típusának + és a neki megfelelõ &os; szerinti + lemezszám megadásával tehetjük + meg. + + Az elsõ szituációban két + IDE-lemezünk van, mind a kettõt + masterként állítottuk be a + hozzájuk tartozó IDE-buszokon, és a + közülük a másodikról akarjuk + indítani a &os;-t. A BIOS ezeket 0. és 1. + lemezként látja, miközben a &os; pedig + ad0 és + ad2 + eszközként. + + A &os; 1. BIOS-számozású lemezen + van, amelynek a típusa ad + és a &os; szerinti a 2 sorszámot viseli. + Ezért ezt kell használnunk: + + 1:ad(2,a)kernel + + Ha az elsõdleges buszon van egy slave + meghajtónk, akkor mindez nem szükséges + (és valószínûleg rossz + is). + + A második szituációban egy + SCSI-lemezrõl akarjuk indítani a rendszert, + miközben egy vagy több IDE-lemez is + található a gépünkben. Ebben az + esetben a &os; szerinti sorszám kisebb lesz, mint a + BIOS szerinti. Ha tehát a két + IDE-lemezünk mellett van még egy SCSI-lemez + is, akkor annak a BIOS szerinti sorszáma 2, a + típusa da és a &os; + szerinti sorszáma pedig 0. Ennek megfelelõen + a + + 2:da(0,a)kernel + + sorral tudjuk elárulni a &os;-nek, hogy a BIOS + szerint 2. lemezrõl akarjuk indítani, amely a + rendszerben található elsõ + SCSI-lemeznek felel meg. Ha csak egy IDE-lemezünk + van, akkor a sort kezdjük az 1: + beírásával. + + Miután megtaláltuk a megfelelõ + értékeket, a hozzá tartozó + sort egy szövegszerkesztõ + segítségével tegyük + közvetlenül a /boot.config + állományba. A &os; ezen + állomány tartalmát fogja + alapból felhasználni a + boot: + bekérésénél, hacsak + másképpen nem utasítjuk. + + + + + + A telepítés után + elõször próbálom meg + elindítani a merevlemezrõl a &os;-t, azonban a + rendszerválasztó mindig csak + F? opciókat kínál + fel, és a rendszer indítása sem halad + tovább. + + + A &os; telepítése során rosszul + adtunk meg a partíciószerkesztõben a + merevlemezhez tartozó geometriát. + Menjünk vissza a + partíciószerkesztõhöz és + adjuk meg újra a merevlemezünk helyes + geometriáját. Ennek + használatához pedig a &os;-t is újra + kell telepítenünk. + + Ha egyáltalán képtelenek vagyunk + megállapítani a merevlemezhez tartozó + geometriát, akkor próbáljuk meg ezt: + a lemez elején hozzunk létre egy kis + méretû DOS partíciót és + rakjuk utána a &os;-t. Amikor a + telepítõprogram észreveszi a DOS + partíciót, megpróbálja + magától kikövetkeztetni belõle a + helyes geometriát, ami általában + mûködik is. + + Ez a tanács ugyan már nem + érvényes, de álljon itt + felvilágosításként: + +
+ Ha teljesen egy &os; alapú szerver vagy + munkaállomás + kialakítására szánjuk a + számítógépünket, + és nem törõdünk a DOS-szal, + Linuxszal és a többi operációs + rendszerrel történõ + (jövõbeli) kompatibilitással, + használhatjuk akár az egész lemezt + is (a partíciószerkesztõben ez az + A opció). Ezzel egy + olyan nem szabványos + beállítást + engedélyezünk, amivel a &os; elfoglalja a + lemezt annak legelsõ szektorától a + legutolsó szektoráig. Ilyenkor ugyan el + tudunk tekinteni a geometriával kapcsolatos + beállításoktól, azonban + így a &os;-n kívül semmilyen + más operációs rendszert nem tudunk + majd futtatni a gépen. +
+
+
+ + + + A rendszer megtalálja a &man.ed.4; + hálózati kártyámat, azonban + folyamatosan hibát ad + idõtúllépésre hivatkozva. + + + Az említett kártya + valószínûleg a + /boot/device.hints + állományban + beállítottaktól eltérõ + IRQ-t használ. A &man.ed.4; meghajtó + alapértelmezés szerint nem használ + szoftveres + beállításokat (amiket DOS-ban az + EZSETUP használatával adunk meg), viszont + engedélyezhetjük, ha a + kártyánál megadjuk az + -l + beállítást. + + Hardveresen ezt a kártyán levõ + jumperek segítségével + állíthatjuk be (ehhez változtassuk + meg a rendszermag beállításait is, + amennyiben szükséges), vagy a + -l kapcsolón keresztül a + hint.ed.0.irq="-l" + megadásával utasíthatjuk a + rendszermagot az IRQ szoftveres + beállítására. + + Másik lehetõség, amikor a + kártyánk a 9-es IRQ-t használja, + amelyet általában megosztanak a 2-es + IRQ-val, ami gyakori problémák + forrása (különösen abban az esetben, + amikor a VGA kártya a 2-es IRQ-t használja!) + lehet. Lehetõleg ne használjuk a 2-es + és 9-es IRQ-kat. + + +
+ +
+
+ + + + + + Valentino + Vaschetto + Írta: + + + + + Telepítési útmutató + haladóknak + + Ebben a szakaszban megtudhatjuk, hogyan telepítsük + a &os;-t speciális esetekben. + + + A &os; telepítése billentyûzet vagy + monitor nélkül + + + telepítés + fej nélküli (soros konzol) + + soros konzol + + A telepítés ezen fajtáját + fej nélküli + telepítésnek (headless install) + hívják, mivel a gép, amire a &os;-t + telepíteni akarjuk, nem rendelkezik monitorral vagy + éppen még VGA kimenettel sem. Felmerülhet a + kérdés: hogyan lehetséges mindez? A soros + vonali konzol használatával! A soros konzol + segítségével lényegében egy + másik számítógép + monitorját és billentyûzetét + használjuk. Ennek + megvalósításához + elsõként kövessük a + rendszerindító lemezek + készítésének ban leírt + lépéseit. + + Az így létrehozott lemezeket pedig az + alábbi lépésekkel tehetjük + képessé a soros konzolon keresztüli + rendszerindításra: + + + + A rendszerindító lemezek + átállítása soros + konzolra + + mount + + Ha a létrehozott lemezekkel most csak + egyszerûen elindítanánk a &os;-t, akkor + a megszokott telepítési módban + indulna el. Mi viszont azt akarjuk, hogy a + telepítéshez a &os; a soros konzolon + keresztül induljon el. Ehhez tegyük be + és a &man.mount.8; paranccsal csatlakoztassuk &os; + rendszerünkhöz a boot.flp + image-et tartalmazó lemezt. + + &prompt.root; mount /dev/fd0 /mnt + + Most, miután csatlakoztattuk a lemezt, + váltsunk az /mnt + könyvtárra: + + &prompt.root; cd /mnt + + Itt fogjuk beállítani a lemezt a soros + konzolon keresztüli indulásra. Létre + kell hoznunk egy boot.config + nevû állományt, amelybe a + /boot/loader -h sor fog kerülni. + Ezzel jelezzük a rendszerbetöltõnek, hogy a + rendszerindítás során a soros konzolt + akarjuk használni. + + &prompt.root; echo "/boot/loader -h" > boot.config + + Miután a lemezen sikeresen + elvégeztük a szükséges + beállítást, válasszuk le a + &man.umount.8; parancs kiadásával: + + &prompt.root; cd / +&prompt.root; umount /mnt + + Most már kivehetjük a lemezt a + meghajtóból. + + + + A null-modem kábel + csatlakoztatása + + null-modem + kábel + + Össze kell kötnünk a két + számítógépet egy null-modem + kábellel. Nincs más teendõnk, + mit összekapcsolni a két gép soros + portjait. Itt a szokásos soros + kábel nem mûködik, + konkrétan null-modem kábelre van + szükség, mivel benne néhány + vezetéket máshogy kötöttek + be. + + + + A telepítés + indítása + + Most már ideje elkezdeni a + telepítést. Tegyük a + boot.flp image-et tartalmazó + lemezt a fej nélkül telepítendõ + gép meghajtójába és kapcsoljuk + be. + + + + Kapcsolódás a fej nélküli + gépre + + cu + + Ezután a &man.cu.1; parancs + felhasználásával kapcsolódjunk + rá a gépre: + + &prompt.root; cu -l /dev/cuad0 + + A &os; 5.X verzióiban a + /dev/cuad0 helyett a + /dev/cuaa0 eszközt + írjuk. + + + + Ezzel készen is vagyunk! Innentõl a + cu által megnyitott kapcsolaton + keresztül tudjuk vezérelni a fej nélküli + számítógépet. Hamarosan + megkér minket a kern1.flp image-et + tartalmazó lemez behelyezésére, majd + megkérdezi a használt terminál + típusát. Itt válasszuk ki a színes + &os; konzolt (&os; color console) és folytassuk a + telepítést a megszokott módon. + + + + + + Saját telepítõeszköz + elkészítése + + + Az ismétlések elkerülése + végett a továbbiakban a &os; lemez + a megvásárolható vagy a magunk által + készített &os; CD-re vagy DVD-re + vonatkozik. + + + Adódhatnak olyan esetek, amikor létre kell + hoznunk a &os; telepítésére használt + saját eszközünket és/vagy + forrásunkat. Ez lehet egy tetszõleges fizikai + eszköz, például szalag, vagy bármilyen + olyan forrás, ahonnan a + sysinstall képes + állományokat elérni, például + egy FTP oldal vagy egy &ms-dos; partíció. + + Például: + + + + Egy &os; lemezünk van és több + hálózaton kapcsolódó + számítógépünk. + Készíteni akarunk egy helyi FTP oldalt a &os; + lemez felhasználásával, és + így a hálózaton levõ gépre az + internet helyett innen telepítjük a + rendszert. + + + + Van egy &os; lemezünk, azonban a &os;-nek nem + sikerült felismernie a CD/DVD-meghajtónkat, + viszont az &ms-dos;/&windows;-nak igen. Felmásoljuk a + &os; telepítéséhez használt + állományokat ugyanazon a + számítógépen + található egyik DOS partícióra, + majd a &os;-t ezekkel telepítjük. + + + + A gépben, amelyre telepíteni akarunk, nincs + CD/DVD-meghajtó vagy hálózati + kártya, viszont Laplink + stílusú soros vagy párhuzamos + kábellel hozzá tudunk kapcsolódni egy + olyan számítógéprõl, amelyben + viszont van. + + + + Készíteni akarunk a &os; + telepítésére használható + szalagot. + + + + + Telepítõ CD + készítése + + A &os; Projekt minden kiadás részeként + architektúránként + elérhetõvé tesz legalább két CD + image-et (ISO image-et). Ha rendelkezünk + CD-íróval, ezeket az image-eket fel-, illetve ki + tudjuk írni (égetni) CD-re, + és a &os; telepítésére tudjuk + használni. Tehát ha van a kezünk + ügyében CD-író és olcsón + jutunk nagyobb sebességû + interneteléréshez, akkor a &os; + telepítésének ez a legkönnyebb + módja. + + + + A megfelelõ ISO image-ek + letöltése + + Ez egyes kiadások ISO image-ei + letölthetõek a + ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-architektúra/változat + címrõl vagy annak legközelebbi + tükrözésérõl. Az + architektúra és + változat részeket + igényeinknek megfelelõen + helyettesítsük. + + Az említett könyvtár + általában a következõ lemezek + image-eit tartalmazza: + + + FreeBSD 5.<replaceable>X</replaceable> és + 6.<replaceable>X</replaceable> ISO image-ek nevei + és jelentései + + + + + + Állománynév + Tartalma + + + + + változat-RELEASE-architektúra-bootonly.iso + Minden, ami ahhoz kell, hogy el tudjuk + indítani a &os; rendszermagot és + megkapjuk a telepítéshez + szükséges alapokat. A + telepítendõ állományokat + ezután FTP-rõl vagy más ismert + forrásból érjük + el. + + + + változat-RELEASE-architektúra-disc1.iso + Minden, ami a &os; + telepítéséhez kellhet, valamint + egy élõ + állományrendszer (Live + Filesystem), amelyet a + sysinstall + Repair + (Helyreállítás) + funkciójához tudunk + használni. + + + + változat-RELEASE-architektúra-disc2.iso + A &os; dokumentációja (a &os; + 6.2-es verziójáig) valamint annyi + csomag, ami a lemezre csak felfér. + + + + változat-RELEASE-architektúra-docs.iso + A &os; dokumentációja (a &os; 6.2 + és késõbbi + verzióiban). + + + +
+ + Le kell töltenünk az + elsõ lemez vagy (ha elérhetõ) a bootonly + lemez ISO image-einek egyikét. + + Akkor használjuk a bootonly jelzésû + image-et, ha szélessávú + interneteléréssel rendelkezünk. + Segítségével el tudjuk kezdeni a &os; + telepítését, és + szükség szerint a port/csomagrendszer + (lásd ) + használatával csomagokat tudunk letölteni + és telepíteni. + + Az elsõ lemez image-ét akkor érdemes + használni, ha a &os; adott kiadásának + telepítése mellett igényt tartunk + valamennyi csomagra is. + + A további lemezek image-ei is hasznosak lehetnek, + de nem feltétlenül kellenek a + telepítéshez, fõleg abban az esetben, + amikor gyors interneteléréssel + rendelkezünk. +
+ + + A CD-k írása + + Ezután lemezekre kell írnunk a + letöltött image-eket. Amennyiben ezt egy + másik &os; rendszeren végezzük, ennek + részleteirõl a + számol be (különösen a és a + leírása). + + Ha másik platformon végezzük ezt a + mûveletet, akkor az adott platformon + felkínált CD-író szoftverekkel + kell dolgoznunk. Az image-ek szabványos ISO + formátumúak, amelyet szinte az összes + CD-író alkalmazás ismer. + +
+ + + Ha kíváncsiak vagyunk egy saját &os; + kiadás elkészítésére, + olvassuk el a kiadások + szervezésérõl szóló cikket + (angolul). + + +
+ + + Helyi FTP oldal létrehozása &os; + lemezzel + + + telepítés + hálózat + FTP + + + A &os; lemezeken az FTP oldalakéhoz hasonló + elrendezést találunk. Ez megkönnyíti + a hálózatunkban található + számítógépekhez a &os; + telepítésére használható + helyi FTP oldal létrehozását. + + + + Az FTP oldalnak otthont adó &os; + számítógépen tegyük a CD-t + a meghajtóba, majd csatlakoztassuk a + /cdrom könyvtárba. + + &prompt.root; mount /cdrom + + + + Hozzunk létre egy anonim FTP + hozzáférést az + /etc/passwd állományban. + A &man.vipw.8; segítségével + tehát illesszük be a következõ sort az + /etc/passwd + állományba: + + ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent + + + + Gondoskodjuk róla, hogy az FTP + szolgáltatás engedélyezve legyen az + /etc/inetd.conf + állományban. + + + + Most már bárki, aki képes csatlakozni + ehhez a számítógéphez, a + telepítés típusának ki tudja + választani az FTP-t. Az FTP oldalak + menüjében válassza az Other + (Egyéb) pontot, majd adja meg az + ftp://gépnév + címet. + + + Ha az FTP-n csatlakozó kliensek + rendszerindításhoz használt eszköze + (általában a floppy) verziója nem egyezik + meg tökéletesen a helyi FTP oldalon + találhatóval, akkor a + sysinstall nem engedi a + telepítést. Ha a változatok nem + hasonlóak és ezt felül akarjuk + bírálni, akkor be kell lépnünk az + Options (Beállítások) + menübe, ahol át kell állítanunk a + terjesztés nevét (distribution name) + any (bármelyik)-re. + + + + A fenti megközelítés + kizárólag csak egy tûzfallal védett + helyi hálózaton javasolt. FTP + szolgáltatás létrehozása az + interneten (és nem a helyi hálózatunkban) + levõ számítógépek + számára különbözõ + támadásoknak és egyéb + kellemetlenségeknek teszi ki a + számítógépünket. + Határozottan javasoljuk, hogy ebben az esetben + különösen ügyeljünk a + biztonságra. + + + + + Telepítõfloppyk + létrehozása + + + telepítés + floppy + + + Ha floppylemezrõl kellene telepítenünk + (amit viszont semmiképpen sem + ajánlanánk) egy nem támogatott + hardvereszköz miatt, vagy mert egyszerûen + szeretjük a dolgok nehezebbik oldalát megfogni, + akkor ehhez elõször elõ kell + készítenünk pár lemezt. + + Legalább annyi 1,44 MB-os lemezre van + szükségünk, mint amennyire + ráférnek a base + (alapterjesztés) könyvtárban + található állományok. Ha DOS-ban + hozzuk létre ezeket a lemezeket, akkor a + használatukhoz meg kell + formázni ezeket az &ms-dos; FORMAT + parancsával. &windows; használata esetén + az Windows Explorerben (Intézõben) tudjuk + megformázni a lemezeket (kattintsunk a jobb gombbal az + A: meghajtóra, majd + válasszuk a Format + (Formázás) menüpontot). + + Ne bízzunk a gyárilag + formázott (pre-formatted + jelzésû) lemezekben! Menjünk biztosra + és formázzuk meg mi magunk is lemezeket. A + felhasználóinktól régebben + számtalan olyan panasz érkezett, amely a + helytelenül megformázott lemezbõl fakadt, + ezért erre most kiemelten felhívjuk a + figyelmet. + + A formázás abban az esetben sem bizonyul + rossz ötletnek, ha egy másik &os; gépen + gyártjuk le a lemezeket, habár nem kell + mindegyik lemezre DOS állományrendszert + tennünk. Helyette a bsdlabel + és newfs parancsok + használatával UFS + állományrendszert is tehetünk rájuk, + ahogy (1,44 MB méretû lemezek esetén) + ezt az alábbi parancsok mutatják: + + &prompt.root; fdformat -f 1440 fd0.1440 +&prompt.root; bsdlabel -w fd0.1440 floppy3 +&prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 + + Ezután a többi + állományrendszerhez hasonlóan a lemezeket + tudjuk csatlakoztati és írni. + + Miután megformáztuk a lemezeket, + rájuk kell másolnunk az + állományokat. A terjesztésekhez + tartozó állományokat adott + méretû darabokra szeleteltük, így + kényelmesen ráférnek egy + hagyományos 1,44 MB méretû floppyra. + Menjünk végig az összes floppyn és + mindegyikre pakoljuk fel a lehetõ legtöbb + állományt egészen addig, amíg + így az összes szükséges + terjesztést össze nem szedtük. A floppykon + minden terjesztés kerüljön egy + hozzátartozó alkönyvtárba, + például: a:\base\base.aa, + a:\base\base.ab és így + tovább. + + + Az elsõ lemezre rá kell másolnunk a + base.inf nevû + állományt is, mivel ennek + beolvasásával lesz képes + kitalálni a telepítõ, hogy a + terjesztések összeszedése és + összefûzése során mennyi darabot + keressen. + + + Ahogy elérkezünk a + telepítõeszköz + kiválasztásához a telepítés + folyamatában, ott válasszuk a + Floppy menüpontot, majd + utána kövessük a felbukkanó + üzeneteket. + + + + + Telepítés &ms-dos; + partícióról + + + telepítés + MS-DOS partícióról + + + Amikor egy &ms-dos; partícióról + akarunk telepíteni, + elõkészítés gyanánt + másoljuk a terjesztésekhez tartozó + állományokat a partícióra egy + freebsd könyvtárba. Ez lesz + például a c:\freebsd. + Ebben a könyvtárban igyekezzük minél + jobban megtartani a CD vagy az FTP oldal + könyvtárszerkezetét, ezért erre a + CD-rõl történõ + átmásolásra a DOS + xcopy parancsát javasoljuk. + Például így tudjuk + elõkészíteni a &os; legegyszerûbb + változatának + telepítését: + + C:\> md c:\freebsd +C:\> xcopy e:\bin c:\freebsd\bin\ /s +C:\> xcopy e:\manpages c:\freebsd\manpages\ /s + + A fentiekben feltételeztük, hogy ehhez a + C: meghajtón elég + szabad helyünk van, valamint az + E: meghajtón érjük + el a CD-t. + + Ha nincs CD-meghajtónk, az ftp.FreeBSD.org + címrõl letölthetjük a + terjesztésket. Minden egyes terjesztés + külön könyvtárban + található, tehát például a + base (alap) terjesztés az &rel.current;/base/ + könyvtárban található. + + Mindegyik telepítendõ terjesztést (ami + még elfér) másoljuk át az &ms-dos; + partíció c:\freebsd + könyvtárába — a + telepítéshez egyébként + egyedül a BIN terjesztés + szükséges. + + + + + Telepítõszalag + létrehozása + + + telepítés + QIC/SCSI-szalagról + + + Valószínûleg a szalagos módszer + a legegyszerûbb, egyfajta élõ FTP-s vagy CD-s + telepítés. A telepítõprogram arra + számít, hogy a szalagon az + állományok egymás után + helyezkednek el. Tehát miután beszereztük + a nekünk kellõ terjesztésekhez tartozó + összes állományt, egyszerûen + vegyük fel ezeket a szalagra: + + &prompt.root; cd /freebsd/distdir +&prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 + + Mielõtt telepítenénk, + ellenõrizzük, hogy legyen elég helyünk + valamelyik (a telepítés során majd + kiválasztható átmeneti) + könyvtárban ahhoz, hogy az itt létrehozott + szalag teljes tartalma elférjen + benne. Mivel a szalagok csak szekvenciálisan + érhetõek el, ezért ennél a + módszernél jó sok ideiglenes + tárhelyre lesz szükségünk. + + + A telepítés megkezdése után + a szalagnak már azelõtt a + meghajtóban kell lennie, hogy + rendszerindító floppyról + elindítanánk a rendszert, + máskülönben nem találja meg. + + + + + + Mielõtt hálózatról + telepítenénk + + + telepítés + hálózat + soros (SLIP vagy PPP) + + + telepítés + hálózat + párhuzamos (PLIP) + + + telepítés + hálózat + Ethernet + + + Háromféle hálózati + telepítési mód létezik: Ethernet + (szabványos Ethernet-vezérlõvel), soros + port (SLIP vagy PPP) vagy párhuzamos port (PLIP + (laplink kábel)). + + Valószínûleg az + Ethernet-csatlakozó választásával + érjük el a leggyorsabb hálózati + telepítést. A &os; ismeri a legtöbb PC-s + Ethernet kártyát. Az ismert + kártyák (és a hozzájuk + tartozó beállítások) a &os; egyes + kiadásának hardverjegyzékében + (Hardware Notes) találhatóak meg. Amennyiben + egy támogatott PCMCIA Ethernet kártyát + használunk, mindig a laptop bekapcsolása + elõtt helyezzük be! A &os; + telepítés közben sajnos nem + támogatja a PCMCIA kártyák + menetközbeni behelyezését. + + Ezenkívül még ismernünk kell a + hálózaton kapott IP-címünket, az + általa használt címosztály + hálózati maszkját, a gépünk + nevét. Ha PPP kapcsolaton keresztül + telepítünk és nincs statikus + IP-címünk, akkor minden bizonnyal az + internet-szolgáltatónktól kaptunk egyet + dinamikusan. A konkrét hálózati + beállításokat a hálózatunk + rendszergazdájától is érdemes + megkérdezni. Ha a hálózaton levõ + többi gépre névvel és nem + IP-címmel hivatkozunk, akkor + szükségünk lesz még egy + név(feloldó) szerverre és az internet + eléréséhez egy + átjáró címére is (ha PPP-t + használunk, ez a szolgáltatónk + IP-címe lesz). Ha FTP-rõl HTTP proxy + használatával telepítünk, akkor a + proxy címe is kelleni fog. Ha magunktól nem + vagyunk képesek ezekre a kérdésekre + válaszolni, akkor az ilyen típusú + telepítés megkezdése + elõtt tényleg + segítséget kell kérnünk egy + rendszergazdától vagy az + internet-szolgáltatónktól. + + A SLIP támogatás inkább + primitív, és elsõsorban csak + kötött kapcsolatokra korlátozódik, + mint például egy laptop és egy + másik számítógép közti + soros összekötettetés. A kapcsolatnak + annyiban kell kötöttnek lennie, hogy a SLIP-en + keresztüli telepítés pillanatnyilag nem + ismer a betárcsázást. Ezt a PPP + segítségével tudjuk + megvalósítani, ezért ha tehetjük, + mindig ezt válasszuk a SLIP helyett. + + Ha modemet használunk, akkor a PPP szinte biztosan + megfelel nekünk. Gondoskodjunk róla, hogy + már a telepítés korai szakaszában + rendelkezésünkre áll az + internet-szolgáltatónkkal kapcsolatosan minden + hasznos információ. + + Ha PAP vagy CHAP használatával + kapcsolódunk a szolgáltatónkhoz + (másképp szólva &windows;-ban így + tudunk szkriptek nélkül csatlakozni), + mindössze a dial parancsot kell + kiadnunk a ppp + parancssorában. Minden más esetben tudnunk kell + a modemünk saját AT parancsaival + tárcsázni az + internet-szolgáltatónkat, hiszen ehhez a PPP + tárcsázó csak egy nagyon kezdetleges + terminálemulációt nyújt. Ezzel + kapcsolatban olvassuk el a + kézikönyv és a GYIK + idevágó részeit. Ha gondjaink + akadnának, a naplózás a set log + local ... parancs kiadásával + átirányítható + közvetlenül a képernyõre. + + Ha kötött módon tudunk csatlakozni egy + másik (2.0-R vagy késõbbi + verziójú) &os; géphez, akkor + megpróbálkozhatunk a párhuzamos + laplink kábellel. A párhuzamos + porton keresztüli adatátvitel sebessége a + soros vonalénál jóval nagyobb + (egészen 50 kbyte/mp), ezért vele a + telepítés is gyorsabb. + + + Mielõtt NFS-rõl + telepítenénk + + + telepítés + hálózat + NFS + + + A telepítés NFS-en keresztül szinte + magától értetõdik. + Egyszerûen csak másoljuk a &os; + terjesztéseihez tartozó + állományokat az NFS szerverre és + állítsuk be rá az NFS + telepítõeszközt. + + Ha a szerver csak privilegizált + portokat ismer (ami általában + alapértelmezett a Sun + munkaállomásoknál), a + telepítés megkezdése elõtt az + Options + (Beállítások) menüben be kell + állítani az NFS Secure + (Biztonságos NFS) opciót. + + Ha egy gyenge minõségû és kis + adatátviteli sebességû Ethernet + kártyánk van, akkor emellett még + hasznos lehet beállítani az NFS + Slow (Lassú NFS) opciót is. + + Az NFS-en keresztüli telepítés + mûködéséhez a szervernek + támogatnia kell az alkönyvtárak + csatlakoztatását is, tehát + például ha a &os; &rel.current; + terjesztésünk a + ziggy:/usr/archive/stuff/FreeBSD + könyvtárban található, akkor + ziggy nevû gépnek + lehetõvé kell tennie a + /usr/archive/stuff/FreeBSD + könyvtár közvetlen + csatlakoztatását is, nem csak a + /usr vagy + /usr/archive/stuff + könyvtárakét. + + A &os; /etc/exports + állományában ezt az + beállítással + vezérelhetjük. Más NFS szervereken + esetleg más megszokásokat kell + követnünk. Amennyiben a szervertõl + permission denied + (hozzáférés megtagadva) üzeneteket + kapjuk, valószínû, hogy ezt nem + állítottuk be megfelelõen. + + + +
+
+ + diff --git a/hu_HU.ISO8859-2/books/handbook/install/disk-layout.eps b/hu_HU.ISO8859-2/books/handbook/install/disk-layout.eps new file mode 100644 index 0000000000..199349ad66 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/disk-layout.eps @@ -0,0 +1,20704 @@ +%!PS-Adobe-1.0 +%%BoundingBox: 0 0 595 492 +%%Creator: Qt 2.3.1 +%%CreationDate: Thu Aug 30 17:47:32 2001 +%%Orientation: Portrait +%%Pages: 1 +%%DocumentFonts: ArialMT +%%EndComments +%%BeginProlog +% Prolog copyright 1994-2000 Trolltech. You may copy this prolog in any way +% that is directly related to this document. For other use of this prolog, +% see your licensing agreement for Qt. +/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D/D0 +{0 ED}D/LT{lineto}D/MT{moveto}D/ND/.notdef d/S{stroke}D/F{setfont}D/SW{ +setlinewidth}D/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{ +setmatrix}D/TR{translate}D/SC{aload pop setrgbcolor}D/BSt 0 d/LWi 1 d/PSt 1 d +/Cx 0 d/Cy 0 d/WFi false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d +/nS 0 d/LArr[[][][10 3][3 10][3 3][3 3][5 3 3 3][3 5 3 3][5 3 3 3 3 3][3 5 3 3 +3 3]]d/GPS{PSt 1 ge PSt 5 le and{{LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 +sub get}ifelse}{[]}ifelse}D/QS{PSt 0 ne{LWi SW gsave PCol SC true GPS 0 setdash +S OMo PSt 1 ne and{grestore BkCol SC false GPS dup 0 get setdash S}{grestore} +ifelse}if}D/BDArr[0.06 0.12 0.37 0.50 0.63 0.88 0.94]d/r28{{currentfile read +pop dup 32 gt{exit}if pop}loop 3{currentfile read pop}repeat 0 4{7 bitshift +exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL 0 eq{ +/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB exch +bitshift add}{dup rA 16#fffffff 3 -1 roll bitshift not and exch dup rL exch sub +/rL ED neg rA exch bitshift/rA ED}ifelse}D/rC{/rL 0 d 0{dup 2 index length ge{ +exit}if 1 rB 1 eq{3 rB dup 4 ge{dup rB 1 index 5 ge{1 index 6 ge{1 index 7 ge{ +64 add}if 32 add}if 16 add}if 4 add exch pop}if 1 add 3 mul exch 10 rB 1 add 3 +mul{dup 3 index lt{dup}{2 index}ifelse 4 index 3 index 3 index sub 2 index +getinterval 5 index 4 index 3 -1 roll putinterval dup 4 -1 roll add 3 1 roll 4 +-1 roll exch sub dup 0 eq{exit}if 3 1 roll}loop pop pop}{3 rB 1 add 3 mul{2 +copy 8 rB put 1 add}repeat}ifelse}loop pop}D/rG{/rL 0 d 0{dup 2 index length ge +{exit}if 1 rB 1 eq{3 rB dup 4 ge{dup rB 1 index 5 ge{1 index 6 ge{1 index 7 ge{ +64 add}if 32 add}if 16 add}if 4 add exch pop}if 1 add exch 10 rB 1 add{dup 3 +index lt{dup}{2 index}ifelse 4 index 3 index 3 index sub 2 index getinterval 5 +index 4 index 3 -1 roll putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch +sub dup 0 eq{exit}if 3 1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add} +repeat}ifelse}loop pop}D/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{ +/colorimage where{pop false 3 colorimage}{exec/QCIcolor ED/QCIgray QCIcolor +length 3 idiv string d 0 1 QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex +3 mul d QCIgray QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul +QCIcolor x 2 add get 0.11 mul add add cvi put}for QCIgray image}ifelse}D/defM +matrix d/BF{gsave BSt 1 eq{BCol SC WFi{fill}{eofill}ifelse}if BSt 2 ge BSt 8 le +and{BDArr BSt 2 sub get setgray fill}if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip +}ifelse defM SM pathbbox 3 index 3 index translate 4 2 roll 3 2 roll exch sub/h +ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg RL CP BkCol SC fill}if BCol SC +0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 exch MT w exch LT}for}if BSt 10 eq +BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if BSt 12 eq BSt 14 eq or{w h gt{0 6 w h +add{dup 0 MT h sub h LT}for}{0 6 w h add{dup 0 exch MT w sub w exch LT}for} +ifelse}if BSt 13 eq BSt 14 eq or{w h gt{0 6 w h add{dup h MT h sub 0 LT}for}{0 +6 w h add{dup w exch MT w sub 0 exch LT}for}ifelse}if S}if BSt 24 eq{}if +grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h D0/x D0/y D0/ARC{/ang2 ED/ang1 +ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div neg +scale ang2 0 ge{0 0 w 2 div ang1 ang1 ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 +add arcn}ifelse mat SM}D/C D0/P{NP MT 0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP +PCol SC fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP +MT LT QS}D/HL{1 index DL}D/VL{2 index exch DL}D/R{/h ED/w ED/y ED/x ED NP x y +MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h ED/w ED/y ED/x ED x y MT 0 h RL w +0 RL 0 h neg RL CP}D/CLSTART{/clipTmp matrix CM d defM SM NP}D/CLEND{clip NP +clipTmp SM}D/CLO{grestore gsave defM SM}D/xr D0/yr D0/rx D0/ry D0/rx2 D0/ry2 D0 +/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y w h R}{xr 100 ge yr +100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul 200 div d/rx2 rx 2 mul +d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 x y h add ry2 sub rx2 ry2 +270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 -90 x w add rx2 sub y rx2 ry2 +90 -90 ARC ARC ARC ARC CP BF QS}ifelse}ifelse}D/E{/h ED/w ED/y ED/x ED mat CM +pop x w 2 div add y h 2 div add translate 1 h w div scale NP 0 0 w 2 div 0 360 +arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}D/PIE{/ang2 ED/ang1 ED/h +ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT x y w h ang1 16 div ang2 16 +div ARC CP BF QS}D/CH{16 div exch 16 div exch NP ARC CP BF QS}D/BZ{curveto QS}D +/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 div 3 1 roll}D/SV{BSt LWi PSt Cx Cy +WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D/RS{nS 0 gt{grestore/BkCol ED/PCol +ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/BC +{CRGB BkCol astore pop}D/BR{CRGB BCol astore pop/BSt ED}D/WB{1 W BR}D/NB{0 B BR +}D/PE{setlinejoin setlinecap CRGB PCol astore pop/LWi ED/PSt ED LWi 0 eq{0.25 +/LWi ED}if}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM setmatrix concat}D/qtfindfont{ +true exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 +-1 roll eq{exit}if}forall exch}d/qtdefinefont{dup 1 get/fxscale exch def 2 get +/fslant exch def exch/fencoding exch def[fxscale 0 fslant 1 0 0]makefont +fencoding false eq{}{dup maxlength dict begin{1 index/FID ne{def}{pop pop} +ifelse}forall/Encoding fencoding def currentdict end}ifelse definefont pop}d/MF +{qtfindfont qtdefinefont}D/MSF{findfont exch/slant exch d[1 0 slant 1 0 0] +makefont definefont pop}D/DF{findfont/FONTSIZE 3 -1 roll d[FONTSIZE 0 0 +FONTSIZE -1 mul 0 0]makefont d}D/ty 0 d/Y{/ty ED}D/Tl{NP 1 index exch MT 1 +index 0 rlineto QS}D/T{PCol SC ty MT 1 index dup length exch stringwidth pop 3 +-1 roll exch sub exch div exch 0 exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 +d/OMo false d}D/QP{C restore showpage}D +%%EndProlog +%%BeginSetup +/pageinit { +% 210*297mm (portrait) +0 842 translate 1 -1 scale/defM matrix CM d } d +% Fonts and encodings used +/ArialMTList [ +[ /ArialMT 1.0 0.0 ] + [ /Arial 1.0 0.0 ] + [ /Courier 1 0 ] +] d +%%BeginFont: Arial +%!PS-Adobe-3.0 Resource-Font +%%Copyright: Typeface © The Monotype Corporation plc. Data © The Monotype Corporation plc/Type Solutions Inc. 1990-1992. All Rights Reserved +%%Creator: Converted from TrueType by Qt using PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /ArialMT def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-664 -324 2028 1037]def +/FontType 3 def +/Encoding StandardEncoding def +/FontInfo 10 dict dup begin +/FamilyName (Arial) def +/FullName (Arial) def +/Notice (Typeface © The Monotype Corporation plc. Data © The Monotype Corporation plc/Type Solutions Inc. 1990-1992. All Rights Reserved Arial¨ Trademark of The Monotype Corporation plc registered in the US Pat & TM Off. and elsewhere.) def +/Weight (Regular) def +/Version (Version 2.76) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -217 def +/UnderlineThickness 150 def +end readonly def +/CharStrings 1296 dict dup begin +/G0000{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0001{0 0 0 0 0 0 _sc +}_d +/G0002{278 0 0 0 0 0 _sc +}_d +/space{278 0 0 0 0 0 _sc +}_d +/exclam{278 0 86 0 195 716 _sc +113 178 _m +86 557 _l +86 716 _l +195 716 _l +195 557 _l +169 178 _l +113 178 _l +90 0 _m +90 100 _l +191 100 _l +191 0 _l +90 0 _l +_cl}_d +/quotedbl{355 0 46 462 308 716 _sc +70 462 _m +46 599 _l +46 716 _l +146 716 _l +146 599 _l +124 462 _l +70 462 _l +232 462 _m +208 599 _l +208 716 _l +308 716 _l +308 599 _l +285 462 _l +232 462 _l +_cl}_d +/numbersign{{556 0 10 -11 543 728 _sc +50 -11 _m +93 196 _l +10 196 _l +10 269 _l +107 269 _l +144 446 _l +10 446 _l +10 519 _l +158 519 _l +201 728 _l +274 728 _l +231 519 _l +385 519 _l +428 728 _l +501 728 _l +459 519 _l +543 519 _l +543 446 _l +444 446 _l +408 269 _l +543 269 _l +543 196 _l +393 196 _l +351 -11 _l +277 -11 _l +319 196 _l +166 196 _l +124 -11 _l +50 -11 _l +181 269 _m +}_e{334 269 _l +371 446 _l +217 446 _l +181 269 _l +_cl}_e}_d +/dollar{{556 0 36 -102 509 782 _sc +249 -102 _m +249 -14 _l +205 -8 169 1 142 15 _c +114 29 91 51 71 83 _c +51 114 39 153 36 199 _c +124 215 _l +130 168 142 133 160 111 _c +184 79 214 62 249 59 _c +249 339 _l +213 345 176 359 138 381 _c +110 396 88 417 73 445 _c +58 473 51 504 51 540 _c +51 602 73 653 117 692 _c +147 718 191 734 249 740 _c +249 782 _l +301 782 _l +301 740 _l +351 734 392 719 422 695 _c +460 663 484 619 492 563 _c +401 550 _l +}_e{395 584 384 611 368 629 _c +352 647 329 660 301 666 _c +301 412 _l +345 401 374 392 389 386 _c +416 374 438 359 455 342 _c +472 324 485 304 495 280 _c +504 256 509 231 509 204 _c +509 142 489 91 451 51 _c +412 11 362 -10 301 -13 _c +301 -102 _l +249 -102 _l +249 667 _m +215 661 188 647 168 625 _c +148 603 139 577 139 547 _c +139 517 147 491 164 471 _c +180 451 209 435 249 423 _c +249 667 _l +301 59 _m +335 63 363 77 385 103 _c +407 129 419 160 419 198 _c +419 230 411 255 395 275 _c +379 294 348 311 301 327 _c +301 59 _l +_cl}_e}_d +/percent{{889 0 58 -25 828 728 _sc +58 544 _m +58 595 70 638 96 674 _c +122 710 159 728 208 728 _c +253 728 290 712 320 680 _c +349 648 364 601 364 539 _c +364 478 349 431 319 399 _c +289 366 253 350 209 350 _c +166 350 130 366 101 398 _c +72 430 58 478 58 544 _c +211 667 _m +189 667 170 657 156 639 _c +142 620 135 585 135 535 _c +135 489 142 456 157 438 _c +171 419 189 410 211 410 _c +233 410 251 419 266 438 _c +280 457 288 492 288 542 _c +288 588 280 620 266 639 _c +251 657 233 667 211 667 _c +211 -25 _m +603 728 _l +674 728 _l +284 -25 _l +211 -25 _l +521 168 _m +521 219 533 262 559 298 _c +585 334 622 352 672 352 _c +}_e{716 352 753 336 783 304 _c +813 272 828 225 828 163 _c +828 102 813 55 783 23 _c +753 -9 716 -25 672 -25 _c +628 -25 592 -9 564 23 _c +535 55 521 103 521 168 _c +674 292 _m +652 292 633 282 619 263 _c +605 244 598 209 598 159 _c +598 113 605 81 620 62 _c +634 43 652 34 674 34 _c +696 34 715 43 729 62 _c +743 81 751 116 751 166 _c +751 212 743 244 729 263 _c +714 282 696 292 674 292 _c +_cl}_e}_d +/ampersand{{667 0 43 -16 644 728 _sc +475 84 _m +446 52 414 28 380 12 _c +346 -3 309 -11 270 -11 _c +196 -11 138 13 95 62 _c +60 102 43 147 43 197 _c +43 241 57 281 85 317 _c +113 353 156 384 213 411 _c +181 448 159 478 149 501 _c +138 524 133 546 133 568 _c +133 611 149 648 183 680 _c +217 712 259 728 311 728 _c +359 728 399 713 430 683 _c +461 653 477 617 477 575 _c +477 507 432 449 342 401 _c +470 237 _l +484 265 496 299 504 337 _c +596 317 _l +580 255 558 203 532 163 _c +565 119 602 83 644 53 _c +585 -16 _l +}_e{549 6 513 40 475 84 _c +296 458 _m +334 480 359 499 370 516 _c +381 533 387 552 387 573 _c +387 597 379 616 364 632 _c +348 648 329 656 306 656 _c +282 656 263 648 247 633 _c +231 617 223 599 223 577 _c +223 565 225 553 231 541 _c +237 529 245 516 257 503 _c +296 458 _l +420 154 _m +259 354 _l +211 325 179 298 163 274 _c +146 250 138 226 138 203 _c +138 173 149 143 172 112 _c +195 80 228 65 271 65 _c +297 65 324 73 352 90 _c +380 106 403 128 420 154 _c +_cl}_e}_d +/quotesingle{191 0 44 462 144 716 _sc +66 462 _m +44 596 _l +44 716 _l +144 716 _l +144 596 _l +121 462 _l +66 462 _l +_cl}_d +/parenleft{333 0 61 -209 297 728 _sc +234 -209 _m +185 -148 144 -77 111 4 _c +77 86 61 171 61 259 _c +61 336 73 410 98 482 _c +127 564 172 646 234 728 _c +297 728 _l +257 660 231 611 219 583 _c +199 538 183 491 172 442 _c +158 381 151 320 151 259 _c +151 102 199 -53 297 -209 _c +234 -209 _l +_cl}_d +/parenright{333 0 61 -209 297 728 _sc +124 -209 _m +61 -209 _l +158 -53 207 102 207 259 _c +207 320 200 381 186 441 _c +174 489 159 536 139 582 _c +126 610 100 659 61 728 _c +124 728 _l +184 646 229 564 259 482 _c +284 410 297 336 297 259 _c +297 171 280 86 246 4 _c +212 -77 172 -148 124 -209 _c +_cl}_d +/asterisk{389 0 31 423 354 728 _sc +31 584 _m +54 654 _l +105 635 143 619 167 606 _c +160 665 157 706 157 728 _c +228 728 _l +226 696 222 655 216 607 _c +250 623 288 639 332 654 _c +354 584 _l +312 570 272 561 232 557 _c +252 539 280 509 316 465 _c +258 423 _l +238 449 216 484 191 528 _c +167 482 145 447 127 423 _c +70 465 _l +107 511 134 542 151 557 _c +109 565 69 574 31 584 _c +_cl}_d +/plus{584 0 56 116 528 589 _sc +250 116 _m +250 312 _l +56 312 _l +56 394 _l +250 394 _l +250 589 _l +333 589 _l +333 394 _l +528 394 _l +528 312 _l +333 312 _l +333 116 _l +250 116 _l +_cl}_d +/comma{278 0 83 -141 189 100 _sc +89 0 _m +89 100 _l +189 100 _l +189 0 _l +189 -36 182 -65 169 -88 _c +156 -110 135 -128 107 -141 _c +83 -103 _l +101 -95 115 -83 124 -67 _c +132 -51 137 -28 139 0 _c +89 0 _l +_cl}_d +/hyphen{333 0 32 215 302 303 _sc +32 215 _m +32 303 _l +302 303 _l +302 215 _l +32 215 _l +_cl}_d +/period{278 0 91 0 191 100 _sc +91 0 _m +91 100 _l +191 100 _l +191 0 _l +91 0 _l +_cl}_d +/slash{278 0 0 -11 278 728 _sc +0 -11 _m +208 728 _l +278 728 _l +71 -11 _l +0 -11 _l +_cl}_d +/zero{{556 0 42 -11 508 719 _sc +42 353 _m +42 437 50 505 68 557 _c +85 609 111 649 145 677 _c +179 705 223 719 275 719 _c +313 719 347 711 376 695 _c +404 679 428 657 447 628 _c +466 599 481 564 492 522 _c +502 480 508 423 508 353 _c +508 269 499 201 482 149 _c +465 97 439 58 405 30 _c +371 2 327 -11 275 -11 _c +205 -11 151 13 112 62 _c +65 121 42 218 42 353 _c +132 353 _m +132 235 145 157 173 118 _c +200 79 234 60 275 60 _c +315 60 348 79 376 118 _c +404 157 418 235 418 353 _c +418 471 404 549 376 588 _c +348 626 314 646 274 646 _c +233 646 201 629 177 595 _c +147 551 132 470 132 353 _c +_cl}_e}_d +/one{556 0 109 0 373 719 _sc +373 0 _m +285 0 _l +285 560 _l +263 540 235 519 201 499 _c +167 479 136 464 109 454 _c +109 539 _l +158 562 201 590 238 623 _c +274 655 300 687 316 719 _c +373 719 _l +373 0 _l +_cl}_d +/two{{556 0 29 0 503 719 _sc +503 84 _m +503 0 _l +30 0 _l +29 21 33 41 41 61 _c +53 93 72 124 98 156 _c +124 187 163 223 213 265 _c +291 328 343 378 371 416 _c +398 453 412 488 412 522 _c +412 556 399 586 374 610 _c +349 634 317 646 277 646 _c +235 646 201 633 176 608 _c +150 582 137 547 137 502 _c +47 512 _l +53 579 76 630 116 666 _c +156 701 211 719 279 719 _c +347 719 402 699 442 661 _c +482 623 502 576 502 520 _c +502 491 496 463 484 435 _c +472 407 453 378 426 348 _c +399 317 354 275 291 222 _c +238 178 204 148 189 132 _c +174 116 162 100 152 84 _c +503 84 _l +_cl}_e}_d +/three{{556 0 42 -12 511 719 _sc +42 189 _m +130 201 _l +140 151 157 115 181 93 _c +205 71 235 60 270 60 _c +311 60 346 74 374 103 _c +402 131 417 167 417 209 _c +417 249 403 283 377 309 _c +351 335 317 349 277 349 _c +260 349 239 345 215 339 _c +225 416 _l +231 415 235 415 239 415 _c +276 415 310 424 340 444 _c +370 464 385 494 385 535 _c +385 567 374 593 352 614 _c +330 635 302 646 268 646 _c +234 646 205 635 182 614 _c +159 592 145 560 139 518 _c +51 533 _l +61 592 86 638 124 670 _c +162 702 209 719 266 719 _c +305 719 341 710 374 693 _c +406 676 431 653 449 625 _c +467 596 476 565 476 533 _c +476 501 467 473 451 448 _c +434 422 409 402 377 388 _c +}_e{419 378 451 357 475 327 _c +499 296 511 257 511 211 _c +511 149 488 96 442 53 _c +396 9 339 -12 270 -12 _c +206 -12 154 6 113 44 _c +71 81 48 129 42 189 _c +_cl}_e}_d +/four{556 0 13 0 508 716 _sc +323 0 _m +323 171 _l +13 171 _l +13 252 _l +339 716 _l +411 716 _l +411 252 _l +508 252 _l +508 171 _l +411 171 _l +411 0 _l +323 0 _l +323 252 _m +323 575 _l +99 252 _l +323 252 _l +_cl}_d +/five{{556 0 42 -11 516 706 _sc +42 188 _m +134 195 _l +140 150 156 116 181 94 _c +206 71 236 60 271 60 _c +313 60 349 76 379 108 _c +408 140 423 182 423 235 _c +423 285 408 324 380 353 _c +352 382 315 397 270 397 _c +242 397 216 390 193 377 _c +170 364 152 348 140 328 _c +57 338 _l +126 706 _l +482 706 _l +482 622 _l +197 622 _l +158 430 _l +201 460 246 475 293 475 _c +355 475 408 453 451 410 _c +494 366 516 311 516 243 _c +516 178 497 122 459 75 _c +413 17 351 -11 271 -11 _c +206 -11 153 7 112 43 _c +70 79 47 127 42 188 _c +_cl}_e}_d +/six{{556 0 38 -11 510 719 _sc +498 541 _m +410 534 _l +402 568 391 593 377 609 _c +353 633 323 646 289 646 _c +261 646 236 638 215 623 _c +187 603 166 573 150 535 _c +134 496 125 441 125 369 _c +146 401 172 424 203 440 _c +233 456 265 464 299 464 _c +357 464 407 442 448 399 _c +489 356 510 300 510 232 _c +510 187 500 145 481 107 _c +461 68 435 39 401 19 _c +367 -1 329 -11 286 -11 _c +212 -11 153 15 107 69 _c +61 122 38 211 38 335 _c +38 473 63 573 114 637 _c +158 691 218 719 294 719 _c +350 719 397 703 433 671 _c +469 639 490 596 498 541 _c +139 232 _m +}_e{139 202 145 173 158 145 _c +170 117 188 96 212 82 _c +235 67 259 60 285 60 _c +321 60 353 75 380 105 _c +406 135 420 175 420 227 _c +420 276 406 315 380 344 _c +354 372 321 387 281 387 _c +241 387 208 372 180 344 _c +152 315 139 278 139 232 _c +_cl}_e}_d +/seven{556 0 47 0 511 707 _sc +47 622 _m +47 707 _l +511 707 _l +511 638 _l +465 589 419 524 375 444 _c +330 364 295 281 271 197 _c +253 137 242 71 238 0 _c +147 0 _l +148 56 159 124 180 204 _c +201 284 231 361 271 435 _c +311 509 353 571 398 622 _c +47 622 _l +_cl}_d +/eight{{556 0 41 -11 512 719 _sc +177 388 _m +140 401 113 420 95 445 _c +77 469 69 499 69 534 _c +69 586 87 629 125 665 _c +163 701 213 719 275 719 _c +337 719 388 700 426 664 _c +464 628 483 584 483 532 _c +483 498 474 469 457 445 _c +439 420 413 401 377 388 _c +421 374 454 351 477 319 _c +500 287 512 249 512 205 _c +512 143 490 92 447 51 _c +403 9 346 -11 276 -11 _c +205 -11 148 9 105 51 _c +62 92 41 144 41 207 _c +41 253 52 292 76 324 _c +99 355 133 376 177 388 _c +159 537 _m +159 503 170 475 192 454 _c +214 432 242 422 277 422 _c +311 422 338 432 360 454 _c +382 475 393 501 393 532 _c +393 564 381 591 359 613 _c +337 635 309 646 276 646 _c +242 646 214 635 192 614 _c +170 592 159 567 159 537 _c +}_e{131 207 _m +131 181 137 157 149 134 _c +161 110 178 92 202 79 _c +225 66 250 60 277 60 _c +319 60 353 73 381 100 _c +408 127 422 162 422 204 _c +422 246 408 280 380 308 _c +352 336 316 350 274 350 _c +232 350 198 336 171 309 _c +144 281 131 247 131 207 _c +_cl}_e}_d +/nine{{556 0 42 -11 512 719 _sc +55 166 _m +139 173 _l +146 133 160 105 180 87 _c +200 69 226 60 258 60 _c +284 60 308 66 328 78 _c +348 90 365 107 378 128 _c +391 148 402 176 411 212 _c +420 247 425 283 425 319 _c +425 323 424 329 424 337 _c +406 309 382 286 352 269 _c +322 251 289 243 253 243 _c +194 243 144 264 103 307 _c +62 350 42 407 42 477 _c +42 549 63 608 106 652 _c +148 696 202 719 267 719 _c +313 719 355 706 394 681 _c +432 656 462 620 482 574 _c +502 527 512 460 512 373 _c +512 281 502 208 482 154 _c +462 100 433 59 394 31 _c +354 3 308 -11 256 -11 _c +200 -11 154 4 118 35 _c +82 65 61 109 55 166 _c +415 481 _m +415 531 401 571 374 601 _c +347 631 315 646 277 646 _c +238 646 204 630 175 598 _c +146 566 132 524 132 474 _c +}_e{132 428 145 391 173 363 _c +200 334 234 320 275 320 _c +315 320 349 334 375 363 _c +401 391 415 431 415 481 _c +_cl}_e}_d +/colon{278 0 90 0 190 519 _sc +90 418 _m +90 519 _l +190 519 _l +190 418 _l +90 418 _l +90 0 _m +90 100 _l +190 100 _l +190 0 _l +90 0 _l +_cl}_d +/semicolon{278 0 83 -141 189 519 _sc +89 418 _m +89 519 _l +189 519 _l +189 418 _l +89 418 _l +89 0 _m +89 100 _l +189 100 _l +189 0 _l +189 -36 182 -65 169 -88 _c +156 -110 135 -128 107 -141 _c +83 -103 _l +101 -95 115 -83 124 -67 _c +132 -51 137 -28 139 0 _c +89 0 _l +_cl}_d +/less{584 0 55 110 529 595 _sc +55 313 _m +55 395 _l +529 595 _l +529 508 _l +153 354 _l +529 198 _l +529 110 _l +55 313 _l +_cl}_d +/equal{584 0 56 204 528 503 _sc +528 421 _m +56 421 _l +56 503 _l +528 503 _l +528 421 _l +528 204 _m +56 204 _l +56 286 _l +528 286 _l +528 204 _l +_cl}_d +/greater{584 0 55 110 529 595 _sc +529 313 _m +55 110 _l +55 198 _l +430 354 _l +55 508 _l +55 595 _l +529 395 _l +529 313 _l +_cl}_d +/question{{556 0 44 0 506 728 _sc +230 176 _m +230 188 230 197 230 203 _c +230 237 235 266 245 292 _c +251 310 263 329 279 349 _c +291 363 312 383 342 410 _c +372 437 392 459 402 475 _c +411 491 416 508 416 527 _c +416 561 402 591 375 617 _c +348 643 315 656 277 656 _c +239 656 208 644 183 620 _c +158 596 142 560 134 511 _c +44 521 _l +52 588 76 639 116 675 _c +156 710 210 728 276 728 _c +346 728 401 709 443 671 _c +485 633 506 587 506 533 _c +506 501 498 472 484 446 _c +469 420 440 388 398 350 _c +369 324 350 306 342 294 _c +333 282 326 268 322 252 _c +318 236 315 211 315 176 _c +230 176 _l +225 0 _m +225 100 _l +325 100 _l +325 0 _l +}_e{225 0 _l +_cl}_e}_d +/at{{1015 0 54 -209 979 729 _sc +567 80 _m +545 55 522 35 496 21 _c +470 7 443 0 417 0 _c +388 0 360 8 333 24 _c +305 40 283 66 266 102 _c +248 137 240 176 240 218 _c +240 269 253 321 280 373 _c +306 425 339 464 379 490 _c +418 516 456 529 494 529 _c +522 529 548 521 574 507 _c +600 492 622 469 641 439 _c +658 515 _l +745 515 _l +675 188 _l +665 142 660 116 660 112 _c +660 103 663 95 670 89 _c +676 83 684 80 694 80 _c +711 80 734 89 762 109 _c +799 135 828 170 850 214 _c +872 258 883 303 883 350 _c +883 404 869 454 841 502 _c +813 549 771 587 716 615 _c +661 643 600 658 534 658 _c +457 658 387 640 324 604 _c +261 568 212 517 178 451 _c +143 384 126 313 126 237 _c +126 157 143 88 178 31 _c +212 -26 262 -68 328 -96 _c +394 -123 467 -137 547 -137 _c +}_e{632 -137 703 -122 761 -94 _c +819 -65 862 -31 891 9 _c +979 9 _l +962 -24 933 -58 893 -94 _c +853 -129 805 -157 749 -178 _c +693 -198 626 -209 548 -209 _c +476 -209 409 -199 348 -181 _c +287 -163 235 -135 192 -98 _c +149 -60 117 -18 95 30 _c +67 91 54 157 54 229 _c +54 308 70 384 103 456 _c +143 544 199 611 272 658 _c +345 705 434 729 538 729 _c +618 729 691 712 755 679 _c +819 646 870 597 908 532 _c +939 475 955 414 955 348 _c +955 254 921 170 855 97 _c +796 31 731 -1 661 -1 _c +638 -1 620 2 606 9 _c +592 15 582 25 576 38 _c +572 46 569 60 567 80 _c +331 212 _m +331 167 341 132 362 108 _c +383 83 407 71 435 71 _c +}_e{453 71 472 76 492 87 _c +512 98 532 114 550 136 _c +568 157 583 184 595 217 _c +607 250 613 283 613 317 _c +613 361 602 395 580 420 _c +558 444 531 457 500 457 _c +479 457 459 451 441 441 _c +423 430 405 413 388 389 _c +370 365 356 337 346 304 _c +336 270 331 240 331 212 _c +_cl}_e}_d +/A{667 0 0 0 668 716 _sc +0 0 _m +273 716 _l +375 716 _l +668 0 _l +561 0 _l +477 217 _l +178 217 _l +99 0 _l +0 0 _l +205 294 _m +448 294 _l +373 492 _l +350 552 333 602 322 641 _c +313 595 300 549 284 504 _c +205 294 _l +_cl}_d +/B{{667 0 73 0 614 716 _sc +73 0 _m +73 716 _l +342 716 _l +396 716 440 708 473 694 _c +506 679 532 657 551 627 _c +569 597 579 565 579 533 _c +579 502 570 473 554 446 _c +537 419 512 397 479 381 _c +522 368 555 346 579 316 _c +602 285 614 249 614 208 _c +614 174 606 142 592 114 _c +578 85 560 63 540 47 _c +519 31 493 20 462 12 _c +430 4 392 0 346 0 _c +73 0 _l +168 415 _m +323 415 _l +365 415 395 417 413 423 _c +437 430 455 442 467 459 _c +479 475 486 496 486 521 _c +486 545 480 566 469 584 _c +457 602 441 614 420 621 _c +398 627 362 631 311 631 _c +168 631 _l +168 415 _l +168 84 _m +346 84 _l +376 84 398 85 411 88 _c +}_e{432 92 450 98 465 107 _c +479 116 491 129 501 147 _c +511 164 516 184 516 208 _c +516 234 509 257 495 277 _c +481 297 462 311 438 319 _c +414 327 379 331 333 331 _c +168 331 _l +168 84 _l +_cl}_e}_d +/C{{722 0 50 -11 683 728 _sc +588 251 _m +683 227 _l +663 149 627 89 575 49 _c +523 9 460 -11 386 -11 _c +309 -11 246 4 198 35 _c +149 66 112 111 87 171 _c +62 231 50 295 50 363 _c +50 437 64 502 92 558 _c +120 614 161 656 214 685 _c +266 713 324 728 388 728 _c +459 728 519 709 568 673 _c +617 637 651 586 670 520 _c +577 498 _l +560 550 536 587 505 611 _c +473 635 434 647 386 647 _c +330 647 284 633 247 607 _c +210 581 184 545 169 501 _c +154 457 147 411 147 364 _c +147 302 156 249 174 204 _c +192 158 219 124 257 102 _c +294 80 334 69 378 69 _c +431 69 476 84 513 115 _c +549 145 574 191 588 251 _c +_cl}_e}_d +/D{{722 0 77 0 669 716 _sc +77 0 _m +77 716 _l +324 716 _l +379 716 421 712 451 706 _c +492 696 527 678 556 654 _c +594 622 622 581 641 532 _c +659 482 669 426 669 362 _c +669 307 662 259 650 217 _c +637 175 621 140 601 113 _c +581 85 559 64 535 48 _c +511 32 483 20 450 12 _c +416 4 378 0 335 0 _c +77 0 _l +172 84 _m +325 84 _l +372 84 409 88 436 97 _c +462 106 484 119 500 135 _c +522 157 540 187 552 225 _c +564 263 571 309 571 363 _c +571 438 558 496 534 536 _c +510 576 480 603 445 617 _c +419 626 378 631 322 631 _c +172 631 _l +172 84 _l +_cl}_e}_d +/E{667 0 79 0 613 716 _sc +79 0 _m +79 716 _l +597 716 _l +597 631 _l +174 631 _l +174 412 _l +570 412 _l +570 328 _l +174 328 _l +174 84 _l +613 84 _l +613 0 _l +79 0 _l +_cl}_d +/F{611 0 82 0 565 716 _sc +82 0 _m +82 716 _l +565 716 _l +565 631 _l +177 631 _l +177 410 _l +513 410 _l +513 325 _l +177 325 _l +177 0 _l +82 0 _l +_cl}_d +/G{{778 0 53 -11 715 728 _sc +412 281 _m +412 365 _l +715 365 _l +715 100 _l +669 62 621 34 571 16 _c +521 -2 471 -11 419 -11 _c +348 -11 284 3 227 33 _c +169 63 126 106 97 163 _c +67 220 53 284 53 354 _c +53 424 67 489 97 549 _c +126 609 168 654 223 684 _c +277 713 340 728 412 728 _c +463 728 510 719 552 703 _c +594 686 626 663 650 633 _c +674 603 692 564 705 516 _c +619 492 _l +608 528 595 557 579 578 _c +563 598 540 615 510 628 _c +480 640 448 647 412 647 _c +368 647 331 640 299 627 _c +267 613 242 596 223 575 _c +203 553 188 530 178 504 _c +160 460 151 412 151 360 _c +151 296 162 243 184 200 _c +206 157 238 125 280 104 _c +322 83 366 73 414 73 _c +454 73 494 81 533 97 _c +572 113 602 129 623 147 _c +623 281 _l +412 281 _l +_cl}_e}_d +/H{722 0 80 0 642 716 _sc +80 0 _m +80 716 _l +175 716 _l +175 422 _l +547 422 _l +547 716 _l +642 716 _l +642 0 _l +547 0 _l +547 337 _l +175 337 _l +175 0 _l +80 0 _l +_cl}_d +/I{278 0 93 0 188 716 _sc +93 0 _m +93 716 _l +188 716 _l +188 0 _l +93 0 _l +_cl}_d +/J{500 0 27 -11 422 716 _sc +29 203 _m +114 215 _l +116 160 127 122 145 102 _c +163 82 188 72 221 72 _c +244 72 264 77 282 88 _c +299 99 311 114 318 133 _c +324 151 328 181 328 223 _c +328 716 _l +422 716 _l +422 228 _l +422 168 414 121 400 89 _c +386 56 363 31 332 14 _c +300 -2 263 -11 221 -11 _c +158 -11 110 6 77 42 _c +43 78 27 131 29 203 _c +_cl}_d +/K{667 0 73 0 665 716 _sc +73 0 _m +73 716 _l +168 716 _l +168 361 _l +523 716 _l +652 716 _l +352 426 _l +665 0 _l +540 0 _l +285 362 _l +168 248 _l +168 0 _l +73 0 _l +_cl}_d +/L{556 0 73 0 521 716 _sc +73 0 _m +73 716 _l +168 716 _l +168 84 _l +521 84 _l +521 0 _l +73 0 _l +_cl}_d +/M{833 0 74 0 757 716 _sc +74 0 _m +74 716 _l +217 716 _l +386 209 _l +402 161 413 126 420 103 _c +428 129 441 167 458 218 _c +630 716 _l +757 716 _l +757 0 _l +666 0 _l +666 599 _l +458 0 _l +373 0 _l +166 609 _l +166 0 _l +74 0 _l +_cl}_d +/N{722 0 76 0 640 716 _sc +76 0 _m +76 716 _l +173 716 _l +549 154 _l +549 716 _l +640 716 _l +640 0 _l +543 0 _l +167 563 _l +167 0 _l +76 0 _l +_cl}_d +/O{{778 0 48 -11 733 729 _sc +48 349 _m +48 467 80 560 144 628 _c +208 695 290 729 391 729 _c +457 729 516 713 569 681 _c +622 649 663 605 691 549 _c +719 492 733 428 733 357 _c +733 284 718 219 689 162 _c +659 104 618 61 564 32 _c +510 3 453 -11 391 -11 _c +323 -11 263 5 210 37 _c +156 69 116 113 89 169 _c +61 225 48 285 48 349 _c +146 347 _m +146 261 169 193 215 143 _c +261 93 320 69 390 69 _c +461 69 520 94 566 144 _c +612 194 635 265 635 357 _c +635 415 625 466 605 510 _c +585 553 557 587 519 611 _c +481 635 438 647 392 647 _c +324 647 266 624 218 578 _c +170 532 146 455 146 347 _c +_cl}_e}_d +/P{667 0 77 0 624 716 _sc +77 0 _m +77 716 _l +347 716 _l +394 716 430 713 456 709 _c +491 703 520 691 544 675 _c +568 659 587 636 602 606 _c +616 576 624 544 624 509 _c +624 447 604 396 565 354 _c +526 312 456 291 355 291 _c +172 291 _l +172 0 _l +77 0 _l +172 375 _m +357 375 _l +418 375 461 386 487 409 _c +513 432 526 464 526 506 _c +526 536 518 561 503 583 _c +487 604 467 618 443 625 _c +427 629 397 631 355 631 _c +172 631 _l +172 375 _l +_cl}_d +/Q{{778 0 43 -55 741 729 _sc +620 77 _m +664 46 704 24 741 10 _c +713 -55 _l +661 -36 610 -7 560 32 _c +506 3 448 -11 384 -11 _c +319 -11 260 4 207 35 _c +154 66 113 110 85 166 _c +57 222 43 286 43 358 _c +43 428 57 493 86 551 _c +114 609 155 653 208 683 _c +261 713 320 729 386 729 _c +452 729 511 713 564 681 _c +617 649 658 605 686 549 _c +714 493 728 429 728 358 _c +728 299 719 246 701 199 _c +683 152 656 111 620 77 _c +411 198 _m +465 182 510 159 546 129 _c +602 180 630 256 630 358 _c +630 416 620 466 600 510 _c +580 553 552 587 514 611 _c +476 635 433 647 386 647 _c +315 647 256 622 210 574 _c +164 526 141 454 141 358 _c +}_e{141 264 164 193 210 143 _c +256 93 314 69 386 69 _c +420 69 452 75 482 88 _c +452 107 421 121 388 129 _c +411 198 _l +_cl}_e}_d +/R{{722 0 79 0 709 716 _sc +79 0 _m +79 716 _l +396 716 _l +460 716 508 709 541 696 _c +574 683 601 660 621 628 _c +641 596 651 560 651 521 _c +651 469 634 426 601 392 _c +568 357 517 335 449 326 _c +474 314 493 302 506 290 _c +534 264 560 233 585 195 _c +709 0 _l +590 0 _l +496 149 _l +468 191 445 224 427 247 _c +409 270 393 286 379 295 _c +365 304 350 310 336 314 _c +325 316 307 318 283 318 _c +173 318 _l +173 0 _l +79 0 _l +173 400 _m +377 400 _l +420 400 454 404 478 413 _c +502 422 521 436 534 456 _c +546 476 553 497 553 521 _c +553 554 540 582 516 604 _c +491 626 452 637 400 637 _c +173 637 _l +}_e{173 400 _l +_cl}_e}_d +/S{{667 0 45 -11 615 728 _sc +45 230 _m +134 238 _l +138 202 148 172 164 149 _c +179 126 203 108 236 94 _c +268 80 305 73 346 73 _c +382 73 413 78 441 89 _c +469 99 489 114 503 133 _c +516 151 523 172 523 194 _c +523 216 516 236 503 253 _c +490 269 469 283 439 295 _c +420 303 378 314 312 330 _c +246 346 200 361 174 375 _c +140 393 114 415 97 441 _c +80 467 72 497 72 531 _c +72 567 82 600 103 632 _c +123 663 153 687 193 703 _c +232 719 276 728 324 728 _c +377 728 424 719 464 702 _c +504 685 536 660 558 627 _c +580 593 591 556 593 514 _c +502 507 _l +497 552 481 586 453 610 _c +425 633 383 645 328 645 _c +270 645 229 634 203 613 _c +177 592 164 567 164 537 _c +164 511 173 490 191 474 _c +209 457 257 440 334 422 _c +411 404 464 389 493 377 _c +}_e{534 357 565 333 585 304 _c +605 274 615 240 615 202 _c +615 164 604 128 582 94 _c +560 60 528 34 488 16 _c +447 -2 401 -11 350 -11 _c +285 -11 231 -2 187 16 _c +143 34 109 63 84 101 _c +59 139 46 182 45 230 _c +_cl}_e}_d +/T{611 0 23 0 591 716 _sc +259 0 _m +259 631 _l +23 631 _l +23 716 _l +591 716 _l +591 631 _l +354 631 _l +354 0 _l +259 0 _l +_cl}_d +/U{722 0 79 -11 642 716 _sc +547 716 _m +642 716 _l +642 302 _l +642 230 633 172 617 130 _c +601 88 571 54 529 28 _c +486 2 430 -11 362 -11 _c +294 -11 239 0 197 23 _c +154 45 124 78 106 122 _c +88 166 79 226 79 302 _c +79 716 _l +173 716 _l +173 303 _l +173 240 178 194 190 165 _c +202 135 222 113 250 97 _c +278 81 312 73 354 73 _c +423 73 472 88 502 120 _c +532 152 547 213 547 303 _c +547 716 _l +_cl}_d +/V{667 0 4 0 659 716 _sc +282 0 _m +4 716 _l +107 716 _l +293 196 _l +307 154 320 115 331 79 _c +341 117 354 156 369 196 _c +563 716 _l +659 716 _l +379 0 _l +282 0 _l +_cl}_d +/W{944 0 12 0 933 716 _sc +202 0 _m +12 716 _l +109 716 _l +218 247 _l +230 197 240 148 249 100 _c +267 176 277 220 281 232 _c +417 716 _l +531 716 _l +634 354 _l +659 264 677 179 689 100 _c +698 145 710 197 725 256 _c +837 716 _l +933 716 _l +736 0 _l +645 0 _l +494 545 _l +481 591 474 619 472 629 _c +464 596 457 568 451 545 _c +299 0 _l +202 0 _l +_cl}_d +/X{667 0 4 0 661 716 _sc +4 0 _m +281 373 _l +37 716 _l +150 716 _l +280 532 _l +306 494 325 464 337 444 _c +353 470 372 497 394 526 _c +538 716 _l +641 716 _l +390 378 _l +661 0 _l +543 0 _l +363 255 _l +353 269 342 285 332 303 _c +316 277 304 259 298 250 _c +118 0 _l +4 0 _l +_cl}_d +/Y{667 0 3 0 659 716 _sc +279 0 _m +279 303 _l +3 716 _l +118 716 _l +259 500 _l +285 459 309 419 332 379 _c +353 416 379 458 410 505 _c +549 716 _l +659 716 _l +374 303 _l +374 0 _l +279 0 _l +_cl}_d +/Z{611 0 20 0 586 716 _sc +20 0 _m +20 88 _l +387 546 _l +413 578 437 607 461 631 _c +62 631 _l +62 716 _l +574 716 _l +574 631 _l +172 135 _l +129 84 _l +586 84 _l +586 0 _l +20 0 _l +_cl}_d +/bracketleft{278 0 68 -198 262 716 _sc +68 -198 _m +68 716 _l +262 716 _l +262 643 _l +156 643 _l +156 -125 _l +262 -125 _l +262 -198 _l +68 -198 _l +_cl}_d +/backslash{278 0 0 -11 278 728 _sc +208 -11 _m +0 728 _l +71 728 _l +278 -11 _l +208 -11 _l +_cl}_d +/bracketright{278 0 19 -198 213 716 _sc +213 -198 _m +19 -198 _l +19 -125 _l +125 -125 _l +125 643 _l +19 643 _l +19 716 _l +213 716 _l +213 -198 _l +_cl}_d +/asciicircum{469 0 26 337 443 728 _sc +117 337 _m +26 337 _l +199 728 _l +270 728 _l +443 337 _l +354 337 _l +234 628 _l +117 337 _l +_cl}_d +/underscore{556 0 -14 -198 567 -134 _sc +-14 -198 _m +-14 -134 _l +567 -134 _l +567 -198 _l +-14 -198 _l +_cl}_d +/grave{333 0 43 583 227 720 _sc +227 583 _m +156 583 _l +43 720 _l +161 720 _l +227 583 _l +_cl}_d +/a{{556 0 36 -11 514 530 _sc +404 64 _m +371 36 340 16 310 5 _c +280 -5 247 -11 213 -11 _c +156 -11 112 2 82 30 _c +51 58 36 93 36 137 _c +36 162 41 185 53 206 _c +65 227 80 244 99 257 _c +117 269 138 279 162 286 _c +179 290 205 294 240 299 _c +311 307 363 317 397 329 _c +397 341 397 348 397 352 _c +397 388 389 413 373 428 _c +350 448 316 458 272 458 _c +230 458 200 450 180 436 _c +160 421 146 395 137 359 _c +51 371 _l +59 407 72 437 90 460 _c +108 482 133 500 167 512 _c +201 524 240 530 285 530 _c +329 530 365 524 393 514 _c +421 504 441 491 454 475 _c +467 459 476 440 481 416 _c +484 400 486 373 486 334 _c +}_e{486 217 _l +486 135 487 84 491 62 _c +495 40 502 20 514 0 _c +422 0 _l +412 18 406 39 404 64 _c +397 260 _m +365 247 317 236 253 227 _c +217 221 191 215 176 209 _c +161 203 150 193 142 181 _c +134 168 130 154 130 139 _c +130 115 138 96 156 80 _c +174 64 200 57 234 57 _c +268 57 298 64 324 79 _c +350 94 370 114 383 140 _c +392 160 397 189 397 228 _c +397 260 _l +_cl}_e}_d +/b{{556 0 65 -11 515 716 _sc +147 0 _m +65 0 _l +65 716 _l +153 716 _l +153 460 _l +190 506 237 530 295 530 _c +327 530 357 523 386 511 _c +414 498 438 480 456 457 _c +474 433 489 405 499 372 _c +509 339 515 304 515 267 _c +515 178 493 109 449 61 _c +405 13 352 -11 291 -11 _c +229 -11 181 14 147 65 _c +147 0 _l +146 263 _m +146 201 154 156 171 128 _c +199 83 236 61 284 61 _c +322 61 355 77 383 111 _c +411 144 425 194 425 260 _c +425 327 411 377 385 409 _c +358 441 326 458 288 458 _c +249 458 216 441 188 408 _c +160 374 146 326 146 263 _c +_cl}_e}_d +/c{{500 0 39 -11 491 530 _sc +404 190 _m +491 179 _l +481 119 457 72 418 39 _c +379 5 331 -11 275 -11 _c +203 -11 146 12 103 58 _c +60 104 39 170 39 257 _c +39 313 48 362 67 404 _c +85 446 113 477 151 498 _c +189 519 230 530 275 530 _c +331 530 377 515 413 487 _c +449 459 472 418 482 366 _c +397 353 _l +389 387 374 413 354 431 _c +333 449 308 458 279 458 _c +234 458 198 442 170 410 _c +142 378 129 328 129 260 _c +129 190 142 139 169 108 _c +195 76 230 61 274 61 _c +308 61 337 71 360 92 _c +383 113 398 146 404 190 _c +_cl}_e}_d +/d{{556 0 34 -11 484 716 _sc +402 0 _m +402 65 _l +369 14 321 -11 257 -11 _c +215 -11 177 0 143 23 _c +108 45 81 77 62 118 _c +43 158 34 205 34 259 _c +34 310 42 357 60 399 _c +77 441 103 474 137 496 _c +171 518 210 530 253 530 _c +284 530 312 523 337 510 _c +361 497 381 480 396 459 _c +396 716 _l +484 716 _l +484 0 _l +402 0 _l +125 259 _m +125 192 138 142 166 110 _c +194 77 227 61 266 61 _c +304 61 336 76 363 108 _c +390 139 404 187 404 251 _c +404 322 390 374 363 408 _c +335 441 302 458 262 458 _c +222 458 190 442 164 410 _c +138 378 125 327 125 259 _c +_cl}_e}_d +/e{{556 0 37 -11 515 530 _sc +421 167 _m +512 156 _l +497 102 470 61 432 32 _c +393 3 344 -11 284 -11 _c +208 -11 147 12 103 58 _c +59 104 37 170 37 255 _c +37 342 59 410 104 458 _c +148 506 207 530 279 530 _c +348 530 405 506 449 459 _c +493 412 515 346 515 260 _c +515 254 514 247 514 237 _c +127 237 _l +130 179 146 136 175 106 _c +204 76 240 61 284 61 _c +316 61 344 69 367 86 _c +389 102 407 129 421 167 _c +132 309 _m +422 309 _l +418 353 407 385 389 407 _c +361 441 324 458 280 458 _c +239 458 205 444 178 417 _c +150 390 135 354 132 309 _c +_cl}_e}_d +/f{278 0 9 0 313 728 _sc +87 0 _m +87 450 _l +9 450 _l +9 519 _l +87 519 _l +87 574 _l +87 608 90 634 96 651 _c +104 674 119 693 141 707 _c +162 721 192 728 230 728 _c +255 728 283 725 313 719 _c +299 643 _l +281 645 264 647 248 647 _c +221 647 202 641 191 630 _c +179 618 174 597 174 566 _c +174 519 _l +275 519 _l +275 450 _l +174 450 _l +174 0 _l +87 0 _l +_cl}_d +/g{{556 0 32 -209 489 530 _sc +50 -42 _m +135 -55 _l +139 -81 149 -100 165 -112 _c +187 -128 216 -137 254 -137 _c +294 -137 326 -128 348 -112 _c +370 -96 386 -73 394 -44 _c +398 -26 400 11 400 68 _c +361 22 313 0 256 0 _c +184 0 129 25 90 77 _c +51 128 32 190 32 262 _c +32 311 41 357 59 399 _c +77 441 103 473 137 496 _c +171 518 211 530 257 530 _c +318 530 368 505 408 456 _c +408 519 _l +489 519 _l +489 70 _l +489 -10 480 -66 464 -100 _c +448 -134 422 -160 386 -180 _c +350 -199 307 -209 255 -209 _c +193 -209 143 -195 105 -167 _c +67 -139 48 -98 50 -42 _c +123 269 _m +}_e{123 201 136 151 163 120 _c +190 88 224 73 265 73 _c +305 73 338 88 366 119 _c +393 150 407 199 407 266 _c +407 329 393 377 365 409 _c +337 441 303 458 263 458 _c +224 458 191 442 164 410 _c +136 378 123 331 123 269 _c +_cl}_e}_d +/h{556 0 66 0 488 716 _sc +66 0 _m +66 716 _l +154 716 _l +154 459 _l +194 506 246 530 309 530 _c +347 530 381 522 409 507 _c +437 492 458 471 470 445 _c +482 418 488 379 488 329 _c +488 0 _l +400 0 _l +400 329 _l +400 373 390 405 371 425 _c +352 445 325 455 291 455 _c +265 455 240 448 217 434 _c +194 420 178 402 168 379 _c +158 356 154 324 154 284 _c +154 0 _l +66 0 _l +_cl}_d +/i{222 0 66 0 154 716 _sc +66 615 _m +66 716 _l +154 716 _l +154 615 _l +66 615 _l +66 0 _m +66 519 _l +154 519 _l +154 0 _l +66 0 _l +_cl}_d +/j{222 0 -45 -209 153 716 _sc +65 614 _m +65 716 _l +153 716 _l +153 614 _l +65 614 _l +-45 -200 _m +-28 -125 _l +-10 -129 2 -132 12 -132 _c +30 -132 43 -126 52 -114 _c +60 -102 65 -73 65 -25 _c +65 519 _l +153 519 _l +153 -27 _l +153 -91 144 -135 128 -161 _c +107 -193 72 -209 23 -209 _c +0 -209 -23 -206 -45 -200 _c +_cl}_d +/k{500 0 66 0 496 716 _sc +66 0 _m +66 716 _l +154 716 _l +154 308 _l +362 519 _l +476 519 _l +278 326 _l +496 0 _l +388 0 _l +216 265 _l +154 206 _l +154 0 _l +66 0 _l +_cl}_d +/l{222 0 64 0 152 716 _sc +64 0 _m +64 716 _l +152 716 _l +152 0 _l +64 0 _l +_cl}_d +/m{{833 0 66 0 769 530 _sc +66 0 _m +66 519 _l +145 519 _l +145 446 _l +161 471 182 491 209 507 _c +236 522 267 530 302 530 _c +340 530 371 522 396 506 _c +420 490 438 467 448 439 _c +489 499 542 530 608 530 _c +660 530 699 515 727 487 _c +755 459 769 415 769 356 _c +769 0 _l +681 0 _l +681 327 _l +681 361 678 386 672 402 _c +666 418 656 430 641 440 _c +626 449 609 454 589 454 _c +552 454 522 441 498 417 _c +474 393 462 354 462 301 _c +462 0 _l +374 0 _l +374 337 _l +374 376 366 405 352 425 _c +338 444 314 454 282 454 _c +257 454 234 447 213 434 _c +192 421 177 402 168 377 _c +158 352 154 316 154 269 _c +154 0 _l +66 0 _l +}_e{_cl}_e}_d +/n{556 0 66 0 487 530 _sc +66 0 _m +66 519 _l +145 519 _l +145 445 _l +183 501 238 530 310 530 _c +341 530 370 524 396 513 _c +422 502 442 487 455 469 _c +468 451 477 429 482 404 _c +485 388 487 359 487 319 _c +487 0 _l +399 0 _l +399 315 _l +399 351 395 377 389 395 _c +382 413 370 427 353 438 _c +335 448 315 454 292 454 _c +254 454 221 442 194 418 _c +167 394 154 349 154 283 _c +154 0 _l +66 0 _l +_cl}_d +/o{{556 0 33 -11 519 530 _sc +33 259 _m +33 355 59 426 113 473 _c +157 511 212 530 276 530 _c +347 530 405 506 451 460 _c +496 413 519 349 519 267 _c +519 200 509 147 489 109 _c +469 71 439 41 401 20 _c +363 0 321 -11 276 -11 _c +203 -11 144 12 100 58 _c +55 104 33 171 33 259 _c +124 259 _m +124 193 138 143 167 110 _c +195 77 232 61 276 61 _c +320 61 356 77 385 110 _c +414 143 429 194 429 262 _c +429 326 414 374 385 408 _c +355 441 319 458 276 458 _c +232 458 195 441 167 408 _c +138 375 124 325 124 259 _c +_cl}_e}_d +/p{{556 0 66 -198 516 530 _sc +66 -198 _m +66 519 _l +146 519 _l +146 451 _l +164 477 186 497 210 510 _c +234 523 262 530 296 530 _c +340 530 379 518 413 496 _c +447 473 472 441 490 399 _c +507 357 516 312 516 263 _c +516 210 506 162 487 120 _c +468 77 440 44 404 22 _c +368 0 330 -11 290 -11 _c +260 -11 234 -5 211 7 _c +187 19 168 34 154 54 _c +154 -198 _l +66 -198 _l +146 256 _m +146 189 159 140 186 108 _c +213 76 246 61 284 61 _c +323 61 356 77 384 110 _c +412 143 426 194 426 264 _c +426 330 412 379 385 412 _c +358 444 326 461 288 461 _c +250 461 217 443 189 408 _c +160 373 146 322 146 256 _c +_cl}_e}_d +/q{{556 0 35 -198 484 530 _sc +396 -198 _m +396 55 _l +382 35 363 19 339 7 _c +314 -5 288 -11 261 -11 _c +199 -11 145 13 101 62 _c +57 111 35 178 35 264 _c +35 316 44 362 62 404 _c +80 445 106 476 140 498 _c +174 519 212 530 254 530 _c +318 530 368 503 405 449 _c +405 519 _l +484 519 _l +484 -198 _l +396 -198 _l +125 261 _m +125 194 139 144 167 111 _c +195 77 228 61 268 61 _c +305 61 337 76 364 108 _c +391 140 405 188 405 253 _c +405 321 390 373 362 408 _c +334 443 300 461 262 461 _c +224 461 191 444 165 412 _c +138 380 125 329 125 261 _c +_cl}_e}_d +/r{333 0 65 0 347 530 _sc +65 0 _m +65 519 _l +144 519 _l +144 440 _l +164 476 182 500 200 512 _c +217 524 236 530 256 530 _c +286 530 316 520 347 502 _c +316 420 _l +294 432 273 439 252 439 _c +232 439 215 433 200 422 _c +184 410 173 394 167 374 _c +157 342 153 308 153 271 _c +153 0 _l +65 0 _l +_cl}_d +/s{{500 0 31 -11 461 530 _sc +31 155 _m +118 168 _l +122 133 136 106 158 88 _c +180 70 212 61 252 61 _c +292 61 322 69 342 85 _c +361 101 371 121 371 143 _c +371 163 362 178 345 190 _c +333 198 303 208 255 220 _c +191 236 146 250 121 262 _c +96 274 77 290 64 311 _c +51 332 45 355 45 381 _c +45 404 50 425 61 445 _c +71 465 86 481 104 494 _c +118 504 136 512 160 519 _c +184 526 209 530 236 530 _c +276 530 312 524 343 512 _c +374 500 397 485 412 465 _c +426 445 436 418 442 385 _c +356 373 _l +352 399 340 420 322 435 _c +303 450 277 458 243 458 _c +202 458 173 451 156 438 _c +138 424 130 409 130 391 _c +130 379 133 369 141 360 _c +}_e{148 350 159 343 175 337 _c +183 333 209 326 252 314 _c +314 298 358 284 382 274 _c +406 263 426 247 440 227 _c +454 207 461 182 461 152 _c +461 122 452 95 435 69 _c +418 43 393 24 361 10 _c +329 -4 292 -11 252 -11 _c +184 -11 133 2 98 30 _c +62 58 40 99 31 155 _c +_cl}_e}_d +/t{278 0 18 -6 271 700 _sc +258 79 _m +271 1 _l +245 -3 223 -6 204 -6 _c +172 -6 147 -1 130 8 _c +112 18 100 31 93 48 _c +85 64 82 99 82 152 _c +82 450 _l +18 450 _l +18 519 _l +82 519 _l +82 647 _l +169 700 _l +169 519 _l +258 519 _l +258 450 _l +169 450 _l +169 147 _l +169 121 170 105 174 98 _c +177 91 182 85 189 81 _c +196 77 206 75 219 75 _c +229 75 242 76 258 79 _c +_cl}_d +/u{556 0 64 -11 484 519 _sc +406 0 _m +406 76 _l +365 18 310 -11 241 -11 _c +210 -11 181 -5 155 6 _c +129 17 109 32 96 50 _c +83 68 74 89 69 115 _c +65 132 64 159 64 197 _c +64 519 _l +152 519 _l +152 231 _l +152 185 153 154 157 138 _c +163 115 174 97 192 84 _c +210 70 232 64 259 64 _c +285 64 309 70 333 84 _c +356 97 372 115 382 139 _c +391 162 396 196 396 241 _c +396 519 _l +484 519 _l +484 0 _l +406 0 _l +_cl}_d +/v{500 0 13 0 488 519 _sc +210 0 _m +13 519 _l +105 519 _l +217 208 _l +229 174 240 140 250 104 _c +258 131 269 164 283 202 _c +398 519 _l +488 519 _l +292 0 _l +210 0 _l +_cl}_d +/w{722 0 3 0 714 519 _sc +162 0 _m +3 519 _l +94 519 _l +176 219 _l +207 108 _l +208 113 217 149 234 215 _c +316 519 _l +407 519 _l +484 218 _l +510 119 _l +540 219 _l +629 519 _l +714 519 _l +552 0 _l +461 0 _l +378 311 _l +358 399 _l +253 0 _l +162 0 _l +_cl}_d +/x{500 0 7 0 493 519 _sc +7 0 _m +197 270 _l +21 519 _l +131 519 _l +211 397 _l +225 373 237 354 247 339 _c +261 360 275 379 287 396 _c +374 519 _l +479 519 _l +300 274 _l +493 0 _l +385 0 _l +278 161 _l +250 205 _l +114 0 _l +7 0 _l +_cl}_d +/y{{500 0 16 -209 491 519 _sc +62 -199 _m +52 -116 _l +71 -121 88 -124 103 -124 _c +122 -124 137 -120 149 -114 _c +161 -107 170 -98 178 -87 _c +184 -78 193 -56 205 -21 _c +207 -16 209 -9 213 0 _c +16 519 _l +111 519 _l +219 218 _l +233 180 245 140 256 98 _c +266 138 278 178 292 216 _c +403 519 _l +491 519 _l +294 -8 _l +272 -64 256 -103 245 -125 _c +229 -154 211 -175 191 -189 _c +171 -202 147 -209 119 -209 _c +101 -209 82 -205 62 -199 _c +_cl}_e}_d +/z{500 0 20 0 479 519 _sc +20 0 _m +20 71 _l +350 450 _l +312 448 278 447 250 447 _c +39 447 _l +39 519 _l +463 519 _l +463 460 _l +182 131 _l +128 71 _l +167 74 204 76 239 76 _c +479 76 _l +479 0 _l +20 0 _l +_cl}_d +/braceleft{{334 0 28 -209 311 728 _sc +28 299 _m +52 299 73 306 89 319 _c +105 331 115 349 120 372 _c +125 394 128 433 128 487 _c +128 541 130 577 132 595 _c +134 622 140 644 148 661 _c +156 677 165 690 177 700 _c +189 710 204 717 223 723 _c +235 726 255 728 283 728 _c +311 728 _l +311 651 _l +295 651 _l +261 651 239 645 228 633 _c +216 621 211 593 211 551 _c +211 465 209 412 206 390 _c +200 354 190 327 176 309 _c +162 290 139 273 109 259 _c +145 243 171 220 187 190 _c +203 159 211 109 211 39 _c +211 -23 211 -61 213 -73 _c +215 -95 222 -110 233 -119 _c +243 -128 264 -133 295 -133 _c +311 -133 _l +311 -209 _l +283 -209 _l +251 -209 228 -206 214 -202 _c +}_e{193 -194 176 -181 162 -165 _c +148 -148 139 -127 135 -101 _c +131 -75 128 -34 128 24 _c +128 82 125 123 120 145 _c +115 167 105 185 89 198 _c +73 211 52 218 28 219 _c +28 299 _l +_cl}_e}_d +/bar{260 0 92 -209 168 728 _sc +92 -209 _m +92 728 _l +168 728 _l +168 -209 _l +92 -209 _l +_cl}_d +/braceright{{334 0 23 -209 306 728 _sc +306 299 _m +306 219 _l +280 218 260 211 244 198 _c +228 185 218 167 213 145 _c +207 123 204 85 204 31 _c +204 -23 203 -58 202 -76 _c +198 -103 193 -125 185 -141 _c +177 -157 167 -171 155 -181 _c +143 -191 129 -198 111 -204 _c +98 -207 78 -209 50 -209 _c +23 -209 _l +23 -133 _l +38 -133 _l +72 -133 94 -126 105 -114 _c +116 -102 122 -74 122 -32 _c +122 48 123 100 126 122 _c +131 158 141 186 157 208 _c +173 230 195 247 224 259 _c +186 277 160 300 145 330 _c +129 359 122 409 122 479 _c +122 542 121 580 120 593 _c +117 614 110 629 100 638 _c +89 646 68 651 38 651 _c +23 651 _l +23 728 _l +50 728 _l +}_e{82 728 105 725 120 720 _c +140 712 157 700 171 684 _c +185 667 194 646 198 620 _c +202 594 204 552 204 494 _c +204 435 207 394 213 372 _c +218 350 228 332 244 319 _c +260 306 280 299 306 299 _c +_cl}_e}_d +/asciitilde{584 0 42 272 542 432 _sc +42 272 _m +42 372 _l +76 411 122 431 178 431 _c +198 431 218 428 240 422 _c +261 416 292 405 332 388 _c +354 378 370 372 382 369 _c +393 366 404 365 416 365 _c +437 365 459 371 482 384 _c +504 396 524 412 542 432 _c +542 329 _l +521 309 500 294 479 286 _c +457 277 433 273 407 273 _c +387 273 368 275 350 280 _c +332 284 304 295 266 312 _c +227 329 195 338 170 338 _c +149 338 129 333 111 325 _c +92 316 69 298 42 272 _c +_cl}_d +/Adieresis{667 0 0 0 668 860 _sc +false CharStrings /A get exec +gsave 155 140 translate +false CharStrings /dieresis get exec +grestore }_d +/Aring{667 0 0 0 668 869 _sc +false CharStrings /A get exec +gsave 156 128 translate +false CharStrings /ring get exec +grestore }_d +/Ccedilla{722 0 50 -205 683 728 _sc +false CharStrings /C get exec +gsave 197 0 translate +false CharStrings /cedilla get exec +grestore }_d +/Eacute{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 166 177 translate +false CharStrings /acute get exec +grestore }_d +/Ntilde{722 0 76 0 640 873 _sc +false CharStrings /N get exec +gsave 207 165 translate +false CharStrings /tilde get exec +grestore }_d +/Odieresis{778 0 48 -11 733 860 _sc +false CharStrings /O get exec +gsave 222 140 translate +false CharStrings /dieresis get exec +grestore }_d +/Udieresis{722 0 79 -11 642 860 _sc +false CharStrings /U get exec +gsave 192 140 translate +false CharStrings /dieresis get exec +grestore }_d +/aacute{556 0 36 -11 514 720 _sc +false CharStrings /a get exec +gsave 118 0 translate +false CharStrings /acute get exec +grestore }_d +/agrave{556 0 36 -11 514 720 _sc +false CharStrings /a get exec +gsave 122 0 translate +false CharStrings /grave get exec +grestore }_d +/acircumflex{556 0 36 -11 514 720 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore }_d +/adieresis{556 0 36 -11 514 720 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /dieresis get exec +grestore }_d +/atilde{556 0 36 -11 514 708 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /tilde get exec +grestore }_d +/aring{556 0 36 -11 514 741 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /ring get exec +grestore }_d +/ccedilla{500 0 39 -195 491 530 _sc +false CharStrings /c get exec +gsave 95 10 translate +false CharStrings /cedilla get exec +grestore }_d +/eacute{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/egrave{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 108 0 translate +false CharStrings /grave get exec +grestore }_d +/ecircumflex{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore }_d +/edieresis{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /dieresis get exec +grestore }_d +/iacute{278 0 92 0 272 720 _sc +false CharStrings /dotlessi get exec +gsave 109 0 translate +false CharStrings /acute get exec +grestore }_d +/igrave{278 0 17 0 201 720 _sc +false CharStrings /dotlessi get exec +gsave 99 0 translate +false CharStrings /grave get exec +grestore }_d +/icircumflex{278 0 -7 0 301 720 _sc +false CharStrings /dotlessi get exec +gsave 104 0 translate +false CharStrings /circumflex get exec +grestore }_d +/idieresis{278 0 4 0 278 720 _sc +false CharStrings /dotlessi get exec +gsave 100 0 translate +false CharStrings /dieresis get exec +grestore }_d +/ntilde{556 0 66 0 487 708 _sc +false CharStrings /n get exec +gsave 125 0 translate +false CharStrings /tilde get exec +grestore }_d +/oacute{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/ograve{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 108 0 translate +false CharStrings /grave get exec +grestore }_d +/ocircumflex{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore }_d +/odieresis{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /dieresis get exec +grestore }_d +/otilde{556 0 33 -11 519 708 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /tilde get exec +grestore }_d +/uacute{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 113 0 translate +false CharStrings /acute get exec +grestore }_d +/ugrave{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 128 0 translate +false CharStrings /grave get exec +grestore }_d +/ucircumflex{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /circumflex get exec +grestore }_d +/udieresis{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /dieresis get exec +grestore }_d +/dagger{556 0 36 -168 515 699 _sc +230 -168 _m +230 423 _l +36 423 _l +36 501 _l +230 501 _l +230 699 _l +318 699 _l +318 501 _l +515 501 _l +515 423 _l +318 423 _l +318 -168 _l +230 -168 _l +_cl}_d +/degree{400 0 63 457 333 728 _sc +63 593 _m +63 630 76 662 102 688 _c +128 714 160 728 198 728 _c +235 728 267 714 293 688 _c +319 662 333 630 333 593 _c +333 555 319 523 293 497 _c +267 470 235 457 198 457 _c +160 457 128 470 102 496 _c +76 522 63 555 63 593 _c +116 593 _m +116 570 124 550 140 534 _c +156 518 175 510 198 510 _c +220 510 240 518 256 534 _c +272 550 280 570 280 593 _c +280 615 272 635 256 651 _c +240 667 220 675 198 675 _c +175 675 156 667 140 651 _c +124 635 116 615 116 593 _c +_cl}_d +/cent{{556 0 52 -199 505 716 _sc +363 437 _m +255 63 _l +265 59 275 58 285 58 _c +318 58 347 69 372 92 _c +396 115 411 148 417 190 _c +505 180 _l +494 120 468 72 428 38 _c +388 4 340 -13 286 -13 _c +270 -13 253 -10 236 -6 _c +178 -199 _l +124 -183 _l +180 10 _l +142 28 112 58 88 100 _c +64 142 52 194 52 257 _c +52 315 61 364 80 406 _c +99 447 128 478 166 499 _c +204 520 242 531 282 531 _c +294 531 310 529 331 527 _c +386 716 _l +440 700 _l +385 511 _l +417 497 442 478 459 454 _c +476 430 488 401 496 366 _c +410 353 _l +}_e{401 389 385 417 363 437 _c +312 459 _m +301 459 293 460 287 460 _c +260 460 235 452 212 438 _c +188 423 171 400 160 369 _c +148 338 143 302 143 261 _c +143 218 148 182 158 152 _c +168 122 183 100 203 86 _c +312 459 _l +_cl}_e}_d +/sterling{{556 0 13 -13 528 728 _sc +193 395 _m +347 395 _l +347 323 _l +208 323 _l +214 308 218 294 218 280 _c +218 251 211 221 197 190 _c +183 158 161 126 131 93 _c +156 100 179 104 201 104 _c +228 104 258 100 292 92 _c +348 78 386 72 406 72 _c +430 72 461 81 500 99 _c +528 19 _l +498 6 474 -1 458 -5 _c +442 -9 426 -11 410 -11 _c +396 -11 382 -9 368 -7 _c +359 -5 338 0 305 10 _c +271 20 250 26 240 28 _c +224 30 209 32 194 32 _c +170 32 145 27 119 19 _c +93 11 69 0 47 -13 _c +}_e{13 71 _l +44 88 70 113 92 145 _c +114 177 125 216 125 262 _c +125 282 122 302 117 323 _c +21 323 _l +21 395 _l +97 395 _l +86 431 79 458 76 475 _c +73 491 72 508 72 524 _c +72 591 97 644 147 683 _c +187 713 236 728 293 728 _c +352 728 401 711 439 679 _c +477 647 501 601 510 543 _c +422 530 _l +417 568 402 599 378 622 _c +354 644 325 656 292 656 _c +255 656 225 644 201 621 _c +177 597 166 569 166 537 _c +166 500 175 453 193 395 _c +_cl}_e}_d +/section{{556 0 40 -209 510 728 _sc +70 -33 _m +158 -20 _l +167 -62 181 -92 201 -109 _c +221 -126 248 -135 283 -135 _c +316 -135 342 -126 361 -109 _c +379 -92 389 -72 389 -50 _c +389 -33 383 -18 371 -4 _c +351 19 295 58 205 114 _c +157 144 123 167 104 184 _c +85 200 70 220 58 243 _c +46 265 40 289 40 314 _c +40 345 49 373 69 399 _c +88 425 115 443 149 453 _c +126 475 110 495 100 514 _c +90 532 86 552 86 574 _c +86 615 102 651 135 682 _c +167 712 211 728 265 728 _c +325 728 373 713 407 684 _c +441 655 461 613 469 559 _c +377 549 _l +370 589 358 616 341 632 _c +324 648 301 656 272 656 _c +242 656 218 647 200 631 _c +181 615 172 597 172 578 _c +}_e{172 561 178 545 190 531 _c +208 509 257 473 339 424 _c +390 392 425 369 443 355 _c +466 335 483 315 494 294 _c +504 273 510 251 510 227 _c +510 189 498 158 475 132 _c +461 117 435 102 399 87 _c +425 67 444 45 457 23 _c +470 1 477 -23 477 -49 _c +477 -77 468 -104 452 -130 _c +436 -156 412 -175 382 -189 _c +351 -202 318 -209 283 -209 _c +221 -209 171 -193 135 -162 _c +99 -131 77 -88 70 -33 _c +355 119 _m +379 131 397 146 409 162 _c +421 178 427 194 427 210 _c +427 228 418 248 402 269 _c +384 289 348 317 292 352 _c +247 379 214 401 192 419 _c +}_e{166 403 147 388 136 374 _c +124 359 119 342 119 324 _c +119 303 126 284 142 266 _c +156 247 190 222 243 191 _c +286 165 323 141 355 119 _c +_cl}_e}_d +/bullet{350 0 53 227 301 474 _sc +53 351 _m +53 385 65 414 89 438 _c +113 462 143 474 177 474 _c +211 474 240 462 264 438 _c +288 414 301 385 301 351 _c +301 316 288 287 264 263 _c +240 239 211 227 177 227 _c +143 227 113 239 89 263 _c +65 287 53 316 53 351 _c +_cl}_d +/paragraph{537 0 0 -198 541 716 _sc +198 -198 _m +198 312 _l +136 314 88 334 53 370 _c +17 406 0 453 0 510 _c +0 572 19 622 59 660 _c +98 697 155 716 231 716 _c +541 716 _l +541 631 _l +470 631 _l +470 -198 _l +387 -198 _l +387 631 _l +278 631 _l +278 -198 _l +198 -198 _l +_cl}_d +/germandbls{{611 0 75 -11 580 728 _sc +75 0 _m +75 488 _l +75 547 82 593 96 625 _c +110 657 135 682 169 700 _c +203 718 241 728 283 728 _c +339 728 384 714 416 686 _c +448 658 464 625 464 588 _c +464 571 461 554 455 536 _c +449 518 439 497 424 471 _c +409 445 400 426 396 416 _c +392 406 390 397 390 389 _c +390 379 393 368 401 358 _c +407 348 427 332 460 311 _c +504 282 533 259 548 241 _c +569 216 580 186 580 152 _c +580 106 563 68 529 36 _c +495 4 453 -11 401 -11 _c +360 -11 324 0 293 21 _c +262 43 239 71 224 105 _c +300 141 _l +316 110 332 89 348 77 _c +364 65 382 60 400 60 _c +424 60 445 68 463 85 _c +481 102 490 122 490 145 _c +}_e{490 163 484 178 474 192 _c +467 200 449 215 419 235 _c +365 272 331 300 319 318 _c +306 336 300 355 300 375 _c +300 388 302 401 306 414 _c +310 427 321 448 338 477 _c +354 505 365 527 371 541 _c +376 555 379 568 379 579 _c +379 599 370 616 352 632 _c +334 648 311 656 281 656 _c +246 656 218 645 196 623 _c +174 601 163 555 163 484 _c +163 0 _l +75 0 _l +_cl}_e}_d +/registered{{737 0 1 -8 738 728 _sc +370 728 _m +432 728 492 712 551 680 _c +610 648 656 603 689 544 _c +721 485 738 423 738 359 _c +738 295 721 234 689 176 _c +657 117 611 72 553 40 _c +495 8 434 -8 370 -8 _c +306 -8 244 8 186 40 _c +128 72 82 117 50 176 _c +17 234 1 295 1 359 _c +1 423 17 485 51 544 _c +84 603 130 648 189 680 _c +247 712 308 728 370 728 _c +370 667 _m +318 667 267 653 219 627 _c +170 600 132 562 104 513 _c +76 463 63 412 63 359 _c +63 306 76 255 103 207 _c +130 158 168 120 217 93 _c +266 65 317 52 370 52 _c +423 52 474 65 523 93 _c +571 120 609 158 636 207 _c +663 255 677 306 677 359 _c +677 412 663 463 636 513 _c +608 562 570 600 521 627 _c +471 653 421 667 370 667 _c +208 156 _m +208 552 _l +345 552 _l +391 552 425 548 446 541 _c +466 533 483 521 495 503 _c +507 485 514 465 514 445 _c +514 415 503 390 483 369 _c +462 347 435 335 401 333 _c +415 327 426 320 435 312 _c +}_e{450 296 469 270 493 233 _c +542 156 _l +463 156 _l +428 218 _l +400 267 378 298 361 311 _c +349 319 332 324 310 324 _c +272 324 _l +272 156 _l +208 156 _l +272 379 _m +350 379 _l +387 379 412 384 426 395 _c +439 406 446 421 446 439 _c +446 451 442 461 436 471 _c +430 480 421 487 409 492 _c +397 496 376 499 345 499 _c +272 499 _l +272 379 _l +_cl}_e}_d +/copyright{{737 0 1 -8 738 728 _sc +370 728 _m +432 728 492 712 551 680 _c +610 648 656 603 689 544 _c +721 485 738 423 738 359 _c +738 295 721 234 689 176 _c +657 117 611 72 553 40 _c +495 8 434 -8 370 -8 _c +306 -8 244 8 186 40 _c +128 72 82 117 50 176 _c +17 234 1 295 1 359 _c +1 423 17 485 51 544 _c +84 603 130 648 189 680 _c +247 712 308 728 370 728 _c +370 667 _m +318 667 267 653 219 627 _c +170 600 132 562 104 513 _c +76 463 63 412 63 359 _c +63 306 76 255 103 207 _c +130 158 168 120 217 93 _c +266 65 317 52 370 52 _c +423 52 474 65 523 93 _c +571 120 609 158 636 207 _c +663 255 677 306 677 359 _c +677 412 663 463 636 513 _c +608 562 570 600 521 627 _c +471 653 421 667 370 667 _c +488 300 _m +548 282 _l +538 241 518 208 486 184 _c +454 160 415 148 371 148 _c +313 148 267 166 231 204 _c +195 241 177 292 177 358 _c +177 401 185 438 201 470 _c +217 502 241 526 271 542 _c +301 558 335 566 375 566 _c +}_e{417 566 453 555 482 535 _c +510 514 530 486 541 451 _c +483 437 _l +473 461 458 479 439 492 _c +420 505 398 512 373 512 _c +335 512 304 498 280 472 _c +256 445 244 407 244 357 _c +244 307 255 269 278 244 _c +301 218 331 206 367 206 _c +396 206 422 214 444 231 _c +466 247 481 270 488 300 _c +_cl}_e}_d +/trademark{1000 0 110 318 871 716 _sc +239 318 _m +239 657 _l +110 657 _l +110 716 _l +435 716 _l +435 657 _l +305 657 _l +305 318 _l +239 318 _l +479 318 _m +479 716 _l +577 716 _l +678 398 _l +775 716 _l +871 716 _l +871 318 _l +810 318 _l +810 652 _l +708 318 _l +647 318 _l +541 657 _l +541 318 _l +479 318 _l +_cl}_d +/acute{333 0 108 583 289 720 _sc +108 583 _m +173 720 _l +289 720 _l +181 583 _l +108 583 _l +_cl}_d +/dieresis{333 0 30 620 304 720 _sc +30 620 _m +30 720 _l +122 720 _l +122 620 _l +30 620 _l +212 620 _m +212 720 _l +304 720 _l +304 620 _l +212 620 _l +_cl}_d +/notequal{549 0 38 -13 511 720 _sc +242 204 _m +147 -13 _l +81 -13 _l +176 204 _l +38 204 _l +38 286 _l +212 286 _l +271 421 _l +38 421 _l +38 503 _l +307 503 _l +403 720 _l +468 720 _l +373 503 _l +511 503 _l +511 421 _l +337 421 _l +278 286 _l +511 286 _l +511 204 _l +242 204 _l +_cl}_d +/AE{1000 0 0 0 945 716 _sc +0 0 _m +345 716 _l +932 716 _l +932 631 _l +572 631 _l +572 411 _l +907 411 _l +907 327 _l +572 327 _l +572 84 _l +945 84 _l +945 0 _l +477 0 _l +477 207 _l +201 207 _l +103 0 _l +0 0 _l +241 291 _m +477 291 _l +477 631 _l +406 631 _l +241 291 _l +_cl}_d +/Oslash{{778 0 41 -28 741 742 _sc +610 650 _m +692 742 _l +741 701 _l +655 604 _l +683 562 701 526 711 495 _c +724 454 731 408 731 357 _c +731 284 716 219 686 162 _c +656 104 615 61 561 32 _c +507 3 451 -11 391 -11 _c +346 -11 305 -5 269 7 _c +241 16 208 35 171 63 _c +89 -28 _l +41 12 _l +126 108 _l +94 156 73 198 62 232 _c +51 266 46 308 46 356 _c +46 430 60 495 90 553 _c +119 610 160 653 213 683 _c +266 713 325 728 390 728 _c +434 728 472 722 505 710 _c +537 698 572 678 610 650 _c +552 584 _m +521 608 494 625 471 634 _c +448 642 421 647 391 647 _c +}_e{319 647 260 622 214 574 _c +167 526 144 454 144 358 _c +144 320 147 286 155 257 _c +160 235 171 209 188 177 _c +552 584 _l +592 534 _m +229 128 _l +254 107 277 93 298 85 _c +326 74 356 69 388 69 _c +459 69 518 94 564 144 _c +610 194 633 264 633 355 _c +633 423 619 482 592 534 _c +_cl}_e}_d +/infinity{{713 0 75 189 640 510 _sc +336 396 _m +370 439 397 467 417 481 _c +443 500 470 510 499 510 _c +533 510 565 497 595 473 _c +625 448 640 408 640 353 _c +640 314 634 284 623 262 _c +611 240 594 222 571 209 _c +547 195 523 189 499 189 _c +470 189 443 198 417 217 _c +397 231 370 259 336 303 _c +292 247 245 219 195 219 _c +162 219 134 231 110 256 _c +86 281 75 312 75 350 _c +75 386 86 417 110 442 _c +134 467 162 480 195 480 _c +245 480 292 452 336 396 _c +370 350 _m +398 306 424 276 448 260 _c +462 249 479 244 498 244 _c +}_e{522 244 543 253 560 271 _c +576 289 585 314 585 348 _c +585 382 576 409 559 427 _c +542 445 521 455 496 455 _c +480 455 465 450 451 441 _c +432 428 405 398 370 350 _c +303 350 _m +277 382 256 402 240 412 _c +224 421 209 426 195 426 _c +176 426 160 419 148 406 _c +135 392 129 374 129 351 _c +129 327 135 309 148 295 _c +161 281 177 275 196 275 _c +229 275 265 300 303 350 _c +_cl}_e}_d +/plusminus{549 0 38 0 511 600 _sc +233 127 _m +233 324 _l +38 324 _l +38 405 _l +233 405 _l +233 600 _l +316 600 _l +316 405 _l +511 405 _l +511 324 _l +316 324 _l +316 127 _l +233 127 _l +511 0 _m +38 0 _l +38 82 _l +511 82 _l +511 0 _l +_cl}_d +/lessequal{549 0 38 52 512 654 _sc +38 372 _m +38 454 _l +512 654 _l +512 566 _l +136 413 _l +512 257 _l +512 169 _l +38 372 _l +511 52 _m +38 52 _l +38 133 _l +511 133 _l +511 52 _l +_cl}_d +/greaterequal{549 0 38 52 512 654 _sc +512 372 _m +38 169 _l +38 257 _l +413 413 _l +38 566 _l +38 654 _l +512 454 _l +512 372 _l +511 52 _m +38 52 _l +38 133 _l +511 133 _l +511 52 _l +_cl}_d +/yen{{556 0 0 0 553 716 _sc +233 0 _m +233 159 _l +30 159 _l +30 227 _l +233 227 _l +233 296 _l +30 296 _l +30 369 _l +197 369 _l +0 716 _l +96 716 _l +238 464 _l +254 435 266 410 275 389 _c +282 406 295 432 315 468 _c +449 716 _l +553 716 _l +355 369 _l +522 369 _l +522 296 _l +321 296 _l +321 227 _l +522 227 _l +522 159 _l +321 159 _l +321 0 _l +233 0 _l +_cl}_e}_d +/mu{{576 0 78 -198 497 519 _sc +497 519 _m +497 0 _l +418 0 _l +418 62 _l +401 35 384 17 368 8 _c +345 -4 319 -11 289 -11 _c +261 -11 237 -6 217 4 _c +201 12 183 28 165 52 _c +165 -198 _l +78 -198 _l +78 519 _l +165 519 _l +165 299 _l +165 219 169 167 177 143 _c +185 119 199 101 219 87 _c +238 73 260 67 285 67 _c +311 67 334 74 354 88 _c +374 102 389 121 398 144 _c +406 166 411 217 411 297 _c +411 519 _l +497 519 _l +_cl}_e}_d +/partialdiff{{494 0 27 -11 475 728 _sc +208 556 _m +142 585 _l +164 636 192 673 224 695 _c +256 717 287 728 318 728 _c +342 728 365 721 385 708 _c +405 695 420 681 430 665 _c +445 639 456 608 464 573 _c +471 538 475 498 475 452 _c +475 358 461 275 433 202 _c +405 128 367 74 319 40 _c +271 6 224 -11 178 -11 _c +133 -11 97 3 69 33 _c +41 62 27 103 27 157 _c +27 231 52 294 102 346 _c +166 413 271 448 419 451 _c +417 505 413 547 407 576 _c +400 604 389 626 374 642 _c +358 658 340 666 319 666 _c +299 666 279 657 260 641 _c +240 625 223 596 208 556 _c +417 389 _m +337 384 279 373 242 355 _c +205 337 175 309 151 269 _c +127 229 115 188 115 148 _c +115 120 123 98 140 81 _c +156 63 176 55 198 55 _c +}_e{222 55 248 64 276 82 _c +314 106 345 144 369 196 _c +393 247 409 311 417 389 _c +_cl}_e}_d +/summation{713 0 60 -209 677 728 _sc +68 728 _m +672 728 _l +672 648 _l +189 648 _l +486 270 _l +169 -131 _l +677 -131 _l +677 -209 _l +60 -209 _l +60 -118 _l +362 266 _l +68 643 _l +68 728 _l +_cl}_d +/product{823 0 79 -209 744 728 _sc +79 728 _m +744 728 _l +744 -209 _l +650 -209 _l +650 643 _l +173 643 _l +173 -209 _l +79 -209 _l +79 728 _l +_cl}_d +/G009b{549 0 0 0 549 519 _sc +0 519 _m +549 519 _l +549 442 _l +470 442 _l +470 0 _l +377 0 _l +377 442 _l +169 442 _l +169 0 _l +78 0 _l +78 442 _l +0 442 _l +0 519 _l +_cl}_d +/integral{{274 0 0 -106 273 910 _sc +98 463 _m +106 722 _l +109 772 117 813 131 846 _c +139 867 151 883 167 894 _c +182 904 197 910 212 910 _c +228 910 243 904 255 893 _c +267 882 273 870 273 857 _c +273 841 268 829 260 820 _c +252 811 241 807 229 807 _c +217 807 204 812 191 824 _c +183 830 177 834 172 834 _c +166 834 162 831 158 827 _c +154 822 152 814 152 803 _c +152 789 153 765 157 732 _c +169 598 175 490 175 407 _c +175 385 172 290 167 120 _c +164 24 149 -40 123 -74 _c +105 -95 84 -106 58 -106 _c +}_e{40 -106 26 -100 16 -89 _c +5 -78 0 -64 0 -47 _c +0 -32 4 -20 12 -12 _c +20 -4 31 0 44 0 _c +56 0 67 -5 77 -15 _c +87 -25 95 -30 102 -30 _c +107 -30 111 -27 115 -23 _c +119 -19 121 -11 121 0 _c +121 12 119 31 116 57 _c +104 159 98 295 98 463 _c +_cl}_e}_d +/ordfeminine{{370 0 23 364 351 728 _sc +268 417 _m +228 381 186 364 143 364 _c +105 364 76 374 55 394 _c +33 414 23 439 23 471 _c +23 487 25 500 31 512 _c +36 524 44 534 54 543 _c +64 552 77 559 94 565 _c +105 569 121 572 142 576 _c +214 586 _l +237 590 253 594 261 596 _c +260 618 258 634 254 642 _c +250 650 242 656 230 662 _c +218 668 203 671 184 671 _c +158 671 139 665 126 655 _c +113 644 105 629 103 610 _c +36 626 _l +40 655 54 679 79 699 _c +103 718 139 728 185 728 _c +238 728 276 718 298 698 _c +320 678 331 648 331 610 _c +331 493 _l +331 463 _l +331 419 337 389 351 373 _c +}_e{278 373 _l +272 386 268 401 268 417 _c +260 539 _m +242 534 211 528 167 521 _c +137 517 118 510 109 502 _c +100 494 96 483 96 471 _c +96 457 101 446 112 437 _c +123 427 139 423 159 423 _c +183 423 203 429 221 442 _c +239 454 250 470 256 489 _c +258 495 260 512 260 539 _c +_cl}_e}_d +/ordmasculine{365 0 22 361 342 728 _sc +182 728 _m +229 728 267 711 297 679 _c +327 646 342 601 342 544 _c +342 487 327 442 297 410 _c +267 377 229 361 183 361 _c +135 361 97 377 67 409 _c +37 441 22 485 22 542 _c +22 600 36 646 66 679 _c +96 711 134 728 182 728 _c +182 663 _m +156 663 134 653 118 635 _c +102 616 94 586 94 544 _c +94 503 102 473 119 454 _c +135 435 156 426 182 426 _c +208 426 229 435 245 454 _c +261 473 270 504 270 547 _c +270 586 261 615 245 634 _c +229 653 208 663 182 663 _c +_cl}_d +/Omega{{768 0 62 0 720 734 _sc +242 78 _m +206 100 180 121 162 142 _c +133 172 111 209 96 251 _c +80 293 73 340 73 392 _c +73 455 86 513 112 567 _c +138 621 175 662 225 691 _c +274 719 331 734 395 734 _c +504 734 588 692 646 610 _c +688 549 710 476 710 391 _c +710 336 701 288 684 246 _c +666 204 643 167 615 137 _c +597 118 573 98 542 78 _c +720 81 _l +720 0 _l +439 0 _l +439 86 _l +465 99 486 112 500 125 _c +523 144 543 167 559 195 _c +575 222 588 251 596 282 _c +604 313 609 345 609 379 _c +609 424 601 469 585 515 _c +569 560 544 594 511 618 _c +478 642 439 654 393 654 _c +330 654 282 634 248 596 _c +}_e{200 540 177 469 177 381 _c +177 310 191 249 221 199 _c +251 148 292 111 344 88 _c +344 0 _l +62 0 _l +62 82 _l +242 78 _l +_cl}_e}_d +/ae{{889 0 33 -11 849 530 _sc +847 159 _m +830 104 802 62 763 33 _c +724 3 676 -11 618 -11 _c +576 -11 540 -3 509 12 _c +478 27 450 51 425 85 _c +391 51 357 27 323 12 _c +288 -3 250 -11 210 -11 _c +154 -11 110 3 79 32 _c +48 60 33 95 33 137 _c +33 165 41 191 57 215 _c +73 239 96 258 125 271 _c +153 284 199 295 263 303 _c +311 309 352 317 386 327 _c +386 335 386 341 386 347 _c +386 387 377 416 360 433 _c +343 449 313 458 271 458 _c +243 458 219 454 199 447 _c +179 440 165 430 156 418 _c +146 405 139 385 133 358 _c +47 368 _l +56 406 69 436 86 458 _c +103 480 128 498 160 511 _c +192 523 229 530 272 530 _c +326 530 370 522 403 506 _c +422 496 438 481 452 460 _c +}_e{472 483 496 500 522 512 _c +548 524 580 530 618 530 _c +670 530 714 517 749 492 _c +783 466 809 433 825 391 _c +841 349 849 307 849 267 _c +849 260 848 250 848 237 _c +473 237 _l +473 190 479 156 490 135 _c +501 113 519 96 543 82 _c +567 68 593 61 622 61 _c +655 61 683 70 707 89 _c +730 108 746 135 755 170 _c +847 159 _l +473 309 _m +758 309 _l +753 360 738 398 714 422 _c +689 446 657 458 618 458 _c +576 458 543 444 517 418 _c +491 392 476 355 473 309 _c +387 260 _m +361 249 309 237 230 225 _c +194 219 169 210 155 200 _c +135 184 126 164 126 140 _c +126 116 134 97 152 81 _c +169 65 194 58 228 58 _c +}_e{265 58 297 67 325 85 _c +353 103 371 127 380 155 _c +384 171 387 206 387 260 _c +_cl}_e}_d +/oslash{{611 0 63 -38 549 550 _sc +449 488 _m +497 550 _l +544 516 _l +492 449 _l +512 421 526 395 534 373 _c +544 340 549 302 549 259 _c +549 161 521 89 466 43 _c +421 7 367 -11 305 -11 _c +253 -11 208 1 168 27 _c +117 -38 _l +71 -3 _l +124 65 _l +104 87 91 109 83 131 _c +69 167 63 207 63 252 _c +63 350 87 420 135 464 _c +183 508 239 530 303 530 _c +329 530 354 526 377 520 _c +399 513 423 502 449 488 _c +399 423 _m +}_e{369 446 338 458 306 458 _c +262 458 226 441 197 408 _c +167 374 153 325 153 259 _c +153 210 161 169 179 137 _c +399 423 _l +436 376 _m +217 91 _l +242 71 271 61 303 61 _c +348 61 385 77 415 110 _c +444 143 459 193 459 260 _c +459 284 457 306 453 325 _c +450 338 444 355 436 376 _c +_cl}_e}_d +/questiondown{{611 0 77 -208 539 519 _sc +358 519 _m +358 418 _l +258 418 _l +258 519 _l +358 519 _l +352 342 _m +352 331 353 323 353 317 _c +353 281 348 251 338 226 _c +330 207 319 188 303 169 _c +291 155 270 134 240 108 _c +209 81 189 60 180 44 _c +171 28 167 11 167 -7 _c +167 -41 180 -71 207 -97 _c +234 -123 267 -136 306 -136 _c +342 -136 373 -124 399 -101 _c +424 -77 441 -41 449 7 _c +539 -2 _l +530 -68 506 -118 466 -154 _c +426 -190 373 -208 307 -208 _c +237 -208 181 -189 139 -151 _c +97 -113 77 -67 77 -13 _c +77 17 84 46 99 72 _c +113 98 142 130 185 168 _c +213 194 232 213 241 225 _c +249 237 256 250 260 266 _c +264 282 267 307 268 342 _c +}_e{352 342 _l +_cl}_e}_d +/exclamdown{333 0 113 -196 222 519 _sc +218 519 _m +218 418 _l +117 418 _l +117 519 _l +218 519 _l +195 340 _m +222 -38 _l +222 -196 _l +113 -196 _l +113 -38 _l +139 340 _l +195 340 _l +_cl}_d +/logicalnot{584 0 56 207 528 503 _sc +528 207 _m +445 207 _l +445 421 _l +56 421 _l +56 503 _l +528 503 _l +528 207 _l +_cl}_d +/radical{549 0 41 -37 549 913 _sc +513 913 _m +549 913 _l +396 -37 _l +154 460 _l +58 416 _l +41 447 _l +188 521 _l +386 119 _l +513 913 _l +_cl}_d +/florin{{556 0 22 -209 530 729 _sc +22 -197 _m +40 -121 _l +72 -128 97 -132 114 -132 _c +131 -132 144 -127 154 -118 _c +163 -108 170 -88 176 -58 _c +263 450 _l +165 450 _l +176 519 _l +274 519 _l +286 583 _l +293 622 300 649 308 664 _c +318 684 332 699 351 711 _c +369 723 394 729 425 729 _c +451 729 486 722 530 710 _c +513 635 _l +479 643 454 647 438 647 _c +419 647 405 642 396 633 _c +387 624 380 603 374 569 _c +364 519 _l +464 519 _l +452 450 _l +352 450 _l +259 -82 _l +}_e{250 -130 236 -163 216 -181 _c +196 -199 168 -209 132 -209 _c +101 -209 64 -205 22 -197 _c +_cl}_e}_d +/approxequal{{549 0 25 184 524 521 _sc +25 360 _m +25 460 _l +59 499 105 519 161 519 _c +180 519 200 516 222 510 _c +243 504 274 493 314 477 _c +336 467 353 460 364 458 _c +375 455 386 454 398 454 _c +419 454 441 460 464 473 _c +486 485 506 501 524 521 _c +524 417 _l +503 397 482 383 461 374 _c +439 365 415 361 389 361 _c +369 361 351 363 333 368 _c +315 372 287 383 249 401 _c +210 418 178 427 152 427 _c +131 427 111 422 93 413 _c +75 404 52 386 25 360 _c +25 184 _m +25 284 _l +59 322 105 342 161 342 _c +180 342 200 339 222 334 _c +243 328 274 317 314 300 _c +336 290 353 284 364 281 _c +375 278 386 277 398 277 _c +419 277 441 283 464 296 _c +486 308 506 324 524 344 _c +}_e{524 240 _l +503 220 482 206 461 198 _c +439 189 415 185 389 185 _c +369 185 351 187 333 191 _c +315 195 287 206 249 224 _c +210 241 178 250 152 250 _c +131 250 111 245 93 236 _c +75 227 52 210 25 184 _c +_cl}_e}_d +/Delta{612 0 13 0 599 677 _sc +599 0 _m +13 0 _l +319 677 _l +599 0 _l +483 40 _m +289 512 _l +74 40 _l +483 40 _l +_cl}_d +/guillemotleft{556 0 65 35 484 480 _sc +166 258 _m +292 35 _l +221 35 _l +65 258 _l +221 480 _l +293 480 _l +166 258 _l +355 258 _m +484 35 _l +410 35 _l +257 258 _l +410 480 _l +484 480 _l +355 258 _l +_cl}_d +/guillemotright{556 0 68 35 487 480 _sc +386 258 _m +259 480 _l +331 480 _l +487 258 _l +331 35 _l +259 35 _l +386 258 _l +197 258 _m +68 480 _l +142 480 _l +295 258 _l +142 35 _l +68 35 _l +197 258 _l +_cl}_d +/ellipsis{1000 0 117 0 884 100 _sc +117 0 _m +117 100 _l +217 100 _l +217 0 _l +117 0 _l +450 0 _m +450 100 _l +550 100 _l +550 0 _l +450 0 _l +783 0 _m +783 100 _l +884 100 _l +884 0 _l +783 0 _l +_cl}_d +/Agrave{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 175 177 translate +false CharStrings /grave get exec +grestore }_d +/Atilde{667 0 0 0 668 873 _sc +false CharStrings /A get exec +gsave 167 165 translate +false CharStrings /tilde get exec +grestore }_d +/Otilde{778 0 48 -11 733 873 _sc +false CharStrings /O get exec +gsave 224 165 translate +false CharStrings /tilde get exec +grestore }_d +/OE{{1000 0 63 -11 968 728 _sc +968 84 _m +968 0 _l +547 0 _l +547 104 _l +503 27 438 -11 352 -11 _c +254 -11 179 26 129 101 _c +85 167 63 253 63 359 _c +63 463 86 551 132 622 _c +178 692 252 728 352 728 _c +438 728 503 691 547 619 _c +547 716 _l +953 716 _l +953 631 _l +636 631 _l +636 413 _l +928 413 _l +928 329 _l +636 329 _l +636 84 _l +968 84 _l +352 651 _m +318 651 286 640 255 619 _c +223 598 200 566 184 523 _c +168 479 161 422 161 352 _c +}_e{161 253 179 180 217 134 _c +254 87 299 64 352 64 _c +404 64 448 87 486 133 _c +523 179 542 256 542 364 _c +542 463 523 536 485 582 _c +447 628 403 651 352 651 _c +_cl}_e}_d +/oe{{944 0 40 -11 908 530 _sc +478 85 _m +452 53 424 29 392 13 _c +360 -3 324 -11 284 -11 _c +210 -11 151 12 107 58 _c +62 104 40 169 40 253 _c +40 307 49 356 68 400 _c +87 444 116 476 155 498 _c +194 519 237 530 285 530 _c +330 530 369 520 403 502 _c +436 483 461 459 478 431 _c +498 461 525 485 558 503 _c +590 521 627 530 667 530 _c +739 530 797 505 841 456 _c +885 407 907 334 907 236 _c +524 236 _l +524 182 539 139 569 108 _c +598 76 634 61 678 61 _c +710 61 738 70 761 88 _c +784 106 801 133 812 169 _c +900 156 _l +886 102 859 61 821 32 _c +783 3 735 -11 677 -11 _c +633 -11 593 -2 559 14 _c +525 31 498 55 478 85 _c +130 260 _m +130 199 141 153 165 122 _c +}_e{195 81 234 61 282 61 _c +324 61 360 78 390 112 _c +420 146 435 196 435 261 _c +435 325 420 374 390 408 _c +360 441 324 458 282 458 _c +253 458 227 450 203 434 _c +179 418 161 394 149 363 _c +136 331 130 297 130 260 _c +527 308 _m +814 308 _l +810 357 795 394 769 420 _c +743 445 711 458 673 458 _c +633 458 600 444 573 418 _c +546 391 531 354 527 308 _c +_cl}_e}_d +/endash{556 0 -1 224 554 294 _sc +-1 224 _m +-1 294 _l +554 294 _l +554 224 _l +-1 224 _l +_cl}_d +/emdash{1000 0 0 224 1000 294 _sc +0 224 _m +0 294 _l +1000 294 _l +1000 224 _l +0 224 _l +_cl}_d +/quotedblleft{333 0 41 494 294 728 _sc +135 596 _m +135 494 _l +41 494 _l +41 574 _l +41 618 46 649 56 669 _c +70 695 91 714 121 728 _c +143 694 _l +125 686 111 675 103 660 _c +94 645 89 624 89 596 _c +135 596 _l +286 596 _m +286 494 _l +192 494 _l +192 574 _l +192 618 197 649 208 669 _c +221 695 242 714 272 728 _c +294 694 _l +276 686 262 675 254 660 _c +246 645 241 624 240 596 _c +286 596 _l +_cl}_d +/quotedblright{333 0 35 489 288 723 _sc +42 621 _m +42 723 _l +137 723 _l +137 643 _l +137 599 132 567 122 548 _c +108 522 86 502 56 489 _c +35 523 _l +52 530 65 541 74 557 _c +82 573 87 594 88 621 _c +42 621 _l +194 621 _m +194 723 _l +288 723 _l +288 643 _l +288 599 283 567 273 548 _c +259 522 237 502 208 489 _c +186 523 _l +203 530 216 541 225 557 _c +233 573 238 594 240 621 _c +194 621 _l +_cl}_d +/quoteleft{222 0 63 494 165 728 _sc +157 596 _m +157 494 _l +63 494 _l +63 574 _l +63 618 68 649 78 669 _c +92 695 113 714 143 728 _c +165 694 _l +147 686 133 675 125 660 _c +116 645 111 624 111 596 _c +157 596 _l +_cl}_d +/quoteright{222 0 53 489 155 723 _sc +61 621 _m +61 723 _l +155 723 _l +155 643 _l +155 599 150 567 140 548 _c +126 522 104 502 74 489 _c +53 523 _l +70 530 83 541 92 557 _c +100 573 105 594 106 621 _c +61 621 _l +_cl}_d +/divide{549 0 38 156 511 550 _sc +224 450 _m +224 550 _l +324 550 _l +324 450 _l +224 450 _l +511 312 _m +38 312 _l +38 394 _l +511 394 _l +511 312 _l +224 156 _m +224 256 _l +324 256 _l +324 156 _l +224 156 _l +_cl}_d +/lozenge{494 0 23 0 472 694 _sc +268 694 _m +472 346 _l +268 0 _l +214 0 _l +23 346 _l +214 694 _l +268 694 _l +242 647 _m +76 346 _l +242 46 _l +417 346 _l +242 647 _l +_cl}_d +/ydieresis{500 0 16 -209 491 720 _sc +false CharStrings /y get exec +gsave 89 0 translate +false CharStrings /dieresis get exec +grestore }_d +/Ydieresis{667 0 3 0 659 860 _sc +false CharStrings /Y get exec +gsave 164 140 translate +false CharStrings /dieresis get exec +grestore }_d +/fraction{167 0 -221 -27 392 728 _sc +-221 -27 _m +315 728 _l +392 728 _l +-145 -27 _l +-221 -27 _l +_cl}_d +/Euro{{556 0 -13 -11 541 728 _sc +386 647 _m +331 647 285 633 248 607 _c +226 591 206 569 188 541 _c +170 511 159 483 156 457 _c +489 457 _l +476 391 _l +148 391 _l +147 384 147 378 147 372 _c +147 346 147 331 148 327 _c +462 327 _l +449 261 _l +158 261 _l +172 186 205 133 257 103 _c +294 80 334 69 378 69 _c +439 69 487 85 521 117 _c +521 16 _l +480 -2 435 -11 386 -11 _c +}_e{239 -11 140 49 88 171 _c +77 195 68 225 61 261 _c +-13 261 _l +0 327 _l +51 327 _l +50 340 50 355 50 371 _c +50 377 50 384 50 391 _c +-13 391 _l +0 457 _l +57 457 _l +77 563 129 639 214 685 _c +266 713 324 728 388 728 _c +448 728 499 714 541 688 _c +521 598 _l +481 630 436 647 386 647 _c +_cl}_e}_d +/guilsinglleft{333 0 45 35 271 480 _sc +142 257 _m +271 35 _l +199 35 _l +45 257 _l +199 480 _l +271 480 _l +142 257 _l +_cl}_d +/guilsinglright{333 0 45 35 266 480 _sc +174 259 _m +45 480 _l +118 480 _l +266 262 _l +118 35 _l +45 35 _l +174 259 _l +_cl}_d +/Uf001{{500 0 11 0 432 728 _sc +89 0 _m +89 451 _l +11 451 _l +11 519 _l +89 519 _l +89 569 _l +89 620 100 659 122 687 _c +144 714 180 728 228 728 _c +260 728 289 724 317 717 _c +303 643 _l +285 645 270 647 256 647 _c +225 647 204 641 193 629 _c +182 617 177 591 177 552 _c +177 519 _l +278 519 _l +278 451 _l +177 451 _l +177 0 _l +89 0 _l +344 615 _m +344 716 _l +432 716 _l +432 615 _l +344 615 _l +344 0 _m +344 519 _l +432 519 _l +}_e{432 0 _l +344 0 _l +_cl}_e}_d +/Uf002{{500 0 11 0 431 728 _sc +89 0 _m +89 451 _l +11 451 _l +11 519 _l +89 519 _l +89 569 _l +89 620 100 659 122 687 _c +144 714 180 728 228 728 _c +260 728 289 724 317 717 _c +303 643 _l +285 645 270 647 256 647 _c +225 647 204 641 193 629 _c +182 617 177 591 177 552 _c +177 519 _l +278 519 _l +278 451 _l +177 451 _l +177 0 _l +89 0 _l +343 0 _m +343 716 _l +431 716 _l +431 0 _l +343 0 _l +_cl}_e}_d +/daggerdbl{556 0 36 -168 517 706 _sc +232 -168 _m +232 12 _l +36 12 _l +36 90 _l +232 90 _l +232 444 _l +36 444 _l +36 523 _l +232 523 _l +232 706 _l +320 706 _l +320 523 _l +517 523 _l +517 444 _l +320 444 _l +320 90 _l +517 90 _l +517 12 _l +320 12 _l +320 -168 _l +232 -168 _l +_cl}_d +/periodcentered{278 0 90 302 190 402 _sc +90 302 _m +90 402 _l +190 402 _l +190 302 _l +90 302 _l +_cl}_d +/quotesinglbase{222 0 53 -131 155 102 _sc +61 0 _m +61 102 _l +155 102 _l +155 21 _l +155 -21 150 -52 140 -72 _c +126 -98 104 -117 74 -131 _c +53 -97 _l +70 -89 83 -78 92 -63 _c +100 -47 105 -26 106 0 _c +61 0 _l +_cl}_d +/quotedblbase{333 0 35 -131 288 102 _sc +42 0 _m +42 102 _l +137 102 _l +137 21 _l +137 -21 132 -52 122 -72 _c +108 -98 86 -117 56 -131 _c +35 -97 _l +52 -89 65 -78 74 -63 _c +82 -47 87 -26 88 0 _c +42 0 _l +194 0 _m +194 102 _l +288 102 _l +288 21 _l +288 -21 283 -52 273 -72 _c +259 -98 237 -117 208 -131 _c +186 -97 _l +203 -89 216 -78 225 -63 _c +233 -47 238 -26 240 0 _c +194 0 _l +_cl}_d +/perthousand{{1000 0 18 -25 982 728 _sc +156 -25 _m +450 728 _l +514 728 _l +221 -25 _l +156 -25 _l +18 537 _m +18 601 30 648 56 678 _c +82 707 116 722 158 722 _c +199 722 233 707 259 677 _c +285 647 298 601 298 539 _c +298 475 286 426 264 394 _c +241 362 206 346 159 346 _c +117 346 83 361 57 391 _c +31 421 18 470 18 537 _c +90 533 _m +90 483 96 449 109 432 _c +122 415 139 407 161 407 _c +179 407 194 414 205 429 _c +219 448 226 483 226 534 _c +226 583 219 618 205 639 _c +193 654 178 662 159 662 _c +138 662 122 654 112 639 _c +}_e{97 618 90 583 90 533 _c +373 164 _m +373 228 385 275 411 305 _c +436 335 470 350 512 350 _c +553 350 587 335 613 305 _c +639 275 653 229 653 166 _c +653 102 641 54 618 22 _c +595 -9 560 -25 513 -25 _c +471 -25 438 -10 412 19 _c +386 49 373 97 373 164 _c +445 160 _m +445 110 451 77 464 60 _c +476 42 493 34 515 34 _c +534 34 549 41 560 56 _c +574 76 581 111 581 161 _c +581 211 573 246 559 266 _c +547 281 532 289 513 289 _c +493 289 477 281 467 267 _c +452 246 445 210 445 160 _c +702 164 _m +}_e{702 228 714 275 740 305 _c +765 335 799 350 841 350 _c +883 350 917 335 943 305 _c +969 275 982 229 982 166 _c +982 102 970 54 948 22 _c +925 -9 890 -25 842 -25 _c +800 -25 767 -10 741 19 _c +715 49 702 97 702 164 _c +774 160 _m +774 110 780 77 793 60 _c +806 42 823 34 844 34 _c +863 34 878 41 889 56 _c +903 76 910 111 910 161 _c +910 211 902 246 888 266 _c +877 281 862 289 842 289 _c +822 289 806 281 796 267 _c +781 246 774 210 774 160 _c +_cl}_e}_d +/Acircumflex{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 156 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Ecircumflex{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 177 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Aacute{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 156 177 translate +false CharStrings /acute get exec +grestore }_d +/Edieresis{667 0 79 0 613 860 _sc +false CharStrings /E get exec +gsave 178 140 translate +false CharStrings /dieresis get exec +grestore }_d +/Egrave{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 188 177 translate +false CharStrings /grave get exec +grestore }_d +/Iacute{278 0 69 0 249 896 _sc +false CharStrings /I get exec +gsave -39 177 translate +false CharStrings /acute get exec +grestore }_d +/Icircumflex{278 0 -15 0 293 896 _sc +false CharStrings /I get exec +gsave -27 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Idieresis{278 0 2 0 276 860 _sc +false CharStrings /I get exec +gsave -27 140 translate +false CharStrings /dieresis get exec +grestore }_d +/Igrave{278 0 26 0 210 896 _sc +false CharStrings /I get exec +gsave -16 177 translate +false CharStrings /grave get exec +grestore }_d +/Oacute{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 222 177 translate +false CharStrings /acute get exec +grestore }_d +/Ocircumflex{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 222 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Ograve{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 220 177 translate +false CharStrings /grave get exec +grestore }_d +/Uacute{722 0 79 -11 642 896 _sc +false CharStrings /U get exec +gsave 191 177 translate +false CharStrings /acute get exec +grestore }_d +/Ucircumflex{722 0 79 -11 642 896 _sc +false CharStrings /U get exec +gsave 191 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Ugrave{722 0 79 -11 642 896 _sc +false CharStrings /U get exec +gsave 190 177 translate +false CharStrings /grave get exec +grestore }_d +/dotlessi{278 0 97 0 185 519 _sc +97 0 _m +97 519 _l +185 519 _l +185 0 _l +97 0 _l +_cl}_d +/circumflex{333 0 12 583 321 720 _sc +168 666 _m +113 583 _l +12 583 _l +118 720 _l +211 720 _l +321 583 _l +222 583 _l +168 666 _l +_cl}_d +/tilde{333 0 3 595 330 708 _sc +3 595 _m +3 629 12 656 31 676 _c +49 696 73 707 103 707 _c +123 707 150 698 185 680 _c +204 670 219 666 231 666 _c +241 666 249 668 255 674 _c +260 680 264 691 267 708 _c +330 708 _l +329 670 320 642 302 624 _c +284 606 261 597 234 597 _c +214 597 187 606 153 624 _c +131 636 115 642 105 642 _c +94 642 85 638 79 630 _c +71 622 68 610 68 595 _c +3 595 _l +_cl}_d +/macron{333 0 14 599 319 671 _sc +14 599 _m +14 671 _l +319 671 _l +319 599 _l +14 599 _l +_cl}_d +/breve{333 0 22 588 311 715 _sc +251 715 _m +311 715 _l +306 674 291 643 266 621 _c +241 599 208 588 167 588 _c +125 588 91 598 67 620 _c +42 642 27 673 22 715 _c +83 715 _l +87 693 95 676 109 665 _c +123 654 141 649 164 649 _c +190 649 210 654 224 665 _c +237 675 246 692 251 715 _c +_cl}_d +/dotaccent{333 0 112 583 221 692 _sc +112 583 _m +112 692 _l +221 692 _l +221 583 _l +112 583 _l +_cl}_d +/ring{333 0 79 562 255 741 _sc +79 653 _m +79 677 87 697 105 715 _c +122 732 143 741 167 741 _c +191 741 211 732 229 714 _c +246 696 255 675 255 651 _c +255 626 246 605 229 588 _c +211 570 191 562 167 562 _c +143 562 122 570 105 588 _c +87 605 79 627 79 653 _c +116 653 _m +116 637 121 624 131 614 _c +141 604 154 599 168 599 _c +182 599 194 604 204 614 _c +214 624 220 637 220 652 _c +220 666 214 679 204 689 _c +194 699 182 705 168 705 _c +154 705 141 699 131 689 _c +121 679 116 667 116 653 _c +_cl}_d +/cedilla{333 0 52 -205 264 11 _sc +105 -74 _m +131 11 _l +196 11 _l +180 -40 _l +208 -43 229 -51 243 -65 _c +257 -79 264 -94 264 -112 _c +264 -136 252 -157 228 -176 _c +204 -195 169 -205 123 -205 _c +96 -205 72 -203 52 -199 _c +58 -142 _l +78 -143 94 -144 104 -144 _c +134 -144 155 -139 168 -131 _c +177 -124 182 -116 182 -107 _c +182 -101 180 -95 176 -91 _c +172 -86 166 -82 156 -79 _c +146 -76 129 -74 105 -74 _c +_cl}_d +/hungarumlaut{333 0 28 583 373 720 _sc +28 583 _m +87 720 _l +202 720 _l +99 583 _l +28 583 _l +198 583 _m +260 720 _l +373 720 _l +271 583 _l +198 583 _l +_cl}_d +/ogonek{333 0 89 -207 303 12 _sc +109 12 _m +170 12 _l +157 -16 151 -43 151 -67 _c +151 -89 157 -107 171 -121 _c +184 -135 201 -142 221 -142 _c +246 -142 273 -134 303 -119 _c +303 -177 _l +286 -185 268 -192 248 -198 _c +228 -204 210 -207 196 -207 _c +164 -207 138 -197 118 -177 _c +98 -157 89 -131 89 -99 _c +89 -71 95 -34 109 12 _c +_cl}_d +/caron{333 0 20 583 329 720 _sc +175 637 _m +229 720 _l +329 720 _l +219 583 _l +125 583 _l +20 720 _l +120 720 _l +175 637 _l +_cl}_d +/Lslash{556 0 0 0 521 716 _sc +71 276 _m +0 216 _l +0 297 _l +71 358 _l +71 716 _l +166 716 _l +166 438 _l +328 576 _l +328 494 _l +166 357 _l +166 84 _l +521 84 _l +521 0 _l +71 0 _l +71 276 _l +_cl}_d +/lslash{222 0 1 0 218 716 _sc +65 280 _m +1 227 _l +1 304 _l +65 357 _l +65 716 _l +152 716 _l +152 432 _l +218 488 _l +218 411 _l +152 355 _l +152 0 _l +65 0 _l +65 280 _l +_cl}_d +/Scaron{667 0 45 -11 615 894 _sc +false CharStrings /S get exec +gsave 145 174 translate +false CharStrings /caron get exec +grestore }_d +/scaron{500 0 31 -11 461 720 _sc +false CharStrings /s get exec +gsave 72 0 translate +false CharStrings /caron get exec +grestore }_d +/Zcaron{611 0 20 0 586 894 _sc +false CharStrings /Z get exec +gsave 135 174 translate +false CharStrings /caron get exec +grestore }_d +/zcaron{500 0 20 0 479 720 _sc +false CharStrings /z get exec +gsave 90 0 translate +false CharStrings /caron get exec +grestore }_d +/brokenbar{260 0 92 -209 168 728 _sc +168 728 _m +168 342 _l +92 342 _l +92 728 _l +168 728 _l +168 176 _m +168 -209 _l +92 -209 _l +92 176 _l +168 176 _l +_cl}_d +/Eth{{722 0 0 0 669 716 _sc +77 0 _m +77 326 _l +0 326 _l +0 390 _l +77 390 _l +77 716 _l +324 716 _l +379 716 421 712 451 706 _c +492 696 527 678 556 654 _c +594 622 622 581 641 532 _c +659 482 669 426 669 362 _c +669 288 657 225 634 173 _c +611 121 583 83 551 59 _c +519 35 482 18 440 8 _c +416 2 381 0 335 0 _c +77 0 _l +172 84 _m +325 84 _l +372 84 409 88 436 97 _c +462 106 484 118 500 134 _c +522 156 539 186 552 224 _c +564 262 571 308 571 363 _c +571 419 564 463 552 497 _c +540 530 523 557 503 577 _c +483 597 460 611 436 619 _c +411 627 373 631 322 631 _c +172 631 _l +172 390 _l +}_e{369 390 _l +369 326 _l +172 326 _l +172 84 _l +_cl}_e}_d +/eth{{556 0 36 -11 516 716 _sc +150 716 _m +256 716 _l +280 698 300 681 317 666 _c +422 716 _l +444 666 _l +360 625 _l +464 505 516 382 516 254 _c +516 172 493 107 448 60 _c +402 12 345 -11 275 -11 _c +192 -11 127 20 81 83 _c +51 124 36 180 36 252 _c +36 337 57 403 99 449 _c +141 495 193 519 256 519 _c +275 519 292 517 306 513 _c +320 509 338 501 360 490 _c +348 513 337 531 329 545 _c +320 558 307 574 291 594 _c +156 532 _l +135 582 _l +251 635 _l +219 664 186 691 150 716 _c +425 258 _m +}_e{425 320 410 368 380 401 _c +350 434 314 451 272 451 _c +229 451 194 434 166 401 _c +138 368 125 318 125 250 _c +125 186 139 139 168 107 _c +196 75 232 60 275 60 _c +316 60 351 76 381 110 _c +410 144 425 193 425 258 _c +_cl}_e}_d +/Yacute{667 0 3 0 659 896 _sc +false CharStrings /Y get exec +gsave 163 177 translate +false CharStrings /acute get exec +grestore }_d +/yacute{500 0 16 -209 491 720 _sc +false CharStrings /y get exec +gsave 97 0 translate +false CharStrings /acute get exec +grestore }_d +/Thorn{{667 0 77 0 624 716 _sc +77 0 _m +77 716 _l +172 716 _l +172 570 _l +347 570 _l +394 570 431 567 457 563 _c +491 557 521 545 545 529 _c +569 513 588 490 602 460 _c +616 430 624 398 624 363 _c +624 302 604 251 565 209 _c +526 167 456 146 355 146 _c +172 146 _l +172 0 _l +77 0 _l +172 230 _m +357 230 _l +418 230 461 241 487 264 _c +513 286 526 318 526 360 _c +526 389 518 414 503 436 _c +488 458 468 472 444 479 _c +428 483 398 486 355 486 _c +172 486 _l +172 230 _l +_cl}_e}_d +/thorn{{556 0 66 -198 516 716 _sc +66 -198 _m +66 716 _l +154 716 _l +154 464 _l +177 488 198 505 216 514 _c +239 524 266 530 296 530 _c +340 530 379 518 413 496 _c +447 473 472 441 490 399 _c +507 357 516 312 516 263 _c +516 209 506 161 487 119 _c +468 77 440 44 404 22 _c +368 0 330 -11 291 -11 _c +263 -11 238 -6 215 4 _c +197 12 177 29 154 54 _c +154 -198 _l +66 -198 _l +146 256 _m +146 189 159 140 186 108 _c +213 76 246 61 284 61 _c +323 61 356 77 384 110 _c +412 143 426 194 426 264 _c +426 330 412 379 385 412 _c +358 444 326 461 288 461 _c +250 461 217 443 189 408 _c +160 373 146 322 146 256 _c +_cl}_e}_d +/minus{584 0 56 312 528 394 _sc +528 312 _m +56 312 _l +56 394 _l +528 394 _l +528 312 _l +_cl}_d +/multiply{584 0 79 141 504 566 _sc +79 200 _m +232 354 _l +79 507 _l +139 566 _l +292 413 _l +445 566 _l +503 507 _l +351 354 _l +504 201 _l +445 141 _l +292 294 _l +138 141 _l +79 200 _l +_cl}_d +/onesuperior{333 0 52 358 232 725 _sc +162 358 _m +162 628 _l +128 602 92 583 52 573 _c +52 633 _l +72 639 95 651 120 669 _c +144 686 164 705 180 725 _c +232 725 _l +232 358 _l +162 358 _l +_cl}_d +/twosuperior{{333 0 12 358 316 725 _sc +12 358 _m +14 376 21 395 35 414 _c +55 442 89 473 136 507 _c +183 541 211 562 220 572 _c +232 585 238 599 238 613 _c +238 629 232 642 221 652 _c +209 662 192 667 170 667 _c +148 667 132 663 122 655 _c +111 647 102 633 96 611 _c +22 619 _l +32 655 48 681 71 699 _c +94 716 128 725 172 725 _c +221 725 257 715 280 696 _c +302 676 314 653 314 625 _c +314 597 304 572 286 548 _c +271 530 238 502 186 464 _c +158 444 139 429 128 417 _c +316 417 _l +316 358 _l +12 358 _l +_cl}_e}_d +/threesuperior{{333 0 16 349 315 725 _sc +16 454 _m +87 461 _l +93 441 102 428 113 421 _c +127 411 143 406 163 406 _c +185 406 204 412 218 425 _c +232 437 239 453 239 471 _c +239 487 233 500 221 510 _c +209 520 190 525 162 525 _c +158 525 152 524 146 524 _c +141 523 137 523 135 523 _c +146 577 _l +172 577 191 581 203 591 _c +215 601 222 613 222 627 _c +222 639 217 649 207 657 _c +197 665 182 670 164 670 _c +145 670 130 666 120 659 _c +110 652 101 639 94 621 _c +24 632 _l +37 666 54 690 74 704 _c +94 718 124 725 164 725 _c +210 725 244 716 266 698 _c +287 680 298 659 298 633 _c +}_e{298 615 292 599 281 585 _c +269 571 253 561 231 555 _c +259 547 280 535 294 519 _c +308 503 315 484 315 462 _c +315 432 302 405 276 383 _c +250 360 214 349 167 349 _c +121 349 86 358 62 376 _c +38 394 22 420 16 454 _c +_cl}_e}_d +/onehalf{{834 0 52 -27 816 728 _sc +111 -27 _m +649 728 _l +726 728 _l +188 -27 _l +111 -27 _l +162 358 _m +162 628 _l +128 602 92 583 52 573 _c +52 633 _l +72 639 95 651 120 669 _c +144 686 164 705 180 725 _c +232 725 _l +232 358 _l +162 358 _l +512 -14 _m +514 3 522 21 536 40 _c +556 68 589 99 636 133 _c +683 167 711 189 720 199 _c +732 212 738 226 738 240 _c +738 256 732 268 721 278 _c +709 288 692 293 670 293 _c +648 293 632 289 622 282 _c +611 274 602 260 596 238 _c +522 246 _l +}_e{532 282 548 308 572 326 _c +595 343 628 352 672 352 _c +721 352 757 342 780 323 _c +802 303 814 280 814 252 _c +814 224 804 199 786 175 _c +771 156 738 128 686 91 _c +658 71 639 55 628 44 _c +816 44 _l +816 -14 _l +512 -14 _l +_cl}_e}_d +/onequarter{{834 0 52 -27 819 728 _sc +123 -27 _m +661 728 _l +737 728 _l +200 -27 _l +123 -27 _l +162 358 _m +162 628 _l +128 602 92 583 52 573 _c +52 633 _l +72 639 95 651 120 669 _c +144 686 164 705 180 725 _c +232 725 _l +232 358 _l +162 358 _l +698 -14 _m +698 60 _l +511 60 _l +511 120 _l +709 352 _l +769 352 _l +769 113 _l +819 113 _l +819 60 _l +769 60 _l +769 -14 _l +698 -14 _l +698 113 _m +698 241 _l +586 113 _l +}_e{698 113 _l +_cl}_e}_d +/threequarters{{834 0 16 -27 819 728 _sc +123 -27 _m +661 728 _l +737 728 _l +200 -27 _l +123 -27 _l +16 454 _m +87 461 _l +93 441 102 428 113 421 _c +127 411 143 406 163 406 _c +185 406 204 412 218 425 _c +232 437 239 453 239 471 _c +239 487 233 500 221 510 _c +209 520 190 525 163 525 _c +147 523 137 523 135 523 _c +146 577 _l +172 577 191 581 203 591 _c +215 601 222 613 222 627 _c +222 639 217 649 207 657 _c +197 665 182 670 164 670 _c +145 670 130 666 120 659 _c +110 652 101 639 94 621 _c +24 632 _l +37 666 54 690 74 704 _c +94 718 124 725 164 725 _c +}_e{210 725 244 716 266 698 _c +287 680 298 659 298 633 _c +298 615 292 599 281 585 _c +269 571 253 561 231 555 _c +259 547 280 535 294 519 _c +308 503 315 484 315 462 _c +315 432 302 405 276 383 _c +250 360 214 349 167 349 _c +121 349 86 358 62 376 _c +38 394 22 420 16 454 _c +698 -14 _m +698 60 _l +511 60 _l +511 120 _l +708 352 _l +769 352 _l +769 113 _l +819 113 _l +819 60 _l +769 60 _l +769 -14 _l +698 -14 _l +698 113 _m +698 241 _l +586 113 _l +698 113 _l +_cl}_e}_d +/franc{556 0 0 0 506 716 _sc +82 120 _m +0 120 _l +0 193 _l +82 193 _l +82 716 _l +506 716 _l +506 631 _l +177 631 _l +177 410 _l +454 410 _l +454 325 _l +177 325 _l +177 193 _l +331 193 _l +331 120 _l +177 120 _l +177 0 _l +82 0 _l +82 120 _l +_cl}_d +/Gbreve{778 0 53 -11 715 886 _sc +false CharStrings /G get exec +gsave 257 171 translate +false CharStrings /breve get exec +grestore }_d +/gbreve{556 0 32 -209 489 715 _sc +false CharStrings /g get exec +gsave 111 0 translate +false CharStrings /breve get exec +grestore }_d +/Idotaccent{278 0 86 0 195 869 _sc +false CharStrings /I get exec +gsave -24 177 translate +false CharStrings /dotaccent get exec +grestore }_d +/Scedilla{667 0 45 -200 615 728 _sc +false CharStrings /S get exec +gsave 166 5 translate +false CharStrings /cedilla get exec +grestore }_d +/scedilla{500 0 31 -195 461 530 _sc +false CharStrings /s get exec +gsave 78 10 translate +false CharStrings /cedilla get exec +grestore }_d +/Cacute{722 0 50 -11 683 896 _sc +false CharStrings /C get exec +gsave 215 177 translate +false CharStrings /acute get exec +grestore }_d +/cacute{500 0 39 -11 491 720 _sc +false CharStrings /c get exec +gsave 99 0 translate +false CharStrings /acute get exec +grestore }_d +/Ccaron{722 0 50 -11 683 894 _sc +false CharStrings /C get exec +gsave 211 174 translate +false CharStrings /caron get exec +grestore }_d +/ccaron{500 0 39 -11 491 720 _sc +false CharStrings /c get exec +gsave 99 0 translate +false CharStrings /caron get exec +grestore }_d +/dcroat{{556 0 34 -11 555 716 _sc +396 595 _m +228 595 _l +228 660 _l +396 660 _l +396 716 _l +484 716 _l +484 660 _l +555 660 _l +555 595 _l +484 595 _l +484 0 _l +402 0 _l +402 65 _l +369 14 321 -11 257 -11 _c +215 -11 177 0 143 23 _c +108 45 81 77 62 118 _c +43 158 34 205 34 259 _c +34 310 42 357 60 399 _c +77 441 103 474 137 496 _c +171 518 210 530 253 530 _c +284 530 312 523 337 510 _c +361 497 381 480 396 459 _c +396 595 _l +125 259 _m +125 192 138 142 166 110 _c +194 77 227 61 266 61 _c +304 61 336 76 363 108 _c +390 139 404 187 404 251 _c +}_e{404 322 390 374 363 408 _c +335 441 302 458 262 458 _c +222 458 190 442 164 410 _c +138 378 125 327 125 259 _c +_cl}_e}_d +/macron{552 0 -14 765 567 828 _sc +-14 765 _m +-14 828 _l +567 828 _l +567 765 _l +-14 765 _l +_cl}_d +/G0101{333 0 243 311 343 411 _sc +243 311 _m +243 411 _l +343 411 _l +343 311 _l +243 311 _l +_cl}_d +/Abreve{667 0 0 0 668 886 _sc +false CharStrings /A get exec +gsave 165 171 translate +false CharStrings /breve get exec +grestore }_d +/abreve{556 0 36 -11 514 715 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore }_d +/Aogonek{667 0 0 -202 756 716 _sc +false CharStrings /A get exec +gsave 453 5 translate +false CharStrings /ogonek get exec +grestore }_d +/aogonek{556 0 36 -195 619 530 _sc +false CharStrings /a get exec +gsave 316 12 translate +false CharStrings /ogonek get exec +grestore }_d +/Dcaron{722 0 77 0 669 894 _sc +false CharStrings /D get exec +gsave 118 174 translate +false CharStrings /caron get exec +grestore }_d +/dcaron{{615 0 35 -11 616 716 _sc +526 625 _m +526 716 _l +616 716 _l +616 625 _l +616 592 610 565 598 545 _c +586 525 568 509 543 499 _c +521 532 _l +537 539 550 550 558 564 _c +566 578 570 598 571 625 _c +526 625 _l +403 0 _m +403 65 _l +370 14 322 -11 258 -11 _c +216 -11 178 0 144 23 _c +109 45 82 77 63 118 _c +44 158 35 205 35 259 _c +35 310 43 357 60 399 _c +77 441 103 474 138 496 _c +172 518 211 530 254 530 _c +285 530 313 523 337 510 _c +361 497 381 480 397 459 _c +397 716 _l +484 716 _l +484 0 _l +403 0 _l +125 259 _m +125 192 139 142 167 110 _c +195 77 228 61 266 61 _c +}_e{304 61 337 76 364 108 _c +390 139 404 187 404 251 _c +404 322 390 374 363 408 _c +335 441 302 458 262 458 _c +223 458 190 442 164 410 _c +138 378 125 327 125 259 _c +_cl}_e}_d +/Dcroat{{722 0 0 0 669 716 _sc +77 0 _m +77 326 _l +0 326 _l +0 390 _l +77 390 _l +77 716 _l +324 716 _l +379 716 421 712 451 706 _c +492 696 527 678 556 654 _c +594 622 622 581 641 532 _c +659 482 669 426 669 362 _c +669 288 657 225 634 173 _c +611 121 583 83 551 59 _c +519 35 482 18 440 8 _c +416 2 381 0 335 0 _c +77 0 _l +172 84 _m +325 84 _l +372 84 409 88 436 97 _c +462 106 484 118 500 134 _c +522 156 539 186 552 224 _c +564 262 571 308 571 363 _c +571 419 564 463 552 497 _c +540 530 523 557 503 577 _c +483 597 460 611 436 619 _c +411 627 373 631 322 631 _c +172 631 _l +172 390 _l +}_e{369 390 _l +369 326 _l +172 326 _l +172 84 _l +_cl}_e}_d +/Eogonek{667 0 79 -207 613 716 _sc +false CharStrings /E get exec +gsave 309 0 translate +false CharStrings /ogonek get exec +grestore }_d +/eogonek{556 0 37 -207 515 530 _sc +false CharStrings /e get exec +gsave 155 0 translate +false CharStrings /ogonek get exec +grestore }_d +/Ecaron{667 0 79 0 613 894 _sc +false CharStrings /E get exec +gsave 150 174 translate +false CharStrings /caron get exec +grestore }_d +/ecaron{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /caron get exec +grestore }_d +/Lacute{556 0 73 0 521 896 _sc +false CharStrings /L get exec +gsave 40 177 translate +false CharStrings /acute get exec +grestore }_d +/lacute{222 0 32 0 212 889 _sc +false CharStrings /l get exec +gsave -75 169 translate +false CharStrings /acute get exec +grestore }_d +/Lcaron{556 0 73 0 521 716 _sc +348 616 _m +348 716 _l +448 716 _l +448 616 _l +448 579 441 549 428 527 _c +415 504 394 486 366 474 _c +342 512 _l +360 520 374 531 383 547 _c +391 563 396 586 397 616 _c +348 616 _l +73 0 _m +73 716 _l +168 716 _l +168 84 _l +521 84 _l +521 0 _l +73 0 _l +_cl}_d +/lcaron{292 0 66 0 291 716 _sc +201 625 _m +201 716 _l +291 716 _l +291 625 _l +291 592 285 565 273 545 _c +261 525 243 509 218 499 _c +196 532 _l +212 539 225 550 233 564 _c +241 578 245 598 246 625 _c +201 625 _l +66 0 _m +66 716 _l +154 716 _l +154 0 _l +66 0 _l +_cl}_d +/Ldot{556 0 73 0 521 716 _sc +false CharStrings /L get exec +gsave 111 0 translate +false CharStrings /G0101 get exec +grestore }_d +/ldot{334 0 64 0 330 716 _sc +false CharStrings /l get exec +gsave 112 0 translate +false CharStrings /G0101 get exec +grestore }_d +/Nacute{722 0 76 0 640 896 _sc +false CharStrings /N get exec +gsave 170 177 translate +false CharStrings /acute get exec +grestore }_d +/nacute{556 0 66 0 487 720 _sc +false CharStrings /n get exec +gsave 110 0 translate +false CharStrings /acute get exec +grestore }_d +/Ncaron{722 0 76 0 640 896 _sc +false CharStrings /N get exec +gsave 183 177 translate +false CharStrings /caron get exec +grestore }_d +/ncaron{556 0 66 0 487 720 _sc +false CharStrings /n get exec +gsave 110 0 translate +false CharStrings /caron get exec +grestore }_d +/Ohungarumlaut{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 203 177 translate +false CharStrings /hungarumlaut get exec +grestore }_d +/ohungarumlaut{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 110 0 translate +false CharStrings /hungarumlaut get exec +grestore }_d +/Racute{722 0 79 0 709 896 _sc +false CharStrings /R get exec +gsave 137 177 translate +false CharStrings /acute get exec +grestore }_d +/racute{333 0 65 0 347 720 _sc +false CharStrings /r get exec +gsave 10 0 translate +false CharStrings /acute get exec +grestore }_d +/Rcaron{722 0 79 0 709 894 _sc +false CharStrings /R get exec +gsave 142 174 translate +false CharStrings /caron get exec +grestore }_d +/rcaron{333 0 29 0 347 720 _sc +false CharStrings /r get exec +gsave 10 0 translate +false CharStrings /caron get exec +grestore }_d +/Sacute{667 0 45 -11 615 896 _sc +false CharStrings /S get exec +gsave 132 177 translate +false CharStrings /acute get exec +grestore }_d +/sacute{500 0 31 -11 461 720 _sc +false CharStrings /s get exec +gsave 84 0 translate +false CharStrings /acute get exec +grestore }_d +/Tcommaaccent{611 0 23 -282 591 716 _sc +259 0 _m +259 631 _l +23 631 _l +23 716 _l +591 716 _l +591 631 _l +354 631 _l +354 0 _l +259 0 _l +255 -158 _m +255 -58 _l +355 -58 _l +355 -158 _l +355 -216 328 -258 274 -282 _c +250 -245 _l +269 -235 283 -223 293 -207 _c +299 -195 303 -179 305 -158 _c +255 -158 _l +_cl}_d +/tcommaaccent{{278 0 18 -259 271 700 _sc +258 79 _m +271 1 _l +245 -3 223 -6 204 -6 _c +172 -6 147 -1 130 8 _c +112 18 100 31 93 48 _c +85 64 82 99 82 152 _c +82 450 _l +18 450 _l +18 519 _l +82 519 _l +82 647 _l +169 700 _l +169 519 _l +258 519 _l +258 450 _l +169 450 _l +169 147 _l +169 121 170 105 174 98 _c +177 91 182 85 189 81 _c +196 77 206 75 219 75 _c +229 75 242 76 258 79 _c +134 -148 _m +134 -58 _l +225 -58 _l +225 -148 _l +225 -170 219 -192 207 -212 _c +195 -232 176 -247 151 -259 _c +129 -225 _l +}_e{160 -211 177 -186 179 -148 _c +134 -148 _l +_cl}_e}_d +/Tcaron{611 0 23 0 591 894 _sc +false CharStrings /T get exec +gsave 132 174 translate +false CharStrings /caron get exec +grestore }_d +/tcaron{{375 0 17 -6 374 716 _sc +284 625 _m +284 716 _l +374 716 _l +374 625 _l +374 592 368 565 356 545 _c +344 525 325 509 300 499 _c +278 532 _l +294 539 307 550 315 564 _c +323 578 327 598 328 625 _c +284 625 _l +257 79 _m +270 1 _l +245 -3 223 -6 204 -6 _c +172 -6 147 -1 129 8 _c +111 18 99 31 92 48 _c +85 64 82 99 82 152 _c +82 450 _l +17 450 _l +17 519 _l +82 519 _l +82 647 _l +169 700 _l +169 519 _l +257 519 _l +257 450 _l +169 450 _l +169 147 _l +169 121 170 105 173 98 _c +176 91 181 85 188 81 _c +195 77 205 75 219 75 _c +}_e{228 75 241 76 257 79 _c +_cl}_e}_d +/Uring{722 0 79 -11 642 938 _sc +false CharStrings /U get exec +gsave 192 198 translate +false CharStrings /ring get exec +grestore }_d +/uring{556 0 64 -11 484 741 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /ring get exec +grestore }_d +/Uhungarumlaut{722 0 79 -11 642 896 _sc +false CharStrings /U get exec +gsave 199 177 translate +false CharStrings /hungarumlaut get exec +grestore }_d +/uhungarumlaut{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 88 0 translate +false CharStrings /hungarumlaut get exec +grestore }_d +/Zacute{611 0 20 0 586 896 _sc +false CharStrings /Z get exec +gsave 123 177 translate +false CharStrings /acute get exec +grestore }_d +/zacute{500 0 20 0 479 720 _sc +false CharStrings /z get exec +gsave 83 0 translate +false CharStrings /acute get exec +grestore }_d +/Zdotaccent{611 0 20 0 586 869 _sc +false CharStrings /Z get exec +gsave 148 177 translate +false CharStrings /dotaccent get exec +grestore }_d +/zdotaccent{500 0 20 0 479 692 _sc +false CharStrings /z get exec +gsave 83 0 translate +false CharStrings /dotaccent get exec +grestore }_d +/Gamma{551 0 80 0 527 716 _sc +80 716 _m +527 716 _l +527 631 _l +175 631 _l +175 0 _l +80 0 _l +80 716 _l +_cl}_d +/Theta{{778 0 47 -11 731 729 _sc +47 349 _m +47 467 79 560 143 628 _c +207 695 289 729 390 729 _c +490 729 572 694 636 626 _c +699 558 731 468 731 357 _c +731 246 699 157 635 90 _c +571 22 489 -11 389 -11 _c +317 -11 254 6 200 42 _c +146 78 107 124 83 180 _c +59 236 47 293 47 349 _c +145 347 _m +145 265 167 199 211 147 _c +255 95 314 69 389 69 _c +461 69 520 94 566 146 _c +611 197 634 267 634 357 _c +634 448 611 519 565 570 _c +519 621 461 647 390 647 _c +320 647 261 623 215 575 _c +168 527 145 451 145 347 _c +248 316 _m +248 400 _l +531 400 _l +531 316 _l +248 316 _l +_cl}_e}_d +/Phi{{798 0 42 -25 756 737 _sc +352 737 _m +446 737 _l +446 649 _l +546 643 623 613 676 561 _c +729 508 756 443 756 366 _c +756 278 727 209 669 159 _c +611 108 537 81 446 79 _c +446 -25 _l +352 -25 _l +352 79 _l +257 82 182 110 126 162 _c +70 214 42 280 42 361 _c +42 414 54 462 78 505 _c +102 548 137 582 182 607 _c +226 631 283 645 352 649 _c +352 737 _l +352 567 _m +284 565 232 546 195 511 _c +158 476 140 426 140 362 _c +140 296 160 246 200 212 _c +240 178 291 160 352 159 _c +352 567 _l +446 159 _m +512 161 565 179 603 215 _c +641 251 660 300 660 363 _c +660 423 641 472 605 510 _c +569 548 516 567 446 567 _c +446 159 _l +_cl}_e}_d +/alpha{{578 0 35 -11 541 530 _sc +451 519 _m +541 519 _l +517 447 496 360 478 259 _c +500 133 521 47 541 0 _c +453 0 _l +439 32 428 64 421 95 _c +394 24 338 -11 252 -11 _c +186 -11 134 13 94 62 _c +54 110 35 176 35 260 _c +35 346 55 412 95 459 _c +135 506 187 530 253 530 _c +293 530 327 521 353 505 _c +379 489 403 464 425 431 _c +427 442 435 471 451 519 _c +268 458 _m +226 458 192 441 168 407 _c +144 373 132 324 132 260 _c +132 198 143 149 166 114 _c +189 78 221 61 263 61 _c +303 61 337 78 364 113 _c +391 148 405 198 405 264 _c +}_e{405 328 392 376 367 409 _c +341 441 308 458 268 458 _c +_cl}_e}_d +/delta{{557 0 35 -11 521 716 _sc +85 716 _m +476 716 _l +476 645 _l +203 645 _l +235 611 285 571 355 523 _c +417 479 460 439 484 403 _c +508 366 521 316 521 254 _c +521 169 498 104 453 58 _c +407 12 348 -11 276 -11 _c +196 -11 135 15 95 67 _c +55 119 35 180 35 252 _c +35 335 56 398 99 442 _c +141 486 192 509 252 512 _c +222 532 166 579 85 652 _c +85 716 _l +125 251 _m +125 195 139 150 168 114 _c +197 78 234 61 280 61 _c +320 61 355 76 385 106 _c +415 136 431 185 431 251 _c +431 312 416 359 387 393 _c +358 427 322 444 278 444 _c +230 444 192 425 165 387 _c +138 349 125 304 125 251 _c +_cl}_e}_d +/epsilon{{446 0 48 -11 423 530 _sc +405 460 _m +342 409 _l +302 439 264 455 229 455 _c +201 455 180 447 167 432 _c +153 416 147 400 147 382 _c +147 359 156 340 176 325 _c +196 310 224 303 262 303 _c +267 303 275 303 287 303 _c +287 229 _l +276 229 268 230 263 230 _c +216 230 184 221 166 203 _c +148 185 139 165 139 143 _c +139 119 148 100 166 84 _c +184 68 206 61 231 61 _c +277 61 320 82 360 125 _c +423 71 _l +371 16 306 -11 229 -11 _c +168 -11 123 4 93 35 _c +63 65 48 101 48 143 _c +48 201 76 243 134 268 _c +}_e{86 295 62 332 62 380 _c +62 418 76 453 104 484 _c +132 514 176 530 235 530 _c +301 530 358 506 405 460 _c +_cl}_e}_d +/sigma{{617 0 33 -11 595 530 _sc +595 519 _m +595 447 _l +454 447 _l +497 407 519 344 519 259 _c +519 166 495 98 448 54 _c +400 10 343 -11 275 -11 _c +205 -11 147 11 101 57 _c +55 102 33 169 33 259 _c +33 351 56 419 104 463 _c +151 507 208 530 275 530 _c +299 530 327 526 358 519 _c +595 519 _l +274 458 _m +231 458 195 441 167 408 _c +138 374 124 325 124 259 _c +124 193 138 143 166 110 _c +194 77 230 61 275 61 _c +322 61 360 78 388 113 _c +416 147 430 196 430 259 _c +430 317 417 364 391 402 _c +365 439 326 458 274 458 _c +_cl}_e}_d +/tau{395 0 22 0 372 519 _sc +247 447 _m +247 0 _l +159 0 _l +159 447 _l +22 447 _l +22 519 _l +372 519 _l +372 447 _l +247 447 _l +_cl}_d +/phi{{648 0 35 -198 614 531 _sc +244 529 _m +227 453 _l +159 430 125 371 125 276 _c +125 225 138 180 165 141 _c +191 101 231 76 284 64 _c +284 387 _l +284 421 286 447 291 466 _c +296 485 307 500 325 512 _c +342 524 366 530 396 530 _c +442 530 480 520 509 502 _c +538 483 563 453 583 413 _c +603 372 614 328 614 281 _c +614 242 606 203 590 164 _c +574 124 548 88 512 55 _c +476 22 429 0 371 -11 _c +371 -198 _l +284 -198 _l +284 -11 _l +223 -11 166 15 114 68 _c +61 120 35 188 35 272 _c +35 349 56 411 98 459 _c +140 507 189 530 244 529 _c +371 68 _m +412 76 447 99 477 138 _c +506 176 521 227 521 290 _c +521 348 510 390 489 417 _c +467 444 445 458 421 458 _c +403 458 391 452 383 440 _c +375 428 371 401 371 361 _c +}_e{371 68 _l +_cl}_e}_d +/underscoredbl{552 0 -14 -324 567 -134 _sc +-14 -198 _m +-14 -134 _l +567 -134 _l +567 -198 _l +-14 -198 _l +-14 -324 _m +-14 -261 _l +567 -261 _l +567 -324 _l +-14 -324 _l +_cl}_d +/exclamdbl{500 0 86 0 414 716 _sc +false CharStrings /exclam get exec +gsave 219 0 translate +false CharStrings /exclam get exec +grestore }_d +/nsuperior{365 0 40 253 326 585 _sc +40 253 _m +40 578 _l +104 578 _l +104 544 _l +117 557 132 567 149 574 _c +165 581 184 585 205 585 _c +232 585 255 579 273 569 _c +291 559 305 545 313 529 _c +321 513 326 487 326 452 _c +326 253 _l +257 253 _l +257 449 _l +257 477 251 497 241 509 _c +230 520 214 526 192 526 _c +165 526 144 518 130 503 _c +116 488 109 464 109 430 _c +109 253 _l +40 253 _l +_cl}_d +/peseta{{1094 0 25 -12 1072 716 _sc +25 716 _m +250 716 _l +326 716 385 695 425 653 _c +455 620 473 576 477 520 _c +522 520 _l +522 671 _l +611 670 _l +611 520 _l +767 520 _l +795 528 824 533 854 533 _c +915 533 965 516 1003 483 _c +1034 456 1050 419 1052 373 _c +960 373 _l +958 400 949 421 932 435 _c +915 449 890 456 857 456 _c +823 456 798 449 782 436 _c +766 423 758 409 758 395 _c +758 377 767 362 786 350 _c +804 338 838 326 890 314 _c +942 301 979 288 1002 275 _c +1024 262 1042 244 1054 222 _c +1066 200 1072 177 1072 153 _c +}_e{1072 109 1052 71 1014 38 _c +976 4 925 -12 861 -12 _c +820 -12 787 -6 761 5 _c +735 17 711 36 689 64 _c +689 0 _l +679 -2 671 -3 663 -5 _c +655 -6 649 -7 644 -7 _c +596 -7 561 5 540 30 _c +528 44 522 68 522 102 _c +522 449 _l +472 449 _l +462 411 445 379 422 355 _c +398 331 368 313 331 303 _c +305 295 260 292 197 292 _c +120 292 _l +120 0 _l +25 0 _l +25 716 _l +120 632 _m +120 375 _l +184 375 _l +236 375 274 379 299 387 _c +324 395 344 408 358 428 _c +372 448 380 473 380 503 _c +380 530 374 553 362 573 _c +350 593 334 607 314 617 _c +294 627 262 632 220 632 _c +120 632 _l +}_e{611 449 _m +611 129 _l +610 114 _l +610 101 613 91 621 84 _c +629 77 640 74 654 74 _c +658 74 662 74 666 75 _c +670 75 675 77 680 79 _c +672 94 666 108 664 120 _c +661 132 659 147 659 165 _c +748 165 _l +750 132 762 107 783 89 _c +804 71 832 62 868 62 _c +902 62 931 72 956 92 _c +974 106 984 124 984 144 _c +984 158 978 171 967 182 _c +951 195 916 209 862 224 _c +807 239 770 251 752 261 _c +724 275 703 292 690 312 _c +677 332 671 354 671 380 _c +671 404 676 427 687 448 _c +611 449 _l +_cl}_e}_d +/arrowleft{1000 0 39 77 961 428 _sc +240 428 _m +277 428 _l +258 389 244 362 234 347 _c +224 331 207 308 182 277 _c +961 277 _l +961 228 _l +182 228 _l +216 192 248 142 279 77 _c +241 77 _l +199 123 162 159 132 183 _c +102 207 71 227 39 243 _c +39 265 _l +67 277 96 295 128 320 _c +160 344 197 380 240 428 _c +_cl}_d +/arrowup{500 0 75 -208 426 654 _sc +75 452 _m +122 495 158 532 182 564 _c +206 596 225 626 237 654 _c +260 654 _l +275 621 295 590 319 560 _c +343 530 378 494 426 452 _c +426 414 _l +360 444 310 476 275 510 _c +275 -208 _l +226 -208 _l +226 510 _l +194 485 171 468 155 458 _c +139 448 113 434 75 415 _c +75 452 _l +_cl}_d +/arrowright{1000 0 39 77 961 428 _sc +759 428 _m +802 380 839 344 871 320 _c +903 295 933 277 961 265 _c +961 243 _l +929 227 897 207 867 183 _c +837 159 801 123 759 77 _c +721 77 _l +751 142 783 192 817 228 _c +39 228 _l +39 277 _l +817 277 _l +792 308 775 331 765 347 _c +755 362 741 389 722 428 _c +759 428 _l +_cl}_d +/arrowdown{500 0 75 -208 426 654 _sc +75 -7 _m +75 29 _l +113 9 140 -4 156 -14 _c +171 -23 194 -40 226 -65 _c +226 654 _l +275 654 _l +275 -65 _l +310 -31 360 0 426 30 _c +426 -6 _l +378 -48 343 -84 319 -114 _c +295 -144 275 -176 260 -208 _c +237 -208 _l +225 -180 206 -150 182 -119 _c +158 -87 122 -50 75 -7 _c +_cl}_d +/arrowboth{{1000 0 39 77 961 429 _sc +961 264 _m +961 242 _l +930 228 900 209 870 185 _c +840 161 805 125 763 77 _c +724 77 _l +746 133 777 183 818 229 _c +181 229 _l +221 183 253 133 276 77 _c +237 77 _l +194 125 158 161 128 185 _c +98 209 69 228 39 242 _c +39 264 _l +69 278 98 296 128 320 _c +158 344 194 380 237 429 _c +276 429 _l +253 373 221 322 181 277 _c +818 277 _l +777 322 746 373 724 429 _c +763 429 _l +805 380 840 344 870 320 _c +900 296 930 278 961 264 _c +_cl}_e}_d +/arrowupdn{{500 0 74 -207 425 714 _sc +239 714 _m +261 714 _l +275 683 293 653 317 623 _c +341 593 377 558 425 516 _c +425 477 _l +369 499 319 530 273 572 _c +273 -65 _l +319 -23 369 7 425 29 _c +425 -9 _l +377 -51 341 -87 317 -117 _c +293 -147 275 -177 261 -207 _c +239 -207 _l +225 -177 206 -147 182 -117 _c +158 -87 122 -51 74 -9 _c +74 29 _l +130 7 180 -23 226 -65 _c +226 572 _l +180 530 130 499 74 477 _c +74 516 _l +122 558 158 593 182 623 _c +206 653 225 683 239 714 _c +_cl}_e}_d +/arrowupdnbse{{500 0 74 -302 425 714 _sc +239 714 _m +261 714 _l +275 683 293 653 317 623 _c +341 593 377 558 425 516 _c +425 477 _l +369 499 319 530 273 572 _c +273 -65 _l +319 -23 369 7 425 29 _c +425 -9 _l +377 -51 341 -87 317 -117 _c +293 -147 275 -177 261 -207 _c +239 -207 _l +225 -177 206 -147 182 -117 _c +158 -87 122 -51 74 -9 _c +74 29 _l +130 7 180 -23 226 -65 _c +226 572 _l +180 530 130 499 74 477 _c +74 516 _l +122 558 158 593 182 623 _c +206 653 225 683 239 714 _c +75 -254 _m +425 -254 _l +425 -302 _l +}_e{75 -302 _l +75 -254 _l +_cl}_e}_d +/orthogonal{979 0 177 0 802 625 _sc +177 625 _m +226 625 _l +226 49 _l +802 49 _l +802 0 _l +177 0 _l +177 625 _l +_cl}_d +/intersection{{719 0 77 0 642 729 _sc +143 0 _m +77 0 _l +77 303 _l +77 388 78 442 81 464 _c +84 504 91 538 103 564 _c +114 590 132 616 156 642 _c +180 668 209 689 245 705 _c +281 721 319 729 360 729 _c +398 729 435 721 470 706 _c +505 690 536 670 562 644 _c +588 618 606 590 618 561 _c +629 531 636 495 640 451 _c +641 434 642 385 642 303 _c +642 0 _l +577 0 _l +577 307 _l +577 380 576 427 574 448 _c +570 485 564 515 556 537 _c +547 559 534 579 516 598 _c +498 617 474 633 446 646 _c +418 658 389 665 359 665 _c +329 665 299 658 270 645 _c +241 631 217 614 198 593 _c +179 572 166 549 159 523 _c +151 497 147 468 145 435 _c +143 417 143 374 143 307 _c +143 0 _l +_cl}_e}_d +/equivalence{583 0 56 95 528 611 _sc +528 530 _m +56 530 _l +56 611 _l +528 611 _l +528 530 _l +528 312 _m +56 312 _l +56 394 _l +528 394 _l +528 312 _l +528 95 _m +56 95 _l +56 177 _l +528 177 _l +528 95 _l +_cl}_d +/house{604 0 77 0 527 563 _sc +77 0 _m +77 310 _l +302 563 _l +527 310 _l +527 0 _l +77 0 _l +116 40 _m +488 40 _l +488 293 _l +302 501 _l +116 293 _l +116 40 _l +_cl}_d +/revlogicalnot{584 0 55 207 528 503 _sc +55 207 _m +55 503 _l +528 503 _l +528 421 _l +138 421 _l +138 207 _l +55 207 _l +_cl}_d +/integraltp{604 0 267 -250 477 848 _sc +337 -250 _m +267 -250 _l +267 633 _l +267 704 281 758 310 794 _c +339 830 372 848 409 848 _c +431 848 447 842 459 832 _c +471 821 477 809 477 795 _c +477 781 472 770 464 762 _c +456 754 446 750 434 750 _c +424 750 414 752 406 757 _c +400 760 393 768 385 780 _c +377 792 370 798 363 798 _c +357 798 352 796 348 792 _c +344 789 342 785 341 779 _c +338 768 337 745 337 711 _c +337 -250 _l +_cl}_d +/integralbt{604 0 127 -250 337 848 _sc +267 848 _m +337 848 _l +337 -35 _l +337 -106 322 -160 293 -196 _c +264 -232 231 -250 195 -250 _c +173 -250 156 -244 144 -234 _c +132 -224 127 -211 127 -197 _c +127 -184 131 -173 139 -165 _c +147 -156 158 -152 170 -152 _c +180 -152 189 -154 199 -160 _c +205 -163 211 -170 219 -182 _c +226 -194 233 -200 241 -200 _c +247 -200 252 -198 256 -194 _c +259 -192 261 -187 263 -181 _c +265 -170 267 -147 267 -113 _c +267 848 _l +_cl}_d +/SF100000{708 0 -10 261 719 346 _sc +719 261 _m +-10 261 _l +-10 346 _l +719 346 _l +719 261 _l +_cl}_d +/SF110000{625 0 223 -302 309 910 _sc +223 -302 _m +223 910 _l +309 910 _l +309 -302 _l +223 -302 _l +_cl}_d +/SF010000{708 0 312 -302 720 346 _sc +720 346 _m +720 261 _l +397 261 _l +397 -302 _l +312 -302 _l +312 346 _l +720 346 _l +_cl}_d +/SF030000{708 0 -10 -302 396 346 _sc +311 261 _m +-10 261 _l +-10 346 _l +396 346 _l +396 -302 _l +311 -302 _l +311 261 _l +_cl}_d +/SF020000{708 0 312 261 720 910 _sc +312 261 _m +312 910 _l +397 910 _l +397 346 _l +720 346 _l +720 261 _l +312 261 _l +_cl}_d +/SF040000{708 0 -10 261 396 910 _sc +396 261 _m +-10 261 _l +-10 346 _l +311 346 _l +311 910 _l +396 910 _l +396 261 _l +_cl}_d +/SF080000{708 0 312 -302 720 910 _sc +312 -302 _m +312 910 _l +397 910 _l +397 346 _l +720 346 _l +720 261 _l +397 261 _l +397 -302 _l +312 -302 _l +_cl}_d +/SF090000{708 0 -10 -302 396 910 _sc +311 -302 _m +311 261 _l +-10 261 _l +-10 346 _l +311 346 _l +311 910 _l +396 910 _l +396 -302 _l +311 -302 _l +_cl}_d +/SF060000{708 0 -10 -302 719 346 _sc +311 261 _m +-10 261 _l +-10 346 _l +719 346 _l +719 261 _l +396 261 _l +396 -302 _l +311 -302 _l +311 261 _l +_cl}_d +/SF070000{708 0 -10 261 719 910 _sc +719 261 _m +-10 261 _l +-10 346 _l +311 346 _l +311 910 _l +396 910 _l +396 346 _l +719 346 _l +719 261 _l +_cl}_d +/SF050000{708 0 -10 -302 719 910 _sc +311 261 _m +-10 261 _l +-10 346 _l +311 346 _l +311 910 _l +396 910 _l +396 346 _l +719 346 _l +719 261 _l +396 261 _l +396 -302 _l +311 -302 _l +311 261 _l +_cl}_d +/SF430000{708 0 -10 168 719 439 _sc +719 354 _m +-10 354 _l +-10 439 _l +719 439 _l +719 354 _l +719 168 _m +-10 168 _l +-10 253 _l +719 253 _l +719 168 _l +_cl}_d +/SF240000{708 0 219 -302 490 910 _sc +404 -302 _m +404 910 _l +490 910 _l +490 -302 _l +404 -302 _l +219 -302 _m +219 910 _l +304 910 _l +304 -302 _l +219 -302 _l +_cl}_d +/SF510000{708 0 312 -302 720 439 _sc +312 -302 _m +312 439 _l +720 439 _l +720 354 _l +397 354 _l +397 253 _l +720 253 _l +720 168 _l +397 168 _l +397 -302 _l +312 -302 _l +_cl}_d +/SF520000{708 0 219 -302 720 346 _sc +219 -302 _m +219 346 _l +720 346 _l +720 261 _l +490 261 _l +490 -302 _l +404 -302 _l +404 253 _l +304 253 _l +304 -302 _l +219 -302 _l +_cl}_d +/SF390000{708 0 219 -302 719 439 _sc +304 -302 _m +219 -302 _l +219 439 _l +719 439 _l +719 354 _l +304 354 _l +304 -302 _l +490 168 _m +490 -302 _l +404 -302 _l +404 253 _l +719 253 _l +719 168 _l +490 168 _l +_cl}_d +/SF220000{708 0 -10 -302 396 439 _sc +311 168 _m +-10 168 _l +-10 253 _l +311 253 _l +311 354 _l +-10 354 _l +-10 439 _l +396 439 _l +396 -302 _l +311 -302 _l +311 168 _l +_cl}_d +/SF210000{708 0 -10 -302 489 346 _sc +218 -302 _m +219 261 _l +-10 261 _l +-10 346 _l +489 346 _l +489 -302 _l +404 -302 _l +404 261 _l +304 261 _l +304 -302 _l +218 -302 _l +_cl}_d +/SF250000{708 0 -10 -302 489 439 _sc +404 -302 _m +404 354 _l +-10 354 _l +-10 439 _l +489 439 _l +489 -302 _l +404 -302 _l +218 168 _m +-10 168 _l +-10 253 _l +304 253 _l +304 -302 _l +218 -302 _l +218 168 _l +_cl}_d +/SF500000{708 0 312 168 720 910 _sc +312 168 _m +312 910 _l +397 910 _l +397 439 _l +720 439 _l +720 354 _l +397 354 _l +397 253 _l +720 253 _l +720 168 _l +312 168 _l +_cl}_d +/SF490000{708 0 219 261 720 910 _sc +720 261 _m +219 261 _l +219 910 _l +304 910 _l +304 346 _l +404 346 _l +404 910 _l +490 910 _l +490 346 _l +720 346 _l +720 261 _l +_cl}_d +/SF380000{708 0 219 168 719 910 _sc +304 910 _m +304 253 _l +719 253 _l +719 168 _l +219 168 _l +219 910 _l +304 910 _l +490 439 _m +719 439 _l +719 354 _l +404 354 _l +404 910 _l +490 910 _l +490 439 _l +_cl}_d +/SF280000{708 0 -10 168 396 910 _sc +396 168 _m +-10 168 _l +-10 253 _l +311 253 _l +311 354 _l +-10 354 _l +-10 439 _l +311 439 _l +311 910 _l +396 910 _l +396 168 _l +_cl}_d +/SF270000{708 0 -10 261 489 910 _sc +489 261 _m +-10 261 _l +-10 346 _l +218 346 _l +218 910 _l +304 910 _l +304 346 _l +404 346 _l +404 910 _l +489 910 _l +489 261 _l +_cl}_d +/SF260000{708 0 -10 168 489 910 _sc +404 910 _m +489 910 _l +489 168 _l +-10 168 _l +-10 253 _l +404 253 _l +404 910 _l +218 439 _m +218 910 _l +304 910 _l +304 354 _l +-10 354 _l +-10 439 _l +218 439 _l +_cl}_d +/SF360000{708 0 312 -302 720 910 _sc +312 -302 _m +312 910 _l +397 910 _l +397 439 _l +720 439 _l +720 354 _l +397 354 _l +397 253 _l +720 253 _l +720 168 _l +397 168 _l +397 -302 _l +312 -302 _l +_cl}_d +/SF370000{708 0 219 -302 720 910 _sc +404 -302 _m +404 910 _l +490 910 _l +490 346 _l +720 346 _l +720 261 _l +490 261 _l +490 -302 _l +404 -302 _l +219 -302 _m +219 910 _l +304 910 _l +304 -302 _l +219 -302 _l +_cl}_d +/SF420000{708 0 219 -302 720 910 _sc +219 -302 _m +219 910 _l +304 910 _l +304 -302 _l +219 -302 _l +404 354 _m +404 910 _l +490 910 _l +490 439 _l +720 439 _l +720 354 _l +404 354 _l +404 -302 _m +404 253 _l +720 253 _l +720 168 _l +490 168 _l +490 -302 _l +404 -302 _l +_cl}_d +/SF190000{708 0 -10 -302 396 910 _sc +311 168 _m +-10 168 _l +-10 253 _l +312 253 _l +311 354 _l +-10 354 _l +-10 439 _l +311 439 _l +311 910 _l +396 910 _l +396 -302 _l +311 -302 _l +311 168 _l +_cl}_d +/SF200000{708 0 -10 -302 489 910 _sc +218 -302 _m +219 261 _l +-10 261 _l +-10 346 _l +218 346 _l +218 910 _l +304 910 _l +304 -302 _l +218 -302 _l +404 -302 _m +404 910 _l +489 910 _l +489 -302 _l +404 -302 _l +_cl}_d +/SF230000{708 0 -10 -302 489 910 _sc +404 -302 _m +404 910 _l +489 910 _l +489 -302 _l +404 -302 _l +304 910 _m +304 354 _l +-10 354 _l +-10 439 _l +218 439 _l +218 910 _l +304 910 _l +218 168 _m +-10 168 _l +-10 253 _l +304 253 _l +304 -302 _l +218 -302 _l +218 168 _l +_cl}_d +/SF470000{708 0 -10 -302 719 439 _sc +719 354 _m +-10 354 _l +-10 439 _l +719 439 _l +719 354 _l +311 168 _m +-10 168 _l +-10 253 _l +719 253 _l +719 168 _l +396 168 _l +396 -302 _l +311 -302 _l +311 168 _l +_cl}_d +/SF480000{708 0 -10 -302 719 346 _sc +218 -302 _m +219 261 _l +-10 261 _l +-10 346 _l +719 346 _l +719 261 _l +489 261 _l +489 -302 _l +404 -302 _l +404 253 _l +304 253 _l +304 -302 _l +218 -302 _l +_cl}_d +/SF410000{708 0 -10 -302 719 439 _sc +719 354 _m +-10 354 _l +-10 439 _l +719 439 _l +719 354 _l +218 168 _m +-10 168 _l +-10 253 _l +304 253 _l +304 -302 _l +218 -302 _l +218 168 _l +404 -302 _m +404 253 _l +719 253 _l +719 168 _l +489 168 _l +489 -302 _l +404 -302 _l +_cl}_d +/SF450000{708 0 -10 168 719 910 _sc +719 354 _m +-10 354 _l +-10 439 _l +311 439 _l +311 910 _l +396 910 _l +396 439 _l +719 439 _l +719 354 _l +719 168 _m +-10 168 _l +-10 253 _l +719 253 _l +719 168 _l +_cl}_d +/SF460000{708 0 -10 261 719 910 _sc +719 261 _m +-10 261 _l +-10 346 _l +218 346 _l +218 910 _l +304 910 _l +304 346 _l +404 346 _l +404 910 _l +489 910 _l +489 346 _l +719 346 _l +719 261 _l +_cl}_d +/SF400000{708 0 -10 168 719 910 _sc +304 354 _m +-10 354 _l +-10 439 _l +218 439 _l +218 910 _l +304 910 _l +304 354 _l +719 354 _m +404 354 _l +404 910 _l +489 910 _l +489 439 _l +719 439 _l +719 354 _l +719 168 _m +-10 168 _l +-10 253 _l +719 253 _l +719 168 _l +_cl}_d +/SF540000{708 0 -10 -302 719 910 _sc +311 168 _m +-10 168 _l +-10 253 _l +311 253 _l +311 354 _l +-10 354 _l +-10 439 _l +311 439 _l +311 910 _l +396 910 _l +396 439 _l +719 439 _l +719 354 _l +396 354 _l +396 253 _l +719 253 _l +719 168 _l +396 168 _l +396 -302 _l +311 -302 _l +311 168 _l +_cl}_d +/SF530000{708 0 -10 -302 719 910 _sc +218 -302 _m +219 261 _l +-10 261 _l +-10 346 _l +218 346 _l +218 910 _l +304 910 _l +304 346 _l +404 346 _l +404 910 _l +489 910 _l +489 346 _l +719 346 _l +719 261 _l +489 261 _l +489 -302 _l +404 -302 _l +404 261 _l +304 261 _l +304 -302 _l +218 -302 _l +_cl}_d +/SF440000{708 0 -10 -302 719 910 _sc +490 439 _m +719 439 _l +719 354 _l +404 354 _l +404 910 _l +490 910 _l +490 439 _l +218 439 _m +218 910 _l +304 910 _l +304 354 _l +-10 354 _l +-10 439 _l +218 439 _l +218 168 _m +-10 168 _l +-10 253 _l +304 253 _l +304 -302 _l +218 -302 _l +218 168 _l +490 168 _m +490 -302 _l +404 -302 _l +404 253 _l +719 253 _l +719 168 _l +490 168 _l +_cl}_d +/upblock{708 0 -10 303 719 910 _sc +719 303 _m +-10 303 _l +-10 910 _l +719 910 _l +719 303 _l +_cl}_d +/dnblock{708 0 -10 -302 719 303 _sc +719 -302 _m +-10 -302 _l +-10 303 _l +719 303 _l +719 -302 _l +_cl}_d +/block{708 0 -10 -302 719 910 _sc +-10 -302 _m +-10 910 _l +719 910 _l +719 -302 _l +-10 -302 _l +_cl}_d +/lfblock{708 0 -10 -302 354 910 _sc +-10 -302 _m +-10 910 _l +354 910 _l +354 -302 _l +-10 -302 _l +_cl}_d +/rtblock{708 0 354 -302 720 910 _sc +354 -302 _m +354 910 _l +720 910 _l +720 -302 _l +354 -302 _l +_cl}_d +/ltshade{{708 0 50 -245 719 910 _sc +50 910 _m +111 910 _l +111 849 _l +50 849 _l +50 910 _l +293 910 _m +354 910 _l +354 849 _l +293 849 _l +293 910 _l +537 910 _m +598 910 _l +598 849 _l +537 849 _l +537 910 _l +171 789 _m +232 789 _l +232 728 _l +171 728 _l +171 789 _l +415 789 _m +476 789 _l +476 728 _l +415 728 _l +415 789 _l +658 789 _m +719 789 _l +719 728 _l +658 728 _l +658 789 _l +}_e{537 667 _m +598 667 _l +598 606 _l +537 606 _l +537 667 _l +293 667 _m +354 667 _l +354 606 _l +293 606 _l +293 667 _l +50 667 _m +111 667 _l +111 606 _l +50 606 _l +50 667 _l +658 545 _m +719 545 _l +719 484 _l +658 484 _l +658 545 _l +415 545 _m +476 545 _l +476 484 _l +415 484 _l +415 545 _l +171 545 _m +232 545 _l +232 484 _l +171 484 _l +171 545 _l +50 423 _m +111 423 _l +}_e{111 362 _l +50 362 _l +50 423 _l +293 423 _m +354 423 _l +354 362 _l +293 362 _l +293 423 _l +537 423 _m +598 423 _l +598 362 _l +537 362 _l +537 423 _l +658 302 _m +719 302 _l +719 241 _l +658 241 _l +658 302 _l +415 302 _m +476 302 _l +476 241 _l +415 241 _l +415 302 _l +171 302 _m +232 302 _l +232 241 _l +171 241 _l +171 302 _l +50 180 _m +111 180 _l +111 119 _l +50 119 _l +}_e{50 180 _l +293 180 _m +354 180 _l +354 119 _l +293 119 _l +293 180 _l +537 180 _m +598 180 _l +598 119 _l +537 119 _l +537 180 _l +171 58 _m +232 58 _l +232 -1 _l +171 -1 _l +171 58 _l +415 58 _m +476 58 _l +476 -1 _l +415 -1 _l +415 58 _l +658 58 _m +719 58 _l +719 -1 _l +658 -1 _l +658 58 _l +537 -62 _m +598 -62 _l +598 -124 _l +537 -124 _l +537 -62 _l +293 -62 _m +}_e{354 -62 _l +354 -124 _l +293 -124 _l +293 -62 _l +50 -62 _m +111 -62 _l +111 -124 _l +50 -124 _l +50 -62 _l +171 -184 _m +232 -184 _l +232 -245 _l +171 -245 _l +171 -184 _l +415 -184 _m +476 -184 _l +476 -245 _l +415 -245 _l +415 -184 _l +658 -184 _m +719 -184 _l +719 -245 _l +658 -245 _l +658 -184 _l +_cl}_e}_d +/shade{{708 0 -10 -245 719 910 _sc +50 910 _m +111 910 _l +111 849 _l +50 849 _l +50 910 _l +172 910 _m +232 910 _l +232 849 _l +172 849 _l +172 910 _l +293 910 _m +354 910 _l +354 849 _l +293 849 _l +293 910 _l +415 910 _m +476 910 _l +476 849 _l +415 849 _l +415 910 _l +537 910 _m +598 910 _l +598 849 _l +537 849 _l +537 910 _l +659 910 _m +719 910 _l +719 849 _l +659 849 _l +659 910 _l +}_e{-10 789 _m +50 789 _l +50 728 _l +-10 728 _l +-10 789 _l +111 789 _m +172 789 _l +172 728 _l +111 728 _l +111 789 _l +232 789 _m +293 789 _l +293 728 _l +232 728 _l +232 789 _l +354 789 _m +415 789 _l +415 728 _l +354 728 _l +354 789 _l +476 789 _m +537 789 _l +537 728 _l +476 728 _l +476 789 _l +598 789 _m +659 789 _l +659 728 _l +598 728 _l +598 789 _l +598 789 _m +659 789 _l +}_e{659 728 _l +598 728 _l +598 789 _l +598 789 _m +659 789 _l +659 728 _l +598 728 _l +598 789 _l +50 667 _m +111 667 _l +111 606 _l +50 606 _l +50 667 _l +172 667 _m +232 667 _l +232 606 _l +172 606 _l +172 667 _l +293 667 _m +354 667 _l +354 606 _l +293 606 _l +293 667 _l +415 667 _m +476 667 _l +476 606 _l +415 606 _l +415 667 _l +537 667 _m +598 667 _l +598 606 _l +537 606 _l +}_e{537 667 _l +659 667 _m +719 667 _l +719 606 _l +659 606 _l +659 667 _l +-10 545 _m +50 545 _l +50 484 _l +-10 484 _l +-10 545 _l +111 545 _m +172 545 _l +172 484 _l +111 484 _l +111 545 _l +232 545 _m +293 545 _l +293 484 _l +232 484 _l +232 545 _l +354 545 _m +415 545 _l +415 484 _l +354 484 _l +354 545 _l +476 545 _m +537 545 _l +537 484 _l +476 484 _l +476 545 _l +598 545 _m +}_e{659 545 _l +659 484 _l +598 484 _l +598 545 _l +659 545 _l +659 484 _l +598 484 _l +598 545 _l +598 545 _m +659 545 _l +659 484 _l +598 484 _l +598 545 _l +50 423 _m +111 423 _l +111 362 _l +50 362 _l +50 423 _l +172 423 _m +232 423 _l +232 362 _l +172 362 _l +172 423 _l +293 423 _m +354 423 _l +354 362 _l +293 362 _l +293 423 _l +415 423 _m +476 423 _l +476 362 _l +415 362 _l +}_e{415 423 _l +537 423 _m +598 423 _l +598 362 _l +537 362 _l +537 423 _l +659 423 _m +719 423 _l +719 362 _l +659 362 _l +659 423 _l +-10 302 _m +50 302 _l +50 241 _l +-10 241 _l +-10 302 _l +232 302 _m +293 302 _l +293 241 _l +232 241 _l +232 302 _l +354 302 _m +415 302 _l +415 241 _l +354 241 _l +354 302 _l +476 302 _m +537 302 _l +537 241 _l +476 241 _l +476 302 _l +598 302 _m +}_e{659 302 _l +659 241 _l +598 241 _l +598 302 _l +111 302 _m +172 302 _l +172 241 _l +111 241 _l +111 302 _l +659 180 _m +719 180 _l +719 119 _l +659 119 _l +659 180 _l +537 180 _m +598 180 _l +598 119 _l +537 119 _l +537 180 _l +415 180 _m +476 180 _l +476 119 _l +415 119 _l +415 180 _l +293 180 _m +354 180 _l +354 119 _l +293 119 _l +293 180 _l +172 180 _m +232 180 _l +232 119 _l +}_e{172 119 _l +172 180 _l +50 180 _m +111 180 _l +111 119 _l +50 119 _l +50 180 _l +-10 58 _m +50 58 _l +50 -1 _l +-10 -1 _l +-10 58 _l +111 58 _m +172 58 _l +172 -1 _l +111 -1 _l +111 58 _l +232 58 _m +293 58 _l +293 -1 _l +232 -1 _l +232 58 _l +354 58 _m +415 58 _l +415 -1 _l +354 -1 _l +354 58 _l +476 58 _m +537 58 _l +537 -1 _l +476 -1 _l +476 58 _l +}_e{598 58 _m +659 58 _l +659 -1 _l +598 -1 _l +598 58 _l +659 -62 _m +719 -62 _l +719 -124 _l +659 -124 _l +659 -62 _l +537 -62 _m +598 -62 _l +598 -124 _l +537 -124 _l +537 -62 _l +415 -62 _m +476 -62 _l +476 -124 _l +415 -124 _l +415 -62 _l +293 -62 _m +354 -62 _l +354 -124 _l +293 -124 _l +293 -62 _l +172 -62 _m +232 -62 _l +232 -124 _l +172 -124 _l +172 -62 _l +50 -62 _m +111 -62 _l +}_e{111 -124 _l +50 -124 _l +50 -62 _l +-10 -184 _m +50 -184 _l +50 -245 _l +-10 -245 _l +-10 -184 _l +111 -184 _m +172 -184 _l +172 -245 _l +111 -245 _l +111 -184 _l +232 -184 _m +293 -184 _l +293 -245 _l +232 -245 _l +232 -184 _l +354 -184 _m +415 -184 _l +415 -245 _l +354 -245 _l +354 -184 _l +476 -184 _m +537 -184 _l +537 -245 _l +476 -245 _l +476 -184 _l +598 -184 _m +659 -184 _l +659 -245 _l +598 -245 _l +}_e{598 -184 _l +_cl}_e}_d +/dkshade{{729 0 0 -306 729 910 _sc +729 728 _m +729 545 _l +669 545 _l +669 484 _l +729 484 _l +729 302 _l +669 302 _l +669 241 _l +729 241 _l +729 58 _l +669 58 _l +669 -1 _l +729 -1 _l +729 -184 _l +669 -184 _l +669 -245 _l +729 -245 _l +729 -306 _l +0 -306 _l +0 -124 _l +61 -124 _l +61 -62 _l +0 -62 _l +0 119 _l +61 119 _l +61 180 _l +0 180 _l +0 362 _l +61 362 _l +61 423 _l +}_e{0 423 _l +0 606 _l +61 606 _l +61 667 _l +0 667 _l +0 849 _l +61 849 _l +61 910 _l +121 910 _l +121 849 _l +182 849 _l +182 910 _l +243 910 _l +243 849 _l +304 849 _l +304 910 _l +365 910 _l +365 849 _l +425 849 _l +425 910 _l +486 910 _l +486 849 _l +547 849 _l +547 910 _l +608 910 _l +608 849 _l +669 849 _l +669 910 _l +729 910 _l +729 789 _l +669 789 _l +669 728 _l +}_e{729 728 _l +61 789 _m +61 728 _l +121 728 _l +121 789 _l +61 789 _l +182 789 _m +182 728 _l +243 728 _l +243 789 _l +182 789 _l +304 789 _m +304 728 _l +365 728 _l +365 789 _l +304 789 _l +425 789 _m +425 728 _l +486 728 _l +486 789 _l +425 789 _l +547 789 _m +547 728 _l +608 728 _l +608 789 _l +547 789 _l +669 667 _m +608 667 _l +608 606 _l +669 606 _l +669 667 _l +547 667 _m +}_e{486 667 _l +486 606 _l +547 606 _l +547 667 _l +425 667 _m +365 667 _l +365 606 _l +425 606 _l +425 667 _l +304 667 _m +243 667 _l +243 606 _l +304 606 _l +304 667 _l +182 667 _m +121 667 _l +121 606 _l +182 606 _l +182 667 _l +61 545 _m +61 484 _l +121 484 _l +121 545 _l +61 545 _l +182 545 _m +182 484 _l +243 484 _l +243 545 _l +182 545 _l +304 545 _m +304 484 _l +365 484 _l +}_e{365 545 _l +304 545 _l +425 545 _m +425 484 _l +486 484 _l +486 545 _l +425 545 _l +547 545 _m +547 484 _l +608 484 _l +608 545 _l +547 545 _l +182 423 _m +121 423 _l +121 362 _l +182 362 _l +182 423 _l +243 423 _m +243 362 _l +304 362 _l +304 423 _l +243 423 _l +365 423 _m +365 362 _l +425 362 _l +425 423 _l +365 423 _l +486 423 _m +486 362 _l +547 362 _l +547 423 _l +486 423 _l +}_e{608 423 _m +608 362 _l +669 362 _l +669 423 _l +608 423 _l +61 302 _m +61 241 _l +121 241 _l +121 302 _l +61 302 _l +304 302 _m +304 241 _l +365 241 _l +365 302 _l +304 302 _l +243 241 _m +243 302 _l +182 302 _l +182 241 _l +243 241 _l +425 302 _m +425 241 _l +486 241 _l +486 302 _l +425 302 _l +547 302 _m +547 241 _l +608 241 _l +608 302 _l +547 302 _l +669 119 _m +669 180 _l +}_e{608 180 _l +608 119 _l +669 119 _l +547 119 _m +547 180 _l +486 180 _l +486 119 _l +547 119 _l +425 119 _m +425 180 _l +365 180 _l +365 119 _l +425 119 _l +304 119 _m +304 180 _l +243 180 _l +243 119 _l +304 119 _l +182 119 _m +182 180 _l +121 180 _l +121 119 _l +182 119 _l +61 58 _m +61 -1 _l +121 -1 _l +121 58 _l +61 58 _l +182 58 _m +182 -1 _l +243 -1 _l +243 58 _l +}_e{182 58 _l +304 58 _m +304 -1 _l +365 -1 _l +365 58 _l +304 58 _l +425 58 _m +425 -1 _l +486 -1 _l +486 58 _l +425 58 _l +547 58 _m +547 -1 _l +608 -1 _l +608 58 _l +547 58 _l +669 -124 _m +669 -62 _l +608 -62 _l +608 -124 _l +669 -124 _l +547 -124 _m +547 -62 _l +486 -62 _l +486 -124 _l +547 -124 _l +425 -124 _m +425 -62 _l +365 -62 _l +365 -124 _l +425 -124 _l +304 -124 _m +}_e{304 -62 _l +243 -62 _l +243 -124 _l +304 -124 _l +182 -124 _m +182 -62 _l +121 -62 _l +121 -124 _l +182 -124 _l +61 -184 _m +61 -245 _l +121 -245 _l +121 -184 _l +61 -184 _l +182 -184 _m +182 -245 _l +243 -245 _l +243 -184 _l +182 -184 _l +304 -184 _m +304 -245 _l +365 -245 _l +365 -184 _l +304 -184 _l +425 -184 _m +425 -245 _l +486 -245 _l +486 -184 _l +425 -184 _l +547 -184 _m +547 -245 _l +608 -245 _l +}_e{608 -184 _l +547 -184 _l +_cl}_e}_d +/filledbox{604 0 71 0 532 461 _sc +71 461 _m +532 461 _l +532 0 _l +71 0 _l +71 461 _l +_cl}_d +/filledrect{1000 0 0 155 1000 343 _sc +0 343 _m +1000 343 _l +1000 155 _l +0 155 _l +0 343 _l +_cl}_d +/triagup{990 0 148 0 842 693 _sc +148 0 _m +495 693 _l +842 0 _l +148 0 _l +_cl}_d +/triagrt{990 0 141 -14 849 692 _sc +141 692 _m +849 338 _l +141 -14 _l +141 692 _l +_cl}_d +/triagdn{990 0 148 -14 842 678 _sc +842 678 _m +495 -14 _l +148 678 _l +842 678 _l +_cl}_d +/triaglf{990 0 141 -14 849 692 _sc +849 692 _m +849 -14 _l +141 338 _l +849 692 _l +_cl}_d +/circle{{604 0 87 67 517 497 _sc +302 497 _m +338 497 373 487 407 469 _c +441 450 468 423 488 389 _c +507 355 517 319 517 282 _c +517 222 496 172 454 130 _c +412 88 361 67 302 67 _c +242 67 192 88 150 130 _c +108 172 87 222 87 282 _c +87 319 96 355 116 389 _c +135 423 162 450 196 469 _c +230 487 266 497 302 497 _c +302 460 _m +272 460 242 452 214 437 _c +186 421 164 399 148 371 _c +132 342 124 312 124 282 _c +124 232 141 190 176 156 _c +211 121 253 104 302 104 _c +351 104 393 121 428 156 _c +462 190 480 232 480 282 _c +480 312 472 342 456 371 _c +440 399 417 421 389 437 _c +361 452 332 460 302 460 _c +_cl}_e}_d +/invbullet{604 0 63 0 541 479 _sc +63 0 _m +63 479 _l +541 479 _l +541 0 _l +63 0 _l +302 338 _m +274 338 251 328 232 309 _c +212 289 203 266 203 239 _c +203 212 212 189 232 170 _c +251 150 274 141 302 141 _c +329 141 352 150 371 170 _c +390 189 400 212 400 239 _c +400 266 390 289 371 309 _c +352 328 329 338 302 338 _c +_cl}_d +/invcircle{{604 0 21 0 584 564 _sc +21 0 _m +21 564 _l +584 564 _l +584 0 _l +21 0 _l +303 497 _m +266 497 230 487 196 469 _c +162 450 135 423 116 389 _c +96 355 87 319 87 282 _c +87 222 108 172 150 130 _c +192 88 243 67 303 67 _c +362 67 413 88 455 130 _c +497 172 518 222 518 282 _c +518 319 508 355 489 389 _c +469 423 442 450 408 469 _c +374 487 339 497 303 497 _c +303 460 _m +332 460 361 452 390 437 _c +418 421 440 399 456 371 _c +472 343 480 313 480 282 _c +480 232 462 190 428 156 _c +393 121 351 104 303 104 _c +253 104 211 121 177 156 _c +142 190 125 232 125 282 _c +125 313 132 343 148 371 _c +164 399 186 421 215 437 _c +243 452 273 460 303 460 _c +_cl}_e}_d +/smileface{{1021 0 199 -57 822 564 _sc +822 253 _m +822 167 791 93 731 33 _c +670 -27 597 -57 511 -57 _c +425 -57 351 -27 290 33 _c +229 93 199 167 199 253 _c +199 339 229 412 290 473 _c +351 533 425 564 511 564 _c +597 564 670 533 731 473 _c +791 412 822 339 822 253 _c +777 253 _m +777 326 751 389 699 441 _c +647 493 584 519 511 519 _c +437 519 374 493 322 441 _c +270 389 245 326 245 253 _c +245 179 270 117 322 65 _c +374 13 437 -12 511 -12 _c +584 -12 647 13 699 65 _c +751 117 777 179 777 253 _c +431 317 _m +431 306 427 297 419 289 _c +411 281 402 278 391 278 _c +380 278 371 281 363 289 _c +355 297 352 306 352 317 _c +352 328 355 337 363 345 _c +371 353 380 357 391 357 _c +}_e{402 357 411 353 419 345 _c +427 337 431 328 431 317 _c +669 317 _m +669 306 665 297 657 289 _c +649 281 640 278 630 278 _c +619 278 610 281 602 289 _c +594 297 590 306 590 317 _c +590 328 594 337 602 345 _c +610 353 619 357 630 357 _c +640 357 649 353 657 345 _c +665 337 669 328 669 317 _c +367 153 _m +397 170 _l +423 123 461 100 511 100 _c +560 100 598 123 624 170 _c +654 153 _l +638 121 618 98 594 82 _c +570 66 542 58 511 58 _c +479 58 451 66 427 82 _c +403 98 383 121 367 153 _c +_cl}_e}_d +/invsmileface{{1052 0 215 -57 837 564 _sc +837 253 _m +837 167 806 93 746 33 _c +685 -27 612 -57 526 -57 _c +440 -57 366 -27 306 33 _c +245 93 215 167 215 253 _c +215 339 245 412 306 473 _c +366 533 440 564 526 564 _c +612 564 685 533 746 473 _c +806 412 837 339 837 253 _c +446 317 _m +446 328 442 337 434 345 _c +426 353 417 357 407 357 _c +396 357 387 353 379 345 _c +371 337 367 328 367 317 _c +367 306 371 297 379 289 _c +387 281 396 278 407 278 _c +417 278 426 281 434 289 _c +442 297 446 306 446 317 _c +685 317 _m +685 328 681 337 673 345 _c +665 353 656 357 646 357 _c +634 357 625 353 617 345 _c +609 337 606 328 606 317 _c +606 306 609 297 617 289 _c +625 281 634 278 646 278 _c +}_e{656 278 665 281 673 289 _c +681 297 685 306 685 317 _c +383 153 _m +399 121 419 98 443 82 _c +467 66 494 58 526 58 _c +558 58 586 66 610 82 _c +634 98 654 121 670 153 _c +639 170 _l +613 123 576 100 526 100 _c +476 100 439 123 413 170 _c +383 153 _l +_cl}_e}_d +/sun{{917 0 8 -108 909 792 _sc +440 792 _m +478 792 _l +478 627 _l +510 625 540 618 566 608 _c +592 598 619 581 648 558 _c +790 697 _l +815 671 _l +675 531 _l +699 500 716 473 726 449 _c +738 417 744 386 745 356 _c +909 356 _l +909 323 _l +746 323 _l +739 261 716 204 676 153 _c +815 11 _l +787 -12 _l +649 125 _l +617 101 589 84 565 75 _c +541 66 512 60 478 56 _c +478 -108 _l +440 -108 _l +440 56 _l +404 60 373 68 348 78 _c +323 88 298 103 272 123 _c +128 -12 _l +}_e{104 12 _l +243 152 _l +221 179 204 206 193 233 _c +182 259 175 290 172 325 _c +8 325 _l +8 358 _l +172 358 _l +174 392 181 423 192 449 _c +202 475 219 501 242 529 _c +104 669 _l +127 697 _l +270 559 _l +302 581 331 598 357 608 _c +383 618 410 624 440 627 _c +440 792 _l +708 341 _m +708 410 683 469 634 518 _c +585 566 526 591 458 591 _c +388 591 329 566 281 518 _c +232 469 208 410 208 341 _c +208 272 232 213 281 164 _c +329 115 388 91 458 91 _c +526 91 585 115 634 164 _c +683 213 708 272 708 341 _c +_cl}_e}_d +/female{{750 0 119 -213 630 736 _sc +389 225 _m +389 29 _l +613 29 _l +613 0 _l +389 0 _l +389 -213 _l +360 -213 _l +360 0 _l +135 0 _l +135 29 _l +360 29 _l +360 225 _l +326 225 290 235 250 257 _c +210 278 178 309 154 350 _c +130 391 119 434 119 480 _c +119 524 130 566 153 607 _c +175 647 207 679 247 702 _c +287 724 330 736 375 736 _c +419 736 461 724 502 702 _c +542 679 574 647 596 607 _c +618 566 630 524 630 480 _c +630 412 606 353 560 304 _c +513 254 456 228 389 225 _c +375 708 _m +336 708 298 698 262 678 _c +225 658 196 630 176 594 _c +156 557 146 519 146 479 _c +146 415 168 361 213 317 _c +257 272 311 250 375 250 _c +438 250 492 272 537 317 _c +581 361 604 415 604 479 _c +}_e{604 519 593 557 573 594 _c +552 630 523 658 487 678 _c +451 698 413 708 375 708 _c +_cl}_e}_d +/male{{750 0 54 -127 691 791 _sc +594 791 _m +611 783 _l +691 458 _l +663 451 _l +594 734 _l +419 359 _l +467 335 503 302 528 261 _c +552 219 565 175 565 128 _c +565 84 553 41 531 1 _c +509 -39 477 -70 437 -93 _c +396 -115 354 -127 310 -127 _c +265 -127 222 -115 182 -93 _c +142 -70 110 -39 88 1 _c +65 41 54 84 54 128 _c +54 198 79 258 129 308 _c +179 358 239 383 311 383 _c +336 383 363 378 392 370 _c +568 747 _l +306 617 _l +294 643 _l +594 791 _l +310 357 _m +271 357 233 347 197 327 _c +160 307 131 279 111 243 _c +91 206 81 168 81 128 _c +81 64 103 10 148 -34 _c +192 -78 246 -101 310 -101 _c +373 -101 427 -78 472 -34 _c +516 10 539 64 539 128 _c +}_e{539 168 528 206 508 243 _c +488 279 459 307 423 327 _c +386 347 348 357 310 357 _c +_cl}_e}_d +/spade{{531 0 28 0 503 601 _sc +266 601 _m +274 565 287 534 305 506 _c +323 478 354 444 399 404 _c +444 363 473 332 485 310 _c +497 288 503 266 503 244 _c +503 212 492 186 471 165 _c +450 144 425 134 396 134 _c +370 134 346 142 326 158 _c +305 174 287 197 271 227 _c +271 179 278 141 290 113 _c +302 85 322 62 349 46 _c +375 30 411 20 456 18 _c +459 0 _l +72 0 _l +76 18 _l +136 18 182 35 215 70 _c +248 105 264 157 263 227 _c +248 196 230 173 208 157 _c +186 141 162 134 135 134 _c +105 134 80 144 59 166 _c +38 187 28 212 28 242 _c +28 266 33 287 44 307 _c +58 333 82 360 115 387 _c +148 414 172 436 188 454 _c +212 481 229 505 240 526 _c +251 547 260 572 266 601 _c +_cl}_e}_d +/club{{656 0 27 0 629 601 _sc +536 0 _m +122 0 _l +126 17 _l +180 28 215 39 233 50 _c +259 66 280 91 297 124 _c +314 156 323 191 323 227 _c +323 232 322 240 322 250 _c +302 209 277 179 249 161 _c +221 142 192 133 163 133 _c +125 133 92 146 66 172 _c +40 198 27 231 27 270 _c +27 308 39 339 63 365 _c +87 391 114 404 145 404 _c +164 404 191 395 225 379 _c +211 402 202 419 198 431 _c +194 442 192 454 192 468 _c +192 505 204 536 230 562 _c +256 588 288 601 327 601 _c +365 601 397 588 423 562 _c +449 536 463 506 463 471 _c +463 441 451 411 429 379 _c +}_e{456 392 473 399 479 401 _c +487 403 497 405 508 405 _c +540 405 569 392 593 367 _c +617 341 629 310 629 272 _c +629 232 615 199 589 173 _c +563 147 531 134 495 134 _c +474 134 453 139 431 149 _c +409 159 391 172 375 188 _c +363 200 349 221 333 250 _c +334 198 342 157 356 127 _c +370 97 393 72 423 52 _c +443 38 480 27 532 17 _c +536 0 _l +_cl}_e}_d +/heart{{594 0 31 -11 563 601 _sc +298 -11 _m +288 27 273 62 255 96 _c +236 130 200 182 146 253 _c +106 305 82 339 73 353 _c +58 375 47 396 41 415 _c +34 434 31 453 31 473 _c +31 509 43 539 67 564 _c +91 588 120 601 156 601 _c +192 601 223 588 250 563 _c +269 543 285 515 298 478 _c +308 514 323 542 343 562 _c +370 588 401 601 437 601 _c +472 601 502 588 526 564 _c +550 540 563 511 563 478 _c +563 448 555 418 541 386 _c +527 354 499 313 458 262 _c +404 194 366 139 342 96 _c +322 61 308 25 298 -11 _c +_cl}_e}_d +/diamond{510 0 31 -11 479 601 _sc +254 601 _m +283 551 319 499 361 443 _c +410 377 449 328 479 295 _c +455 269 415 220 361 147 _c +317 88 281 35 255 -11 _c +246 5 234 25 219 47 _c +192 86 159 132 121 184 _c +112 195 82 232 31 295 _c +64 332 106 385 158 455 _c +196 506 228 555 254 601 _c +_cl}_d +/musicalnote{{500 0 18 -17 482 666 _sc +237 666 _m +256 666 _l +312 666 349 663 367 659 _c +392 652 415 639 435 621 _c +449 607 461 588 469 563 _c +477 538 482 509 482 476 _c +482 426 _l +434 426 _l +434 447 _l +434 469 429 487 420 503 _c +410 518 396 530 378 539 _c +354 549 328 554 299 554 _c +286 554 _l +286 146 _l +286 106 280 76 270 54 _c +259 32 241 14 216 2 _c +190 -10 163 -17 133 -17 _c +97 -17 69 -7 49 12 _c +28 32 18 58 18 91 _c +18 125 30 153 55 177 _c +79 200 112 212 152 212 _c +177 212 205 204 237 189 _c +237 666 _l +_cl}_e}_d +/musicalnotedbl{{750 0 42 -62 649 742 _sc +261 621 _m +649 742 _l +649 201 _l +649 160 644 129 634 109 _c +624 89 606 72 582 59 _c +557 45 529 39 499 39 _c +463 39 434 49 413 69 _c +392 89 382 116 382 148 _c +382 180 394 208 419 232 _c +444 256 477 268 517 268 _c +529 268 541 266 551 264 _c +561 262 577 256 600 247 _c +600 600 _l +309 510 _l +309 102 _l +309 62 303 31 293 10 _c +283 -11 265 -28 240 -42 _c +214 -55 187 -62 157 -62 _c +121 -62 93 -51 73 -31 _c +52 -11 42 14 42 46 _c +42 80 54 108 79 132 _c +103 155 136 167 176 167 _c +201 167 229 159 261 145 _c +261 621 _l +_cl}_e}_d +/IJ{735 0 93 -11 684 716 _sc +false CharStrings /I get exec +gsave 261 0 translate +false CharStrings /J get exec +grestore }_d +/ij{444 0 66 -209 387 716 _sc +false CharStrings /i get exec +gsave 233 0 translate +false CharStrings /j get exec +grestore }_d +/napostrophe{604 0 53 0 604 723 _sc +gsave 117 0 translate +false CharStrings /n get exec +grestore false CharStrings /quoteright get exec +}_d +/minute{188 0 63 462 194 716 _sc +63 462 _m +68 596 _l +94 716 _l +194 716 _l +168 596 _l +117 462 _l +63 462 _l +_cl}_d +/second{354 0 63 462 333 716 _sc +false CharStrings /minute get exec +gsave 138 0 translate +false CharStrings /minute get exec +grestore }_d +/afii61248{{885 0 47 -25 838 728 _sc +303 490 _m +363 482 _l +356 440 339 408 312 385 _c +284 361 251 350 212 350 _c +162 350 122 366 92 398 _c +62 430 47 477 47 538 _c +47 600 62 647 92 679 _c +122 711 162 728 212 728 _c +252 728 284 718 309 698 _c +334 678 350 650 357 614 _c +297 604 _l +291 628 281 647 267 659 _c +253 671 235 678 215 678 _c +183 678 158 666 139 644 _c +119 622 110 587 110 539 _c +110 490 119 455 138 433 _c +157 411 181 400 211 400 _c +235 400 256 407 272 422 _c +288 436 298 459 303 490 _c +199 -25 _m +591 728 _l +662 728 _l +272 -25 _l +199 -25 _l +499 181 _m +499 241 514 288 545 321 _c +576 354 617 371 668 371 _c +}_e{718 371 759 354 791 321 _c +822 288 838 243 838 187 _c +838 122 822 73 791 41 _c +760 9 719 -7 668 -7 _c +618 -7 577 9 546 41 _c +514 73 499 119 499 181 _c +562 181 _m +562 135 572 100 592 77 _c +612 53 638 42 668 42 _c +698 42 724 53 744 77 _c +764 100 775 135 775 183 _c +775 227 764 261 744 285 _c +724 308 698 320 668 320 _c +638 320 612 308 592 285 _c +572 261 562 227 562 181 _c +_cl}_e}_d +/afii61289{{323 0 7 -11 315 728 _sc +7 206 _m +94 321 _l +94 543 _l +94 616 104 665 124 690 _c +144 715 172 728 208 728 _c +239 728 265 717 285 696 _c +305 675 315 647 315 611 _c +315 581 305 544 286 501 _c +266 458 230 399 176 325 _c +176 122 _l +176 93 178 75 183 68 _c +187 61 194 58 204 58 _c +212 58 221 60 233 66 _c +244 71 267 86 301 110 _c +301 31 _l +265 3 228 -11 191 -11 _c +161 -11 137 -2 120 16 _c +102 34 94 64 94 106 _c +94 216 _l +55 168 _l +7 206 _l +176 439 _m +208 493 227 531 235 552 _c +243 573 247 593 247 611 _c +247 631 242 646 234 657 _c +}_e{228 665 220 669 210 669 _c +200 669 192 665 188 657 _c +180 643 176 607 176 550 _c +176 439 _l +_cl}_e}_d +/H22073{604 0 71 0 532 461 _sc +71 461 _m +532 461 _l +532 0 _l +71 0 _l +71 461 _l +108 424 _m +108 37 _l +495 37 _l +495 424 _l +108 424 _l +_cl}_d +/H18543{354 0 64 217 290 443 _sc +290 443 _m +290 217 _l +64 217 _l +64 443 _l +290 443 _l +_cl}_d +/H18551{354 0 64 217 290 443 _sc +290 443 _m +290 217 _l +64 217 _l +64 443 _l +290 443 _l +253 406 _m +101 406 _l +101 254 _l +253 254 _l +253 406 _l +_cl}_d +/H18533{604 0 87 67 517 497 _sc +302 497 _m +338 497 373 487 407 469 _c +441 450 468 423 488 389 _c +507 355 517 319 517 282 _c +517 222 496 172 454 130 _c +412 88 361 67 302 67 _c +242 67 192 88 150 130 _c +108 172 87 222 87 282 _c +87 319 96 355 116 389 _c +135 423 162 450 196 469 _c +230 487 266 497 302 497 _c +_cl}_d +/openbullet{354 0 55 208 300 453 _sc +177 453 _m +211 453 240 441 264 417 _c +288 393 300 364 300 331 _c +300 297 288 268 264 244 _c +240 220 211 208 177 208 _c +143 208 114 220 90 244 _c +66 268 55 297 55 331 _c +55 364 66 393 90 417 _c +114 441 143 453 177 453 _c +177 416 _m +153 416 133 407 117 391 _c +100 374 92 354 92 331 _c +92 307 100 286 117 270 _c +133 253 153 245 177 245 _c +200 245 220 253 237 270 _c +254 286 263 307 263 331 _c +263 354 254 374 238 391 _c +221 407 201 416 177 416 _c +_cl}_d +/Amacron{667 0 0 0 668 843 _sc +false CharStrings /A get exec +gsave 161 171 translate +false CharStrings /macron get exec +grestore }_d +/amacron{556 0 36 -11 514 671 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /macron get exec +grestore }_d +/Ccircumflex{722 0 50 -11 683 894 _sc +false CharStrings /C get exec +gsave 211 174 translate +false CharStrings /circumflex get exec +grestore }_d +/ccircumflex{500 0 39 -11 491 720 _sc +false CharStrings /c get exec +gsave 122 0 translate +false CharStrings /circumflex get exec +grestore }_d +/Cdotaccent{722 0 50 -11 683 888 _sc +false CharStrings /C get exec +gsave 211 195 translate +false CharStrings /dotaccent get exec +grestore }_d +/cdotaccent{500 0 39 -11 491 692 _sc +false CharStrings /c get exec +gsave 117 0 translate +false CharStrings /dotaccent get exec +grestore }_d +/Emacron{667 0 79 0 613 848 _sc +false CharStrings /E get exec +gsave 188 177 translate +false CharStrings /macron get exec +grestore }_d +/emacron{556 0 37 -11 515 671 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /macron get exec +grestore }_d +/Ebreve{667 0 79 0 613 892 _sc +false CharStrings /E get exec +gsave 177 177 translate +false CharStrings /breve get exec +grestore }_d +/ebreve{556 0 37 -11 515 715 _sc +false CharStrings /e get exec +gsave 119 0 translate +false CharStrings /breve get exec +grestore }_d +/Edotaccent{667 0 79 0 613 869 _sc +false CharStrings /E get exec +gsave 188 177 translate +false CharStrings /dotaccent get exec +grestore }_d +/edotaccent{556 0 37 -11 515 692 _sc +false CharStrings /e get exec +gsave 122 0 translate +false CharStrings /dotaccent get exec +grestore }_d +/Gcircumflex{778 0 53 -11 715 891 _sc +false CharStrings /G get exec +gsave 257 171 translate +false CharStrings /circumflex get exec +grestore }_d +/gcircumflex{556 0 32 -209 489 720 _sc +false CharStrings /g get exec +gsave 98 0 translate +false CharStrings /circumflex get exec +grestore }_d +/Gdotaccent{778 0 53 -11 715 864 _sc +false CharStrings /G get exec +gsave 257 171 translate +false CharStrings /dotaccent get exec +grestore }_d +/gdotaccent{556 0 32 -209 489 692 _sc +false CharStrings /g get exec +gsave 111 0 translate +false CharStrings /dotaccent get exec +grestore }_d +/Gcommaaccent{778 0 53 -205 715 728 _sc +false CharStrings /G get exec +gsave 260 0 translate +false CharStrings /cedilla get exec +grestore }_d +/gcommaaccent{{556 0 32 -209 489 770 _sc +309 657 _m +309 571 _l +207 571 _l +207 628 _l +207 664 213 694 225 717 _c +237 739 258 757 289 770 _c +315 729 _l +285 716 267 692 262 657 _c +309 657 _l +50 -42 _m +135 -55 _l +141 -109 180 -137 254 -137 _c +293 -137 324 -129 347 -113 _c +369 -97 384 -78 390 -55 _c +396 -31 400 9 400 68 _c +362 22 314 0 258 0 _c +186 0 130 25 91 77 _c +51 128 32 189 32 261 _c +32 339 51 404 91 454 _c +130 504 186 530 258 530 _c +318 530 368 505 408 456 _c +408 519 _l +489 519 _l +489 70 _l +}_e{489 -4 481 -58 466 -94 _c +451 -130 425 -158 388 -178 _c +351 -198 307 -209 257 -209 _c +187 -209 134 -193 100 -163 _c +65 -133 48 -92 50 -42 _c +123 269 _m +123 199 136 149 164 119 _c +192 88 225 73 265 73 _c +307 73 341 89 367 121 _c +393 153 407 202 407 268 _c +407 323 394 368 369 404 _c +344 440 309 458 263 458 _c +221 458 187 441 161 407 _c +135 373 123 327 123 269 _c +_cl}_e}_d +/Hcircumflex{722 0 80 0 642 896 _sc +false CharStrings /H get exec +gsave 210 177 translate +false CharStrings /circumflex get exec +grestore }_d +/hcircumflex{556 0 66 0 488 896 _sc +false CharStrings /h get exec +gsave 146 177 translate +false CharStrings /circumflex get exec +grestore }_d +/Hbar{722 0 15 0 707 716 _sc +80 537 _m +15 537 _l +15 609 _l +80 609 _l +80 716 _l +175 716 _l +175 609 _l +547 609 _l +547 716 _l +642 716 _l +642 609 _l +707 609 _l +707 537 _l +642 537 _l +642 0 _l +547 0 _l +547 337 _l +175 337 _l +175 0 _l +80 0 _l +80 537 _l +175 537 _m +175 422 _l +547 422 _l +547 537 _l +175 537 _l +_cl}_d +/hbar{{556 0 3 0 488 716 _sc +66 585 _m +3 585 _l +3 651 _l +66 651 _l +66 716 _l +154 716 _l +154 651 _l +333 651 _l +333 585 _l +154 585 _l +154 459 _l +193 506 245 530 310 530 _c +354 530 395 517 432 493 _c +469 468 488 413 488 329 _c +488 0 _l +400 0 _l +400 329 _l +400 413 363 455 291 455 _c +250 455 217 441 192 415 _c +166 389 154 345 154 284 _c +154 0 _l +66 0 _l +66 585 _l +_cl}_e}_d +/Itilde{278 0 -30 0 296 885 _sc +false CharStrings /I get exec +gsave -33 177 translate +false CharStrings /tilde get exec +grestore }_d +/itilde{278 0 -21 0 305 708 _sc +false CharStrings /dotlessi get exec +gsave 100 0 translate +false CharStrings /tilde get exec +grestore }_d +/Imacron{278 0 -13 0 291 835 _sc +false CharStrings /I get exec +gsave -27 164 translate +false CharStrings /macron get exec +grestore }_d +/imacron{278 0 -10 0 293 671 _sc +false CharStrings /dotlessi get exec +gsave 100 0 translate +false CharStrings /macron get exec +grestore }_d +/Ibreve{278 0 0 0 288 879 _sc +false CharStrings /I get exec +gsave -22 164 translate +false CharStrings /breve get exec +grestore }_d +/ibreve{278 0 -2 0 286 715 _sc +false CharStrings /dotlessi get exec +gsave 100 0 translate +false CharStrings /breve get exec +grestore }_d +/Iogonek{278 0 80 -207 293 716 _sc +155 0 _m +145 -24 141 -47 141 -67 _c +141 -89 147 -107 161 -121 _c +174 -135 191 -142 211 -142 _c +236 -142 263 -134 293 -119 _c +293 -177 _l +254 -197 218 -207 185 -207 _c +155 -207 130 -197 110 -178 _c +90 -158 80 -132 80 -99 _c +80 -73 85 -40 97 0 _c +97 716 _l +191 716 _l +191 0 _l +155 0 _l +_cl}_d +/iogonek{222 0 50 -207 264 716 _sc +66 615 _m +66 716 _l +154 716 _l +154 615 _l +66 615 _l +125 0 _m +115 -24 111 -47 111 -67 _c +111 -89 117 -107 131 -121 _c +144 -135 161 -142 182 -142 _c +206 -142 234 -134 264 -119 _c +264 -177 _l +226 -197 190 -207 156 -207 _c +122 -207 96 -197 78 -177 _c +59 -157 50 -131 50 -99 _c +50 -77 55 -44 66 0 _c +66 519 _l +154 519 _l +154 0 _l +125 0 _l +_cl}_d +/Jcircumflex{500 0 27 -11 541 896 _sc +false CharStrings /J get exec +gsave 220 177 translate +false CharStrings /circumflex get exec +grestore }_d +/jcircumflex{222 0 -45 -209 266 720 _sc +112 666 _m +57 583 _l +-42 583 _l +63 720 _l +156 720 _l +266 583 _l +167 583 _l +112 666 _l +-45 -200 _m +-28 -125 _l +-11 -129 2 -132 12 -132 _c +32 -132 46 -125 54 -112 _c +61 -98 65 -69 65 -25 _c +65 519 _l +153 519 _l +153 -27 _l +153 -91 143 -138 124 -166 _c +105 -194 71 -209 23 -209 _c +0 -209 -23 -206 -45 -200 _c +_cl}_d +/Kcommaaccent{667 0 73 -205 665 716 _sc +false CharStrings /K get exec +gsave 225 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/kcommaaccent{500 0 66 -205 496 716 _sc +false CharStrings /k get exec +gsave 141 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/kgreenlandic{500 0 65 0 495 519 _sc +65 0 _m +65 519 _l +153 519 _l +153 308 _l +361 519 _l +475 519 _l +277 326 _l +495 0 _l +387 0 _l +215 265 _l +153 206 _l +153 0 _l +65 0 _l +_cl}_d +/Lcommaaccent{556 0 73 -205 521 716 _sc +false CharStrings /L get exec +gsave 166 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/lcommaaccent{222 0 0 -205 210 716 _sc +false CharStrings /l get exec +gsave 71 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/Ncommaaccent{722 0 76 -205 640 716 _sc +false CharStrings /N get exec +gsave 237 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/ncommaaccent{556 0 66 -205 487 530 _sc +false CharStrings /n get exec +gsave 122 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/Eng{{723 0 81 -11 670 728 _sc +81 716 _m +176 716 _l +176 627 _l +213 669 250 697 287 709 _c +324 721 363 728 404 728 _c +462 728 510 714 548 688 _c +585 662 615 624 637 574 _c +659 524 670 456 670 368 _c +670 240 648 144 606 82 _c +564 20 507 -11 436 -11 _c +394 -11 354 0 315 23 _c +357 98 _l +388 80 414 72 436 72 _c +461 72 484 82 505 103 _c +526 124 543 156 555 199 _c +567 242 574 298 574 366 _c +574 554 508 648 376 648 _c +333 648 295 637 262 617 _c +229 597 206 571 194 540 _c +182 508 176 459 176 391 _c +176 0 _l +81 0 _l +81 716 _l +_cl}_e}_d +/eng{{556 0 68 -209 489 530 _sc +489 319 _m +489 -27 _l +489 -91 479 -138 460 -166 _c +441 -194 407 -209 359 -209 _c +335 -209 312 -206 290 -200 _c +307 -125 _l +324 -129 338 -132 348 -132 _c +369 -132 383 -124 390 -110 _c +397 -96 401 -67 401 -25 _c +401 315 _l +401 363 392 399 376 421 _c +359 443 331 454 292 454 _c +254 454 221 441 195 417 _c +169 393 156 348 156 283 _c +156 0 _l +68 0 _l +68 519 _l +147 519 _l +147 445 _l +185 501 240 530 312 530 _c +354 530 389 521 418 503 _c +446 485 465 462 475 435 _c +484 408 489 369 489 319 _c +_cl}_e}_d +/Omacron{778 0 48 -11 733 853 _sc +false CharStrings /O get exec +gsave 232 182 translate +false CharStrings /macron get exec +grestore }_d +/omacron{556 0 33 -11 519 671 _sc +false CharStrings /o get exec +gsave 115 0 translate +false CharStrings /macron get exec +grestore }_d +/Obreve{778 0 48 -11 733 892 _sc +false CharStrings /O get exec +gsave 232 177 translate +false CharStrings /breve get exec +grestore }_d +/obreve{556 0 33 -11 519 715 _sc +false CharStrings /o get exec +gsave 115 0 translate +false CharStrings /breve get exec +grestore }_d +/Rcommaaccent{722 0 79 -205 709 716 _sc +false CharStrings /R get exec +gsave 237 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/rcommaaccent{333 0 65 -205 347 530 _sc +false CharStrings /r get exec +gsave 18 0 translate +false CharStrings /Uf005 get exec +grestore }_d +/Scircumflex{667 0 45 -11 615 894 _sc +false CharStrings /S get exec +gsave 162 174 translate +false CharStrings /circumflex get exec +grestore }_d +/scircumflex{500 0 31 -11 461 720 _sc +false CharStrings /s get exec +gsave 93 0 translate +false CharStrings /circumflex get exec +grestore }_d +/Tbar{611 0 23 0 591 716 _sc +259 307 _m +98 307 _l +98 372 _l +259 372 _l +259 631 _l +23 631 _l +23 716 _l +591 716 _l +591 631 _l +354 631 _l +354 372 _l +514 372 _l +514 307 _l +354 307 _l +354 0 _l +259 0 _l +259 307 _l +_cl}_d +/tbar{{278 0 6 -6 259 700 _sc +71 251 _m +6 251 _l +6 315 _l +71 315 _l +71 450 _l +6 450 _l +6 519 _l +71 519 _l +71 647 _l +159 700 _l +159 519 _l +247 519 _l +247 450 _l +159 450 _l +159 315 _l +243 315 _l +243 251 _l +159 251 _l +159 147 _l +159 119 162 100 168 90 _c +174 80 187 75 208 75 _c +218 75 231 76 247 79 _c +259 1 _l +235 -3 214 -6 194 -6 _c +159 -6 132 0 114 11 _c +95 22 83 37 78 56 _c +73 75 71 107 71 152 _c +71 251 _l +_cl}_e}_d +/Utilde{722 0 79 -11 642 882 _sc +false CharStrings /U get exec +gsave 205 174 translate +false CharStrings /tilde get exec +grestore }_d +/utilde{556 0 64 -11 484 708 _sc +false CharStrings /u get exec +gsave 115 0 translate +false CharStrings /tilde get exec +grestore }_d +/Umacron{722 0 79 -11 642 845 _sc +false CharStrings /U get exec +gsave 205 174 translate +false CharStrings /macron get exec +grestore }_d +/umacron{556 0 64 -11 484 671 _sc +false CharStrings /u get exec +gsave 115 0 translate +false CharStrings /macron get exec +grestore }_d +/Ubreve{722 0 79 -11 642 889 _sc +false CharStrings /U get exec +gsave 195 174 translate +false CharStrings /breve get exec +grestore }_d +/ubreve{556 0 64 -11 484 715 _sc +false CharStrings /u get exec +gsave 115 0 translate +false CharStrings /breve get exec +grestore }_d +/Uogonek{{722 0 79 -207 642 716 _sc +384 -11 _m +377 -33 374 -52 374 -66 _c +374 -89 380 -107 394 -121 _c +407 -135 424 -142 444 -142 _c +469 -142 496 -134 526 -119 _c +526 -177 _l +488 -197 452 -207 419 -207 _c +387 -207 362 -197 342 -177 _c +322 -157 313 -131 313 -99 _c +313 -76 317 -46 326 -10 _c +238 -3 175 23 137 69 _c +98 115 79 192 79 302 _c +79 716 _l +173 716 _l +173 303 _l +173 240 179 194 191 164 _c +203 134 223 111 252 96 _c +280 80 314 73 352 73 _c +423 73 473 89 503 121 _c +532 153 547 213 547 303 _c +547 716 _l +642 716 _l +642 302 _l +}_e{642 239 635 187 623 145 _c +610 103 584 67 545 38 _c +505 9 452 -7 384 -11 _c +_cl}_e}_d +/uogonek{{556 0 64 -207 603 519 _sc +465 0 _m +455 -24 451 -47 451 -67 _c +451 -89 457 -107 471 -121 _c +484 -135 501 -142 521 -142 _c +545 -142 573 -134 603 -119 _c +603 -177 _l +565 -197 529 -207 495 -207 _c +463 -207 437 -197 418 -177 _c +398 -157 389 -131 389 -99 _c +389 -77 393 -49 402 -15 _c +406 0 _l +406 76 _l +365 18 310 -11 241 -11 _c +199 -11 164 -2 136 16 _c +107 34 88 56 78 84 _c +68 111 64 149 64 197 _c +64 519 _l +152 519 _l +152 231 _l +152 185 154 153 158 134 _c +162 114 173 98 191 84 _c +209 70 231 64 259 64 _c +288 64 314 71 338 87 _c +361 103 376 122 384 146 _c +392 169 396 201 396 241 _c +}_e{396 519 _l +484 519 _l +484 0 _l +465 0 _l +_cl}_e}_d +/Wcircumflex{944 0 12 0 933 896 _sc +false CharStrings /W get exec +gsave 303 177 translate +false CharStrings /circumflex get exec +grestore }_d +/wcircumflex{722 0 3 0 714 720 _sc +false CharStrings /w get exec +gsave 200 0 translate +false CharStrings /circumflex get exec +grestore }_d +/Ycircumflex{667 0 3 0 659 896 _sc +false CharStrings /Y get exec +gsave 178 177 translate +false CharStrings /circumflex get exec +grestore }_d +/ycircumflex{500 0 16 -209 491 720 _sc +false CharStrings /y get exec +gsave 105 0 translate +false CharStrings /circumflex get exec +grestore }_d +/longs{222 0 67 0 292 728 _sc +67 0 _m +67 574 _l +67 611 71 640 80 661 _c +88 681 104 698 126 710 _c +148 722 176 728 210 728 _c +236 728 263 725 292 719 _c +279 643 _l +261 645 244 647 228 647 _c +198 647 179 640 169 628 _c +159 615 155 594 155 566 _c +155 0 _l +67 0 _l +_cl}_d +/Aringacute{667 0 0 0 668 1037 _sc +false CharStrings /Aring get exec +gsave 166 317 translate +false CharStrings /acute get exec +grestore }_d +/aringacute{556 0 36 -11 514 939 _sc +false CharStrings /aring get exec +gsave 132 220 translate +false CharStrings /acute get exec +grestore }_d +/AEacute{1000 0 0 0 945 896 _sc +false CharStrings /AE get exec +gsave 322 177 translate +false CharStrings /acute get exec +grestore }_d +/aeacute{889 0 33 -11 849 720 _sc +false CharStrings /ae get exec +gsave 293 0 translate +false CharStrings /acute get exec +grestore }_d +/Oslashacute{778 0 41 -28 741 896 _sc +false CharStrings /Oslash get exec +gsave 224 177 translate +false CharStrings /acute get exec +grestore }_d +/oslashacute{611 0 63 -38 549 720 _sc +false CharStrings /oslash get exec +gsave 151 0 translate +false CharStrings /acute get exec +grestore }_d +/anoteleia{278 0 90 418 190 519 _sc +90 418 _m +90 519 _l +190 519 _l +190 418 _l +90 418 _l +_cl}_d +/Wgrave{944 0 12 0 933 896 _sc +false CharStrings /W get exec +gsave 317 177 translate +false CharStrings /grave get exec +grestore }_d +/wgrave{722 0 3 0 714 720 _sc +false CharStrings /w get exec +gsave 176 0 translate +false CharStrings /grave get exec +grestore }_d +/Wacute{944 0 12 0 933 896 _sc +false CharStrings /W get exec +gsave 317 177 translate +false CharStrings /acute get exec +grestore }_d +/wacute{722 0 3 0 714 720 _sc +false CharStrings /w get exec +gsave 176 0 translate +false CharStrings /acute get exec +grestore }_d +/Wdieresis{944 0 12 0 933 860 _sc +false CharStrings /W get exec +gsave 303 140 translate +false CharStrings /dieresis get exec +grestore }_d +/wdieresis{722 0 3 0 714 720 _sc +false CharStrings /w get exec +gsave 200 0 translate +false CharStrings /dieresis get exec +grestore }_d +/Ygrave{667 0 3 0 659 896 _sc +false CharStrings /Y get exec +gsave 163 177 translate +false CharStrings /grave get exec +grestore }_d +/ygrave{500 0 16 -209 491 720 _sc +false CharStrings /y get exec +gsave 89 0 translate +false CharStrings /grave get exec +grestore }_d +/quotereversed{222 0 67 489 169 723 _sc +162 621 _m +116 621 _l +116 570 134 537 169 523 _c +148 489 _l +118 502 97 520 85 544 _c +73 567 67 600 67 643 _c +67 723 _l +162 723 _l +162 621 _l +_cl}_d +/U203e{333 0 -14 599 349 671 _sc +-14 599 _m +-14 671 _l +349 671 _l +349 599 _l +-14 599 _l +_cl}_d +/lira{{556 0 13 -13 528 728 _sc +211 300 _m +347 300 _l +347 228 _l +209 228 _l +198 180 172 135 131 93 _c +155 100 178 104 200 104 _c +228 104 258 100 292 92 _c +347 78 386 72 409 72 _c +431 72 461 81 500 99 _c +528 19 _l +480 -1 442 -11 412 -11 _c +388 -11 352 -4 306 9 _c +256 24 220 32 198 32 _c +144 32 93 17 47 -13 _c +13 71 _l +76 107 113 159 124 228 _c +21 228 _l +}_e{21 300 _l +124 300 _l +122 310 116 334 104 372 _c +21 372 _l +21 444 _l +83 444 _l +75 473 72 500 72 526 _c +72 589 93 638 136 674 _c +179 710 232 728 295 728 _c +349 728 396 712 436 681 _c +476 650 501 604 510 543 _c +422 530 _l +418 566 404 596 380 620 _c +356 644 326 656 292 656 _c +253 656 222 643 200 619 _c +177 595 166 568 166 538 _c +166 518 170 487 179 444 _c +347 444 _l +347 372 _l +196 372 _l +204 338 209 314 211 300 _c +_cl}_e}_d +/estimated{{600 0 44 -16 561 535 _sc +157 259 _m +157 78 _l +195 38 244 19 302 19 _c +384 19 449 59 495 139 _c +530 118 _l +491 62 453 25 417 9 _c +380 -7 342 -16 302 -16 _c +225 -16 163 10 115 62 _c +67 114 44 179 44 259 _c +44 339 68 405 116 457 _c +164 509 226 535 302 535 _c +372 535 431 511 481 465 _c +530 419 557 350 561 259 _c +157 259 _l +448 295 _m +448 440 _l +406 480 357 500 301 500 _c +244 500 196 480 157 440 _c +157 295 _l +448 295 _l +_cl}_e}_d +/oneeighth{{834 0 52 -27 813 728 _sc +111 -27 _m +649 728 _l +726 728 _l +188 -27 _l +111 -27 _l +162 358 _m +162 628 _l +128 602 92 583 52 573 _c +52 633 _l +70 639 92 650 118 668 _c +144 686 164 705 180 725 _c +232 725 _l +232 358 _l +162 358 _l +598 179 _m +556 194 535 220 535 258 _c +535 284 545 306 565 324 _c +585 342 618 352 664 352 _c +708 352 742 343 765 325 _c +787 307 799 285 799 257 _c +799 219 776 193 731 179 _c +785 165 813 135 813 89 _c +813 55 799 27 771 7 _c +743 -13 709 -23 667 -23 _c +}_e{622 -23 586 -13 560 7 _c +534 27 521 54 521 87 _c +521 135 546 165 598 179 _c +607 253 _m +607 237 612 224 624 216 _c +636 208 650 204 667 204 _c +683 204 697 208 709 216 _c +721 224 727 236 727 251 _c +727 265 721 277 709 286 _c +697 295 683 300 666 300 _c +648 300 633 295 623 286 _c +612 276 607 265 607 253 _c +594 93 _m +594 51 618 31 667 31 _c +689 31 707 36 720 47 _c +733 58 740 72 740 90 _c +740 109 733 124 719 135 _c +705 146 687 152 665 152 _c +642 152 624 146 612 135 _c +600 123 594 109 594 93 _c +_cl}_e}_d +/threeeighths{{834 0 17 -27 813 728 _sc +112 -27 _m +649 728 _l +726 728 _l +188 -27 _l +112 -27 _l +17 454 _m +88 461 _l +98 424 123 406 163 406 _c +185 406 203 412 218 424 _c +232 436 240 452 240 471 _c +240 507 214 525 164 525 _c +135 523 _l +146 577 _l +196 577 222 593 222 627 _c +222 655 202 670 163 670 _c +129 670 106 653 95 621 _c +25 632 _l +38 668 55 692 77 705 _c +99 718 126 725 159 725 _c +252 725 299 694 299 633 _c +}_e{299 593 276 567 231 555 _c +287 541 316 510 316 463 _c +316 430 302 403 275 381 _c +248 359 212 349 168 349 _c +81 349 31 384 17 454 _c +599 179 _m +556 194 535 220 535 258 _c +535 287 546 310 568 327 _c +590 343 622 352 664 352 _c +709 352 743 343 766 325 _c +788 307 800 285 800 257 _c +800 221 777 195 731 179 _c +785 165 813 135 813 89 _c +813 53 799 26 771 6 _c +743 -13 709 -23 667 -23 _c +623 -23 588 -13 561 6 _c +534 26 521 53 521 87 _c +521 135 547 165 599 179 _c +608 253 _m +608 237 613 224 625 216 _c +636 208 650 204 667 204 _c +}_e{683 204 697 208 709 216 _c +721 224 727 236 727 251 _c +727 265 721 277 709 286 _c +697 295 683 300 666 300 _c +648 300 633 295 623 286 _c +613 276 608 265 608 253 _c +594 93 _m +594 51 618 31 667 31 _c +690 31 708 36 721 48 _c +733 59 740 73 740 90 _c +740 109 733 124 719 135 _c +705 146 688 152 666 152 _c +642 152 624 146 612 135 _c +600 123 594 109 594 93 _c +_cl}_e}_d +/fiveeighths{{834 0 17 -27 813 728 _sc +112 -27 _m +649 728 _l +726 728 _l +188 -27 _l +112 -27 _l +17 452 _m +87 461 _l +95 427 119 410 159 410 _c +183 410 203 416 218 430 _c +233 443 241 460 241 481 _c +241 499 234 516 220 530 _c +206 544 189 551 168 551 _c +145 551 122 540 100 520 _c +31 532 _l +69 716 _l +299 716 _l +299 657 _l +116 657 _l +100 580 _l +125 596 152 605 182 605 _c +218 605 249 593 275 569 _c +301 545 314 516 314 481 _c +314 441 299 409 269 385 _c +239 361 202 349 160 349 _c +}_e{122 349 90 358 65 376 _c +39 394 23 420 17 452 _c +599 179 _m +556 194 535 220 535 258 _c +535 287 546 310 568 327 _c +590 343 622 352 664 352 _c +709 352 743 343 766 325 _c +788 307 800 285 800 257 _c +800 221 777 195 731 179 _c +785 165 813 135 813 89 _c +813 53 799 26 771 6 _c +743 -13 709 -23 667 -23 _c +623 -23 588 -13 561 6 _c +534 26 521 53 521 87 _c +521 135 547 165 599 179 _c +608 253 _m +608 237 613 224 625 216 _c +636 208 650 204 667 204 _c +683 204 697 208 709 216 _c +721 224 727 236 727 251 _c +727 265 721 277 709 286 _c +697 295 683 300 666 300 _c +648 300 633 295 623 286 _c +613 276 608 265 608 253 _c +}_e{594 93 _m +594 51 618 31 667 31 _c +690 31 708 36 721 48 _c +733 59 740 73 740 90 _c +740 109 733 124 719 135 _c +705 146 688 152 666 152 _c +642 152 624 146 612 135 _c +600 123 594 109 594 93 _c +_cl}_e}_d +/seveneighths{{834 0 36 -27 813 728 _sc +100 -27 _m +637 728 _l +714 728 _l +176 -27 _l +100 -27 _l +96 358 _m +104 462 146 562 224 657 _c +36 657 _l +36 716 _l +304 716 _l +304 677 _l +224 584 179 478 168 358 _c +96 358 _l +598 179 _m +556 194 535 220 535 258 _c +535 284 545 306 565 324 _c +585 342 618 352 664 352 _c +708 352 742 343 765 325 _c +787 307 799 285 799 257 _c +799 219 776 193 731 179 _c +785 165 813 135 813 89 _c +813 53 799 26 771 6 _c +743 -13 709 -23 667 -23 _c +}_e{623 -23 588 -13 561 6 _c +534 26 521 53 521 87 _c +521 135 546 165 598 179 _c +607 253 _m +607 237 612 224 624 216 _c +636 208 650 204 667 204 _c +682 204 696 208 708 216 _c +720 224 727 236 727 251 _c +727 265 721 277 709 286 _c +697 295 683 300 666 300 _c +648 300 633 295 623 286 _c +612 276 607 265 607 253 _c +594 93 _m +594 51 618 31 667 31 _c +689 31 707 36 720 47 _c +733 58 740 72 740 90 _c +740 109 733 124 719 135 _c +705 146 687 152 665 152 _c +642 152 624 146 612 135 _c +600 123 594 109 594 93 _c +_cl}_e}_d +/Uf004{333 0 110 -268 219 -70 _sc +117 -155 _m +117 -70 _l +219 -70 _l +219 -127 _l +219 -163 213 -192 201 -215 _c +189 -237 167 -255 137 -268 _c +110 -227 _l +140 -213 158 -189 164 -155 _c +117 -155 _l +_cl}_d +/Uf005{333 0 52 -205 264 -21 _sc +104 -23 _m +115 -21 126 -21 136 -21 _c +180 -21 213 -30 233 -48 _c +253 -66 264 -86 264 -110 _c +264 -135 252 -157 229 -176 _c +206 -195 170 -205 121 -205 _c +100 -205 77 -203 52 -199 _c +58 -142 _l +72 -143 86 -144 100 -144 _c +154 -144 182 -131 182 -106 _c +182 -84 161 -74 120 -74 _c +115 -74 110 -74 104 -75 _c +104 -23 _l +_cl}_d +/tonos{333 0 108 583 289 720 _sc +false CharStrings /acute get exec +}_d +/dieresistonos{333 0 -10 601 344 736 _sc +169 736 _m +260 736 _l +163 601 _l +105 601 _l +169 736 _l +260 694 _m +344 694 _l +344 601 _l +260 601 _l +260 694 _l +-10 694 _m +74 694 _l +74 601 _l +-10 601 _l +-10 694 _l +_cl}_d +/Alphatonos{667 0 0 0 669 716 _sc +0 0 _m +274 716 _l +376 716 _l +669 0 _l +562 0 _l +478 217 _l +179 217 _l +100 0 _l +0 0 _l +206 294 _m +449 294 _l +374 492 _l +350 555 333 605 323 641 _c +314 595 301 549 285 504 _c +206 294 _l +26 579 _m +91 716 _l +207 716 _l +99 579 _l +26 579 _l +_cl}_d +/Epsilontonos{784 0 -42 0 730 716 _sc +196 0 _m +196 716 _l +713 716 _l +713 631 _l +291 631 _l +291 412 _l +687 412 _l +687 328 _l +291 328 _l +291 84 _l +730 84 _l +730 0 _l +196 0 _l +-42 579 _m +21 716 _l +137 716 _l +29 579 _l +-42 579 _l +_cl}_d +/Etatonos{838 0 -42 0 737 716 _sc +176 0 _m +176 716 _l +271 716 _l +271 422 _l +643 422 _l +643 716 _l +737 716 _l +737 0 _l +643 0 _l +643 337 _l +271 337 _l +271 0 _l +176 0 _l +-42 579 _m +22 716 _l +137 716 _l +30 579 _l +-42 579 _l +_cl}_d +/Iotatonos{384 0 -42 0 271 716 _sc +176 0 _m +176 716 _l +271 716 _l +271 0 _l +176 0 _l +-42 579 _m +22 716 _l +137 716 _l +30 579 _l +-42 579 _l +_cl}_d +/Omicrontonos{{774 0 -42 -11 728 729 _sc +43 349 _m +43 467 75 560 139 628 _c +203 695 285 729 386 729 _c +486 729 568 694 632 626 _c +696 558 728 468 728 357 _c +728 246 695 157 631 90 _c +567 22 485 -11 385 -11 _c +313 -11 250 6 196 42 _c +142 78 103 124 79 180 _c +55 236 43 293 43 349 _c +141 347 _m +141 265 163 199 207 147 _c +251 95 310 69 385 69 _c +457 69 516 94 562 146 _c +607 197 630 267 630 357 _c +630 448 607 519 561 570 _c +515 621 457 647 386 647 _c +316 647 257 623 211 575 _c +164 527 141 451 141 347 _c +-42 579 _m +21 716 _l +137 716 _l +29 579 _l +-42 579 _l +_cl}_e}_d +/Upsilontonos{855 0 -42 0 842 716 _sc +461 0 _m +461 303 _l +186 716 _l +301 716 _l +442 500 _l +469 457 493 417 515 379 _c +536 416 562 458 593 505 _c +731 716 _l +842 716 _l +556 303 _l +556 0 _l +461 0 _l +-42 579 _m +21 716 _l +137 716 _l +29 579 _l +-42 579 _l +_cl}_d +/Omegatonos{{752 0 -42 0 706 728 _sc +52 84 _m +208 84 _l +109 166 60 267 60 387 _c +60 451 73 509 99 561 _c +125 613 161 653 209 683 _c +257 713 314 728 381 728 _c +447 728 502 714 546 687 _c +590 659 626 620 655 569 _c +683 518 698 457 698 387 _c +698 267 648 166 549 84 _c +706 84 _l +706 0 _l +427 0 _l +427 79 _l +543 133 601 231 601 373 _c +601 452 580 517 540 569 _c +499 621 446 647 380 647 _c +312 647 258 621 218 569 _c +178 517 158 453 158 377 _c +158 233 215 134 331 79 _c +331 0 _l +52 0 _l +52 84 _l +-42 579 _m +21 716 _l +137 716 _l +}_e{29 579 _l +-42 579 _l +_cl}_e}_d +/iotadieresistonos{222 0 -65 0 289 736 _sc +67 0 _m +67 519 _l +155 519 _l +155 0 _l +67 0 _l +114 736 _m +205 736 _l +107 601 _l +50 601 _l +114 736 _l +204 694 _m +289 694 _l +289 601 _l +204 601 _l +204 694 _l +-65 694 _m +18 694 _l +18 601 _l +-65 601 _l +-65 694 _l +_cl}_d +/Alpha{667 0 0 0 668 716 _sc +false CharStrings /A get exec +}_d +/Beta{667 0 73 0 614 716 _sc +false CharStrings /B get exec +}_d +/Delta{668 0 0 0 669 716 _sc +0 0 _m +274 716 _l +376 716 _l +669 0 _l +0 0 _l +130 84 _m +528 84 _l +374 492 _l +350 553 333 603 323 641 _c +314 596 301 550 284 504 _c +130 84 _l +_cl}_d +/Epsilon{667 0 79 0 613 716 _sc +false CharStrings /E get exec +}_d +/Zeta{611 0 20 0 586 716 _sc +false CharStrings /Z get exec +}_d +/Eta{722 0 80 0 642 716 _sc +false CharStrings /H get exec +}_d +/Iota{278 0 93 0 188 716 _sc +false CharStrings /I get exec +}_d +/Kappa{667 0 73 0 665 716 _sc +false CharStrings /K get exec +}_d +/Lambda{668 0 5 0 660 716 _sc +383 716 _m +660 0 _l +557 0 _l +371 520 _l +355 565 342 604 333 637 _c +322 597 309 558 295 520 _c +102 0 _l +5 0 _l +285 716 _l +383 716 _l +_cl}_d +/Mu{833 0 74 0 757 716 _sc +false CharStrings /M get exec +}_d +/Nu{722 0 76 0 640 716 _sc +false CharStrings /N get exec +}_d +/Xi{650 0 53 0 597 716 _sc +66 716 _m +583 716 _l +583 631 _l +66 631 _l +66 716 _l +112 400 _m +538 400 _l +538 316 _l +112 316 _l +112 400 _l +53 84 _m +597 84 _l +597 0 _l +53 0 _l +53 84 _l +_cl}_d +/Omicron{778 0 48 -11 733 729 _sc +false CharStrings /O get exec +}_d +/Pi{722 0 80 0 642 716 _sc +80 0 _m +80 716 _l +642 716 _l +642 0 _l +547 0 _l +547 631 _l +175 631 _l +175 0 _l +80 0 _l +_cl}_d +/Rho{667 0 77 0 624 716 _sc +false CharStrings /P get exec +}_d +/Sigma{618 0 72 0 579 716 _sc +559 716 _m +559 631 _l +175 631 _l +419 372 _l +175 84 _l +579 84 _l +579 0 _l +72 0 _l +72 99 _l +306 372 _l +72 621 _l +72 716 _l +559 716 _l +_cl}_d +/Tau{611 0 23 0 591 716 _sc +false CharStrings /T get exec +}_d +/Upsilon{667 0 3 0 659 716 _sc +false CharStrings /Y get exec +}_d +/Chi{667 0 4 0 661 716 _sc +false CharStrings /X get exec +}_d +/Psi{835 0 62 0 773 716 _sc +62 716 _m +157 716 _l +157 523 _l +157 444 174 389 209 358 _c +243 326 297 308 370 302 _c +370 716 _l +465 716 _l +465 302 _l +533 306 585 325 622 359 _c +659 392 678 451 678 535 _c +678 716 _l +773 716 _l +773 514 _l +773 322 670 224 465 221 _c +465 0 _l +370 0 _l +370 221 _l +262 223 184 249 135 299 _c +86 349 62 418 62 505 _c +62 716 _l +_cl}_d +/Omega{{748 0 47 0 701 728 _sc +47 84 _m +204 84 _l +104 166 55 267 55 387 _c +55 451 68 509 94 561 _c +120 613 156 653 204 683 _c +252 713 309 728 376 728 _c +442 728 497 714 541 687 _c +585 659 621 620 650 569 _c +678 518 693 457 693 387 _c +693 267 643 166 544 84 _c +701 84 _l +701 0 _l +422 0 _l +422 79 _l +538 133 596 231 596 373 _c +596 452 575 517 535 569 _c +494 621 441 647 375 647 _c +307 647 253 621 213 569 _c +173 517 153 453 153 377 _c +153 233 210 134 326 79 _c +326 0 _l +47 0 _l +47 84 _l +_cl}_e}_d +/Iotadieresis{278 0 2 0 276 860 _sc +false CharStrings /I get exec +gsave -27 140 translate +false CharStrings /dieresis get exec +grestore }_d +/Upsilondieresis{667 0 3 0 659 860 _sc +false CharStrings /Y get exec +gsave 164 140 translate +false CharStrings /dieresis get exec +grestore }_d +/alphatonos{578 0 35 -11 541 720 _sc +false CharStrings /alpha get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/epsilontonos{446 0 48 -11 423 720 _sc +false CharStrings /epsilon get exec +gsave 70 0 translate +false CharStrings /acute get exec +grestore }_d +/etatonos{556 0 68 -198 489 720 _sc +false CharStrings /eta get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/iotatonos{222 0 48 0 229 720 _sc +false CharStrings /iota get exec +gsave 65 0 translate +false CharStrings /acute get exec +grestore }_d +/upsilondieresistonos{547 0 66 -11 481 736 _sc +false CharStrings /upsilon get exec +gsave 107 0 translate +false CharStrings /dieresistonos get exec +grestore }_d +/beta{{575 0 68 -198 530 728 _sc +156 66 _m +156 -198 _l +68 -198 _l +68 491 _l +68 546 75 589 90 620 _c +105 651 131 677 167 697 _c +203 717 243 728 288 728 _c +353 728 402 709 436 671 _c +470 633 487 592 487 548 _c +487 504 473 469 446 443 _c +418 416 387 400 353 394 _c +409 388 453 367 484 332 _c +514 297 530 254 530 203 _c +530 147 511 98 475 54 _c +439 10 386 -11 318 -11 _c +247 -11 193 14 156 66 _c +233 422 _m +293 422 336 432 364 453 _c +391 473 405 503 405 543 _c +405 575 393 601 370 623 _c +346 645 317 656 283 656 _c +253 656 226 648 204 632 _c +182 616 168 598 163 578 _c +158 558 156 524 156 476 _c +156 279 _l +156 223 159 181 167 155 _c +175 129 191 105 217 84 _c +243 63 273 53 307 53 _c +}_e{347 53 379 66 403 94 _c +426 122 438 156 438 198 _c +438 232 429 262 412 289 _c +394 315 373 333 348 343 _c +322 353 288 358 246 358 _c +233 358 _l +233 422 _l +_cl}_e}_d +/gamma{500 0 12 -198 488 519 _sc +12 519 _m +104 519 _l +250 110 _l +398 519 _l +488 519 _l +294 0 _l +294 -198 _l +205 -198 _l +205 0 _l +12 519 _l +_cl}_d +/zeta{{441 0 35 -209 433 716 _sc +114 716 _m +433 716 _l +433 656 _l +345 602 271 531 212 444 _c +152 356 123 276 123 202 _c +123 162 131 133 149 114 _c +167 95 195 84 235 82 _c +285 77 321 71 343 65 _c +364 58 383 44 399 24 _c +415 4 423 -20 423 -50 _c +423 -81 413 -110 393 -137 _c +373 -163 351 -182 326 -193 _c +300 -203 269 -209 232 -209 _c +256 -128 _l +310 -122 338 -99 338 -60 _c +338 -46 333 -34 325 -24 _c +316 -14 305 -7 293 -4 _c +280 -1 256 0 221 0 _c +171 1 134 11 109 30 _c +84 48 65 73 53 103 _c +41 133 35 167 35 206 _c +35 282 62 362 118 444 _c +174 526 240 593 317 645 _c +114 645 _l +114 716 _l +_cl}_e}_d +/eta{556 0 68 -198 489 530 _sc +68 0 _m +68 519 _l +147 519 _l +147 445 _l +185 501 240 530 312 530 _c +354 530 389 521 418 503 _c +446 485 465 462 475 435 _c +484 408 489 369 489 319 _c +489 -198 _l +401 -198 _l +401 315 _l +401 363 392 399 376 421 _c +359 443 331 454 292 454 _c +254 454 221 441 195 417 _c +169 393 156 348 156 283 _c +156 0 _l +68 0 _l +_cl}_d +/theta{556 0 45 -11 512 728 _sc +45 358 _m +45 604 122 728 278 728 _c +434 728 512 604 512 358 _c +512 112 434 -11 278 -11 _c +122 -11 45 112 45 358 _c +136 394 _m +421 394 _l +417 495 403 564 377 601 _c +351 637 317 656 277 656 _c +186 656 139 568 136 394 _c +421 323 _m +136 323 _l +139 148 186 61 278 61 _c +370 61 417 148 421 323 _c +_cl}_d +/iota{222 0 67 0 155 519 _sc +67 0 _m +67 519 _l +155 519 _l +155 0 _l +67 0 _l +_cl}_d +/kappa{500 0 65 0 500 519 _sc +65 519 _m +153 519 _l +153 315 _l +363 519 _l +479 519 _l +248 303 _l +500 0 _l +387 0 _l +185 244 _l +153 214 _l +153 0 _l +65 0 _l +65 519 _l +_cl}_d +/lambda{500 0 12 0 487 716 _sc +250 388 _m +104 0 _l +12 0 _l +204 509 _l +127 716 _l +220 716 _l +487 0 _l +395 0 _l +250 388 _l +_cl}_d +/mu{576 0 78 -198 497 519 _sc +false CharStrings /mu get exec +}_d +/nu{500 0 13 0 488 519 _sc +false CharStrings /v get exec +}_d +/xi{{448 0 45 -209 430 728 _sc +377 728 _m +377 655 _l +305 655 _l +251 655 213 647 189 631 _c +165 615 153 593 153 564 _c +153 508 201 480 299 480 _c +371 480 _l +371 407 _l +328 407 291 400 259 388 _c +227 375 198 352 172 320 _c +146 287 134 250 134 208 _c +134 176 143 148 161 124 _c +179 100 219 84 280 78 _c +319 73 348 66 366 56 _c +384 46 400 31 412 11 _c +424 -9 430 -30 430 -54 _c +430 -96 412 -133 376 -163 _c +340 -193 293 -208 233 -209 _c +255 -128 _l +287 -125 310 -117 324 -103 _c +337 -89 344 -74 344 -59 _c +344 -25 316 -6 261 0 _c +117 14 45 83 45 205 _c +45 255 59 299 89 339 _c +119 379 157 409 204 429 _c +}_e{157 435 123 452 102 481 _c +81 510 71 540 71 570 _c +71 612 89 649 127 681 _c +164 712 218 728 290 728 _c +377 728 _l +_cl}_e}_d +/omicron{556 0 33 -11 519 530 _sc +false CharStrings /o get exec +}_d +/rho{{569 0 64 -198 534 530 _sc +64 -198 _m +64 241 _l +64 339 83 412 122 459 _c +160 506 217 530 291 530 _c +364 530 423 505 467 455 _c +511 405 534 340 534 260 _c +534 179 512 114 470 64 _c +428 14 372 -11 304 -11 _c +240 -11 189 9 152 49 _c +152 -198 _l +64 -198 _l +294 458 _m +251 458 217 441 191 408 _c +165 375 153 323 153 252 _c +153 188 165 140 191 108 _c +216 76 250 61 294 61 _c +338 61 373 77 401 110 _c +429 143 443 191 443 255 _c +443 327 428 378 398 410 _c +368 442 334 458 294 458 _c +_cl}_e}_d +/sigma1{{482 0 42 -209 472 530 _sc +472 514 _m +451 440 _l +414 452 378 458 342 458 _c +276 458 224 437 185 397 _c +146 356 127 308 127 254 _c +127 216 137 182 159 153 _c +180 124 222 101 286 85 _c +331 73 364 61 384 51 _c +404 40 420 25 432 7 _c +443 -11 449 -32 449 -57 _c +449 -101 430 -138 394 -166 _c +358 -194 313 -209 259 -209 _c +237 -209 213 -207 185 -203 _c +207 -122 _l +225 -126 242 -128 256 -128 _c +287 -128 311 -121 329 -107 _c +347 -93 356 -77 356 -59 _c +356 -41 349 -27 337 -18 _c +324 -8 297 0 256 8 _c +184 23 130 51 95 92 _c +59 133 42 182 42 239 _c +42 317 70 385 126 443 _c +182 501 257 530 353 530 _c +}_e{393 530 432 524 472 514 _c +_cl}_e}_d +/upsilon{547 0 66 -11 481 519 _sc +66 519 _m +154 519 _l +154 211 _l +154 158 166 120 190 96 _c +214 72 241 61 273 61 _c +299 61 322 68 342 83 _c +362 97 375 114 383 134 _c +390 154 394 182 394 218 _c +394 519 _l +481 519 _l +481 215 _l +481 137 461 80 423 44 _c +385 7 334 -11 272 -11 _c +223 -11 183 0 151 21 _c +119 42 97 67 85 95 _c +72 123 66 162 66 211 _c +66 519 _l +_cl}_d +/chi{525 0 8 -198 516 519 _sc +23 519 _m +119 519 _l +262 231 _l +409 519 _l +506 519 _l +315 165 _l +516 -198 _l +416 -198 _l +262 101 _l +106 -198 _l +8 -198 _l +208 162 _l +23 519 _l +_cl}_d +/psi{{713 0 60 -198 653 519 _sc +60 519 _m +147 519 _l +147 263 _l +147 215 150 178 158 153 _c +166 128 182 107 208 90 _c +233 73 268 64 313 62 _c +313 519 _l +400 519 _l +400 62 _l +442 64 476 73 502 89 _c +527 105 544 125 552 150 _c +560 175 565 213 565 263 _c +565 519 _l +653 519 _l +653 266 _l +653 198 646 147 634 114 _c +621 81 596 53 558 29 _c +520 5 467 -8 400 -11 _c +400 -198 _l +313 -198 _l +313 -11 _l +269 -9 231 -3 199 7 _c +166 17 138 35 116 59 _c +93 83 78 109 71 136 _c +63 162 60 206 60 266 _c +60 519 _l +_cl}_e}_d +/omega{{781 0 42 -11 738 519 _sc +120 519 _m +205 519 _l +156 411 132 321 132 247 _c +132 190 142 144 163 109 _c +183 74 210 57 243 57 _c +263 57 283 65 301 81 _c +319 97 332 117 338 140 _c +344 162 347 194 347 236 _c +347 388 _l +434 388 _l +434 236 _l +434 196 437 164 443 140 _c +449 116 461 97 479 81 _c +497 65 517 57 539 57 _c +570 57 596 74 617 109 _c +638 143 649 189 649 247 _c +649 321 625 411 577 519 _c +661 519 _l +712 427 738 338 738 252 _c +738 166 720 100 684 56 _c +648 11 603 -11 548 -11 _c +474 -11 422 27 391 105 _c +359 27 306 -11 232 -11 _c +}_e{174 -11 127 12 93 59 _c +59 106 42 170 42 252 _c +42 338 68 427 120 519 _c +_cl}_e}_d +/iotadieresis{222 0 -22 0 251 720 _sc +false CharStrings /iota get exec +gsave 72 0 translate +false CharStrings /dieresis get exec +grestore }_d +/upsilondieresis{547 0 66 -11 481 720 _sc +false CharStrings /upsilon get exec +gsave 117 0 translate +false CharStrings /dieresis get exec +grestore }_d +/omicrontonos{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/upsilontonos{547 0 66 -11 481 720 _sc +false CharStrings /upsilon get exec +gsave 107 0 translate +false CharStrings /acute get exec +grestore }_d +/omegatonos{781 0 42 -11 738 720 _sc +false CharStrings /omega get exec +gsave 234 0 translate +false CharStrings /acute get exec +grestore }_d +/afii10023{667 0 79 0 613 860 _sc +false CharStrings /E get exec +gsave 171 140 translate +false CharStrings /dieresis get exec +grestore }_d +/afii10051{{865 0 24 -11 825 716 _sc +24 716 _m +596 716 _l +596 631 _l +357 631 _l +357 409 _l +439 441 511 457 572 457 _c +648 457 709 434 755 388 _c +801 342 825 286 825 220 _c +825 162 806 109 768 61 _c +730 13 674 -11 601 -11 _c +567 -11 528 -6 486 4 _c +501 84 _l +526 72 552 66 579 66 _c +627 66 664 80 690 109 _c +715 137 728 173 728 217 _c +728 263 713 302 684 332 _c +655 362 610 378 549 378 _c +496 378 432 362 357 332 _c +357 0 _l +263 0 _l +263 631 _l +24 631 _l +24 716 _l +_cl}_e}_d +/afii10052{542 0 79 0 542 896 _sc +false CharStrings /afii10020 get exec +gsave 123 177 translate +false CharStrings /acute get exec +grestore }_d +/afii10053{{719 0 49 -11 683 728 _sc +418 412 _m +418 327 _l +152 327 _l +156 247 178 183 219 137 _c +260 90 313 67 377 67 _c +491 67 562 127 591 249 _c +683 225 _l +641 67 542 -11 384 -11 _c +270 -11 186 25 131 97 _c +76 169 50 259 54 366 _c +54 430 66 490 91 544 _c +115 598 153 642 204 676 _c +254 710 315 728 386 728 _c +460 728 522 709 572 673 _c +622 636 655 585 673 520 _c +581 495 _l +553 595 488 645 385 645 _c +315 645 261 624 221 582 _c +181 540 160 483 156 412 _c +418 412 _l +_cl}_e}_d +/afii10054{667 0 45 -11 615 728 _sc +false CharStrings /S get exec +}_d +/afii10055{278 0 93 0 188 716 _sc +false CharStrings /I get exec +}_d +/afii10056{278 0 2 0 276 860 _sc +false CharStrings /I get exec +gsave -27 140 translate +false CharStrings /dieresis get exec +grestore }_d +/afii10057{500 0 27 -11 422 716 _sc +false CharStrings /J get exec +}_d +/afii10058{{1057 0 6 -11 1020 716 _sc +575 716 _m +575 410 _l +746 410 _l +825 410 882 401 918 383 _c +954 365 980 339 996 307 _c +1012 275 1020 242 1020 208 _c +1020 164 1008 124 985 90 _c +962 55 934 31 902 19 _c +869 6 822 0 760 0 _c +480 0 _l +480 631 _l +222 631 _l +222 263 _l +222 187 218 132 211 98 _c +204 63 189 36 167 17 _c +144 -1 116 -11 82 -11 _c +60 -11 35 -7 6 0 _c +22 83 _l +38 77 51 74 63 74 _c +84 74 100 82 111 98 _c +121 114 127 152 127 212 _c +127 716 _l +575 716 _l +575 81 _m +765 81 _l +799 81 826 84 846 91 _c +866 97 883 110 897 130 _c +911 149 918 174 918 206 _c +918 235 910 260 895 280 _c +880 300 860 313 834 319 _c +808 325 764 329 702 329 _c +}_e{575 329 _l +575 81 _l +_cl}_e}_d +/afii10059{{1010 0 80 0 973 716 _sc +528 716 _m +528 410 _l +688 410 _l +756 410 808 404 846 393 _c +884 381 914 359 938 325 _c +961 291 973 252 973 208 _c +973 162 960 121 936 86 _c +911 50 882 27 850 16 _c +817 5 770 0 708 0 _c +434 0 _l +434 329 _l +175 329 _l +175 0 _l +80 0 _l +80 716 _l +175 716 _l +175 410 _l +434 410 _l +434 716 _l +528 716 _l +528 81 _m +706 81 _l +746 81 776 83 796 89 _c +816 95 833 107 849 127 _c +864 147 872 173 872 206 _c +872 233 865 257 852 277 _c +838 297 818 310 791 318 _c +763 325 714 329 644 329 _c +528 329 _l +528 81 _l +_cl}_e}_d +/afii10060{854 0 24 0 809 716 _sc +24 716 _m +597 716 _l +597 631 _l +358 631 _l +358 411 _l +446 441 517 457 571 457 _c +623 457 668 446 706 425 _c +744 404 771 375 786 339 _c +801 303 809 252 809 188 _c +809 0 _l +714 0 _l +714 185 _l +714 231 709 268 701 294 _c +692 320 676 340 653 355 _c +629 369 600 377 566 377 _c +513 377 444 362 358 332 _c +358 0 _l +263 0 _l +263 631 _l +24 631 _l +24 716 _l +_cl}_d +/afii10061{583 0 79 0 579 896 _sc +false CharStrings /afii10028 get exec +gsave 148 177 translate +false CharStrings /acute get exec +grestore }_d +/afii10062{635 0 5 -9 632 886 _sc +false CharStrings /afii10037 get exec +gsave 174 171 translate +false CharStrings /breve get exec +grestore }_d +/afii10145{719 0 78 -198 641 716 _sc +402 0 _m +402 -198 _l +317 -198 _l +317 0 _l +78 0 _l +78 716 _l +173 716 _l +173 84 _l +546 84 _l +546 716 _l +641 716 _l +641 0 _l +402 0 _l +_cl}_d +/afii10017{667 0 0 0 668 716 _sc +false CharStrings /A get exec +}_d +/afii10018{656 0 82 0 621 716 _sc +82 716 _m +546 716 _l +546 631 _l +176 631 _l +176 411 _l +347 411 _l +410 411 460 405 498 393 _c +535 381 565 358 587 324 _c +609 290 621 252 621 208 _c +621 172 613 138 597 107 _c +581 75 557 50 525 30 _c +493 10 438 0 362 0 _c +82 0 _l +82 716 _l +176 81 _m +366 81 _l +416 81 454 91 480 112 _c +506 132 519 164 519 206 _c +519 235 511 260 497 280 _c +482 300 462 313 436 319 _c +410 325 365 329 303 329 _c +176 329 _l +176 81 _l +_cl}_d +/afii10019{667 0 73 0 614 716 _sc +false CharStrings /B get exec +}_d +/afii10020{542 0 79 0 542 716 _sc +79 716 _m +542 716 _l +542 631 _l +173 631 _l +173 0 _l +79 0 _l +79 716 _l +_cl}_d +/afii10021{677 0 0 -166 642 716 _sc +142 716 _m +578 716 _l +578 84 _l +642 84 _l +642 -166 _l +558 -166 _l +558 0 _l +84 0 _l +84 -166 _l +0 -166 _l +0 84 _l +56 84 _l +113 171 142 347 142 611 _c +142 716 _l +483 631 _m +233 631 _l +233 595 _l +233 533 227 450 217 345 _c +206 239 185 152 153 84 _c +483 84 _l +483 631 _l +_cl}_d +/afii10022{667 0 79 0 613 716 _sc +false CharStrings /E get exec +}_d +/afii10024{{923 0 3 0 919 716 _sc +510 716 _m +510 402 _l +556 402 588 410 606 428 _c +623 445 645 485 673 548 _c +693 595 709 628 722 648 _c +734 667 753 683 777 696 _c +801 709 827 716 855 716 _c +885 716 905 715 913 715 _c +913 633 _l +909 633 903 633 894 634 _c +883 634 877 634 875 634 _c +845 634 822 626 808 612 _c +792 597 775 566 756 519 _c +735 467 717 431 702 413 _c +686 394 664 378 636 366 _c +682 353 728 310 772 238 _c +919 0 _l +802 0 _l +683 194 _l +651 245 624 281 602 303 _c +580 324 549 335 510 335 _c +510 0 _l +}_e{413 0 _l +413 335 _l +381 335 354 326 330 310 _c +306 294 278 258 247 204 _c +241 194 _l +121 0 _l +3 0 _l +151 238 _l +195 310 241 353 288 366 _c +262 376 240 390 224 408 _c +208 425 189 462 167 519 _c +146 569 128 601 114 615 _c +99 627 77 634 48 634 _c +10 633 _l +10 715 _l +14 715 32 716 65 716 _c +96 716 123 709 146 697 _c +169 684 187 668 200 649 _c +213 629 230 596 250 548 _c +278 484 300 443 317 427 _c +334 411 366 402 413 402 _c +413 716 _l +510 716 _l +_cl}_e}_d +/afii10025{{604 0 38 -11 563 728 _sc +38 202 _m +128 226 _l +135 190 153 155 183 121 _c +213 86 252 69 302 69 _c +352 69 391 81 420 107 _c +449 133 464 164 464 201 _c +464 240 448 271 418 295 _c +387 318 345 330 293 330 _c +248 330 _l +248 412 _l +291 412 324 414 347 419 _c +370 424 391 437 409 458 _c +427 478 436 502 436 529 _c +436 560 423 587 399 610 _c +375 633 342 645 301 645 _c +265 645 234 636 208 618 _c +182 600 165 576 155 546 _c +145 516 141 493 141 479 _c +50 500 _l +72 652 156 728 302 728 _c +372 728 427 708 468 669 _c +509 630 530 585 530 533 _c +530 466 498 414 435 378 _c +471 368 502 347 526 316 _c +550 285 563 248 563 205 _c +563 143 539 91 491 50 _c +443 9 380 -11 302 -11 _c +}_e{166 -11 78 60 38 202 _c +_cl}_e}_d +/afii10026{719 0 79 0 641 716 _sc +79 716 _m +165 716 _l +165 149 _l +545 716 _l +641 716 _l +641 0 _l +555 0 _l +555 565 _l +173 0 _l +79 0 _l +79 716 _l +_cl}_d +/afii10027{719 0 79 0 641 886 _sc +false CharStrings /afii10026 get exec +gsave 184 171 translate +false CharStrings /breve get exec +grestore }_d +/afii10028{{583 0 79 0 579 716 _sc +79 716 _m +173 716 _l +173 402 _l +216 402 246 410 264 427 _c +282 444 304 484 332 548 _c +352 595 368 628 381 648 _c +393 667 412 683 436 696 _c +460 709 486 716 515 716 _c +551 716 570 715 572 715 _c +572 633 _l +568 633 562 633 553 634 _c +543 634 536 634 534 634 _c +504 634 481 626 467 612 _c +451 597 434 566 416 519 _c +391 458 370 420 354 404 _c +338 388 318 375 295 366 _c +341 353 386 310 432 238 _c +579 0 _l +461 0 _l +342 194 _l +308 248 281 285 259 305 _c +237 325 208 335 173 335 _c +}_e{173 0 _l +79 0 _l +79 716 _l +_cl}_e}_d +/afii10029{656 0 9 -11 578 716 _sc +129 716 _m +578 716 _l +578 0 _l +483 0 _l +483 631 _l +224 631 _l +224 263 _l +224 187 220 132 213 98 _c +206 63 191 36 169 17 _c +147 -1 118 -11 84 -11 _c +63 -11 38 -7 9 0 _c +25 83 _l +40 77 53 74 65 74 _c +86 74 102 82 113 98 _c +123 114 129 152 129 212 _c +129 716 _l +_cl}_d +/afii10030{833 0 74 0 757 716 _sc +false CharStrings /M get exec +}_d +/afii10031{722 0 80 0 642 716 _sc +false CharStrings /H get exec +}_d +/afii10032{778 0 48 -11 733 729 _sc +false CharStrings /O get exec +}_d +/afii10033{719 0 78 0 641 716 _sc +78 716 _m +641 716 _l +641 0 _l +546 0 _l +546 631 _l +173 631 _l +173 0 _l +78 0 _l +78 716 _l +_cl}_d +/afii10034{667 0 77 0 624 716 _sc +false CharStrings /P get exec +}_d +/afii10035{722 0 50 -11 683 728 _sc +false CharStrings /C get exec +}_d +/afii10036{611 0 23 0 591 716 _sc +false CharStrings /T get exec +}_d +/afii10037{635 0 5 -9 632 716 _sc +5 716 _m +101 716 _l +334 277 _l +538 716 _l +632 716 _l +364 159 _l +330 89 302 44 281 23 _c +259 1 229 -9 189 -9 _c +164 -9 134 -3 99 7 _c +99 88 _l +124 73 151 66 180 66 _c +202 66 222 73 239 88 _c +256 103 275 137 295 190 _c +5 716 _l +_cl}_d +/afii10038{{760 0 40 0 720 722 _sc +336 630 _m +336 722 _l +425 722 _l +425 630 _l +516 625 588 598 641 548 _c +693 498 720 435 720 361 _c +720 288 694 226 643 176 _c +591 125 519 97 425 92 _c +425 0 _l +336 0 _l +336 92 _l +251 95 180 121 124 169 _c +68 217 40 281 40 361 _c +40 441 68 505 124 553 _c +180 601 250 626 336 630 _c +425 549 _m +425 174 _l +486 176 534 194 569 227 _c +604 259 622 304 622 361 _c +622 417 604 461 570 494 _c +536 526 487 545 425 549 _c +336 548 _m +277 545 229 528 193 496 _c +156 464 138 419 138 361 _c +138 304 156 259 192 227 _c +228 194 276 176 336 174 _c +336 548 _l +_cl}_e}_d +/afii10039{667 0 4 0 661 716 _sc +false CharStrings /X get exec +}_d +/afii10040{740 0 78 -198 706 716 _sc +78 716 _m +172 716 _l +172 84 _l +545 84 _l +545 716 _l +641 716 _l +641 84 _l +706 84 _l +706 -198 _l +622 -198 _l +622 0 _l +78 0 _l +78 716 _l +_cl}_d +/afii10041{667 0 42 0 588 716 _sc +588 0 _m +493 0 _l +493 289 _l +408 257 334 241 270 241 _c +220 241 176 252 138 276 _c +100 299 74 328 61 364 _c +48 400 42 447 42 505 _c +42 716 _l +137 716 _l +137 514 _l +137 436 151 384 180 360 _c +208 335 243 323 283 323 _c +349 323 419 338 493 368 _c +493 716 _l +588 716 _l +588 0 _l +_cl}_d +/afii10042{917 0 79 0 838 716 _sc +79 716 _m +173 716 _l +173 84 _l +411 84 _l +411 716 _l +506 716 _l +506 84 _l +744 84 _l +744 716 _l +838 716 _l +838 0 _l +79 0 _l +79 716 _l +_cl}_d +/afii10043{938 0 79 -198 903 716 _sc +79 716 _m +173 716 _l +173 84 _l +411 84 _l +411 716 _l +506 716 _l +506 84 _l +744 84 _l +744 716 _l +838 716 _l +838 84 _l +903 84 _l +903 -198 _l +819 -198 _l +819 0 _l +79 0 _l +79 716 _l +_cl}_d +/afii10044{792 0 0 0 757 716 _sc +0 716 _m +313 716 _l +313 410 _l +484 410 _l +596 410 669 389 704 347 _c +739 305 757 259 757 207 _c +757 147 736 97 696 58 _c +656 19 587 0 490 0 _c +218 0 _l +218 631 _l +0 631 _l +0 716 _l +313 81 _m +486 81 _l +545 81 588 91 615 111 _c +641 131 655 162 655 206 _c +655 235 647 260 631 281 _c +615 301 595 314 569 320 _c +543 326 499 329 439 329 _c +313 329 _l +313 81 _l +_cl}_d +/afii10045{885 0 82 0 802 716 _sc +82 716 _m +177 716 _l +177 410 _l +348 410 _l +460 410 533 389 569 348 _c +604 306 622 260 622 208 _c +622 152 603 104 565 62 _c +527 20 456 0 354 0 _c +82 0 _l +82 716 _l +177 81 _m +350 81 _l +409 81 452 91 479 111 _c +506 131 520 163 520 207 _c +520 236 511 261 495 281 _c +479 301 458 314 432 320 _c +406 326 364 329 304 329 _c +177 329 _l +177 81 _l +708 716 _m +802 716 _l +802 0 _l +708 0 _l +708 716 _l +_cl}_d +/afii10046{656 0 81 0 620 716 _sc +81 716 _m +175 716 _l +175 410 _l +346 410 _l +426 410 483 400 519 382 _c +555 363 580 338 596 306 _c +612 274 620 242 620 208 _c +620 152 601 104 563 62 _c +525 20 455 0 353 0 _c +81 0 _l +81 716 _l +175 81 _m +349 81 _l +419 81 464 93 486 118 _c +507 142 518 172 518 208 _c +518 236 510 261 495 281 _c +479 301 459 314 433 320 _c +407 326 364 329 302 329 _c +175 329 _l +175 81 _l +_cl}_d +/afii10047{719 0 36 -11 670 728 _sc +gsave 719 0 translate +false CharStrings /afii10053 get exec +grestore }_d +/afii10048{{1010 0 80 -11 959 728 _sc +80 716 _m +175 716 _l +175 395 _l +313 395 _l +319 496 352 577 412 637 _c +472 697 546 728 635 728 _c +728 728 805 695 867 629 _c +928 563 959 474 959 362 _c +959 244 928 153 867 87 _c +806 21 728 -11 633 -11 _c +546 -11 474 17 416 74 _c +358 130 324 209 314 311 _c +175 311 _l +175 0 _l +80 0 _l +80 716 _l +408 354 _m +408 264 428 194 470 144 _c +512 94 566 69 634 69 _c +703 69 758 94 800 144 _c +841 194 862 266 862 360 _c +862 449 841 519 801 571 _c +760 622 705 648 636 648 _c +565 648 509 622 469 570 _c +428 518 408 446 408 354 _c +_cl}_e}_d +/afii10049{722 0 13 0 644 716 _sc +gsave 722 0 translate +false CharStrings /R get exec +grestore }_d +/afii10065{556 0 36 -11 514 530 _sc +false CharStrings /a get exec +}_d +/afii10066{{573 0 44 -11 533 733 _sc +446 733 _m +523 732 _l +519 697 512 673 500 659 _c +488 645 472 637 454 633 _c +435 629 398 627 344 627 _c +271 627 221 620 195 606 _c +169 592 150 569 139 539 _c +127 508 121 468 120 420 _c +142 452 167 477 197 494 _c +227 510 260 519 297 519 _c +365 519 421 495 466 448 _c +510 401 533 338 533 259 _c +533 198 521 148 499 110 _c +477 71 450 41 420 20 _c +389 0 347 -11 294 -11 _c +232 -11 184 3 150 31 _c +116 59 89 95 71 139 _c +53 183 44 259 44 368 _c +44 505 67 597 114 645 _c +160 692 232 716 328 716 _c +388 716 422 717 430 719 _c +438 721 443 725 446 733 _c +441 261 _m +441 315 428 359 403 394 _c +377 428 341 446 295 446 _c +246 446 208 427 182 391 _c +156 354 143 305 143 245 _c +143 185 157 139 186 107 _c +215 75 251 59 294 59 _c +}_e{338 59 373 77 400 114 _c +427 151 441 200 441 261 _c +_cl}_e}_d +/afii10067{{531 0 66 0 492 519 _sc +66 519 _m +269 519 _l +319 519 356 514 380 506 _c +404 498 425 482 443 460 _c +460 438 469 411 469 381 _c +469 356 463 334 453 316 _c +443 298 427 282 407 270 _c +431 262 452 246 468 224 _c +484 202 492 175 492 145 _c +488 95 471 59 439 35 _c +407 11 361 0 300 0 _c +66 0 _l +66 519 _l +154 300 _m +248 300 _l +285 300 311 302 325 306 _c +339 310 351 318 362 330 _c +373 342 379 356 379 373 _c +379 400 369 419 350 430 _c +330 440 297 446 251 446 _c +154 446 _l +154 300 _l +154 72 _m +270 72 _l +320 72 354 77 372 89 _c +390 101 400 121 402 149 _c +402 165 396 181 386 195 _c +375 209 361 218 344 222 _c +326 226 299 228 261 228 _c +154 228 _l +154 72 _l +}_e{_cl}_e}_d +/afii10068{365 0 66 0 365 519 _sc +66 519 _m +365 519 _l +365 446 _l +154 446 _l +154 0 _l +66 0 _l +66 519 _l +_cl}_d +/afii10069{583 0 0 -146 553 519 _sc +135 519 _m +497 519 _l +497 72 _l +553 72 _l +553 -146 _l +480 -146 _l +480 0 _l +72 0 _l +72 -146 _l +0 -146 _l +0 72 _l +46 72 _l +108 156 137 305 135 519 _c +208 446 _m +202 277 176 152 130 72 _c +409 72 _l +409 446 _l +208 446 _l +_cl}_d +/afii10070{556 0 37 -11 515 530 _sc +false CharStrings /e get exec +}_d +/afii10072{{669 0 -1 0 672 519 _sc +379 519 _m +379 294 _l +407 294 426 299 438 310 _c +450 321 466 352 488 404 _c +508 453 527 485 543 499 _c +559 512 584 519 620 519 _c +652 519 _l +652 446 _l +628 446 _l +604 446 589 442 583 436 _c +576 428 566 407 552 372 _c +538 338 526 314 515 301 _c +504 288 487 276 464 266 _c +502 256 539 221 575 161 _c +672 0 _l +575 0 _l +481 161 _l +461 193 444 214 430 224 _c +416 234 399 240 379 240 _c +379 0 _l +290 0 _l +290 240 _l +}_e{270 240 252 235 238 225 _c +224 215 207 193 188 161 _c +94 0 _l +-1 0 _l +94 161 _l +130 221 167 256 206 266 _c +180 278 161 291 151 305 _c +140 319 124 353 104 407 _c +96 425 89 436 81 440 _c +72 444 59 446 43 446 _c +39 446 30 446 18 446 _c +18 519 _l +30 519 _l +64 519 87 516 101 512 _c +115 508 127 499 138 486 _c +149 473 163 446 181 404 _c +202 353 218 322 230 311 _c +241 299 261 294 290 294 _c +290 519 _l +379 519 _l +_cl}_e}_d +/afii10073{{458 0 24 -11 423 530 _sc +181 234 _m +181 303 _l +217 303 242 305 256 308 _c +270 310 283 318 295 331 _c +307 344 313 360 313 380 _c +313 404 305 423 289 437 _c +273 451 253 458 228 458 _c +178 458 144 429 124 371 _c +41 384 _l +67 481 129 530 229 530 _c +284 530 327 514 359 484 _c +390 454 406 418 406 376 _c +406 334 385 300 345 275 _c +371 261 390 243 403 221 _c +416 199 423 174 423 145 _c +423 98 406 60 372 32 _c +338 3 290 -11 230 -11 _c +112 -11 43 41 24 146 _c +107 164 _l +114 130 129 104 152 86 _c +175 68 201 59 231 59 _c +261 59 285 67 305 84 _c +325 100 335 122 335 148 _c +}_e{335 168 328 186 316 201 _c +304 216 291 225 277 229 _c +263 233 237 235 201 235 _c +197 235 191 234 181 234 _c +_cl}_e}_d +/afii10074{559 0 66 0 492 519 _sc +66 519 _m +154 519 _l +154 123 _l +397 519 _l +492 519 _l +492 0 _l +404 0 _l +404 393 _l +161 0 _l +66 0 _l +66 519 _l +_cl}_d +/afii10075{559 0 66 0 492 715 _sc +false CharStrings /afii10074 get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore }_d +/afii10076{{438 0 65 0 445 519 _sc +65 519 _m +153 519 _l +153 294 _l +181 294 200 299 212 310 _c +223 321 240 352 262 404 _c +279 445 293 472 304 485 _c +314 498 327 507 341 512 _c +355 516 377 519 408 519 _c +426 519 _l +426 446 _l +401 446 _l +378 446 363 442 357 436 _c +350 428 340 407 326 372 _c +312 338 300 314 289 301 _c +277 288 260 276 238 266 _c +275 256 312 221 349 161 _c +445 0 _l +349 0 _l +255 161 _l +235 193 218 214 204 224 _c +190 234 173 240 153 240 _c +153 0 _l +65 0 _l +65 519 _l +_cl}_e}_d +/afii10077{583 0 12 -2 517 519 _sc +109 519 _m +517 519 _l +517 0 _l +430 0 _l +430 446 _l +197 446 _l +197 188 _l +197 127 195 87 191 68 _c +187 49 176 33 158 19 _c +140 5 115 -2 83 -2 _c +62 -2 38 -1 12 0 _c +12 74 _l +50 74 _l +68 74 81 75 89 79 _c +97 83 102 89 105 97 _c +107 105 109 131 109 177 _c +109 519 _l +_cl}_d +/afii10078{688 0 68 0 619 519 _sc +68 519 _m +205 519 _l +341 104 _l +493 519 _l +619 519 _l +619 0 _l +531 0 _l +531 417 _l +378 0 _l +299 0 _l +154 438 _l +154 0 _l +68 0 _l +68 519 _l +_cl}_d +/afii10079{552 0 66 0 486 519 _sc +66 519 _m +154 519 _l +154 303 _l +398 303 _l +398 519 _l +486 519 _l +486 0 _l +398 0 _l +398 230 _l +154 230 _l +154 0 _l +66 0 _l +66 519 _l +_cl}_d +/afii10080{556 0 33 -11 519 530 _sc +false CharStrings /o get exec +}_d +/afii10081{542 0 66 0 476 519 _sc +66 519 _m +476 519 _l +476 0 _l +388 0 _l +388 446 _l +154 446 _l +154 0 _l +66 0 _l +66 519 _l +_cl}_d +/afii10082{556 0 66 -198 516 530 _sc +false CharStrings /p get exec +}_d +/afii10083{500 0 39 -11 491 530 _sc +false CharStrings /c get exec +}_d +/afii10084{458 0 19 0 440 519 _sc +19 519 _m +440 519 _l +440 446 _l +273 446 _l +273 0 _l +186 0 _l +186 446 _l +19 446 _l +19 519 _l +_cl}_d +/afii10085{500 0 16 -209 491 519 _sc +false CharStrings /y get exec +}_d +/afii10086{{823 0 37 -198 786 716 _sc +368 716 _m +456 716 _l +456 468 _l +474 489 493 505 515 515 _c +537 525 560 530 586 530 _c +647 530 696 504 732 453 _c +768 401 786 337 786 260 _c +786 178 766 113 728 63 _c +689 13 641 -11 583 -11 _c +564 -11 545 -8 526 -2 _c +506 3 483 19 456 45 _c +456 -198 _l +368 -198 _l +368 45 _l +350 26 330 12 309 3 _c +287 -6 264 -11 240 -11 _c +186 -11 138 12 98 60 _c +57 107 37 175 37 265 _c +37 339 55 402 92 453 _c +128 504 178 530 240 530 _c +266 530 289 525 311 515 _c +332 505 351 489 368 468 _c +368 716 _l +455 257 _m +455 179 465 126 487 100 _c +509 73 536 60 568 60 _c +}_e{604 60 634 76 659 109 _c +684 142 697 193 697 263 _c +697 329 685 378 662 410 _c +638 442 609 458 573 458 _c +533 458 504 441 484 408 _c +464 374 455 324 455 257 _c +126 267 _m +126 193 138 141 163 109 _c +187 77 218 61 254 61 _c +292 61 321 77 340 109 _c +358 141 368 189 368 253 _c +368 321 358 372 338 406 _c +318 440 289 458 249 458 _c +212 458 182 441 160 408 _c +137 374 126 327 126 267 _c +_cl}_e}_d +/afii10087{500 0 7 0 493 519 _sc +false CharStrings /x get exec +}_d +/afii10088{573 0 67 -146 543 519 _sc +67 519 _m +155 519 _l +155 72 _l +398 72 _l +398 519 _l +486 519 _l +486 72 _l +543 72 _l +543 -146 _l +471 -146 _l +471 0 _l +67 0 _l +67 519 _l +_cl}_d +/afii10089{521 0 34 0 455 519 _sc +34 519 _m +122 519 _l +122 420 _l +122 378 124 347 129 328 _c +134 309 146 292 165 278 _c +184 264 208 257 238 257 _c +271 257 314 266 367 284 _c +367 519 _l +455 519 _l +455 0 _l +367 0 _l +367 209 _l +313 192 262 184 215 184 _c +175 184 141 194 111 214 _c +81 234 60 258 50 287 _c +39 316 34 348 34 383 _c +34 519 _l +_cl}_d +/afii10090{802 0 69 0 733 519 _sc +69 519 _m +157 519 _l +157 73 _l +357 73 _l +357 519 _l +445 519 _l +445 73 _l +646 73 _l +646 519 _l +733 519 _l +733 0 _l +69 0 _l +69 519 _l +_cl}_d +/afii10091{823 0 69 -146 791 519 _sc +69 519 _m +157 519 _l +157 72 _l +357 72 _l +357 519 _l +445 519 _l +445 72 _l +646 72 _l +646 519 _l +733 519 _l +733 72 _l +791 72 _l +791 -146 _l +718 -146 _l +718 0 _l +69 0 _l +69 519 _l +_cl}_d +/afii10092{625 0 20 0 589 519 _sc +20 519 _m +251 519 _l +251 316 _l +363 316 _l +442 316 499 300 535 270 _c +571 239 589 201 589 157 _c +589 110 571 72 537 43 _c +502 14 451 0 384 0 _c +164 0 _l +164 446 _l +20 446 _l +20 519 _l +251 71 _m +344 71 _l +400 71 439 77 463 91 _c +486 105 498 127 498 157 _c +498 184 488 205 468 220 _c +448 235 410 243 355 243 _c +251 243 _l +251 71 _l +_cl}_d +/afii10093{719 0 68 0 647 519 _sc +560 519 _m +647 519 _l +647 0 _l +560 0 _l +560 519 _l +156 72 _m +248 72 _l +304 72 343 78 367 92 _c +391 106 403 127 403 157 _c +403 179 394 198 376 216 _c +358 234 320 243 260 243 _c +156 243 _l +156 72 _l +68 519 _m +156 519 _l +156 316 _l +267 316 _l +339 316 395 301 435 273 _c +474 245 494 206 494 157 _c +494 113 477 76 445 46 _c +412 15 360 0 288 0 _c +68 0 _l +68 519 _l +_cl}_d +/afii10094{521 0 64 0 490 519 _sc +64 519 _m +152 519 _l +152 316 _l +264 316 _l +336 316 392 301 431 273 _c +470 245 490 206 490 157 _c +490 113 473 76 441 46 _c +408 15 356 0 284 0 _c +64 0 _l +64 519 _l +152 72 _m +245 72 _l +300 72 339 78 363 92 _c +387 106 399 127 399 157 _c +399 179 390 198 373 216 _c +355 234 316 243 256 243 _c +152 243 _l +152 72 _l +_cl}_d +/afii10095{510 0 21 -17 474 530 _sc +gsave 510 0 translate +false CharStrings /afii10101 get exec +grestore }_d +/afii10096{{750 0 67 -11 709 530 _sc +67 519 _m +155 519 _l +155 302 _l +261 302 _l +269 376 292 432 331 471 _c +369 510 419 530 481 530 _c +533 530 575 519 605 498 _c +635 477 659 448 679 411 _c +699 373 709 323 709 261 _c +709 171 688 104 648 58 _c +607 12 552 -11 483 -11 _c +418 -11 366 10 327 53 _c +288 95 266 154 261 229 _c +155 229 _l +155 0 _l +67 0 _l +67 519 _l +486 456 _m +442 456 409 439 385 406 _c +361 372 350 326 350 267 _c +350 195 362 143 386 110 _c +410 77 442 61 482 61 _c +522 61 554 76 580 107 _c +606 137 619 187 619 255 _c +619 321 608 371 586 405 _c +564 439 530 456 486 456 _c +_cl}_e}_d +/afii10097{{542 0 15 0 474 519 _sc +474 519 _m +474 0 _l +387 0 _l +387 202 _l +336 202 _l +305 202 282 198 267 190 _c +251 182 229 156 201 113 _c +124 0 _l +15 0 _l +110 140 _l +138 182 167 206 196 212 _c +146 218 108 236 84 266 _c +60 295 48 329 48 367 _c +48 412 64 449 96 477 _c +128 505 174 519 234 519 _c +474 519 _l +387 446 _m +262 446 _l +209 446 175 437 160 421 _c +145 405 138 386 138 364 _c +138 333 149 310 171 296 _c +193 281 233 274 290 274 _c +387 274 _l +387 446 _l +_cl}_e}_d +/afii10071{556 0 37 -11 515 720 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /dieresis get exec +grestore }_d +/afii10099{{556 0 0 -209 488 716 _sc +66 594 _m +0 594 _l +0 652 _l +66 652 _l +66 716 _l +153 716 _l +153 652 _l +321 652 _l +321 594 _l +153 594 _l +153 458 _l +173 482 196 500 222 512 _c +248 524 278 530 310 530 _c +367 530 411 515 442 485 _c +472 455 488 403 488 329 _c +488 -27 _l +488 -105 475 -154 451 -176 _c +426 -198 395 -209 358 -209 _c +332 -209 309 -206 289 -200 _c +306 -125 _l +322 -129 336 -132 347 -132 _c +362 -132 375 -127 385 -117 _c +395 -107 400 -76 400 -25 _c +400 329 _l +400 371 390 402 372 423 _c +354 444 326 455 290 455 _c +}_e{258 455 227 443 197 421 _c +167 398 153 352 153 284 _c +153 0 _l +66 0 _l +66 594 _l +_cl}_e}_d +/afii10100{365 0 66 0 365 720 _sc +false CharStrings /afii10068 get exec +gsave 59 0 translate +false CharStrings /acute get exec +grestore }_d +/afii10101{{510 0 37 -17 489 530 _sc +313 302 _m +313 229 _l +130 229 _l +135 173 149 131 173 103 _c +197 75 230 61 272 61 _c +346 61 389 103 403 189 _c +489 178 _l +480 121 456 75 418 41 _c +380 6 330 -11 268 -11 _c +194 -15 137 8 97 59 _c +57 109 38 176 40 259 _c +40 343 61 410 103 458 _c +145 506 202 530 274 530 _c +332 530 379 514 415 484 _c +451 453 472 413 480 365 _c +395 352 _l +381 422 339 458 271 458 _c +232 458 200 443 175 414 _c +150 385 135 348 130 302 _c +313 302 _l +_cl}_e}_d +/afii10102{500 0 31 -11 461 530 _sc +false CharStrings /s get exec +}_d +/afii10103{222 0 66 0 154 716 _sc +false CharStrings /i get exec +}_d +/afii10104{278 0 4 0 278 720 _sc +false CharStrings /dotlessi get exec +gsave 100 0 translate +false CharStrings /dieresis get exec +grestore }_d +/afii10105{222 0 -45 -209 153 716 _sc +false CharStrings /j get exec +}_d +/afii10106{{906 0 9 -2 871 519 _sc +533 519 _m +533 316 _l +645 316 _l +716 316 771 302 811 274 _c +851 246 871 207 871 157 _c +871 115 855 79 823 47 _c +791 15 738 0 665 0 _c +445 0 _l +445 446 _l +202 446 _l +202 188 _l +202 130 198 90 192 67 _c +186 43 173 26 155 15 _c +137 3 111 -2 78 -2 _c +68 -2 45 -1 9 0 _c +9 72 _l +32 68 50 67 63 67 _c +83 67 97 73 104 86 _c +110 98 114 129 114 177 _c +114 519 _l +533 519 _l +533 72 _m +625 72 _l +681 72 721 78 745 92 _c +769 106 781 127 781 157 _c +781 179 772 199 755 217 _c +737 234 698 243 638 243 _c +}_e{533 243 _l +533 72 _l +_cl}_e}_d +/afii10107{{813 0 64 0 778 519 _sc +440 303 _m +552 303 _l +624 303 679 289 719 262 _c +758 235 778 198 778 151 _c +778 109 761 73 728 44 _c +695 14 643 0 572 0 _c +352 0 _l +352 230 _l +152 230 _l +152 0 _l +64 0 _l +64 519 _l +152 519 _l +152 303 _l +352 303 _l +352 519 _l +440 519 _l +440 303 _l +440 69 _m +532 69 _l +588 69 628 75 652 88 _c +675 100 687 120 687 148 _c +687 170 678 189 661 205 _c +643 221 604 230 544 230 _c +440 230 _l +440 69 _l +_cl}_e}_d +/afii10108{{556 0 0 0 488 716 _sc +66 652 _m +66 716 _l +153 716 _l +153 652 _l +321 652 _l +321 594 _l +153 594 _l +153 458 _l +173 482 196 500 222 512 _c +248 524 278 530 310 530 _c +367 530 411 515 442 485 _c +472 455 488 403 488 329 _c +488 0 _l +400 0 _l +400 329 _l +400 371 390 402 372 423 _c +354 444 326 455 290 455 _c +258 455 227 443 197 421 _c +167 398 153 352 153 284 _c +153 0 _l +66 0 _l +66 594 _l +0 594 _l +0 652 _l +66 652 _l +_cl}_e}_d +/afii10109{438 0 65 0 445 720 _sc +false CharStrings /afii10076 get exec +gsave 59 0 translate +false CharStrings /acute get exec +grestore }_d +/afii10110{500 0 16 -209 491 715 _sc +false CharStrings /y get exec +gsave 89 0 translate +false CharStrings /breve get exec +grestore }_d +/afii10193{552 0 66 -146 486 519 _sc +313 0 _m +313 -146 _l +240 -146 _l +240 0 _l +66 0 _l +66 519 _l +154 519 _l +154 72 _l +398 72 _l +398 519 _l +486 519 _l +486 0 _l +313 0 _l +_cl}_d +/afii10050{489 0 79 0 459 914 _sc +375 716 _m +375 914 _l +459 914 _l +459 631 _l +173 631 _l +173 0 _l +79 0 _l +79 716 _l +375 716 _l +_cl}_d +/afii10098{411 0 66 0 381 717 _sc +308 519 _m +308 717 _l +381 717 _l +381 446 _l +154 446 _l +154 0 _l +66 0 _l +66 519 _l +308 519 _l +_cl}_d +/afii00208{1000 0 32 224 969 294 _sc +32 224 _m +32 294 _l +969 294 _l +969 224 _l +32 224 _l +_cl}_d +/afii61352{{1073 0 78 0 1031 716 _sc +78 716 _m +173 716 _l +523 161 _l +523 716 _l +614 716 _l +614 0 _l +519 0 _l +167 552 _l +167 0 _l +78 0 _l +78 716 _l +679 383 _m +679 441 695 487 727 521 _c +759 555 802 572 856 572 _c +909 572 951 554 983 519 _c +1015 484 1031 437 1031 377 _c +1031 317 1014 269 982 234 _c +949 199 906 182 853 182 _c +806 182 765 197 731 229 _c +696 261 679 312 679 383 _c +765 380 _m +765 336 773 304 791 282 _c +808 260 829 249 855 249 _c +879 249 900 259 918 281 _c +936 302 946 334 946 377 _c +946 423 936 456 917 476 _c +898 496 877 507 854 507 _c +}_e{830 507 809 496 791 475 _c +773 453 765 422 765 380 _c +688 130 _m +1021 130 _l +1021 58 _l +688 58 _l +688 130 _l +_cl}_e}_d +/pi{690 0 22 0 668 519 _sc +247 447 _m +247 0 _l +159 0 _l +159 447 _l +22 447 _l +22 519 _l +668 519 _l +668 447 _l +550 447 _l +550 0 _l +462 0 _l +462 447 _l +247 447 _l +_cl}_d +/afii57799{{333 0 125 -209 208 -23 _sc +167 -23 _m +174 -23 181 -24 187 -28 _c +193 -32 198 -37 202 -43 _c +206 -49 208 -56 208 -64 _c +208 -72 206 -79 202 -85 _c +198 -91 193 -95 187 -99 _c +181 -103 174 -105 167 -105 _c +159 -105 151 -103 145 -99 _c +139 -95 134 -91 130 -85 _c +126 -79 125 -72 125 -64 _c +125 -54 128 -44 135 -36 _c +142 -27 153 -23 167 -23 _c +167 -127 _m +174 -127 181 -128 187 -132 _c +193 -136 198 -141 202 -147 _c +206 -153 208 -160 208 -168 _c +208 -176 206 -183 202 -189 _c +198 -195 193 -199 187 -203 _c +181 -207 174 -209 167 -209 _c +159 -209 151 -207 145 -203 _c +139 -199 134 -195 130 -189 _c +126 -183 125 -176 125 -168 _c +125 -156 129 -146 137 -138 _c +145 -130 155 -127 167 -127 _c +_cl}_e}_d +/afii57801{{333 0 15 -209 318 -23 _sc +56 -23 _m +63 -23 70 -24 76 -28 _c +82 -32 87 -37 91 -43 _c +95 -49 97 -56 97 -64 _c +97 -72 95 -79 91 -85 _c +87 -91 82 -95 76 -99 _c +70 -103 63 -105 56 -105 _c +48 -105 40 -103 34 -99 _c +28 -95 23 -91 20 -85 _c +16 -79 15 -72 15 -64 _c +15 -54 18 -44 25 -36 _c +32 -27 42 -23 56 -23 _c +167 -23 _m +173 -23 180 -24 186 -28 _c +192 -31 197 -36 201 -42 _c +205 -48 208 -56 208 -64 _c +208 -72 206 -79 202 -85 _c +198 -91 193 -95 187 -99 _c +181 -103 174 -105 167 -105 _c +159 -105 151 -103 145 -99 _c +139 -95 134 -91 130 -85 _c +126 -79 125 -72 125 -64 _c +125 -52 129 -43 137 -35 _c +145 -27 155 -23 167 -23 _c +277 -23 _m +290 -23 300 -27 307 -36 _c +314 -44 318 -54 318 -64 _c +318 -72 316 -79 313 -85 _c +309 -91 304 -95 298 -99 _c +292 -103 285 -105 277 -105 _c +265 -105 256 -101 248 -93 _c +240 -85 236 -76 236 -64 _c +}_e{236 -52 240 -43 248 -35 _c +256 -27 265 -23 277 -23 _c +110 -127 _m +120 -127 129 -130 138 -137 _c +146 -144 151 -154 151 -168 _c +151 -179 147 -189 139 -197 _c +131 -205 122 -209 110 -209 _c +102 -209 96 -207 90 -203 _c +84 -199 79 -195 75 -189 _c +71 -183 69 -176 69 -168 _c +69 -158 72 -148 80 -140 _c +87 -131 97 -127 110 -127 _c +277 -127 _m +284 -127 291 -128 297 -131 _c +303 -134 308 -139 312 -145 _c +316 -151 318 -159 318 -168 _c +318 -176 316 -183 313 -189 _c +309 -195 304 -199 298 -203 _c +292 -207 285 -209 277 -209 _c +270 -209 264 -207 258 -204 _c +252 -200 246 -196 242 -190 _c +238 -184 236 -176 236 -168 _c +236 -156 240 -146 248 -138 _c +256 -130 265 -127 277 -127 _c +_cl}_e}_d +/afii57800{{333 0 24 -209 309 -23 _sc +268 -23 _m +281 -23 291 -27 298 -36 _c +305 -44 309 -54 309 -64 _c +309 -74 305 -84 298 -92 _c +291 -100 281 -105 268 -105 _c +256 -105 246 -101 238 -93 _c +230 -85 227 -76 227 -64 _c +227 -56 228 -49 232 -43 _c +236 -37 241 -32 247 -28 _c +253 -24 260 -23 268 -23 _c +24 -79 _m +24 -28 _l +188 -28 _l +188 -79 _l +24 -79 _l +268 -127 _m +274 -127 281 -128 287 -131 _c +293 -134 298 -139 302 -145 _c +306 -151 309 -159 309 -168 _c +309 -178 305 -187 298 -196 _c +291 -204 281 -209 268 -209 _c +260 -209 254 -207 248 -204 _c +242 -200 237 -196 233 -190 _c +229 -184 227 -176 227 -168 _c +227 -160 228 -154 231 -148 _c +234 -142 239 -137 245 -133 _c +251 -129 259 -127 268 -127 _c +_cl}_e}_d +/afii57802{{333 0 24 -209 309 -23 _sc +268 -23 _m +281 -23 291 -27 298 -36 _c +305 -44 309 -54 309 -64 _c +309 -74 305 -84 298 -92 _c +291 -100 281 -105 268 -105 _c +256 -105 246 -101 238 -93 _c +230 -85 227 -76 227 -64 _c +227 -56 228 -49 232 -43 _c +236 -37 241 -32 247 -28 _c +253 -24 260 -23 268 -23 _c +79 -151 _m +79 -79 _l +24 -79 _l +24 -28 _l +188 -28 _l +188 -79 _l +136 -79 _l +136 -151 _l +79 -151 _l +268 -127 _m +274 -127 281 -128 287 -131 _c +293 -134 298 -139 302 -145 _c +306 -151 309 -159 309 -168 _c +309 -178 305 -187 298 -196 _c +291 -204 281 -209 268 -209 _c +260 -209 254 -207 248 -204 _c +242 -200 237 -196 233 -190 _c +229 -184 227 -176 227 -168 _c +227 -160 228 -154 231 -148 _c +234 -142 239 -137 245 -133 _c +251 -129 259 -127 268 -127 _c +_cl}_e}_d +/afii57793{333 0 125 -179 208 -97 _sc +167 -97 _m +174 -97 181 -98 187 -102 _c +193 -106 198 -111 202 -117 _c +206 -123 208 -130 208 -138 _c +208 -146 206 -153 202 -159 _c +198 -165 193 -169 187 -173 _c +181 -177 174 -179 167 -179 _c +159 -179 151 -177 145 -173 _c +139 -169 134 -165 130 -159 _c +126 -153 125 -146 125 -138 _c +125 -128 128 -118 135 -110 _c +142 -101 153 -97 167 -97 _c +_cl}_d +/afii57794{{333 0 62 -179 271 -97 _sc +103 -97 _m +112 -97 121 -100 130 -107 _c +139 -114 144 -124 144 -138 _c +144 -149 140 -159 132 -167 _c +124 -175 114 -179 103 -179 _c +95 -179 87 -177 81 -173 _c +75 -169 70 -165 67 -159 _c +63 -153 62 -146 62 -138 _c +62 -126 65 -117 73 -109 _c +81 -101 91 -97 103 -97 _c +230 -97 _m +243 -97 253 -101 260 -110 _c +267 -118 271 -128 271 -138 _c +271 -146 269 -153 266 -159 _c +262 -165 257 -169 251 -173 _c +245 -177 238 -179 230 -179 _c +223 -179 217 -177 211 -174 _c +205 -170 199 -166 195 -160 _c +191 -154 189 -146 189 -138 _c +189 -130 190 -124 194 -118 _c +197 -112 202 -107 208 -103 _c +214 -99 222 -97 230 -97 _c +_cl}_e}_d +/afii57795{{333 0 62 -209 271 -23 _sc +103 -23 _m +112 -23 121 -26 130 -33 _c +139 -40 144 -50 144 -64 _c +144 -76 140 -85 132 -93 _c +124 -101 114 -105 103 -105 _c +95 -105 87 -103 81 -99 _c +75 -95 70 -91 67 -85 _c +63 -79 62 -72 62 -64 _c +62 -52 65 -43 73 -35 _c +81 -27 91 -23 103 -23 _c +230 -23 _m +243 -23 253 -27 260 -36 _c +267 -44 271 -54 271 -64 _c +271 -72 269 -79 266 -85 _c +262 -91 257 -95 251 -99 _c +245 -103 238 -105 230 -105 _c +223 -105 217 -103 211 -100 _c +205 -97 199 -92 195 -86 _c +191 -80 189 -72 189 -64 _c +189 -57 190 -51 194 -45 _c +197 -39 202 -33 208 -29 _c +214 -25 222 -23 230 -23 _c +167 -127 _m +174 -127 181 -128 187 -132 _c +193 -136 198 -141 202 -147 _c +206 -153 208 -160 208 -168 _c +208 -176 206 -183 202 -189 _c +198 -195 193 -199 187 -203 _c +181 -207 174 -209 167 -209 _c +159 -209 151 -207 145 -203 _c +139 -199 134 -195 130 -189 _c +126 -183 125 -176 125 -168 _c +}_e{125 -156 129 -146 137 -138 _c +145 -130 155 -127 167 -127 _c +_cl}_e}_d +/afii57798{333 0 68 -153 265 -102 _sc +68 -153 _m +68 -102 _l +265 -102 _l +265 -153 _l +68 -153 _l +_cl}_d +/afii57797{333 0 68 -209 265 -76 _sc +139 -209 _m +139 -127 _l +68 -127 _l +68 -76 _l +265 -76 _l +265 -127 _l +195 -127 _l +195 -209 _l +139 -209 _l +_cl}_d +/afii57806{333 0 125 577 208 659 _sc +167 659 _m +173 659 180 657 186 654 _c +192 650 197 646 201 640 _c +205 634 208 626 208 618 _c +208 610 206 603 202 597 _c +198 591 193 586 187 582 _c +181 578 174 577 167 577 _c +159 577 152 578 146 582 _c +140 586 135 591 131 597 _c +127 603 125 610 125 618 _c +125 629 129 639 137 647 _c +145 655 155 659 167 659 _c +_cl}_d +/afii57796{{333 0 8 -209 325 -24 _sc +49 -24 _m +56 -24 63 -25 69 -28 _c +75 -31 80 -36 84 -42 _c +88 -48 90 -56 90 -65 _c +90 -73 88 -80 84 -86 _c +80 -92 76 -96 70 -100 _c +64 -104 57 -106 49 -106 _c +41 -106 34 -104 28 -100 _c +22 -96 17 -92 13 -86 _c +9 -80 8 -73 8 -65 _c +8 -57 9 -51 13 -45 _c +16 -39 21 -34 27 -30 _c +33 -26 40 -24 49 -24 _c +167 -77 _m +174 -77 181 -78 187 -82 _c +193 -85 198 -90 202 -96 _c +206 -102 208 -110 208 -118 _c +208 -125 206 -132 202 -138 _c +198 -144 193 -149 187 -153 _c +181 -157 174 -159 167 -159 _c +159 -159 151 -157 145 -153 _c +139 -149 134 -144 130 -138 _c +126 -132 125 -125 125 -118 _c +125 -106 129 -96 137 -88 _c +145 -80 155 -77 167 -77 _c +284 -127 _m +292 -127 299 -128 305 -132 _c +311 -136 315 -141 319 -147 _c +323 -153 325 -160 325 -168 _c +325 -176 323 -183 319 -189 _c +315 -195 311 -199 305 -203 _c +299 -207 292 -209 284 -209 _c +276 -209 269 -207 263 -203 _c +257 -199 252 -195 248 -189 _c +244 -183 243 -176 243 -168 _c +}_e{243 -156 247 -147 255 -139 _c +263 -131 272 -127 284 -127 _c +_cl}_e}_d +/afii57807{333 0 125 241 208 323 _sc +167 323 _m +176 323 185 319 194 312 _c +203 305 208 295 208 282 _c +208 270 204 261 196 253 _c +188 245 178 241 167 241 _c +159 241 151 242 145 246 _c +139 250 134 255 130 261 _c +126 267 125 274 125 282 _c +125 292 128 301 135 310 _c +142 318 153 323 167 323 _c +_cl}_d +/afii57839{333 0 141 -209 192 -24 _sc +141 -24 _m +192 -24 _l +192 -209 _l +141 -209 _l +141 -24 _l +_cl}_d +/afii57645{383 0 61 440 322 518 _sc +61 440 _m +61 518 _l +322 518 _l +322 440 _l +61 440 _l +_cl}_d +/afii57841{333 0 68 611 265 662 _sc +68 611 _m +68 662 _l +265 662 _l +265 611 _l +68 611 _l +_cl}_d +/afii57842{275 0 103 -9 172 625 _sc +103 -9 _m +103 625 _l +172 625 _l +172 -9 _l +103 -9 _l +_cl}_d +/afii57804{333 0 380 577 462 660 _sc +421 660 _m +434 660 444 655 451 647 _c +458 638 462 628 462 618 _c +462 610 460 604 458 598 _c +455 592 450 587 444 583 _c +438 579 430 577 421 577 _c +409 577 400 581 392 589 _c +384 597 380 606 380 618 _c +380 631 384 641 393 649 _c +402 656 411 660 421 660 _c +_cl}_d +/afii57803{333 0 -122 577 -40 660 _sc +-81 660 _m +-68 660 -58 655 -51 647 _c +-43 638 -40 628 -40 618 _c +-40 610 -42 603 -46 597 _c +-49 591 -54 586 -60 582 _c +-66 578 -73 577 -81 577 _c +-93 577 -102 581 -110 589 _c +-118 597 -122 606 -122 618 _c +-122 631 -117 641 -109 649 _c +-100 656 -91 660 -81 660 _c +_cl}_d +/afii57658{278 0 90 0 190 519 _sc +90 418 _m +90 519 _l +190 519 _l +190 418 _l +90 418 _l +90 0 _m +90 100 _l +190 100 _l +190 0 _l +90 0 _l +_cl}_d +/afii57664{563 0 51 0 536 518 _sc +536 0 _m +421 0 _l +223 280 _l +192 263 174 229 169 179 _c +148 0 _l +51 0 _l +72 179 _l +82 262 116 318 174 348 _c +53 518 _l +168 518 _l +334 286 _l +354 299 368 314 376 331 _c +384 347 390 375 395 414 _c +407 518 _l +504 518 _l +492 411 _l +486 365 476 327 461 298 _c +445 268 419 242 381 219 _c +536 0 _l +_cl}_d +/afii57665{542 0 24 0 520 524 _sc +438 78 _m +520 78 _l +520 0 _l +24 0 _l +24 78 _l +344 78 _l +344 255 _l +344 303 338 339 328 363 _c +317 387 298 407 270 421 _c +242 435 198 443 138 443 _c +116 443 84 440 40 436 _c +32 513 _l +76 520 122 524 172 524 _c +265 524 333 503 375 463 _c +417 423 438 362 438 280 _c +438 78 _l +_cl}_d +/afii57666{{399 0 12 0 363 524 _sc +315 335 _m +315 176 _l +363 0 _l +272 0 _l +236 127 _l +196 127 162 102 136 54 _c +107 0 _l +12 0 _l +53 80 _l +77 127 106 158 138 173 _c +170 188 198 196 222 196 _c +222 332 _l +222 360 220 381 216 395 _c +212 409 203 421 189 430 _c +175 439 156 444 133 444 _c +113 444 96 442 80 439 _c +73 513 _l +95 520 121 524 153 524 _c +197 524 231 515 255 499 _c +278 482 294 461 302 437 _c +310 413 315 379 315 335 _c +_cl}_e}_d +/afii57667{508 0 22 0 486 518 _sc +486 440 _m +398 440 _l +398 0 _l +305 0 _l +305 440 _l +22 440 _l +22 518 _l +486 518 _l +486 440 _l +_cl}_d +/afii57668{602 0 73 0 531 524 _sc +73 509 _m +132 519 189 524 245 524 _c +353 524 427 504 469 464 _c +510 424 531 362 531 280 _c +531 0 _l +438 0 _l +438 255 _l +438 307 432 345 420 369 _c +408 393 387 411 357 424 _c +327 436 285 443 229 443 _c +185 443 135 438 81 429 _c +73 509 _l +172 292 _m +172 0 _l +79 0 _l +79 292 _l +172 292 _l +_cl}_d +/afii57669{247 0 76 0 171 518 _sc +171 518 _m +171 0 _l +76 0 _l +76 518 _l +171 518 _l +_cl}_d +/afii57670{382 0 46 0 360 518 _sc +360 452 _m +310 452 271 437 243 409 _c +215 381 201 343 201 295 _c +201 285 202 267 206 240 _c +214 161 218 105 218 72 _c +218 0 _l +125 0 _l +125 85 _l +125 119 121 172 115 244 _c +112 268 111 288 111 304 _c +111 358 133 403 177 440 _c +46 440 _l +46 518 _l +360 518 _l +360 452 _l +_cl}_d +/afii57671{599 0 76 0 528 524 _sc +528 0 _m +435 0 _l +435 281 _l +435 319 430 348 422 370 _c +413 392 396 409 371 423 _c +345 436 309 443 262 443 _c +234 443 203 440 169 436 _c +169 0 _l +76 0 _l +76 507 _l +145 518 209 524 268 524 _c +331 524 382 514 421 496 _c +460 477 488 452 504 421 _c +520 389 528 346 528 290 _c +528 0 _l +_cl}_d +/afii57672{{590 0 68 -13 531 529 _sc +68 518 _m +162 518 _l +162 249 _l +162 172 176 121 204 97 _c +232 73 263 61 298 61 _c +335 61 364 69 386 87 _c +408 104 422 126 428 154 _c +434 182 438 219 438 266 _c +438 332 _l +438 408 416 446 373 446 _c +341 446 313 428 288 394 _c +258 442 _l +293 500 338 529 393 529 _c +438 529 472 511 496 475 _c +519 439 531 386 531 318 _c +531 281 _l +531 213 524 161 512 123 _c +499 85 474 53 438 27 _c +402 0 355 -13 298 -13 _c +248 -13 204 -1 167 23 _c +130 47 104 78 90 116 _c +75 154 68 207 68 275 _c +68 518 _l +_cl}_e}_d +/afii57673{247 0 76 250 171 518 _sc +171 518 _m +171 250 _l +76 250 _l +76 518 _l +171 518 _l +_cl}_d +/afii57674{509 0 20 -198 438 524 _sc +20 513 _m +70 520 115 524 157 524 _c +254 524 325 505 370 468 _c +415 431 438 368 438 280 _c +438 -198 _l +345 -198 _l +345 255 _l +345 311 337 351 323 375 _c +309 399 287 416 257 427 _c +227 437 192 443 152 443 _c +117 443 75 439 27 433 _c +20 513 _l +_cl}_d +/afii57675{461 0 39 -7 417 527 _sc +39 7 _m +52 91 _l +82 81 114 76 146 76 _c +182 76 213 83 238 99 _c +263 114 282 135 296 163 _c +310 191 317 223 317 259 _c +317 313 302 357 273 391 _c +243 425 201 443 146 443 _c +113 443 82 438 52 428 _c +39 512 _l +77 522 111 527 141 527 _c +227 527 295 501 344 451 _c +392 400 417 336 417 259 _c +417 208 406 163 385 124 _c +364 84 334 53 294 29 _c +254 5 203 -7 141 -7 _c +111 -7 77 -2 39 7 _c +_cl}_d +/afii57676{463 0 29 0 409 716 _sc +122 518 _m +409 518 _l +409 389 _l +409 352 405 322 399 300 _c +392 278 380 255 363 232 _c +337 197 _l +310 161 297 123 297 83 _c +297 0 _l +204 0 _l +204 70 _l +204 112 208 143 216 164 _c +224 185 237 206 253 227 _c +282 264 _l +296 282 306 299 310 313 _c +314 327 316 346 316 370 _c +316 440 _l +29 440 _l +29 716 _l +122 716 _l +122 518 _l +_cl}_d +/afii57677{599 0 76 0 528 524 _sc +528 0 _m +76 0 _l +76 507 _l +145 518 209 524 268 524 _c +331 524 382 514 421 496 _c +460 477 488 452 504 421 _c +520 389 528 346 528 290 _c +528 0 _l +435 78 _m +435 281 _l +435 319 430 348 422 370 _c +413 392 396 409 371 423 _c +345 436 309 443 262 443 _c +234 443 203 440 169 436 _c +169 78 _l +435 78 _l +_cl}_d +/afii57678{{601 0 39 0 530 524 _sc +119 302 _m +39 518 _l +130 518 _l +168 404 _l +183 437 207 465 240 489 _c +272 512 307 524 345 524 _c +385 524 419 513 448 493 _c +476 473 497 443 510 404 _c +523 365 530 306 530 228 _c +530 0 _l +263 0 _l +263 78 _l +436 78 _l +436 230 _l +436 287 434 329 430 355 _c +426 381 417 403 401 419 _c +385 435 366 444 343 444 _c +307 444 276 425 250 387 _c +224 349 203 284 185 192 _c +148 0 _l +54 0 _l +95 202 _l +99 221 107 254 119 302 _c +_cl}_e}_d +/afii57679{247 0 76 -198 171 518 _sc +171 518 _m +171 -198 _l +76 -198 _l +76 518 _l +171 518 _l +_cl}_d +/afii57680{353 0 29 0 279 524 _sc +279 0 _m +29 0 _l +29 78 _l +186 78 _l +186 332 _l +186 360 183 381 179 395 _c +175 409 166 421 152 430 _c +138 439 120 444 97 444 _c +77 444 59 442 44 439 _c +37 513 _l +59 520 85 524 117 524 _c +161 524 195 515 219 499 _c +242 482 258 461 266 437 _c +274 413 279 379 279 335 _c +279 0 _l +_cl}_d +/afii57681{{574 0 44 -14 530 532 _sc +44 257 _m +44 339 66 406 110 456 _c +154 506 213 532 287 532 _c +331 532 370 522 405 503 _c +440 484 470 454 494 412 _c +518 370 530 319 530 257 _c +530 205 521 159 503 119 _c +485 79 457 46 420 22 _c +383 -2 339 -14 287 -14 _c +213 -14 154 10 110 60 _c +66 109 44 175 44 257 _c +146 257 _m +146 195 158 148 183 114 _c +207 80 242 63 287 63 _c +335 63 370 81 394 118 _c +417 154 429 201 429 258 _c +429 320 416 369 391 404 _c +366 438 331 456 287 456 _c +239 456 204 437 181 399 _c +157 361 146 314 146 257 _c +_cl}_e}_d +/afii57682{529 0 12 -47 463 518 _sc +154 63 _m +64 518 _l +163 518 _l +239 92 _l +294 114 329 145 343 186 _c +357 226 364 278 364 340 _c +369 518 _l +463 518 _l +458 381 _l +456 315 453 268 450 242 _c +446 215 438 185 424 153 _c +410 121 390 93 364 70 _c +337 46 298 25 246 6 _c +194 -13 121 -31 25 -47 _c +12 33 _l +70 41 118 51 154 63 _c +_cl}_d +/afii57683{{566 0 54 -198 496 524 _sc +144 438 _m +144 301 _l +144 261 164 241 204 241 _c +220 241 233 243 245 247 _c +255 179 _l +235 171 213 167 189 167 _c +146 167 113 178 89 201 _c +65 223 54 257 54 303 _c +54 498 _l +112 515 173 524 236 524 _c +314 524 376 507 424 475 _c +472 443 496 381 496 290 _c +496 -198 _l +403 -198 _l +403 281 _l +403 317 398 346 390 368 _c +382 390 365 409 339 424 _c +313 439 276 447 230 447 _c +198 447 169 444 144 438 _c +_cl}_e}_d +/afii57684{{546 0 56 -7 502 527 _sc +60 501 _m +116 518 174 527 236 527 _c +312 527 375 504 426 460 _c +476 415 502 350 502 266 _c +502 182 476 116 424 67 _c +372 17 299 -7 207 -7 _c +143 -7 92 4 56 27 _c +79 104 _l +110 83 150 73 200 73 _c +256 73 304 88 344 120 _c +384 152 404 200 404 264 _c +404 320 388 365 357 399 _c +325 433 283 450 230 450 _c +202 450 175 447 149 441 _c +149 346 _l +149 306 169 286 209 286 _c +225 286 239 288 250 292 _c +260 224 _l +241 216 219 212 194 212 _c +}_e{152 212 119 223 95 246 _c +71 269 60 303 60 348 _c +60 501 _l +_cl}_e}_d +/afii57685{461 0 12 -198 422 518 _sc +168 -198 _m +168 196 _l +12 518 _l +111 518 _l +236 260 _l +262 275 280 292 290 311 _c +300 329 307 354 311 386 _c +325 518 _l +422 518 _l +406 368 _l +396 280 348 219 260 185 _c +260 -198 _l +168 -198 _l +_cl}_d +/afii57686{479 0 5 0 425 518 _sc +425 518 _m +420 425 _l +418 393 414 368 409 349 _c +403 330 392 311 375 291 _c +358 271 331 250 293 228 _c +404 55 _l +404 0 _l +31 0 _l +31 78 _l +291 78 _l +5 518 _l +111 518 _l +255 288 _l +279 306 297 325 307 345 _c +317 365 323 394 323 432 _c +328 518 _l +425 518 _l +_cl}_d +/afii57687{550 0 73 -198 496 518 _sc +73 518 _m +496 518 _l +496 389 _l +496 352 492 322 486 300 _c +479 278 467 255 450 232 _c +424 197 _l +397 161 384 123 384 83 _c +384 0 _l +291 0 _l +291 70 _l +291 105 294 134 300 156 _c +306 178 320 201 340 227 _c +369 264 _l +383 282 392 298 396 312 _c +400 326 403 346 403 370 _c +403 440 _l +73 440 _l +73 518 _l +81 -198 _m +81 292 _l +170 292 _l +170 -198 _l +81 -198 _l +_cl}_d +/afii57688{509 0 20 0 438 524 _sc +20 513 _m +70 520 116 524 158 524 _c +262 524 335 503 376 463 _c +417 422 438 361 438 280 _c +438 0 _l +346 0 _l +346 255 _l +346 302 340 338 330 362 _c +320 386 300 405 272 420 _c +243 435 203 443 152 443 _c +117 443 75 439 27 433 _c +20 513 _l +_cl}_d +/afii57689{{694 0 49 -13 646 518 _sc +144 518 _m +146 434 _l +147 348 151 288 157 255 _c +191 255 222 263 250 281 _c +278 298 292 331 292 379 _c +302 518 _l +396 518 _l +384 355 _l +382 327 378 306 374 292 _c +370 278 361 263 348 247 _c +335 231 314 217 286 205 _c +257 193 219 185 171 181 _c +179 145 197 117 227 96 _c +257 75 293 65 337 65 _c +377 65 411 74 440 93 _c +468 112 489 137 503 167 _c +517 197 526 240 531 296 _c +552 518 _l +646 518 _l +628 326 _l +621 254 609 194 591 146 _c +573 98 543 60 500 31 _c +456 1 400 -13 332 -13 _c +270 -13 219 1 178 30 _c +137 59 106 101 86 156 _c +66 210 56 283 56 375 _c +49 518 _l +144 518 _l +_cl}_e}_d +/afii57690{{643 0 20 -3 572 524 _sc +20 12 _m +36 82 _l +52 76 71 73 91 73 _c +113 73 129 78 137 88 _c +145 98 150 116 150 142 _c +150 441 _l +122 441 87 438 47 432 _c +39 510 _l +113 519 188 524 265 524 _c +342 524 401 517 443 504 _c +485 491 517 467 539 433 _c +561 398 572 347 572 280 _c +572 0 _l +479 0 _l +479 255 _l +479 305 475 342 467 366 _c +459 389 443 408 417 423 _c +391 437 348 445 290 445 _c +243 444 _l +243 130 _l +243 97 240 72 234 55 _c +228 37 215 23 196 13 _c +176 2 148 -3 111 -3 _c +80 -3 50 2 20 12 _c +_cl}_e}_d +/afii57716{493 0 76 0 417 518 _sc +417 518 _m +417 0 _l +322 0 _l +322 518 _l +417 518 _l +171 518 _m +171 0 _l +76 0 _l +76 518 _l +171 518 _l +_cl}_d +/afii57717{493 0 76 0 417 518 _sc +417 518 _m +417 0 _l +322 0 _l +322 518 _l +417 518 _l +171 518 _m +171 250 _l +76 250 _l +76 518 _l +171 518 _l +_cl}_d +/afii57718{493 0 76 250 417 518 _sc +417 518 _m +417 250 _l +322 250 _l +322 518 _l +417 518 _l +171 518 _m +171 250 _l +76 250 _l +76 518 _l +171 518 _l +_cl}_d +/U05f3{236 0 44 330 192 518 _sc +44 330 _m +92 518 _l +192 518 _l +103 330 _l +44 330 _l +_cl}_d +/U05f4{417 0 44 330 373 518 _sc +225 330 _m +273 518 _l +373 518 _l +284 330 _l +225 330 _l +44 330 _m +92 518 _l +192 518 _l +103 330 _l +44 330 _l +_cl}_d +/afii57636{{815 0 76 0 740 518 _sc +546 386 _m +546 168 _l +464 168 _l +464 378 _l +464 403 458 421 447 432 _c +435 442 417 448 392 448 _c +158 448 _l +158 0 _l +76 0 _l +76 518 _l +408 518 _l +453 518 487 505 511 481 _c +534 457 546 425 546 386 _c +270 0 _m +270 350 _l +352 350 _l +352 70 _l +585 70 _l +613 70 633 76 643 89 _c +653 101 658 118 658 140 _c +658 518 _l +740 518 _l +740 132 _l +740 94 728 63 706 38 _c +684 12 649 0 602 0 _c +270 0 _l +_cl}_e}_d +/Ue801{247 0 -40 0 171 660 _sc +0 660 _m +13 660 23 655 30 647 _c +37 638 41 628 41 618 _c +41 610 39 603 35 597 _c +31 591 27 586 21 582 _c +15 578 8 577 0 577 _c +-11 577 -20 582 -28 590 _c +-36 598 -40 607 -40 618 _c +-40 630 -36 640 -28 648 _c +-20 656 -10 660 0 660 _c +171 518 _m +171 0 _l +76 0 _l +76 518 _l +171 518 _l +_cl}_d +/Ue802{509 0 20 -198 438 524 _sc +false CharStrings /afii57674 get exec +gsave 4 245 translate +false CharStrings /afii57799 get exec +grestore }_d +/Ue803{509 0 20 -198 438 524 _sc +false CharStrings /afii57674 get exec +gsave 4 245 translate +false CharStrings /afii57797 get exec +grestore }_d +/Ue804{463 0 -82 0 409 716 _sc +false CharStrings /afii57676 get exec +gsave -207 0 translate +false CharStrings /afii57806 get exec +grestore }_d +/Ue805{463 0 -82 0 409 716 _sc +false CharStrings /afii57676 get exec +gsave -207 0 translate +false CharStrings /afii57806 get exec +grestore gsave 110 28 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb20{535 0 22 0 469 518 _sc +464 381 _m +458 227 434 125 392 75 _c +350 25 290 0 214 0 _c +22 0 _l +22 78 _l +157 78 _l +70 518 _l +168 518 _l +248 77 _l +325 99 366 186 370 340 _c +375 518 _l +469 518 _l +464 381 _l +_cl}_d +/afii57694{694 0 49 -13 646 659 _sc +false CharStrings /afii57689 get exec +gsave 436 0 translate +false CharStrings /afii57806 get exec +grestore }_d +/afii57695{694 0 49 -13 646 659 _sc +false CharStrings /afii57689 get exec +gsave -72 0 translate +false CharStrings /afii57806 get exec +grestore }_d +/Ufb2c{694 0 49 -13 646 659 _sc +false CharStrings /Ufb49 get exec +gsave 436 0 translate +false CharStrings /afii57806 get exec +grestore }_d +/Ufb2d{694 0 49 -13 646 659 _sc +false CharStrings /Ufb49 get exec +gsave -72 0 translate +false CharStrings /afii57806 get exec +grestore }_d +/Ufb2e{563 0 51 -153 536 518 _sc +false CharStrings /afii57664 get exec +gsave 115 0 translate +false CharStrings /afii57798 get exec +grestore }_d +/Ufb2f{563 0 51 -209 536 518 _sc +false CharStrings /afii57664 get exec +gsave 115 0 translate +false CharStrings /afii57797 get exec +grestore }_d +/Ufb30{{563 0 51 0 536 518 _sc +536 0 _m +421 0 _l +223 280 _l +193 263 175 229 169 179 _c +148 0 _l +51 0 _l +72 179 _l +82 262 116 318 174 348 _c +53 518 _l +168 518 _l +334 286 _l +354 299 368 314 376 332 _c +384 350 391 377 395 414 _c +407 518 _l +504 518 _l +492 411 _l +486 360 475 320 457 292 _c +439 264 414 239 381 219 _c +536 0 _l +215 77 _m +215 85 217 92 221 98 _c +225 104 230 108 236 112 _c +242 116 248 118 256 118 _c +264 118 271 116 277 112 _c +283 108 288 104 292 98 _c +295 92 297 85 297 77 _c +297 69 295 62 292 56 _c +288 50 283 45 277 41 _c +271 37 264 36 256 36 _c +}_e{248 36 242 37 236 41 _c +230 45 225 50 221 56 _c +217 62 215 69 215 77 _c +_cl}_e}_d +/Ufb31{542 0 24 0 520 524 _sc +false CharStrings /afii57665 get exec +gsave 4 115 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb32{399 0 12 0 363 524 _sc +false CharStrings /afii57666 get exec +gsave 105 34 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb33{508 0 22 0 486 518 _sc +false CharStrings /afii57667 get exec +gsave 38 0 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb34{602 0 73 0 531 524 _sc +false CharStrings /afii57668 get exec +gsave 131 -31 translate +false CharStrings /afii57807 get exec +grestore }_d +/afii57723{287 0 0 0 211 518 _sc +211 518 _m +211 0 _l +116 0 _l +116 518 _l +211 518 _l +41 323 _m +48 323 55 321 61 318 _c +67 314 72 310 76 304 _c +80 298 82 290 82 282 _c +82 274 80 267 76 261 _c +72 255 68 250 62 246 _c +56 242 49 241 41 241 _c +31 241 21 244 13 251 _c +4 258 0 268 0 282 _c +0 290 1 297 5 303 _c +9 309 14 313 20 317 _c +26 321 33 323 41 323 _c +_cl}_d +/Ufb36{{411 0 0 0 404 518 _sc +404 452 _m +354 452 315 437 287 409 _c +259 381 245 343 245 295 _c +245 285 246 267 249 240 _c +257 161 262 105 262 72 _c +262 0 _l +168 0 _l +168 85 _l +168 119 164 172 158 244 _c +156 268 155 288 155 304 _c +155 358 177 403 221 440 _c +90 440 _l +90 518 _l +404 518 _l +404 452 _l +41 351 _m +48 351 55 349 61 346 _c +67 342 72 338 76 332 _c +80 326 82 318 82 310 _c +82 302 80 295 76 289 _c +72 283 68 278 62 274 _c +56 270 49 269 41 269 _c +33 269 26 270 20 274 _c +14 278 9 283 5 289 _c +1 295 0 302 0 310 _c +}_e{0 321 3 331 11 339 _c +19 347 29 351 41 351 _c +_cl}_e}_d +/Ufb38{590 0 68 -13 531 529 _sc +false CharStrings /afii57672 get exec +gsave 135 0 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb39{287 0 0 250 211 518 _sc +211 518 _m +211 250 _l +116 250 _l +116 518 _l +211 518 _l +41 398 _m +51 398 60 394 69 387 _c +77 380 82 370 82 357 _c +82 345 78 336 70 328 _c +62 320 52 316 41 316 _c +31 316 21 319 13 326 _c +4 333 0 343 0 357 _c +0 365 1 372 5 378 _c +9 384 14 388 20 392 _c +26 396 33 398 41 398 _c +_cl}_d +/Ufb3a{509 0 20 -198 438 524 _sc +false CharStrings /afii57674 get exec +gsave 9 90 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb3b{461 0 39 -7 417 527 _sc +false CharStrings /afii57675 get exec +gsave 120 100 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb3c{463 0 29 0 409 716 _sc +false CharStrings /afii57676 get exec +gsave 15 28 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb3e{601 0 39 0 530 524 _sc +false CharStrings /afii57678 get exec +gsave 156 -32 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb40{353 0 29 0 279 524 _sc +false CharStrings /afii57680 get exec +gsave -76 -23 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb41{{574 0 44 -14 530 532 _sc +44 257 _m +44 339 66 406 110 456 _c +154 506 213 532 287 532 _c +331 532 370 522 405 503 _c +440 484 470 454 494 412 _c +518 370 530 319 530 257 _c +530 205 521 159 503 119 _c +485 79 457 46 420 22 _c +383 -2 339 -14 287 -14 _c +213 -14 154 10 110 60 _c +66 109 44 175 44 257 _c +146 257 _m +146 195 158 148 183 114 _c +207 80 242 63 287 63 _c +335 63 370 81 394 118 _c +417 154 429 201 429 258 _c +429 320 416 369 391 404 _c +366 438 331 456 287 456 _c +239 456 204 437 181 399 _c +157 361 146 314 146 257 _c +288 300 _m +295 300 302 298 308 295 _c +314 291 319 286 323 280 _c +327 274 329 267 329 259 _c +329 251 327 244 323 238 _c +319 232 315 227 309 223 _c +303 219 296 218 288 218 _c +280 218 273 219 267 223 _c +261 227 256 232 252 238 _c +248 244 247 251 247 259 _c +}_e{247 270 251 280 259 288 _c +267 296 276 300 288 300 _c +_cl}_e}_d +/Ufb43{{566 0 54 -198 496 524 _sc +144 438 _m +144 301 _l +144 261 158 241 188 241 _c +202 241 215 243 226 247 _c +235 179 _l +217 171 197 167 175 167 _c +94 167 54 212 54 303 _c +54 498 _l +112 515 173 524 236 524 _c +328 524 394 505 435 468 _c +475 430 496 371 496 290 _c +496 -198 _l +403 -198 _l +403 281 _l +403 319 397 349 387 373 _c +377 397 358 415 332 428 _c +305 440 271 447 230 447 _c +198 447 169 444 144 438 _c +313 276 _m +320 276 327 274 333 270 _c +339 266 344 262 348 256 _c +352 250 354 243 354 235 _c +}_e{354 227 352 220 348 214 _c +344 208 340 203 334 199 _c +328 195 321 194 313 194 _c +305 194 297 195 291 199 _c +285 203 280 208 276 214 _c +272 220 271 227 271 235 _c +271 242 272 249 276 255 _c +279 261 284 266 290 270 _c +296 274 304 276 313 276 _c +_cl}_e}_d +/Ufb44{{546 0 56 -7 502 527 _sc +60 501 _m +116 518 174 527 236 527 _c +312 527 375 504 426 460 _c +476 415 502 350 502 266 _c +502 182 476 116 424 67 _c +372 17 299 -7 207 -7 _c +143 -7 92 4 56 27 _c +79 104 _l +110 83 150 73 200 73 _c +256 73 304 88 344 120 _c +384 152 404 200 404 264 _c +404 320 388 365 357 399 _c +325 433 283 450 230 450 _c +202 450 175 447 149 441 _c +149 346 _l +149 306 169 286 209 286 _c +215 286 219 286 223 287 _c +233 221 _l +220 215 203 212 182 212 _c +}_e{150 212 121 222 97 244 _c +72 265 60 298 60 342 _c +60 501 _l +314 306 _m +322 306 329 304 335 300 _c +341 296 345 292 349 286 _c +353 280 355 273 355 265 _c +355 253 351 244 343 236 _c +335 228 326 224 314 224 _c +302 224 293 228 285 236 _c +277 244 273 253 273 265 _c +273 276 277 286 285 294 _c +293 302 302 306 314 306 _c +_cl}_e}_d +/Ufb46{479 0 5 0 425 518 _sc +false CharStrings /afii57686 get exec +gsave -75 -55 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb47{550 0 73 -198 496 518 _sc +false CharStrings /afii57687 get exec +gsave 98 0 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb48{509 0 20 0 438 524 _sc +false CharStrings /afii57688 get exec +gsave 9 90 translate +false CharStrings /afii57807 get exec +grestore }_d +/Ufb49{{694 0 49 -13 646 518 _sc +144 518 _m +146 434 _l +147 348 151 288 157 255 _c +191 255 222 263 250 281 _c +278 298 292 331 292 379 _c +302 518 _l +396 518 _l +384 355 _l +382 327 378 306 374 292 _c +370 278 361 263 348 247 _c +335 231 314 217 286 205 _c +257 193 219 185 171 181 _c +179 145 197 117 227 96 _c +257 75 293 65 337 65 _c +377 65 411 74 440 93 _c +468 112 489 137 503 167 _c +517 197 526 240 531 296 _c +552 518 _l +646 518 _l +628 326 _l +621 254 609 194 591 146 _c +573 98 543 60 500 31 _c +456 1 400 -13 332 -13 _c +270 -13 219 1 178 30 _c +137 59 106 101 86 156 _c +66 210 56 283 56 375 _c +49 518 _l +144 518 _l +432 269 _m +443 269 453 265 461 257 _c +469 249 473 239 473 228 _c +}_e{473 216 469 207 461 199 _c +453 191 443 187 432 187 _c +424 187 418 188 412 191 _c +406 194 401 199 397 205 _c +393 211 391 219 391 228 _c +391 239 394 249 402 257 _c +410 265 420 269 432 269 _c +_cl}_e}_d +/Ufb4a{643 0 20 -3 572 524 _sc +false CharStrings /afii57690 get exec +gsave 190 -44 translate +false CharStrings /afii57807 get exec +grestore }_d +/afii57700{247 0 76 0 171 659 _sc +171 518 _m +171 0 _l +76 0 _l +76 518 _l +171 518 _l +123 659 _m +129 659 136 657 142 654 _c +148 650 153 646 157 640 _c +161 634 164 626 164 618 _c +164 610 162 603 158 597 _c +154 591 149 586 143 582 _c +137 578 130 577 123 577 _c +115 577 108 578 102 582 _c +96 586 91 591 87 597 _c +83 603 82 610 82 618 _c +82 629 85 639 93 647 _c +101 655 111 659 123 659 _c +_cl}_d +/Ufb4c{542 0 24 0 520 662 _sc +false CharStrings /afii57665 get exec +gsave 65 0 translate +false CharStrings /afii57841 get exec +grestore }_d +/Ufb4d{461 0 39 -7 417 662 _sc +false CharStrings /afii57675 get exec +gsave 49 0 translate +false CharStrings /afii57841 get exec +grestore }_d +/Ufb4e{546 0 56 -7 502 662 _sc +false CharStrings /afii57684 get exec +gsave 92 0 translate +false CharStrings /afii57841 get exec +grestore }_d +/Ufb4f{{576 0 29 0 549 716 _sc +549 0 _m +434 0 _l +236 280 _l +205 263 187 229 182 179 _c +161 0 _l +64 0 _l +85 179 _l +95 262 129 318 187 348 _c +121 440 _l +29 440 _l +29 716 _l +122 716 _l +122 518 _l +181 518 _l +347 286 _l +367 299 381 314 389 332 _c +397 350 403 377 408 414 _c +420 518 _l +517 518 _l +505 411 _l +499 360 488 320 470 292 _c +452 264 427 239 394 219 _c +549 0 _l +_cl}_e}_d +/afii61664{0 0 -17 -133 18 629 _sc +18 629 _m +18 -133 _l +-17 -133 _l +-17 629 _l +18 629 _l +_cl}_d +/afii301{0 0 -106 -133 107 690 _sc +18 -133 _m +-17 -133 _l +-17 544 _l +-82 478 _l +-106 501 _l +-22 584 _l +-106 666 _l +-82 690 _l +0 606 _l +83 690 _l +107 666 _l +23 584 _l +107 501 _l +83 478 _l +18 544 _l +18 -133 _l +_cl}_d +/afii299{0 0 -17 -133 210 690 _sc +210 585 _m +104 480 _l +80 504 _l +147 568 _l +17 568 _l +17 -133 _l +-17 -133 _l +-17 603 _l +147 603 _l +80 666 _l +104 690 _l +210 585 _l +_cl}_d +/afii300{0 0 -209 -133 17 690 _sc +17 -133 _m +-17 -133 _l +-17 568 _l +-146 568 _l +-80 504 _l +-103 480 _l +-209 585 _l +-103 690 _l +-80 666 _l +-146 603 _l +17 603 _l +17 -133 _l +_cl}_d +/afii57388{319 0 83 137 241 443 _sc +241 204 _m +241 186 234 171 221 157 _c +208 143 191 137 171 137 _c +145 137 124 148 108 172 _c +91 195 83 224 83 259 _c +83 307 97 350 126 387 _c +140 405 161 423 189 443 _c +206 417 _l +186 399 172 383 162 371 _c +144 347 135 327 135 310 _c +135 292 152 279 188 271 _c +223 263 241 241 241 204 _c +_cl}_d +/afii57403{{319 0 78 136 235 609 _sc +235 370 _m +235 352 228 337 215 323 _c +202 309 186 303 166 303 _c +140 303 119 314 103 338 _c +86 361 78 390 78 425 _c +78 473 92 516 121 553 _c +135 571 156 589 184 609 _c +200 583 _l +180 565 166 549 156 537 _c +138 513 129 493 129 476 _c +129 458 146 445 182 437 _c +217 429 235 407 235 370 _c +222 192 _m +222 176 216 163 205 152 _c +194 141 181 136 166 136 _c +150 136 137 141 125 152 _c +113 163 108 176 108 192 _c +108 208 113 221 125 232 _c +136 243 150 249 166 249 _c +182 249 195 243 206 233 _c +216 222 222 208 222 192 _c +_cl}_e}_d +/afii57407{{356 0 33 137 326 711 _sc +326 590 _m +326 570 320 552 309 537 _c +295 519 278 511 257 511 _c +241 511 227 516 217 527 _c +206 537 201 550 201 565 _c +201 587 209 603 227 614 _c +245 625 254 634 254 642 _c +254 653 248 662 238 669 _c +228 675 214 679 198 679 _c +176 679 159 673 145 661 _c +131 649 125 635 125 618 _c +125 602 132 581 146 557 _c +166 519 179 494 184 483 _c +198 449 205 412 205 373 _c +205 351 203 326 200 300 _c +170 301 _l +170 307 170 311 170 314 _c +173 340 _l +}_e{173 358 161 377 137 399 _c +95 435 73 456 69 461 _c +45 489 33 522 33 559 _c +33 603 47 639 77 668 _c +106 696 142 711 186 711 _c +224 711 257 700 285 678 _c +312 656 326 626 326 590 _c +237 197 _m +237 180 231 166 219 154 _c +207 142 193 137 176 137 _c +160 137 146 143 134 155 _c +122 167 117 181 117 197 _c +117 214 123 228 135 240 _c +147 252 161 258 178 258 _c +194 258 208 252 220 240 _c +231 228 237 213 237 197 _c +_cl}_e}_d +/afii57409{{413 0 59 72 363 400 _sc +363 262 _m +340 182 _l +290 170 250 156 218 141 _c +181 123 147 100 117 72 _c +102 80 _l +106 95 111 109 119 122 _c +125 132 132 142 141 151 _c +84 184 _l +67 194 59 206 59 220 _c +59 230 65 248 79 276 _c +94 308 112 336 132 358 _c +158 386 184 400 211 400 _c +235 400 255 393 271 379 _c +275 376 283 367 296 352 _c +271 288 _l +259 296 252 301 250 303 _c +}_e{230 315 213 322 201 322 _c +185 322 168 317 151 308 _c +134 299 126 289 126 279 _c +126 265 136 252 156 240 _c +171 230 194 220 225 209 _c +270 231 316 248 363 262 _c +_cl}_e}_d +/afii57440{207 0 0 143 241 228 _sc +241 143 _m +0 143 _l +0 228 _l +241 228 _l +241 143 _l +_cl}_d +/afii57451{201 0 34 605 201 780 _sc +201 780 _m +201 764 192 750 176 736 _c +146 724 99 705 34 679 _c +34 693 41 706 56 720 _c +82 731 131 751 201 780 _c +201 707 _m +201 691 198 681 194 677 _c +190 673 184 668 177 662 _c +147 650 99 631 34 605 _c +34 619 41 632 56 646 _c +82 657 131 677 201 707 _c +_cl}_d +/afii57452{{237 0 34 605 237 794 _sc +237 763 _m +237 751 235 739 231 729 _c +227 718 222 707 215 696 _c +219 692 223 689 226 685 _c +229 681 231 678 231 674 _c +231 658 230 644 228 631 _c +186 664 _l +170 646 153 632 135 623 _c +111 611 86 605 58 605 _c +70 626 77 638 79 642 _c +83 650 85 659 85 667 _c +85 674 83 681 80 687 _c +76 693 72 696 66 696 _c +59 696 53 692 47 685 _c +45 681 40 674 34 663 _c +36 685 39 702 43 712 _c +49 730 60 739 75 739 _c +}_e{86 739 95 733 101 723 _c +107 712 110 700 110 686 _c +110 679 109 672 108 666 _c +106 656 104 648 104 644 _c +126 650 147 661 168 677 _c +162 682 157 687 152 693 _c +143 702 139 712 139 723 _c +139 738 145 753 158 769 _c +172 785 187 794 205 794 _c +213 794 221 790 227 784 _c +233 778 237 771 237 763 _c +202 734 _m +202 741 200 748 196 754 _c +192 760 187 764 181 764 _c +173 764 170 759 170 750 _c +170 744 173 737 179 731 _c +180 729 186 724 196 715 _c +}_e{200 721 202 728 202 734 _c +_cl}_e}_d +/afii57453{201 0 34 -129 201 44 _sc +201 44 _m +201 28 192 14 176 0 _c +146 -10 99 -29 34 -56 _c +34 -41 41 -27 56 -15 _c +82 -4 131 15 201 44 _c +201 -27 _m +201 -42 192 -57 176 -72 _c +146 -83 99 -102 34 -129 _c +34 -115 41 -101 56 -87 _c +82 -75 131 -55 201 -27 _c +_cl}_d +/afii57454{201 0 34 673 201 774 _sc +201 774 _m +201 758 192 743 176 729 _c +146 717 99 699 34 673 _c +34 687 41 700 56 714 _c +82 725 131 745 201 774 _c +_cl}_d +/afii57455{{209 0 35 605 209 817 _sc +209 686 _m +209 680 208 675 208 669 _c +207 663 206 657 205 651 _c +165 676 _l +148 658 137 646 131 640 _c +107 616 87 605 71 605 _c +35 605 _l +52 613 72 626 96 645 _c +116 661 132 675 143 688 _c +133 694 125 701 120 708 _c +113 716 110 726 110 736 _c +110 757 116 776 129 792 _c +141 808 155 817 170 817 _c +178 817 186 812 193 803 _c +199 794 203 783 203 771 _c +203 764 202 757 200 751 _c +198 744 194 732 188 714 _c +193 710 198 705 204 701 _c +}_e{207 697 209 692 209 686 _c +173 741 _m +173 749 169 757 163 765 _c +157 773 151 777 146 777 _c +142 777 140 775 138 773 _c +136 771 135 769 135 767 _c +135 759 139 752 147 744 _c +169 728 _l +171 734 173 738 173 741 _c +_cl}_e}_d +/afii57456{201 0 34 -20 201 80 _sc +201 80 _m +201 64 192 49 176 35 _c +146 23 99 5 34 -20 _c +34 -6 41 6 56 20 _c +82 30 131 50 201 80 _c +_cl}_d +/afii57457{{211 0 34 605 211 762 _sc +211 721 _m +211 697 207 677 199 661 _c +189 643 176 635 160 635 _c +154 635 148 636 143 638 _c +138 640 133 643 127 647 _c +120 635 114 626 108 621 _c +97 610 86 605 75 605 _c +61 605 51 609 44 619 _c +37 628 34 641 34 657 _c +34 665 35 674 37 682 _c +39 690 43 699 47 710 _c +58 714 _l +58 711 57 707 57 701 _c +56 695 56 691 56 687 _c +56 679 57 673 60 667 _c +62 661 67 659 73 659 _c +87 659 98 668 107 687 _c +111 695 116 711 122 736 _c +132 739 _l +}_e{134 723 136 713 138 709 _c +142 699 148 694 158 694 _c +170 694 179 702 187 719 _c +193 731 196 745 196 759 _c +206 762 _l +207 756 208 749 209 741 _c +210 733 211 727 211 721 _c +_cl}_e}_d +/afii57458{165 0 34 605 165 756 _sc +165 683 _m +165 663 157 645 142 629 _c +127 613 109 605 87 605 _c +69 605 56 609 47 619 _c +38 629 34 643 34 661 _c +34 685 40 707 53 727 _c +66 746 82 756 102 756 _c +119 756 134 748 146 734 _c +158 719 165 702 165 683 _c +135 670 _m +135 679 128 689 116 700 _c +103 711 92 717 84 717 _c +75 717 68 713 62 706 _c +56 698 54 691 54 683 _c +54 671 59 663 70 659 _c +78 655 90 654 106 654 _c +114 654 121 655 127 657 _c +132 659 135 664 135 670 _c +_cl}_d +/afii57392{526 0 186 219 344 452 _sc +344 363 _m +335 335 328 312 324 294 _c +319 276 314 251 308 219 _c +280 234 258 247 243 259 _c +232 266 213 281 186 303 _c +192 333 198 357 204 376 _c +210 395 218 420 229 452 _c +247 436 266 420 285 406 _c +297 396 316 382 344 363 _c +_cl}_d +/afii57393{526 0 147 143 327 716 _sc +327 347 _m +327 317 324 283 320 245 _c +319 235 315 201 307 143 _c +290 143 _l +290 151 290 173 292 211 _c +292 279 282 344 264 404 _c +249 450 229 494 203 536 _c +190 556 171 581 147 611 _c +194 716 _l +220 685 240 656 256 630 _c +278 592 295 553 307 512 _c +320 462 327 407 327 347 _c +_cl}_d +/afii57394{{526 0 89 143 391 723 _sc +391 638 _m +391 602 382 573 366 552 _c +347 528 321 517 287 517 _c +283 517 271 518 253 521 _c +265 495 274 474 280 459 _c +288 433 295 402 300 368 _c +304 334 307 288 307 230 _c +307 220 306 203 306 180 _c +305 157 305 145 305 143 _c +290 143 _l +265 248 249 314 241 342 _c +225 396 206 443 185 483 _c +163 523 131 570 89 624 _c +122 723 _l +143 691 162 668 180 654 _c +210 626 243 613 278 613 _c +314 613 340 625 354 649 _c +}_e{361 662 367 686 372 722 _c +387 723 _l +388 711 389 698 390 683 _c +390 667 391 652 391 638 _c +_cl}_e}_d +/afii57395{{526 0 63 143 471 723 _sc +471 673 _m +471 632 463 601 447 580 _c +431 558 408 548 376 548 _c +357 548 341 550 327 556 _c +313 562 303 571 297 583 _c +286 565 272 551 255 542 _c +238 532 218 528 194 528 _c +206 504 214 486 220 474 _c +229 450 236 426 242 400 _c +247 374 250 342 250 306 _c +250 285 249 265 247 246 _c +245 227 240 193 232 143 _c +213 143 _l +213 214 208 273 199 319 _c +190 365 174 409 152 453 _c +135 485 105 533 63 597 _c +99 712 _l +115 684 133 663 153 649 _c +175 633 199 625 226 625 _c +254 625 275 634 291 653 _c +}_e{304 669 313 693 319 723 _c +334 723 _l +336 693 342 672 352 660 _c +361 648 374 642 391 642 _c +425 642 445 669 452 723 _c +468 723 _l +468 715 468 706 469 694 _c +470 682 471 675 471 673 _c +_cl}_e}_d +/afii57396{{526 0 146 143 397 713 _sc +397 242 _m +367 143 _l +337 143 309 145 282 149 _c +246 155 218 163 196 174 _c +169 187 156 204 156 224 _c +156 242 161 261 173 281 _c +183 297 198 316 218 338 _c +228 349 249 369 279 398 _c +251 408 223 419 196 430 _c +162 444 146 459 146 474 _c +146 498 158 527 183 560 _c +201 585 228 614 264 646 _c +288 668 316 690 346 713 _c +331 620 _l +}_e{295 606 271 597 259 591 _c +230 577 216 564 216 552 _c +216 542 228 531 252 521 _c +275 511 298 503 321 495 _c +345 484 358 475 358 467 _c +358 457 347 441 325 417 _c +304 395 284 374 264 354 _c +241 328 230 309 230 296 _c +230 280 252 267 297 257 _c +326 250 359 245 397 242 _c +_cl}_e}_d +/afii57397{{526 0 93 247 438 622 _sc +438 450 _m +438 393 421 346 387 310 _c +349 268 295 247 225 247 _c +185 247 154 254 132 268 _c +106 283 93 305 93 335 _c +93 361 100 397 114 441 _c +130 490 150 531 173 563 _c +201 602 230 622 260 622 _c +298 622 337 602 377 563 _c +417 524 438 486 438 450 _c +401 398 _m +401 416 388 436 362 458 _c +340 476 313 492 280 507 _c +250 520 227 527 212 527 _c +190 527 172 512 158 483 _c +}_e{146 459 141 435 141 412 _c +141 385 152 366 174 354 _c +194 342 225 336 266 336 _c +305 336 337 342 363 354 _c +388 366 401 380 401 398 _c +_cl}_e}_d +/afii57398{{526 0 85 156 410 710 _sc +410 268 _m +391 156 _l +369 170 353 183 343 195 _c +325 215 311 240 302 270 _c +290 306 284 350 284 403 _c +284 422 285 441 287 461 _c +287 467 290 499 297 559 _c +281 555 270 553 263 552 _c +239 547 219 545 204 545 _c +152 545 119 550 104 561 _c +91 569 85 585 85 611 _c +85 621 85 637 86 659 _c +87 681 88 697 88 708 _c +106 710 _l +114 692 121 681 128 675 _c +}_e{143 663 168 657 203 657 _c +228 657 257 660 290 666 _c +296 667 314 671 342 677 _c +336 643 332 618 330 602 _c +326 574 324 549 324 528 _c +324 475 328 431 338 396 _c +345 367 356 341 371 318 _c +376 310 389 293 410 268 _c +_cl}_e}_d +/afii57399{526 0 63 143 459 710 _sc +459 710 _m +455 570 _l +407 521 368 462 340 394 _c +312 326 291 242 278 143 _c +271 143 _l +250 243 223 324 191 387 _c +159 450 116 506 63 554 _c +81 708 _l +131 649 172 586 206 518 _c +237 452 263 376 284 290 _c +289 290 _l +301 380 322 461 352 532 _c +380 600 415 659 459 710 _c +_cl}_d +/afii57400{526 0 75 149 472 716 _sc +472 306 _m +454 152 _l +406 202 363 264 327 338 _c +291 412 265 490 250 573 _c +246 573 _l +232 499 219 444 209 407 _c +195 357 179 314 160 276 _c +139 235 111 193 75 149 _c +75 289 _l +122 332 160 388 189 458 _c +217 525 239 611 255 716 _c +265 716 _l +281 638 300 574 320 523 _c +339 475 362 433 388 397 _c +409 367 437 337 472 306 _c +_cl}_d +/afii57401{{526 0 107 143 413 725 _sc +413 247 _m +383 143 _l +350 163 328 196 318 243 _c +310 281 306 350 306 448 _c +283 440 266 434 255 432 _c +244 430 233 429 223 429 _c +187 429 159 436 138 451 _c +117 465 107 486 107 514 _c +107 534 112 559 122 589 _c +134 627 150 657 171 680 _c +197 710 229 725 266 725 _c +292 725 313 710 327 682 _c +338 659 346 625 350 580 _c +352 552 353 510 353 456 _c +359 381 368 328 379 298 _c +384 284 395 267 413 247 _c +}_e{302 533 _m +302 563 298 585 291 601 _c +280 621 262 632 236 632 _c +216 632 197 624 179 610 _c +161 595 152 581 152 569 _c +152 555 160 544 176 537 _c +192 529 211 526 234 526 _c +244 526 256 527 270 529 _c +284 531 294 532 302 533 _c +_cl}_e}_d +/afii57381{{526 0 65 84 463 777 _sc +213 715 _m +213 697 206 681 194 669 _c +182 656 167 650 149 650 _c +131 650 116 656 104 669 _c +91 682 85 697 85 715 _c +85 732 91 747 103 759 _c +115 771 131 777 149 777 _c +167 777 182 771 194 759 _c +206 747 213 733 213 715 _c +463 777 _m +118 92 _l +65 92 _l +407 777 _l +463 777 _l +440 147 _m +440 129 433 114 421 102 _c +409 90 393 84 375 84 _c +357 84 343 90 331 102 _c +319 114 313 129 313 147 _c +313 165 319 180 331 193 _c +343 205 357 212 375 212 _c +393 212 408 205 421 193 _c +433 180 440 165 440 147 _c +_cl}_e}_d +/U066b{319 0 94 23 230 267 _sc +230 200 _m +230 172 223 147 211 123 _c +201 103 186 84 167 66 _c +156 55 139 41 115 23 _c +94 50 _l +116 68 131 81 139 89 _c +152 103 159 117 159 131 _c +143 137 129 145 117 156 _c +103 167 97 183 97 203 _c +97 220 103 235 115 248 _c +127 260 142 267 160 267 _c +178 267 195 260 209 247 _c +223 234 230 218 230 200 _c +_cl}_d +/afii63167{{526 0 87 403 424 744 _sc +424 573 _m +424 563 420 556 413 550 _c +405 544 396 542 386 542 _c +368 542 348 546 324 554 _c +288 566 _l +283 552 _l +341 523 _l +369 507 383 491 383 474 _c +383 464 380 456 374 450 _c +368 444 360 441 351 441 _c +334 441 308 474 274 542 _c +271 540 268 539 264 538 _c +270 516 275 499 279 488 _c +284 468 287 452 287 438 _c +287 428 284 419 279 413 _c +273 406 265 403 255 403 _c +245 403 237 406 232 412 _c +226 418 224 427 224 438 _c +224 452 227 468 233 486 _c +239 504 244 521 250 538 _c +237 542 _l +}_e{226 521 215 500 205 480 _c +189 454 174 441 159 441 _c +149 441 142 444 136 450 _c +130 456 127 464 127 474 _c +127 491 141 507 169 523 _c +171 524 191 534 229 552 _c +226 557 224 562 223 566 _c +201 558 184 553 174 550 _c +155 544 139 542 125 542 _c +113 542 104 544 97 550 _c +90 556 87 563 87 573 _c +87 583 90 591 97 597 _c +104 603 113 606 125 606 _c +139 606 154 603 172 597 _c +189 591 206 585 223 579 _c +224 584 226 590 229 596 _c +209 604 189 614 169 624 _c +}_e{141 638 127 654 127 672 _c +127 681 130 689 136 696 _c +142 702 149 706 159 706 _c +174 706 189 693 204 667 _c +217 641 228 620 237 604 _c +250 608 _l +249 610 245 623 237 645 _c +228 671 224 692 224 708 _c +224 718 226 726 232 733 _c +237 740 245 744 255 744 _c +265 744 273 740 279 734 _c +284 727 287 718 287 708 _c +287 694 284 678 278 660 _c +272 642 266 625 261 609 _c +274 604 _l +294 644 305 664 306 666 _c +321 692 336 706 351 706 _c +360 706 368 702 374 696 _c +380 689 383 681 383 672 _c +383 654 369 638 341 624 _c +}_e{317 612 298 602 283 596 _c +288 579 _l +309 587 325 592 336 596 _c +355 602 372 606 386 606 _c +397 606 406 603 413 597 _c +420 591 424 583 424 573 _c +275 573 _m +275 579 273 583 269 587 _c +265 591 261 593 255 593 _c +249 593 245 591 241 587 _c +237 583 236 579 236 573 _c +236 567 237 563 241 559 _c +245 555 249 554 255 554 _c +261 554 265 555 269 559 _c +273 563 275 567 275 573 _c +_cl}_e}_d +/G0306{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0307{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/afii57534{{282 0 26 130 262 430 _sc +262 287 _m +262 241 254 206 239 184 _c +216 148 174 130 112 130 _c +88 130 69 134 53 144 _c +35 154 26 170 26 190 _c +26 212 31 239 43 269 _c +53 294 64 320 75 346 _c +68 348 _l +98 430 _l +156 399 191 380 203 372 _c +242 344 262 316 262 287 _c +219 249 _m +219 261 201 278 166 298 _c +150 307 134 316 116 324 _c +101 308 92 298 90 294 _c +}_e{80 281 76 269 76 258 _c +76 241 80 228 90 219 _c +99 210 111 206 127 206 _c +145 206 165 211 187 221 _c +208 231 219 240 219 249 _c +_cl}_e}_d +/G0309{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/U06f4{{526 0 77 147 455 720 _sc +77 599 _m +114 716 _l +143 663 164 629 176 613 _c +188 597 205 583 229 570 _c +233 622 242 660 258 684 _c +274 708 296 720 326 720 _c +346 720 364 715 380 706 _c +394 696 410 682 426 663 _c +422 657 _l +420 657 413 659 403 663 _c +387 668 371 671 357 671 _c +327 671 302 662 284 645 _c +265 628 251 601 242 563 _c +258 557 273 553 285 551 _c +297 549 308 548 318 548 _c +344 548 367 552 386 561 _c +404 570 424 587 444 612 _c +455 608 _l +445 560 428 523 403 498 _c +378 473 346 461 306 461 _c +286 461 271 462 260 466 _c +249 469 237 475 224 485 _c +}_e{238 453 246 427 250 407 _c +253 390 255 364 255 330 _c +255 284 246 223 230 147 _c +213 147 _l +213 218 206 283 194 342 _c +182 393 166 442 144 489 _c +126 525 104 562 77 599 _c +_cl}_e}_d +/U06f5{{526 0 74 159 441 708 _sc +210 601 _m +242 708 _l +310 640 362 572 396 504 _c +426 445 441 391 441 342 _c +441 302 430 266 409 232 _c +385 193 355 174 321 174 _c +311 174 303 175 295 177 _c +287 179 279 184 270 192 _c +256 180 241 171 227 166 _c +212 161 197 159 182 159 _c +151 159 126 167 106 185 _c +84 202 74 226 74 258 _c +74 294 87 336 113 382 _c +139 428 185 489 249 563 _c +210 601 _l +288 292 _m +295 284 305 278 317 273 _c +329 267 342 265 356 265 _c +371 265 384 269 395 277 _c +405 285 411 296 411 309 _c +}_e{411 333 397 367 369 411 _c +343 451 307 497 261 549 _c +247 535 233 517 217 495 _c +196 466 179 438 167 412 _c +151 378 143 349 143 325 _c +143 304 148 288 159 276 _c +170 264 186 258 206 258 _c +220 258 232 260 244 264 _c +256 268 270 278 288 292 _c +_cl}_e}_d +/U06f6{{526 0 99 147 435 717 _sc +168 147 _m +168 202 173 254 185 304 _c +197 353 216 399 242 443 _c +193 443 157 448 134 458 _c +110 468 99 484 99 504 _c +99 519 105 538 118 562 _c +130 586 149 612 174 641 _c +193 665 212 683 231 697 _c +250 710 267 717 282 717 _c +299 717 317 710 336 696 _c +354 682 376 659 401 629 _c +396 624 _l +372 632 353 637 341 640 _c +329 642 315 644 299 644 _c +258 644 225 638 201 627 _c +177 616 165 603 165 587 _c +165 569 173 556 191 546 _c +209 536 233 531 264 531 _c +292 531 317 533 340 539 _c +363 545 395 557 435 575 _c +413 482 _l +381 470 349 450 319 422 _c +285 390 257 353 235 309 _c +}_e{210 259 194 205 188 147 _c +168 147 _l +_cl}_e}_d +/G030d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G030e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G030f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0310{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0311{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/Ue818{{211 0 34 605 211 917 _sc +201 917 _m +201 902 192 888 176 874 _c +146 862 99 843 34 817 _c +34 831 41 844 56 857 _c +82 869 131 889 201 917 _c +201 844 _m +201 828 198 819 194 815 _c +190 811 184 806 177 800 _c +147 788 99 769 34 743 _c +34 757 41 770 56 783 _c +82 794 131 814 201 844 _c +211 721 _m +211 696 207 676 199 661 _c +189 643 176 634 160 634 _c +154 634 148 635 143 637 _c +137 639 132 642 127 646 _c +}_e{120 635 114 627 108 621 _c +97 610 86 605 75 605 _c +61 605 51 609 44 619 _c +37 628 34 641 34 657 _c +34 665 35 674 38 684 _c +40 689 43 698 47 710 _c +58 714 _l +58 711 57 707 57 701 _c +56 695 56 690 56 687 _c +56 679 57 673 60 667 _c +62 661 67 659 73 659 _c +87 659 98 668 107 686 _c +111 694 116 710 122 735 _c +132 738 _l +134 722 136 712 138 709 _c +142 698 148 693 158 693 _c +170 693 179 701 187 718 _c +193 731 196 745 196 760 _c +}_e{206 763 _l +207 756 208 749 209 741 _c +210 733 211 726 211 721 _c +_cl}_e}_d +/G0313{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0314{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0315{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0316{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0317{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0318{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0319{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G031a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/Ue83a{638 0 0 143 667 228 _sc +667 143 _m +0 143 _l +0 228 _l +667 228 _l +667 143 _l +_cl}_d +/G031c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/U0671{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G031e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/afii57506{{713 0 63 -174 748 469 _sc +748 143 _m +282 143 _l +219 143 169 154 132 176 _c +86 203 63 246 63 304 _c +63 334 69 365 83 397 _c +87 408 99 430 118 462 _c +133 453 _l +125 437 118 422 112 408 _c +102 384 98 364 98 346 _c +98 307 118 277 158 256 _c +194 237 239 228 295 228 _c +709 228 _l +709 241 _l +709 277 704 307 696 330 _c +687 353 672 373 651 389 _c +688 469 _l +702 451 711 439 714 435 _c +}_e{736 398 748 345 748 276 _c +748 143 _l +531 27 _m +495 -42 _l +415 -1 _l +452 68 _l +531 27 _l +515 -103 _m +479 -174 _l +399 -132 _l +437 -61 _l +515 -103 _l +420 -17 _m +383 -87 _l +303 -45 _l +341 24 _l +420 -17 _l +_cl}_e}_d +/Ufb57{713 0 63 -174 748 469 _sc +false CharStrings /afii57506 get exec +}_d +/Ufb58{244 0 0 -174 279 456 _sc +227 27 _m +191 -42 _l +111 -1 _l +148 68 _l +227 27 _l +210 -103 _m +174 -174 _l +95 -132 _l +132 -61 _l +210 -103 _l +116 -17 _m +79 -87 _l +0 -45 _l +37 24 _l +116 -17 _l +279 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 208 350 184 376 _c +222 456 _l +245 426 260 403 266 387 _c +274 361 279 320 279 262 _c +279 143 _l +_cl}_d +/Ufb59{244 0 0 -174 279 456 _sc +false CharStrings /Ufb58 get exec +}_d +/afii57505{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0324{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0325{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0326{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/afii57507{{563 0 26 -211 516 432 _sc +236 340 _m +230 340 220 340 208 341 _c +195 342 186 343 180 343 _c +159 343 136 341 110 337 _c +92 334 69 330 41 324 _c +53 360 65 384 77 396 _c +101 420 142 432 200 432 _c +221 432 265 427 332 418 _c +362 414 389 412 412 412 _c +421 412 435 413 453 415 _c +471 417 485 419 495 419 _c +477 336 _l +408 324 349 311 301 296 _c +229 274 174 247 134 215 _c +84 175 59 129 59 75 _c +59 5 95 -46 168 -82 _c +}_e{232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +42 -76 26 -25 26 39 _c +26 93 39 143 65 187 _c +84 219 112 251 150 281 _c +161 289 190 309 236 340 _c +418 176 _m +382 105 _l +302 146 _l +339 217 _l +418 176 _l +401 44 _m +365 -26 _l +286 15 _l +323 86 _l +401 44 _l +307 130 _m +270 61 _l +}_e{189 102 _l +228 172 _l +307 130 _l +_cl}_e}_d +/Ufb7b{{526 0 26 -211 560 426 _sc +560 143 _m +459 143 _l +419 143 391 150 375 165 _c +358 179 350 204 350 238 _c +350 250 351 266 355 285 _c +356 292 358 301 360 313 _c +304 296 262 282 234 270 _c +182 248 141 223 113 195 _c +77 159 59 119 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +}_e{42 -76 26 -25 26 39 _c +26 95 40 143 68 185 _c +89 217 120 247 162 274 _c +174 282 207 301 263 331 _c +249 332 235 333 221 334 _c +207 335 194 336 182 336 _c +149 336 122 334 102 332 _c +95 331 74 327 38 319 _c +49 351 61 373 73 385 _c +99 412 142 426 200 426 _c +231 426 265 423 302 417 _c +338 411 369 408 395 408 _c +411 408 427 408 443 410 _c +459 411 475 413 493 416 _c +474 333 _l +460 331 445 328 428 326 _c +417 324 402 321 384 317 _c +383 290 _l +}_e{383 263 391 245 407 236 _c +417 230 434 228 459 228 _c +560 228 _l +560 143 _l +352 121 _m +315 50 _l +235 91 _l +272 162 _l +352 121 _l +335 -9 _m +299 -81 _l +219 -39 _l +257 32 _l +335 -9 _l +240 76 _m +204 6 _l +123 47 _l +161 118 _l +240 76 _l +_cl}_e}_d +/Ufb7c{{530 0 0 -174 559 427 _sc +559 143 _m +0 143 _l +0 228 _l +393 228 _l +359 254 331 274 309 288 _c +281 306 255 319 231 327 _c +205 336 178 341 151 341 _c +134 341 117 339 101 337 _c +110 361 122 381 138 396 _c +160 416 188 427 222 427 _c +255 427 294 410 340 378 _c +362 362 399 331 450 286 _c +489 250 516 230 530 228 _c +559 228 _l +559 143 _l +374 27 _m +338 -42 _l +258 -1 _l +}_e{295 68 _l +374 27 _l +357 -103 _m +321 -174 _l +242 -132 _l +279 -61 _l +357 -103 _l +263 -17 _m +226 -87 _l +146 -45 _l +184 24 _l +263 -17 _l +_cl}_e}_d +/Ufb7d{530 0 0 -174 559 427 _sc +false CharStrings /Ufb7c get exec +}_d +/afii57508{{489 0 70 -90 523 723 _sc +523 143 _m +523 107 507 70 477 32 _c +450 -1 417 -30 377 -55 _c +339 -78 308 -90 284 -90 _c +261 -90 237 -86 211 -80 _c +191 -75 168 -67 140 -57 _c +116 -48 93 -39 70 -31 _c +79 -11 _l +100 -15 122 -20 146 -24 _c +169 -28 190 -31 209 -31 _c +250 -31 293 -18 339 8 _c +380 32 415 63 444 101 _c +473 138 488 172 488 202 _c +488 227 480 254 465 283 _c +453 305 436 329 415 353 _c +442 430 _l +}_e{468 405 488 380 501 355 _c +515 327 523 296 523 262 _c +523 143 _l +414 681 _m +376 610 _l +298 652 _l +334 723 _l +414 681 _l +510 594 _m +472 524 _l +393 566 _l +430 636 _l +510 594 _l +398 550 _m +361 479 _l +282 521 _l +318 591 _l +398 550 _l +_cl}_e}_d +/Ufb8b{489 0 70 -90 523 723 _sc +false CharStrings /afii57508 get exec +}_d +/U06a9{{812 0 44 143 846 734 _sc +790 228 _m +766 262 740 292 711 318 _c +681 343 642 371 593 401 _c +577 386 _l +519 430 _l +499 446 489 459 489 469 _c +489 525 502 569 530 601 _c +555 630 599 656 661 680 _c +799 734 _l +799 649 _l +697 615 _l +656 601 623 589 598 579 _c +566 565 550 554 550 546 _c +550 538 560 527 582 512 _c +594 502 607 492 621 482 _c +670 444 713 405 750 365 _c +790 321 822 275 846 228 _c +846 143 _l +}_e{263 143 _l +185 143 129 152 97 171 _c +61 191 44 224 44 272 _c +44 300 51 333 67 370 _c +71 380 80 398 94 426 _c +110 417 _l +99 391 92 371 88 357 _c +84 343 83 331 83 319 _c +83 283 102 258 140 244 _c +168 233 209 228 263 228 _c +790 228 _l +_cl}_e}_d +/Ufb8f{{933 0 44 143 967 734 _sc +263 143 _m +185 143 129 152 97 171 _c +61 191 44 224 44 272 _c +44 300 51 333 67 370 _c +71 380 80 398 94 426 _c +110 417 _l +99 391 92 371 88 357 _c +84 343 83 331 83 319 _c +83 283 102 258 140 244 _c +168 233 209 228 263 228 _c +471 228 _l +522 228 565 234 601 248 _c +643 264 664 286 664 315 _c +664 337 656 355 640 371 _c +632 378 616 388 593 401 _c +577 386 _l +519 430 _l +}_e{499 446 489 459 489 469 _c +489 525 502 569 530 601 _c +555 630 599 656 661 680 _c +799 734 _l +799 649 _l +697 615 _l +641 596 601 581 579 570 _c +559 560 550 552 550 546 _c +550 538 560 527 582 512 _c +594 502 607 492 621 482 _c +649 460 675 439 699 418 _c +719 400 737 381 754 361 _c +765 349 782 328 806 299 _c +821 280 836 265 851 253 _c +871 236 888 228 903 228 _c +967 228 _l +}_e{967 143 _l +907 143 _l +880 143 852 156 823 184 _c +808 197 788 221 762 255 _c +746 275 736 288 732 292 _c +724 302 711 315 695 331 _c +695 273 677 227 641 195 _c +602 160 544 143 468 143 _c +263 143 _l +_cl}_e}_d +/Ufb90{{394 0 0 143 428 734 _sc +428 143 _m +0 143 _l +0 228 _l +372 228 _l +348 262 322 292 293 318 _c +264 343 225 371 175 401 _c +159 386 _l +101 430 _l +81 446 71 459 71 469 _c +71 525 84 569 112 601 _c +137 630 181 656 243 680 _c +381 734 _l +381 649 _l +279 615 _l +238 601 205 589 180 579 _c +148 565 132 554 132 546 _c +132 538 142 527 164 512 _c +176 502 189 492 203 482 _c +252 444 295 405 333 365 _c +}_e{372 321 404 275 428 228 _c +428 143 _l +_cl}_e}_d +/Ufb91{{515 0 0 143 549 734 _sc +388 299 _m +403 280 418 265 433 253 _c +453 236 470 228 485 228 _c +549 228 _l +549 143 _l +489 143 _l +462 143 434 156 405 184 _c +390 197 370 221 344 255 _c +328 275 318 288 314 292 _c +306 302 293 315 277 331 _c +277 273 259 227 223 195 _c +184 160 126 143 50 143 _c +0 143 _l +0 228 _l +53 228 _l +104 228 147 234 183 248 _c +225 264 246 286 246 315 _c +}_e{246 337 238 355 222 371 _c +214 378 198 388 175 401 _c +159 386 _l +101 430 _l +81 446 71 459 71 469 _c +71 525 84 569 112 601 _c +137 630 181 656 243 680 _c +381 734 _l +381 649 _l +279 615 _l +238 601 205 589 180 579 _c +148 565 132 554 132 546 _c +132 538 142 527 164 512 _c +176 502 189 492 203 482 _c +231 460 257 439 281 418 _c +301 400 319 381 336 361 _c +}_e{347 349 364 328 388 299 _c +_cl}_e}_d +/afii57509{{812 0 44 143 846 867 _sc +790 228 _m +766 262 740 292 711 318 _c +681 343 642 371 593 401 _c +577 386 _l +519 430 _l +499 446 489 459 489 469 _c +489 525 502 569 530 601 _c +555 630 599 656 661 680 _c +799 734 _l +799 649 _l +697 615 _l +656 601 623 589 598 579 _c +566 565 550 554 550 546 _c +550 538 560 527 582 512 _c +594 502 607 492 621 482 _c +670 444 713 405 750 365 _c +790 321 822 275 846 228 _c +846 143 _l +}_e{263 143 _l +185 143 129 152 97 171 _c +61 191 44 224 44 272 _c +44 300 51 333 67 370 _c +71 380 80 398 94 426 _c +110 417 _l +99 391 92 371 88 357 _c +84 343 83 331 83 319 _c +83 283 102 258 140 244 _c +168 233 209 228 263 228 _c +790 228 _l +799 867 _m +799 785 _l +728 759 663 731 604 703 _c +550 677 509 654 479 634 _c +479 686 _l +489 697 509 713 541 734 _c +572 754 609 776 653 799 _c +702 824 751 847 799 867 _c +_cl}_e}_d +/Ufb93{{933 0 44 143 967 867 _sc +263 143 _m +185 143 129 152 97 171 _c +61 191 44 224 44 272 _c +44 300 51 333 67 370 _c +71 380 80 398 94 426 _c +110 417 _l +99 391 92 371 88 357 _c +84 343 83 331 83 319 _c +83 283 102 258 140 244 _c +168 233 209 228 263 228 _c +471 228 _l +522 228 565 234 601 248 _c +643 264 664 286 664 315 _c +664 337 656 355 640 371 _c +632 378 616 388 593 401 _c +577 386 _l +519 430 _l +}_e{499 446 489 459 489 469 _c +489 525 502 569 530 601 _c +555 630 599 656 661 680 _c +799 734 _l +799 649 _l +697 615 _l +641 596 601 581 579 570 _c +559 560 550 552 550 546 _c +550 538 560 527 582 512 _c +594 502 607 492 621 482 _c +649 460 675 439 699 418 _c +719 400 737 381 754 361 _c +765 349 782 328 806 299 _c +821 280 836 265 851 253 _c +871 236 888 228 903 228 _c +967 228 _l +}_e{967 143 _l +907 143 _l +880 143 852 156 823 184 _c +808 197 788 221 762 255 _c +746 275 736 288 732 292 _c +724 302 711 315 695 331 _c +695 273 677 227 641 195 _c +602 160 544 143 468 143 _c +263 143 _l +799 867 _m +799 785 _l +728 759 663 731 604 703 _c +550 677 509 654 479 634 _c +479 686 _l +489 697 509 713 541 734 _c +572 754 609 776 653 799 _c +702 824 751 847 799 867 _c +_cl}_e}_d +/Ufb94{{394 0 0 143 428 876 _sc +428 143 _m +0 143 _l +0 228 _l +372 228 _l +348 262 322 292 293 318 _c +264 343 225 371 175 401 _c +159 386 _l +101 430 _l +81 446 71 459 71 469 _c +71 525 84 569 112 601 _c +137 630 181 656 243 680 _c +381 734 _l +381 649 _l +279 615 _l +238 601 205 589 180 579 _c +148 565 132 554 132 546 _c +132 538 142 527 164 512 _c +176 502 189 492 203 482 _c +252 444 295 405 333 365 _c +}_e{372 321 404 275 428 228 _c +428 143 _l +381 876 _m +381 793 _l +310 767 245 740 186 711 _c +132 685 91 663 61 643 _c +61 694 _l +71 706 91 722 123 742 _c +154 762 191 784 235 808 _c +284 833 333 856 381 876 _c +_cl}_e}_d +/Ufb95{{515 0 0 143 549 876 _sc +388 299 _m +403 280 418 265 433 253 _c +453 236 470 228 485 228 _c +549 228 _l +549 143 _l +489 143 _l +462 143 434 156 405 184 _c +390 197 370 221 344 255 _c +328 275 318 288 314 292 _c +306 302 293 315 277 331 _c +277 273 259 227 223 195 _c +184 160 126 143 50 143 _c +0 143 _l +0 228 _l +53 228 _l +104 228 147 234 183 248 _c +225 264 246 286 246 315 _c +}_e{246 337 238 355 222 371 _c +214 378 198 388 175 401 _c +159 386 _l +101 430 _l +81 446 71 459 71 469 _c +71 525 84 569 112 601 _c +137 630 181 656 243 680 _c +381 734 _l +381 649 _l +279 615 _l +238 601 205 589 180 579 _c +148 565 132 554 132 546 _c +132 538 142 527 164 512 _c +176 502 189 492 203 482 _c +231 460 257 439 281 418 _c +301 400 319 381 336 361 _c +}_e{347 349 364 328 388 299 _c +381 876 _m +381 793 _l +310 767 245 740 186 711 _c +132 685 91 663 61 643 _c +61 694 _l +71 706 91 722 123 742 _c +154 762 191 784 235 808 _c +284 833 333 856 381 876 _c +_cl}_e}_d +/U06cc{{638 0 24 -42 606 462 _sc +606 391 _m +606 380 605 369 603 358 _c +601 347 599 339 599 335 _c +587 349 574 361 558 370 _c +542 378 526 383 510 383 _c +482 383 452 366 421 333 _c +392 303 378 279 378 261 _c +378 255 381 250 388 247 _c +395 244 407 243 425 243 _c +464 243 _l +487 243 504 242 516 242 _c +527 241 540 239 556 237 _c +572 234 580 222 580 202 _c +580 120 544 57 473 15 _c +407 -23 319 -42 207 -42 _c +149 -42 104 -31 74 -9 _c +40 15 24 51 24 101 _c +24 134 29 169 41 207 _c +49 235 61 265 76 296 _c +}_e{77 298 87 317 107 354 _c +127 346 _l +107 309 91 275 80 243 _c +69 211 64 183 64 159 _c +64 119 77 90 105 70 _c +132 50 171 40 223 40 _c +262 40 307 47 359 63 _c +403 76 443 92 479 111 _c +514 129 532 143 532 152 _c +532 158 530 162 526 164 _c +522 166 515 167 506 167 _c +392 167 _l +378 167 365 172 355 182 _c +344 192 339 206 339 222 _c +339 243 348 273 366 311 _c +385 351 409 385 437 413 _c +469 445 503 462 537 462 _c +558 462 575 455 587 442 _c +599 429 606 412 606 391 _c +_cl}_e}_d +/Ufbfd{{588 0 52 -109 623 252 _sc +623 143 _m +537 143 _l +487 143 449 141 424 139 _c +398 136 386 131 386 124 _c +386 112 401 107 432 107 _c +445 107 455 106 463 106 _c +471 105 488 103 515 101 _c +530 99 541 96 547 94 _c +556 88 561 80 561 68 _c +561 8 541 -35 501 -63 _c +457 -93 385 -109 285 -109 _c +215 -109 159 -97 118 -73 _c +74 -47 52 -12 52 34 _c +52 72 62 112 83 154 _c +90 169 110 202 142 252 _c +162 243 _l +}_e{149 221 137 200 125 180 _c +106 144 97 114 97 92 _c +97 52 118 21 160 0 _c +199 -18 253 -28 323 -28 _c +369 -28 410 -24 446 -18 _c +490 -8 512 3 512 18 _c +512 23 509 27 504 30 _c +499 32 491 34 480 34 _c +471 35 457 36 439 37 _c +420 38 408 39 402 39 _c +381 39 366 41 358 47 _c +349 52 345 60 345 71 _c +345 111 356 144 380 170 _c +400 191 426 207 459 217 _c +483 224 509 228 537 228 _c +623 228 _l +623 143 _l +_cl}_e}_d +/G0337{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0338{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0339{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G033f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0340{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0341{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0342{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0343{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0344{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0345{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0346{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/Ufc5e{{226 0 23 605 226 933 _sc +224 885 _m +222 877 220 870 218 862 _c +216 854 211 845 205 834 _c +209 830 213 826 216 823 _c +218 819 220 816 220 812 _c +220 806 219 799 219 792 _c +219 785 218 777 217 769 _c +175 802 _l +159 784 142 770 124 761 _c +100 749 75 743 47 743 _c +64 772 _l +70 784 74 795 74 805 _c +74 811 72 818 69 824 _c +65 830 61 834 55 834 _c +48 834 42 830 36 822 _c +23 801 _l +25 823 28 840 32 850 _c +38 868 49 877 64 877 _c +75 877 84 871 90 860 _c +96 849 100 837 100 824 _c +}_e{100 818 99 812 98 806 _c +96 800 94 792 92 782 _c +114 788 136 799 157 814 _c +147 824 140 832 137 836 _c +131 844 128 852 128 861 _c +128 876 134 891 146 906 _c +161 924 177 933 193 933 _c +203 933 211 929 217 923 _c +223 917 225 904 224 885 _c +191 872 _m +191 880 189 887 185 893 _c +181 899 178 902 174 902 _c +168 902 164 900 162 898 _c +160 895 159 892 159 888 _c +159 882 162 876 168 870 _c +169 868 175 862 185 854 _c +189 859 191 865 191 872 _c +211 721 _m +211 696 207 676 199 661 _c +}_e{189 643 176 634 160 634 _c +154 634 148 635 143 637 _c +138 639 133 642 127 646 _c +120 635 114 627 108 621 _c +97 610 86 605 75 605 _c +61 605 51 609 44 618 _c +37 627 34 640 34 657 _c +34 665 35 673 37 681 _c +39 689 43 699 47 710 _c +58 714 _l +58 711 57 707 57 701 _c +56 695 56 690 56 687 _c +56 679 57 673 60 667 _c +62 661 67 659 73 659 _c +87 659 98 668 107 686 _c +111 694 116 710 122 735 _c +132 738 _l +134 722 136 712 138 709 _c +142 699 148 694 158 694 _c +170 694 179 702 187 718 _c +}_e{193 731 196 745 196 760 _c +206 763 _l +207 756 208 749 209 741 _c +210 733 211 726 211 721 _c +_cl}_e}_d +/Ufc5f{{211 0 34 605 211 905 _sc +211 863 _m +211 838 207 818 199 802 _c +189 784 176 776 160 776 _c +154 776 148 777 143 779 _c +137 781 132 785 127 789 _c +121 777 114 769 108 763 _c +97 753 86 748 75 748 _c +61 748 51 752 44 761 _c +37 770 34 783 34 799 _c +34 807 35 815 38 825 _c +40 831 43 840 47 852 _c +58 855 _l +58 853 57 849 57 843 _c +56 837 56 832 56 828 _c +56 820 57 814 60 809 _c +62 803 67 801 73 801 _c +87 801 98 810 107 828 _c +111 836 116 853 122 877 _c +}_e{132 880 _l +134 864 136 854 138 851 _c +142 840 148 835 158 835 _c +170 835 179 843 187 859 _c +193 872 196 886 196 901 _c +206 905 _l +207 897 208 889 209 882 _c +210 875 211 869 211 863 _c +204 767 _m +204 752 195 737 179 723 _c +149 711 102 692 37 666 _c +37 680 44 694 58 708 _c +85 718 134 738 204 767 _c +204 707 _m +204 691 195 676 179 662 _c +149 650 102 631 37 605 _c +37 619 44 632 58 646 _c +}_e{85 657 134 677 204 707 _c +_cl}_e}_d +/Ufc60{{211 0 34 605 211 840 _sc +204 840 _m +204 825 195 810 179 795 _c +149 783 102 765 37 739 _c +37 753 44 766 59 780 _c +85 790 134 810 204 840 _c +211 721 _m +211 696 207 676 199 661 _c +189 643 176 634 160 634 _c +154 634 148 635 143 637 _c +137 639 132 642 127 646 _c +120 635 114 627 108 621 _c +97 610 86 605 75 605 _c +61 605 51 609 44 618 _c +37 627 34 640 34 657 _c +34 665 35 674 38 684 _c +40 689 43 698 47 710 _c +}_e{58 714 _l +58 711 57 707 57 701 _c +56 695 56 690 56 687 _c +56 679 57 673 60 667 _c +62 661 67 659 73 659 _c +87 659 98 668 107 686 _c +111 694 116 710 122 735 _c +132 738 _l +134 722 136 712 138 709 _c +142 699 148 694 158 694 _c +170 694 179 702 187 718 _c +193 731 196 745 196 760 _c +206 763 _l +207 756 208 749 209 741 _c +210 733 211 726 211 721 _c +_cl}_e}_d +/Ufc61{{211 0 31 606 211 897 _sc +211 774 _m +199 774 187 775 175 778 _c +172 778 165 780 154 784 _c +135 768 122 757 115 753 _c +95 741 77 735 59 735 _c +54 735 49 735 45 737 _c +41 738 36 740 31 743 _c +55 754 73 762 83 767 _c +99 774 116 783 135 794 _c +127 801 122 807 119 813 _c +113 820 110 827 110 835 _c +110 849 115 862 127 876 _c +139 890 152 897 167 897 _c +176 897 184 893 192 887 _c +200 880 204 872 204 863 _c +204 856 202 849 199 842 _c +}_e{198 839 194 832 188 821 _c +198 816 205 812 207 809 _c +209 803 211 791 211 774 _c +172 848 _m +172 854 169 861 164 868 _c +159 874 153 878 146 878 _c +144 878 142 876 141 874 _c +140 872 140 869 140 867 _c +140 859 141 853 145 849 _c +148 844 155 839 167 833 _c +167 835 168 837 170 840 _c +171 843 172 846 172 848 _c +211 722 _m +211 697 207 677 199 662 _c +189 644 176 635 160 635 _c +154 635 148 636 143 638 _c +137 640 132 643 127 647 _c +120 636 114 628 108 622 _c +97 611 86 606 75 606 _c +61 606 51 610 44 619 _c +37 628 34 641 34 658 _c +}_e{34 666 35 675 38 685 _c +40 690 43 699 47 711 _c +58 715 _l +58 712 57 708 57 702 _c +56 696 56 691 56 688 _c +56 680 57 674 60 668 _c +62 662 67 660 73 660 _c +87 660 98 669 107 687 _c +111 695 116 711 122 736 _c +132 739 _l +134 723 136 713 138 709 _c +142 699 148 694 158 694 _c +170 694 179 702 187 719 _c +193 732 196 746 196 761 _c +206 764 _l +207 757 208 750 209 742 _c +210 734 211 727 211 722 _c +_cl}_e}_d +/Ufc62{{211 0 34 605 211 853 _sc +211 811 _m +211 786 207 766 199 751 _c +189 734 176 726 160 726 _c +154 726 148 726 143 728 _c +138 730 133 733 127 738 _c +120 726 114 718 108 712 _c +97 701 86 696 75 696 _c +61 696 51 700 44 710 _c +37 719 34 732 34 748 _c +34 756 35 764 38 774 _c +40 780 43 788 47 800 _c +58 805 _l +58 801 57 797 57 791 _c +56 785 56 781 56 777 _c +56 769 57 763 60 758 _c +62 752 67 750 73 750 _c +87 750 98 759 107 777 _c +111 785 116 802 122 826 _c +}_e{132 829 _l +134 813 136 803 138 799 _c +142 789 148 784 158 784 _c +170 784 179 792 187 809 _c +193 822 196 836 196 850 _c +206 853 _l +207 847 208 840 209 832 _c +210 824 211 817 211 811 _c +204 707 _m +204 691 195 676 179 662 _c +149 650 102 631 37 605 _c +37 619 44 632 59 646 _c +85 657 134 677 204 707 _c +_cl}_e}_d +/G034c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G034d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/U202a{0 0 -17 -133 210 603 _sc +18 568 _m +18 -133 _l +-17 -133 _l +-17 603 _l +210 603 _l +210 568 _l +18 568 _l +_cl}_d +/U202b{0 0 -209 -133 18 603 _sc +-209 568 _m +-209 603 _l +18 603 _l +18 -133 _l +-17 -133 _l +-17 568 _l +-209 568 _l +_cl}_d +/afii61574{0 0 -113 -133 114 690 _sc +114 480 _m +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +-113 690 _l +114 690 _l +114 655 _l +-79 655 _l +-79 515 _l +114 515 _l +114 480 _l +_cl}_d +/afii61575{0 0 -113 -133 114 690 _sc +-113 515 _m +80 515 _l +80 655 _l +-113 655 _l +-113 690 _l +114 690 _l +114 480 _l +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +-113 515 _l +_cl}_d +/afii61573{0 0 -113 -133 114 690 _sc +114 480 _m +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +-113 690 _l +114 690 _l +114 480 _l +_cl}_d +/U206e{0 0 -113 -133 114 690 _sc +18 -133 _m +-17 -133 _l +-17 496 _l +-113 585 _l +0 690 _l +114 585 _l +18 496 _l +18 -133 _l +65 585 _m +0 644 _l +-64 585 _l +0 526 _l +65 585 _l +_cl}_d +/U206f{0 0 -113 -133 114 690 _sc +-113 515 _m +-17 515 _l +-17 655 _l +-113 655 _l +-113 690 _l +18 690 _l +18 515 _l +114 515 _l +114 480 _l +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +-113 515 _l +_cl}_d +/U206a{0 0 -113 -133 114 690 _sc +-113 515 _m +-17 515 _l +-17 655 _l +-113 655 _l +-113 690 _l +114 690 _l +114 655 _l +18 655 _l +18 515 _l +114 515 _l +114 480 _l +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +-113 515 _l +_cl}_d +/U206b{0 0 -113 -133 114 690 _sc +-79 515 _m +80 515 _l +80 655 _l +-79 655 _l +-79 515 _l +-113 480 _m +-113 690 _l +114 690 _l +114 480 _l +18 480 _l +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +_cl}_d +/U206c{0 0 -113 -133 114 690 _sc +18 -133 _m +-17 -133 _l +-17 512 _l +-113 690 _l +114 690 _l +18 512 _l +18 -133 _l +_cl}_d +/U206d{0 0 -113 -133 114 690 _sc +18 480 _m +18 -133 _l +-17 -133 _l +-17 480 _l +-113 480 _l +0 690 _l +114 480 _l +18 480 _l +_cl}_d +/Uf00a{0 0 -17 -207 18 894 _sc +18 894 _m +18 421 _l +-17 421 _l +-17 894 _l +18 894 _l +18 265 _m +18 -207 _l +-17 -207 _l +-17 265 _l +18 265 _l +_cl}_d +/Uf00b{0 0 -113 -207 114 894 _sc +-113 -207 _m +-113 -172 _l +-17 -172 _l +-17 859 _l +-113 859 _l +-113 894 _l +114 894 _l +114 859 _l +18 859 _l +18 -172 _l +114 -172 _l +114 -207 _l +-113 -207 _l +_cl}_d +/Uf00c{0 0 -17 -207 109 894 _sc +109 804 _m +18 734 _l +18 -207 _l +-17 -207 _l +-17 894 _l +109 804 _l +_cl}_d +/Uf00d{0 0 -108 -207 18 894 _sc +18 894 _m +18 -207 _l +-17 -207 _l +-17 734 _l +-108 804 _l +18 894 _l +_cl}_d +/Uf00e{0 0 -17 -207 114 894 _sc +18 894 _m +18 -172 _l +114 -172 _l +114 -207 _l +-17 -207 _l +-17 894 _l +18 894 _l +_cl}_d +/currency{{556 0 36 115 516 594 _sc +104 469 _m +36 536 _l +92 594 _l +160 526 _l +194 549 233 561 276 561 _c +318 561 357 549 392 526 _c +459 594 _l +516 536 _l +448 469 _l +471 433 483 395 483 354 _c +483 313 471 275 448 239 _c +516 173 _l +459 115 _l +392 183 _l +357 159 318 147 276 147 _c +233 147 194 159 160 183 _c +92 115 _l +36 173 _l +104 239 _l +80 275 69 313 69 354 _c +}_e{69 395 80 433 104 469 _c +149 354 _m +149 319 161 289 186 265 _c +210 240 240 228 275 228 _c +310 228 340 240 365 265 _c +389 289 402 319 402 354 _c +402 389 389 419 365 444 _c +340 468 310 481 275 481 _c +240 481 210 468 186 444 _c +161 419 149 389 149 354 _c +_cl}_e}_d +/Ufffc{{1000 0 0 0 1000 719 _sc +1000 562 _m +951 562 _l +951 670 _l +842 670 _l +842 719 _l +1000 719 _l +1000 562 _l +719 670 _m +562 670 _l +562 719 _l +719 719 _l +719 670 _l +1000 281 _m +951 281 _l +951 438 _l +1000 438 _l +1000 281 _l +870 298 _m +870 220 835 181 767 181 _c +739 181 716 188 700 203 _c +735 241 _l +743 233 754 229 767 229 _c +797 229 813 251 813 296 _c +813 532 _l +870 532 _l +}_e{870 298 _l +438 670 _m +281 670 _l +281 719 _l +438 719 _l +438 670 _l +1000 0 _m +842 0 _l +842 49 _l +951 49 _l +951 158 _l +1000 158 _l +1000 0 _l +695 289 _m +695 221 650 187 561 187 _c +444 187 _l +444 532 _l +559 532 _l +639 532 680 501 680 441 _c +680 411 665 388 637 371 _c +675 355 695 328 695 289 _c +624 436 _m +624 468 597 484 544 484 _c +500 484 _l +500 390 _l +}_e{550 390 _l +599 390 624 405 624 436 _c +638 289 _m +638 324 610 342 555 342 _c +500 342 _l +500 234 _l +561 234 _l +612 234 638 252 638 289 _c +158 670 _m +49 670 _l +49 562 _l +0 562 _l +0 719 _l +158 719 _l +158 670 _l +719 0 _m +562 0 _l +562 49 _l +719 49 _l +719 0 _l +417 359 _m +417 302 403 258 377 227 _c +350 196 312 181 262 181 _c +212 181 174 196 148 227 _c +122 258 109 302 109 359 _c +109 415 122 459 148 491 _c +174 522 212 538 262 538 _c +}_e{312 538 350 522 377 491 _c +403 459 417 415 417 359 _c +360 359 _m +360 446 327 490 262 490 _c +198 490 166 446 166 359 _c +166 272 198 229 262 229 _c +327 229 360 272 360 359 _c +49 281 _m +0 281 _l +0 438 _l +49 438 _l +49 281 _l +438 0 _m +281 0 _l +281 49 _l +438 49 _l +438 0 _l +158 0 _m +0 0 _l +0 158 _l +49 158 _l +49 49 _l +158 49 _l +158 0 _l +_cl}_e}_d +/G0360{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0361{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0362{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0363{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0364{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0365{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0366{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0367{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0368{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0369{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G036f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0370{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0371{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0372{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0373{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0374{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0375{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0376{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0377{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0378{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0379{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G037a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G037b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/Ufd3e{319 0 62 -208 273 785 _sc +273 -187 _m +252 -208 _l +218 -167 192 -134 176 -109 _c +142 -57 116 -4 98 52 _c +74 126 62 205 62 291 _c +62 372 74 449 98 522 _c +116 579 142 634 176 686 _c +193 712 218 745 251 785 _c +273 765 _l +238 687 211 610 193 534 _c +173 453 164 373 164 294 _c +164 214 169 143 181 81 _c +189 29 203 -20 222 -68 _c +230 -92 247 -132 273 -187 _c +_cl}_d +/Ufd3f{319 0 45 -208 257 785 _sc +gsave 319 0 translate +false CharStrings /Ufd3e get exec +grestore }_d +/G037e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/Ufdf2{{616 0 10 143 603 766 _sc +374 665 _m +363 661 _l +355 680 342 698 326 716 _c +322 720 311 730 293 745 _c +296 759 304 766 316 766 _c +328 766 337 760 344 748 _c +354 729 360 718 362 714 _c +367 700 371 684 374 665 _c +461 642 _m +461 618 456 598 448 581 _c +440 563 429 555 416 555 _c +408 555 401 555 395 557 _c +389 559 382 562 375 566 _c +371 556 365 548 357 540 _c +346 530 335 525 325 525 _c +311 525 301 529 294 538 _c +287 546 284 558 284 573 _c +}_e{284 579 284 585 286 593 _c +287 600 288 606 289 610 _c +304 616 _l +304 600 306 589 311 583 _c +315 577 323 575 333 575 _c +340 575 347 582 355 596 _c +363 610 368 623 370 636 _c +381 639 _l +384 626 387 618 389 616 _c +393 610 402 607 415 607 _c +423 607 431 613 437 627 _c +441 635 444 646 447 659 _c +459 662 _l +460 655 461 648 461 642 _c +603 231 _m +603 219 602 208 601 198 _c +598 182 593 167 587 155 _c +581 143 _l +541 143 509 148 485 160 _c +}_e{465 169 448 183 433 203 _c +420 180 404 164 386 155 _c +370 147 352 143 332 143 _c +310 143 290 149 270 161 _c +250 173 236 189 229 209 _c +216 190 200 174 182 162 _c +164 149 146 143 129 143 _c +93 143 64 145 42 151 _c +20 156 10 163 10 172 _c +10 199 28 230 66 265 _c +103 299 148 329 202 354 _c +200 358 199 365 197 374 _c +195 382 194 389 194 394 _c +194 405 198 417 206 431 _c +212 442 220 454 230 466 _c +234 439 239 412 244 386 _c +250 346 257 308 265 274 _c +269 256 276 244 287 236 _c +297 228 312 224 331 224 _c +}_e{346 224 358 226 366 230 _c +374 234 384 246 397 266 _c +369 399 _l +366 409 364 418 364 424 _c +361 436 360 446 360 452 _c +360 463 364 475 372 489 _c +378 500 386 512 396 524 _c +399 507 402 489 406 470 _c +410 450 415 422 423 385 _c +441 301 _l +446 277 454 259 464 247 _c +476 232 494 225 516 225 _c +524 225 531 228 537 236 _c +543 243 547 253 549 266 _c +521 399 _l +518 412 516 420 516 424 _c +514 437 513 446 513 452 _c +513 462 516 475 524 489 _c +}_e{530 501 538 512 548 524 _c +549 516 554 490 564 446 _c +576 392 584 352 590 325 _c +598 278 603 247 603 231 _c +219 244 _m +210 298 _l +181 288 159 278 145 268 _c +127 256 113 241 102 223 _c +109 220 117 218 126 216 _c +135 214 148 214 164 214 _c +173 214 182 216 192 222 _c +202 227 211 234 219 244 _c +_cl}_e}_d +/Ufe80{413 0 59 72 363 400 _sc +false CharStrings /afii57409 get exec +}_d +/afii57410{{207 0 7 130 206 827 _sc +206 808 _m +196 797 187 789 178 784 _c +164 776 150 772 135 772 _c +118 772 102 774 88 779 _c +56 789 39 795 37 795 _c +33 795 29 794 25 793 _c +21 792 17 791 12 789 _c +7 795 _l +15 807 20 814 24 817 _c +32 823 42 827 54 827 _c +57 827 75 821 107 811 _c +123 805 137 803 148 803 _c +165 803 182 806 199 814 _c +206 808 _l +165 268 _m +165 242 160 216 151 192 _c +}_e{146 178 135 158 119 130 _c +110 135 _l +111 144 112 155 113 167 _c +113 179 114 188 114 192 _c +114 226 111 273 106 334 _c +100 394 94 458 87 524 _c +82 564 77 605 72 647 _c +78 661 86 676 94 693 _c +102 709 110 725 118 740 _c +122 703 129 652 137 588 _c +145 523 151 465 156 414 _c +162 349 165 300 165 268 _c +_cl}_e}_d +/Ufe82{{229 0 17 143 264 827 _sc +264 143 _m +195 143 _l +173 143 155 152 142 170 _c +130 185 121 208 115 239 _c +109 270 104 308 102 354 _c +100 390 97 428 95 467 _c +93 505 90 535 87 555 _c +83 575 79 591 73 604 _c +66 620 56 634 43 646 _c +104 740 _l +116 701 125 654 130 600 _c +133 566 136 486 140 360 _c +146 302 154 265 166 249 _c +174 235 184 228 195 228 _c +264 228 _l +264 143 _l +216 808 _m +206 797 197 789 188 784 _c +174 776 160 772 145 772 _c +}_e{128 772 112 774 98 779 _c +66 789 49 795 47 795 _c +43 795 39 794 35 793 _c +31 792 26 791 22 789 _c +17 795 _l +25 807 30 814 34 817 _c +41 823 51 827 64 827 _c +66 827 84 821 117 811 _c +133 805 147 803 158 803 _c +175 803 192 806 209 814 _c +216 808 _l +_cl}_e}_d +/afii57411{{207 0 42 130 179 880 _sc +179 800 _m +179 792 174 784 164 778 _c +156 773 146 768 133 764 _c +42 733 _l +42 747 58 760 91 772 _c +81 777 73 782 68 788 _c +61 794 58 800 58 807 _c +58 817 66 831 83 850 _c +102 870 119 880 134 880 _c +140 880 146 877 151 873 _c +155 869 158 863 158 856 _c +158 851 157 846 155 842 _c +153 837 150 832 147 826 _c +137 835 126 840 114 840 _c +107 840 100 838 93 835 _c +86 832 83 829 83 825 _c +83 820 90 813 105 805 _c +120 796 133 792 144 792 _c +}_e{151 792 156 792 159 793 _c +162 793 169 796 179 800 _c +165 268 _m +165 242 160 216 151 192 _c +146 178 135 158 119 130 _c +110 135 _l +111 144 112 155 113 167 _c +113 179 114 188 114 192 _c +114 226 111 273 106 334 _c +100 394 94 458 87 524 _c +82 564 77 605 72 647 _c +78 661 86 676 94 693 _c +102 709 110 725 118 740 _c +122 703 129 652 137 588 _c +145 523 151 465 156 414 _c +162 349 165 300 165 268 _c +_cl}_e}_d +/Ufe84{{229 0 42 143 264 880 _sc +179 800 _m +179 792 174 784 164 778 _c +156 773 146 768 133 764 _c +42 733 _l +42 747 58 760 91 772 _c +81 777 73 782 68 788 _c +61 794 58 800 58 807 _c +58 817 66 831 83 850 _c +102 870 119 880 134 880 _c +140 880 146 877 151 873 _c +155 869 158 863 158 856 _c +158 851 157 846 155 842 _c +153 837 150 832 147 826 _c +137 835 126 840 114 840 _c +107 840 100 838 93 835 _c +86 832 83 829 83 825 _c +83 820 90 813 105 805 _c +120 796 133 792 144 792 _c +}_e{151 792 156 792 159 793 _c +162 793 169 796 179 800 _c +264 143 _m +195 143 _l +173 143 155 152 142 170 _c +130 185 121 208 115 239 _c +109 270 104 308 102 354 _c +100 390 97 428 95 467 _c +93 505 90 535 87 555 _c +83 575 79 591 73 604 _c +66 620 56 634 43 646 _c +104 740 _l +116 701 125 654 130 600 _c +133 566 136 486 140 360 _c +146 302 154 265 166 249 _c +174 235 184 228 195 228 _c +264 228 _l +264 143 _l +_cl}_e}_d +/afii57412{{432 0 59 -76 466 555 _sc +466 172 _m +466 118 446 65 407 12 _c +362 -46 311 -76 253 -76 _c +231 -76 209 -73 187 -68 _c +170 -64 148 -58 122 -50 _c +100 -42 79 -35 59 -28 _c +67 -11 _l +85 -15 104 -19 124 -24 _c +144 -28 162 -31 178 -31 _c +218 -31 255 -21 291 -1 _c +319 14 346 37 374 67 _c +388 82 408 107 434 142 _c +390 142 357 149 335 163 _c +310 179 298 205 298 242 _c +298 275 305 306 321 335 _c +}_e{339 368 363 385 391 385 _c +419 385 439 368 452 335 _c +461 309 466 274 466 228 _c +466 172 _l +436 226 _m +428 256 420 278 410 291 _c +400 301 389 306 377 306 _c +368 306 360 303 354 297 _c +347 291 344 283 344 274 _c +344 258 351 246 365 238 _c +379 230 403 226 436 226 _c +349 475 _m +349 467 344 459 334 453 _c +327 449 317 444 303 439 _c +212 408 _l +212 423 228 436 261 448 _c +251 453 243 458 238 463 _c +231 469 228 475 228 482 _c +}_e{228 492 236 507 254 525 _c +273 545 290 555 305 555 _c +311 555 316 552 321 548 _c +326 544 329 538 329 531 _c +329 526 328 521 326 517 _c +324 512 321 507 317 501 _c +307 510 296 515 285 515 _c +277 515 270 513 263 510 _c +256 507 253 504 253 500 _c +253 495 260 488 275 480 _c +290 472 303 468 314 468 _c +321 468 326 468 329 468 _c +332 468 339 471 349 475 _c +_cl}_e}_d +/Ufe86{432 0 59 -76 466 555 _sc +false CharStrings /afii57412 get exec +}_d +/afii57413{{207 0 22 -93 165 740 _sc +159 -26 _m +159 -34 154 -41 144 -48 _c +136 -52 126 -56 113 -62 _c +22 -93 _l +22 -77 38 -64 71 -53 _c +61 -47 53 -42 48 -38 _c +41 -32 38 -25 38 -19 _c +38 -8 46 5 63 23 _c +82 43 99 53 114 53 _c +120 53 126 50 131 46 _c +135 42 138 36 138 29 _c +138 24 137 19 135 15 _c +133 10 130 5 127 0 _c +117 8 106 13 94 13 _c +86 13 79 11 73 8 _c +66 5 63 2 63 0 _c +63 -5 70 -12 85 -20 _c +100 -28 113 -33 124 -33 _c +}_e{131 -33 136 -32 139 -32 _c +142 -32 149 -30 159 -26 _c +165 268 _m +165 242 160 216 151 192 _c +146 178 135 158 119 130 _c +110 135 _l +111 144 112 155 113 167 _c +113 179 114 188 114 192 _c +114 226 111 273 106 334 _c +100 394 94 458 87 524 _c +82 564 77 605 72 647 _c +78 661 86 676 94 693 _c +102 709 110 725 118 740 _c +122 703 129 652 137 588 _c +145 523 151 465 156 414 _c +162 349 165 300 165 268 _c +_cl}_e}_d +/Ufe88{{229 0 43 -93 264 740 _sc +264 143 _m +195 143 _l +173 143 155 152 142 170 _c +130 185 121 208 115 239 _c +109 270 104 308 102 354 _c +100 390 97 428 95 467 _c +93 505 90 535 87 555 _c +83 575 79 591 73 604 _c +66 620 56 634 43 646 _c +104 740 _l +116 701 125 654 130 600 _c +133 566 136 486 140 360 _c +146 302 154 265 166 249 _c +174 235 184 228 195 228 _c +264 228 _l +264 143 _l +183 -26 _m +183 -34 178 -41 168 -48 _c +161 -52 151 -56 137 -62 _c +46 -93 _l +}_e{46 -77 62 -64 95 -53 _c +85 -47 77 -42 72 -38 _c +65 -32 62 -25 62 -19 _c +62 -8 70 5 88 23 _c +107 43 124 53 139 53 _c +145 53 150 50 155 46 _c +160 42 163 36 163 29 _c +163 24 162 19 160 15 _c +158 10 155 5 151 0 _c +141 8 130 13 119 13 _c +111 13 104 11 97 8 _c +90 5 87 2 87 0 _c +87 -5 94 -12 109 -20 _c +124 -28 137 -33 148 -33 _c +155 -33 160 -32 163 -32 _c +166 -32 173 -30 183 -26 _c +_cl}_e}_d +/afii57414{{638 0 24 -42 606 555 _sc +606 391 _m +606 380 605 369 603 358 _c +601 347 599 339 599 335 _c +587 349 574 361 558 370 _c +542 378 526 383 510 383 _c +482 383 452 366 421 333 _c +392 303 378 279 378 261 _c +378 255 381 250 388 247 _c +395 244 407 243 425 243 _c +464 243 _l +487 243 504 242 516 242 _c +527 241 540 239 556 237 _c +572 234 580 222 580 202 _c +580 120 544 57 473 15 _c +407 -23 319 -42 207 -42 _c +149 -42 104 -31 74 -9 _c +40 15 24 51 24 101 _c +24 134 29 169 41 207 _c +49 235 61 265 76 296 _c +}_e{77 298 87 317 107 354 _c +127 346 _l +107 309 91 275 80 243 _c +69 211 64 183 64 159 _c +64 119 77 90 105 70 _c +132 50 171 40 223 40 _c +262 40 307 47 359 63 _c +403 76 443 92 479 111 _c +514 129 532 143 532 152 _c +532 158 530 162 526 164 _c +522 166 515 167 506 167 _c +392 167 _l +378 167 365 172 355 182 _c +344 192 339 206 339 222 _c +339 243 348 273 366 311 _c +385 351 409 385 437 413 _c +469 445 503 462 537 462 _c +558 462 575 455 587 442 _c +599 429 606 412 606 391 _c +177 475 _m +177 467 172 459 162 453 _c +}_e{154 449 144 444 131 439 _c +40 408 _l +40 423 56 436 89 448 _c +79 453 71 458 66 463 _c +59 469 56 475 56 482 _c +56 492 64 507 82 525 _c +100 545 117 555 132 555 _c +138 555 144 552 149 548 _c +153 544 156 538 156 531 _c +156 526 155 521 153 517 _c +151 512 148 507 145 501 _c +135 510 124 515 112 515 _c +105 515 98 513 91 510 _c +84 507 81 504 81 500 _c +81 495 88 488 103 480 _c +118 472 131 468 142 468 _c +149 468 154 468 157 468 _c +160 468 167 471 177 475 _c +_cl}_e}_d +/Ufe8a{{588 0 52 -109 623 491 _sc +623 143 _m +537 143 _l +487 143 449 141 424 139 _c +398 136 386 131 386 124 _c +386 112 401 107 432 107 _c +445 107 455 106 463 106 _c +471 105 488 103 515 101 _c +530 99 541 96 547 94 _c +556 88 561 80 561 68 _c +561 8 541 -35 501 -63 _c +457 -93 385 -109 285 -109 _c +215 -109 159 -97 118 -73 _c +74 -47 52 -12 52 34 _c +52 72 62 112 83 154 _c +90 169 110 202 142 252 _c +162 243 _l +}_e{149 221 137 200 125 180 _c +106 144 97 114 97 92 _c +97 52 118 21 160 0 _c +199 -18 253 -28 323 -28 _c +369 -28 410 -24 446 -18 _c +490 -8 512 3 512 18 _c +512 23 509 27 504 30 _c +499 32 491 34 480 34 _c +471 35 457 36 439 37 _c +420 38 408 39 402 39 _c +381 39 366 41 358 47 _c +349 52 345 60 345 71 _c +345 111 356 144 380 170 _c +400 191 426 207 459 217 _c +483 224 509 228 537 228 _c +623 228 _l +623 143 _l +206 411 _m +}_e{206 403 201 395 191 389 _c +184 385 174 380 160 375 _c +69 344 _l +69 359 85 372 118 384 _c +108 389 100 394 95 399 _c +88 405 85 411 85 418 _c +85 428 93 443 111 461 _c +130 481 147 491 162 491 _c +168 491 173 488 178 484 _c +183 480 186 474 186 467 _c +186 462 185 457 183 453 _c +181 448 178 443 174 438 _c +164 446 153 451 142 451 _c +134 451 127 449 120 446 _c +113 443 110 440 110 437 _c +110 431 117 424 132 416 _c +147 408 160 404 171 404 _c +178 404 183 404 186 404 _c +189 404 196 407 206 411 _c +_cl}_e}_d +/Ufe8b{{244 0 0 143 278 668 _sc +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +226 588 _m +226 580 220 572 210 566 _c +203 562 193 557 180 553 _c +89 521 _l +89 536 105 549 138 561 _c +128 566 120 571 115 576 _c +107 582 104 588 104 596 _c +}_e{104 606 112 620 130 638 _c +149 658 166 668 181 668 _c +187 668 193 665 198 661 _c +202 657 205 651 205 645 _c +205 640 204 635 202 631 _c +200 626 197 621 194 615 _c +184 623 173 628 161 628 _c +153 628 146 626 139 624 _c +132 621 129 618 129 614 _c +129 608 136 601 152 593 _c +167 585 180 581 191 581 _c +198 581 203 581 206 582 _c +209 582 216 584 226 588 _c +_cl}_e}_d +/Ufe8c{244 0 0 143 278 668 _sc +false CharStrings /Ufe8b get exec +}_d +/afii57415{207 0 72 130 165 740 _sc +165 268 _m +165 242 160 216 151 192 _c +146 178 135 158 119 130 _c +110 135 _l +111 144 112 155 113 167 _c +113 179 114 188 114 192 _c +114 226 111 273 106 334 _c +100 394 94 458 87 524 _c +82 564 77 605 72 647 _c +78 661 86 676 94 693 _c +102 709 110 725 118 740 _c +122 703 129 652 137 588 _c +145 523 151 465 156 414 _c +162 349 165 300 165 268 _c +_cl}_d +/Ufe8e{229 0 43 143 264 740 _sc +264 143 _m +195 143 _l +173 143 155 152 142 170 _c +130 185 121 208 115 239 _c +109 270 104 308 102 354 _c +100 390 97 428 95 467 _c +93 505 90 535 87 555 _c +83 575 79 591 73 604 _c +66 620 56 634 43 646 _c +104 740 _l +116 701 125 654 130 600 _c +133 566 136 486 140 360 _c +146 302 154 265 166 249 _c +174 235 184 228 195 228 _c +264 228 _l +264 143 _l +_cl}_d +/afii57416{{713 0 63 -45 748 469 _sc +748 143 _m +282 143 _l +219 143 169 154 132 176 _c +86 203 63 246 63 304 _c +63 334 69 365 83 397 _c +87 408 99 430 118 462 _c +133 453 _l +125 437 118 422 112 408 _c +102 384 98 364 98 346 _c +98 307 118 277 158 256 _c +194 237 239 228 295 228 _c +709 228 _l +709 241 _l +709 277 704 307 696 330 _c +687 353 672 373 651 389 _c +688 469 _l +702 451 711 439 714 435 _c +}_e{736 398 748 345 748 276 _c +748 143 _l +468 24 _m +430 -45 _l +351 -4 _l +387 66 _l +468 24 _l +_cl}_e}_d +/Ufe90{713 0 63 -45 748 469 _sc +false CharStrings /afii57416 get exec +}_d +/Ufe91{244 0 0 -45 278 456 _sc +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +229 24 _m +190 -45 _l +111 -4 _l +147 66 _l +229 24 _l +_cl}_d +/Ufe92{244 0 0 -45 278 456 _sc +false CharStrings /Ufe91 get exec +}_d +/afii57417{{282 0 0 130 271 641 _sc +229 599 _m +190 529 _l +111 571 _l +148 641 _l +229 599 _l +116 555 _m +79 484 _l +0 525 _l +36 596 _l +116 555 _l +271 287 _m +271 241 263 206 249 184 _c +225 148 183 130 122 130 _c +98 130 78 134 63 144 _c +45 154 36 170 36 190 _c +36 212 41 239 53 269 _c +63 294 74 320 85 346 _c +78 348 _l +107 430 _l +166 399 201 380 213 372 _c +}_e{251 344 271 316 271 287 _c +229 249 _m +229 261 211 278 175 298 _c +159 307 143 316 126 324 _c +111 308 102 298 100 294 _c +90 281 86 269 86 258 _c +86 241 90 228 100 219 _c +109 210 121 206 137 206 _c +155 206 175 211 197 221 _c +218 231 229 240 229 249 _c +_cl}_e}_d +/Ufe94{{375 0 30 143 409 768 _sc +286 727 _m +248 656 _l +168 698 _l +205 768 _l +286 727 _l +173 683 _m +136 612 _l +57 653 _l +93 724 _l +173 683 _l +409 143 _m +339 143 _l +315 143 295 163 277 203 _c +263 233 253 271 245 319 _c +235 301 222 286 208 276 _c +193 266 177 261 161 261 _c +123 261 91 263 67 268 _c +42 273 30 280 30 288 _c +30 316 48 347 84 381 _c +120 415 166 444 221 470 _c +220 472 219 479 217 490 _c +215 501 214 508 214 511 _c +214 522 217 534 225 548 _c +231 559 239 571 250 583 _c +}_e{252 562 255 542 259 524 _c +263 505 267 485 271 465 _c +286 381 _l +294 335 301 301 308 279 _c +318 245 328 228 339 228 _c +409 228 _l +409 143 _l +239 361 _m +229 415 _l +201 404 178 393 162 383 _c +146 372 132 358 122 340 _c +128 336 136 334 145 333 _c +154 331 167 331 183 331 _c +202 331 221 341 239 361 _c +_cl}_e}_d +/afii57418{{713 0 63 143 748 628 _sc +518 586 _m +480 516 _l +401 558 _l +438 628 _l +518 586 _l +406 542 _m +369 472 _l +290 513 _l +326 583 _l +406 542 _l +748 143 _m +282 143 _l +219 143 169 154 132 176 _c +86 203 63 246 63 304 _c +63 334 69 365 83 397 _c +87 408 99 430 118 462 _c +133 453 _l +125 437 118 422 112 408 _c +102 384 98 364 98 346 _c +98 307 118 277 158 256 _c +}_e{194 237 239 228 295 228 _c +709 228 _l +709 241 _l +709 277 704 307 696 330 _c +687 353 672 373 651 389 _c +688 469 _l +702 451 711 439 714 435 _c +736 398 748 345 748 276 _c +748 143 _l +_cl}_e}_d +/Ufe96{713 0 63 143 748 628 _sc +false CharStrings /afii57418 get exec +}_d +/Ufe97{244 0 0 143 278 667 _sc +247 625 _m +208 555 _l +129 597 _l +166 667 _l +247 625 _l +134 582 _m +97 511 _l +18 552 _l +54 623 _l +134 582 _l +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +_cl}_d +/Ufe98{244 0 0 143 278 667 _sc +false CharStrings /Ufe97 get exec +}_d +/afii57419{{713 0 63 143 748 715 _sc +422 673 _m +384 602 _l +306 644 _l +342 715 _l +422 673 _l +518 586 _m +480 516 _l +401 558 _l +438 628 _l +518 586 _l +406 542 _m +369 472 _l +290 513 _l +326 583 _l +406 542 _l +748 143 _m +282 143 _l +219 143 169 154 132 176 _c +86 203 63 246 63 304 _c +63 334 69 365 83 397 _c +87 408 99 430 118 462 _c +133 453 _l +125 437 118 422 112 408 _c +}_e{102 384 98 364 98 346 _c +98 307 118 277 158 256 _c +194 237 239 228 295 228 _c +709 228 _l +709 241 _l +709 277 704 307 696 330 _c +687 353 672 373 651 389 _c +688 469 _l +702 451 711 439 714 435 _c +736 398 748 345 748 276 _c +748 143 _l +_cl}_e}_d +/Ufe9a{713 0 63 143 748 715 _sc +false CharStrings /afii57419 get exec +}_d +/Ufe9b{244 0 0 143 278 754 _sc +150 712 _m +113 641 _l +35 683 _l +71 754 _l +150 712 _l +247 625 _m +208 555 _l +129 597 _l +166 667 _l +247 625 _l +134 582 _m +97 511 _l +18 552 _l +54 623 _l +134 582 _l +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +_cl}_d +/Ufe9c{244 0 0 143 278 754 _sc +false CharStrings /Ufe9b get exec +}_d +/afii57420{{563 0 26 -211 516 432 _sc +378 128 _m +336 55 _l +260 99 _l +297 169 _l +378 128 _l +236 340 _m +230 340 220 340 208 341 _c +195 342 186 343 180 343 _c +159 343 136 341 110 337 _c +92 334 69 330 41 324 _c +53 360 65 384 77 396 _c +101 420 142 432 200 432 _c +221 432 265 427 332 418 _c +362 414 389 412 412 412 _c +421 412 435 413 453 415 _c +471 417 485 419 495 419 _c +477 336 _l +408 324 349 311 301 296 _c +229 274 174 247 134 215 _c +}_e{84 175 59 129 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +42 -76 26 -25 26 39 _c +26 93 39 143 65 187 _c +84 219 112 251 150 281 _c +161 289 190 309 236 340 _c +_cl}_e}_d +/Ufe9e{{526 0 26 -211 560 426 _sc +560 143 _m +459 143 _l +419 143 391 150 375 165 _c +358 179 350 204 350 238 _c +350 250 351 266 355 285 _c +356 292 358 301 360 313 _c +304 296 262 282 234 270 _c +182 248 141 223 113 195 _c +77 159 59 119 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +}_e{42 -76 26 -25 26 39 _c +26 95 40 143 68 185 _c +89 217 120 247 162 274 _c +174 282 207 301 263 331 _c +249 332 235 333 221 334 _c +207 335 194 336 182 336 _c +149 336 122 334 102 332 _c +95 331 74 327 38 319 _c +49 351 61 373 73 385 _c +99 412 142 426 200 426 _c +231 426 265 423 302 417 _c +338 411 369 408 395 408 _c +411 408 427 408 443 410 _c +459 411 475 413 493 416 _c +474 333 _l +460 331 445 328 428 326 _c +417 324 402 321 384 317 _c +383 290 _l +}_e{383 263 391 245 407 236 _c +417 230 434 228 459 228 _c +560 228 _l +560 143 _l +343 90 _m +306 19 _l +227 61 _l +265 132 _l +343 90 _l +_cl}_e}_d +/Ufe9f{{530 0 0 -32 559 427 _sc +559 143 _m +0 143 _l +0 228 _l +393 228 _l +359 254 331 274 309 288 _c +281 306 255 319 231 327 _c +205 336 178 341 151 341 _c +134 341 117 339 101 337 _c +110 361 122 381 138 396 _c +160 416 188 427 222 427 _c +255 427 294 410 340 378 _c +362 362 399 331 450 286 _c +489 250 516 230 530 228 _c +559 228 _l +559 143 _l +311 37 _m +274 -32 _l +194 8 _l +}_e{232 79 _l +311 37 _l +_cl}_e}_d +/Ufea0{530 0 0 -32 559 427 _sc +false CharStrings /Ufe9f get exec +}_d +/afii57421{{563 0 26 -211 516 432 _sc +236 340 _m +230 340 220 340 208 341 _c +195 342 186 343 180 343 _c +159 343 136 341 110 337 _c +92 334 69 330 41 324 _c +53 360 65 384 77 396 _c +101 420 142 432 200 432 _c +221 432 265 427 332 418 _c +362 414 389 412 412 412 _c +421 412 435 413 453 415 _c +471 417 485 419 495 419 _c +477 336 _l +408 324 349 311 301 296 _c +229 274 174 247 134 215 _c +84 175 59 129 59 75 _c +59 5 95 -46 168 -82 _c +}_e{232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +42 -76 26 -25 26 39 _c +26 93 39 143 65 187 _c +84 219 112 251 150 281 _c +161 289 190 309 236 340 _c +_cl}_e}_d +/Ufea2{{526 0 26 -211 560 426 _sc +560 143 _m +459 143 _l +419 143 391 150 375 165 _c +358 179 350 204 350 238 _c +350 250 351 266 355 285 _c +356 292 358 301 360 313 _c +304 296 262 282 234 270 _c +182 248 141 223 113 195 _c +77 159 59 119 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +}_e{42 -76 26 -25 26 39 _c +26 95 40 143 68 185 _c +89 217 120 247 162 274 _c +174 282 207 301 263 331 _c +249 332 235 333 221 334 _c +207 335 194 336 182 336 _c +149 336 122 334 102 332 _c +95 331 74 327 38 319 _c +49 351 61 373 73 385 _c +99 412 142 426 200 426 _c +231 426 265 423 302 417 _c +338 411 369 408 395 408 _c +411 408 427 408 443 410 _c +459 411 475 413 493 416 _c +474 333 _l +460 331 445 328 428 326 _c +417 324 402 321 384 317 _c +383 290 _l +}_e{383 263 391 245 407 236 _c +417 230 434 228 459 228 _c +560 228 _l +560 143 _l +_cl}_e}_d +/Ufea3{530 0 0 143 559 427 _sc +559 143 _m +0 143 _l +0 228 _l +393 228 _l +359 254 331 274 309 288 _c +281 306 255 319 231 327 _c +205 336 178 341 151 341 _c +134 341 117 339 101 337 _c +110 361 122 381 138 396 _c +160 416 188 427 222 427 _c +255 427 294 410 340 378 _c +362 362 399 331 450 286 _c +489 250 516 230 530 228 _c +559 228 _l +559 143 _l +_cl}_d +/Ufea4{530 0 0 143 559 427 _sc +false CharStrings /Ufea3 get exec +}_d +/afii57422{{563 0 26 -211 516 639 _sc +330 598 _m +292 527 _l +214 568 _l +250 639 _l +330 598 _l +236 340 _m +230 340 220 340 208 341 _c +195 342 186 343 180 343 _c +159 343 136 341 110 337 _c +92 334 69 330 41 324 _c +53 360 65 384 77 396 _c +101 420 142 432 200 432 _c +221 432 265 427 332 418 _c +362 414 389 412 412 412 _c +421 412 435 413 453 415 _c +471 417 485 419 495 419 _c +477 336 _l +408 324 349 311 301 296 _c +229 274 174 247 134 215 _c +}_e{84 175 59 129 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +42 -76 26 -25 26 39 _c +26 93 39 143 65 187 _c +84 219 112 251 150 281 _c +161 289 190 309 236 340 _c +_cl}_e}_d +/Ufea6{{526 0 26 -211 560 639 _sc +332 598 _m +294 527 _l +216 568 _l +252 639 _l +332 598 _l +560 143 _m +459 143 _l +419 143 391 150 375 165 _c +358 179 350 204 350 238 _c +350 250 351 266 355 285 _c +356 292 358 301 360 313 _c +304 296 262 282 234 270 _c +182 248 141 223 113 195 _c +77 159 59 119 59 75 _c +59 5 95 -46 168 -82 _c +232 -112 317 -128 423 -128 _c +513 -128 _l +516 -133 _l +405 -211 _l +377 -211 _l +}_e{306 -211 248 -204 202 -191 _c +146 -175 103 -150 75 -116 _c +42 -76 26 -25 26 39 _c +26 95 40 143 68 185 _c +89 217 120 247 162 274 _c +174 282 207 301 263 331 _c +249 332 235 333 221 334 _c +207 335 194 336 182 336 _c +149 336 122 334 102 332 _c +95 331 74 327 38 319 _c +49 351 61 373 73 385 _c +99 412 142 426 200 426 _c +231 426 265 423 302 417 _c +338 411 369 408 395 408 _c +411 408 427 408 443 410 _c +459 411 475 413 493 416 _c +474 333 _l +}_e{460 331 445 328 428 326 _c +417 324 402 321 384 317 _c +383 290 _l +383 263 391 245 407 236 _c +417 230 434 228 459 228 _c +560 228 _l +560 143 _l +_cl}_e}_d +/Ufea7{{530 0 0 143 559 639 _sc +325 598 _m +288 527 _l +209 568 _l +245 639 _l +325 598 _l +559 143 _m +0 143 _l +0 228 _l +393 228 _l +359 254 331 274 309 288 _c +281 306 255 319 231 327 _c +205 336 178 341 151 341 _c +134 341 117 339 101 337 _c +110 361 122 381 138 396 _c +160 416 188 427 222 427 _c +255 427 294 410 340 378 _c +362 362 399 331 450 286 _c +489 250 516 230 530 228 _c +}_e{559 228 _l +559 143 _l +_cl}_e}_d +/Ufea8{530 0 0 143 559 639 _sc +false CharStrings /Ufea7 get exec +}_d +/afii57423{337 0 81 143 372 552 _sc +372 143 _m +153 143 _l +134 143 117 148 103 159 _c +88 169 81 182 81 197 _c +81 209 81 221 82 231 _c +83 241 86 252 90 264 _c +101 264 _l +104 250 111 241 121 235 _c +128 230 139 228 153 228 _c +342 228 _l +342 286 333 333 317 369 _c +297 413 263 442 216 457 _c +224 552 _l +280 524 319 479 343 419 _c +362 370 372 306 372 228 _c +372 143 _l +_cl}_d +/Ufeaa{337 0 81 143 372 552 _sc +false CharStrings /afii57423 get exec +}_d +/afii57424{{337 0 81 143 372 759 _sc +242 717 _m +204 646 _l +125 688 _l +161 759 _l +242 717 _l +372 143 _m +153 143 _l +134 143 117 148 103 159 _c +88 169 81 182 81 197 _c +81 209 81 221 82 231 _c +83 241 86 252 90 264 _c +101 264 _l +104 250 111 241 121 235 _c +128 230 139 228 153 228 _c +342 228 _l +342 286 333 333 317 369 _c +297 413 263 442 216 457 _c +224 552 _l +280 524 319 479 343 419 _c +362 370 372 306 372 228 _c +372 143 _l +_cl}_e}_d +/Ufeac{337 0 81 143 372 759 _sc +false CharStrings /afii57424 get exec +}_d +/afii57425{{489 0 70 -90 523 430 _sc +523 143 _m +523 107 507 70 477 32 _c +450 -1 417 -30 377 -55 _c +339 -78 308 -90 284 -90 _c +261 -90 237 -86 211 -80 _c +191 -75 168 -67 140 -57 _c +116 -48 93 -39 70 -31 _c +79 -11 _l +100 -15 122 -20 146 -24 _c +169 -28 190 -31 209 -31 _c +250 -31 293 -18 339 8 _c +380 32 415 63 444 101 _c +473 138 488 172 488 202 _c +488 227 480 254 465 283 _c +453 305 436 329 415 353 _c +442 430 _l +}_e{468 405 488 380 501 355 _c +515 327 523 296 523 262 _c +523 143 _l +_cl}_e}_d +/Ufeae{489 0 70 -90 523 430 _sc +false CharStrings /afii57425 get exec +}_d +/afii57426{{489 0 70 -90 523 639 _sc +450 598 _m +412 527 _l +333 568 _l +370 639 _l +450 598 _l +523 143 _m +523 107 507 70 477 32 _c +450 -1 417 -30 377 -55 _c +339 -78 308 -90 284 -90 _c +261 -90 237 -86 211 -80 _c +191 -75 168 -67 140 -57 _c +116 -48 93 -39 70 -31 _c +79 -11 _l +100 -15 122 -20 146 -24 _c +169 -28 190 -31 209 -31 _c +250 -31 293 -18 339 8 _c +380 32 415 63 444 101 _c +473 138 488 172 488 202 _c +488 227 480 254 465 283 _c +}_e{453 305 436 329 415 353 _c +442 430 _l +468 405 488 380 501 355 _c +515 327 523 296 523 262 _c +523 143 _l +_cl}_e}_d +/Ufeb0{489 0 70 -90 523 639 _sc +false CharStrings /afii57426 get exec +}_d +/afii57427{{821 0 64 -71 855 417 _sc +855 143 _m +817 143 _l +797 143 780 145 765 151 _c +750 156 735 165 720 177 _c +706 164 694 156 684 152 _c +668 146 646 143 617 143 _c +557 143 _l +557 113 549 84 535 56 _c +516 18 488 -10 450 -31 _c +402 -57 342 -71 271 -71 _c +205 -71 155 -59 121 -37 _c +83 -12 64 25 64 77 _c +64 105 67 133 74 162 _c +81 190 91 219 103 249 _c +109 266 122 293 140 330 _c +159 321 _l +136 273 121 236 114 209 _c +106 182 103 158 103 136 _c +}_e{103 95 117 64 146 43 _c +174 22 216 12 270 12 _c +332 12 387 23 437 45 _c +498 71 529 109 529 158 _c +529 190 523 221 511 251 _c +501 274 488 296 471 317 _c +511 417 _l +527 390 538 367 544 347 _c +552 317 557 278 557 228 _c +617 228 _l +647 228 669 232 683 242 _c +694 250 700 262 700 280 _c +700 289 699 298 698 308 _c +696 318 695 328 693 340 _c +712 369 _l +720 322 _l +727 290 737 267 749 253 _c +762 237 781 229 806 229 _c +}_e{813 229 819 231 823 236 _c +827 241 829 247 829 254 _c +829 270 824 288 814 307 _c +806 320 796 334 784 348 _c +817 401 _l +832 375 841 358 845 350 _c +851 329 855 299 855 260 _c +855 143 _l +_cl}_e}_d +/Ufeb2{821 0 64 -71 855 417 _sc +false CharStrings /afii57427 get exec +}_d +/Ufeb3{{531 0 0 143 565 401 _sc +565 143 _m +527 143 _l +506 143 488 145 473 151 _c +458 157 445 165 433 176 _c +417 164 404 156 393 152 _c +376 146 353 143 324 143 _c +292 143 _l +275 143 258 146 242 153 _c +230 157 217 164 201 174 _c +185 162 170 153 157 149 _c +144 145 123 143 94 143 _c +0 143 _l +0 228 _l +94 228 _l +120 228 139 230 151 235 _c +169 242 179 257 179 280 _c +179 289 178 298 177 308 _c +176 317 174 328 172 340 _c +192 369 _l +201 339 209 317 215 304 _c +}_e{225 280 236 262 249 250 _c +263 235 281 228 303 228 _c +335 228 _l +359 228 378 231 390 239 _c +402 247 409 261 409 280 _c +409 290 408 299 407 309 _c +405 318 404 328 402 340 _c +422 369 _l +433 323 _l +441 287 452 262 465 248 _c +475 235 490 229 510 229 _c +518 229 525 231 531 237 _c +536 243 539 250 539 258 _c +539 276 532 296 519 316 _c +517 319 509 330 495 348 _c +527 401 _l +540 381 549 363 554 349 _c +561 326 565 296 565 260 _c +}_e{565 143 _l +_cl}_e}_d +/Ufeb4{531 0 0 143 565 401 _sc +false CharStrings /Ufeb3 get exec +}_d +/afii57428{{821 0 64 -71 855 715 _sc +721 673 _m +683 602 _l +605 644 _l +641 715 _l +721 673 _l +817 586 _m +779 516 _l +700 558 _l +736 628 _l +817 586 _l +705 542 _m +667 472 _l +588 513 _l +625 583 _l +705 542 _l +855 143 _m +817 143 _l +797 143 780 145 765 151 _c +750 156 735 165 720 177 _c +706 164 694 156 684 152 _c +668 146 646 143 617 143 _c +557 143 _l +557 113 549 84 535 56 _c +516 18 488 -10 450 -31 _c +}_e{402 -57 342 -71 271 -71 _c +205 -71 155 -59 121 -37 _c +83 -12 64 25 64 77 _c +64 105 67 133 74 162 _c +81 190 91 219 103 249 _c +109 266 122 293 140 330 _c +159 321 _l +136 273 121 236 114 209 _c +106 182 103 158 103 136 _c +103 95 117 64 146 43 _c +174 22 216 12 270 12 _c +332 12 387 23 437 45 _c +498 71 529 109 529 158 _c +529 190 523 221 511 251 _c +501 274 488 296 471 317 _c +511 417 _l +527 390 538 367 544 347 _c +552 317 557 278 557 228 _c +}_e{617 228 _l +647 228 669 232 683 242 _c +694 250 700 262 700 280 _c +700 289 699 298 698 308 _c +696 318 695 328 693 340 _c +712 369 _l +720 322 _l +727 290 737 267 749 253 _c +762 237 781 229 806 229 _c +813 229 819 231 823 236 _c +827 241 829 247 829 254 _c +829 270 824 288 814 307 _c +806 320 796 334 784 348 _c +817 401 _l +832 375 841 358 845 350 _c +851 329 855 299 855 260 _c +855 143 _l +_cl}_e}_d +/Ufeb6{821 0 64 -71 855 715 _sc +false CharStrings /afii57428 get exec +}_d +/Ufeb7{{531 0 0 143 565 715 _sc +425 673 _m +388 602 _l +310 644 _l +346 715 _l +425 673 _l +521 586 _m +483 516 _l +404 558 _l +441 628 _l +521 586 _l +409 542 _m +372 472 _l +293 513 _l +329 583 _l +409 542 _l +565 143 _m +527 143 _l +506 143 488 145 473 151 _c +458 157 445 165 433 176 _c +417 164 404 156 393 152 _c +376 146 353 143 324 143 _c +292 143 _l +275 143 258 146 242 153 _c +230 157 217 164 201 174 _c +}_e{185 162 170 153 157 149 _c +144 145 123 143 94 143 _c +0 143 _l +0 228 _l +94 228 _l +120 228 139 230 151 235 _c +169 242 179 257 179 280 _c +179 289 178 298 177 308 _c +176 317 174 328 172 340 _c +192 369 _l +201 339 209 317 215 304 _c +225 280 236 262 249 250 _c +263 235 281 228 303 228 _c +335 228 _l +359 228 378 231 390 239 _c +402 247 409 261 409 280 _c +409 290 408 299 407 309 _c +405 318 404 328 402 340 _c +422 369 _l +433 323 _l +}_e{441 287 452 262 465 248 _c +475 235 490 229 510 229 _c +518 229 525 231 531 237 _c +536 243 539 250 539 258 _c +539 276 532 296 519 316 _c +517 319 509 330 495 348 _c +527 401 _l +540 381 549 363 554 349 _c +561 326 565 296 565 260 _c +565 143 _l +_cl}_e}_d +/Ufeb8{531 0 0 143 565 715 _sc +false CharStrings /Ufeb7 get exec +}_d +/afii57429{{1098 0 64 -71 1132 417 _sc +1132 143 _m +552 143 _l +542 75 519 25 482 -8 _c +436 -50 365 -71 271 -71 _c +205 -71 155 -59 121 -37 _c +83 -12 64 25 64 77 _c +64 105 67 133 74 162 _c +81 190 91 219 103 249 _c +109 266 122 293 140 330 _c +159 321 _l +136 273 121 236 114 209 _c +106 182 103 158 103 136 _c +103 95 117 64 146 43 _c +174 22 216 12 270 12 _c +332 12 387 23 437 45 _c +498 71 529 109 529 158 _c +529 190 523 221 511 251 _c +}_e{501 274 488 296 471 317 _c +511 417 _l +527 390 538 367 544 347 _c +552 317 557 278 557 228 _c +565 228 _l +604 228 640 234 673 247 _c +701 257 732 274 764 297 _c +812 331 840 351 850 357 _c +876 373 900 385 922 393 _c +946 401 972 405 1001 405 _c +1045 405 1079 392 1102 367 _c +1122 343 1132 309 1132 267 _c +1132 143 _l +1053 266 _m +1053 282 1043 294 1023 303 _c +1003 311 979 316 953 316 _c +929 316 903 311 875 301 _c +}_e{854 293 828 281 796 265 _c +772 253 749 240 726 228 _c +951 228 _l +982 228 1007 231 1025 237 _c +1043 243 1053 253 1053 266 _c +_cl}_e}_d +/Ufeba{1098 0 64 -71 1132 417 _sc +false CharStrings /afii57429 get exec +}_d +/Ufebb{{846 0 0 143 880 405 _sc +880 143 _m +293 143 _l +275 143 259 146 243 152 _c +231 156 217 164 201 174 _c +187 162 173 153 159 149 _c +145 145 124 143 94 143 _c +0 143 _l +0 228 _l +94 228 _l +120 228 139 230 151 235 _c +169 242 179 257 179 280 _c +179 289 178 298 177 308 _c +176 318 174 328 172 340 _c +192 369 _l +203 325 219 291 239 267 _c +260 241 285 228 314 228 _c +341 228 373 234 410 247 _c +450 260 484 277 513 297 _c +}_e{559 330 588 350 598 357 _c +624 373 648 385 670 393 _c +694 401 720 405 749 405 _c +793 405 826 392 849 367 _c +869 343 880 309 880 267 _c +880 143 _l +801 266 _m +801 282 791 294 771 303 _c +751 311 728 316 702 316 _c +669 316 629 305 583 284 _c +546 265 510 246 474 228 _c +699 228 _l +734 228 760 231 776 237 _c +792 243 801 253 801 266 _c +_cl}_e}_d +/Ufebc{846 0 0 143 880 405 _sc +false CharStrings /Ufebb get exec +}_d +/afii57430{{1098 0 64 -71 1132 590 _sc +807 549 _m +770 478 _l +691 519 _l +727 590 _l +807 549 _l +1132 143 _m +552 143 _l +542 75 519 25 482 -8 _c +436 -50 365 -71 271 -71 _c +205 -71 155 -59 121 -37 _c +83 -12 64 25 64 77 _c +64 105 67 133 74 162 _c +81 190 91 219 103 249 _c +109 266 122 293 140 330 _c +159 321 _l +136 273 121 236 114 209 _c +106 182 103 158 103 136 _c +103 95 117 64 146 43 _c +174 22 216 12 270 12 _c +332 12 387 23 437 45 _c +}_e{498 71 529 109 529 158 _c +529 190 523 221 511 251 _c +501 274 488 296 471 317 _c +511 417 _l +527 390 538 367 544 347 _c +552 317 557 278 557 228 _c +565 228 _l +604 228 640 234 673 247 _c +701 257 732 274 764 297 _c +812 331 840 351 850 357 _c +876 373 900 385 922 393 _c +946 401 972 405 1001 405 _c +1045 405 1079 392 1102 367 _c +1122 343 1132 309 1132 267 _c +1132 143 _l +1053 266 _m +}_e{1053 282 1043 294 1023 303 _c +1003 311 979 316 953 316 _c +929 316 903 311 875 301 _c +854 293 828 281 796 265 _c +772 253 749 240 726 228 _c +951 228 _l +982 228 1007 231 1025 237 _c +1043 243 1053 253 1053 266 _c +_cl}_e}_d +/Ufebe{1098 0 64 -71 1132 590 _sc +false CharStrings /afii57430 get exec +}_d +/Ufebf{{846 0 0 143 880 590 _sc +570 549 _m +533 478 _l +454 519 _l +490 590 _l +570 549 _l +880 143 _m +293 143 _l +275 143 259 146 243 152 _c +231 156 217 164 201 174 _c +187 162 173 153 159 149 _c +145 145 124 143 94 143 _c +0 143 _l +0 228 _l +94 228 _l +120 228 139 230 151 235 _c +169 242 179 257 179 280 _c +179 289 178 298 177 308 _c +176 318 174 328 172 340 _c +192 369 _l +203 325 219 291 239 267 _c +260 241 285 228 314 228 _c +}_e{341 228 373 234 410 247 _c +450 260 484 277 513 297 _c +559 330 588 350 598 357 _c +624 373 648 385 670 393 _c +694 401 720 405 749 405 _c +793 405 826 392 849 367 _c +869 343 880 309 880 267 _c +880 143 _l +801 266 _m +801 282 791 294 771 303 _c +751 311 728 316 702 316 _c +669 316 629 305 583 284 _c +546 265 510 246 474 228 _c +699 228 _l +734 228 760 231 776 237 _c +792 243 801 253 801 266 _c +_cl}_e}_d +/Ufec0{846 0 0 143 880 590 _sc +false CharStrings /Ufebf get exec +}_d +/afii57431{{582 0 0 143 616 793 _sc +616 143 _m +0 143 _l +0 228 _l +75 229 _l +97 229 117 231 137 237 _c +159 244 184 256 212 273 _c +218 287 222 303 226 319 _c +229 335 231 351 231 367 _c +231 401 228 440 222 482 _c +216 512 209 548 200 590 _c +194 612 187 638 179 669 _c +149 684 _l +151 703 154 722 159 740 _c +163 758 169 776 177 793 _c +182 778 194 766 213 758 _c +228 751 247 746 271 744 _c +268 710 266 689 264 680 _c +262 671 259 660 255 646 _c +252 646 246 648 237 651 _c +}_e{230 653 _l +242 615 251 576 259 536 _c +266 496 270 462 270 435 _c +270 411 267 385 263 357 _c +261 347 258 331 254 311 _c +310 343 347 363 363 371 _c +411 393 453 405 487 405 _c +531 405 564 392 586 367 _c +606 343 616 310 616 267 _c +616 143 _l +539 266 _m +539 282 530 295 513 303 _c +495 311 471 316 439 316 _c +415 316 388 311 357 301 _c +331 292 304 280 276 266 _c +255 254 233 242 211 228 _c +423 228 _l +500 228 539 240 539 266 _c +_cl}_e}_d +/Ufec2{582 0 0 143 616 793 _sc +false CharStrings /afii57431 get exec +}_d +/Ufec3{582 0 0 143 616 793 _sc +false CharStrings /afii57431 get exec +}_d +/Ufec4{582 0 0 143 616 793 _sc +false CharStrings /afii57431 get exec +}_d +/afii57432{{582 0 0 143 616 793 _sc +483 598 _m +445 527 _l +366 568 _l +402 639 _l +483 598 _l +616 143 _m +0 143 _l +0 228 _l +75 229 _l +97 229 117 231 137 237 _c +159 244 184 256 212 273 _c +218 287 222 303 226 319 _c +229 335 231 351 231 367 _c +231 401 228 440 222 482 _c +216 512 209 548 200 590 _c +194 612 187 638 179 669 _c +149 684 _l +151 703 154 722 159 740 _c +163 758 169 776 177 793 _c +182 778 194 766 213 758 _c +}_e{228 751 247 746 271 744 _c +268 710 266 689 264 680 _c +262 671 259 660 255 646 _c +252 646 246 648 237 651 _c +230 653 _l +242 615 251 576 259 536 _c +266 496 270 462 270 435 _c +270 411 267 385 263 357 _c +261 347 258 331 254 311 _c +310 343 347 363 363 371 _c +411 393 453 405 487 405 _c +531 405 564 392 586 367 _c +606 343 616 310 616 267 _c +616 143 _l +539 266 _m +539 282 530 295 513 303 _c +495 311 471 316 439 316 _c +415 316 388 311 357 301 _c +}_e{331 292 304 280 276 266 _c +255 254 233 242 211 228 _c +423 228 _l +500 228 539 240 539 266 _c +_cl}_e}_d +/Ufec6{582 0 0 143 616 793 _sc +false CharStrings /afii57432 get exec +}_d +/Ufec7{582 0 0 143 616 793 _sc +false CharStrings /afii57432 get exec +}_d +/Ufec8{582 0 0 143 616 793 _sc +false CharStrings /afii57432 get exec +}_d +/afii57433{{544 0 21 -211 516 534 _sc +516 -129 _m +392 -211 _l +324 -211 272 -208 235 -203 _c +171 -193 121 -174 86 -146 _c +42 -110 21 -60 21 6 _c +21 46 27 82 39 115 _c +49 141 63 165 83 189 _c +91 200 107 217 130 240 _c +98 255 77 268 65 280 _c +38 305 25 337 25 375 _c +25 409 39 443 69 477 _c +102 515 142 534 189 534 _c +210 534 233 528 257 516 _c +273 507 293 493 317 475 _c +}_e{285 475 252 473 219 469 _c +175 463 140 455 114 445 _c +81 432 65 416 65 398 _c +65 378 83 359 121 341 _c +152 326 188 316 229 310 _c +261 327 292 342 324 354 _c +358 368 393 379 431 389 _c +411 313 _l +343 286 294 266 264 252 _c +203 223 157 194 125 164 _c +83 125 63 84 63 41 _c +63 -4 80 -40 115 -67 _c +145 -89 189 -105 247 -115 _c +293 -122 352 -126 424 -126 _c +}_e{439 -126 454 -125 470 -125 _c +485 -125 500 -125 516 -125 _c +516 -129 _l +_cl}_e}_d +/Ufeca{{450 0 26 -211 486 431 _sc +486 -133 _m +387 -211 _l +326 -211 278 -208 244 -203 _c +180 -192 131 -172 95 -144 _c +49 -106 26 -54 26 12 _c +26 56 34 98 52 136 _c +66 166 86 197 114 228 _c +126 242 150 266 186 298 _c +182 309 178 317 172 323 _c +166 328 159 331 152 331 _c +144 331 135 325 127 313 _c +119 313 _l +125 347 133 371 141 384 _c +159 415 188 431 230 431 _c +258 431 282 424 303 411 _c +}_e{325 395 336 375 336 351 _c +336 335 330 321 318 311 _c +306 301 297 294 290 288 _c +308 266 325 250 342 241 _c +359 232 380 228 405 228 _c +484 228 _l +484 143 _l +405 143 _l +355 143 317 150 289 165 _c +261 180 239 205 223 240 _c +199 224 178 208 159 192 _c +133 170 112 148 98 127 _c +79 101 70 75 70 51 _c +70 -3 97 -45 153 -76 _c +195 -98 253 -114 327 -123 _c +366 -127 418 -129 484 -129 _c +486 -133 _l +_cl}_e}_d +/Ufecb{{526 0 0 143 504 472 _sc +504 295 _m +471 207 _l +421 189 364 173 300 161 _c +235 149 176 143 122 143 _c +0 143 _l +0 228 _l +117 228 _l +107 243 100 260 94 280 _c +88 299 85 318 85 336 _c +85 374 101 407 133 433 _c +165 459 207 472 257 472 _c +297 472 330 462 356 443 _c +367 435 386 415 413 383 _c +403 375 _l +381 381 361 385 343 388 _c +325 391 306 393 287 393 _c +242 393 207 388 181 378 _c +155 368 143 355 143 339 _c +143 323 151 305 167 285 _c +183 265 203 248 229 233 _c +283 241 327 248 361 256 _c +395 264 442 277 504 295 _c +_cl}_e}_d +/Ufecc{{394 0 0 143 428 418 _sc +428 143 _m +356 143 _l +335 143 314 148 292 158 _c +266 170 247 186 235 208 _c +213 188 189 173 161 163 _c +126 149 87 143 44 143 _c +0 143 _l +0 228 _l +44 228 _l +71 228 96 231 120 237 _c +146 243 173 254 199 270 _c +178 296 _l +168 308 156 314 143 314 _c +137 314 131 313 127 311 _c +123 309 118 304 112 297 _c +102 297 _l +102 326 _l +102 362 111 386 130 400 _c +}_e{147 412 177 418 220 418 _c +256 418 286 413 310 403 _c +340 390 355 371 355 345 _c +355 331 349 316 337 301 _c +328 290 312 275 289 255 _c +294 247 304 241 319 236 _c +333 230 346 228 356 228 _c +428 228 _l +428 143 _l +_cl}_e}_d +/afii57434{{544 0 21 -211 516 737 _sc +243 695 _m +204 625 _l +127 666 _l +167 737 _l +243 695 _l +516 -129 _m +392 -211 _l +324 -211 272 -208 235 -203 _c +171 -193 121 -174 86 -146 _c +42 -110 21 -60 21 6 _c +21 46 27 82 39 115 _c +49 141 63 165 83 189 _c +91 200 107 217 130 240 _c +98 255 77 268 65 280 _c +38 305 25 337 25 375 _c +25 409 39 443 69 477 _c +102 515 142 534 189 534 _c +}_e{210 534 233 528 257 516 _c +273 507 293 493 317 475 _c +285 475 252 473 219 469 _c +175 463 140 455 114 445 _c +81 432 65 416 65 398 _c +65 378 83 359 121 341 _c +152 326 188 316 229 310 _c +261 327 292 342 324 354 _c +358 368 393 379 431 389 _c +411 313 _l +343 286 294 266 264 252 _c +203 223 157 194 125 164 _c +83 125 63 84 63 41 _c +63 -4 80 -40 115 -67 _c +}_e{145 -89 189 -105 247 -115 _c +293 -122 352 -126 424 -126 _c +439 -126 454 -125 470 -125 _c +485 -125 500 -125 516 -125 _c +516 -129 _l +_cl}_e}_d +/Ufece{{450 0 26 -211 486 639 _sc +292 598 _m +255 527 _l +176 568 _l +213 639 _l +292 598 _l +486 -133 _m +387 -211 _l +326 -211 278 -208 244 -203 _c +180 -192 131 -172 95 -144 _c +49 -106 26 -54 26 12 _c +26 56 34 98 52 136 _c +66 166 86 197 114 228 _c +126 242 150 266 186 298 _c +182 309 178 317 172 323 _c +166 328 159 331 152 331 _c +144 331 135 325 127 313 _c +119 313 _l +125 347 133 371 141 384 _c +}_e{159 415 188 431 230 431 _c +258 431 282 424 303 411 _c +325 395 336 375 336 351 _c +336 335 330 321 318 311 _c +306 301 297 294 290 288 _c +308 266 325 250 342 241 _c +359 232 380 228 405 228 _c +484 228 _l +484 143 _l +405 143 _l +355 143 317 150 289 165 _c +261 180 239 205 223 240 _c +199 224 178 208 159 192 _c +133 170 112 148 98 127 _c +79 101 70 75 70 51 _c +70 -3 97 -45 153 -76 _c +195 -98 253 -114 327 -123 _c +}_e{366 -127 418 -129 484 -129 _c +486 -133 _l +_cl}_e}_d +/Ufecf{{526 0 0 143 504 639 _sc +299 598 _m +263 527 _l +183 568 _l +220 639 _l +299 598 _l +504 295 _m +471 207 _l +421 189 364 173 300 161 _c +235 149 176 143 122 143 _c +0 143 _l +0 228 _l +117 228 _l +107 243 100 260 94 280 _c +88 299 85 318 85 336 _c +85 374 101 407 133 433 _c +165 459 207 472 257 472 _c +297 472 330 462 356 443 _c +367 435 386 415 413 383 _c +403 375 _l +381 381 361 385 343 388 _c +325 391 306 393 287 393 _c +242 393 207 388 181 378 _c +155 368 143 355 143 339 _c +143 323 151 305 167 285 _c +183 265 203 248 229 233 _c +}_e{283 241 327 248 361 256 _c +395 264 442 277 504 295 _c +_cl}_e}_d +/Ufed0{{394 0 0 143 428 639 _sc +262 598 _m +225 527 _l +146 568 _l +182 639 _l +262 598 _l +428 143 _m +356 143 _l +335 143 314 148 292 158 _c +266 170 247 186 235 208 _c +213 188 189 173 161 163 _c +126 149 87 143 44 143 _c +0 143 _l +0 228 _l +44 228 _l +71 228 96 231 120 237 _c +146 243 173 254 199 270 _c +178 296 _l +168 308 156 314 143 314 _c +137 314 131 313 127 311 _c +123 309 118 304 112 297 _c +102 297 _l +}_e{102 326 _l +102 362 111 386 130 400 _c +147 412 177 418 220 418 _c +256 418 286 413 310 403 _c +340 390 355 371 355 345 _c +355 331 349 316 337 301 _c +328 290 312 275 289 255 _c +294 247 304 241 319 236 _c +333 230 346 228 356 228 _c +428 228 _l +428 143 _l +_cl}_e}_d +/afii57441{{789 0 53 143 823 681 _sc +726 639 _m +686 567 _l +606 610 _l +647 681 _l +726 639 _l +823 143 _m +375 143 _l +306 143 251 147 209 156 _c +159 166 121 182 95 206 _c +67 231 53 266 53 310 _c +53 338 61 372 78 411 _c +90 437 99 457 105 470 _c +125 459 _l +111 431 101 409 97 394 _c +92 379 90 366 90 354 _c +90 311 113 279 160 259 _c +206 238 281 228 384 228 _c +744 228 _l +706 238 678 250 660 264 _c +639 280 629 299 629 322 _c +}_e{629 352 639 385 659 419 _c +681 458 707 478 735 478 _c +767 478 790 458 805 420 _c +817 388 823 343 823 284 _c +823 143 _l +772 291 _m +772 319 769 340 763 356 _c +755 374 743 384 729 384 _c +717 384 709 380 704 374 _c +698 367 696 358 696 346 _c +696 330 702 318 716 310 _c +725 304 744 297 772 291 _c +_cl}_e}_d +/Ufed2{789 0 53 143 823 681 _sc +false CharStrings /afii57441 get exec +}_d +/Ufed3{{268 0 0 143 302 726 _sc +237 684 _m +199 613 _l +121 655 _l +157 726 _l +237 684 _l +302 143 _m +0 143 _l +0 228 _l +260 228 _l +260 256 256 284 250 310 _c +233 304 220 300 211 298 _c +195 294 182 292 171 292 _c +147 292 128 298 113 310 _c +95 324 87 343 87 369 _c +87 414 95 454 112 488 _c +130 525 153 544 183 544 _c +223 544 253 513 275 451 _c +293 399 302 339 302 270 _c +}_e{302 143 _l +222 397 _m +217 409 210 421 200 433 _c +186 449 173 457 161 457 _c +152 457 145 453 139 446 _c +133 438 131 430 131 420 _c +131 394 145 381 174 381 _c +181 381 189 382 197 385 _c +205 388 214 392 222 397 _c +_cl}_e}_d +/Ufed4{{263 0 0 143 297 707 _sc +254 662 _m +211 591 _l +143 638 _l +184 707 _l +254 662 _l +297 143 _m +0 143 _l +0 228 _l +167 228 _l +187 228 205 228 219 230 _c +233 231 248 234 265 240 _c +209 248 172 255 156 263 _c +118 279 100 306 100 346 _c +100 380 109 412 127 442 _c +147 476 171 494 201 494 _c +233 494 258 472 276 430 _c +290 396 297 357 297 312 _c +297 143 _l +253 313 _m +245 339 238 359 231 372 _c +}_e{217 396 201 408 183 408 _c +173 408 165 404 159 397 _c +153 390 150 382 150 372 _c +150 347 162 330 188 322 _c +197 319 219 316 253 313 _c +_cl}_e}_d +/afii57442{{582 0 68 -74 616 683 _sc +559 642 _m +521 571 _l +441 613 _l +478 683 _l +559 642 _l +446 598 _m +409 527 _l +330 568 _l +366 639 _l +446 598 _l +616 118 _m +616 53 585 4 523 -28 _c +467 -58 393 -74 301 -74 _c +228 -74 172 -61 133 -35 _c +89 -7 68 34 68 90 _c +68 128 74 169 87 211 _c +98 250 114 289 136 329 _c +156 320 _l +146 297 138 277 132 259 _c +123 235 117 214 113 197 _c +}_e{108 175 106 154 106 134 _c +106 91 124 60 160 40 _c +192 21 241 12 307 12 _c +376 12 437 23 489 46 _c +549 72 579 108 579 153 _c +579 169 578 181 577 189 _c +576 196 574 203 571 211 _c +559 205 546 201 534 197 _c +521 193 508 192 496 192 _c +467 192 444 198 426 212 _c +404 227 394 251 394 283 _c +394 319 403 354 422 388 _c +443 426 468 445 497 445 _c +535 445 565 419 587 367 _c +606 322 616 271 616 213 _c +616 118 _l +538 299 _m +}_e{529 319 523 332 520 337 _c +510 350 499 357 486 357 _c +470 357 458 353 451 345 _c +443 337 440 328 440 317 _c +440 307 444 299 454 293 _c +464 287 475 285 487 285 _c +495 285 503 286 510 288 _c +517 290 526 294 538 299 _c +_cl}_e}_d +/Ufed6{582 0 68 -74 616 683 _sc +false CharStrings /afii57442 get exec +}_d +/Ufed7{{268 0 0 143 302 740 _sc +286 699 _m +248 628 _l +169 670 _l +206 740 _l +286 699 _l +174 655 _m +137 584 _l +58 625 _l +94 696 _l +174 655 _l +302 143 _m +0 143 _l +0 228 _l +260 228 _l +260 256 256 284 250 310 _c +233 304 220 300 211 298 _c +195 294 182 292 171 292 _c +147 292 128 298 113 310 _c +95 324 87 343 87 369 _c +87 414 95 454 112 488 _c +130 525 153 544 183 544 _c +}_e{223 544 253 513 275 451 _c +293 399 302 339 302 270 _c +302 143 _l +222 397 _m +217 409 210 421 200 433 _c +186 449 173 457 161 457 _c +152 457 145 453 139 446 _c +133 438 131 430 131 420 _c +131 394 145 381 174 381 _c +181 381 189 382 197 385 _c +205 388 214 392 222 397 _c +_cl}_e}_d +/Ufed8{{263 0 0 143 297 727 _sc +276 687 _m +234 622 _l +173 662 _l +215 727 _l +276 687 _l +164 658 _m +125 591 _l +65 631 _l +106 696 _l +164 658 _l +297 143 _m +0 143 _l +0 228 _l +167 228 _l +187 228 205 228 219 230 _c +233 231 248 234 265 240 _c +209 248 172 255 156 263 _c +118 279 100 306 100 346 _c +100 380 109 412 127 442 _c +147 476 171 494 201 494 _c +233 494 258 472 276 430 _c +290 396 297 357 297 312 _c +}_e{297 143 _l +253 313 _m +245 339 238 359 231 372 _c +217 396 201 408 183 408 _c +173 408 165 404 159 397 _c +153 390 150 382 150 372 _c +150 347 162 330 188 322 _c +197 319 219 316 253 313 _c +_cl}_e}_d +/afii57443{{601 0 56 143 635 775 _sc +457 441 _m +457 405 445 378 421 359 _c +397 339 363 330 321 330 _c +301 330 279 332 255 338 _c +240 341 218 347 190 356 _c +199 366 _l +206 366 215 365 227 365 _c +253 362 269 361 275 361 _c +312 361 344 366 371 377 _c +398 388 412 401 412 417 _c +412 423 409 429 403 434 _c +397 438 391 441 384 441 _c +375 441 368 441 364 441 _c +330 438 _l +322 438 315 440 309 444 _c +303 448 301 456 301 466 _c +301 493 315 526 343 564 _c +371 602 401 627 433 637 _c +424 573 _l +401 567 384 560 372 553 _c +}_e{352 541 343 528 343 512 _c +343 506 345 502 350 500 _c +355 498 361 497 369 497 _c +374 497 379 497 384 498 _c +411 501 _l +427 501 439 496 446 488 _c +453 479 457 463 457 441 _c +635 143 _m +275 143 _l +197 143 141 152 109 171 _c +73 191 56 224 56 272 _c +56 300 63 333 79 370 _c +83 380 92 398 106 426 _c +123 417 _l +111 391 104 371 101 357 _c +97 343 96 331 96 319 _c +96 283 114 258 152 244 _c +180 233 221 228 275 228 _c +586 228 _l +525 642 _l +}_e{500 654 _l +500 676 501 697 505 717 _c +509 737 515 756 523 775 _c +530 770 _l +530 750 541 736 565 727 _c +618 708 _l +618 692 616 675 612 657 _c +608 638 605 624 601 614 _c +578 622 _l +635 239 _l +635 143 _l +_cl}_e}_d +/Ufeda{601 0 56 143 635 775 _sc +false CharStrings /afii57443 get exec +}_d +/Ufedb{394 0 0 143 428 734 _sc +false CharStrings /Ufb90 get exec +}_d +/Ufedc{394 0 0 143 428 734 _sc +false CharStrings /Ufb90 get exec +}_d +/afii57444{{506 0 69 7 541 775 _sc +541 204 _m +541 151 528 110 504 80 _c +482 52 450 33 408 21 _c +372 11 326 7 271 7 _c +208 7 159 18 125 42 _c +87 67 69 105 69 155 _c +69 183 73 212 81 243 _c +87 268 98 296 112 327 _c +122 349 135 375 153 407 _c +169 398 _l +157 376 147 356 139 339 _c +128 316 120 295 115 277 _c +108 255 105 233 105 213 _c +105 173 119 142 149 122 _c +178 101 219 91 271 91 _c +}_e{325 91 376 100 423 120 _c +474 140 500 165 500 194 _c +500 226 495 279 485 355 _c +477 413 468 477 457 549 _c +440 644 _l +418 656 _l +418 699 427 739 445 775 _c +453 775 _l +454 762 456 753 460 747 _c +463 741 468 736 476 734 _c +486 730 497 725 509 719 _c +517 714 525 710 532 708 _c +532 684 531 667 529 657 _c +527 647 524 632 520 614 _c +492 623 _l +492 615 497 582 506 524 _c +516 456 523 401 529 359 _c +537 291 541 239 541 204 _c +_cl}_e}_d +/Ufede{506 0 69 7 541 775 _sc +false CharStrings /afii57444 get exec +}_d +/Ufedf{207 0 0 143 241 775 _sc +241 143 _m +0 143 _l +0 228 _l +192 228 _l +134 642 _l +108 654 _l +108 676 110 697 114 717 _c +118 737 124 756 132 775 _c +139 770 _l +139 750 149 736 171 727 _c +187 720 203 714 220 708 _c +220 691 218 673 216 655 _c +213 636 210 622 207 614 _c +184 622 _l +241 239 _l +241 143 _l +_cl}_d +/Ufee0{207 0 0 143 241 775 _sc +false CharStrings /Ufedf get exec +}_d +/afii57445{{338 0 51 -211 372 357 _sc +372 143 _m +314 143 _l +260 143 212 138 172 128 _c +121 115 96 97 96 73 _c +96 51 99 29 107 5 _c +114 -19 121 -43 129 -68 _c +137 -93 141 -116 141 -138 _c +141 -150 140 -161 138 -171 _c +136 -181 132 -195 128 -211 _c +120 -183 112 -156 104 -130 _c +88 -78 76 -39 69 -13 _c +57 27 51 52 51 61 _c +51 103 59 135 77 157 _c +95 179 122 195 158 207 _c +186 215 229 222 287 228 _c +266 248 253 261 249 265 _c +232 278 215 285 199 285 _c +188 285 178 281 168 275 _c +}_e{160 269 150 260 140 248 _c +117 262 _l +127 286 138 306 150 321 _c +170 345 195 357 223 357 _c +243 357 263 349 284 334 _c +300 322 317 305 334 283 _c +342 272 355 254 372 228 _c +372 143 _l +_cl}_e}_d +/Ufee2{338 0 51 -211 372 357 _sc +false CharStrings /afii57445 get exec +}_d +/Ufee3{{394 0 0 143 428 411 _sc +428 143 _m +377 143 _l +355 143 331 148 304 158 _c +272 169 244 185 220 205 _c +201 181 182 165 162 156 _c +142 147 114 143 76 143 _c +0 143 _l +0 228 _l +75 228 _l +104 228 130 235 154 250 _c +172 262 188 278 203 300 _c +222 328 246 353 276 375 _c +302 393 326 405 348 411 _c +370 376 387 345 401 318 _c +419 281 428 251 428 228 _c +428 143 _l +372 239 _m +368 258 361 277 353 295 _c +}_e{345 310 335 326 323 342 _c +307 338 293 330 283 320 _c +275 313 267 302 258 286 _c +269 273 285 261 307 251 _c +328 241 348 235 368 233 _c +372 239 _l +_cl}_e}_d +/Ufee4{394 0 0 143 428 411 _sc +false CharStrings /Ufee3 get exec +}_d +/afii57446{{526 0 68 -71 560 558 _sc +378 518 _m +342 448 _l +266 490 _l +301 558 _l +378 518 _l +560 143 _m +560 70 538 17 496 -16 _c +450 -52 376 -71 274 -71 _c +208 -71 159 -59 125 -37 _c +87 -12 68 25 68 77 _c +68 105 71 133 78 162 _c +84 190 94 219 106 249 _c +113 266 125 293 143 330 _c +163 321 _l +139 273 124 236 117 209 _c +109 182 106 158 106 136 _c +106 95 120 64 149 43 _c +178 22 219 12 273 12 _c +334 12 389 23 437 45 _c +495 71 525 109 525 158 _c +}_e{525 191 520 222 510 251 _c +502 276 490 298 474 317 _c +515 417 _l +532 391 544 364 550 337 _c +556 309 560 273 560 228 _c +560 143 _l +_cl}_e}_d +/Ufee6{526 0 68 -71 560 558 _sc +false CharStrings /afii57446 get exec +}_d +/Ufee7{244 0 0 143 278 636 _sc +239 595 _m +202 524 _l +123 565 _l +159 636 _l +239 595 _l +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +_cl}_d +/Ufee8{244 0 0 143 278 636 _sc +false CharStrings /Ufee7 get exec +}_d +/afii57470{282 0 26 130 262 430 _sc +false CharStrings /afii57534 get exec +}_d +/Ufeea{{375 0 30 143 409 583 _sc +409 143 _m +339 143 _l +315 143 295 163 277 203 _c +263 233 253 271 245 319 _c +235 301 222 286 208 276 _c +193 266 177 261 161 261 _c +123 261 91 263 67 268 _c +42 273 30 280 30 288 _c +30 316 48 347 84 381 _c +120 415 166 444 221 470 _c +220 472 219 479 217 490 _c +215 501 214 508 214 511 _c +214 522 217 534 225 548 _c +231 559 239 571 250 583 _c +252 562 255 542 259 524 _c +263 505 267 485 271 465 _c +286 381 _l +294 335 301 301 308 279 _c +318 245 328 228 339 228 _c +409 228 _l +409 143 _l +}_e{239 361 _m +229 415 _l +201 404 178 393 162 383 _c +146 372 132 358 122 340 _c +128 336 136 334 145 333 _c +154 331 167 331 183 331 _c +202 331 221 341 239 361 _c +_cl}_e}_d +/Ufeeb{{450 0 0 125 419 555 _sc +419 226 _m +419 206 413 185 401 163 _c +388 137 375 125 363 125 _c +349 125 325 133 289 150 _c +255 166 226 181 204 196 _c +166 174 138 161 121 155 _c +99 147 73 143 44 143 _c +0 143 _l +0 228 _l +44 228 _l +57 228 70 229 82 231 _c +94 233 111 237 133 243 _c +124 249 115 255 107 262 _c +98 270 94 278 94 286 _c +94 291 94 295 94 298 _c +94 300 97 305 101 313 _c +149 397 _l +155 408 161 416 167 420 _c +172 424 179 428 189 431 _c +}_e{167 446 156 457 156 464 _c +156 470 163 487 177 514 _c +182 523 190 537 200 555 _c +220 535 246 506 278 468 _c +318 420 349 378 373 341 _c +403 291 419 253 419 226 _c +247 332 _m +247 346 244 357 238 365 _c +231 374 220 379 206 379 _c +190 379 176 374 163 364 _c +150 354 144 343 144 329 _c +144 315 164 298 204 276 _c +218 285 228 294 235 302 _c +243 312 247 322 247 332 _c +365 220 _m +365 231 355 249 337 273 _c +}_e{325 288 311 304 295 322 _c +295 306 291 291 285 277 _c +278 263 269 252 257 245 _c +277 235 296 225 316 215 _c +332 208 344 205 351 205 _c +355 205 358 206 361 209 _c +363 211 365 215 365 220 _c +_cl}_e}_d +/Ufeec{{394 0 0 -61 428 429 _sc +428 143 _m +250 143 _l +270 133 288 119 303 102 _c +321 79 331 54 331 28 _c +331 3 327 -16 319 -32 _c +309 -51 293 -61 273 -61 _c +233 -61 198 -47 166 -20 _c +126 12 107 54 107 108 _c +108 143 _l +0 143 _l +0 228 _l +124 228 _l +135 258 147 286 161 313 _c +178 345 196 372 215 393 _c +237 417 257 429 277 429 _c +287 429 295 420 303 402 _c +311 384 315 366 315 347 _c +}_e{315 318 307 295 292 277 _c +283 266 257 250 213 228 _c +428 228 _l +428 143 _l +267 311 _m +267 341 260 357 247 357 _c +233 357 216 341 197 311 _c +187 296 174 272 157 238 _c +186 246 211 256 231 269 _c +255 283 267 297 267 311 _c +286 36 _m +286 62 267 86 229 110 _c +198 130 168 142 138 147 _c +138 111 146 82 164 59 _c +184 31 215 17 257 17 _c +265 17 271 18 277 22 _c +283 25 286 30 286 36 _c +_cl}_e}_d +/afii57448{{432 0 59 -76 466 385 _sc +466 172 _m +466 118 446 65 407 12 _c +362 -46 311 -76 253 -76 _c +231 -76 209 -73 187 -68 _c +170 -64 148 -58 122 -50 _c +100 -42 79 -35 59 -28 _c +67 -11 _l +85 -15 104 -19 124 -24 _c +144 -28 162 -31 178 -31 _c +218 -31 255 -21 291 -1 _c +319 14 346 37 374 67 _c +388 82 408 107 434 142 _c +390 142 357 149 335 163 _c +310 179 298 205 298 242 _c +298 275 305 306 321 335 _c +}_e{339 368 363 385 391 385 _c +419 385 439 368 452 335 _c +461 309 466 274 466 228 _c +466 172 _l +436 226 _m +428 256 420 278 410 291 _c +400 301 389 306 377 306 _c +368 306 360 303 354 297 _c +347 291 344 283 344 274 _c +344 258 351 246 365 238 _c +379 230 403 226 436 226 _c +_cl}_e}_d +/Ufeee{432 0 59 -76 466 385 _sc +false CharStrings /afii57448 get exec +}_d +/afii57449{638 0 24 -42 606 462 _sc +false CharStrings /U06cc get exec +}_d +/Ufef0{588 0 52 -109 623 252 _sc +false CharStrings /Ufbfd get exec +}_d +/afii57450{{638 0 24 -207 606 462 _sc +606 391 _m +606 380 605 369 603 358 _c +601 347 599 339 599 335 _c +587 349 574 361 558 370 _c +542 378 526 383 510 383 _c +482 383 452 366 421 333 _c +392 303 378 279 378 261 _c +378 255 381 250 388 247 _c +395 244 407 243 425 243 _c +464 243 _l +487 243 504 242 516 242 _c +527 241 540 239 556 237 _c +572 234 580 222 580 202 _c +580 120 544 57 473 15 _c +407 -23 319 -42 207 -42 _c +149 -42 104 -31 74 -9 _c +40 15 24 51 24 101 _c +24 134 29 169 41 207 _c +49 235 61 265 76 296 _c +}_e{77 298 87 317 107 354 _c +127 346 _l +107 309 91 275 80 243 _c +69 211 64 183 64 159 _c +64 119 77 90 105 70 _c +132 50 171 40 223 40 _c +262 40 307 47 359 63 _c +403 76 443 92 479 111 _c +514 129 532 143 532 152 _c +532 158 530 162 526 164 _c +522 166 515 167 506 167 _c +392 167 _l +378 167 365 172 355 182 _c +344 192 339 206 339 222 _c +339 243 348 273 366 311 _c +385 351 409 385 437 413 _c +469 445 503 462 537 462 _c +558 462 575 455 587 442 _c +599 429 606 412 606 391 _c +422 -92 _m +384 -163 _l +305 -121 _l +341 -51 _l +}_e{422 -92 _l +310 -136 _m +272 -207 _l +193 -166 _l +229 -95 _l +310 -136 _l +_cl}_e}_d +/Ufef2{{588 0 52 -211 623 252 _sc +623 143 _m +537 143 _l +487 143 449 141 424 139 _c +398 136 386 131 386 124 _c +386 112 401 107 432 107 _c +445 107 455 106 463 106 _c +471 105 488 103 515 101 _c +530 99 541 96 547 94 _c +556 88 561 80 561 68 _c +561 8 541 -35 501 -63 _c +457 -93 385 -109 285 -109 _c +215 -109 159 -97 118 -73 _c +74 -47 52 -12 52 34 _c +52 72 62 112 83 154 _c +90 169 110 202 142 252 _c +162 243 _l +}_e{149 221 137 200 125 180 _c +106 144 97 114 97 92 _c +97 52 118 21 160 0 _c +199 -18 253 -28 323 -28 _c +369 -28 410 -24 446 -18 _c +490 -8 512 3 512 18 _c +512 23 509 27 504 30 _c +499 32 491 34 480 34 _c +471 35 457 36 439 37 _c +420 38 408 39 402 39 _c +381 39 366 41 358 47 _c +349 52 345 60 345 71 _c +345 111 356 144 380 170 _c +400 191 426 207 459 217 _c +483 224 509 228 537 228 _c +623 228 _l +623 143 _l +420 -169 _m +375 -211 _l +}_e{320 -176 _l +364 -130 _l +420 -169 _l +319 -169 _m +275 -211 _l +218 -176 _l +264 -130 _l +319 -169 _l +_cl}_e}_d +/Ufef3{244 0 0 -68 278 456 _sc +278 143 _m +0 143 _l +0 228 _l +243 228 _l +243 266 238 296 229 316 _c +223 330 207 350 183 376 _c +221 456 _l +244 426 259 403 265 387 _c +273 361 278 320 278 262 _c +278 143 _l +276 45 _m +238 -24 _l +159 17 _l +195 87 _l +276 45 _l +164 1 _m +126 -68 _l +47 -27 _l +83 42 _l +164 1 _l +_cl}_d +/Ufef4{244 0 0 -68 278 456 _sc +false CharStrings /Ufef3 get exec +}_d +/Ufef5{{544 0 31 79 507 827 _sc +507 659 _m +483 571 _l +455 585 _l +456 541 _l +456 497 450 455 439 414 _c +427 369 408 325 382 281 _c +394 258 402 240 408 227 _c +415 206 419 185 419 165 _c +419 152 418 141 418 133 _c +417 125 416 115 414 104 _c +379 96 342 89 303 85 _c +263 81 225 79 188 79 _c +188 85 189 90 189 95 _c +190 119 194 142 201 164 _c +256 193 303 231 341 279 _c +318 321 301 352 291 370 _c +279 389 260 419 233 461 _c +}_e{223 475 214 486 206 495 _c +195 506 187 512 181 512 _c +176 512 169 509 160 505 _c +154 502 150 501 146 501 _c +139 501 128 508 113 522 _c +99 535 85 551 71 569 _c +59 584 51 597 47 607 _c +43 617 41 629 41 643 _c +41 663 42 678 44 690 _c +48 707 54 716 64 716 _c +77 716 97 703 123 678 _c +145 655 170 625 198 588 _c +222 555 246 519 270 481 _c +320 401 _l +334 377 349 349 365 319 _c +}_e{386 363 401 407 410 453 _c +416 491 420 541 420 602 _c +393 618 _l +393 639 394 658 398 676 _c +402 694 407 710 414 724 _c +425 721 _l +426 707 434 696 449 688 _c +456 683 466 678 478 672 _c +490 666 500 661 507 659 _c +380 184 _m +380 191 378 198 376 206 _c +373 214 367 226 357 244 _c +347 231 333 216 314 200 _c +294 183 275 169 256 158 _c +294 158 322 159 338 161 _c +366 165 380 172 380 184 _c +230 808 _m +221 797 212 789 203 784 _c +189 776 175 772 159 772 _c +143 772 127 774 113 779 _c +}_e{80 789 63 795 62 795 _c +58 795 54 794 50 793 _c +46 792 41 791 37 789 _c +31 795 _l +39 807 45 814 49 817 _c +56 823 66 827 79 827 _c +81 827 99 821 132 811 _c +148 805 161 803 172 803 _c +189 803 206 806 224 814 _c +230 808 _l +_cl}_e}_d +/Ufef6{{601 0 31 118 630 827 _sc +394 398 _m +394 392 393 386 393 382 _c +392 377 390 371 388 365 _c +370 405 343 447 307 491 _c +267 539 236 563 213 563 _c +208 563 203 558 198 550 _c +193 541 188 537 182 537 _c +172 537 158 542 140 554 _c +116 568 97 585 83 604 _c +63 629 54 656 54 685 _c +54 705 60 716 74 716 _c +97 716 134 701 184 671 _c +240 638 286 600 324 556 _c +370 502 394 450 394 398 _c +630 143 _m +566 143 _l +}_e{538 143 516 158 500 188 _c +480 223 471 277 471 350 _c +471 355 470 362 469 371 _c +467 379 467 385 467 388 _c +435 300 408 241 384 209 _c +354 171 313 146 261 134 _c +216 123 140 118 32 118 _c +32 132 _l +119 158 184 180 228 200 _c +297 230 349 266 385 306 _c +428 354 450 411 450 478 _c +450 509 448 538 444 566 _c +440 594 434 622 427 652 _c +443 693 _l +449 709 455 722 461 733 _c +469 686 477 636 485 582 _c +490 544 495 503 500 461 _c +}_e{506 408 512 365 517 333 _c +522 292 531 263 543 246 _c +551 234 558 228 566 228 _c +630 228 _l +630 143 _l +230 808 _m +221 797 212 789 203 784 _c +189 776 175 772 159 772 _c +143 772 127 774 113 779 _c +80 789 63 795 62 795 _c +58 795 54 794 50 793 _c +46 792 41 791 37 789 _c +31 795 _l +39 807 45 814 49 817 _c +56 823 66 827 79 827 _c +81 827 99 821 132 811 _c +148 805 161 803 172 803 _c +}_e{189 803 206 806 224 814 _c +230 808 _l +_cl}_e}_d +/Ufef7{{544 0 19 79 507 880 _sc +507 659 _m +483 571 _l +455 585 _l +456 541 _l +456 497 450 455 439 414 _c +427 369 408 325 382 281 _c +394 258 402 240 408 227 _c +415 206 419 185 419 165 _c +419 152 418 141 418 133 _c +417 125 416 115 414 104 _c +379 96 342 89 303 85 _c +263 81 225 79 188 79 _c +188 85 189 90 189 95 _c +190 119 194 142 201 164 _c +256 193 303 231 341 279 _c +318 321 301 352 291 370 _c +279 389 260 419 233 461 _c +}_e{223 475 214 486 206 495 _c +195 506 187 512 181 512 _c +176 512 169 509 160 505 _c +154 502 150 501 146 501 _c +139 501 128 508 113 522 _c +99 535 85 551 71 569 _c +59 584 51 597 47 607 _c +43 617 41 629 41 643 _c +41 663 42 678 44 690 _c +48 707 54 716 64 716 _c +77 716 97 703 123 678 _c +145 655 170 625 198 588 _c +222 555 246 519 270 481 _c +320 401 _l +334 377 349 349 365 319 _c +}_e{386 363 401 407 410 453 _c +416 491 420 541 420 602 _c +393 618 _l +393 639 394 658 398 676 _c +402 694 407 710 414 724 _c +425 721 _l +426 707 434 696 449 688 _c +456 683 466 678 478 672 _c +490 666 500 661 507 659 _c +380 184 _m +380 191 378 198 376 206 _c +373 214 367 226 357 244 _c +347 231 333 216 314 200 _c +294 183 275 169 256 158 _c +294 158 322 159 338 161 _c +366 165 380 172 380 184 _c +155 800 _m +155 792 150 784 140 778 _c +133 773 123 768 109 764 _c +19 733 _l +}_e{19 747 35 760 67 772 _c +57 777 49 782 44 788 _c +37 794 34 800 34 807 _c +34 817 42 831 60 850 _c +79 870 96 880 111 880 _c +117 880 123 877 128 873 _c +132 869 135 863 135 856 _c +135 851 134 846 132 842 _c +130 837 127 832 124 826 _c +113 835 102 840 91 840 _c +83 840 76 838 69 835 _c +62 832 59 829 59 825 _c +59 820 66 813 81 805 _c +96 796 109 792 121 792 _c +127 792 132 792 136 793 _c +139 793 145 796 155 800 _c +_cl}_e}_d +/Ufef8{{601 0 23 118 630 880 _sc +394 398 _m +394 392 393 386 393 382 _c +392 377 390 371 388 365 _c +370 405 343 447 307 491 _c +267 539 236 563 213 563 _c +208 563 203 558 198 550 _c +193 541 188 537 182 537 _c +172 537 158 542 140 554 _c +116 568 97 585 83 604 _c +63 629 54 656 54 685 _c +54 705 60 716 74 716 _c +97 716 134 701 184 671 _c +240 638 286 600 324 556 _c +370 502 394 450 394 398 _c +630 143 _m +566 143 _l +}_e{538 143 516 158 500 188 _c +480 223 471 277 471 350 _c +471 355 470 362 469 371 _c +467 379 467 385 467 388 _c +435 300 408 241 384 209 _c +354 171 313 146 261 134 _c +216 123 140 118 32 118 _c +32 132 _l +119 158 184 180 228 200 _c +297 230 349 266 385 306 _c +428 354 450 411 450 478 _c +450 509 448 538 444 566 _c +440 594 434 622 427 652 _c +443 693 _l +449 709 455 722 461 733 _c +469 686 477 636 485 582 _c +490 544 495 503 500 461 _c +}_e{506 408 512 365 517 333 _c +522 292 531 263 543 246 _c +551 234 558 228 566 228 _c +630 228 _l +630 143 _l +160 800 _m +160 792 155 784 145 778 _c +138 773 128 768 114 764 _c +23 733 _l +23 747 39 760 72 772 _c +62 777 54 782 49 788 _c +42 794 39 800 39 807 _c +39 817 47 831 65 850 _c +84 870 101 880 116 880 _c +122 880 127 877 132 873 _c +137 869 140 863 140 856 _c +140 851 139 846 137 842 _c +135 837 132 832 128 826 _c +}_e{118 835 107 840 96 840 _c +88 840 81 838 74 835 _c +67 832 64 829 64 825 _c +64 820 71 813 86 805 _c +101 796 114 792 125 792 _c +132 792 137 792 141 793 _c +144 793 150 796 160 800 _c +_cl}_e}_d +/Ufef9{{544 0 41 -110 507 724 _sc +507 659 _m +483 571 _l +455 585 _l +456 541 _l +456 497 450 455 439 414 _c +427 369 408 325 382 281 _c +394 258 402 240 408 227 _c +415 206 419 185 419 165 _c +419 152 418 141 418 133 _c +417 125 416 115 414 104 _c +379 96 342 89 303 85 _c +263 81 225 79 188 79 _c +188 85 189 90 189 95 _c +190 119 194 142 201 164 _c +256 193 303 231 341 279 _c +318 321 301 352 291 370 _c +279 389 260 419 233 461 _c +}_e{223 475 214 486 206 495 _c +195 506 187 512 181 512 _c +176 512 169 509 160 505 _c +154 502 150 501 146 501 _c +139 501 128 508 113 522 _c +99 535 85 551 71 569 _c +59 584 51 597 47 607 _c +43 617 41 629 41 643 _c +41 663 42 678 44 690 _c +48 707 54 716 64 716 _c +77 716 97 703 123 678 _c +145 655 170 625 198 588 _c +222 555 246 519 270 481 _c +320 401 _l +334 377 349 349 365 319 _c +}_e{386 363 401 407 410 453 _c +416 491 420 541 420 602 _c +393 618 _l +393 639 394 658 398 676 _c +402 694 407 710 414 724 _c +425 721 _l +426 707 434 696 449 688 _c +456 683 466 678 478 672 _c +490 666 500 661 507 659 _c +380 184 _m +380 191 378 198 376 206 _c +373 214 367 226 357 244 _c +347 231 333 216 314 200 _c +294 183 275 169 256 158 _c +294 158 322 159 338 161 _c +366 165 380 172 380 184 _c +304 -43 _m +304 -51 299 -58 289 -65 _c +282 -69 272 -73 258 -79 _c +167 -110 _l +}_e{167 -94 183 -81 216 -70 _c +206 -64 198 -59 193 -55 _c +186 -49 183 -42 183 -36 _c +183 -25 191 -11 209 6 _c +228 26 245 36 260 36 _c +266 36 272 33 277 29 _c +281 25 284 19 284 12 _c +284 7 283 3 281 -1 _c +279 -5 276 -11 272 -17 _c +262 -7 251 -3 240 -3 _c +232 -3 225 -4 218 -7 _c +211 -10 208 -14 208 -18 _c +208 -22 215 -29 230 -37 _c +245 -45 258 -50 270 -50 _c +276 -50 281 -49 285 -49 _c +288 -49 294 -47 304 -43 _c +_cl}_e}_d +/Ufefa{{601 0 32 -110 630 733 _sc +394 398 _m +394 392 393 386 393 382 _c +392 377 390 371 388 365 _c +370 405 343 447 307 491 _c +267 539 236 563 213 563 _c +208 563 203 558 198 550 _c +193 541 188 537 182 537 _c +172 537 158 542 140 554 _c +116 568 97 585 83 604 _c +63 629 54 656 54 685 _c +54 705 60 716 74 716 _c +97 716 134 701 184 671 _c +240 638 286 600 324 556 _c +370 502 394 450 394 398 _c +630 143 _m +566 143 _l +}_e{538 143 516 158 500 188 _c +480 223 471 277 471 350 _c +471 355 470 362 469 371 _c +467 379 467 385 467 388 _c +435 300 408 241 384 209 _c +354 171 313 146 261 134 _c +216 123 140 118 32 118 _c +32 132 _l +119 158 184 180 228 200 _c +297 230 349 266 385 306 _c +428 354 450 411 450 478 _c +450 509 448 538 444 566 _c +440 594 434 622 427 652 _c +443 693 _l +449 709 455 722 461 733 _c +469 686 477 636 485 582 _c +490 544 495 503 500 461 _c +}_e{506 408 512 365 517 333 _c +522 292 531 263 543 246 _c +551 234 558 228 566 228 _c +630 228 _l +630 143 _l +227 -43 _m +227 -51 221 -58 211 -65 _c +204 -69 194 -73 181 -79 _c +90 -110 _l +90 -94 106 -81 139 -70 _c +129 -64 121 -59 116 -55 _c +108 -49 105 -42 105 -36 _c +105 -25 113 -11 131 6 _c +150 26 167 36 182 36 _c +188 36 194 33 199 29 _c +203 25 206 19 206 12 _c +206 7 205 3 203 -1 _c +201 -5 198 -11 195 -17 _c +}_e{185 -7 174 -3 162 -3 _c +154 -3 147 -4 140 -7 _c +133 -10 130 -14 130 -18 _c +130 -22 137 -29 153 -37 _c +168 -45 181 -50 192 -50 _c +199 -50 204 -49 207 -49 _c +210 -49 217 -47 227 -43 _c +_cl}_e}_d +/Ufefb{{544 0 41 79 507 724 _sc +507 659 _m +483 571 _l +455 585 _l +456 541 _l +456 497 450 455 439 414 _c +427 369 408 325 382 281 _c +394 258 402 240 408 227 _c +415 206 419 185 419 165 _c +419 152 418 141 418 133 _c +417 125 416 115 414 104 _c +379 96 342 89 303 85 _c +263 81 225 79 188 79 _c +188 85 189 90 189 95 _c +190 119 194 142 201 164 _c +256 193 303 231 341 279 _c +318 321 301 352 291 370 _c +279 389 260 419 233 461 _c +}_e{223 475 214 486 206 495 _c +195 506 187 512 181 512 _c +176 512 169 509 160 505 _c +154 502 150 501 146 501 _c +139 501 128 508 113 522 _c +99 535 85 551 71 569 _c +59 584 51 597 47 607 _c +43 617 41 629 41 643 _c +41 663 42 678 44 690 _c +48 707 54 716 64 716 _c +77 716 97 703 123 678 _c +145 655 170 625 198 588 _c +222 555 246 519 270 481 _c +320 401 _l +334 377 349 349 365 319 _c +}_e{386 363 401 407 410 453 _c +416 491 420 541 420 602 _c +393 618 _l +393 639 394 658 398 676 _c +402 694 407 710 414 724 _c +425 721 _l +426 707 434 696 449 688 _c +456 683 466 678 478 672 _c +490 666 500 661 507 659 _c +380 184 _m +380 191 378 198 376 206 _c +373 214 367 226 357 244 _c +347 231 333 216 314 200 _c +294 183 275 169 256 158 _c +294 158 322 159 338 161 _c +366 165 380 172 380 184 _c +_cl}_e}_d +/Ufefc{{601 0 32 118 630 733 _sc +394 398 _m +394 392 393 386 393 382 _c +392 377 390 371 388 365 _c +370 405 343 447 307 491 _c +267 539 236 563 213 563 _c +208 563 203 558 198 550 _c +193 541 188 537 182 537 _c +172 537 158 542 140 554 _c +116 568 97 585 83 604 _c +63 629 54 656 54 685 _c +54 705 60 716 74 716 _c +97 716 134 701 184 671 _c +240 638 286 600 324 556 _c +370 502 394 450 394 398 _c +630 143 _m +566 143 _l +}_e{538 143 516 158 500 188 _c +480 223 471 277 471 350 _c +471 355 470 362 469 371 _c +467 379 467 385 467 388 _c +435 300 408 241 384 209 _c +354 171 313 146 261 134 _c +216 123 140 118 32 118 _c +32 132 _l +119 158 184 180 228 200 _c +297 230 349 266 385 306 _c +428 354 450 411 450 478 _c +450 509 448 538 444 566 _c +440 594 434 622 427 652 _c +443 693 _l +449 709 455 722 461 733 _c +469 686 477 636 485 582 _c +490 544 495 503 500 461 _c +}_e{506 408 512 365 517 333 _c +522 292 531 263 543 246 _c +551 234 558 228 566 228 _c +630 228 _l +630 143 _l +_cl}_e}_d +/G03fd{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G03fe{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G03ff{201 0 34 673 201 774 _sc +false CharStrings /afii57454 get exec +}_d +/G0400{201 0 34 605 201 780 _sc +false CharStrings /afii57451 get exec +}_d +/G0401{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0402{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0403{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0404{165 0 34 605 165 756 _sc +false CharStrings /afii57458 get exec +}_d +/G0405{211 0 34 605 211 762 _sc +false CharStrings /afii57457 get exec +}_d +/G0406{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0407{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0408{209 0 35 605 209 817 _sc +false CharStrings /afii57455 get exec +}_d +/G0409{237 0 34 605 237 794 _sc +false CharStrings /afii57452 get exec +}_d +/G040a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G040b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G040c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G040d{211 0 34 605 211 840 _sc +false CharStrings /Ufc60 get exec +}_d +/G040e{211 0 34 605 211 917 _sc +false CharStrings /Ue818 get exec +}_d +/G040f{211 0 34 605 211 853 _sc +false CharStrings /Ufc62 get exec +}_d +/G0410{211 0 34 605 211 905 _sc +false CharStrings /Ufc5f get exec +}_d +/G0411{211 0 31 606 211 897 _sc +false CharStrings /Ufc61 get exec +}_d +/G0412{226 0 23 605 226 933 _sc +false CharStrings /Ufc5e get exec +}_d +/G0413{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0414{201 0 34 -20 201 80 _sc +false CharStrings /afii57456 get exec +}_d +/G0415{201 0 34 -129 201 44 _sc +false CharStrings /afii57453 get exec +}_d +/G0416{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0417{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0418{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0419{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G041f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0420{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0421{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0422{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0423{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0424{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0425{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0426{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0427{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0428{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0429{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G042f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0430{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0431{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0432{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0433{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0434{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0435{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0436{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0437{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0438{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0439{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G043f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0440{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0441{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0442{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0443{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0444{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0445{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0446{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0447{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0448{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0449{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G044a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G044b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G044c{{319 0 99 137 223 714 _sc +223 639 _m +223 617 218 587 210 549 _c +196 485 188 449 187 440 _c +178 392 174 346 174 302 _c +146 302 _l +146 343 142 388 134 438 _c +130 457 123 496 111 556 _c +103 596 99 624 99 639 _c +99 659 104 676 116 691 _c +127 706 142 714 160 714 _c +178 714 193 706 205 691 _c +217 676 223 659 223 639 _c +220 196 _m +220 180 214 166 202 154 _c +190 142 176 137 160 137 _c +143 137 129 142 117 154 _c +105 166 100 180 100 196 _c +100 212 105 227 117 239 _c +129 251 143 257 161 257 _c +}_e{177 257 190 251 202 239 _c +214 227 220 212 220 196 _c +_cl}_e}_d +/G044d{319 0 97 137 226 267 _sc +226 202 _m +226 184 219 168 207 156 _c +194 143 179 137 161 137 _c +143 137 127 143 115 156 _c +103 168 97 184 97 202 _c +97 219 103 234 116 247 _c +128 260 143 267 161 267 _c +179 267 194 260 207 248 _c +219 235 226 220 226 202 _c +_cl}_d +/G044e{319 0 97 137 225 542 _sc +225 478 _m +225 459 218 443 206 431 _c +193 418 178 412 160 412 _c +142 412 127 418 115 431 _c +103 443 97 459 97 478 _c +97 495 103 510 115 523 _c +127 535 142 542 160 542 _c +178 542 193 535 206 523 _c +218 510 225 495 225 478 _c +225 202 _m +225 184 218 168 206 156 _c +193 143 178 137 160 137 _c +142 137 127 143 115 156 _c +103 168 97 184 97 202 _c +97 219 103 234 115 247 _c +127 260 142 267 160 267 _c +178 267 193 260 206 248 _c +218 235 225 220 225 202 _c +_cl}_d +/G044f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0450{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0451{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0452{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0453{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0454{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0455{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0456{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0457{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0458{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0459{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045a{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045b{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045c{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045d{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045e{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G045f{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0460{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0461{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0462{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0463{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0464{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0465{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0466{750 0 125 0 625 625 _sc +125 0 _m +125 625 _l +625 625 _l +625 0 _l +125 0 _l +141 16 _m +609 16 _l +609 609 _l +141 609 _l +141 16 _l +_cl}_d +/G0467{125 0 0 143 159 228 _sc +159 143 _m +0 143 _l +0 228 _l +159 228 _l +159 143 _l +_cl}_d +/G0468{1000 0 0 143 1034 228 _sc +1034 143 _m +0 143 _l +0 228 _l +1034 228 _l +1034 143 _l +_cl}_d +/G0469{2000 0 0 143 2028 228 _sc +2028 143 _m +0 143 _l +0 228 _l +2028 228 _l +2028 143 _l +_cl}_d +/Ohorn{{857 0 48 -11 834 729 _sc +146 347 _m +146 262 169 194 216 143 _c +260 93 318 69 390 69 _c +463 69 522 94 566 144 _c +612 196 635 267 635 357 _c +635 477 596 562 520 611 _c +481 635 438 647 392 647 _c +319 647 261 624 219 578 _c +170 526 146 449 146 347 _c +740 622 _m +740 724 _l +834 724 _l +834 643 _l +834 603 827 572 815 550 _c +798 520 766 493 720 469 _c +728 433 733 396 733 357 _c +}_e{733 284 718 219 689 162 _c +659 104 618 61 564 32 _c +510 3 453 -11 391 -11 _c +323 -11 263 5 210 37 _c +156 69 116 113 89 169 _c +61 225 48 285 48 349 _c +48 465 80 558 144 628 _c +206 695 288 729 391 729 _c +465 729 530 708 587 668 _c +644 628 685 574 709 506 _c +738 522 759 539 771 558 _c +781 572 786 594 786 622 _c +740 622 _l +_cl}_e}_d +/ohorn{{656 0 33 -11 625 531 _sc +124 259 _m +124 195 138 145 167 110 _c +194 77 230 61 276 61 _c +322 61 358 77 385 110 _c +414 146 429 196 429 262 _c +429 324 414 372 385 408 _c +357 441 321 458 276 458 _c +230 458 194 441 167 408 _c +138 372 124 323 124 259 _c +531 429 _m +531 531 _l +625 531 _l +625 451 _l +625 410 618 379 606 358 _c +590 330 561 304 519 281 _c +519 276 519 271 519 267 _c +}_e{519 145 480 63 402 20 _c +363 0 321 -11 276 -11 _c +202 -11 143 12 100 58 _c +55 106 33 173 33 259 _c +33 355 59 426 113 473 _c +157 511 212 530 276 530 _c +347 530 405 506 451 460 _c +485 424 506 379 515 323 _c +537 337 552 351 562 366 _c +572 380 577 401 577 429 _c +531 429 _l +_cl}_e}_d +/Uhorn{{854 0 79 -11 813 716 _sc +719 614 _m +719 716 _l +813 716 _l +813 635 _l +813 584 807 548 796 528 _c +764 472 712 442 642 439 _c +642 302 _l +642 228 633 171 617 131 _c +600 88 571 54 529 28 _c +486 2 430 -11 362 -11 _c +228 -11 143 33 106 123 _c +88 166 79 226 79 302 _c +79 716 _l +173 716 _l +173 303 _l +173 241 179 195 191 165 _c +202 136 222 113 250 97 _c +278 81 312 73 354 73 _c +}_e{424 73 474 89 502 121 _c +532 153 547 214 547 303 _c +547 716 _l +642 716 _l +642 475 _l +692 480 729 500 752 536 _c +760 549 765 575 765 614 _c +719 614 _l +_cl}_e}_d +/uhorn{{669 0 64 -11 639 519 _sc +545 417 _m +545 519 _l +639 519 _l +639 438 _l +639 386 633 351 622 331 _c +592 279 546 249 484 243 _c +484 0 _l +406 0 _l +406 76 _l +365 18 310 -11 241 -11 _c +211 -11 182 -5 156 6 _c +129 17 109 32 96 50 _c +83 68 74 89 69 115 _c +65 133 64 160 64 197 _c +64 519 _l +152 519 _l +152 231 _l +152 184 153 153 157 138 _c +168 88 202 64 259 64 _c +285 64 310 70 333 84 _c +356 98 372 116 382 139 _c +391 162 396 196 396 241 _c +396 519 _l +484 519 _l +}_e{484 280 _l +525 287 556 306 577 338 _c +586 352 591 378 591 417 _c +545 417 _l +_cl}_e}_d +/G046e{0 0 -267 819 -90 896 _sc +-90 819 _m +-154 819 _l +-267 896 _l +-156 896 _l +-90 819 _l +_cl}_d +/G046f{0 0 -476 819 -300 896 _sc +-300 819 _m +-363 819 _l +-476 896 _l +-366 896 _l +-300 819 _l +_cl}_d +/G0470{0 0 -418 755 -234 892 _sc +-234 755 _m +-305 755 _l +-418 892 _l +-300 892 _l +-234 755 _l +_cl}_d +/Uf006{0 0 -208 819 -32 896 _sc +-142 896 _m +-32 896 _l +-145 819 _l +-208 819 _l +-142 896 _l +_cl}_d +/Uf007{0 0 -394 819 -218 896 _sc +-328 896 _m +-218 896 _l +-331 819 _l +-394 819 _l +-328 896 _l +_cl}_d +/Uf009{0 0 -318 755 -134 892 _sc +-252 892 _m +-134 892 _l +-247 755 _l +-318 755 _l +-252 892 _l +_cl}_d +/hookabovecomb{0 0 -229 738 -16 896 _sc +-133 796 _m +-125 798 _l +-108 802 -99 809 -99 818 _c +-99 826 -103 832 -113 837 _c +-126 845 -148 849 -178 849 _c +-188 849 -203 848 -224 847 _c +-229 893 _l +-216 895 -193 896 -159 896 _c +-119 896 -86 889 -61 876 _c +-33 862 -18 845 -18 823 _c +-16 790 -46 770 -106 763 _c +-106 738 _l +-161 738 _l +-161 793 _l +-133 796 _l +_cl}_d +/Uf010{0 0 -243 803 -45 896 _sc +-156 831 _m +-147 833 _l +-131 836 -123 841 -123 849 _c +-122 853 -126 856 -135 860 _c +-147 864 -167 866 -195 866 _c +-197 866 -203 865 -213 865 _c +-223 864 -231 863 -237 862 _c +-243 894 _l +-231 895 -209 896 -177 896 _c +-91 896 -48 881 -47 852 _c +-45 831 -73 818 -129 814 _c +-129 803 _l +-175 803 _l +-175 830 _l +-156 831 _l +_cl}_d +/Uf013{0 0 -366 738 -152 896 _sc +-270 796 _m +-262 798 _l +-244 802 -236 809 -236 818 _c +-235 826 -239 832 -249 837 _c +-263 845 -284 849 -314 849 _c +-324 849 -340 848 -360 847 _c +-366 893 _l +-353 895 -329 896 -295 896 _c +-255 896 -222 889 -197 876 _c +-169 862 -154 843 -154 819 _c +-152 789 -182 770 -243 763 _c +-243 738 _l +-298 738 _l +-298 793 _l +-270 796 _l +_cl}_d +/Uf011{0 0 -449 803 -251 896 _sc +-362 831 _m +-353 833 _l +-337 836 -329 841 -329 849 _c +-328 853 -332 856 -341 860 _c +-353 864 -373 866 -401 866 _c +-403 866 -410 865 -420 865 _c +-430 864 -437 863 -443 862 _c +-449 894 _l +-437 895 -415 896 -383 896 _c +-297 896 -254 881 -253 852 _c +-251 831 -279 818 -335 814 _c +-335 803 _l +-381 803 _l +-381 830 _l +-362 831 _l +_cl}_d +/Uf01c{0 0 -297 786 29 898 _sc +-297 786 _m +-297 818 -287 845 -269 866 _c +-251 886 -227 897 -198 897 _c +-177 897 -149 888 -115 871 _c +-95 861 -80 856 -69 856 _c +-49 856 -38 870 -34 898 _c +29 898 _l +27 824 -4 787 -66 787 _c +-86 787 -113 796 -147 814 _c +-169 826 -185 832 -195 832 _c +-220 832 -232 816 -232 786 _c +-297 786 _l +_cl}_d +/Uf015{0 0 -504 811 -177 896 _sc +-504 811 _m +-504 837 -494 858 -476 873 _c +-458 887 -434 895 -405 895 _c +-384 895 -356 888 -322 874 _c +-302 866 -282 862 -260 862 _c +-240 862 -228 873 -225 896 _c +-177 896 _l +-179 840 -211 812 -273 812 _c +-293 812 -320 819 -354 833 _c +-376 843 -397 848 -419 848 _c +-444 848 -457 835 -457 811 _c +-504 811 _l +_cl}_d +/tildecomb{0 0 -443 755 -116 868 _sc +-443 755 _m +-443 788 -433 815 -415 836 _c +-397 856 -373 867 -344 867 _c +-323 867 -295 858 -261 840 _c +-241 830 -226 826 -215 826 _c +-195 826 -184 840 -180 868 _c +-116 868 _l +-118 794 -150 757 -212 757 _c +-232 757 -259 766 -293 784 _c +-315 796 -331 802 -341 802 _c +-366 802 -378 786 -378 755 _c +-443 755 _l +_cl}_d +/G047b{0 0 -145 729 139 800 _sc +-122 767 _m +-132 777 -139 788 -145 800 _c +-107 800 _l +-99 790 -85 782 -66 776 _c +-45 770 -24 767 -3 767 _c +17 767 38 770 60 776 _c +78 782 92 790 100 800 _c +139 800 _l +129 776 112 759 88 747 _c +62 735 32 729 -3 729 _c +-14 729 -25 729 -36 730 _c +-74 734 -102 747 -122 767 _c +_cl}_d +/G047c{0 0 -145 729 153 789 _sc +3 761 _m +-60 729 _l +-145 729 _l +-43 789 _l +51 789 _l +153 729 _l +67 729 _l +3 761 _l +_cl}_d +/Uf02c{0 0 -123 -158 -23 -58 _sc +-123 -158 _m +-123 -58 _l +-23 -58 _l +-23 -158 _l +-123 -158 _l +_cl}_d +/dong{{513 0 78 120 442 716 _sc +331 631 _m +285 631 _l +285 676 _l +331 676 _l +331 716 _l +392 716 _l +392 676 _l +442 676 _l +442 631 _l +392 631 _l +392 216 _l +335 216 _l +335 261 _l +312 225 278 207 234 207 _c +172 207 126 237 98 298 _c +84 326 78 359 78 396 _c +78 476 102 531 150 563 _c +174 578 201 586 231 586 _c +273 586 307 569 331 536 _c +331 631 _l +141 396 _m +}_e{141 354 150 320 168 295 _c +186 270 210 258 240 258 _c +269 258 292 270 310 294 _c +327 318 336 350 336 391 _c +336 436 327 471 309 497 _c +291 523 267 536 237 536 _c +207 536 183 523 166 499 _c +149 474 141 440 141 396 _c +442 120 _m +78 120 _l +78 165 _l +442 165 _l +442 120 _l +_cl}_e}_d +/onethird{{834 0 52 -27 823 728 _sc +111 -27 _m +649 728 _l +726 728 _l +188 -27 _l +111 -27 _l +162 358 _m +162 628 _l +128 602 92 583 52 573 _c +52 633 _l +102 649 145 680 180 725 _c +232 725 _l +232 358 _l +162 358 _l +524 82 _m +595 89 _l +601 69 610 56 621 49 _c +635 39 651 34 670 34 _c +693 34 712 40 726 53 _c +740 65 747 81 747 99 _c +747 135 721 153 669 153 _c +667 153 662 152 656 152 _c +649 151 645 151 643 151 _c +653 205 _l +}_e{703 204 729 221 729 255 _c +729 283 709 298 671 298 _c +638 298 615 281 602 249 _c +532 260 _l +545 294 562 318 582 332 _c +602 346 632 353 672 353 _c +761 353 806 322 806 261 _c +806 222 783 196 739 183 _c +795 169 823 138 823 90 _c +823 58 810 31 785 11 _c +757 -11 721 -22 675 -22 _c +588 -22 538 12 524 82 _c +_cl}_e}_d +/twothirds{{834 0 12 -27 818 728 _sc +111 -27 _m +649 728 _l +726 728 _l +188 -27 _l +111 -27 _l +519 82 _m +590 89 _l +596 69 605 56 616 49 _c +630 39 646 34 666 34 _c +688 34 707 40 721 53 _c +735 65 742 81 742 99 _c +742 135 716 153 665 153 _c +662 153 657 152 651 152 _c +644 151 640 151 638 151 _c +648 205 _l +699 204 725 221 725 255 _c +725 283 705 298 667 298 _c +633 298 610 281 597 249 _c +527 260 _l +540 294 557 318 577 332 _c +597 346 627 353 667 353 _c +}_e{756 353 801 322 801 261 _c +801 222 778 196 734 183 _c +790 169 818 138 818 90 _c +818 58 805 31 780 11 _c +752 -11 716 -22 670 -22 _c +584 -22 533 12 519 82 _c +12 358 _m +16 400 58 449 136 507 _c +183 541 211 562 220 572 _c +232 585 238 599 238 613 _c +238 649 215 667 170 667 _c +148 667 132 663 122 655 _c +111 647 102 633 96 611 _c +22 619 _l +40 689 90 725 172 725 _c +218 725 254 715 280 696 _c +}_e{302 678 314 654 314 625 _c +314 597 304 572 286 548 _c +272 530 238 502 186 464 _c +159 445 140 429 128 417 _c +316 417 _l +316 358 _l +12 358 _l +_cl}_e}_d +/Uf008{0 0 -160 583 22 720 _sc +-94 720 _m +22 720 _l +-89 583 _l +-160 583 _l +-94 720 _l +_cl}_d +/G0482{0 0 -318 583 -134 720 _sc +-252 720 _m +-134 720 _l +-247 583 _l +-318 583 _l +-252 720 _l +_cl}_d +/G0483{0 0 -245 583 -62 720 _sc +-62 583 _m +-132 583 _l +-245 720 _l +-127 720 _l +-62 583 _l +_cl}_d +/Uf00f{0 0 -418 583 -234 720 _sc +-234 583 _m +-305 583 _l +-418 720 _l +-300 720 _l +-234 583 _l +_cl}_d +/Uf012{0 0 -208 583 4 756 _sc +-113 645 _m +-105 647 _l +-87 653 -79 662 -79 674 _c +-78 682 -82 688 -92 693 _c +-106 701 -127 705 -157 705 _c +-167 705 -182 704 -203 703 _c +-208 752 _l +-195 754 -172 756 -138 756 _c +-98 755 -65 748 -40 736 _c +-12 722 1 703 2 679 _c +3 639 -26 615 -86 607 _c +-86 583 _l +-141 583 _l +-141 642 _l +-113 645 _l +_cl}_d +/Uf014{0 0 -366 583 -152 756 _sc +-270 645 _m +-262 647 _l +-244 653 -236 662 -236 674 _c +-235 682 -239 688 -249 693 _c +-263 701 -284 705 -314 705 _c +-324 705 -340 704 -360 703 _c +-366 752 _l +-353 754 -329 756 -295 756 _c +-255 755 -222 748 -197 736 _c +-169 722 -154 703 -154 679 _c +-152 639 -182 615 -243 607 _c +-243 583 _l +-298 583 _l +-298 642 _l +-270 645 _l +_cl}_d +/Uf016{0 0 -526 786 -199 898 _sc +-526 786 _m +-526 818 -516 845 -498 866 _c +-480 886 -456 897 -427 897 _c +-406 897 -378 888 -344 871 _c +-324 861 -309 856 -298 856 _c +-278 856 -267 870 -263 898 _c +-199 898 _l +-201 824 -233 787 -295 787 _c +-315 787 -342 796 -376 814 _c +-398 826 -414 832 -424 832 _c +-449 832 -461 816 -461 786 _c +-526 786 _l +_cl}_d +/Uf017{0 0 -630 786 -303 898 _sc +-629 786 _m +-629 818 -620 845 -602 866 _c +-584 886 -560 897 -530 897 _c +-510 897 -482 888 -448 871 _c +-428 861 -413 856 -402 856 _c +-382 856 -370 870 -366 898 _c +-303 898 _l +-305 824 -336 787 -398 787 _c +-418 787 -445 796 -479 814 _c +-501 826 -517 832 -527 832 _c +-552 832 -564 816 -564 786 _c +-629 786 _l +_cl}_d +/Uf018{0 0 -664 786 -336 898 _sc +-663 786 _m +-663 818 -654 845 -636 866 _c +-617 886 -593 897 -564 897 _c +-544 897 -516 888 -481 871 _c +-462 861 -447 856 -436 856 _c +-416 856 -404 870 -400 898 _c +-336 898 _l +-338 824 -370 787 -432 787 _c +-452 787 -479 796 -513 814 _c +-535 826 -551 832 -561 832 _c +-586 832 -598 816 -598 786 _c +-663 786 _l +_cl}_d +/Uf019{0 0 -443 595 -116 708 _sc +-443 595 _m +-443 629 -433 656 -415 676 _c +-396 696 -372 707 -344 707 _c +-323 707 -295 698 -261 680 _c +-241 670 -226 666 -215 666 _c +-205 666 -197 668 -191 674 _c +-185 680 -182 691 -180 708 _c +-116 708 _l +-117 670 -126 642 -144 624 _c +-162 606 -184 597 -212 597 _c +-232 597 -259 606 -293 624 _c +-315 636 -331 642 -341 642 _c +-351 642 -360 638 -368 630 _c +-374 622 -378 610 -378 595 _c +-443 595 _l +_cl}_d +/Uf01a{0 0 -541 595 -214 708 _sc +-541 595 _m +-541 629 -531 656 -513 676 _c +-494 696 -470 707 -441 707 _c +-421 707 -393 698 -359 680 _c +-339 670 -324 666 -313 666 _c +-302 666 -294 668 -289 674 _c +-283 680 -279 691 -277 708 _c +-214 708 _l +-214 670 -224 642 -242 624 _c +-260 606 -282 597 -310 597 _c +-330 597 -357 606 -391 624 _c +-412 636 -428 642 -438 642 _c +-449 642 -458 638 -465 630 _c +-472 622 -476 610 -476 595 _c +-541 595 _l +_cl}_d +/Uf01b{0 0 -572 595 -245 708 _sc +-572 595 _m +-572 629 -562 656 -544 676 _c +-525 696 -501 707 -473 707 _c +-452 707 -424 698 -390 680 _c +-370 670 -355 666 -344 666 _c +-334 666 -326 668 -320 674 _c +-314 680 -311 691 -309 708 _c +-245 708 _l +-246 670 -255 642 -273 624 _c +-291 606 -313 597 -341 597 _c +-361 597 -388 606 -422 624 _c +-444 636 -460 642 -470 642 _c +-480 642 -489 638 -497 630 _c +-503 622 -507 610 -507 595 _c +-572 595 _l +_cl}_d +/Uf01e{0 0 -381 -158 -281 -58 _sc +gsave -257 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf01f{0 0 -438 -158 -338 -58 _sc +gsave -314 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf020{0 0 -516 -158 -416 -58 _sc +gsave -392 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf021{0 0 -405 -158 -305 -58 _sc +gsave -281 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf022{0 0 -550 -158 -450 -58 _sc +gsave -426 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/gravecomb{0 0 -260 755 -76 892 _sc +-76 755 _m +-147 755 _l +-260 892 _l +-142 892 _l +-76 755 _l +_cl}_d +/acutecomb{0 0 -185 755 -1 892 _sc +-119 892 _m +-1 892 _l +-114 755 _l +-185 755 _l +-119 892 _l +_cl}_d +/Uf01d{0 0 -279 595 47 708 _sc +-279 595 _m +-279 629 -269 656 -251 676 _c +-232 696 -208 707 -180 707 _c +-159 707 -131 698 -97 680 _c +-77 670 -62 666 -51 666 _c +-41 666 -33 668 -27 674 _c +-21 680 -18 691 -16 708 _c +47 708 _l +45 670 36 642 19 624 _c +1 606 -20 597 -48 597 _c +-68 597 -95 606 -129 624 _c +-151 636 -167 642 -177 642 _c +-187 642 -196 638 -204 630 _c +-210 622 -214 610 -214 595 _c +-279 595 _l +_cl}_d +/dotbelowcomb{0 0 -381 -158 -281 -58 _sc +gsave -257 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf023{0 0 -328 -158 -228 -58 _sc +gsave -204 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf029{0 0 -191 -158 -91 -58 _sc +gsave -67 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf02a{0 0 -157 -158 -57 -58 _sc +gsave 91 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf02b{0 0 -384 -158 -284 -58 _sc +gsave -260 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf024{0 0 -321 -158 -221 -58 _sc +gsave -197 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf025{0 0 -331 -158 -231 -58 _sc +gsave -207 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf026{0 0 -429 -158 -329 -58 _sc +gsave -305 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf027{0 0 -364 -158 -264 -58 _sc +gsave -240 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf028{0 0 -478 -158 -377 -58 _sc +gsave -353 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/Uf02d{0 0 -490 811 -163 896 _sc +-490 811 _m +-490 837 -480 858 -462 873 _c +-444 887 -420 895 -391 895 _c +-370 895 -342 888 -308 874 _c +-288 866 -268 862 -246 862 _c +-226 862 -214 873 -210 896 _c +-163 896 _l +-165 840 -197 812 -259 812 _c +-279 812 -306 819 -340 833 _c +-362 843 -383 848 -404 848 _c +-430 848 -442 835 -442 811 _c +-490 811 _l +_cl}_d +/Uf02e{0 0 -490 786 -163 898 _sc +-490 786 _m +-490 818 -480 845 -462 866 _c +-444 886 -420 897 -391 897 _c +-370 897 -342 888 -308 871 _c +-288 861 -273 856 -262 856 _c +-242 856 -230 870 -227 898 _c +-163 898 _l +-165 824 -197 787 -259 787 _c +-279 787 -306 796 -340 814 _c +-362 826 -378 832 -388 832 _c +-413 832 -425 816 -425 786 _c +-490 786 _l +_cl}_d +/Uf02f{0 0 -551 811 -224 896 _sc +-550 811 _m +-550 837 -541 858 -523 873 _c +-505 887 -481 895 -451 895 _c +-431 895 -403 888 -369 874 _c +-349 866 -329 862 -307 862 _c +-287 862 -275 873 -271 896 _c +-224 896 _l +-226 840 -257 812 -319 812 _c +-339 812 -366 819 -400 833 _c +-422 843 -444 848 -466 848 _c +-491 848 -503 835 -503 811 _c +-550 811 _l +_cl}_d +/Uf030{0 0 -551 786 -224 898 _sc +-550 786 _m +-550 818 -541 845 -523 866 _c +-505 886 -481 897 -451 897 _c +-431 897 -403 888 -369 871 _c +-349 861 -334 856 -323 856 _c +-303 856 -291 870 -287 898 _c +-224 898 _l +-226 824 -257 787 -319 787 _c +-339 787 -366 796 -400 814 _c +-422 826 -438 832 -448 832 _c +-473 832 -485 816 -485 786 _c +-550 786 _l +_cl}_d +/Uf031{222 0 66 0 154 519 _sc +66 0 _m +66 519 _l +154 519 _l +154 0 _l +66 0 _l +_cl}_d +/U1ea0{667 0 0 -158 668 716 _sc +false CharStrings /A get exec +gsave 400 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ea1{556 0 36 -158 514 530 _sc +false CharStrings /a get exec +gsave 348 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ea2{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 459 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ea3{556 0 36 -11 514 756 _sc +false CharStrings /a get exec +gsave 400 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ea4{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 319 12 translate +false CharStrings /G047c get exec +grestore gsave 484 0 translate +false CharStrings /Uf006 get exec +grestore }_d +/U1ea5{556 0 36 -11 514 892 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore gsave 412 0 translate +false CharStrings /acutecomb get exec +grestore }_d +/U1ea6{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 319 12 translate +false CharStrings /G047c get exec +grestore gsave 461 0 translate +false CharStrings /G046e get exec +grestore }_d +/U1ea7{556 0 36 -11 514 892 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore gsave 397 0 translate +false CharStrings /gravecomb get exec +grestore }_d +/U1ea8{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 319 12 translate +false CharStrings /G047c get exec +grestore gsave 479 0 translate +false CharStrings /Uf010 get exec +grestore }_d +/U1ea9{556 0 36 -11 514 896 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore gsave 410 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1eaa{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 319 12 translate +false CharStrings /G047c get exec +grestore gsave 654 0 translate +false CharStrings /Uf02d get exec +grestore }_d +/U1eab{556 0 36 -11 514 868 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore gsave 557 0 translate +false CharStrings /tildecomb get exec +grestore }_d +/U1eac{667 0 0 -158 668 801 _sc +false CharStrings /A get exec +gsave 319 12 translate +false CharStrings /G047c get exec +grestore gsave 400 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ead{556 0 36 -158 514 720 _sc +false CharStrings /a get exec +gsave 108 0 translate +false CharStrings /circumflex get exec +grestore gsave 348 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eae{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 333 0 translate +false CharStrings /G047b get exec +grestore gsave 484 0 translate +false CharStrings /Uf006 get exec +grestore }_d +/U1eaf{556 0 36 -11 514 892 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore gsave 410 0 translate +false CharStrings /acutecomb get exec +grestore }_d +/U1eb0{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 333 0 translate +false CharStrings /G047b get exec +grestore gsave 461 0 translate +false CharStrings /G046e get exec +grestore }_d +/U1eb1{556 0 36 -11 514 892 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore gsave 420 0 translate +false CharStrings /gravecomb get exec +grestore }_d +/U1eb2{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 333 0 translate +false CharStrings /G047b get exec +grestore gsave 479 0 translate +false CharStrings /Uf010 get exec +grestore }_d +/U1eb3{556 0 36 -11 514 896 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore gsave 420 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1eb4{667 0 0 0 668 896 _sc +false CharStrings /A get exec +gsave 333 0 translate +false CharStrings /G047b get exec +grestore gsave 664 0 translate +false CharStrings /Uf02d get exec +grestore }_d +/U1eb5{556 0 36 -11 514 868 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore gsave 576 0 translate +false CharStrings /tildecomb get exec +grestore }_d +/U1eb6{667 0 0 -158 668 800 _sc +false CharStrings /A get exec +gsave 333 0 translate +false CharStrings /G047b get exec +grestore gsave 400 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eb7{556 0 36 -158 514 715 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /breve get exec +grestore gsave 348 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eb8{667 0 79 -158 613 716 _sc +false CharStrings /E get exec +gsave 420 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eb9{556 0 37 -158 515 530 _sc +false CharStrings /e get exec +gsave 356 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eba{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 479 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ebb{556 0 37 -11 515 756 _sc +false CharStrings /e get exec +gsave 396 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ebc{667 0 79 0 613 885 _sc +false CharStrings /E get exec +gsave 186 177 translate +false CharStrings /tilde get exec +grestore }_d +/U1ebd{556 0 37 -11 515 708 _sc +false CharStrings /e get exec +gsave 117 0 translate +false CharStrings /tilde get exec +grestore }_d +/U1ebe{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 333 12 translate +false CharStrings /G047c get exec +grestore gsave 499 0 translate +false CharStrings /Uf006 get exec +grestore }_d +/U1ebf{556 0 37 -11 515 892 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 412 0 translate +false CharStrings /acutecomb get exec +grestore }_d +/U1ec0{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 333 12 translate +false CharStrings /G047c get exec +grestore gsave 476 0 translate +false CharStrings /G046e get exec +grestore }_d +/U1ec1{556 0 37 -11 515 892 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 397 0 translate +false CharStrings /gravecomb get exec +grestore }_d +/U1ec2{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 333 12 translate +false CharStrings /G047c get exec +grestore gsave 488 0 translate +false CharStrings /Uf010 get exec +grestore }_d +/U1ec3{556 0 37 -11 515 896 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 410 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ec4{667 0 79 0 613 896 _sc +false CharStrings /E get exec +gsave 333 12 translate +false CharStrings /G047c get exec +grestore gsave 664 0 translate +false CharStrings /Uf02d get exec +grestore }_d +/U1ec5{556 0 37 -11 515 868 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 557 0 translate +false CharStrings /tildecomb get exec +grestore }_d +/U1ec6{667 0 79 -158 613 801 _sc +false CharStrings /E get exec +gsave 333 12 translate +false CharStrings /G047c get exec +grestore gsave 420 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ec7{556 0 37 -158 515 720 _sc +false CharStrings /e get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 356 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ec8{278 0 48 0 262 896 _sc +false CharStrings /I get exec +gsave 278 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ec9{222 0 15 0 229 756 _sc +false CharStrings /Uf031 get exec +gsave 225 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1eca{278 0 91 -158 191 716 _sc +false CharStrings /I get exec +gsave 215 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ecb{222 0 61 -158 161 716 _sc +false CharStrings /i get exec +gsave 185 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ecc{778 0 48 -158 733 729 _sc +false CharStrings /O get exec +gsave 459 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ecd{556 0 33 -158 519 530 _sc +false CharStrings /o get exec +gsave 347 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ece{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 527 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ecf{556 0 33 -11 519 756 _sc +false CharStrings /o get exec +gsave 396 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ed0{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 389 12 translate +false CharStrings /G047c get exec +grestore gsave 554 0 translate +false CharStrings /Uf006 get exec +grestore }_d +/U1ed1{556 0 33 -11 519 892 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 413 0 translate +false CharStrings /acutecomb get exec +grestore }_d +/U1ed2{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 389 12 translate +false CharStrings /G047c get exec +grestore gsave 531 0 translate +false CharStrings /G046e get exec +grestore }_d +/U1ed3{556 0 33 -11 519 892 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 398 0 translate +false CharStrings /gravecomb get exec +grestore }_d +/U1ed4{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 389 12 translate +false CharStrings /G047c get exec +grestore gsave 547 0 translate +false CharStrings /Uf010 get exec +grestore }_d +/U1ed5{556 0 33 -11 519 896 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 410 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ed6{778 0 48 -11 733 896 _sc +false CharStrings /O get exec +gsave 389 12 translate +false CharStrings /G047c get exec +grestore gsave 723 0 translate +false CharStrings /Uf02d get exec +grestore }_d +/U1ed7{556 0 33 -11 519 868 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 557 0 translate +false CharStrings /tildecomb get exec +grestore }_d +/U1ed8{778 0 48 -158 733 801 _sc +false CharStrings /O get exec +gsave 389 12 translate +false CharStrings /G047c get exec +grestore gsave 459 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ed9{556 0 33 -158 519 720 _sc +false CharStrings /o get exec +gsave 109 0 translate +false CharStrings /circumflex get exec +grestore gsave 347 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1eda{857 0 48 -11 834 896 _sc +false CharStrings /Ohorn get exec +gsave 222 177 translate +false CharStrings /acute get exec +grestore }_d +/U1edb{656 0 33 -11 625 720 _sc +false CharStrings /ohorn get exec +gsave 119 0 translate +false CharStrings /acute get exec +grestore }_d +/U1edc{857 0 48 -11 834 896 _sc +false CharStrings /Ohorn get exec +gsave 220 177 translate +false CharStrings /grave get exec +grestore }_d +/U1edd{656 0 33 -11 625 720 _sc +false CharStrings /ohorn get exec +gsave 108 0 translate +false CharStrings /grave get exec +grestore }_d +/U1ede{857 0 48 -11 834 909 _sc +false CharStrings /Ohorn get exec +gsave 527 12 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1edf{656 0 33 -11 625 756 _sc +false CharStrings /ohorn get exec +gsave 396 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ee0{857 0 48 -11 834 873 _sc +false CharStrings /Ohorn get exec +gsave 224 165 translate +false CharStrings /tilde get exec +grestore }_d +/U1ee1{656 0 33 -11 625 708 _sc +false CharStrings /ohorn get exec +gsave 109 0 translate +false CharStrings /tilde get exec +grestore }_d +/U1ee2{857 0 48 -158 834 729 _sc +false CharStrings /Ohorn get exec +gsave 459 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ee3{656 0 33 -158 625 531 _sc +false CharStrings /ohorn get exec +gsave 347 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ee4{722 0 79 -158 642 716 _sc +false CharStrings /U get exec +gsave 430 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ee5{556 0 64 -158 484 519 _sc +false CharStrings /u get exec +gsave 332 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ee6{722 0 79 -11 642 896 _sc +false CharStrings /U get exec +gsave 488 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ee7{556 0 64 -11 484 756 _sc +false CharStrings /u get exec +gsave 388 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ee8{854 0 79 -11 813 896 _sc +false CharStrings /Uhorn get exec +gsave 191 177 translate +false CharStrings /acute get exec +grestore }_d +/U1ee9{669 0 64 -11 639 720 _sc +false CharStrings /uhorn get exec +gsave 113 0 translate +false CharStrings /acute get exec +grestore }_d +/U1eea{854 0 79 -11 813 896 _sc +false CharStrings /Uhorn get exec +gsave 190 177 translate +false CharStrings /grave get exec +grestore }_d +/U1eeb{669 0 64 -11 639 720 _sc +false CharStrings /uhorn get exec +gsave 108 0 translate +false CharStrings /grave get exec +grestore }_d +/U1eec{854 0 79 -11 813 896 _sc +false CharStrings /Uhorn get exec +gsave 488 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1eed{669 0 64 -11 639 756 _sc +false CharStrings /uhorn get exec +gsave 388 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1eee{854 0 79 -11 813 873 _sc +false CharStrings /Uhorn get exec +gsave 200 165 translate +false CharStrings /tilde get exec +grestore }_d +/U1eef{669 0 64 -11 639 708 _sc +false CharStrings /uhorn get exec +gsave 112 0 translate +false CharStrings /tilde get exec +grestore }_d +/U1ef0{854 0 79 -158 813 716 _sc +false CharStrings /Uhorn get exec +gsave 430 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ef1{669 0 64 -158 639 519 _sc +false CharStrings /uhorn get exec +gsave 332 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ef4{667 0 3 -158 659 716 _sc +false CharStrings /Y get exec +gsave 400 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ef5{500 0 16 -209 491 519 _sc +false CharStrings /y get exec +gsave 459 0 translate +false CharStrings /Uf02c get exec +grestore }_d +/U1ef6{667 0 3 0 659 896 _sc +false CharStrings /Y get exec +gsave 464 0 translate +false CharStrings /hookabovecomb get exec +grestore }_d +/U1ef7{500 0 16 -209 491 756 _sc +false CharStrings /y get exec +gsave 371 0 translate +false CharStrings /Uf012 get exec +grestore }_d +/U1ef8{667 0 3 0 659 873 _sc +false CharStrings /Y get exec +gsave 176 165 translate +false CharStrings /tilde get exec +grestore }_d +/U1ef9{500 0 16 -209 491 708 _sc +false CharStrings /y get exec +gsave 93 0 translate +false CharStrings /tilde get exec +grestore }_d +/U01cd{667 0 0 0 668 891 _sc +false CharStrings /A get exec +gsave 151 171 translate +false CharStrings /caron get exec +grestore }_d +/U01ce{556 0 36 -11 514 720 _sc +false CharStrings /a get exec +gsave 120 0 translate +false CharStrings /caron get exec +grestore }_d +/U01cf{278 0 -14 0 294 891 _sc +false CharStrings /I get exec +gsave -33 171 translate +false CharStrings /caron get exec +grestore }_d +/U01d0{222 0 -38 0 270 720 _sc +false CharStrings /Uf031 get exec +gsave 66 0 translate +false CharStrings /caron get exec +grestore }_d +/U01d1{778 0 48 -11 733 891 _sc +false CharStrings /O get exec +gsave 220 171 translate +false CharStrings /caron get exec +grestore }_d +/U01d2{556 0 33 -11 519 720 _sc +false CharStrings /o get exec +gsave 103 0 translate +false CharStrings /caron get exec +grestore }_d +/U01d3{722 0 79 -11 642 891 _sc +false CharStrings /U get exec +gsave 195 171 translate +false CharStrings /caron get exec +grestore }_d +/U01d4{556 0 64 -11 484 720 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /caron get exec +grestore }_d +/U01d5{722 0 79 -11 642 900 _sc +false CharStrings /U get exec +gsave 366 0 translate +false CharStrings /G050c get exec +grestore }_d +/U01d6{556 0 64 -11 484 852 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /dieresis get exec +grestore gsave 107 181 translate +false CharStrings /macron get exec +grestore }_d +/U01d7{722 0 79 -11 642 900 _sc +false CharStrings /U get exec +gsave 366 0 translate +false CharStrings /G050d get exec +grestore }_d +/U01d8{556 0 64 -11 484 900 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /dieresis get exec +grestore gsave 113 181 translate +false CharStrings /acute get exec +grestore }_d +/U01d9{722 0 79 -11 642 900 _sc +false CharStrings /U get exec +gsave 366 0 translate +false CharStrings /G050e get exec +grestore }_d +/U01da{556 0 64 -11 484 900 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /dieresis get exec +grestore gsave 107 181 translate +false CharStrings /caron get exec +grestore }_d +/U01db{722 0 79 -11 642 900 _sc +false CharStrings /U get exec +gsave 366 0 translate +false CharStrings /G050f get exec +grestore }_d +/U01dc{556 0 64 -11 484 900 _sc +false CharStrings /u get exec +gsave 107 0 translate +false CharStrings /dieresis get exec +grestore gsave 100 181 translate +false CharStrings /grave get exec +grestore }_d +/G050c{0 0 -125 730 126 900 _sc +126 843 _m +-125 843 _l +-125 900 _l +126 900 _l +126 843 _l +126 730 _m +60 730 _l +60 802 _l +126 802 _l +126 730 _l +-59 730 _m +-125 730 _l +-125 802 _l +-59 802 _l +-59 730 _l +_cl}_d +/G050d{0 0 -125 730 126 900 _sc +124 900 _m +11 813 _l +-52 813 _l +13 900 _l +124 900 _l +126 730 _m +60 730 _l +60 802 _l +126 802 _l +126 730 _l +-59 730 _m +-125 730 _l +-125 802 _l +-59 802 _l +-59 730 _l +_cl}_d +/G050e{0 0 -125 730 126 900 _sc +126 730 _m +60 730 _l +60 802 _l +126 802 _l +126 730 _l +111 900 _m +32 814 _l +-34 814 _l +-110 900 _l +-38 900 _l +1 853 _l +40 900 _l +111 900 _l +-59 730 _m +-125 730 _l +-125 802 _l +-59 802 _l +-59 730 _l +_cl}_d +/G050f{0 0 -125 730 126 900 _sc +126 730 _m +60 730 _l +60 802 _l +126 802 _l +126 730 _l +53 813 _m +-10 813 _l +-123 900 _l +-12 900 _l +53 813 _l +-59 730 _m +-125 730 _l +-125 802 _l +-59 802 _l +-59 730 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +%%EndFont +/FE0[/.notdef/empty/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND +/ND/ND/ND/ND/ND/ND/ND/ND/ND/ND/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/hyphen/period +/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less +/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z +/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g +/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/ND +/U0080/U0081/U0082/U0083/U0084/U0085/U0086/U0087/U0088/U0089/U008a/U008b/U008c +/U008d/U008e/U008f/U0090/U0091/U0092/U0093/U0094/U0095/U0096/U0097/U0098/U0099 +/U009a/U009b/U009c/U009d/U009e/U009f/space/exclamdown/cent/sterling/currency +/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu +/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright +/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde +/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute +/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute +/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve +/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex +/udieresis/yacute/thorn/ydieresis]d +/F1 FE0 ArialMTList MF +/F2 10/F1 DF +/F3 FE0 ArialMTList MF +/F4 8/F3 DF +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +QI +%%EndPageSetup +W BC +/OMo false d +[1 0 0 1 0 0]ST +0 0 B 0 0 PE +WB +0 0 595 841 R +[1.41176 0 0 5.06667 71.2353 -1029]ST +0 1 B 0 0 PE +1 234 d2 BR +65 285 85 75 R +[1 0 0 1 123 375]ST +1 2 B 0 0 PE +NB +160 140 40 HL +160 140 160 HL +160 140 160 HL +[1 0 0 1 123 375]ST +1 1 B 0 0 PE +160 200 40 HL +[1 0 0 1 123 375]ST +1 1 B 0 0 PE +160 260 40 HL +[1 0 0 1 123 375]ST +1 1 B 0 0 PE +160 320 40 HL +[1 0 0 1 123 375]ST +1 2 B 0 0 PE +40 420 120 VL +160 420 40 HL +160 120 420 VL +[1 0 0 1 -37 375]ST +2 2 B 0 0 PE +320 120 60 VL +[1 0 0 1 -77 375]ST +2 2 B 0 0 PE +240 60 120 VL +240 60 240 HL +[1 0 0 1 -77 375]ST +1 2 B 0 0 PE +240 40 60 VL +360 40 240 HL +360 60 40 VL +[1 0 0 1 223 436]ST +1 1 B 0 0 PE +F2 F +14 Y(DOS vagy)44 -25 T +31 Y(Windows)41 -22 T +[1 0 0 1 51 445]ST +1 1 B 0 0 PE +14 Y(Az elsõ slice,)65 0 T +31 Y(neve: ad0s1)55 0 T +48 Y((C: DOS alatt))66 0 T +[1 0 0 1 50 630]ST +1 1 B 0 0 PE +14 Y(A második slice,)75 0 T +31 Y(neve: ad0s2)55 0 T +[1 0 0 1 308 520]ST +1 1 B 0 0 PE +14 Y(Az a partíció,)66 0 T +31 Y(csatlakoztatva: /,)85 0 T +48 Y(neve: ad0s2a)61 0 T +[1 0 0 1 308 579]ST +1 1 B 0 0 PE +14 Y(A b partíció,)61 0 T +31 Y(lapozóterület,)64 0 T +48 Y(neve: ad0s2b)61 0 T +[1 0 0 1 308 639]ST +1 1 B 0 0 PE +14 Y(Az e partíció,)66 0 T +31 Y(csatlakoztatva: /var,)100 0 T +48 Y(neve: ad0s2e)61 0 T +[1 0 0 1 309 717]ST +1 1 B 0 0 PE +14 Y(Az f partíció,)66 0 T +31 Y(csatlakoztatva: /usr,)100 0 T +48 Y(neve: ad0s2f)58 0 T +[1 0 0 1 222 801]ST +1 1 B 0 0 PE +F4 F +11 Y((nem skálázódik))66 -35 T +[1 0 0 1 455 625]ST +1 1 B 0 0 PE +F2 F +14 Y(A c partíció,)61 0 T +31 Y(nincs csatlakoztatva,)100 0 T +48 Y(neve: ad0s2c)61 0 T +[1 0 0 1 -27 385]ST +1 1 B 0 0 PE +175 35 180 HL +175 125 35 VL +180 125 175 HL +[1 0 0 1 -27 385]ST +1 1 B 0 0 PE +175 135 180 HL +175 405 135 VL +180 405 175 HL +[1 0 0 1 -27 380]ST +1 1 B 0 0 PE +325 200 320 HL +325 250 200 VL +320 250 325 HL +[1 0 0 1 -27 380]ST +1 1 B 0 0 PE +325 260 320 HL +325 310 260 VL +320 310 325 HL +[1 0 0 1 -17 385]ST +1 1 B 0 0 PE +455 130 450 HL +455 405 130 VL +450 405 455 HL +[1 0 0 1 -27 260]ST +1 1 B 0 0 PE +325 260 320 HL +325 310 260 VL +320 310 325 HL +[1 0 0 1 -27 385]ST +1 1 B 0 0 PE +325 315 320 HL +325 405 315 VL +320 405 325 HL +QP +%%Trailer +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/install/example-dir1.eps b/hu_HU.ISO8859-2/books/handbook/install/example-dir1.eps new file mode 100644 index 0000000000..9446c71be0 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/example-dir1.eps @@ -0,0 +1,350 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 1.8.5 (Sat Jun 29 11:49:08 BST 2002) +%%For: (nik) Nik Clayton +%%Title: directory +%%Pages: (atend) +%%BoundingBox: 35 35 163 177 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval + +EncodingVector + dup 306 /AE + dup 301 /Aacute + dup 302 /Acircumflex + dup 304 /Adieresis + dup 300 /Agrave + dup 305 /Aring + dup 303 /Atilde + dup 307 /Ccedilla + dup 311 /Eacute + dup 312 /Ecircumflex + dup 313 /Edieresis + dup 310 /Egrave + dup 315 /Iacute + dup 316 /Icircumflex + dup 317 /Idieresis + dup 314 /Igrave + dup 334 /Udieresis + dup 335 /Yacute + dup 376 /thorn + dup 337 /germandbls + dup 341 /aacute + dup 342 /acircumflex + dup 344 /adieresis + dup 346 /ae + dup 340 /agrave + dup 345 /aring + dup 347 /ccedilla + dup 351 /eacute + dup 352 /ecircumflex + dup 353 /edieresis + dup 350 /egrave + dup 355 /iacute + dup 356 /icircumflex + dup 357 /idieresis + dup 354 /igrave + dup 360 /dcroat + dup 361 /ntilde + dup 363 /oacute + dup 364 /ocircumflex + dup 366 /odieresis + dup 362 /ograve + dup 365 /otilde + dup 370 /oslash + dup 372 /uacute + dup 373 /ucircumflex + dup 374 /udieresis + dup 371 /ugrave + dup 375 /yacute + dup 377 /ydieresis + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 163 177 +%%PageOrientation: Portrait +gsave +35 35 128 142 boxprim clip newpath +36 36 translate +0 0 1 beginpage +0 0 translate 0 rotate +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font + +/Times-Roman findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Times-Roman-Latin2 exch definefont pop + +/Times-Roman-Latin2 findfont dup 14 scalefont setfont + +% root +gsave 10 dict begin +63 106 31 25 ellipse_path +stroke +gsave 10 dict begin +63 109 moveto 33 -0.5 (Gyökér) alignedtext +63 93 moveto 5 -0.5 (/) alignedtext +end grestore +end grestore + +% A1/ +gsave 10 dict begin +27 26 27 18 ellipse_path +stroke +gsave 10 dict begin +27 21 moveto 23 -0.5 (A1/) alignedtext +end grestore +end grestore + +% root -> A1/ +newpath 52 82 moveto +48 72 43 61 39 51 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 37 53 moveto +35 43 lineto +42 51 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% A2/ +gsave 10 dict begin +99 26 27 18 ellipse_path +stroke +gsave 10 dict begin +99 21 moveto 26 -0.5 (A2/) alignedtext +end grestore +end grestore + +% root -> A2/ +newpath 74 82 moveto +78 72 83 61 87 51 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 84 51 moveto +91 43 lineto +89 53 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +endpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/install/example-dir2.eps b/hu_HU.ISO8859-2/books/handbook/install/example-dir2.eps new file mode 100644 index 0000000000..8223d82ad7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/example-dir2.eps @@ -0,0 +1,392 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 1.8.5 (Sat Jun 29 11:49:08 BST 2002) +%%For: (nik) Nik Clayton +%%Title: directory +%%Pages: (atend) +%%BoundingBox: 35 35 199 249 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval + +EncodingVector + dup 306 /AE + dup 301 /Aacute + dup 302 /Acircumflex + dup 304 /Adieresis + dup 300 /Agrave + dup 305 /Aring + dup 303 /Atilde + dup 307 /Ccedilla + dup 311 /Eacute + dup 312 /Ecircumflex + dup 313 /Edieresis + dup 310 /Egrave + dup 315 /Iacute + dup 316 /Icircumflex + dup 317 /Idieresis + dup 314 /Igrave + dup 334 /Udieresis + dup 335 /Yacute + dup 376 /thorn + dup 337 /germandbls + dup 341 /aacute + dup 342 /acircumflex + dup 344 /adieresis + dup 346 /ae + dup 340 /agrave + dup 345 /aring + dup 347 /ccedilla + dup 351 /eacute + dup 352 /ecircumflex + dup 353 /edieresis + dup 350 /egrave + dup 355 /iacute + dup 356 /icircumflex + dup 357 /idieresis + dup 354 /igrave + dup 360 /dcroat + dup 361 /ntilde + dup 363 /oacute + dup 364 /ocircumflex + dup 366 /odieresis + dup 362 /ograve + dup 365 /otilde + dup 370 /oslash + dup 372 /uacute + dup 373 /ucircumflex + dup 374 /udieresis + dup 371 /ugrave + dup 375 /yacute + dup 377 /ydieresis + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 199 249 +%%PageOrientation: Portrait +gsave +35 35 164 214 boxprim clip newpath +36 36 translate +0 0 1 beginpage +0 0 translate 0 rotate +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font + +/Times-Roman findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Times-Roman-Latin2 exch definefont pop + +/Times-Roman-Latin2 findfont dup 14 scalefont setfont + +% root +gsave 10 dict begin +99 178 31 25 ellipse_path +stroke +gsave 10 dict begin +99 181 moveto 33 -0.5 (Gyökér) alignedtext +99 165 moveto 5 -0.5 (/) alignedtext +end grestore +end grestore + +% A1/ +gsave 10 dict begin +63 98 27 18 ellipse_path +stroke +gsave 10 dict begin +63 93 moveto 23 -0.5 (A1/) alignedtext +end grestore +end grestore + +% root -> A1/ +newpath 88 154 moveto +84 144 79 133 75 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 73 125 moveto +71 115 lineto +78 123 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% A2/ +gsave 10 dict begin +135 98 27 18 ellipse_path +stroke +gsave 10 dict begin +135 93 moveto 26 -0.5 (A2/) alignedtext +end grestore +end grestore + +% root -> A2/ +newpath 110 154 moveto +114 144 119 133 123 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 120 123 moveto +127 115 lineto +125 125 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B1/ +gsave 10 dict begin +27 26 27 18 ellipse_path +stroke +gsave 10 dict begin +27 21 moveto 21 -0.5 (B1/) alignedtext +end grestore +end grestore + +% A1/ -> B1/ +newpath 54 81 moveto +50 72 45 62 40 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 38 53 moveto +36 43 lineto +42 51 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B2/ +gsave 10 dict begin +99 26 27 18 ellipse_path +stroke +gsave 10 dict begin +99 21 moveto 24 -0.5 (B2/) alignedtext +end grestore +end grestore + +% A1/ -> B2/ +newpath 72 81 moveto +76 72 81 62 86 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 84 51 moveto +90 43 lineto +88 53 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +endpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/install/example-dir3.eps b/hu_HU.ISO8859-2/books/handbook/install/example-dir3.eps new file mode 100644 index 0000000000..7a65c33471 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/example-dir3.eps @@ -0,0 +1,392 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 1.8.5 (Sat Jun 29 11:49:08 BST 2002) +%%For: (nik) Nik Clayton +%%Title: directory +%%Pages: (atend) +%%BoundingBox: 35 35 199 249 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval + +EncodingVector + dup 306 /AE + dup 301 /Aacute + dup 302 /Acircumflex + dup 304 /Adieresis + dup 300 /Agrave + dup 305 /Aring + dup 303 /Atilde + dup 307 /Ccedilla + dup 311 /Eacute + dup 312 /Ecircumflex + dup 313 /Edieresis + dup 310 /Egrave + dup 315 /Iacute + dup 316 /Icircumflex + dup 317 /Idieresis + dup 314 /Igrave + dup 334 /Udieresis + dup 335 /Yacute + dup 376 /thorn + dup 337 /germandbls + dup 341 /aacute + dup 342 /acircumflex + dup 344 /adieresis + dup 346 /ae + dup 340 /agrave + dup 345 /aring + dup 347 /ccedilla + dup 351 /eacute + dup 352 /ecircumflex + dup 353 /edieresis + dup 350 /egrave + dup 355 /iacute + dup 356 /icircumflex + dup 357 /idieresis + dup 354 /igrave + dup 360 /dcroat + dup 361 /ntilde + dup 363 /oacute + dup 364 /ocircumflex + dup 366 /odieresis + dup 362 /ograve + dup 365 /otilde + dup 370 /oslash + dup 372 /uacute + dup 373 /ucircumflex + dup 374 /udieresis + dup 371 /ugrave + dup 375 /yacute + dup 377 /ydieresis + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 199 249 +%%PageOrientation: Portrait +gsave +35 35 164 214 boxprim clip newpath +36 36 translate +0 0 1 beginpage +0 0 translate 0 rotate +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font + +/Times-Roman findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Times-Roman-Latin2 exch definefont pop + +/Times-Roman-Latin2 findfont dup 14 scalefont setfont + +% root +gsave 10 dict begin +63 178 31 25 ellipse_path +stroke +gsave 10 dict begin +63 181 moveto 33 -0.5 (Gyökér) alignedtext +63 165 moveto 5 -0.5 (/) alignedtext +end grestore +end grestore + +% A1/ +gsave 10 dict begin +27 98 27 18 ellipse_path +stroke +gsave 10 dict begin +27 93 moveto 23 -0.5 (A1/) alignedtext +end grestore +end grestore + +% root -> A1/ +newpath 52 154 moveto +48 144 43 133 39 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 37 125 moveto +35 115 lineto +42 123 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% A2/ +gsave 10 dict begin +99 98 27 18 ellipse_path +stroke +gsave 10 dict begin +99 93 moveto 26 -0.5 (A2/) alignedtext +end grestore +end grestore + +% root -> A2/ +newpath 74 154 moveto +78 144 83 133 87 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 84 123 moveto +91 115 lineto +89 125 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B1/ +gsave 10 dict begin +63 26 27 18 ellipse_path +stroke +gsave 10 dict begin +63 21 moveto 21 -0.5 (B1/) alignedtext +end grestore +end grestore + +% A2/ -> B1/ +newpath 90 81 moveto +86 72 81 62 76 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 74 53 moveto +72 43 lineto +78 51 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B2/ +gsave 10 dict begin +135 26 27 18 ellipse_path +stroke +gsave 10 dict begin +135 21 moveto 24 -0.5 (B2/) alignedtext +end grestore +end grestore + +% A2/ -> B2/ +newpath 108 81 moveto +112 72 117 62 122 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 120 51 moveto +126 43 lineto +124 53 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +endpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/install/example-dir4.eps b/hu_HU.ISO8859-2/books/handbook/install/example-dir4.eps new file mode 100644 index 0000000000..5266e8f32d --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/example-dir4.eps @@ -0,0 +1,434 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 1.8.5 (Sat Jun 29 11:49:08 BST 2002) +%%For: (nik) Nik Clayton +%%Title: directory +%%Pages: (atend) +%%BoundingBox: 35 35 199 321 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval + +EncodingVector + dup 306 /AE + dup 301 /Aacute + dup 302 /Acircumflex + dup 304 /Adieresis + dup 300 /Agrave + dup 305 /Aring + dup 303 /Atilde + dup 307 /Ccedilla + dup 311 /Eacute + dup 312 /Ecircumflex + dup 313 /Edieresis + dup 310 /Egrave + dup 315 /Iacute + dup 316 /Icircumflex + dup 317 /Idieresis + dup 314 /Igrave + dup 334 /Udieresis + dup 335 /Yacute + dup 376 /thorn + dup 337 /germandbls + dup 341 /aacute + dup 342 /acircumflex + dup 344 /adieresis + dup 346 /ae + dup 340 /agrave + dup 345 /aring + dup 347 /ccedilla + dup 351 /eacute + dup 352 /ecircumflex + dup 353 /edieresis + dup 350 /egrave + dup 355 /iacute + dup 356 /icircumflex + dup 357 /idieresis + dup 354 /igrave + dup 360 /dcroat + dup 361 /ntilde + dup 363 /oacute + dup 364 /ocircumflex + dup 366 /odieresis + dup 362 /ograve + dup 365 /otilde + dup 370 /oslash + dup 372 /uacute + dup 373 /ucircumflex + dup 374 /udieresis + dup 371 /ugrave + dup 375 /yacute + dup 377 /ydieresis + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 199 321 +%%PageOrientation: Portrait +gsave +35 35 164 286 boxprim clip newpath +36 36 translate +0 0 1 beginpage +0 0 translate 0 rotate +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font + +/Times-Roman findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Times-Roman-Latin2 exch definefont pop + +/Times-Roman-Latin2 findfont dup 14 scalefont setfont + +% root +gsave 10 dict begin +63 250 31 25 ellipse_path +stroke +gsave 10 dict begin +63 253 moveto 33 -0.5 (Gyökér) alignedtext +63 237 moveto 5 -0.5 (/) alignedtext +end grestore +end grestore + +% A1/ +gsave 10 dict begin +27 170 27 18 ellipse_path +stroke +gsave 10 dict begin +27 165 moveto 23 -0.5 (A1/) alignedtext +end grestore +end grestore + +% root -> A1/ +newpath 52 226 moveto +48 216 43 205 39 195 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 37 197 moveto +35 187 lineto +42 195 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% A2/ +gsave 10 dict begin +99 170 27 18 ellipse_path +stroke +gsave 10 dict begin +99 165 moveto 26 -0.5 (A2/) alignedtext +end grestore +end grestore + +% root -> A2/ +newpath 74 226 moveto +78 216 83 205 87 195 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 84 195 moveto +91 187 lineto +89 197 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B1/ +gsave 10 dict begin +63 98 27 18 ellipse_path +stroke +gsave 10 dict begin +63 93 moveto 21 -0.5 (B1/) alignedtext +end grestore +end grestore + +% A2/ -> B1/ +newpath 90 153 moveto +86 144 81 134 76 124 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 74 125 moveto +72 115 lineto +78 123 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B2/ +gsave 10 dict begin +135 98 27 18 ellipse_path +stroke +gsave 10 dict begin +135 93 moveto 24 -0.5 (B2/) alignedtext +end grestore +end grestore + +% A2/ -> B2/ +newpath 108 153 moveto +112 144 117 134 122 124 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 120 123 moveto +126 115 lineto +124 125 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% C1/ +gsave 10 dict begin +27 26 27 18 ellipse_path +stroke +gsave 10 dict begin +27 21 moveto 21 -0.5 (C1/) alignedtext +end grestore +end grestore + +% B1/ -> C1/ +newpath 54 81 moveto +50 72 45 62 40 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 38 53 moveto +36 43 lineto +42 51 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% C2/ +gsave 10 dict begin +99 26 27 18 ellipse_path +stroke +gsave 10 dict begin +99 21 moveto 24 -0.5 (C2/) alignedtext +end grestore +end grestore + +% B1/ -> C2/ +newpath 72 81 moveto +76 72 81 62 86 52 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 84 51 moveto +90 43 lineto +88 53 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +endpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/install/example-dir5.eps b/hu_HU.ISO8859-2/books/handbook/install/example-dir5.eps new file mode 100644 index 0000000000..12ba3cf8b1 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/install/example-dir5.eps @@ -0,0 +1,434 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 1.8.5 (Sat Jun 29 11:49:08 BST 2002) +%%For: (nik) Nik Clayton +%%Title: directory +%%Pages: (atend) +%%BoundingBox: 35 35 307 249 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval + +EncodingVector + dup 306 /AE + dup 301 /Aacute + dup 302 /Acircumflex + dup 304 /Adieresis + dup 300 /Agrave + dup 305 /Aring + dup 303 /Atilde + dup 307 /Ccedilla + dup 311 /Eacute + dup 312 /Ecircumflex + dup 313 /Edieresis + dup 310 /Egrave + dup 315 /Iacute + dup 316 /Icircumflex + dup 317 /Idieresis + dup 314 /Igrave + dup 334 /Udieresis + dup 335 /Yacute + dup 376 /thorn + dup 337 /germandbls + dup 341 /aacute + dup 342 /acircumflex + dup 344 /adieresis + dup 346 /ae + dup 340 /agrave + dup 345 /aring + dup 347 /ccedilla + dup 351 /eacute + dup 352 /ecircumflex + dup 353 /edieresis + dup 350 /egrave + dup 355 /iacute + dup 356 /icircumflex + dup 357 /idieresis + dup 354 /igrave + dup 360 /dcroat + dup 361 /ntilde + dup 363 /oacute + dup 364 /ocircumflex + dup 366 /odieresis + dup 362 /ograve + dup 365 /otilde + dup 370 /oslash + dup 372 /uacute + dup 373 /ucircumflex + dup 374 /udieresis + dup 371 /ugrave + dup 375 /yacute + dup 377 /ydieresis + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource + +%%BeginResource: encoding ISOLatin2Encoding +/ISOLatin2Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +% 100 +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +% 200 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section +/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent +/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron +/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent +% 300 +/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla +/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron +/Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply +/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls +/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla +/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron +/dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide +/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent +] def +%%EndResource + +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 307 249 +%%PageOrientation: Portrait +gsave +35 35 272 214 boxprim clip newpath +36 36 translate +0 0 1 beginpage +0 0 translate 0 rotate +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font + +/Times-Roman findfont +dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding ISOLatin2Encoding def + currentdict +end +/Times-Roman-Latin2 exch definefont pop + +/Times-Roman-Latin2 findfont dup 14 scalefont setfont + +% root +gsave 10 dict begin +135 178 31 25 ellipse_path +stroke +gsave 10 dict begin +135 181 moveto 33 -0.5 (Gyökér) alignedtext +135 165 moveto 5 -0.5 (/) alignedtext +end grestore +end grestore + +% A1/ +gsave 10 dict begin +99 98 27 18 ellipse_path +stroke +gsave 10 dict begin +99 93 moveto 23 -0.5 (A1/) alignedtext +end grestore +end grestore + +% root -> A1/ +newpath 124 154 moveto +120 144 115 133 111 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 109 125 moveto +107 115 lineto +114 123 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% A2/ +gsave 10 dict begin +171 98 27 18 ellipse_path +stroke +gsave 10 dict begin +171 93 moveto 26 -0.5 (A2/) alignedtext +end grestore +end grestore + +% root -> A2/ +newpath 146 154 moveto +150 144 155 133 159 123 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 156 123 moveto +163 115 lineto +161 125 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% C1/ +gsave 10 dict begin +27 26 27 18 ellipse_path +stroke +gsave 10 dict begin +27 21 moveto 21 -0.5 (C1/) alignedtext +end grestore +end grestore + +% A1/ -> C1/ +newpath 84 83 moveto +74 73 61 60 49 48 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 47 50 moveto +42 41 lineto +51 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% C2/ +gsave 10 dict begin +99 26 27 18 ellipse_path +stroke +gsave 10 dict begin +99 21 moveto 24 -0.5 (C2/) alignedtext +end grestore +end grestore + +% A1/ -> C2/ +newpath 99 80 moveto +99 72 99 63 99 54 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 97 54 moveto +99 44 lineto +102 54 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B1/ +gsave 10 dict begin +171 26 27 18 ellipse_path +stroke +gsave 10 dict begin +171 21 moveto 21 -0.5 (B1/) alignedtext +end grestore +end grestore + +% A2/ -> B1/ +newpath 171 80 moveto +171 72 171 63 171 54 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 169 54 moveto +171 44 lineto +174 54 lineto +closepath +fill +0.000 0.000 0.000 edgecolor + +% B2/ +gsave 10 dict begin +243 26 27 18 ellipse_path +stroke +gsave 10 dict begin +243 21 moveto 24 -0.5 (B2/) alignedtext +end grestore +end grestore + +% A2/ -> B2/ +newpath 186 83 moveto +196 73 209 60 221 48 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 219 46 moveto +228 41 lineto +223 50 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +endpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/hu_HU.ISO8859-2/books/handbook/introduction/Makefile b/hu_HU.ISO8859-2/books/handbook/introduction/Makefile new file mode 100644 index 0000000000..4c22f7ce8a --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/introduction/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= introduction/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml new file mode 100644 index 0000000000..0a9280c889 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml @@ -0,0 +1,1318 @@ + + + + + + + + Jim + Mock + Átszerkesztette, átszervezte és + bizonyos részeit átdolgozta: + + + + + Bemutatkozás + + + Áttekintés + + Köszönjük, hogy érdeklõdik a &os; + iránt! A fejezet a &os; Projektet több + különbözõ vonatkozásban mutatja be: a + történetét, a céljait, a + fejlesztési modelljét és így + tovább. + + A fejezet elolvasása során + megismerjük: + + + + hogyan viszonyul a &os; más operációs + rendszerekhez; + + + a &os; Projekt történetét; + + + a &os; Projekt célkitûzéseit; + + + a &os; nyílt forráskódú + fejlesztési modelljének alapjait; + + + és természetesen: hogyan is keletkezett a + &os; név. + + + + + + + Üdvözöljük a &os;-ben! + + 4.4BSD-Lite + + A &os; egy 4.4BSD-Lite alapú operációs + rendszer &intel; (x86 és &itanium;), AMD64, + Alpha, Sun &ultrasparc; + számítógépekre. Jelenleg is + portolás alatt áll további + architektúrákra. Olvashatunk a &os; történetérõl + vagy éppen az aktuális + kiadásáról. Ha szeretnénk + hozzájárulni a Projekt + fejlõdéséhez (forráskód, hardver + vagy pénz), olvassuk el a Hozzájárulás + a &os;-hez c. cikket (angolul). + + + Mire képes a &os;? + + A &os; számos figyelemre méltó + tulajdonságot tudhat magáénak. Ezek + közül néhány: + + + preemptív + ütemezés + + + A preemptív + ütemezés dinamikusan + szabályozható prioritások + segítségével biztosítja a + számítógép + felhasználók és alkalmazások + közti finom és igazságos + megosztását, akár a legnagyobb + terhelés esetén is. + + + többfelhasználós + rendszer + + + Többfelhasználós + rendszerként lehetõvé teszi, + hogy sokan tudják a &os;-t egyszerre + többféle dologra is használni. + Például, ez azt jelenti, hogy a rendszerhez + csatlakoztatott különbözõ + perifériák, mint mondjuk a nyomtatók + és szalagos egységek, megfelelõen + szétoszthatóak a felhasználók + között vagy éppen a + hálózaton, és az egyes + erõforrásokhoz a felhasználók vagy + azok egy csoportja csak korlátozott módon + férhetnek hozzájuk, elkerülve ezzel a + rendszer számára + létfontosságú erõforrások + túlterhelését. + + + TCP/IP protokoll + + + A TCP/IP hálózati + protokoll gyors és + megbízható implementációja, + illetve a legfontosabb ipari szabványok, mint az + SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec és IPv6 + támogatása. Ezáltal egy &os;-s + számítógép könnyedén + képes együttmûködni más + rendszerekkel vagy akár vállalati + szerverként is üzemelni. Megbirkózik az + NFS (Network File System, távoli + állományelérés) és az + elektronikus levelezés megszervezésével + ugyanúgy, ahogy a vállalatunk internetes + elvárásaival a WWW, FTP és + forgalomirányítási protokollokon + keresztül és tûzfal iránti + (biztonsági) igényeivel is. + + + memóriavédelem + + + A memóriavédelem + megvalósítása gondoskodik róla, + hogy az alkalmazások (vagy a + felhasználók) ne zavarják + egymást. Az egyik alkalmazás + összeomlása nincs kihatással a + rendszerben futó összes többire. + + + + A &os; egy 32 bites + operációs rendszer (az Alpha, &itanium;, AMD64 + és &ultrasparc; architektúrákon pedig + 64 bites), amelyet már a + kezdetektõl fogva annak terveztek. + + + + X Window System + XFree86 + + + + A X Window System ipari + szabványa (X11R7) alapján szolgáltatja + a grafikus felhasználói felületet (GUI) + bármelyik VGA-kártyán és + monitoron, illetve annak teljes forráskódja is + elérhetõ. + + + + bináris kompatibilitás + Linux + + + bináris kompatibilitás + SCO + + + bináris kompatibilitás + SVR4 + + + bináris kompatibilitás + BSD/OS + + + bináris kompatibilitás + NetBSD + + + + Bináris szintû + kompatibilitás a Linuxra, SCO-ra, SVR4-re, + BSDI-re és NetBSD-re készített + programok nagy részével. + + + + Futtatásra kész + alkalmazások ezrei érhetõek el a &os; + port- és + csomaggyûjteményében. + Miért bújnánk az internetet + értük, ha mindent egy helyen is + megtalálhatunk? + + + + További könnyen + portolható alkalmazások ezrei + állnak rendelkezésre az interneten. A &os; + forráskódja kompatibilis a legtöbb + elterjedt kereskedelmi &unix; rendszerével, aminek + köszönhetõen az alkalmazások nagy + része csak kevés + módosítást igényel a + fordításhoz, már amennyiben erre + egyáltalán szükség van. + + + virtuális + memória + + + Az igény szerinti lapozással + mûködõ virtuális + memória és egyesített + VM/puffer gyorsítótár + úgy lett kialakítva, hogy hatékonyan + kiszolgálja a nagyobb étvágyú + alkalmazásokat, miközben a többi + felhasználó számára + továbbra is reakcióképes marad. + + + + többprocesszoros (SMP) rendszerek + támogatása + + + + Az SMP támogatása a + több processzorral rendelkezõ + számítógépek + számára. + + + + fordítóprogramok + C + + + + fordítóprogramok + C++ + + + + fordítóprogramok + FORTRAN + + + + C, C++ + és Fortran fejlesztõi + eszközök széles tárháza + használható. Kutatáshoz és + fejlesztéshez más egyéb + programozási nyelvek is elérhetõek a + portok és csomagok + segítségével. + + + forráskód + + + Az egész rendszer + forráskódjának + megléte lehetõvé teszi, hogy a legnagyobb + fokú irányítást + élvezhessük a környezetünk felett. + Miért is bíznánk magunkat egy + zárt rendszert fejlesztõ cégre, mikor + lehetne egy igazán nyílt + rendszerünk? + + + + Nagy mennyiségû internetes + dokumentáció. + + + + Még sok minden + más! + + + + 4.4BSD-Lite + Számítógépes + rendszerek kutatócsoport (CSRG) + + Berkeley + + A &os; Kaliforniai Egyetem (Berkeley) + Számítógépes rendszerek + kutatócsoportja által fejlesztett 4.4BSD-Lite + kiadásán alapszik és ápolja a + BSD-rendszerek fejlesztésének jellegzetes + hagyományait. Túl a kutatócsoport + kivételes munkáján, a &os; Projekt + több ezernyi órát szentelt arra, hogy a + legtöbbet hozza ki a rendszerbõl mind a + teljesítményt, mind pedig a valós + életben felbukkanó terhelési helyezetekben + történõ helytállást + illetõen. Ahogy a legnagyobb piaci óriások + igyekeznek egy hasonló képességû, + teljesítményû és + megbízhatóságó PC-s + operációs rendszert kifejleszteni, úgy a + &os; már most felajánlja + ezeket! + + Kizárólag csak a képzeletünk + szabhat gátat annak, hogy mire is tudjuk használni + a &os;-t. Szoftverfejlesztéstõl kezdve, a + gyári automatizáláson és + készletnyilvántartáson át a + mûholdas antennák tájolásáig + szinte mindenre: ha ezt eddig egy kereskedelmi &unix;-szal is + meg tudtuk tenni, akkor nagyon valószínû, + hogy a &os;-vel is képesek leszünk erre! A &os; + ezen felül nagyban profitál a világban + található különbözõ + kutatóközpontok és egyetemek által + fejlesztett, kiváló minõségû + alkalmazások ezreibõl, melyek gyakorta olcsón + vagy ingyen elérhetõek. Kereskedelmi + alkalmazások is egyre nagyobb számban + képviseltetik magukat minden nap. + + Mivel a &os; forráskódja + általánosan elérhetõ, a rendszer + szinte tetszõleges mértékben + testreszabható a különleges + elvárásokat támasztó + alkalmazások vagy projektek számára. Ez a + nagyobb kereskedelmi fejlesztõk operációs + rendszereivel majdnem teljesen elképzelhetetlen. + Íme csupán néhány + példája azon alkalmazásoknak, melyek + jelenleg is &os;-t használnak: + + + + Internetes + szolgáltatások: A &os;-be + épített szilárd TCP/IP alapú + hálózatkezelés + különféle internetes + szolgáltatások számára teszi + ideális platformmá: + + + FTP szerverek + + FTP szerverek + + + webszerverek + + World Wide Web szerverek (hagyományos vagy + biztonságos [SSL]) + + + + IPv4 és IPv6 + forgalomirányítás + + + tûzfal + NAT + + + Tûzfalak és NAT (IP + maszkolás), + átjárók + + + + elektronikus levelezés + e-mail + + e-mail + + + Elektronikus levelezõ szerverek + + + USENET + + + USENET hírrendszer és + üzenõfal + + + + Sok minden más... + + + + A &os; használatához kezdetben + elegendõ egy olcsó 386-os PC, melyet a + vállalkozásunk fejlõdésével + szépen fel tudunk hozni egy RAID-del ellátott + négyprocesszoros Xeon rendszerig. + + + + Oktatás: Esetleg + informatikával vagy mûszaki + informatikával foglalkozik? Nem is lehetne jobban a + &os; által felkínált + élményeken kívül máshogy + megismerkedni elsõkézbõl az + operációs rendszerek, + számítógépes + architektúrák és + hálózatok mûködésével! + Rengeteg szabadon használható mûszaki, + matematikai és grafikai tervezõ programcsomag + könnyíti meg azok munkáját is, + akik számára a + számítógép + legfõképpen más + feladatok elvégzésére hivatott! + + + + Kutatás: Miután a + teljes &os; rendszer forráskódja bárki + számára elérhetõ, + tökéletes kiindulási pontot ad az + operációs rendszerek + témakörében vagy a + számítástudomány egyéb + ágaiban végzendõ kutatásokhoz. A + &os; nyílt természete ezenkívül + lehetõvé teszi egymástól + távol levõ csoportok közös + együttmûködését is + anélkül, hogy a résztvevõknek + aggódnia kellene a különleges + licencszerzõdések vagy a nyílt + fórumokon felmerülõ + korlátozások miatt. + + + forgalomirányító + DNS szerver + + + Hálózatépítés: + Szüksége van egy új + útválasztóra? Esetleg egy + névszerverre (DNS)? Egy tûzfalra, mely + távoltartja a nemkívánatos + egyéneket a belsõ + hálózattól? A &os; pillanatok alatt + átváltoztatja a sarokban porosodó + 386-os vagy 486-os PC-nket egy kifinomult + csomagszûrési képességekkel + bíró forgalomirányító + eszközzé. + + + + X Window System + XFree86 + + + X Window System + Accelerated-X + + + + X Window + munkaállomás: A &os; a szabadon + használható X11 szerverrel együtt remek + választás egy olcsó X terminál + kiépítéséhez. + Eltérõen egy szokványos X + termináltól, a &os; azonban igény + szerint sok alkalmazás helyi futtatását + is képes megoldani, ezzel megszabadítva minket + a központi szerver használatának + kényszerétõl. A &os; viszont akár + lemez nélkül is el tud indulni, + aminek révén az egyes + munkaállomások karbantartása még + olcsóbbá és könnyebbé + válik. + + + GNU Compiler + Collection + + + Szoftverfejlesztés: Az alap + &os; rendszer fejlesztõeszközök + tömkelegével, többek közt a + híres GNU C/C++ fordítóval és + nyomkövetõvel érkezik. + + + + A &os; CD-n, DVD-n és FTP-n keresztül + elérhetõ forráskód és + bináris formátumban is. A &os; + beszerzésével kapcsolatos bõvebb + információkért olvassuk el a et. + + + + + Ki használja a &os;-t? + + + felhasználók + &os;-t használó nagy + oldalak + + + A &os;-t az interneten található nagyobb + oldalak közül sokan használják, mint + például: + + + Yahoo! + + + Yahoo! + + + Apache + + + Apache + + + Blue Mountain Arts + + + Blue Mountain + Arts + + + Pair Networks + + + Pair + Networks + + + Sony Japan + + + Sony + Japan + + + Netcraft + + + Netcraft + + + + Weathernews + + + Weathernews + + + Supervalu + + + Supervalu + + + TELEHOUSE America + + + TELEHOUSE + America + + + Sophos Anti-Virus + + + Sophos + Anti-Virus + + + JMA Wired + + + JMA Wired + + + + és még sokan mások. + + + + + + A &os; Projektrõl + + A most következõ rész egy-két + háttérinformációt tár fel a + Projektrõl, többek között a + történetét, céljait és a benne + alkalmazott fejlesztési modellt. + + + + + + Jordan + Hubbard + Írta: + + + + + A &os; rövid története + + 386BSD Patchkit + Hubbard, Jordan + Williams, Nate + Grimes, Rod + + &os; Projekt + történet + + + A &os; Projekt valamikor 1993 kezdetérõl + eredeztethetõ, és részben a Nem + hivatalos 386BSD Patchkit-bõl nõtt ki, a + patchkit 3 legutolsó koordinátorának, Nate + Williamsnek, Rod Grimesnak és nekem + köszönhetõen. + + 386BSD + + Eredeti célunk a 386BSD köztes + állapotainak rögzítése lett volna, + amitõl olyan problémák + megoldását reméltük, melyeket a + patchkitek gyártása önmagában + egyszerûen nem tudott megoldani. Néhányan + még talán emlékeznek is a Projekt kezdeti + munkaneveire: 386BSD 0.5 vagy 386BSD + Interim, melyek pontosan erre a tényre + hivatkoztak. + + Jolitz, Bill + + A 386BSD eredetileg Bill Jolitz operációs + rendszere volt, amely ennél a pontnál már + közel egy éve nem került + ápolásra. Mivel a hozzátartozó + patchkit pedig napról napra duzzadt, egyre + kényelmetlenebbé vált a + karbantartása. Ezért egyhangúan úgy + döntöttünk, segítünk Billnek azzal, + hogy idõnként létrehozunk egy + letisztított változatot. Ez a + próbálkozásunk csúnyán + kudarcba fulladt, amikor Bill Jolitz hirtelen meggondolta + magát és visszalépett a Projekt + támogatásától. Semmilyen + egyértelmû útmutatást nem adott arra, + hogy mit csináljunk helyette. + + Greenman, David + Walnut Creek + + Nem tartott sokáig eldöntenünk, hogy ez a + cél továbbra is megéri a + fáradtságot, még Bill + segítsége nélkül is, ezért + felvettük a &os; nevet, melyet David + Greenmannek köszönhetünk. Kezdeti feladatainkat + a rendszer akkori felhasználóival tartott + egyeztetések után állítottuk fel. + Miután teljesen tisztán + láthatóvá vált, hogy a Projekt a + megvalósulás útján van, felvettem a + kapcsolatot a Walnut Creek-kel, terjesztési mód + után nézve azokra számára, akik nem + tudtak akkoriban könnyedén hozzáférni + az internethez. A Walnut Creek nem csak támogatta a &os; + CD-n történõ terjesztését, hanem + még egy számítógépet + és egy gyors internetkapcsolatot is a Projekt + számára bocsátott. A Walnut Creek szinte + példátlan mértékû, egy + akkoriban teljesen ismeretlen projektbe vetett hitével + nagyon nehezen lenne elképzelhetõ, hogy a &os; olyan + messzire jutott volna el, ahol ma is tart. + + 4.3BSD-Lite + Net/2 + Berkeley + 386BSD + Szabad Szoftver + Alapítvány + + Az elsõ CD-lemezen (és széles körben + az interneten is megjelenõ) változat a &os; 1.0 + volt, amely 1993 decemberében jelent meg. A + Berkeley-rõl származó 4.3BSD-Lite + (Net/2) szalagokon található + források alapján készült, + kiegészítve a 386BSD-bõl és a Szabad + Szoftver Alapítványtól (Free Software + Foundation, FSF) származó komponensekkel. + Elsõ kiadásként igen méltányos + sikert könyvelhetett el, melyet a még inkább + sikeres &os; 1.1-el folytattunk 1994 + májusában. + + Novell + Berkeley + Net/2 + AT&T + + Nagyjából ekkortájt + néhány váratlan sötét + felhõ bukkant fel az égbolton, ahogy a Novell + és a Berkeley hosszantartó pereskedése + lezárult a Berkeley Net/2 szalagjainak jogi + formáját illetõen. Ennek + eredményeképpen a Berkeley elfogadta, hogy a Net/2 + nagy része jelzáloggal terhelt + és a Novell tulajdona, aki pedig valamivel + korábban az AT&T-tõl szerezte. Ezért + cserébe a Berkeley megkapta a Novell + áldását a 4.4BSD-Lite + kiadásra, és amikor az véglesen kijön, + megszûnik a rajta levõ jelzálog. Emiatt az + összes Net/2 felhasználónak erõsen + javasolt volt váltani. Ez érintette magát + a &os;-t is, és így a Projekt 1994 + júliusáig kapott határidõt, hogy + leállítsa a Net/2 alapú termékeinek + szállítását. A megegyezés + értelmében a Projekt kiadhatott még egy + utolsó kiadást a határidõ elõtt, + amely végül a &os; 1.1.5.1 lett. + + A &os;-nek ekkor szembesülnie kellett azzal a + nehéz feladattal, hogy lényegében + újra fel kellett találnia magát, a teljesen + új és meglehetõsen hiányos 4.4BSD-Lite + bitjeitõl elindulva. A Lite + (egyszerûsített) kiadások abban az + értelemben számítottak egyszerûbbnek, + hogy a Berkeley kutatói (a különbözõ + jogi követelések miatt) + eltávolították a ténylegesen + beindítható rendszerhez szükséges + programrészek nagyobb részét, ill. a + 4.4-es verzió Intel processzorokra + készített portja nagyon is befejezetlen volt. A + Projektnek egészen 1994 novemberéig tartott, hogy + megtegye ezt a lépést, ugyanis ekkor jelent meg a + &os; 2.0 az interneten és (december vége + felé) CD-n. Annak ellenére, hogy még + némileg érdes maradt bizonyos helyeken, ez a + kiadás jelentõs sikereket ért el. Ezt + követte 1995 júniusában a sokkalta stabilabb + és könnyebben telepíthetõ + &os; 2.0.5. + + A &os; 2.1.5-öt 1996 augusztusában adtuk + ki, mely akkora népszerûségnek örvendett + az internet-szolgáltatók és kereskedelmi + közösségek körében, hogy a a + 2.1-STABLE elágazásból egy újabb + kiadást készítettünk. Ez volt a + &os; 2.1.7.1, amely 1997 februárjában jelent + meg és ezzel együtt a 2.1-STABLE + fejlesztését is zárta. Most már + csak karbantartást végzünk rajta, és + csak a biztonsági és egyéb kritikus + hibajavítások kerülnek bele + (RELENG_2_1_0). + + A &os; 2.2 fejlesztése 1996 novemberében + ágazott le az akkori fejlesztõi + (-CURRENT) ágból, mint a + RELENG_2_2-es ág. Ebbõl az elsõ teljes + kiadás (2.2.1) 1997 áprilisában jelent meg. + A 2.2-es ág mentén további kiadások + 1997 nyarán és õszén + készültek, melyek közül az utolsó + (2.2.8) 1998 novemberében jelent meg. Az elsõ + hivatalos 3.0-ás kiadás 1998 + októberében jött ki, ami egyúttal a + 2.2-es ág befejezésének kezdetét + jelentette. + + A fejlesztési fa 1999. január 20-án + került ismét elágaztatásra, melynek + eredménye a 4.0-CURRENT és 3.X-STABLE ágak + lettek. A 3.X-STABLE ágban a 3.1 1999. február + 15-én, a 3.2 1999. május 15-én, a 3.3 + 1999. szeptember 16-án, a 3.4 1999. december + 20-án és a 3.5 2000. június 24-én + jelent meg, melyet pár nappal késõbb egy + kisebb alverzió, a 3.5.1 követett, a Kerberosra + vonatkozó friss biztonsági + javításokkal. Ez lett egyben a 3.X ág + utolsó kiadása. + + Egy másik fontos elágaztatás 2000. + március 13-án történt, mellyel + életre kelt a 4.X-STABLE ág. Ebbõl + aztán számos kiadás született: a + 4.0-RELEASE 2000 márciusában mutatkozott be, az + utolsó 4.11-RELEASE pedig 2005 januárjában + látott napvilágot. + + A várva várt 5.0-RELEASE 2003. január + 19-én került bejelentésre. Közel + háromévnyi munka eredményeképpen ez + a kiadás indította meg a &os;-t a + többprocesszoros rendszerek és az + alkalmazások szálkezelésének + fejlettebb támogatásának + útján, valamint az &ultrasparc; és + ia64 platformok támogatása is + itt jelent meg elõször. Ezt a kiadást a 5.1 + követte 2003 júniusában. A + hozzátartozó -CURRENT ágból az + utolsó kiadás az 5.2.1-RELEASE volt, amely 2004 + februárjában mutatkozott be. + + A 2004 augusztusában, a RELENG_5 ág + létrehozását a 5.3-RELEASE követte, + és egyben a 5-STABLE ág kezdetét is + jelezte. A legújabb &rel2.current;-RELEASE + &rel2.current.date;ában jött ki. A RELENG_5 + ágból már nem fog készülni + több kiadás. + + A fejlesztési fa ezután 2005 + júliusában ágazott el ismét, + ezúttal a RELENG_6 ágnak adott életet. A + 6.0-RELEASE az 6.X ág elsõ kiadásaként + 2005 novemberében jelent meg. A legújabb + &rel.current;-RELEASE &rel.current.date;jában + jelentkezett. A RELENG_6 ágból további + kiadások is várhatóak. + + Jelen pillanatban a hosszabb távú + fejlesztések a 7.X-CURRENT (törzs) ágban + kapnak helyet, és a 7.X-bõl készült + idõközönkénti pillanatkiadások + folyamatosan elérhetõek CD-n (és + természetesen interneten keresztül is) a + pillanatkiadásokat tároló + szerverrõl. + + + + + + + + Jordan + Hubbard + Írta: + + + + + A &os; Projekt céljai + + + &os; Projekt + célok + + + A &os; Projekt célja, hogy olyan szoftvereket + kínáljon, amelyek tetszõlegesen, + bármilyen célra felhasználhatóak, + mindenféle megkötések nélkül. + Sokunk jelentõs energiát fektet a programokba + (és a Projektbe) és minden bizonnyal egyikünk + sem utasítana vissza semmilyen anyagi + ellenszolgáltatást se most, se késõbb, + de egyáltalán nem ragaszkodunk hozzá. + Hisszük, hogy elsõdleges + küldetésünk olyan programok + és programrészletek készítése + bárki számára és bármilyen + célra, melyeket a lehetõ legszélesebb + körben alkalmaznak és a lehetõ legtöbbet + hasznot hajtják. Ez, úgy érzem, az egyik + legalapvetõbb célja a szabad szoftvereknek, + és ez az, amit mi is lelkesen magunkénak + vallunk. + + GNU General Public License (GPL) + GNU Lesser General Public License (LGPL) + BSD licenc + + A forrásfánkban található GNU + General Public License (GPL) vagy a Library General Public + License (LGPL) alá esõ kódok + hozzáférhetõségére ezzel + szemben némileg több megszorítás + vonatkozik, legalább is inkább ami a + hozzáférhetõséget illeti. Mivel a + GPL-es szoftverek kereskedelmi használata további + bonyodalmakat vethet fel, ha lehetõségünk + adódik rá, inkább a sokkal enyhébb + BSD licenccel rendelkezõ szoftvereket + választjuk. + + + + + + + + Satoshi + Asami + Írta: + + + + + A &os; fejlesztési modellje + + + &os; Projekt + fejlesztési modell + + + A &os; fejlesztése egy nagyon nyitott és + rugalmas folyamat, szó szerint a világ minden + tájáról érkezõ + többszáznyi segítségbõl + építkezik, ahogy az látható is a + résztvevõink + listáján. A &os; fejlesztési + infrastruktúrája lehetõvé teszi, hogy + ez a többszáznyi résztvevõ az interneten + keresztül mûködjön együtt. + Folyamatosan várjuk az új fejlesztõket + és ötleteket, és mindazok, akik komolyabban + érdeklõdnek a Projekt iránt, egyszerûen + felvehetik velünk a kapcsolatot a &a.hackers; + címén. Egy &a.announce; is elérhetõ + azok számára, akik értesíteni + kívánják a többi &os; + felhasználót munkájuk fõbb + eredményeirõl. + + A &os; Projektrõl és annak fejlesztési + modelljérõl hasznos tudni az alábbiakat, + függetlenül attól, hogy egyedül vagy + másokkal szoros együttmûködésben + dolgozunk: + + + + A CVS repository + + + CVS + repository + + + Concurrent Versions System + CVS + + + + A &os; központi forrásfáját + CVS-en + (Concurrent Versions System) keresztül tartják + karban, amely egy, a &os;-vel is érkezõ, + szabadon elérhetõ verziókezelõ + rendszer. Az elsõdleges CVS + repository egy Santa Clara-i (California, USA) + számítógépen + található, ahonnan a világban + található rengeteg tükörszerverre + másolódik. A CVS-fa, mely tartalmazza a + -CURRENT és -STABLE ágakat, + könnyen lemásolható a saját + számítógépünkre is. + Ennek részleteirõl bõvebben a A forrásfa + szinkronizálása c. szakaszban + olvashatunk. + + + + + A committerek listája + + committerek + + + A hivatalos fejlesztõk + (committerek) azok az emberek, akik + a CVS-fához írási joggal + rendelkeznek, tehát módosítást + hajthatnak végre a &os; forrásaiban (a + committer kifejezés a &man.cvs.1; + commit parancsából + származik, amelyet arra használunk, hogy + felvigyük a módosításainkat a + CVS repository-ba). Javaslatainkat legjobban a + &man.send-pr.1; használatával tudjuk a + committerek elé tárni. Ha valamiért + ez mégsem mûködne, + megpróbálhatjuk õket elérni + közvetlenül a &a.committers; + címére küldött e-maillel. + + + + + A &os; Core Team + + Core Team + + + Ha a &os; Projekt egy vállalat lenne, akkor a + &os; Core Teamje + (irányító csoportja) foglalná + magában a vezetõséget. Ennek a + csoportnak elsõdleges feladata, hogy fenntartsa a + Projekt egészének + kondícióját és gondoskodjon + róla, hogy a megfelelõ irányba + haladjon. Az irányító csoportnak + ugyanígy feladata a megbízható + és odaadó committerek + tömörítése és az új + tagok beszervezése, ha a csoportból + kilépne valaki. A jelenlegi Core Team tagjait 2006 + júliusában választották meg. + A választásokat kétévente + tartják. + + Ebben a csoportban egyes tagoknak ezenfelül + még bizonyos területekre + felügyelniük is kell. Ez azt jelenti, hogy + felelõsek a rendszer valamelyik nagyobb + részének az elõírásoknak + megfelelõ mûködéséért. + A &os; fejlesztõk teljes felsorolása és + a hozzájuk tartozó területek + megtalálhatóak A + résztvevõk listjában. + + + A Core Team legtöbb tagja pusztán + önkéntesen vesz részt a &os; + fejlesztésében és nem + származik a projektbõl semmilyen anyagi + haszna. Emiatt a részvétel + nem tévesztendõ össze a + garantált + támogatással. A + vezetõségre vonatkozó + hasonlat nem teljesen pontos abban az értelemben, + hogy ezek az emberek lényegeben akaratuk + ellenére feladták az életüket + a &os; kedvéért! + + + + + + Külsõ résztvevõk + + résztvevõk + + + Végül, de nem utoljára, + következzen a fejlesztõk legnagyobb csoportja: + õk maguk a felhasználók, akik + rendszeres visszajelzéseket és + hibajavításokat küldenek. A &os; + kevésbé központosított + fejlesztésében elsõsorban a &a.hackers; + segítségével lehet felvenni a + fonalat, ahol ezeket a témákat + tárgyalják meg. A &os;-hez + kapcsolódó különféle + levelezési listákról többet a + ben olvashatunk. + + A &os; + résztvevõinek + listája hosszú és + még most is növekszik; miért nem + próbálunk mi is visszaadni valamit a + &os;-nek? + + Nem csak programozással lehet segíteni a + Projektet: a megoldandó feladatok + listáját megtalálhatjuk a &os; Projekt + honlapján. + + + + + Röviden összefoglalva, a fejlesztési + modellünk egymáshoz lazán + kapcsolódó koncentrikus körökként + szervezõdik. Ez a központosított modell a + &os;-felhasználók + kényelmét szolgálandó lett + kialakítva, akik így könnyedén tudnak + követni egyetlen központi kódbázist, + azonban megvan a lehetõségük a + részvételre is! Minden vágyunk egy olyan + megbízható operációs rendszer + kialakítása, amihez nagy mennyiségû + könnyen telepíthetõ és + használható alkalmazás tartozik — ez a + modell ennek elérésére nagyon is + megfelelõ. + + A haladás ütemének fenntartása + érdekében mindössze csak annyit + kérünk a leendõ &os; fejlesztõinktõl, + hogy legyenek legalább annyira elszántak, mint a + jelenlegi tagjaink! + + + + + Az aktuális &os; kiadások + + NetBSD + OpenBSD + 386BSD + Szabad Szoftver + Alapítvány + Berkeley + Számítógépes + rendszerek kutatócsoport (CSRG) + + A &os; egy szabadon elérhetõ, teljes + forráskóddal érkezõ 4.4BSD-Lite + alapú kiadás Intel &i386;, &i486;, &pentium;, + &pentium; Pro, &celeron;, &pentium; II, + &pentium; III, &pentium; 4 (vagy azzal kompatibilis), + &xeon;, DEC Alpha és Sun + &ultrasparc; alapú + számítógépekre. Elsõsorban a + Berkeley Számítógépes rendszerek + kutatócsoportjának szoftverein alapszik, + számos javítással a NetBSD, OpenBSD, 386BSD + és a Szabad Szoftver Alapítvány + munkásságának + köszönhetõen. + + A &os; 2.0 1994 végi megjelenése + óta a &os; teljesítménye, + megbízhatósága és tudása + drasztikusan megnövekedett. A legnagyobb + változtatás az újjáalakított, + összevont VM/állomány puffer + gyorsítótárral rendelkezõ + virtuális memória alrendszer, amely nem csak a + teljesítményt növeli, hanem csökkenti a + &os; memóriaigényét is, jobban + elfogadhatóvá téve ezzel az 5 MB-os + minimumot. A további fejlesztések + között találjuk a teljes NIS szerver és + kliens támogatást, az átviteli TCP + támogatását, az igény szerint + tárcsázó PPP-t, a beépített + DHCP támogatást, a továbbfejlesztett SCSI + alrendszert, az ISDN támogatást, az ATM, FDDI, + Fast és Gigabit Ethernet (1000 Mbit) + hálózati csatolók + támogatását, a legfrissebb Adaptec + gyártmányú vezérlõk fejlesztett + támogatását és a többezernyi + hibajavítást. + + Az alapeszközök mellé a &os; + felkínálja többezernyi ismert és + keresett program portjaiból álló + gyûjteményét. Ebben a pillanatban is + már több, mint &os.numports; port érhetõ + el! A portok listája a HTTP (WWW) szerverektõl, a + játékokon, nyelveken és sok mindenen + keresztül a szövegszerkesztõkig terjed. Az + egész Portgyûjtemény + közelítõleg &ports.size; tárhelyet + kíván, minden portot az eredeti forráshoz + viszonyított + különbségként + tárol. Ennek következtében a portok + frissítése sokkal könnyebb és nagyban + csökkenti a korábbi, 1.0-ás + Portgyûjteménynél kialakult + tárigényeket. Egy port + lefordításához egyszerûen csak be kell + lépnünk a telepíteni kívánt + program könyvtárába és ki kell adnunk + a make install parancsot, a többit a + rendszer elvégzi. Minden egyes telepítendõ + port teljes forrása dinamikusan vagy CD-rõl vagy + pedig FTP-n keresztül töltõdik le, így + csak a ténylegesen telepítendõk + lefordításához elegendõ + tárhelyre van szükség. Majdnem mindegyik + port elérhetõ elõre lefordított + csomag formájában azok + számára, akik nem kívánják + lefordítani a portokat, és melyeket egy + egyszerû parancs (pkg_add) + segítségével telepíteni is + tudják. A csomagokról és portokról + a ben tudhatunk meg többet. + + A &os; telepítésérõl és + használatáról most már számos + további nagyon hasznos dokumentumot találhatunk + bármelyik &os;-s számítógép + /usr/share/doc + könyvtárában. A helyileg telepített + kézikönyveket bármilyen HTML-t + megjeleníteni képes böngészõvel + meg el tudjuk olvasni az alábbi URL-eken: + + + + A &os; kézikönyv + + + /usr/share/doc/handbook/index.html + + + + + A &os; GYIK + + + /usr/share/doc/faq/index.html + + + + + Az aktuális (leginkább frissített) + verziók megtekinthetõek a címen. + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml new file mode 100644 index 0000000000..6bd62c06b9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml @@ -0,0 +1,1310 @@ + + + + + + + + Matteo + Riondato + Írta: + + + + + A jail alrendszer + + jail + + + Áttekintés + + Ez a fejezet a &os;-ben található jail + alrendszert, valamint annak használatát mutatja be + közelebbrõl. Az jail, melyet gyakran csak úgy + emlegetnek, mint a chroot környezetek + továbbfejlesztését, a rendszergazdák + számára ajánlott, nagyon sokoldalú + eszköz, de a haladó felhasználók is + hasznosnak találhatják. + + A fejezet elolvasása során + megismerjük: + + + + mi is az a jail, milyen célra + használható a &os;-ben; + + + + hogyan hozzunk létre, indítsunk el és + állítsunk le jaileket; + + + + a létrehozott jailek karbantartásainak + alapjait, a jailek belülrõl és + kívülrõl egyaránt. + + + + A jail alrendszerrõl még több hasznos + információt a következõ helyekrõl + tudhatunk meg: + + + + A &man.jail.8; man oldal. Ez tartalmazza a + jail segédprogram teljes + referenciáját — ez az a + karbantartásra használható eszköz, + amellyel el tudjuk indítani, le tudjuk + állítani és vezérelni tudjuk a + jaileket a &os;-ben. + + + + A levelezési listák és azok + archívumai. A &a.questions; archívuma és + a &a.mailman.lists;en található többi + levelezési lista rengeteg olvasnivalót tartogat + a jailekkel kapcsolatban. Mindig érdemes keresni + ezekben az archívumokban, vagy beküldeni a + kérdésünket a &a.questions.name; + levelezési listára. + + + + + + + A jail alrendszerhez kapcsolódó + fogalmak + + A fejezet további részében a + következõ fogalmakat fogjuk használni, hogy a + &os; jailekhez tartozó egyes részeit és azok + belsõ mûködését, valamint + kapcsolatukat a rendszer többi részével + még inkább érthetõvé + tegyük: + + + + &man.chroot.2; (parancs) + + A &os; azon rendszerhívása, amely egy + program és annak leszármazottjai + futtatása során megváltoztatja a + gyökérkönyvtárat. (change + root) + + + + + &man.chroot.2; (környezet) + + A chroot módban futó + programok környezete. Olyan erõforrásokat + foglal magában, mint mondjuk az + állományrendszer látható + része, az elérhetõ + felhasználói és csoport + azonosítók, hálózati + csatolók és egyéb folyamatok közti + kommunikációs mechanizmusok stb. + + + + + &man.jail.8; (parancs) + + Az a rendszerkarbantartó segédprogram, + amely lehetõvé teszi program + elindítását elzárt + környezetben. + + + + + befogadó (rendszer, program, + felhasználó stb.) + + Az elzárt környezetet + irányító rendszer. A befogadó + rendszer hozzá tud férni az összes + elérhetõ hardveres erõforráshoz, + képes az elzárt környezeten + kívül és belül futó + programokat vezérelni. Az egyik legfontosabb + különbség a befogadó és az + elzárt rendszer között, hogy azok a + korlátozások, amelyek az elzárt + környezetben rendszeradminisztrátori jogokkal + futó programokra vonatkoznak, nem + feltétlenül érvényesek a + befogadó rendszerben futóakra. + + + + + befogadott (rendszer, program, felhasználó + stb.) + + Olyan program, felhasználó vagy más + egyéb egyed, amely csak egy jailen keresztül, + korlátozottan tud hozzáférni az + erõforrásokhoz. + + + + + + + + Bevezetés + + Mivel a rendszeradminisztráció egy nehéz + és zavarba ejtõ feladat, rengeteg komoly eszköz + jött létre a rendszergazdák + életének megkönnyítésére. + Ezek az eszközök többnyire a rendszerek + telepítését, + beállítását és + karbantartását igyekeznek valamilyen módon + jobbá tenni. A rendszergazdák egyik feladata + úgy gondoskodni a biztonságról, hogy + közben a rendszer képes legyen ellátni eredeti + feladatát. + + A &os; rendszerek biztonságosságának + növelését hivatott egyik ilyen eszköz a + jails. Elõször a &os; 4.X + verziójában bukkant fel, de jelentõs + fejlõdésen ment keresztül a &os; 5.X + verziókban, aminek köszönhetõen sokkal + erõteljesebb és rugalmasabb alrendszerré + vált. A fejlesztése természetesen most is + folytatódik tovább, állandóan + fejlõdik a használhatósága, + teljesítménye, megbízhatósága + és biztonságossága. + + + Mi is az a jail? + + A BSD-szerû operációs rendszerekben + már a 4.2BSD óta megtalálható volt a + &man.chroot.2;. A &man.chroot.8; segédprogrammal meg + tudjuk megváltoztatni adott programok + számára a + gyökérkönyvtárat, és ezzel egy + biztonságos környezetet teremteni, távol a + rendszer többi részétõl. A chroot-tal + kialakított környezetben elinduló programok + nem tudnak hozzáférni a rajta kívül + található állományokhoz és + erõforrásokhoz. Ennek okán, ha egy ilyen + környezetben futó szolgáltatást + megtámadnak, az önmagában még teszi + lehetõvé a támadó + számára, hogy elérhesse az egész + rendszert. A &man.chroot.8; remekül + használható olyan egyszerûbb feladatok + megoldására, amelyek nem igényelnek + túlságosan sok rugalmasságot vagy bonyolult + és fejlett támogatást. A chroot + ötletének felmerülése óta azonban + számos kiskaput találtak már az + általa létrehozott környezetekben, és + habár ezek mindegyikét javították a + &os; újabb változataiban, teljesen + egyértelmûvé vált, hogy a + &man.chroot.2; nem biztosít járható utat a + szolgáltatások biztonságossá + tételéhez. Erre a feladatra egy új + alrendszert kellett kiépíteni. + + Ez az egyik oka annak, amiért az + jaileket kifejlesztették. + + A jailek által képviselt elzárás + ötlete több szempontból is a hagyományos + &man.chroot.2; környezet elvén alapszik. Egy + hagyományos &man.chroot.2; környezetben futó + programok korlátozása csupán abban + merül ki, hogy az állományrendszer melyik + részét láthatják. A rendszer + többi erõforrása (mint mondjuk a + felhasználók, futó programok vagy a + hálózati alrendszer) azonban továbbra is + megosztva marad a chroot környezetben és a + befogadó rendszerben futó programok + között. A jailek által alkalmazott + megoldás kibõvíti ezt a modellt, és + nem csak az állományrendszerre vonatkozó + hozzáférést virtualizálja, hanem + több más dolog mellett kiterjeszti ezt a + felhasználókra és a &os; + hálózati alrendszerére is. Az + elzárt környezetek + beállításaihoz elérhetõ + finomhangolási lehetõségekrõl + bõvebben a ban esik + szó. + + A jaileket az alább négy elem írja + le: + + + + A könyvtárszerkezet egy + részfája — attól a + résztõl indulva, ahonnan a jail kezdõdik. + A jailen belül futó programok nem + léphetnek ki ebbõl a + részfából. Az eredeti &man.chroot.2; + kialakításában merengõ + biztonsági hibák lehetõségei nem + veszélyeztetik a többi &os; jailt. + + + + A rendszer neve — a név, amelyet a jailen + belül használunk. Mivel a jaileket + elsõsorban hálózati + szolgáltatások kordában + tartására használjuk, a jailekhez + tartozó beszédes rendszernevek sokat tudnak + segíteni a rendszergazdák + munkájában. + + + + Egy IP-cím — a jailhez + tartozik és nem változtatható meg a + mûködése során. Egy jail + IP-címe általában egy már + létezõ hálózati csatoló + másik címe, de ez nem + szükségszerûen igaz minden esetben. + + + + Egy parancs — annak a programnak az + elérési útja, amelyet elzártan + kívánunk futtatni. Az elzárt + környezet gyökerétõl mérve + relatívan adjuk meg, és az adott + környezet típusától + függõen eltérõ lehet. + + + + Ezektõl eltekintve a jailek rendelkezhetnek + saját felhasználókkal és lehetnek + saját root + felhasználóik is. Természetesen a + root hatásköre csak az + elzárt környezetre korlátozódik, + és a befogadó rendszer + szemszögébõl az elzárt + root nem mindenható. + Ráadásul az elzárt + root felhasználó nem hajthat + végre semmilyen kritikus mûveletet a saját + &man.jail.8; környezetén kívül. A + root további + képességeirõl és + korlátozásairól lentiekben bõvebben is + említést teszünk a ban. + + + + + + A jailek létrehozása és + vezérlése + + Egyes rendszergazdák a jaileket a következõ + két típusba sorolják: teljes + jail, mely egy valódi &os; rendszerre emlékeztet, + és a szolgáltatás jail, mely + egyetlen, feltehetõen kiemelt jogokkal futó + alkalmazás vagy szolgáltatás + számára van elõkészítve. Ez a + besorolás csupán fogalmi szintû, a jail + felépítésének módját nem + befolyásolja. A &man.jail.8; man oldal részletesen + ismerteti a jailek létrehozását: + + &prompt.root; setenv D /itt/lesz/a/jail +&prompt.root; mkdir -p $D +&prompt.root; cd /usr/src +&prompt.root; make world DESTDIR=$D +&prompt.root; cd etc/ + + Ez a lépés nem szükséges a + &os; 6.0-ás vagy annál újabb + verziójában. + +&prompt.root; make distribution DESTDIR=$D +&prompt.root; mount -t devfs devfs $D/dev + + + + Érdemes elõször a jail helyét + megválasztani. Itt fog fizikailag helyet foglalni a + befogadó rendszer + állományrendszerén belül a jail. + Jó választás lehet erre a /usr/jail/jailnév, + ahol a jailnév a jailt + azonosító rendszernév. A /usr/ + állományrendszeren általában + elegendõ hely jut a jail + állományrendszerének, ami egy + teljes jail esetén + lényegében a &os; alaprendszer + alapértelmezett telepítésében + megtalálható összes állomány + másolatát tartalmazza. + + + + Ez a parancs fogja felmásolni a jail fizikai + helyének választott + könyvtár-részfába a + mûködéshez szükséges programokat, + függvénykönyvtárakat, man oldalakat + és így tovább. Minden a &os; megszokott + stílusában történik — + elõször mindent lefordít, majd az + eredményt feltelepíti a célként + megadott könyvtárba. + + + + A make + paramétereként megadott + distribution cél gondoskodik + az összes szükséges + konfigurációs állomány + felmásolásáról. Magyarán + szólva, átmásolja az összes + telepíhetõ állományt a /usr/src/etc/ + könyvtárból a jail /etc + alkönyvtárába, vagyis a $D/etc/ + könyvtárba. + + + + A jaileken belül a &man.devfs.8; + csatlakoztatása nem kötelezõ. + Másrészt azonban majdnem mindegyik + alkalmazás, a feladatától + függõen, legalább egy eszközhöz + hozzá akar férni. Nagyon fontos, hogy a + kezünkbe vegyük a eszközök + hozzáférésének + irányítását a jaileken belül, + mivel a helytelen beállítások + révén a támadók csúnya + dolgokat tudnak majd mûvelni. A &man.devfs.8; + mûködését a &man.devfs.8; és + &man.devfs.conf.5; man oldalakon is ismertetett + szabályrendszerek + irányítják. + + + + Ahogy a jailt telepítettük, a &man.jail.8; + segédprogrammal tudjuk elindítani. A &man.jail.8; + négy kötelezõ paramétert vár, + melyekre a ban ki is + térünk. Más paramétereket is + megadhatunk, például azt, hogy az elzárt + program egy adott felhasználó jogaival fusson. A + + paraméter használata a jail + típusától függ: egy + virtuális rendszer esetében a + /etc/rc jó választásnak + bizonyulhat, mivel ennek segítségével egy + valódi &os; rendszerindítási + folyamatát játszhatjuk le. Amennyiben elzárt + szolgáltatásról van + szól, az adott szolgáltatástól vagy + alkalmazástól függ. + + A jaileket gyakran már a rendszerindítás + során elindítják, amit a &os; + rc mechanizmusa nagyban meg is + könnyít. + + + + A rendszer indítása során + aktiválandó jailek listáját + vegyük hozzá a &man.rc.conf.5; + állományhoz: + + jail_enable="YES" # Ide NO-t írjunk, ha ki akarjuk kapcsolni +jail_list="www" # Szóközzel elválasztva soroljuk fel a jaileket + + + + A jail_list-ben szereplõ + összes jailt meg kell adnunk az ezeket + leíró &man.rc.conf.5;-beli + beállításokat: + + jail_www_rootdir="/usr/jail/www" # a jail gyökérkönyvtára +jail_www_hostname="www.example.org" # a jail neve +jail_www_ip="192.168.0.10" # a jail IP-címe +jail_www_devfs_enable="YES" # legyen-e devfs a jailen belül +jail_www_devfs_ruleset="www_ruleset" # az alkalmazott devfs szabályrendszer + + Az &man.rc.conf.5; állományban szereplõ + jailek esetén a /etc/rc szkript + fut le, tehát feltételezi, hogy az így + megadott jail egy teljes virtuális rendszer. A + szolgáltatások jailbe foglalásához + meg kell változtatnunk a jail alapértelmezett + parancsát is. Ezt a + jail_jailnév_exec_start + opció megfelelõ + beállításával tudjuk + megtenni. + + + Az összes itt elérhetõ opciót a + &man.rc.conf.5; man oldalon találhatjuk meg. + + + + Ha léteznek a megfelelõ bejegyzések az + rc.conf állományban, akkor az + /etc/rc.d/jail szkript is + használható arra, hogy a jaileket kézzel + indítsuk el vagy állítsuk le: + + &prompt.root; /etc/rc.d/jail start www +&prompt.root; /etc/rc.d/jail stop www + + A &man.jail.8; leállítására jelen + pillanatban még nem érhetõ el szabályos + módszer. Ez azért van, mert a szabályos + rendszerleállítást elvégzõ + parancsok nem használhatóak a jailen belül. + Emiatt a jaileket a legtisztábban úgy tudjuk + leállítani, ha kiadjuk az alábbi parancsot + magában a jailben vagy pedig a &man.jexec.8; + segédprogrammal a jailen kívülrõl: + + &prompt.root; sh /etc/rc.shutdown + + Errõl a témáról többet a + &man.jail.8; man oldalon olvashatunk. + + + + + Finomhangolás és karbantartás + + Számos opció állítható be a + jaileknél, és sokféle módon + vegyíthetjük a befogadó &os; rendszerünket + a jailekkel, ami által magasabb szintû + alkalmazásokat hozhatunk létre. Ebben a + részben bemutatunk: + + + + Néhány olyan + beállítást, amellyel finomhangolhatjuk a + telepített jailek által + megvalósított biztonsági + megszorítások viselkedését. + + + + A jailek kezelésére alkalmas + néhány olyan magasabb szintû + alkalmazást, amelyek elérhetõek a &os; + Portgyûjteményén keresztül, és + általános jail alapú megoldások + kialakításához + használhatóak. + + + + + A &os;-ben található finomhangoló + eszközök + + A jailek beállításainak + finomhangolását túlnyomórészt + &man.sysctl.8; változókkal végezhetjük + el. A sysctl-en belül egy speciális + részfában találhatunk erre alkalmas + beállításokat: ez a a &os; rendszermag + opciói között megtalálható + security.jail.*. Itt közüljük + a jailekre vonatkozó fontosabb sysctl + változók listáját, az + alapértelmezett értékeikkel együtt. A + nevek minden bizonnyal sokat elárulnak, de ha többet + szeretnénk tudni róluk, lapozzuk fel a + &man.jail.8; és &man.sysctl.8; man oldalakat. + + + + security.jail.set_hostname_allowed: + 1 + + + + security.jail.socket_unixiproute_only: + 1 + + + + security.jail.sysvipc_allowed: + 0 + + + + security.jail.enforce_statfs: + 2 + + + + security.jail.allow_raw_sockets: + 0 + + + + security.jail.chflags_allowed: + 0 + + + + security.jail.jailed: 0 + + + + Ezekkel a változókkal a + befogadó rendszer + rendszergazdája tud hozzátenni vagy elvenni a + root felhasználó + alapértelmezett határaihoz. Vegyük azonban + észre, hogy egyes korlátozások azonban + semmiképpen sem szüntethetõek meg. A + root nem csatlakoztathat és + választhat le állományrendszereket a + &man.jail.8; környezetben. Az elzárt + root nem tölthet be és + törölhet &man.devfs.8; szabályrendszereket, + tûzfal szabályokat sem, ill. nem végezhet + semmilyen olyan bármilyen más karbantartási + feladatot, amely a rendszermag adataiban + módosítást vonna maga után, + például nem állíthatja a rendszermag + securelevel (biztonsági + szintjének) értékét. + + A &os; alaprendszere tartalmazza azokat a + segédeszközöket, amelyekkel a rendszerben + aktív jailek információt tudjuk + megjeleníteni, vagy csatlakozni tudunk hozzájuk. + A &man.jls.8; és &man.jexec.8; parancsok részei az + alap &os; rendszernek, segítségükkel + elvégezhetõek az alábbi egyszerû + feladatokat: + + + + Ki tudjuk íratni az aktív jailek és + hozzájuk tartozó azonosítókat + (JID-eket), + IP-címeket, neveket és + útvonalakat. + + + + A befogadó rendszerbõl hozzá tudunk + csatlakozni egy futó jailhez, és parancsokat + tudunk futtatni a jailen belül vagy + karbantartási feladatokat tudunk elvégezni + magán a jailen belül. Ez + különösen hasznosnak bizonyulhat, amikor a + root felhasználó + szabályosan le akarja állítani a jailt. + A &man.jexec.8; segédprogrammal el tudunk + indítani egy parancsértelmezõt a jailen + belül, amibõl aztán + irányíthatjuk. Példa: + + &prompt.root; jexec 1 tcsh + + + + + + + Magasszintû karbantartó eszközök a + &os; Portgyûjteményében + + A sok külsõ karbantartó eszköz + közül az egyik legteljesebb és leghasznosabb a + sysutils/jailutils. Sok + kisebb alkalmazást tartalmaz, melyek + kibõvítik a &man.jail.8; + irányíthatóságát. + Bõvebb információkért + kérjük, látogassa meg a + hozzátartozó honlapot. + + + + + + A jailek alkalmazása + + + + + + Daniel + Gerzo + Írta: + + + + + Szolgáltatások jailbe + foglalása + + Ez a rész eredetileg &a.simon; oldalon + található írásán, valamint + Ken Tom (locals@gmail.com) átdolgozott + cikkén alapul. Itt megismerhetjük, hogyan + állítsunk be a &os; rendszerünkben egy + biztonsági réteget a &man.jail.8; + felhasználásával. Továbbá + feltételezzük, hogy ez a rendszer legalább + RELENG_6_0 verziójú és a fejezetben + korábban tárgyaltakat az olvasó teljes + mértékben megértette. + + + A kialakítás + + A jailek egyik legnagyobb gondja a frissítés + folyamatának lebonyolítása. Azért + jelent ez egyre inkább gondot, mert minden egyes jailt + újra fel kell építenünk a + frissítése során. Ez többnyire nem + okoz gondot egyetlen jail használata során, + mivel maga a frissítési folyamat + meglehetõsen egyszerû, azonban igen + idõigényessé és + fárasztóvá tud válni több + jail esetében. + + + Ez a példa a &os; képességeinek + haladó szintû ismeretét követeli + meg. Amennyiben az itt bemutatott lépesek + túlságosan is bonyolultnak + tûnnének, érdemes olyan egyszerûbb + rendszerek után nézni, mint mondjuk a + sysutils/ezjail, amely + egy egyszerûbb módszert kínál fel + a &os;-ben használt jailek + karbantartására, és nem is annyira + bonyolult, mint ez a példa. + + + A bemutatandó példa célja, hogy + feloldja az ilyen jellegû problémákat, + és ezért igyekszik a jailek között + mindent megosztani, ami csak lehetséges. Mindezt + biztonságosan éri el — + írásvédett &man.mount.nullfs.8; + állományrendszer használatával, + aminek köszönhetõen a frissítés + maga egyszerûbbé, az egyes + szolgáltatások + különzárása pedig + vonzóbbá válik. Ráadásul + egyúttal egy nagyon egyszerû módszert mutat + az új jailek hozzáadására + és a régi törlésére + ugyanúgy, mint a + frissítésükre. + + + Például ilyen + szolgáltatásokat kívánunk + szabályozni: egy HTTP szervert, + egy DNS szervert, egy + SMTP szervert és így + tovább. + + + Az itt szereplõ beállítás + céljai: + + + + Készítsünk egy egyszerûen + és könnyen átlátható + jailkezelési rendszert. Ebbõl tehát + következik, hogy ne kelljen + lefuttatni a teljes rendszer + telepítését minden egyes + jailre. + + + Könnyítsük meg az új jailek + hozzáadását és a régiek + eltávolítását. + + + Könnyítsük meg a már + létezõ jailek frissítését + és cseréjét. + + + Tegyük lehetõvé saját &os; + ágak futtatását. + + + Legyünk különösen + körültekintõek a biztonság + tekintetében, és igyekezzünk + minél jobban csökkenteni veszély + kockázatát. + + + Takarékoskodjunk a tárhellyel és + az állományrendszerrel, amennyire csak + lehet. + + + + Ahogy azt már korábban is + említettük, ez a kialakítás nagyban + építkezik egyetlen fõ sablonra, amely + írásvédetten kerül + csatlakoztatásra (nullfsen + keresztül) az egyes jailekben, valamint jailenként + egy-egy írható-olvasható eszközre. + Ez az eszköz lehet egy külön fizikai lemez, egy + partíció vagy egy vnode alapú &man.md.4; + eszköz. Ebben a példában + írható-olvasható + nullfs csatlakozásokat + használunk. + + Az állományrendszer kiosztása a most + következõ listában szerepel: + + + + Minden jailt a /home/j + könyvtárban csatlakoztatunk. + + + A /home/j/mroot + lesz az összes jail sablonja és + mindegyikük számára + írásvédett. + + + Minden jailnek létrehozunk egy üres + alkönyvtárat a /home/j + könyvtárban. + + + Minden jailnek lesz egy /s alkönyvtára, + amelyet a rendszer írható-olvasható + részére irányítunk. + + + Minden jailnek lesz egy saját + írható-olvasható része, amely + a /home/j/skel + könyvtáron alapszik. + + + Mindegyik elzárt terület (a jailek + írható-olvasható része) a + /home/js + könyvtárban jön létre. + + + + + Ez a kiosztás feltételezi, hogy a jaileket + a /home + partíción hozzuk létre. Ez + természetesen bármi másra + megváltoztatható, de akkor figyelnünk + kell erre minden egyes parancs kiadása + elõtt. + + + + + + A sablon létrehozása + + Ez a rész leírja a fõ sablon + létrehozásához szükséges + lépéseket. Ez a jailek számára + írásvédett lesz. + + Érdemes mindig frissíteni a &os; + rendszerünket a legújabb -RELEASE ágra. + Ehhez olvassuk el az ide tartozó fejezetet a + kézikönyvbõl. Abban az esetben, ha a + frissítés nem lenne megoldható, egy + make buildworld parancsot + mindenképpen le kell tudnunk futtatni. Ezenfelül + a sysutils/cpdup csomagra + is szükségünk van. Használni fogjuk a + &man.portsnap.8; segédprogramot is a &os; + Portgyûjtemény letöltéséhez. + Akik nem ismernék, a kézikönyv errõl + szóló fejezetében olvashatnak + róla. + + + + Elõször is, készítsük el + az írásvédett + állományrendszer + könyvtárszerkezetét, amely majd + tartalmazni fogja a jailek által használt + &os;-s programokat. Ezután lépjünk be + a &os; forrásfájának + könyvtárába és + telepítsük fel az + írásvédett + állományrendszert a sablonba: + + &prompt.root; mkdir /home/j /home/j/mroot +&prompt.root; cd /usr/src +&prompt.root; make installworld DESTDIR=/home/j/mroot + + + + Ezt követõen készítsük + elõ a jailek számára a &os; + Portgyûjteményt és &os; + forrásfát, melyek kellenek a + mergemaster + használatához: + + &prompt.root; cd /home/j/mroot +&prompt.root; mkdir usr/ports +&prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract +&prompt.root; cpdup /usr/src /home/j/mroot/usr/src + + + + Hozzuk létre a rendszer + írásvédett részének + vázát: + + &prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles +&prompt.root; mv etc /home/j/skel +&prompt.root; mv usr/local /home/j/skel/usr-local +&prompt.root; mv tmp /home/j/skel +&prompt.root; mv var /home/j/skel +&prompt.root; mv root /home/j/skel + + + + Használjuk a + mergemastert a + hiányzó konfigurációs + állományok + telepítésére. Szabaduljunk meg a + mergemaster által + készített felesleges + könyvtáraktól: + + &prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i +&prompt.root; cd /home/j/skel +&prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev + + + + Most pedig szimbolikusan linkeljük az + írható-olvasható + állományrendszert az + írásvédett + állományrendszerre. Ellenõrizzük, + hogy a szimbolikus linkek a megfelelõ s/ könyvtárakban + jöttek létre. Valós vagy rossz helyen + létrehozott könyvtárak + használata esetén a telepítés + nem fog sikerülni. + + &prompt.root; cd /home/j/mroot +&prompt.root; mkdir s +&prompt.root; ln -s s/etc etc +&prompt.root; ln -s s/home home +&prompt.root; ln -s s/root root +&prompt.root; ln -s ../s/usr-local usr/local +&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 +&prompt.root; ln -s ../../s/distfiles usr/ports/distfiles +&prompt.root; ln -s s/tmp tmp +&prompt.root; ln -s s/var var + + + + Utolsó lépésként hozzunk + létre egy + /home/j/skel/etc/make.conf + állományt az alábbi + tartalommal: + + WRKDIRPREFIX?= /s/portbuild + + A WRKDIRPREFIX + beállításával + lehetõvé válik a &os; portok jaileken + belüli fordítása. Ne felejtsük + el, hogy a portokat tartalmazó könyvtár + az írásvédett rendszer része! + Az átállított + WRKDIRPREFIX azonban megengedi, hogy a + fordítások az egyes jailek + írható-olvasható részeiben + történjenek. + + + + + + + A jailek létrehozása + + Most, miután teljesen elkészült a &os; + jailek sablonja, be is tudjuk állítani és + hozzá is tudjuk venni ezeket az + /etc/rc.conf állományhoz. + Ebben a példában 3 jail + létrehozását láthatjuk: + NS, MAIL és + WWW. + + + + Írjuk bele a következõ sorokat az + /etc/fstab állományba, + aminek köszönhetõen az egyes jailek + számára elérhetõvé + válik az írásvédett sablon + és a hozzájuk tartozó + írható-olvasható + területek: + + /home/j/mroot /home/j/ns nullfs ro 0 0 +/home/j/mroot /home/j/mail nullfs ro 0 0 +/home/j/mroot /home/j/www nullfs ro 0 0 +/home/js/ns /home/j/ns/s nullfs rw 0 0 +/home/js/mail /home/j/mail/s nullfs rw 0 0 +/home/js/www /home/j/www/s nullfs rw 0 0 + + + Az elsõ helyen nullával jelölt + partíciókat a &man.fsck.8; nem fogja + ellenõrizni a rendszer indulása + során, a második helyen nullával + jelölt partíciókat pedig nem fogja + menteni a &man.dump.8;. Mi egyáltalán nem + akarjuk, hogy az fsck + ellenõrizze vagy a dump + lementse a jailjeinkhez tartozó + írásvédett + nullfs-partícióinkat. + Ezért szerepel végig + 0 0 a fentebb szereplõ + fstab-bejegyzések + utolsó két oszlopában. + + + + + Állítsuk be a jaileket az + /etc/rc.conf-ban: + + jail_enable="YES" +jail_set_hostname_allow="NO" +jail_list="ns mail www" +jail_ns_hostname="ns.example.org" +jail_ns_ip="192.168.3.17" +jail_ns_rootdir="/usr/home/j/ns" +jail_ns_devfs_enable="YES" +jail_mail_hostname="mail.example.org" +jail_mail_ip="192.168.3.18" +jail_mail_rootdir="/usr/home/j/mail" +jail_mail_devfs_enable="YES" +jail_www_hostname="www.example.org" +jail_www_ip="62.123.43.14" +jail_www_rootdir="/usr/home/j/www" +jail_www_devfs_enable="YES" + + + Azért állítottuk a + jail_név_rootdir + változó értékét a + /usr/home + könyvtárra a /home könyvtár + helyett, mert a &os; + alaptelepítésében a /home könyvtár + fizikailag a /usr/home + könyvtárral egyezik meg. A + jail_név_rootdir + változó értékeként + megadott könyvtár nem + tartalmazhat szimbolikus linket, + máskülönben a jailek nem lesznek + hajlandóak létrejönni. Ennek + megállapításában a + &man.realpath.1; segédprogram lehet + segítségünkre. A + korlátozás részleteirõl a + &os;-SA-07:01.jail biztonsági + figyelmeztetésben olvashatunk. + + + + + Hozzuk létre az egyes jailek + írásvédett + állományrendszereihez szükséges + csatlakozási pontokat: + + &prompt.root; mkdir /home/j/ns /home/j/mail /home/j/www + + + + Telepítsük az + írható-olvasható sablont az egyes + jailekbe. Figyeljük meg a sysutils/cpdup + használatát, amellyel az egyes + könyvtárak pontos másolatait hozhatjuk + létre: + + &prompt.root; mkdir /home/js +&prompt.root; cpdup /home/j/skel /home/js/ns +&prompt.root; cpdup /home/j/skel /home/js/mail +&prompt.root; cpdup /home/j/skel /home/js/www + + + + Ebben a fázisban a jailek már + elkészültek és készen + állnak a futásra. Elõször + csatlakoztassuk az egyes jailekhez szükséges + állományrendszereket, majd indítsuk + el ezeket a /etc/rc.d/jail + szkripttel: + + &prompt.root; mount -a +&prompt.root; /etc/rc.d/jail start + + + + A jailek most már futnak. Az elindulásuk + ellenõrzéséhez használjuk a + &man.jls.8; parancsot. Valami ilyesmit láthatunk a + kiadása után: + + &prompt.root; jls + JID IP Address Hostname Path + 3 192.168.3.17 ns.example.org /home/j/ns + 2 192.168.3.18 mail.example.org /home/j/mail + 1 62.123.43.14 www.example.org /home/j/www + + Itt már be tudunk jelentkezni az egyes jailekbe, + új felhasználókat tudunk + készíteni vagy démonokat tudunk + beállítani. A JID oszlop + mutatja az egyes jailek azonosítási + számát. A 3-as JID + számú jailben az alábbi parancs + használatával karbantartási feladatokat + elvégezni: + + &prompt.root; jexec 3 tcsh + + + + Frissítés + + Idõrõl idõre adódhat, hogy + frissítenünk kell a rendszert a &os; egy + újabb változatára, vagy egy + biztonsági hiba javítása miatt, vagy + pedig a már meglevõ jailek számára + hasznos újítások bevezetése miatt. + Ez a kialakítás megkönnyíti a + korábban létrehozott jailjeink + frissítését. Továbbá + igyekszik minimalizálni a kiesésüket is, + mivel a jaileket csak a legutolsó pillanatban fogjuk + leállítani. Sõt, még az is + lehetõvé válik, hogy + visszaállítsuk a korábbi verziót, + ha véletlenül valami rosszul sülne el + menetközben. + + + + Elsõ lépéseként + frissítsük magát a befogadó + rendszert a megszokott módon. Ezután + hozzunk létre egy új + írásvédett sablont a /home/j/mroot2 + könyvtárban. + + &prompt.root; mkdir /home/j/mroot2 +&prompt.root; cd /usr/src +&prompt.root; make installworld DESTDIR=/home/j/mroot2 +&prompt.root; cd /home/j/mroot2 +&prompt.root; cpdup /usr/src usr/src +&prompt.root; mkdir s + + A installworld + lefuttatása létrehoz néhány + felesleges könyvtárat, melyeket + takarítsunk is el: + + &prompt.root; chflags -R 0 var +&prompt.root; rm -R etc var root usr/local tmp + + + + Hozzuk újra létre az + írható-olvasható szimbolikus + linkjeinket a fõ + állományrendszerre: + + &prompt.root; ln -s s/etc etc +&prompt.root; ln -s s/root root +&prompt.root; ln -s s/home home +&prompt.root; ln -s ../s/usr-local usr/local +&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 +&prompt.root; ln -s s/tmp tmp +&prompt.root; ln -s s/var var + + + + Most érkezett el az idõ, hogy + leállítsuk a jaileket: + + &prompt.root; /etc/rc.d/jail stop + + + + Válasszuk le az eredeti + állományrendszereket: + + &prompt.root; umount /home/j/ns/s +&prompt.root; umount /home/j/ns +&prompt.root; umount /home/j/mail/s +&prompt.root; umount /home/j/mail +&prompt.root; umount /home/j/www/s +&prompt.root; umount /home/j/www + + + Az írható-olvasható + állományrendszerek hozzá vannak + kapcsolva az írásvédett + állományrendszerhez (/s), ezért azokat + elõször le kell választani. + + + + + Mozgassuk el az útból a régi + írásvédett + állományrendszerünket és + váltsuk fel az újjal. Így + biztonsági mentésként és a + régi írásvédett rendszer + archívumaként továbbra is + rendelkezésre áll, ha valami baj + történne. Az itt használt + elnevezés az újonnan létrehozott + írásvédett + állományrendszer + dátumából ered. Mozgassuk át + az eredeti &os; Portgyûjteményt az új + állományrendszerre, hogy + megtakarítsunk némi tárhelyet + és + állományleírót: + + &prompt.root; cd /home/j +&prompt.root; mv mroot mroot.20060601 +&prompt.root; mv mroot2 mroot +&prompt.root; mv mroot.20060601/usr/ports mroot/usr + + + Most már készen áll az új + írásvédett sablon, így + már csak az állományrendszerek + újracsatlakoztatása és a jailek + újraindítása maradt: + + &prompt.root; mount -a +&prompt.root; /etc/rc.d/jail start + + + + A &man.jls.8; használatával + ellenõrizzük, hogy a jailek rendesen elindultak. Ne + felejtsük el jailenként lefuttatni a mergemastert + sem. A konfigurációs állományokat + és az rc.d szkripteket is frissítenünk kell + majd. + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/kernelconfig/Makefile b/hu_HU.ISO8859-2/books/handbook/kernelconfig/Makefile new file mode 100644 index 0000000000..95839d340a --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/kernelconfig/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= kernelconfig/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml new file mode 100644 index 0000000000..00c3090505 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml @@ -0,0 +1,2034 @@ + + + + + + + + Jim + Mock + Frissítette és átdolgozta: + + + + + + Jake + Hamby + Eredetileg írta: + + + + + A &os; rendszermag testreszabása + + + Áttekintés + + + rendszermag + saját rendszermag + készítése + + + A rendszermag a &os; operációs rendszer lelke. + Felelõs a memória kezelésért, a + biztonsági szabályozások + betartatásáért, a hálózat + mûködtetéséért, a + lemezhozzáférésért és sok + minden másért is. Miközben maga a &os; egyre + jobban konfigurálható dinamikusan, addig + alkalmanként elegedhetetlen, hogy + újrakonfiguráljuk és + újrafordítsuk a rendszermagot. + + A fejezet elolvasása során + megismerjük: + + + + miért lehet szükségünk egy + saját rendszermagra; + + + + hogyan készítsünk + konfigurációs állományt a + rendszermaghoz, vagy hogyan módosítsunk egy + már létezõt; + + + + hogyan használjuk a rendszermag + konfigurációs állományát + egy új rendszermag lefordítására + és létrehozására; + + + + hogyan telepítsük az új + rendszermagot; + + + + hogyan orvosoljuk a felmerülõ + problémákat. + + + + A fejezetben az összes példaként + bemutatásra kerülõ parancsot + root felhasználóként + kell kiadni a sikeres végrehajtásukhoz. + + + + + Miért készítsünk saját + rendszermagot? + + A &os; eredetileg ún. monolitikus + rendszermaggal rendelkezett. Ez azt jelenti, hogy a rendszermag + egyetlen nagy program volt, ami elõre rögzített + eszközöket ismert, és ha meg akartuk + változtatni a rendszermag + mûködését, akkor fordítanunk + kellett új rendszermagot, majd újra kellett + indítanunk vele a + számítógépet. + + Manapság azonban a &os; már inkább + afelé a megközelítés felé halad, + ahol a rendszermag funkcionalitásának nagy + részét mûködés közben az + igények szerint betölthetõ és + eltávolítható modulok adják. Ezzel + lehetõvé válik, hogy a rendszermag gyorsan + illeszkedjen az újonnan megjelenõ + hardvereszközökhöz (mint például a + laptopok PCMCIA-kártyáihoz), vagy olyan új + funkciókat tegyünk a rendszermaghoz, amelyek a + fordításánál nem voltak + feltétlenül szükségesek. Ezt a modellt + nevezik moduláris rendszermagnak. + + Ennek ellenére még mindig elkerülhetetlen, + hogy esetenként ne legyen szükség a rendszermag + statikus testreszabására. Ez a legtöbb esetben + azzal magyarázható, hogy vannak olyan + funkciók, amelyek túlságosan is mélyen + helyezkednek el a rendszermagban, ezáltal nem + tölthetõek be dinamikusan. Máskor viszont + egyszerûen azért nem lehetséges, mert + még senki sem szánt idõt az adott + funkcióhoz tartozó, dinamikusan betölthetõ + modul elkészítésére. + + Egy saját rendszermag készítése + azon legfontosabb próbatételek egyike, melyet + majdnem az összes BSD felhasználónak ki kell + állnia. Ez a folyamat, habár némileg + idõigényes, számos elõnyt tartogat &os; + rendszerünk számára. Eltérõen egy + GENERIC (általános) + rendszermagtól, amely rengeteg hardvert támogat, egy + saját rendszermag csak a saját + PC-nk hardverét ismeri. Ennek több elõnye is + van, például: + + + + A rendszerünk gyorsabban indul. Mivel a rendszermag + csak azokat a hardvereket fogja keresni, melyek a + rendszerünkben megtalálhatóak, + jelentõs mértékben le tud csökkeni az + induláshoz szükséges idõ. + + + Kisebb memóriahasználat. Egy saját + rendszermag gyakran kevesebb memóriát + emészt fel, mint a GENERIC + rendszermag, ami azért is fontos, mert a rendszermag + mindig benn van a memóriában. Emiatt egy + saját rendszermag elkészítése + különösen hasznos lehet egy kevés + fizikai memóriával rendelkezõ + rendszeren. + + + További hardverek támogatása. A + saját rendszermagunkba olyan eszközök + támogatását is beletehetjük, amelyek + nem szerepelnek a GENERIC rendszermagban, + mint például a + hangkártyákét. + + + + + + + + + + Tom + Rhodes + Írta: + + + + + A rendszerünkben levõ hardverek + összeszedése + + Mielõtt belevetnénk magunkat a rendszermag + beállításába, érdemes egy + leltárt készíteni a gépünkben + található különbözõ + eszközökrõl. Ahol a &os; nem elsõdlegesen + használt operációs rendszer, ott ehhez + elegendõ megnézni a jelenlegi rendszerben + található elemeket. Például az + µsoft; rendszerek + Eszközkezelõjében + (Device Manager) általában az összes + eszköz fontosabb adatait megtaláljuk. Magát az + Eszközkezelõt pedig a + Vezérlõpultból (Control Panel) + érhetjük el. + + + A µsoft.windows; egyes verzióiban a + Rendszer (System) ikonjára + kattintva megkapjuk azt a képernyõt, ahonnan + közvetlenül el tudjuk érni az + Eszközkezelõt. + + + Ha viszont nincs másik operációs rendszer + a gépünkön, akkor magunknak kell mindezeknek + utánanéznünk. Erre az egyik alkalmas + módszer a &man.dmesg.8; és a &man.man.1; parancsok + használata. A &os;-ben található + legtöbb meghajtónak van saját man oldala, ami + tartalmazza az általuk kezelt eszközök + listáját, illetve így a + rendszerindítás során észlelt + hardvereket nézhetjük vissza. Például + az alábbi sor arra utal, hogy a + psm meghajtó megtalálta a + gépünkhöz tartozó egeret: + + psm0: <PS/2 Mouse> irq 12 on atkdbc0 +psm0: [GIANT-LOCKED] +psm0: [ITHREAD] +psm0: model Generic PS/2 mouse, device ID 0 + + Ezután ezt a meghajtót vagy a rendszermagba kell + beépítenünk, vagy pedig a &man.loader.conf.5; + állományon keresztül + betöltenünk. + + Bizonyos esetekben a dmesg az + eszközök felkutatásának eredményei + helyett csak a rendszer üzeneteit mutatja. Ilyen + helyezetekben a teljes kimenet a + /var/run/dmesg.boot állományban + tekinthetõ meg. + + A hardverek manuális + felderítésének módja a &man.pciconf.8; + segédprogram kimenetének + böngészése, ami egy valamivel + részletesebb eredményt ad. Mint + például: + + ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 + vendor = 'Atheros Communications Inc.' + device = 'AR5212 Atheros AR5212 802.11abg wireless' + class = network + subclass = ethernet + + A pciconf paranccsal + kapott kimenet ezen része azt mutatja, hogy az + ath + meghajtó talált egy vezeték + nélküli Ethernet eszközt. Innen a man + ath paranccsal + érhetjük el a &man.ath.4; man oldalát. + + A &man.man.1; a paraméter + megadásával további hasznos + információkkal is tud szolgálni. A + fentiekbõl kiindulva például a + következõ paranccsal: + + &prompt.root; man -k Atheros + + le tudjuk kérdezni azokat a man oldalakat, amelyek + tartalmazzák az adott szót: + + ath(4) - Atheros IEEE 802.11 wireless network driver +ath_hal(4) - Atheros Hardware Access Layer (HAL) + + A hardvereszközeink listájával + felvértezve most már egy saját rendszermag + létrehozása sem lesz annyira ijesztõ. + + + + + Saját rendszermag készítése + és telepítése + + + rendszermag + készítése, + telepítése + + + Elõször is tegyünk egy rövidke + sétát a rendszermag könyvtárában. + A továbbiakban említendõ összes + könyvtár a /usr/src/sys + könyvtáron belül található, amely + /sys néven is elérhetõ. + Itt rengeteg alkönyvtár található, + mindegyikük a rendszermag különbözõ + részeit testesíti meg. Ezek közül most + számunkra a legfontosabb az + architektúra/conf + lesz, ahol majd létrehozzuk a saját rendszermagunk + konfigurációs állományát, + valamint a compile, ahol majd a + rendszermagunk fordítása történik. Itt + az architektúra lehet + i386, alpha, + amd64, ia64, + powerpc, sparc64 vagy + pc98 (a PC-k egyik, leginkább + Japánban elterjedt változata). Az adott + architektúra könyvtárában + található összes állomány csak + arra az architektúrára vonatkozik, a kód + többi része pedig gépfüggetlen és + közös az összes többi létezõ + és leendõ &os; platformon. Érdemes megfigyelni + a könyvtárak logikai elrendezését: + minden egyes ismert eszköz, állományrendszer + és bõvítmény saját + alkönyvtárral rendelkezik. + + A példák során ez a fejezet + feltételezi, hogy az i386 architektúrát + használjuk. Ha ez a mi esetünkben nem így + lenne, ne felejtsük el átírni bennük az + elérési útvonalakat a rendszerünk + architektúrájának megfelelõen. + + + Ha nem lenne + /usr/src/sys könyvtár a + rendszerünkben, valószínûleg még + nem telepítettük a rendszermag + forráskódját. Ezt a legkönnyebben + úgy tudjuk megtenni, ha root + felhasználóként elindítjuk a + sysinstall programot és ott + kiválasztjuk a Configure + (Beállítások), azon belül + Distributions (Terjesztések) + menüpontot, amiben válasszuk ki a + src, base + és sys terjesztéseket. + Ha nem szeretnénk erre a célra a + sysinstall programot + használni, de rendelkezésünkre áll a + hivatalos &os; CD, akkor a forrásokat + akár parancssorból is + telepíthetjük: + + &prompt.root; mount /cdrom +&prompt.root; mkdir -p /usr/src/sys +&prompt.root; ln -s /usr/src/sys /sys +&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - +&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - + + + Ezután lépjünk be az + i386/conf + könyvtárba és másoljuk le a + GENERIC konfigurációs + állományt a kedvünk szerinti nevûre. + Például: + + &prompt.root; cd /usr/src/sys/i386/conf +&prompt.root; cp GENERIC SAJÁT + + Általában a nevet végig nagybetûkkel + írjuk, és ha több &os;-s gépet is + üzemeltetünk különbözõ hardverekkel, + hasznosnak bizonyulhat megemlíteni benne az adott + gép rendszerének nevét is. Ebben a + példában ez most a + SAJÁT + lesz. + + + A rendszermagunk konfigurációs + állományát nem éppen a legjobb + ötlet a /usr/src + könyvtárban tárolni. Ugyanis könnyen + elõfordulhat, hogy egy rosszul sikerült + fordítás után egyszerûen csak + letöröljük az egész + /usr/src könyvtárat és + onnan kezdjük újra. Azonban csak ezután + juthat eszünkbe, hogy vele együtt bizony + letöröltük a saját rendszermagunk + konfigurációs állományát is! + Ehhez hasonlóan, közvetlenül a + GENERIC konfigurációs + állomány szerkesztése sem ajánlott, + mivel a források egy esetleges frissítésénél + könnyen felülíródhat és ezzel + együtt elvesznek a módosításaink + is. + + Tehát érdemes inkább valahol + máshol tárolnunk a rendszermagunk + konfigurációs állományát, + majd létrehozni rá egy szimbolikus linket a + i386 + könyvtárban. + + Valahogy így: + + &prompt.root; cd /usr/src/sys/i386/conf +&prompt.root; mkdir /root/kernel +&prompt.root; cp GENERIC /root/kernel/SAJÁT +&prompt.root; ln -s /root/kernel/SAJÁT + + + Most pedig a kedvenc szövegszerkesztõnkkel + lássunk neki a + SAJÁT + átírásának! Ha nemrég + telepítettük csak a rendszerünket, az egyetlen + elérhetõ szövegszerkesztõnk minden bizonnyal + a vi lesz. Róla most + túlságosan is bonyolult lenne leírást + adnunk, de az Irodalomjegyzékben + található könyvek közül sokban + elég jól bemutatják. Ezen kívül + a &os; ajánl egy könnyebben megtanulható + szövegszerkesztõt is az ee + személyében, amely a kezdõk + számára az ideális választás. + Nyugodtan átírhatjuk az elöl + található megjegyzéseket a saját + konfigurációnknak megfelelõen, vagy akár + azt is rögzíthetjük, hogy miben + tértünk el a GENERIC + beállításaitól. + + SunOS + + Ha fordítottunk már rendszermagot &sunos; vagy + más BSD operációs rendszer alatt, ez az + állomány ismerõsnek tûnhet. Ha viszont + más operációs rendszerek, mint + például a DOS felõl érkezünk, a + GENERIC konfigurációs + állomány egy kissé terebélyesnek + tûnhet számunkra, ezért A konfigurációs + állomány címû részt + figyelmesen és lassan olvassuk át. + + + Amennyiben a forrásfánkat a &os; projekt + legfrissebb forrásaival szinkronizáljuk, mindig + olvassuk el a /usr/src/UPDATING + állományt, mielõtt bármilyen + frissítéshez is kezdenénk. Itt + megtalálhatóak azok a fontos érintett + kérdések és területek, amely + külön figyelmet igényelnek a frissített + forráskód esetén. A + /usr/src/UPDATING mindig a &os; + forrásának legfrissebb változatához + igazodik, és ezért sokkal naprakészebb + információkat tartalmaz, mint ez a + kézikönyv. + + + Most pedig le kell lefordítanunk a rendszermag + forráskódját. + + + A rendszermag lefordítása + + + Lépjünk be a /usr/src + könyvtárba: + + &prompt.root; cd /usr/src + + + + Fordítsuk le a rendszermagot: + + &prompt.root; make buildkernel KERNCONF=SAJÁT + + + + Telepítsük az új rendszermagot: + + &prompt.root; make installkernel KERNCONF=SAJÁT + + + + + A &os; teljes forrásfájára + szükség van a rendszermag + lefordításához. + + + + Amikor egy saját rendszermagot + alapértelmezés szerint fordítunk, vele + együtt az összes modul is + lefordításra kerül. Ha viszont idõt + szeretnénk megtakarítani a rendszermag + frissítése során vagy csak a saját + moduljainkat akarjuk lefordítani, érdemes + átírnunk az /etc/make.conf + állományt a rendszermag + fordításának megkezdése + elõtt: + + MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs + + Ez a változó megadja a ténylegesen + lefordítandó modulok + listáját. + + WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs + + Ez a változó a + fordításból kihagyandó modulokat + sorolja fel. A rendszermag fordításának + folyamatában egyéb hasznosnak tekinthetõ + változókról a &man.make.conf.5; man + oldalán olvashatunk. + + + /boot/kernel.old + + Ezután az új rendszermag a /boot/kernel könyvtárba + kerül /boot/kernel/kernel néven + és a korábbi rendszermag pedig + /boot/kernel.old/kernel néven + õrzõdik meg. Most állítsuk le a rendszert + és indítsuk újra az új rendszermag + aktiválásához. Ha közben valamilyen + hiba történt volna, nézzük meg a fejezet + végén található, hibakeresésre + vonatkozó utasításokat. Mindenképpen + olvassuk el azt a részt, amely leírja, hogyan + állítsuk helyre a rendszerünket abban az + esetben, ha az új rendszermaggal nem indul. + + + A rendszerindítási folyamathoz tartozó + további állományok, mint + például a rendszerbetöltõ + (&man.loader.8;) és annak konfigurációs + állománya, a /boot + könyvtárban találhatóak. A + külsõ és saját modulok a /boot/kernel a + könyvtárba kerülhetnek, azonban a + felhasználóknak nagyon ügyelniük kell + rá, hogy az itt található modulok + szinkronban legyenek a lefordított rendszermaggal. + Ellenkezõ esetben a rendszerben + megbízhatatlanságot, hibákat + észlelhetünk. + + + + + + + + + Joel + Dahl + A &os; 6.X verziójához + igazította: + + + + + A konfigurációs állomány + + + rendszermag + NOTES + + NOTES + + rendszermag + konfigurációs + állomány + + + A konfigurációs állomány + általános formátuma igen egyszerû. + Minden sor tartalmaz egy kulcsszót és egy vagy + több paramétert. A további + egyszerûsítés kedvéért a + legtöbb sor csak egyetlen paramétert tartalmaz. + Bármi, ami egy # (kettõskereszt) + jelet követ, megjegyzésnek minõsül és + nem számít konfigurációs elemnek. A + most következõ részek bemutatják az egyes + kulcsszavakat abban a sorrendben, ahogy azokat a + GENERIC állományban is + megtalálhatjuk. Az + architektúrafüggõ opciók és + eszközök teljes listáját a + GENERIC állománnyal egy + könyvtárban levõ NOTES + állományban találhatjuk meg. Az + architektúrától független + opciókat a /usr/src/sys/conf/NOTES + állományban találjuk. + + + Ha olyan állományt akarunk + készíteni, amely tartalmazza az összes + lehetséges opciót, például + teszteléshez, futtassuk le root + felhasználóként az alábbi + parancsot: + + &prompt.root; cd /usr/src/sys/i386/conf && make LINT + + + + rendszermag + konfigurációs + állomány + + + Itt a GENERIC + rendszermag-konfigurációs állomány + ismertetése következik, az + érthetõség kedvéért + helyenként megjegyzésekkel kibõvítve. A + bemutatott állománynak majdnem pontosan meg kell + egyeznie a rendszerünkben található + /usr/src/sys/i386/conf/GENERIC + állománnyal. + + + a rendszermag beállításai + machine + + + machine i386 + + A számítógépünk + architektúráját adja meg. A + következõk valamelyikének kell lennie: + alpha, amd64, + i386, ia64, + pc98, powerpc, vagy + sparc64. + + + a rendszermag beállításai + cpu + + cpu I486_CPU +cpu I586_CPU +cpu I686_CPU + + A fenti beállítás + segítségével megadhatjuk, milyen + típusú processzor található a + számítógépünkben. Több + ilyen sorunk is lehet (ha például nem lennénk + biztosak benne, hogy a I586_CPU vagy + I686_CPU értéket kellene + megadnunk), de a saját rendszermagunk + összeállításához érdemes + csak egyet meghagynunk. Ha nem ismerjük pontosan a + processzorunk típusát, vessünk egy + pillantást a /var/run/dmesg.boot + állományra és keressük ki + belõle. + + + a rendszermag beállításai + ident + + + ident GENERIC + + Ez a rendszermag azonosítója. + Változtassuk meg rendszermagunk nevére, legyen + például + SAJAT, ha a + korábbi utasításokat követtük. Az + ident után írt sztring fog + megjelenni a rendszermag neve mellett a rendszer + indítása során, ezért fontos, hogy az + új rendszermagunknak más nevet adjunk, ha meg + akarjuk különböztetni az általában + használttól (például egy + tesztelésre szánt rendszermagot akarunk + készíteni). + + # ha a /boot/device.hints használata helyett statikusan bele akarjuk fordítani +#hints "GENERIC.hints" # itt szerepelnek a device hintek + + A &man.device.hints.5; használható az + eszközmeghajtók + beállítására. A &man.loader.8; a + rendszer indítása során + alapértelmezés szerint a + /boot/device.hints állományt + olvassa be erre a célra. A hints + beállítás használatával ezeket + a hinteket statikusan bele tudjuk + építeni a rendszermagba. Ebben az esetben nincs + szükségünk külön + device.hints állomány + létrehozására a /boot + könyvtárban. + + makeoptions DEBUG=-g # a nyomkövetéshez szükséges gdb(1) szimbólumok beépítése + + A &os; hagyományos fordításának + folyamata során a rendszermagot a + használatával készítjük el, + aminek köszönhetõen hibakeresési + információkat tudunk átadni a &man.gcc.1; + fordítónak. + + options SCHED_4BSD # 4BSD ütemezõ + + A &os; tradicionális és alapértelmezett + rendszerütemezõje. Ne változtassuk meg! + + options PREEMPTION # a rendszerszálak megszakíthatóságának engedélyezése + + Ha engedélyezzük, a rendszermagban futó + szálakat meg tujdák szakítani más, + magasabb prioritású szálak. Ez segít + növelni a rendszer válaszadási + sebességét és csökkenti a + megszakításokat kezelõ szálak + várakozását. + + options INET # hálózatkezelés + + A hálózatkezelés + támogatása. Ne töröljük ki, + még akkor sem, ha nem tervezzük + hálózatra kapcsolni a rendszert. Sok programnak + szüksége van legalább az ún. loopback + típusú hálózat + támogatására (vagyis a + számítógépünkön belüli + hálózati kapcsolatokra), ezért ez + feltétlenül kötelezõ! + + options INET6 # IPv6 kommunikációs prokotollok + + Engedélyezi az IPv6 kommunikációs + protokollok használatát. + + options FFS # Berkeley Fast Filesystem + + Ez a legalapvetõbb merevlemezes + állományrendszer. Hagyjuk meg, ha + merevlemezrõl akarjuk indítani a + rendszerünket. + + options SOFTUPDATES # az FFS Soft Updates támogatása + + Ez a beállítás engedélyezi a + rendszermagban a Soft Updates használatát, amely + segít felgyorsítani a lemez írási + sebességét. Ha már a rendszermag ezt a + funkcionalitást ismeri, akkor még külön az + egyes lemezeken is engedélyezni kell. Nézzük + meg a &man.mount.8; kimenetét, hogy lássuk, a + rendszerünkben levõ lemezek közül melyiken van + ténylegesen engedélyezve a Soft Updates + használata. Ha nem látjuk benne sehol sem a + soft-updates opciót, akkor azt + (meglevõ állományrendszerek esetén) a + &man.tunefs.8; vagy (új állományrendszerek + esetén) a &man.newfs.8; parancsokkal tudjuk + bekapcsolni. + + options UFS_ACL # a hozzáférés-vezérlési listák (ACL) támogatása + + Ezzel a beállítással + engedélyezhetjük a rendszermagban a + hozzáférés-vezérlési + listák támogatását. Ez a + kiterjesztett attribútumok és az + UFS2 használatára + támaszkodik. Ezt a lehetõséget + részleteiben a ban + tárgyaljuk. Az ACL + alapértelmezés szerint támogatott, és + korábban már használtuk, akkor + semmiképpen se kapcsoljuk ki, mert ezzel az eddig + létrehozott + hozzáférés-vezérlési + listáink érvénytelenné, az + állományaink pedig védtelenné + válnak. + + options UFS_DIRHASH # nagyobb könyvtárak esetén gyorsulást hoz + + Ezzel a beállítással némi + memória feláldozása árán fel + tudjuk gyorsítani a nagyobb könyvtárakon + végzett lemezmûveletek sebességét, + ezért ezt a beállítást érdemes + nagyobb szerverekre vagy interaktívitást + igénylõ munkaállomásokra tartogatni, + és eltávolítani olyan esetekben, amikor a + &os;-t egy olyan kisebb számítógépeken + használjuk, ahol a memória kevés és a + lemezmûveletek sebessége kevésbé fontos, + például egy tûzfalon. + + options MD_ROOT # tudunk memórialemezrõl is rendszert indítani + + Ezzel az opcióval engedélyezni tudjuk a rendszer + indítását memóriában + tárolt virtuális lemezekrõl. + + + a rendszermag beállításai + NFS + + + a rendszermag beállításai + NFS_ROOT + + + options NFSCLIENT # hálózati állományrendszer (NFS) kliens +options NFSSERVER # NFS szerver +options NFS_ROOT # NFS használható gyökérként is, kell hozzá az NFSCLIENT + + A hálózati állományrendszer + támogatása. Hacsak nem akarunk TCP/IP-n + keresztül állományrendszereket csatlakoztatni + egy &unix; állományszerverrõl, + kivethetjük. + + + a rendszermag beállításai + MSDOSFS + + + options MSDOSFS # MS-DOS állományrendszer + + Az &ms-dos; állományrendszer. Hacsak nem + akarunk DOS-ra formázott merevlemezes + partíciót csatlakoztatni a + rendszerindítás során, nyugodtan + elhagyhatjuk. A fentebb leírtak szerint az elsõ olyan + alkalommal automatikusan betöltõdik, amikor egy DOS + partíciót csatlakoztatni akarunk. Sõt, a + nagyszerû emulators/mtools szoftver + segítségével külön + csatlakoztatás és leválasztás + nélkül tudunk DOS-os floppykat olvasni (és az + MSDOSFS-re egyáltalán nincs is + szüksége). + + options CD9660 # ISO 9660 állományrendszer + + Az ISO 9660 állományrendszert a CD-k + használják. Vegyük ki, ha nincs a + számítógépben CD-ROM meghajtó + vagy csak ritkán fogunk CD-ket csatlakoztatni (mivel a + hozzátartozó modul magától + betöltõdik az elsõ adat CD csatlakoztatása + során). Az audio CD-k nem használják ezt az + állományrendszert. + + options PROCFS # a futó programok állományrendszere (szükséges hozzá a PSEUDOFS) + + A futó programok állományrendszere. Ez + csak a /proc könyvtárra + csatlakoztatott színlelt + állományrendszer, amely + segítségével a &man.ps.1; és + hozzá hasonló programok képesek több + információt adni a futó programokról. + A PROCFS használata a legtöbb + esetben nem indokolt, mivel a különféle + nyomkövetõ és felügyeleti eszközök + képesek a PROCFS használata + nélkül is mûködni: + alapértelmezés szerint a telepített + rendszerek sem csatlakoztatják ezt az + állományrendszer. + + options PSEUDOFS # pszeudo állományrendszerek támogatása + + A 6.X verziójú rendszermagokban a + PROCFS használatához + engedélyeznünk kell a PSEUDOFS + használatát is. + + options GEOM_GPT # GUID típusú partíciós táblák használata + + Ezzel a beállítással engedélyezni + tudjuk nagy mennyiségû partíció + támogatását egyetlen lemezen. + + options COMPAT_43 # kompatibilitás fenntartása a 4.3 BSD-vel [NE TÖRÖLD!] + + Kompatibilitás a 4.3BSD-vel. Ne vegyük ki, mert + bizonyos programok furcsán fognak viselkedni a + hiánya esetén. + + options COMPAT_FREEBSD4 # kompatibilitás a &os;4-el + + Ez a beállítás szükséges a + &os; 5.X &i386; és Alpha rendszerein a &os; + korábbi verzióihoz fordított + alkalmazások támogatásához, melyek + régebbi rendszerhívásokat használnak. + Az összes &i386; és Alpha típusú + rendszeren ajánlott engedélyezni, mivel itt + elõfordulhatnak régebbi alkalmazások. A + többi platform, mint például az ia64 vagy a + &sparc64;, támogatása csak az 5.X verzióban + jelent meg, ezért ott nincs szükség + erre. + + options COMPAT_FREEBSD5 # kompatibilitás a &os;5-el + + Ezt a beállítást a &os; 6.X + és afeletti verziókban kell használni az + olyan &os; 5.X verziókra fordított + alkalmazások futtatásának + támogatásához, melyek a &os; 5.X + rendszerhívásait használják. + + options SCSI_DELAY=5000 # a SCSI eszközök keresése elõtt késleltetés (ezredmásodpercben) + + Ezzel a beállítással a rendszermag 5 + másodpercig várakozni fog a SCSI eszközök + keresése elõtt. Ha kizárolag csak IDE + típusú merevlemezeink vannak, nyugodtan + kihagyhatjuk, máskülönben érdemes a + rendszerindítás gyorsítása + érdekében próbáljuk meg + csökkenteni ezt az értéket. + Természetesen, ha így teszünk és a &os; + nem tudja felismerni a SCSI eszközeinket, akkor + növeljük meg valamennyivel. + + options KTRACE # a ktrace(1) támogatása + + Engedélyezi a rendszermagban futó rutinok + nyomonkövetését, ami hasznos lehet a + hibák keresése során. + + options SYSVSHM # SYSV-szerû osztott memória + + Ezzel a beállítással engedélyezni + tudjuk a rendszerben a System V típusú osztott + memória használatát. Leggyakrabban az X + rendszer XSHM kiterjesztése használja, amelyen + keresztül számos mûveletigényes grafikus + program mûködését fel lehet + gyorsítani. Ha X-et használunk, mindenképpen + szükségünk lehet erre. + + options SYSVMSG # SYSV-szerû üzenetsorok + + A System V üzenetek támogatása. Ez a + beállítás csupán néhány + száz byte-tal növeli a rendszermagot. + + options SYSVSEM # SYSV-szerû szemaforok + + A System V szemaforok támogatása. Nem + túl gyakran alkalmazzák ezeket, de ez csak + néhány száz byte-ot tesz hozzá a + rendszermaghoz. + + + A &man.ipcs.1; parancs + paraméterével ki tudjuk listáztatni azokat + futó programokat, amelyek ezen System V + eszközöket használják. + + + options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B valósidejû kiterjesztések + + A &posix; 1993-as változatában megjelent + valósidejû bõvítések. A + Portgyûjteményben megjelenõ egyes + alkalmazások használják ezeket (mint + például a + &staroffice;). + + options KBD_INSTALL_CDEV # CDEV bejegyzés létrehozása a /dev könyvtárban + + Ez a beállítás kell ahhoz, hogy + /dev könyvtárban létre + tudjunk hozni eszközleírókat a + billentyûzethez. + + options ADAPTIVE_GIANT # adaptív Giant mutexek + + A Giant annak a kölcsönös + kizárási mechanizmusnak (blokkolt mutexnek) a neve, + amely a rendszermag erõforrásainak jelentõs + részét védi. Manapság ez már + egy elfogadhatatlanul szûk keresztmetszet képez a + teljesítményben, ezért a fejlesztésben + fokozatosan felváltják az egyes + erõforrásokat külön-külön + védõ zárolások. Az + ADAPTIVE_GIANT beállítás + hatására a Giant a helyzethez igazodóan + forgó (spin) mutexek közé kerül. Ez azt + jelenti, hogy amikor egy szál zárolni akarja a Giant + mutexet, de ezt már megtette elõtte egy másik + processzorról futó szál, a szál + tovább fut és várakozni fog a + zárolás feloldására. Normális + esetben ugyanis egy szál továbbra is blokkolt + állapotban marad, várakozva a futásra. Ha + nem tudunk dönteni, hagyjuk változatlanul. + + + Hozzátesszük, hogy a &os; 8.0-CURRENT és + késõbbi változataiban az össszes mutex + alapértelmezés szerint adaptív, hacsak meg + nem adjuk a NO_ADAPTIVE_MUTEXES + beállítást. Ennek + eredményeképpen a Giant most már + alapból adaptív, ezért esetükben az + ADAPTIVE_GIANT nem szerepel a rendszermag + beállításai között. + + + + a rendszermag beállításai + SMP + + + device apic # I/O APIC + + Az apic nevû eszköz + engedélyezésével használhatjuk a + hardveres APIC-ot a megszakítások + vezérlésére. Az + apic alkalmazható egy- és + többprocesszoros rendszerek esetén is egyaránt, + de az SMP rendszermagoknál szükséges. + Több processzor támogatásánál + mindenképpen tegyük hozzá az options + SMP beállítást is. + + + Az apic eszköz csak az i386 architektúrán + létezik, ezért a többi + architektúrán nem szabad használnunk ezt a + beállítást. + + + device eisa + + Abban az esetben engedélyezzük, ha EISA-s + alaplapunk van, ezzel aktiváljuk az EISA buszra + csatlakoztatott eszközök automatikus + felismerését és + beállíthatóságát. + + device pci + + Tegyük hozzá a konfigurációs + állományhoz, ha PCI-os alaplapuk van. Ezzel + engedélyezhetjük a PCI kártyák + automatikus felismerését és a PCI és + ISA buszok közti + átirányítást. + + # Hajlékonylemezes meghajtók +device fdc + + Ez a hajlékonylemezes meghajtó + vezérlõje. + + # ATA és ATAPI eszközök +device ata + + Ez az eszközmeghajtó felelõs az összes + ATA és ATAPI eszközért. A modern + számítógépeken csak egyszer kell + megadnunk a device ata sort a + beállítások között az összes + PCI-os ATA/ATAPI eszköz felismeréséhez. + + device atadisk # ATA lemezmeghajtók + + Az ATA lemezmeghajtók + támogatásához erre van még + szükség a device ata + mellett. + + device ataraid # ATA RAID-meghajtók + + Az ATA RAID-meghajtók kezeléséhez erre a + sorra van szükség a device ata + mellett. + + +device atapicd # ATAPI CD-meghajtók + + Az ATAPI CD-meghajtók használatához ezt + is tegyük a konfigurációba a device + ata mellé. + + device atapifd # ATAPI floppy meghajtók + + A device ata használata mellett erre + van még szükségünk az ATAPI floppy + meghajtók kezeléséhez. + + device atapist # ATAPI szalagos meghajtók + + Az ATAPI szalagos egységek ezt a sort is tegyük a + konfigurációba a device ata + mellé. + + options ATA_STATIC_ID # statikus eszközszámozás + + Ezzel a beállítással a + vezérlõk számozása állandó + lesz. Nélküle az eszközszámok dinamikusan + kerülnek kiosztásra. + + # SCSI vezérlõk +device ahb # EISA AHA1742 család +device ahc # AHA2940 és integrált AIC7xxx eszközök +options AHC_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek + # bitmezõit. Kb. 128 KB-al növeli a méretét. +device ahd # AHA39320/29320 és integrált AIC79xx eszközök +options AHD_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek + # bitmezõit. Kb. 215 KB-al növeli a méretét. +device amd # AMD 53C974 (Teckram DC-390(T)) +device isp # Qlogic család +#device ispfw # a QLogic HBA firmware-e, többnyire modul +device mpt # LSI-Logic MPT-Fusion +#device ncr # NCR/Symbios Logic +device sym # NCR/Symbios Logic (újabb chipsetek, illetve az `ncr' típusúak) +device trm # Tekram DC395U/UW/F DC315U csatolók + +device adv # Advansys SCSI-csatolók +device adw # Advansys wide SCSI-csatolók +device aha # Adaptec 154x SCSI-csatolók +device aic # Adaptec 15[012]x SCSI-csatolók, AIC-6[23]60. +device bt # Buslogic/Mylex MultiMaster SCSI-csatolók + +device ncv # NCR 53C500 +device nsp # Workbit Ninja SCSI-3 +device stg # TMC 18C30/18C50 + + SCSI-vezérlõk. Vegyük ki azokat, amelyekkel + ténylegesen nem rendelkezünk. Ha csak IDE + eszközeink vannak a rendszerünkben, az összeset + eltávolíthatjuk. A + _REG_PRETTY_PRINT + végzõdésû sorok a megfelelõ + meghajtók hibakerési + beállításait takarják. + + # SCSI-perifériák +device scbus # SCSI-busz (kell a SCSI-hoz) +device ch # SCSI médiumváltók (media changer) +device da # közvetlen hozzáférés (lemezek) +device sa # soros hozzáférés (szalag stb.) +device cd # CD +device pass # áteresztõ eszköz (közvetlen SCSI hozzáférés) +device ses # SCSI környezeti szolgáltatások (és SAF-TE) + + SCSI-perifériák. Itt is érvényes, + hogy kivethetjük azokat az eszközöket, amelyekkel + nem rendelkezünk. De ha csak IDE hardvereink vannak, + teljesen eltávolíthatjuk ezeket. + + + Annak ellenére, hogy valójában nem + igazi SCSI-eszközök, az USB-s &man.umass.4; és + még néhány más egyéb + meghajtó is használja a SCSI alrendszert. Emiatt + semmiképpen se távolítsuk el a SCSI + támogatást a rendszerünkõl abban az + esetben, ha ilyen meghajtókat is használni + szándékozunk. + + + # a SCSI alrendszerhez kapcsolódó RAID-vezérlõk +device amr # AMI MegaRAID +device arcmsr # Areca SATA II RAID +device asr # DPT SmartRAID V, VI és Adaptec SCSI RAID +device ciss # Compaq Smart RAID 5* +device dpt # DPT Smartcache III, IV - lásd a NOTES állományt +device hptmv # Highpoint RocketRAID 182x +device rr232x # Highpoint RocketRAID 232x +device iir # Intel Integrated RAID +device ips # IBM (Adaptec) ServeRAID +device mly # Mylex AcceleRAID/eXtremeRAID +device twa # 3ware 9000 series PATA/SATA RAID + +# RAID vezérlõk +device aac # Adaptec FSA RAID +device aacp # SCSI áteresztõ az aac-hez (kell hozzá a CAM) +device ida # Compaq Smart RAID +device mfi # LSI MegaRAID SAS +device mlx # Mylex DAC960 család +device pst # Promise Supertrak SX6000 +device twe # 3ware ATA RAID + + Az ismert RAID-vezérlõk. Ha + közülük egyikkel sem rendelkezünk, + távolítsuk el ezeket a + konfigurációból. + + # az atkbdc0 vezérli a billentyûzetet és a PS/2-es egeret +device atkbdc # AT billentyûzet vezérlõ + + A billentyûzet vezérlõje + (atkbdc) az AT-s billentyûzet és a + PS/2 stílusú pozícionáló + eszközök vezérléséhez + szükséges I/O szolgáltatásokat + biztosítja. Erre a vezérlõre a + billentyûzet meghajtójának + (atkbd) és a PS/2 + pozícionáló eszközök + eszközmeghajtójának (psm) is + szüksége van. + + device atkbd # AT billentyûzet + + Az atkbd meghajtó, a + atkbdc vezérlõvel együtt, adja + a hozzáférést az AT billentyûzet + vezérlõre csatlakoztatott AT 84 és a fejlettebb + AT billentyûzetek felé. + + device psm # PS/2 egér + + Használjuk ezt az eszközt, ha az egerünk a + PS/2 portra csatlakozik. + + device kbdmux # billentyûzet multiplexer + + A billentyûzet multiplexer alapszintû + támogatása. Ha nem kívánunk a + jövõben egynél több billentyûzetet + csatlakoztatni a rendszerünkre, nyugodt szívvel + kivehetjük ezt a sort. + + device vga # VGA videokártya meghajtó + + Videokártya meghajtó. + + +device splash # üdvözlõképernyõk és képernyõkímélõk támogatása + + Nyissunk egy üdvözlõképernyõvel! A + képernyõkímélõknek is + szüksége van erre az eszközre. + + # a syscons az alapértelmezett konzolmeghajtó, hasonlít a SCO konzolra +device sc + + Az sc az alapértelmezett + meghajtó a konzolok számára, és sokban + hasonlít a SCO konzolra. Mivel a legtöbb + teljesképernyõs program a termcap + termináladatbázis könyvtáron + keresztül éri el a konzolt, nem igazán + számít, hogy ezt vagy a + VT220-kompatibilis vt + konzolmeghajtót használjuk. Ha bármilyen + gondunk lenne a teljesképernyõs programok + futtatásával ezen a konzolon, a + bejelentkezéskor állítsuk a + TERM környezeti változónk a + scoansi értékre. + + # ezzel tudjuk engedélyezni a pcvt (VT220-kompatibilis) konzolmeghajtót +#device vt +#options XSERVER # az X szerver támogatása vt konzolon +#options FAT_CURSOR # telt kurzor használata + + Ez a VT220-kompatibilis konzolmeghajtó, amely + visszafele kompatibilis a VT100/102-vel is. Remekül + mûködik olyan laptopokon, ahol a hardver nem + használható az sc konzollal. Itt + ugyanúgy érdemes egyébként a + vt100 értékre vagy a + vt220 értékre + állítani a TERM környezeti + változónkat. Hasznosnak bizonyulhat abban az + esetben is, amikor hálózaton keresztül nagy + mennyiségû és eltérõ + típusú számítógépekhez + csatlakozunk, és ahol a termcap + és terminfo adatbázisokban az + sc bejegyzései gyakran nem is + érhetõek el — a vt100 viszont + virtuálisan az összes platformon + elérhetõ. + + device agp + + Írjuk bele a konfigurációba, ha van AGP + kártya a rendszerünkben. Ezzel + engedélyezzük az AGP és az AGP GART + támogatását az ezeket ismerõ + kártyák számára. + + APM + + # energiagazdálkodás támogatása (bõvebben lásd: NOTES) +#device apm + + A fejlett energiagazdálkodás + támogatása. Laptopok esetén hasznos, + habár a &os; 5.X és késõbbi + verzióiban ez alapértelmezés szerint nincs + engedélyezve a GENERIC + konfigurációban. + + # az i8254 készenléti módjának támogatása +device pmtimer + + Az energiagazdálkodási események, mint + például APM és ACPI + idõzítõjének + eszközmeghajtója. + + # PCCARD (PCMCIA) támogatás +# PCMCIA és cardbus támogatás +device cbb # cardbus (yenta) bridge +device pccard # PC Card (16 bites) busz +device cardbus # CardBus (32 bites) busz + + A PCMCIA támgotása. Mindenképpen + szükségünk lesz rá, ha laptopunk + van. + + # soros (COM) portok +device sio # 8250, 16[45]50 alapú soros portok + + Ezek azok a soros portok, amelyek az &ms-dos;/&windows; + világban csak COM + portokként ismernek. + + + Ha van egy belsõ modemünk a + COM4-en és egy soros portunk a + COM2-n, a modem IRQ-ját meg kell + változtatnunk 2-re (valamilyen homályos + mûszaki októl kifolyólag a COM2 = IRQ9), hogy + hozzá tudjunk férni &os;-bõl. Ha + többportos soros kártyánk lenne, lapozzuk fel + a &man.sio.4; man oldalát, és ott hozzá + megtaláljuk a /boot/device.hints + állományba írandó megfelelõ + értékeket. Egyes videokártyák + (különösen az S3 chipekre + épülõk) az I/O címeket + 0x*2e8 alakban használják, + és mivel rengeteg olcsó soros kártya nem + kódolja vissza egészében a 16 bites I/O + címteret, ütközni fognak ezekkel a + kártyákkal, és ezáltal a + COM4 port gyakorlatilag + elérhetetlenné válik. + + Minden egyes soros portnak egyedi IRQ-ja kell legyen (hacsak + nem használunk olyan többportos + kártyát, amely támogatja a megosztott + megszakításokat), ezért a + COM3 és + COM4 esetén + alapértelmezett IRQ-k nem + használhatóak. + + + # párhuzamos port +device ppc + + Ez az ISA busz párhuzamos portjának + felülete. + + device ppbus # a párhuzamos port busza (kell) + + A párhuzamos porthoz tartozó busz + támogatása. + + device lpt # nyomtató + + A párhuzamos portra csatlakozó nyomtatók + támogatása. + + + A fentiek közül mind a három + szükséges a párhuzamos porton + csatlakozó nyomtatók + használatához. + + + device plip # TCP/IP párhuzamos porton keresztül + + Ez a párhuzamos port hálózati + felületének meghajtója. + + device ppi # a párhuzamos port felületének eszköze + + Általános célú (geek + port) és IEEE1284 I/O. + + #device vpo # az scbus és a da kell a használatához + + zip meghajtó + + Ez az Iomega Zip meghajtóihoz tartozó + eszköz. A mûködéséhez + szükség van az scbus és + da engedélyezésére. A + legjobb teljesítményt EPP 1.9 módban + mûködõ portokkal lehet kihozni belõle. + + #device puc + + Tegyük bele a konfigurációba ezt az + eszközt, ha egy olyan buta soros vagy + párhuzamos PCI kártyánk van, amelyet a + &man.puc.4; segédmeghajtó ismer. + + # PCI Ethernet kártyák +device de # DEC/Intel DC21x4x (Tulip) +device em # Intel PRO/1000 Gigabit Ethernet kártya +device ixgb # Intel PRO/10GbE Ethernet kártya +device txp # 3Com 3cR990 (Typhoon) +device vx # 3Com 3c590, 3c595 (Vortex) + + Különféle PCI hálózati + kártyák meghajtói. Vegyük ki azokat, + amelyek nem találhatóak meg a + rendszerünkben. + + # PCI Ethernet kártyák, melyek az MII busz vezérlõkódját használják +# FIGYELEM: Ne töröljük ki a 'device miibus' sort, ha ilyen kártyánk van! +device miibus # az MII busz támogatása + + Az MII busz engedélyezése elengedhetetlen + bizonyos 10/100-as PCI Ethernet kártyák + használatához, konkrétan azokéhoz, + amelyek az MII-vel együttmûködni képes + adó-vevõt használnak vagy az MII-höz + hasonló adó-vevõ vezérlõ + felületet valósítanak meg. A device + miibus hozzáadása a rendszermaghoz + magával vonja az általános miibus API + és az összes PHY meghajtó + támogatását, beleértve azt az + általános PHY eszközt is, amelyet az egyes + eszközmeghajtók külön nem + támogatnak. + + device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet +device bfe # Broadcom BCM440x 10/100 Ethernet +device bge # Broadcom BCM570xx Gigabit Ethernet +device dc # DEC/Intel 21143 és egyéb hasonlóak +device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device lge # Level 1 LXT1001 gigabit ethernet +device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet +device nge # NatSemi DP83820 gigabit ethernet +device nve # nVidia nForce MCP integrált Ethernet hálózat +device pcn # AMD Am79C97x PCI 10/100 (az 'lnc' elõtt) +device re # RealTek 8139C+/8169/8169S/8110S +device rl # RealTek 8129/8139 +device sf # Adaptec AIC-6915 (Starfire) +device sis # Silicon Integrated Systems SiS 900/SiS 7016 +device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet +device ste # Sundance ST201 (D-Link DFE-550TX) +device stge # Sundance/Tamarack TC9021 gigabit Ethernet +device ti # Alteon Networks Tigon I/II gigabit Ethernet +device tl # Texas Instruments ThunderLAN +device tx # SMC EtherPower II (83c170 EPIC) +device vge # VIA VT612x gigabit ethernet +device vr # VIA Rhine, Rhine II +device wb # Winbond W89C840F +device xl # 3Com 3c90x (Boomerang, Cyclone) + + Meghajtók, melyek az MII busz + vezérlõkódját + használják. + + # ISA Ethernet és pccard hálózati kártyák. +device cs # Crystal Semiconductor CS89x0 NIC +# az 'device ed' eszközhöz kell a 'device miibus' +device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards +device ex # Intel EtherExpress Pro/10 és Pro/10+ +device ep # Etherlink III alapú kártyák +device fe # Fujitsu MB8696x alapú kártyák +device ie # EtherExpress 8/16, 3C507, StarLAN 10 stb. +device lnc # NE2100, NE32-VL Lance Ethernet kártyák +device sn # az SMC 9000-res sorozatú Ethernet chipjei +device xe # Xircom pccard Ethernet + +# ISA eszközök, melyek a régi ISA betétet használják +#device le + + ISA Ethernet meghajtók. A konkrétan + támogatott kártyák teljes + felsorolását lásd a + /usr/src/sys/i386/conf/NOTES + állományban. + + # vezeték nélküli hálózati kártyák +device wlan # 802.11 támogatás + + Általános 802.11 támogatás. Erre + a sorra mindenképpen szükség van a + vezeték nélküli hálózatok + használatához. + + device wlan_wep # 802.11 WEP támogatás +device wlan_ccmp # 802.11 CCMP támogatás +device wlan_tkip # 802.11 TKIP támogatás + + A 802.11 eszközök esetén a + titkosítás támogatása. Ezeket a + sorokat akkor adjuk meg, ha titkosítást akarunk + használni vagy a 802.11i biztonsági + protokolljait. + + device an # Aironet 4500/4800 802.11 vezeték nélküli hálózati kártyák +device ath # Atheros pci/cardbus hálózati kártyák +device ath_hal # Atheros HAL (Hardware Access Layer) +device ath_rate_sample # küldési mintavételi vezérlés az ath-hoz +device awi # BayStack 660 és mások +device ral # Ralink Technology RT2500 vezeték nélküli hálózati kártyák +device wi # WaveLAN/Intersil/Symbol 802.11 vezeték nélküli hálózati kártyák +#device wl # régebbi, nem 802.11 Wavelan vezeték nélküli hálózati kártyák + + A különbözõ vezeték + nélküli kártyák + támogatása. + + # Pszeudo eszközök +device loop # hálózati loopback + + Ez a TCP/IP általános loopback eszköze. Ha + telnettel vagy FTP-vel rácsatlakozunk a + localhost címére (vagyis a 127.0.0.1-re), akkor rajta keresztül + saját magunkhoz jutunk vissza. Ennek a megléte + kötelezõ! + + device random # álvéletlenszám eszköz + + Kriptográfiai szempontból biztonságos + álvéletlenszám generátor. + + device ether # Ethernet támogatás + + Az ether eszközre csak abban az + esetben van szükség, ha Ethernet kártyán + van. Ez magában foglalja az általános + Ethernet protokoll kódját. + + device sl # belsõ SLIP + + Az sl a SLIP használatát + engedélyezi. Ez egy régi protokoll, amelyet + azóta már szinte teljesen kiszorított a PPP, + mivel azt könnyebb beállítani és sokkal + jobban is illik a modem-modem kapcsolatokhoz, illetve sokkal + erõteljesebb. + + device ppp # belsõ PPP + + Ez a tárcsázós kapcsolatok rendszermagon + belüli PPP támogatását adja meg. Van a + PPP-nek egy külsõ, a felhasználói + programként megvalósított változata + is, amely a tun eszközt használja + és sokkal nagyobb rugalmasságot kínál + fel, illetve olyan lehetõségeket, mint + például az igény szerinti + tárcsázás. + + device tun # csomag alagút + + Ezt a felhasználói PPP szoftver + használja. A könyv PPP-rõl szóló + részében többet is megtudhatunk + róla. + + +device pty # Pszeudo terminálok (telnet stb.) + + Ezek a pszeudo terminálok vagy + más néven szimulált bejelentkezési + portok. A bejövõ telnet és + rlogin munkamenetek használják, + valamint az xterm és a + hozzá hasonló alkalmazások, mint + például az Emacs. + + device md # memórialemezek + + A memóriában levõ pszeudo lemezes + meghajtók. + + device gif # IPv6 és IPv4 tunnelek használata + + Megvalósítja az IPv6 IPv4 feletti, az IPv4 IPv6 + feletti, az IPv4 IPv4 feletti és az IPv6 IPv6 feletti + közvetítését. A gif + eszköz magától + másolódik, vagyis szükség + szerint hozza létre a megfelelõ + eszközleírókat. + + device faith # IPv6-IPv4 közti továbbítás (fordítás) + + Ez a pszeudo eszköz elfogja a hozzá + küldött csomagokat és átadja ezeket az + IPv4/IPv6 fordítással foglalkozó + démonnak. + + # a `bpf' eszköz használatával a Berkeley csomagszûrõt (Berkeley Packet Filter) engedélyezzük +# Legyünk rá tekintettel, hogy ennek komoly következményei lehetnek +# rendszeradminisztrációs szempontból! +# A 'bpf'-re szükség van a DHCP-hez. +device bpf # Berkeley csomagszûrõ + + A Berkeley csomagszûrõje. Ez egy olyan pszeudo + eszköz, amely lehetõvé teszi, hogy a + hálózati csatolók forgalmát + megfigyeljük, mivel a (pl. Ethernet) + hálózatunkon minden csomagot elkap. Ezek a csomagok + lemezre is menthetõek vagy kielemezhetõek a + &man.tcpdump.1; program segítségével. + + + A &man.bpf.4; eszközt a &man.dhclient.8; is + használja többek közt az alapértelmezett + átjáró IP-címének + megszerzéséhez. Ha DHCP-t akarunk + használni, hagyjuk így. + + + # USB támogatás +device uhci # UHCI PCI->USB felület +device ohci # OHCI PCI->USB felület +device ehci # EHCI PCI->USB felület (USB 2.0) +device usb # USB busz (kell) +#device udbp # USB Double Bulk Pipe eszközök +device ugen # általános +device uhid # Human Interface Devices +device ukbd # billentyûzet +device ulpt # nyomtató +device umass # lemez/háttértároló - kell hozzá az scbus és a da +device ums # egér +device ural # Ralink Technology RT2500USB vezeték nélküli hálózati kártyák +device urio # Diamond Rio 500 MP3 lejátszó +device uscanner # lapolvasók +# USB Ethernet, kell hozzá az mii +device aue # ADMtek USB Ethernet +device axe # ASIX Electronics USB Ethernet +device cdce # általános USB, Etherneten keresztül +device cue # CATC USB Ethernet +device kue # Kawasaki LSI USB Ethernet +device rue # RealTek RTL8150 USB Ethernet + + A különféle USB eszközök + támogatása. + + # FireWire támogatás +device firewire # FireWire buszkód +device sbp # SCSI FireWire-ön keresztül (kell hozzá az scbus és a da) +device fwe # Ethernet FireWire-ön keresztül (nem szabványos!) + + A különféle Firewire eszközök + támogatása. + + A &os; által ismert további + eszközökrõl a + /usr/src/sys/i386/conf/NOTES + állományból + tájékozódhatunk. + + + Sok memória kezelése + (<acronym>PAE</acronym>) + + + Fizikai címkiterjesztés + (PAE) + sok memória + + + A sok memóriával rendelkezõ + számítógépek esetén + szükség lehet a felhasználói + és rendszerszintû virtuális címek + (Kernel Virtual Address, KVA) 4 gigabyte + feletti használatára. Ennek a + korlátozásnak a + kiküszöbölésére az &intel; + külön támogatást épített + be a &pentium; Pro és az azt követõ + processzorok 36 bites fizikai címzésének + kialakításához. + + A Fizikai Címkiterjesztés (Physical Address + Extension, PAE) az &intel; &pentium; Pro + és késõbbi processzoraiban + található meg, és lehetõvé + teszi egészen 64 gigabyte-ig a + memóriahasználatot. A &os; is támogatja + ezt a tulajdonságot a rendszermag + beállítás használatával, + és megtalálható a &os; összes + jelenlegi verziójában. Az &intel; + architektúrájú processzorok + memóriaszervezésének korlátai + miatt nem különböztethetõ meg a 4 gigabyte + alatti és feletti memória. A 4 gigabyte felett + található memóriaterületek + egyszerûen hozzáadódnak a + rendelkezésre álló + memóriához. + + A rendszermagban a PAE + támogatását egyszerûen az + alábbi sor segítségével + hozzáadásával tudjuk + engedélyezni: + + options PAE + + + A &os;-ben a PAE + támogatása csak az &intel; IA-32 + architektúrájú processzoraihoz + érhetõ el. Emellett meg kell + említenünk, hogy a &os;-ben + található PAE + támogatás nem lett szélesebb + körben próbára téve, ezért + a &os; többi megbízható elemeihez + képest csak béta állapotúnak + tekinthetõ. + + + A &os; PAE + támogatásának van néhány + hiányossága: + + + + Egy futó program a virtuális + memóriában nem képes 4 + gigabyte-nál többet elérni. + + + A KLD modulok nem + tölthetõek be egy PAE-t + támogató rendszermagba, mivel + eltérnek a modulok és a rendszermag + létrehozásának + módszerei. + + + A &man.bus.dma.9; felületet nem + használó eszközmeghajtók + adathibákat okozhatnak a PAE-t + támogató rendszermagokban, és emiatt + nem ajánljuk a használatukat. Ebbõl a + megfontolásból + készítettünk egy + PAE nevû + konfigurációs állományt a + &os;-hez, amelyben nem szerepel egyetlen olyan + meghajtó sem, amely ismereteink szerint nem + mûködik együtt a PAE-t + támogató rendszermagokkal. + + + Bizonyos finomhangolási + beállítások a + memóriahasználatot a rendelkezésre + álló fizikai memória + mennyiségébõl + számítják ki. A + PAE támogatással + mûködõ rendszerek esetében + megjelenõ sok memória miatt azonban az ilyen + eszközök szükségtelenül + több területet foglalhatnak le. Erre + példa lehet a + sysctl változó, amely a rendszermag + által maximálisan + felhasználható virtuális + csomópontok számát korlátozza. + Ajánlott tehát az ilyen és ehhez + hasonló beállítások + értelmes értékre + történõ + visszaállítása. + + + Szükséges lehet a rendszermag + virtuális címterének + (KVA) növelése vagy a + rendszermag által túlságosan nagy + méretûre foglalt címterû + különféle erõforrások + (lásd fentebb) csökkentése a + KVA kifogyásának + elkerülésére. A KVA + területének növelését a + + beállításával tehetjük + meg. + + + + Ha gondjaink lennének a + teljesítménnyel vagy a + megbízhatósággal, keressük fel a + &man.tuning.7; man oldalt. A &man.pae.4; man oldalon pedig a + &os; PAE + támogatásáról találhatunk + naprakész információkat. + + + + + + Ha valamilyen hiba történne + + Négyféle probléma jelentkezhet egy + saját rendszermag készítése + során. Ezek: + + + + A config hibát jelez: + + + Amikor a &man.config.8; parancs hibát jelez + vissza a rendszermagunk konfigurációs + beállításainak feldolgozása + során, akkor minden bizonnyal csak egy apró + hibát vétettünk valahol. + Szerencsére a &man.config.8; kiírja a + hibás sor számát, ezért gyorsan + fel tudjuk kutatni a hibát tartalmazó sort. + Például, ha ezt látjuk: + + config: line 17: syntax error + + Akkor gyõzödjünk meg róla, hogy + helyesen írtuk be az adott sorban szereplõ + kulcsszót. Ebben segítségünkre + lehet, ha összevetjük a + GENERIC konfigurációs + állománnyal vagy más + hivatkozásokkal. + + + + + A make hibát jelez: + + + Ha a make jelez hibát, az + általában arra utal, hogy az általunk + korábban megadott rendszermag + konfigurációs állományt a + &man.config.8; nem értette meg rendesen. Megint azt + tudjuk csak javasolni, hogy nézzük át a + konfigurációs + beállításainkat, és ha + ezután sem sikerül megoldani a + problémát, akkor mellékeljük egy + levélben a rendszermagunk konfigurációs + beállításait és + küldjük el a &a.questions; címére, + ahol a hozzáértõk gyorsan + átnézik. + + + + + A rendszermag nem indul: + + + Ha az új rendszermagunk nem indul vagy nem + képes felismerni az eszközeinket, ne essünk + kétségbe! Szerencsére a &os; + tökéletes megoldással tud + szolgálni az összeférhetetlen + rendszermagok esetére: a &os; + rendszerbetöltõjében egyszerûen + válasszuk ki az indítandó + rendszermagot. Ezt akkor tudjuk elõhívni, + amikor a rendszerindító menü megjelenik. + Válasszuk ki a hatos, vagyis az Escape to a + loader prompt (a betöltõ + parancssorának elõhívása) + menüpontot. Mikor megjelenik a parancssor, + írjuk be, hogy unload kernel, majd + adjuk ki a boot + /boot/kernel.old/kernel, + parancsot, amiben bármilyen más olyan + rendszermagot is megnevezhetünk, ami korábban + már mûködött. Ezért amikor + beállítunk egy új rendszermagot, mindig + érdemes a kezünk ügyében tartani + legalább egy olyan rendszermagot, amely + mûködik. + + Miután sikerült elindítanunk az egyik + használható rendszermagot, nézzük + át még egyszer a konfigurációs + állományt és próbáljuk + újra lefordítani a rendszermagot. A + probléma megoldását segítheti a + /var/log/messages + állomány áttanulmányozása + is, ami többek közt rögzíti a + rendszermag sikeres indulása során + keletkezõ üzeneteket. Ezenkívül a + &man.dmesg.8; parancs is meg tudja jeleníteni az + aktuális rendszerindítás + üzeneteit. + + + Ha gondok merülnének fel a rendszermag + elkészítése során, + mindenképpen tartsuk meg a + GENERIC, vagy bármilyen + másik olyan rendszermagot, amelyrõl tudjuk, + hogy mûködik. Nevezzük át, + így nem fog felülíródni a + következõ fordítás és + telepítés során. A + kernel.old állományra + ugyanis nem minden esetben számíthatunk, + mivel az új rendszermagok + telepítésénél a + kernel.old mindig + felülíródik a legutóbb + telepített rendszermaggal, amely azonban nem + feltétlenül lesz + mûködõképes. Sõt, amint csak + lehetséges, rakjuk a mûködõ + rendszermagot a /boot/kernel + könyvtárba vagy különben a + &man.ps.1; és a hozzá hasonló + parancsok nem fognak rendesen mûködni. Mindezek + elvégzéséhez egyszerûen + nevezzük át a jó rendszermagot + tartalmazó könyvtárt: + + &prompt.root; mv /boot/kernel /boot/kernel.rossz +&prompt.root; mv /boot/kernel.jó /boot/kernel + + + + + + + A rendszermag mûködik, de a &man.ps.1; viszont + nem: + + + Ha olyan rendszermagot telepítettünk, aminek + a verziója nem egyezik meg a + hozzátartozó segédprogramokéval, + tehát például -CURRENT rendszermagot + raktunk egy -RELEASE rendszerhez, egyes + rendszerállapotjelzõ parancsok, mint + például a &man.ps.1; vagy a &man.vmstat.8; nem + fognak mûködni. Ebben az esetben az egész rendszert újra + kell fordítanunk és + telepítenünk a rendszermagunkkal + megegyezõ verziójú + forrásból. Részben ezért sem + különösen ajánlott, hogy az + operációs rendszer többi + részétõl eltérõ + verziójú rendszermagot + használjunk. + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/l10n/Makefile b/hu_HU.ISO8859-2/books/handbook/l10n/Makefile new file mode 100644 index 0000000000..c6741a2341 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/l10n/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= l10n/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml new file mode 100644 index 0000000000..c011849883 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml @@ -0,0 +1,1334 @@ + + + + + + + + Andrey + Chernov + Írta: + + + + + Michael C. + Wu + Átdolgozta: + + + + + Honosítás: Az I18N/L10N használata + és beállítása + + + Áttekintés + + A &os; felhasználói földrajzi + elhelyezkedésüket tekintve mindenhol + megtalálhatóak a világon. Ebben a fejezetben + ismertetjük a &os; honosításához + és idegennyelvre fordításához + alkalmazható eszközöket, amelyek + segítségével az angolt nem, vagy csak + kevésbé ismerõ felhasználók is + képesek lesznek komolyabban használni. Az i18n + megvalósítása rengeteg szemszögbõl + megközelíthetõ rendszer és + alkalmazás szintjén egyaránt, ezért + ahol szükséges, hivatkozni fogunk az odaillõ + forrásokra. + + A fejezet elolvasása során + megismerjük: + + + + milyen nyelveket és nyelvi + beállításokat találhatunk napjaink + operációs rendszereiben; + + + + hogyan használjuk a nyelvi + beállításokat a saját + parancsértelmezõnkben; + + + + hogyan állítsuk be a konzolt az angolon + kívül más nyelvekhez; + + + + hogyan használjuk ténylegesen az X Window + Systemet a különbözõ nyelvekkel; + + + + hol olvashatunk többet az I18N-kompatibilis + alkalmazások fejlesztésérõl. + + + + A fejezet elolvasásához ajánlott: + + + + külsõ alkalmazáok + telepítésének ismerete (). + + + + + + + Az alapok + + + Mi az I18N/L10N? + + + idegennyelvûség + honosítás + + honosítás + + A fejlesztõk az I18N elnevezést az angol + internationalization + (idegennyelvûség) szóból + származtatják, amiben a szám az elsõ + és utolsó betû (az I és + N) közt állók + mennyiségére utal. Ehhez hasonlóan + keletkezett az L10N a localization + (honosítás) kifejezésbõl. Ezek + házasságából jöttek + létre az I18N/L10N módszerei, protokolljai + és mindazon alkalmazásai, melyekkel a + felhasználók a választott nyelvüket + használni tudják. + + Az I18N alkalmazások céljak + eléréséhez + függvénykönyvtárakban + implementált I18N készleteket használnak. + Ezzel lehetõvé válik a fejlesztõik + számára, hogy összegyûjtsék a + programukban megjelenõ összes szöveget egyetlen + állományba, majd azt külön + lefordítsák a különbözõ + nyelvekre. Mi is ezen konvenció + követésére szeretnénk bíztatni + minden programozót. + + + + + Miért használjuk az I18N/L10N-t? + + Az I18N/L10N mindenhol jól jöhet, ahol + idegennyelvû adatot akarunk megjeleníteni, + bekérni vagy feldolgozni. + + + + + Milyen nyelveket támogat az I18N? + + Az I18N és L10N nem korlátozódik a &os; + tudására. Jelenleg a világban + beszélt legelterjedtebb nyelvek mindegyikét + használhatjuk bennük. Csak hogy + néhányat említsünk + közülük: kínai, német, + japán, koreai, francia, orosz, vietnámi és + még sok más. + + + + + + A honosítás használata + + Az I18N minden adottságával együtt + független a &os;-tõl, egy egyezményes rendszer. + Mindenkit bátorítunk arra, hogy segítse a + &os;-t ennek az egyezménynek a + betartásában. + + nyelvi + beállítások + + A honosítás beállításai + három fõbb részre tagolhatóak: a nyelv + kódja, az ország kódja és a + kódolás. A nyelvi beállítások + nevei is ezekbõl állnak össze, az alábbi + séma szerint: + + NyelviKód_OrszágKód.Kódolás + + + A nyelv és az ország kódja + + nyelvi kódok + országkódok + + Ha a &os; (vagy bármilyen más, az I18N-t + ismerõ) rendszert honosítani akarunk az adott + nyelvre, akkor a felhasználónak ismernie kell az + adott országra és nyelvre vonatkozó + kódokat (az országkód fogja elárulni + az alkalmazásnak, hogy a nyelv melyik + változatát használja). + Ezenkívül a böngészõk, SMTP/POP + szerverek és webszerverek stb. is ennek alapján + fognak döntéseket hozni. Íme + néhány nyelv/ország kódja: + + + + + + Nyelv/ország kódja + Leírás + + + + + + en_US + Angol - Egyesült Államok + + + + ru_RU + Orosz - Oroszország + + + + zh_TW + Hagyományos kínai - Tajvan + + + + + + + + + Kódolások + + kódolások + ASCII + + Bizonyos nyelvek 8 bites, széles vagy több + byte-os, nem ASCII kódolású karaktereket + használnak, melyekrõl a &man.multibyte.3; man + oldalán olvashatunk részletesebben. Ezeket + régebbi alkalmazások egyáltalán nem + ismerik fel, és hibásan + vezérlõkaraktereknek tulajdonítják. + Az újabbak általában már felismerik + a 8 bites karaktereket. A felhasználóknak az + alkalmazásokat a széles vagy a több byte-os + karakterek használatához vagy újra kell + fordítaniuk, vagy pedig megfelelõen be kell + állítaniuk, az + implementációtól függõen. A + széles vagy több byte-os karakterek + beolvasásához és + feldolgozásához a &os; + Portgyûjtemény nyelvenként tartalmaz + különféle programokat. A konkrét + részletek megértéséhez olvassuk el + az érintett &os; portok I18N + dokumentációját. + + Vagyis a felhasználóknak át kell + nézniük az alkalmazáshoz tartozó + dokumentációt, mivel ebbõl tudhatják + meg, hogyan állítsák be ezeket + megfelelõen vagy milyen értékeket adjanak + át a configure/Makefile/fordító + hármasnak. + + Amiket esetleg érdemes lehet ezzel kapcsolatban + észben tartanunk: + + + + A nyelvfüggõ egyszerû karakteres + készletek (lásd &man.multibyte.3;), + például ISO8859-1, ISO8859-15, KOI8-R, + CP437. + + + + A széles vagy több byte-os + kódolások, például az EUC, + Big5. + + + + A karakterkészletek jelenleg elérhetõ + listáját meg tudjuk tekinteni az IANA + adatbázisában. + + + A &os; helyettük X11-kompatibilis nyelvi + kódolásokat használ. + + + + + + I18N alkalmazások + + A &os; port- és csomagrendszerében az I18N + alkalmazások a könnyebb felismerhetõség + érdekében a nevükben tartalmazzák az + I18N megnevezést. Nem minden esetben + támogatják a szükséges nyelvet. + + + + + A nyelvi beállítások + megadása + + Általában elegendõ annyi, hogy a + kívánt nyelvi beállítás + nevét exportáljuk az általunk + használt parancsértelmezõ LANG + környezeti változójába. Ez + megtehetõ a felhasználói + könyvtárunkban található + ~/.login_conf, vagy a + felhasználói parancsértelmezõ + indító állományában + (~/.profile, + ~/.bashrc, ~/.cshrc). + Nem szükséges a nyelvi + beállítások részleteit, mint + például az LC_CTYPE, + LC_CTIME változókat, megadni. A + pontosabb részleteket a &os; adott nyelvre + vonatkozó dokumentációjában + találjuk meg. + + A következõ két környezeti + változót kell megadnunk az említett + konfigurációs állományokban: + + + POSIX + + + A LANG változót a &posix; + &man.setlocale.3; családjának + + + MIME + + + A MM_CHARSET változót az + alkalmazás MIME + karakterkészletéhez + + + + Ez magában foglalja a felhasználói + parancsértelmezõ, az adott alkalmazás + és az X11 beállítását. + + + A nyelvi beállítások + megadásának módszerei + + nyelvi + beállítások + bejelentkezési + osztály + + Két módszer létezik a nyelvi + beállítások megadására, + ezen kettõrõl fogunk a továbbiakban + beszélni. Az elsõ (és egyben + ajánlott) ezek közül a bejelentkezési + osztályban levõ környezeti + változók beállítása, a + második pedig környezeti változók + hozzáadása a parancsértelmezõ + rendszerszintû indító + állományához. + + + Beállítás a bejelentkezési + osztályokkal + + Ezzel a módszerrel a nyelvi + beállítás nevéhez és a + MIME karakterkészlethez kötõdõ + környezeti változókat az összes + létezõ parancsértelmezõ + számára csak egyszer kell megadnunk ahelyett, + hogy külön mindegyikük + indítóállományában + szerepeltetnénk. A felhasználó a saját részét + maga is elvégezheti, míg a rendszer szintjén + adminisztrátori jogosultságokat + igényel. + + + Felhasználói szintû + beállítás + + Íme példa gyanánt a + felhasználó könyvtárában + egy egyszerû .login_conf + állomány, amiben mind a két + változót Latin-1 kódolásra + állítottuk: + + me:\ + :charset=ISO-8859-1:\ + :lang=de_DE.ISO8859-1: + + hagyományos + kínaiBIG-5 + kódolás + + Ebben a .login_conf + példában a változókat BIG-5 + kódolású hagyomános + kínai nyelvre állítjuk. + Észrevehetjük, hogy itt sokkal több + változó + beállítására van + szükségünk, mivel egyes szoftverek nem + kezelik megfelelõen a nyelvi + beállításokat kínai, + japán és koreai nyelvek + esetén. + + # Azok a felhasználók, akik nem kívánnak tajvani pénz- vagy idõ formátumot +# használni, egyenként írják át a változókat +me:\ + :lang=zh_TW.Big5:\ + :setenv=LC_ALL=zh_TW.Big:\ + :setenv=LC_COLLATE=zh_TW.Big5:\ + :setenv=LC_CTYPE=zh_TW.Big5:\ + :setenv=LC_MESSAGES=zh_TW.Big5:\ + :setenv=LC_MONETARY=zh_TW.Big5:\ + :setenv=LC_NUMERIC=zh_TW.Big5:\ + :setenv=LC_TIME=zh_TW.Big5:\ + :charset=big5:\ + :xmodifiers="@im=gcin": # a gcin beállítása XIM szerverként + + A többit lásd a Rendszergazdai szintû + beállítások + résznél és a &man.login.conf.5; man + oldalon. + + + + + Rendszergazdai szintû + beállítás + + Ellenõrizzük, hogy a + felhasználó + /etc/login.conf + állományban szereplõ + bejelentkezési osztálya a megfelelõ + nyelvet állítja be. + Gyõzõdjünk meg róla, hogy az + alábbi beállítások helyet + kapnak az /etc/login.conf + állományban: + + nyelv_neve:hozzáférés_megnevezése:\ + :charset=MIME_karakterkészlet:\ + :lang=nyelvi_beállítás_neve:\ + :tc=default: + + Folytassuk tovább az elõbbi Latin-1-es + példánk szerint: + + nemet:Nemet felhasznalok hozzaferesei:\ + :charset=ISO-8859-1:\ + :lang=de_DE.ISO8859-1:\ + :tc=default: + + Mielõtt megváltoztatnánk a + felhasználók bejelentkezési + osztályait, adjuk ki a következõ + parancsot: + + &prompt.root; cap_mkdb /etc/login.conf + + Ezzel a /etc/login.conf új + tartalma láthatóvá válik a + rendszer számára. + + A bejelentkezési + osztály megváltoztatása a + &man.vipw.8; programmal + + vipw + + A vipw segédprogramot + új felhasználók + hozzáadására használjuk, + aminek eredményeképpen egy ehhez + hasonló bejegyzést tudunk + létrehozni: + + felhasznalo:jelszo:1111:11:nyelv:0:0:Felhasznalo neve:/home/felhasznalo:/bin/sh + + A bejelentkezési + osztály megváltoztatása az + &man.adduser.8;-rel + + adduser + bejelentkezési + osztály + + Az adduser-rel az alábbiak + szerint tudunk új felhasználókat + felvenni a rendszerbe: + + + + Adjuk hozzá a defaultclass = + nyelv sort az + /etc/adduser.conf-hoz. Ne + felejtsük el, hogy ezután minden olyan + felhasználónál a + default bejelentkezési + osztályt meg kell adni, akik nem ezt a nyelvet + használják. + + + + Egy másik megoldás lehet, hogy a + &man.adduser.8; használata során minden + felhasználó esetén + külön megadjuk a nyelvet az + + Enter login class: default []: + + rész megjelenésekor. + + + + Vagy használhatjuk az alábbit az + egyes eltérõ nyelvû + felhasználók + hozzáadásánál: + + &prompt.root; adduser -class nyelv + + + + A bejelentkezési + osztály megváltoztatása a + &man.pw.8;-vel + + pw + + Amennyiben a &man.pw.8;-t használjuk új + felhasználók + hozzáadására, így + érdemes meghívnunk: + + &prompt.root; pw useradd felhasználó_neve -L nyelv + + + + + + Beállítás a + parancsértelmezõ indító + állományával + + + Ezt a módszert nem javasoljuk, mivel + parancsértelmezõnként + eltérõ beállítást + kíván. Használjuk helyette a bejelentkezési + osztályokkal megvalósított + módszert. + + + MIME + nyelvi + beállítás + + A nyelvi beállítás nevének + és a MIME karakterkészlet + beállításához egyszerûen + csak adjuk meg a lenti /etc/profile + és/vagy /etc/csh.login + parancsértelmezõ indító + állományokban bemutatott környezeti + változót. Továbbra is a német + nyelvet használjuk a példánkban: + + Az /etc/profile + esetén: + + LANG=de_DE.ISO8859-1; export LANG +MM_CHARSET=ISO-8859-1; export MM_CHARSET + + Vagy a /etc/csh.login + esetén: + + setenv LANG de_DE.ISO8859-1 +setenv MM_CHARSET ISO-8859-1 + + Úgy is megoldhatjuk ezt a feladatot, ha fenti + utasításokat a + /usr/share/skel/dot.profile + (hasonló a fentebb említett + /etc/profile állományhoz) + vagy /usr/share/skel/dot.login + (hasonló a fentebb említett + /etc/csh.login + állományhoz) esetén hajtjuk + végre. + + X11 esetén: + + Adjuk meg a $HOME/.xinitrc + állományban: + + LANG=de_DE.ISO8859-1; export LANG + + Vagy: + + setenv LANG de_DE.ISO8859-1 + + Attól függõen, milyen + parancsértelmezõt használunk (lásd + fentebb). + + + + + + + A konzol beállítása + + Az összes egyszerû karakteres készlet + esetén a kérdéses nyelvhez megfelelõ + konzolos betûtípust az + /etc/rc.conf állományban + tudjuk beállítani: + + font8x16=betûtípus_neve +font8x14=betûtípus_neve +font8x8=betûtípus_neve + + Itt a betûtípus_neve + az .fnt kiterjesztés + elhagyásával a + /usr/share/syscons/fonts + könyvtárban található + állományok nevébõl adható + meg. + + sysinstall + billentyûkiosztás + betûkiosztás + + Mindezek mellett állítsuk be a megfelelõ + billentyû- és betûkiosztást is a + sysinstall (vagy + /stand/sysinstall a &os; 5.2-nél + régebbi változataiban) + segítségével. Ahogy sikerült + elindítanunk a sysinstallt, + válasszuk a Configure + (Beállítások) pontot, majd a + Console (Konzol)-t! Vagy ehelyett + beírhatjuk az alábbi sorokat a + /etc/rc.conf + állományba: + + scrnmap=betûkiosztás_neve +keymap=billentyûkiosztás_neve +keychange="funkcióbillentyû_sorszáma szekvencia" + + Itt a + betûkiosztás_neve a + /usr/share/syscons/scrnmaps + könyvtárban található + állományok nevébõl + származtatható az .scm + kiterjesztés elhagyásával. A + betûkiosztásokat általában a 9 bites + karaktermátrixszal rendelkezõ VGA + megjelenítõk problémáinak + megoldására lehet használni, mivel + így az eredetileg 8 bittel ábrázolt + betûket ki lehet tolni az ilyen típusú + kártyák pszeudografikus + területérõl. + + Ha aktiváltuk a moused + egérkezelõ démont az + /etc/rc.conf állományban az + alábbi sor megadásával: + + moused_enable="YES" + + akkor a következõ bekezdésben rá is + térhetünk az egérmutató adatainak + vizsgálatára. + + moused + + A &man.syscons.4; meghajtóban található + egérmutató alapértelmezés szerint a + 0xd0 - 0xd3 karaktereket foglalja el a + karakterkészletben. Ha a nyelv ezeket használja, + arrébb kell költöztetnünk ezt az + egérmutató által elfoglalt sávot. A + &os;-ben az /etc/rc.conf + állományon keresztül érhetjük + el: + + mousechar_start=3 + + A + billentyûkiosztás_neve a + /usr/share/syscons/keymaps + könyvtárból, a .kbd + kiterjesztés elhagyásával keletkezik. Ha + nem vagyunk benne biztosak, melyik kiosztást is kellene + használnunk, a &man.kbdmap.1; + segítségével a rendszer + újraindítása nélkül + kipróbálhatjuk a rendelkezésre + álló billentyûkiosztásokat. + + A keychange használatára + többnyire a funkcióbillentyûk adott + termináltípushoz egyeztetéséhez van + szükség, mert a funkcióbillentyûk + szekvenciái nem adhatóak meg a + billentyûkiosztásban. + + Ezeken felül érdemes megbizonyosodnunk + róla, hogy a /etc/ttys + állományban jól állítjuk be a + terminál típusát minden + ttyv* bejegyzés esetén. Az + aktuálisan elõre beállított + kapcsolatok a következõk: + + + + + + Karakterkészlet + Termináltípus + + + + + + ISO8859-1 vagy ISO8859-15 + cons25l1 + + + + ISO8859-2 + cons25l2 + + + + ISO8859-7 + cons25l7 + + + + KOI8-R + cons25r + + + + KOI8-U + cons25u + + + + CP437 (alapértelmezett VGA) + cons25 + + + + US-ASCII + cons25w + + + + + + A széles és több byte-os karaktereket + használó nyelvek esetén használjuk a + /usr/ports/nyelv + könyvtárban megfelelõ &os; portot. Egyes + portok konzolosként jelennek meg, miközben a + rendszer soros virtuális terminálként + látja ezeket, ezért fenn kell tartanunk + elegendõ virtuális terminált mind az X11, + mind pedig pszeudo-soros konzol számára. Itt + látható a konzolon más nyelvet + használó alkalmazások részleges + listája: + + + + + + Nyelv + Hely + + + + + + Hagyományos kínai (BIG-5) + chinese/big5con + + + + Japán + japanese/kon2-16dot vagy + japanese/mule-freewnn + + + + Koreai + korean/han + + + + + + + + Az X11 beállítása + + Habár az X11 nem része a &os; projektnek, + megemlítünk vele kapcsolatban néhány + hasznos információt a &os; + felhasználók számára is. Még + több részletet a &xorg; honlapjáról + vagy az általunk használt X11 szerver + dokumentációjából tudhatunk + meg. + + Az ~/.Xresources + állományban további I18N + beállításokat finomíthatunk + alkalmazásonként (például + betûtípusok, menük stb.). + + + Betûtípusok + megjelenítése + + X11 True Type betûtípus + szerver + + Telepítsük fel az + &xorg; (x11-servers/xorg-server) vagy az + &xfree86; (x11-servers/XFree86-4-Server) + szerverek valamelyikét, majd telepítsük a + nyelvhez tartozó &truetype; betûtípusokat. + Ezután a megfelelõ nyelvi + beállítása megadása + révén már látni fogjuk a + kiválasztott nyelven megjelenõ menüket + és egyéb szövegeket. + + + + + Idegennyelvû karakterek bevitele + + X11 Input Method (XIM) + + Az X11 beviteli módszerének (X11 Input + Method, XIM) protokollja egy új szabvány az + összes X11 klienshez. Minden X11 alkalmazást + olyan XIM-kliensként kell elkészíteni, + amelyek a bemenõ adatokat az XIM beviteli + szerverektõl kapják. + Különbözõ XIM szerverek + érhetõek el az eltérõ + nyelvekhez. + + + + + + Nyomtatók beállítása + + Egyes egyszerû karakteres készletek + általában hardveresen beépítve + megtalálhatóak a nyomtatókban. A + széles és több byte-os + karakterkészletek azonban külön + beállítást igényelnek, amire az + apsfilter használatát + javasoljuk. A megfelelõ nyelvhez szabott + eszközökkel át is lehet konvertálni + &postscript; vagy PDF formátumba a nyomtatni + kívánt dokumentumot. + + + + + A rendszermag és az + állományrendszerek + + A &os; gyors állományrendszere (Fast File + System, FFS) szabályosan kezeli a 8 bites karaktereket, + tehát tetszõleges egyszerû karakteres + készlet (lásd &man.multibyte.3;) + használható vele, viszont a karakterkészlet + nevét nem tárolja el az + állományrendszerben. Emiatt a neveket nyersen + kezeli, semmit sem tud a kódolásukról. Az + FFS hivatalosan még nem támogat semmilyen fajta + széles vagy több byte-os karakterkészletet. + Léteznek azonban független javítások + az FFS-hez, amelyek lehetõvé teszik ilyen + széles vagy több byte-os karakterek + használatát. Ezek csak átmeneti és + nem hordozható megoldások, olyan + módosítások, amelyekrõl úgy + döntöttünk, nem vesszük fel ezeket a + forrásfába. Az érintett nyelvek honlapjain + elérhetjük ezeket a javításokat + és többet megtudhatunk róluk. + + DOS + Unicode + + A &os; &ms-dos; állományrendszere + konfigurálható úgy, hogy képes + legyen konvertálni az &ms-dos; Unicode és a + kiválasztott &os; + állományrendszerének + karakterkészlete között. Errõl + bõvebben a &man.mount.msdosfs.8; man oldalon + olvashatunk. + + + + + + I18N programok fordítása + + Számos &os; port rendelkezik I18N + támogatással. Ezek egy részének + nevében szerepel az -I18N jelzés. Az ilyen + és sok más hasonló program + beépítetten ismeri az I18N-t, így nem + igényelnek külön + beállításokat. + + MySQL + + Néhány alkalmazás azonban, mint + például a MySQL, + esetén az adott karakterkészletnek megfelelõ + módon kell beállítani a + Makefile-t. Ezt általában + magában a Makefile-ban tudjuk + megtenni, vagy pedig a configure + megfelelõ paraméterezésével. + + + + + A &os; honosítása adott nyelvekre + + + + + + Andrey + Chernov + Eredetileg írta: + + + + + Az orosz nyelv (KOI8-R kódolás) + + + honosítás + orosz + + + A KOI8-R kódolásról bõvebben a + KOI8-R oldalán (orosz + hálózati karakterkészlet) + tájékozódhatunk. + + + A nyelvi beállítások + megadása + + Írjuk a következõ sorokat a + ~/.login_conf + állományunkba: + + me:Az en hozzaferesem:\ + :charset=KOI8-R:\ + :lang=ru_RU.KOI8-R: + + Valamint lásd a fejezet korábbi + részeiben említett példákat a nyelvi + beállítások + megadására. + + + + + A konzol beállítása + + + + Tegyük hozzá a következõ sort az + /etc/rc.conf + állományunkhoz: + + mousechar_start=3 + + + + Illetve használjuk az + /etc/rc.conf + állományban még a következõ + beállításokat is: + + keymap="ru.koi8-r" +scrnmap="koi8-r2cp866" +font8x16="cp866b-8x16" +font8x14="cp866-8x14" +font8x8="cp866-8x8" + + + + + A /etc/ttys + állományban szereplõ mindegyik + ttyv* bejegyzésnél adjuk + meg termináltípusnak a + cons25r-t. + + + + Valamint lásd a fejezet korábbi + részében bemutatott példákat a + konzol + beállítására. + + + + + A nyomtatás + beállítása + + nyomtatók + + Mivel a legtöbb nyomtató hardveresen + tartalmazza a CP866 kódlapot az orosz karakterek + támogatásához, használnunk kell + egy kimeneti szûrõt a KOI8-R + kódolású karakterek CP866 + kódolásúra + konvertálásához. Egy ilyen + szûrõ alapértelmezés szerint + telepítésre kerül a + /usr/libexec/lpr/ru/koi2alt + állományba. Az orosz nyomtatóhoz + tartozó bejegyzés valahogy így néz + ki az /etc/printcap + állományban: + + lp|Orosz helyi sornyomtato:\ + :sh:of=/usr/libexec/lpr/ru/koi2alt:\ + :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: + + A bõvebben magyarázathoz lásd a + &man.printcap.5; man oldalt. + + + + + Az &ms-dos; állományrendszere és az + orosz állománynevek + + A most következõ példa &man.fstab.5; + bejegyzés azt mutatja meg, hogy lehet bekapcsolni az + orosz állománynevek + támogatását a csatlakoztatandó + &ms-dos; állományrendszereken: + + /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0 + + Az kapcsolóval + kiválasztjuk a használni kívánt + nyelvi beállítás nevét, és + a kapcsolóval megadjuk a karakterek + átváltásához szükséges + táblázatot. A + kapcsoló használata során + mindenképpen csatlakoztassuk a + /usr állományrendszert + még az &ms-dos; partíció elõtt, + mivel az átváltáshoz használt + táblázatok a + /usr/libdata/msdosfs + könyvtárban találhatóak meg! A + részleteket a &man.mount.msdosfs.8; man oldalon + találhatjuk meg. + + + + + Az X11 beállítása + + + + Adjuk meg elõször a leírtak szerint a + nem X-es nyelvi + beállításokat. + + + + Ha &xorg;-ot + használunk, telepítsük a x11-fonts/xorg-fonts-cyrillic + csomagot. + + Ellenõrizzük a + /etc/X11/xorg.conf + állományban a "Files" + szakaszt. Az alábbi sorokat mindegyik más + FontPath bejegyzés + elõtt kell + szerepeltetnünk: + + FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" +FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" +FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" + + Ha nagy felbontású + megjelenítést használunk, + cseréljük meg a 75 és a 100 dpi-s + sorokat. + + + A portok között találhatunk + még további cirill + betûtípusokat. + + + + + Az orosz billentyûzet életre + keltéséhez írjuk be a + következõket az xorg.conf + állomány "Keyboard" + szakaszába: + + Option "XkbLayout" "us,ru" +Option "XkbOptions" "grp:toggle" + + Ellenõrizzük, hogy a + XkbDisable ki van kapcsolva (ki van + kommentezve) ebben a szakaszban. + + A grp:caps_toggle + beállítás esetén az + orosz/latin (RUS/LAT) átkapcsolás gombja a + jobb Alt lesz, míg a + grp:ctrl_shift_toggle + beállításnál a CtrlShift. + A megszokott CapsLock funkció + továbbra is elréhetõ a ShiftCapsLock + kombinációval (csak latin módban). A + grp:toggle esetén az orosz/latin + átkapcsolás gombja a jobb + Alt lesz. A grp:caps_toggle + valamiért nem mûködik az + &xorg;ban. + + Ha van &windows; billentyûnk a + billentyûzeten és azt tapasztaljuk, hogy egyes + nem-alfabetikus billentyûk rosszul kerülnek + kiosztásra orosz módban, adjuk hozzá + a következõ sort az + xorg.conf + állományhoz: + + Option "XkbVariant" ",winkeys" + + + Az orosz XKB billentyûzet egyes nem + honosított alkalmazások esetén nem + mûködik. + + + + + A kis mértékben honosított + alkalmazások esetén javasolt meghívni a + XtSetLanuageProc(NULL, NULL, NULL); + függvényt valahol a program + elején. + + Az X11 alkalmazások + honosításához további + útmutatásokat a KOI8-R X Window-ra + címû leírásban + találhatunk. + + + + + + + Hagyományos kínai honosítás + tajvaniak számára + + + honosítás + hagyományos kínai + + + A &os;-Taiwan projekt készített a &os;-hez egy + kínainak szóló hogyant, amely + elérhetõ a + címen és számos kínai portot + használ. A &os; kínai hogyan + jelenlegi szerkesztõje Shen Chuan-Hsing + (statue@freebsd.sinica.edu.tw). + + Chuan-Hsing Shen + (statue@freebsd.sinica.edu.tw) létrehozta + a + Kínai &os; gyûjteményt (Chinese &os; + Collection, CFC) a &os;-Taiwan + zh-L10N-tut munkáját + felhasználva. A hozzátartozó csomagok + és szkriptek elérhetõek a + címen. + + + + + Honosítás német (és minden + más ISO 8859-1 kódolású) + nyelvre + + + honosítás + német + + + Slaven Rezic (eserte@cs.tu-berlin.de) + készített egy írást, amely + elmagyarázza, hogyan használjunk német + nemzeti karaktereket a &os; alatt. Ez a leírás + németül készült és a + címen érhetõ el. + + + + + Honosítás japán és koreai + nyelvekre + + + honosítás + japán + + + honosítás + koreai + + + A japán honosításhoz lásd , a koreaihoz pedig + lásd . + + + + + Idegennyelvû &os; dokumentáció + + Néhány &os; felhasználó + lefordította a &os; egyes részeit más + nyelvekre is. Munkájuk elérhetõ a fõoldalon + található linkeken keresztül vagy a + /usr/share/doc + könyvtárban. + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/linuxemu/Makefile b/hu_HU.ISO8859-2/books/handbook/linuxemu/Makefile new file mode 100644 index 0000000000..37adfa9af6 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/linuxemu/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= linuxemu/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/linuxemu/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/linuxemu/chapter.sgml new file mode 100644 index 0000000000..2b1b1082e7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/linuxemu/chapter.sgml @@ -0,0 +1,4406 @@ + + + + + + + + Jim + Mock + Átdolgozta és egyes részeit + aktualizálta: + + + + + Brian N. + Handy + Eredetileg írta: + + + Rich + Murphey + + + + + Bináris Linux kompatibilitás + + + Áttekintés + + Bináris Linux + kompatibilitás + + bináris kompatibilitás + Linux + + + A &os; számos más &unix;-szerû + operációs rendszerhez nyújt bináris + kompatibilitást, köztük a Linuxhoz is. + Elcsodálkozhatnánk rajta, hogy vajon miért + kell tudnia a &os;-nek Linux binárisokat futtatnia? A + válasz erre nagyon egyszerû. Rengeteg cég + és fejlesztõ kizárólag csak Linuxra + fejleszt, hiszen ez mostanság egy nagyon izgalmas + téma az informatika világában. + Emiatt azonban a &os; közösségnek külön + gyõzködnie kell ezeket a cégeket és + fejlesztõket, hogy készítsék el a + termékeik natív &os;-s változatát. + Ezzel az a gond, a legtöbb ilyen cég egyszerûen + nem veszi észre, hogy ha létezne a + terméküknek &os;-re írt változata, akkor + még többen használnák. Így + továbbra is csak Linuxra fejlesztenek. Mit tudnak tenni + ilyenkor a &os; használói? Nos, ekkor jön + jól a &os; bináris szintû + kompatibilitása. + + Dióhéjban úgy tudnánk + összefoglalni, hogy ennek köszönhetõen a &os; + felhasználók képesek a linuxos + alkalmazások közel 90%-át mindenféle + további módosítás nélkül + futtatni. Így tehát használható a + &staroffice;, + &netscape; Linux változata, az + &adobe; &acrobat;, + &realplayer;, + VMware, + &oracle;, + &wordperfect;, + Doom, Quake, + és még sok minden más. Sõt, egyes + tapasztalatok szerint bizonyos helyzetekben a &os; által + futtatott Linux binárisok sokkal jobban + teljesítenek, mint Linux alatt. + + Azonban vannak olyan Linuxra jellemzõ, az + operációs rendszer szintjén + meghúzódó eszközök, amelyek &os; + alatt nem használhatóak. &os;-n nem fognak + mûködni azok a Linux binárisok, amelyek + túlzottan kihasználják az olyan &i386;-os + rendszerhívásokat, mint például a + virtuális 8086 mód. + + A fejezet elolvasása során + megismerjük: + + + + hogyan engedélyezzük rendszerünkön a + Linux kompatibilitást; + + + + hogyan telepítsünk linuxos osztott + könyvtárakat; + + + + hogyan telepítsünk linuxos + alkalmazásokat a &os; rendszerünkre; + + + + a &os; Linux kompatibilitásának + implementációs részleteit. + + + + A fejezet elolvasásához ajánlott: + + + + külsõ szoftverek + telepítésének ismerete (). + + + + + + + Telepítés + + KLD (betölthetõ rendszermag + objektum) + + A bináris Linux kompatibilitás + alapértelmezés szerint nem engedélyezett. + Legkönnyebben úgy tudjuk elérhetõvé + tenni, ha betöltjük a linux nevû + KLD modult (Kernel LoaDable). Ehhez + root felhasználóként a + következõket kell begépelni: + + &prompt.root; kldload linux + + Ha minden egyes rendszerindítás során + engedélyezni szeretnénk a bináris + kompatibilitást, akkor tegyük bele az + /etc/rc.conf állományba ezt a + sort: + + linux_enable="YES" + + A modul betöltõdését a &man.kldstat.8; + paranccsal tudjuk ellenõrizni: + + &prompt.user; kldstat +Id Refs Address Size Name + 1 2 0xc0100000 16bdb8 kernel + 7 1 0xc24db000 d000 linux.ko + + + a rendszermag beállításai + COMPAT_LINUX + + + Ha valamiért nem akarjuk vagy nem éppen nem + tudjuk betölteni a modult, akkor a bináris Linux + kompatibilitást az options COMPAT_LINUX + beállítással be is tudjuk + építeni a rendszermagba. Ennek pontos + menetét a ben találjuk + meg. + + + Linuxos futtatókönyvtárak + telepítése + + + Linux + linuxos könyvtárak + telepítése + + + A linuxos könyvtárakat két módon + is felrakhatjuk: egyrészt a linux_base port + telepítésével, másrészt manuálisan. + + + A könyvtárak telepítése a + linux_base porttal + + Portgyûjtemény + + A futtatókönyvtárakat a lehetõ + legegyszerûbben a emulators/linux_base porton + keresztül tudjuk telepíteni. Teljesen úgy + történik, mint a Portgyûjtemény + akármelyik másik portjának + telepítése. Csupán ennyit kell + beírnunk: + + &prompt.root; cd /usr/ports/emulators/linux_base-fc4 +&prompt.root; make install distclean + + A telepítés végeztével kaptunk + is egy mûködõ bináris Linux + kompatibilitást, habár egyes programok + még panaszkodhatnak a rendszerkönyvtárak + alverzióit illetõen. + Általánosságban véve ez azonban + nem okoz nagyobb gondot. + + + A emulators/linux_base portnak + több változata is használható, + melyek az egyes Linux disztribúcióknak + feleltethetõek meg. Ilyenkor mindig érdemes + közülük azt választani, amelyik a + leginkább megfelel a telepíteni + kívánt linuxos alkalmazás + igényeinek. + + + + + + A könyvtárak telepítése + manuálisan + + Ha korábban még nem telepítettük + volna a Portgyûjteményt, akkor egyénileg kell + felraknunk az egyes könyvtárakat. + Közülük azokra lesz + szükségünk, amelyeket maga az + alkalmazás is használni akar, valamint a + futásidejû linkerre. Emellett még a &os; + rendszerükön levõ Linux binárisok + számára a /compat/linux + könyvtárban létre kell hoznunk a + gyökér ún. + árnyékkönyvtárát + is. A &os; alatt elindított Linux programok + elõször ebben a könyvtárban + fogják keresni a hozzájuk tartozó osztott + könyvtárakat. Így tehát, amikor egy + linuxos program betölti például a + /lib/libc.so + függvénykönyvtárat, akkor a &os; + elõször a + /compat/linux/lib/libc.so + állományt próbálja meg megnyitni, + majd ha az nem létezik, akkor a + /lib/libc.so állományt. Az + osztott könyvtárak ezért a + /compat/linux/lib + árnyékkönyvtárba + telepítendõek, és nem oda, ahova a linuxos + ld.so mutat. + + Általánosságban szólva eleinte + elég csak azokat az osztott könyvtárakat + megkeresni és felrakni, amelyekre a + telepítendõ linuxos alkalmazásunknak + ténylegesen szüksége van. Egy idõ + után úgyis összegyûlnek azok a + fontosabb függvénykönyvtárak, amelyek + segítségével már minden + további ráfordítás + nélkül futtatni tudjuk a frissen importált + programokat. + + + + + Hogyan telepítsünk újabb osztott + könyvtárakat? + + osztott + könyvtárak + + Mit tegyünk, ha az emulators/linux_base port + telepítése után az alkalmazás + még mindig követel néhány + hiányzó osztott könyvtárat? Honnan + tudhatjuk meg, hogy milyen osztott könyvtárak + kellenek majd egy Linux bináris + használatához és honnan szerezzük be + ezeket? Erre alapvetõn két + lehetõségünk van (az + utasításokat root + felhasználóként kell majd + végrehajtanunk). + + Ha hozzáférünk egy Linux rendszerhez, + akkor szedjük össze az alkalmazásunk + futtatásához szükséges osztott + könyvtárakat és másoljuk ezeket a + &os; partíciójára. + Például: + + + Tegyük fel, hogy FTP-n keresztül + leszedtük a Doom Linux + változatát és felraktuk egy + általunk elérhetõ Linux rendszerre. Az + ldd linuxdoom parancs + segítségével ki tudjuk deríteni, + milyen osztott könyvtárak kellenek majd + nekünk: + + &prompt.user; ldd linuxdoom +libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 +libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 +libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 + + szimbolikus linkek + + Az utolsó oszlopban levõ + állományokat másoljuk át, + tegyük ezeket a /compat/linux + könyvtárba, és hozzunk létre az + elsõ oszlopban szereplõ szimbolikus linkeket. + Így tehát a következõ + állományok kellenének: + + /compat/linux/usr/X11/lib/libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 + +
+ + Ha már rendelkezünk az + ldd kimenetének elsõ + oszlopában szereplõ + fõverziószámú osztott + könyvtár, akkor nem kell + átmásolni az utolsó oszlopban + levõ állományokat, hiszen így + is mûködnie kellene mindennek. Ha viszont egy + újabb változattal találkozunk, + akkor érdemes mégis inkább + átmásolni. Miután a szimbolikus + linkeket átirányítottuk az + új változatra, a régit akár + törölhetjük is. Ha például + ezek a könyvtárak elérhetõek a + rendszerünkön: + + /compat/linux/lib/libc.so.4.6.27 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.27 + + Észrevesszük, hogy az + ldd kimenetében az új + bináris egy újabb változatot + igényel: + + libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 + + Ha csak az utolsó jegyében marad le + valamivel a verziószám, akkor nem + különösebben aggódnunk a + /lib/libc.so.4.6.29 miatt sem, + hiszen a programnak egy picivel korábbi + verzióval is remekül kellene tudnia + mûködnie. Természetesen, ha akarjuk, + ettõl függetlnül + lecserélhetjük a + libc.so állományt, + ami ezt eredményezi: + + /compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 + +
+ +
+ + A szimbolikus linkek karbantartása + csak a Linux binárisok + esetén szükséges. A &os; + saját futásidejû linkere + magától megkeresi a megfelelõ + fõverziószámú + könyvtárakat, ezért emiatt + általában nem kell aggódni. + +
+
+ +
+
+ + + Linux ELF binárisok telepítése + + + Linux + ELF binárisok + + + Az ELF binárisok futtatása elõtt + néha még szükség van a + megbélyegzés (branding) + használatára is. Ha egy bélyegezetlen ELF + binárist akarunk elindítani, akkor a + következõ hibaüzenetet kapjuk: + + &prompt.user; ./egy-linux-elf-bináris +ELF binary type not known +Abort + + A &os; rendszermagjának a &man.brandelf.1; paranccsal + tudunk segíteni a &os; és a Linux + binárisainak + megkülönböztetésében. + + &prompt.user; brandelf -t Linux egy-linux-elf-bináris + + GNU + eszköztár + + A GNU által fejlesztett eszközök + manapság már automatikusan elhelyezik az ELF + binárisok azonosításához + szükséges bélyegeket, ezért ez a + lépés a jövõben egyre inkább + feleslegessé válik. + + + + + A névfeloldó + beállítása + + Ha a névfeloldás (DNS) valamiért nem + mûködne, vagy egy ehhez hasonló üzenetet + kapunk: + + resolv+: "bind" is an invalid keyword resolv+: +"hosts" is an invalid keyword + + Akkor az /compat/linux/etc/host.conf + állományba be kell illesztenünk a + következõ sorokat: + + order hosts, bind +multi on + + Az itt megszabott sorrend szerint elõször a + /etc/hosts állományt + nézi át, és majd csak ezután + próbálja meg feloldani a nevet. Ha a + /compat/linux/etc/host.conf + állomány nem létezik, akkor a linuxos + alkalmazás a &os; /etc/host.conf + állományát találja meg, és + panaszkodni fog a &os; eltérõ + formátumára. Távolítsuk el a + bind szócskát, ha nem + állítottunk be névszervert az + /etc/resolv.conf + állományhoz. + + +
+ + + + + + Boris + Hollas + A Mathematica 5.X verziójához + igazította: + + + + + A &mathematica; telepítése + + + alkalmazások + Mathematica + + + Ebben a szakaszban megismerhetjük, hogyan + telepítsük a &mathematica; + 5.X Linux változatát &os; + rendszerekre. + + A &mathematica; vagy a + &mathematica; for Students linuxos + változatai közvetlenül megrendelhetõek a + fejlesztõtõl: . + + + A &mathematica; telepítõjének + elindítása + + Elõször is jeleznünk kell a &os;-nek, hogy a + &mathematica; binárisai a + linuxos ABI-t (Appplication Binary Interface) fogják + használni. Itt legkönnyebben úgy + járhatunk el, ha egyszerûen + beállítjuk, hogy a rendszer a bélyegezetlen + ELF binárisokat automatikusan Linux binárisoknak + tekintse: + + &prompt.root; sysctl kern.fallback_elf_brand=3 + + Ennek köszönhetõen a &os; most már az + összes bélyegezetlen ELF bináris + esetén a linuxos ABI-t fogja használni, és + így a telepítõt akár már + közvetlenül a CD-rõl is + indíthatjuk. + + Most másoljuk át a + MathInstaller nevû + állományt a merevlemezünkre: + + &prompt.root; mount /cdrom +&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller helyi_könyvtár + + Az állományban cseréljük ki az + elsõ sorban található + /bin/sh hivatkozást a + /compat/linux/bin/sh hivatkozásra. + Ezzel biztosíthatjuk be, hogy a telepítõt a + linuxos &man.sh.1; fogja elindítani. Ezután a + kedvenc szövegszerkesztõnkkel vagy a + következõ szakaszban található szkript + segítségével helyettesítsük + benne a Linux) szöveg összes + elõfordulását a FreeBSD) + szöveggel. Mivel a + &mathematica; telepítõje + az uname -s parancsra kapott + válaszból állapítja meg az + operációs rendszer típusát, + ezért ezzel a módosítással a &os;-t + is a Linuxhoz hasonló módon fogja kezelni. A + MathInstaller elindítása + után most már telepíthetõ a + &mathematica;. + + + + + A &mathematica; állományainak + módosítása + + A &mathematica; + telepítése során létrejött + szkripteket a használatuk elõtt át kell + írnunk. Amennyiben a + &mathematica;hoz tartozó + programokat a /usr/local/bin + könyvtárba telepítettük, akkor itt + találunk kell a math, + mathematica, + Mathematica és + MathKernel állományokra + mutató szimbolikus linkeket. Ezek mindegyikében + cseréljük ki a Linux) + karakterláncot a FreeBSD) + szövegre a kedvenc szövegszerkesztõnkkel vagy az + alábbi szkripttel: + + #!/bin/sh +cd /usr/local/bin +for i in math mathematica Mathematica MathKernel + do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp + sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i + rm $i.tmp + chmod a+x $i +done + + + + + A &mathematica; jelszavának + megszerzése + + + Ethernet + MAC-cím + + + A &mathematica; elsõ + indítása során kérni fog egy + jelszót. Ha még nem kértünk volna + jelszót a fejlesztõtõl, akkor a + számítógépünk + azonosítójának (machine ID) + megállapításához indítsuk el + a telepítés könyvtárában + található mathinfo nevû + programot. Ez az azonosító + lényegében az elsõdleges Ethernet + kártyánk MAC-címe lesz, ezért a + &mathematica; nem futtatható + több számítógépen. + + Amikor e-mailen, telefonon vagy faxon keresztül + regisztráljuk a terméket a Wolframnál, + akkor meg kell adnunk nekik ezt az azonosítót + machine ID néven, amire õk + elküldik a hozzátartozó + jelszót. + + + + + A &mathematica; frontendjének futtatása + hálózaton keresztül + + A &mathematica; a + szabványos betûkészletekkel meg nem + jeleníthetõ szimbólumokhoz + (integráljelek, szummák, görög + betûk, matematikai jelölések stb.) + használ néhány olyan speciális + betûtípust, amelyek nem minden esetben állnak + rendelkezésre. A X által használt + protokoll miatt ezeket a betûtípusokat + helyben kell telepíteni. Ennek + értelmében a + &mathematica; CD-jén + található betûtípusokat + telepítenünk kell a + számítógépünkre is. A CD-n + ezeket általában a + /cdrom/Unix/Files/SystemFiles/Fonts + könyvtárban találjuk meg, vagy a merevlemezen + a /usr/local/mathematica/SystemFiles/Fonts + könyvtárban. Ezen belül pedig a + Type1 és X + alkönyvtárakra van szükségünk. Az + alábbiakban leírtak szerint több módon + is használhatjuk ezeket. + + Az egyik ilyen módszer, ha átmásoljuk + az imént említett könyvtárakat a + többi mellé, vagyis a + /usr/X11R6/lib/X11/fonts + könyvtárba. Ekkor szükségünk lesz + még a fonts.dir + állomány átírására is, + ahova fel kell vennünk a betûtípusok neveit, + majd ennek megfelelõen az elsõ sorban + módosítanunk a könyvtárban + található betûtípusok + számát. De ugyanígy lefuttathatjuk ebben a + könyvtárban a &man.mkfontdir.1; parancsot is. + + Az a másik megoldás, ha a + könyvtárakat így másoljuk át a + /usr/X11R6/lib/X11/fonts helyre: + + &prompt.root; cd /usr/X11R6/lib/X11/fonts +&prompt.root; mkdir X +&prompt.root; mkdir MathType1 +&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts +&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X +&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 +&prompt.root; cd /usr/X11R6/lib/X11/fonts/X +&prompt.root; mkfontdir +&prompt.root; cd ../MathType1 +&prompt.root; mkfontdir + + Most adjuk hozzá az új + könyvtárakat a betûtípusok + könyvtáraihoz: + + &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X +&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 +&prompt.root; xset fp rehash + + Ha az &xorg; szervert + használjuk, akkor az xorg.conf + állományban megadhatjuk ezen + könyvtárak automatikus betöltését + is. + + + Az &xfree86; + típusú szerverek esetén az + XF86Config konfigurációs + állományt kell + módosítanunk. + + + betûk + + Ha még nincs + /usr/X11R6/lib/X11/fonts/Type1 nevû + könyvtárunk, akkor a példában + szereplõ MathType1 + könyvtárat nyugodtan átnevezhetjük + Type1 nevûre. + + + + + + + + + Aaron + Kaplan + Írta: + + + + + Robert + Getschmann + Köszönet: + + + + + A &maple; telepítése + + + alkalmazások + Maple + + + A &maple; egy + &mathematica;hoz hasonló + kereskedelmi alkalmazás. A használatához + elõször meg kell vásárolni a címrõl, majd + a licenc megszerzéséhez ugyanott + regisztrálni. &os;-re a szoftvert a következõ + egyszerû lépéseken keresztül tudjuk + telepíteni. + + + + Indítsuk el a termékhez mellékelt + INSTALL nevû szkriptet. + Válasszuk a telepítõprogram által + felkínált opciók közül a + RedHat címkéjût. A + telepítés célkönyvtára legyen + a /usr/local/maple. + + + + Ha eddig még nem tettük volna meg, + rendeljük meg a &maple; + licencét a Maple Waterloo Software-tõl () és + másoljuk az + /usr/local/maple/license/license.dat + állományba. + + + + Az &maple;-höz + mellékelt INSTALL_LIC szkript + elindításával telepítsük a + FLEXlm licenckezelõt. A + szervernek adjuk meg a + számítógépünk + hálózati nevét. + + + + Javítsuk át a + /usr/local/maple/bin/maple.system.type + állományt a következõ + módon: + + ----- itt kezdõdik a módosítás --------- +*** maple.system.type.orig Sun Jul 8 16:35:33 2001 +--- maple.system.type Sun Jul 8 16:35:51 2001 +*************** +*** 72,77 **** +--- 72,78 ---- + # the IBM RS/6000 AIX case + MAPLE_BIN="bin.IBM_RISC_UNIX" + ;; ++ "FreeBSD"|\ + "Linux") + # the Linux/x86 case + # We have two Linux implementations, one for Red Hat and + ----- módosítás vége ------------------- + + Vigyázzunk, hogy a "FreeBSD"|\ + kezdetû sor végén nem szabad semmilyen + további whitespace karakternek lennie. + + Ez a javítás arra utasítja a + &maple;-t, hogy + FreeBSD-t Linux rendszerként ismerje + fel. A bin/maple szkript hívja a + bin/maple.system.type szkriptet, ami + pedig a uname -a hívással + próbálja kideríteni a + operációs rendszer nevét. Ettõl + függõen választja ki, hogy milyen + típusú binárisokat fog futtatni. + + + + Indítsuk el a licenckezelõ szervert. + + A most következõ szkripttel + könnyedén el tudjuk indítani az + lmgrd programot. A szkriptet + /usr/local/etc/rc.d/lmgrd.sh néven + hozzuk létre: + + ----- nyissz ----------- + +#! /bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin +PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX +export PATH + +LICENSE_FILE=/usr/local/maple/license/license.dat +LOG=/var/log/lmgrd.log + +case "$1" in +start) + lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 + echo -n " lmgrd" + ;; +stop) + lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 + ;; +*) + echo "Usage: `basename $0` {start|stop}" 1>&2 + exit 64 + ;; +esac + +exit 0 + ----- nyissz ----------- + + + + Próbáljuk meg elindítani a + &maple;-t: + + &prompt.user; cd /usr/local/maple/bin +&prompt.user; ./xmaple + + Szerencsés esetben innentõl kezdve már + minden mûködik. És ne felejtsünk el + írni a Maplesoftnak, hogy szeretnénk egy + natív &os; verziót a + termékükbõl! + + + + + Általános buktatók + + + + A FLEXlm licenckezelõvel + esetenként nehéz lehet elboldogulni. + Errõl témáról bõvebben a + + címen találunk + leírásokat. + + + + Az lmgrd nagyon + válogatós a licencállományokat + illetõen és bármilyen + apróságra kiakad. Egy szabályos + licencállomány valahogy így néz + ki: + +# ======================================================= +# License File for UNIX Installations ("Pointer File") +# ======================================================= +SERVER chillig ANY +#USE_SERVER +VENDOR maplelmg + +FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ + PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ + ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ + SN=XXXXXXXXX + + + A sorozatszámot természetesen + eltávolítottuk. Itt a + chillig a + számítógép neve. + + + Az itt megadott licencállomány + remekül használható egészen addig + a pontig, amíg békén hagyjuk a + FEATURE kezdetû sort (melyet a + licenckulcs véd). + + + + + + + + + + + Dan + Pelleg + Írta: + + + + + A &matlab; telepítése + + + alkalmazások + MATLAB + + + Ez a leírás azt mutatja be, hogyan + telepítsük &os; rendszerekre a &matlab; + version 6.5 Linux változatát. A + &java.virtual.machine; (lásd + ) használatától + eltekintve meglepõen jól mûködik. + + A &matlab; Linux változata + közvetlenül megrendelhetõ a The MathWorks-tõl, + a címen. Ne + felejtsük el beszerezni a licencállományt + és az elkészítéséhez + szükséges útmutatót. Ha már + úgy is arra járunk, jelezzük a + fejlesztõknek, hogy igényt tartanánk a + termékük natív &os;-s változatára + is! + + + A &matlab; telepítése + + A &matlab; + telepítéséhez a következõket kell + tennünk: + + + + Helyezzük be a telepítõt CD-t és + csatlakoztassuk. A telepítõszkript + javaslatának megfelelõen váltsuk + át a root + felhasználóra. A szóbanforgó + szkript elindításához + gépeljük be a következõt: + + &prompt.root; /compat/linux/bin/sh /cdrom/install + + + A telepítõ grafikus. Ha a + megjelenítõ használatáról + szóló hibaüzeneteket kapunk, akkor + adjuk ki a setenv HOME + ~FELHASZNÁLÓ + parancsot, ahol a + FELHASZNÁLÓ annak + a felhasználónak a neve legyen, amivel az + imént meghívtuk a &man.su.1; + programot. + + + + + Amikor a &matlab; + könyvtárát kell megadnunk, ezt + írjuk be: + /compat/linux/usr/local/matlab. + + + A telepítés további + részeinek megkönnyítése + érdekében írjuk be ezt a + parancssorba: set + MATLAB=/compat/linux/usr/local/matlab + + + + + Miután megkaptuk a + &matlab; licencét, az + útmutatás szerint szerkesszük + át. + + + A licencállományt a kedvenc + szövegszerkesztõnkkel akár már + korábban elõ is + készíthetjük, és majd amikor a + telepítõnek szüksége lesz + rá, másoljuk be + $MATLAB/license.dat helyre. + + + + + Futtassuk le a telepítést. + + + + Ezzel befejezõdõtt a + &matlab; hagyományos + telepítése. Innentõl már csak a &os; + rendszer hozzátapasztásán + fogunk dolgozni. + + + + + A licenckezelõ elindítása + + + + Hozzunk létre szimbolikus linkeket a + licenckezelõ szkriptjeire: + + &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW +&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW + + + + Hozzunk létre egy indítószkriptet + /usr/local/etc/rc.d/flexlm.sh + néven. A lentebb látható minta a + &matlab;hoz mellékelt + $MATLAB/etc/rc.lm.glnx86 + állomány egy módosított + változata. Benne az állományok + helyét és a licenckezelõ + indításának + körülményeit változtattuk meg (hogy + Linux emuláció alatt fusson). + + #!/bin/sh +case "$1" in + start) + if [ -f /usr/local/etc/lmboot_TMW ]; then + /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u felhasználó && echo 'MATLAB_lmgrd' + fi + ;; + stop) + if [ -f /usr/local/etc/lmdown_TMW ]; then + /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 + fi + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 + ;; +esac + +exit 0 + + + Tegyük ezt az állományt + végrehajthatóvá: + + &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh + + A fenti szkriptben cseréljük ki a + felhasználó + nevét a rendszerünkben levõ egyik + felhasználó nevére (ami persze nem a + root). + + + + + A licenckezelõt az alábbi paranccsal + indítsuk el: + + &prompt.root; /usr/local/etc/rc.d/flexlm.sh start + + + + + + + A &java; futtató környezet + élesítése + + A &java; futtató + környezet (&java; Runtime Environment, JRE) linkjét + irányítsuk át egy &os; alatt + mûködõ változatéra: + + &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ +&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre + + + + + A &matlab; indítószkriptjének + elkészítése + + + + Hozzunk létre egy ilyen + indítószkriptet a + /usr/local/bin/matlab + könyvtárban: + + #!/bin/sh +/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" + + + + Futtassuk le a chmod +x + /usr/local/bin/matlab parancsot. + + + + + A szkript lefutása során a emulators/linux_base + verziójától függõen + hibákat is kaphatunk. Ha el akarjuk kerülni + ezeket, akkor szerkesszük át a + /compat/linux/usr/local/matlab/bin/matlab + állomány következõ + sorát: + + if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then + + (a 13.0.1 számú verzióban ez 410. + sor) erre: + + if test -L $newbase; then + + + + + + A &matlab; leállító + szkriptjének elkészítése + + A &matlab; szabálytalan kilépéseit az + alábbi utasítások nyomán tudjuk + megszüntetni. + + + + Hozzunk létre egy + $MATLAB/toolbox/local/finish.m + nevû állományt, majd írjuk bele + ezt a sort: + + ! $MATLAB/bin/finish.sh + + + A $MATLAB szöveget pontosan + így írjuk be. + + + Ugyanebben a könyvtárban találjuk a + beállításaink kilépés + elõtti mentéséért felelõs + finishsav.m és + finishdlg.m + állományokat. Ha ezek valamelyikét + módosítjuk, akkor a elõbbi parancsot + közvetlenül a save + után szúrjuk be. + + + + + Hozzunk létre egy + $MATLAB/bin/finish.sh + állományt, amiben szerepeljen a + következõ: + + #!/usr/compat/linux/bin/sh +(sleep 5; killall -1 matlab_helper) & +exit 0 + + + + Tegyük végrehajthatóvá: + + &prompt.root; chmod +x $MATLAB/bin/finish.sh + + + + + + + A &matlab; használata + + Most már a matlab parancs + begépelésével bármikor + elindíthatjuk. + + + + + + + + + Marcel + Moolenaar + Írta: + + + + + Az &oracle; telepítése + + + alkalmazások + Oracle + + + + Elõszó + + Ez a leírás azt mutatja be, hogyan + telepítsük &os;-re az &oracle; + 8.0.5 és &oracle; 8.0.5.1 + Enterprise Edition Linux + változatait. + + + + + A Linux környezet telepítése + + Telepítsük a emulators/linux_base és + devel/linux_devtools + portokat a Portgyûjteménybõl. Amennyiben ennek + során nehézségekbe + ütköznénk, próbálkozzunk a + korábbi változataikkal. + + Fel kell raknunk a Red Hat Tcl csomagját is, ha + az alkalmazáshoz tartozó intelligens + ügynököt is futtatni szeretnénk. Ez a + tcl-8.0.3-20.i386.rpm. A hivatalos + RPM port + segítségével az alábbi + általános parancson keresztül tudunk + csomagokat telepíteni: + + &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm csomag + + A csomag + telepítésének semmilyen hibát nem + kellene okoznia. + + + + + Az &oracle; környezetének + létrehozása + + Az &oracle; + telepítéséhez elõször ki kell + alakítanunk a megfelelõ környezetet. Ez a + leírás kifejezetten + arról szól, hogy &os;-n hogyan futtassuk a linuxos + &oracle;-t, nem pedig az + &oracle; telepítési + útmutatójában bemutatottakat + taglalja. + + + A rendszermag hangolása + + a rendszermag + hangolása + + Ahogy a &oracle; + telepítési útmutatójában is + olvashatjuk, be kell állítanunk az osztott + memória maximális méretét. &os; + alatt erre a célra ne használjuk a + SHMMAX értéket, mivel az + SHMMAX az SHMMAXPGS + és PGSIZE + értékekbõl számolódik ki. + Ezért nekünk itt a SHMMAXPGS + értékét kell meghatároznunk. + Minden egyéb beállítás + történhet az útmutatóban megadottak + szerint. Például: + + options SHMMAXPGS=10000 +options SHMMNI=100 +options SHMSEG=10 +options SEMMNS=200 +options SEMMNI=70 +options SEMMSL=61 + + Hangoljuk be ezeket az értékeket a + &oracle; tervezett + használatához. + + Emellett a konfigurációs + állományban ne feledkezzünk meg az + alábbi beállítások + megadásáról sem: + +options SYSVSHM #SysV osztott memória +options SYSVSEM #SysV szemaforok +options SYSVMSG #SysV folyamatok közti kommunikáció + + + + Az &oracle; hozzáférése + + Egy rendes hozzáféréshez + hasonlóan hozzunk létre egy külön + oracle hozzáférést + is rendszerünkön. Az oracle + hozzáférés annyira különleges, + hogy csak linuxos parancsértelmezõt + társítsunk hozzá. Ehhez vegyük fel + /compat/linux/bin/bash sort az + /etc/shells állományba, + majd állítsuk át az + oracle nevû + felhasználó + parancsértelmezõjét a + /compat/linux/bin/bash programra. + + + + + Környezet + + A megszokott &oracle; + környezeti változók, mint + például a ORACLE_HOME és + ORACLE_SID mellett még + definiálnunk kell a következõket is: + + + + + + + + Változó + Érték + + + + + LD_LIBRARY_PATH + $ORACLE_HOME/lib + + + CLASSPATH + $ORACLE_HOME/jdbc/lib/classes111.zip + + + PATH + /compat/linux/bin +/compat/linux/sbin +/compat/linux/usr/bin +/compat/linux/usr/sbin +/bin +/sbin +/usr/bin +/usr/sbin +/usr/local/bin +$ORACLE_HOME/bin + + + + + + Javasoljuk, hogy az összes környezeti + változót a .profile + állományban adjuk meg. Ennek megfelelõen a + példa beállításai így + fognak kinézni benne: + + ORACLE_BASE=/oracle; export ORACLE_BASE +ORACLE_HOME=/oracle; export ORACLE_HOME +LD_LIBRARY_PATH=$ORACLE_HOME/lib +export LD_LIBRARY_PATH +ORACLE_SID=ORCL; export ORACLE_SID +ORACLE_TERM=386x; export ORACLE_TERM +CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip +export CLASSPATH +PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin +PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin +PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin +export PATH + + + + + + Az &oracle; telepítése + + A Linux emulátorban meghúzódó + apró egyenletlenségek miatt a + telepítés elõtt létre kell hoznunk egy + .oracle nevû alkönyvtárat + a /var/tmp könyvtárban. + Helyezzük ezt a oracle + felhasználó tulajdonába. Ezt + követõen minden további gond nélkül + képesek leszünk az + &oracle; + telepítésére. Ha netalán + mégis problémákba + ütköznénk, elõször mindig az + &oracle; telepítési + és konfigurációs állományait + ellenõrizzük! Az &oracle; + telepítése után rakjuk fel a + következõ szakaszokban bemutatandó + javításokat. + + Gyakran problémát okoz, ha a TCP protokollt + még nem telepítettük. Ennek + következményeképpen ugyanis nem tudnak + elindulni a TCP alapú szolgáltatások. Az + alábbi mûveletek ebben igyekeznek + segíteni: + + &prompt.root; cd $ORACLE_HOME/network/lib +&prompt.root; make -f ins_network.mk ntcontab.o +&prompt.root; cd $ORACLE_HOME/lib +&prompt.root; ar r libnetwork.a ntcontab.o +&prompt.root; cd $ORACLE_HOME/network/lib +&prompt.root; make -f ins_network.mk install + + Ne felejtsük el ismét elindítani a + root.sh szkriptet! + + + A root.sh javítása + + Az &oracle; + telepítése során + root (privilegizált) + felhasználóként elvégzendõ + mûveleteket a root.sh + elnevezésû szkriptben találjuk. Ez a + szkript a orainst könyvtárba + kerül. A chown parancs helyes + lefutásához alkalmazzunk az alább + mellékelt javítást, vagy az egész + szkriptet egy linuxos parancsértelmezõbõl + indítsuk el. + + *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 +--- orainst/root.sh Mon Dec 28 15:58:53 1998 +*************** +*** 31,37 **** +# This is the default value for CHOWN +# It will redefined later in this script for those ports +# which have it conditionally defined in ss_install.h +! CHOWN=/bin/chown +# +# Define variables to be used in this script +--- 31,37 ---- +# This is the default value for CHOWN +# It will redefined later in this script for those ports +# which have it conditionally defined in ss_install.h +! CHOWN=/usr/sbin/chown +# +# Define variables to be used in this script + + Ha nem CD-rõl telepítjük az + &oracle;-t, akkor akár a + root.sh forrását is + kijavíthatjuk. A neve rthd.sh, + és a forrásfa orainst + könyvtárában találhatjuk. + + + + + A genclntsh javítása + + A genclntsh szkript a kliensek + által használt osztott könyvtár + létrehozására alkalmazható. + Általában demók + fordításához van rá + szükség. Az alábbi javítás + alkalmazásával a PATH + változó értéke + törölhetõ: + + *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 +--- bin/genclntsh Tue Dec 22 15:36:49 1998 +*************** +*** 32,38 **** +# +# Explicit path to ensure that we're using the correct commands +#PATH=/usr/bin:/usr/ccs/bin export PATH +! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH +# +# each product MUST provide a $PRODUCT/admin/shrept.lst +--- 32,38 ---- +# +# Explicit path to ensure that we're using the correct commands +#PATH=/usr/bin:/usr/ccs/bin export PATH +! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH +# +# each product MUST provide a $PRODUCT/admin/shrept.lst + + + + + + Az &oracle; futtatása + + Ha rendesen követtük az iménti + utasításokat, akkor most már úgy + tudjuk futtatni az &oracle;-t, mintha + csak Linuxon futna. + + + + + + + + + Holger + Kipp + Írta: + + + + + Valentino + Vaschetto + Az eredeti verziót SGML-re ültette: + + + + + + Az &sap.r3; telepítése + + + alkalmazások + SAP R/3 + + + Az &sap; típusú + rendszerek telepítéséhez &os;-re hivatalosan + nem kaphatunk mûszaki segélynyújtást + — csak a minõsített plaformokat + támogatják. + + + Elõszó + + Ez a leírás az + &sap.r3; rendszer és + &oracle; adatbázis Linux + változatainak telepítését mutatja be + &os;-n, beleértve a &os; és az + &oracle; + telepítését. Kétféle + konfigurációt írunk le: + + + + &sap.r3; 4.6B (IDES) és + &oracle; 8.0.5, FreeBSD 4.3-STABLE + + + &sap.r3; 4.6C és + &oracle; 8.1.7, FreeBSD 4.5-STABLE + + + + Habár ez a dokumentum igyekszik az összes fontos + lépést a lehetõ legrészletesebb + módon tárgyalni, semmiképpen sem + célja az &oracle; és az + &sap.r3; alkalmazásokhoz + mellékelt telepítési + útmutatók kiváltása. + + A kifejezetten az &sap; vagy az + &oracle; Linux változataira + vonatkozó kérdések, valamint az + &oracle; és az + &sap; OSS konkrét + használatával kapcsolatos leírások + tekintetében a saját + dokumentációjukat olvassuk el. + + + + + A szoftver + + Az &sap; + telepítéséhez az alábbi CD-ket + használtuk fel: + + + &sap.r3; 4.6B, &oracle; 8.0.5 + + + + + + Név + Szám + Leírás + + + + + KERNEL + 51009113 + SAP Kernel Oracle / + telepítõ / AIX, Linux, Solaris + + + RDBMS + 51007558 + Oracle / RDBMS 8.0.5.X / + Linux + + + EXPORT1 + 51010208 + IDES / DB-Export / + 1. lemez + + + EXPORT2 + 51010209 + IDES / DB-Export / + 2. lemez + + + EXPORT3 + 51010210 + IDES / DB-Export / + 3. lemez + + + EXPORT4 + 51010211 + IDES / DB-Export / + 4. lemez + + + EXPORT5 + 51010212 + IDES / DB-Export / + 5. lemez + + + EXPORT6 + 51010213 + IDES / DB-Export / + 6. (utolsó) lemez + + + + + + Emellett még használtuk az + &oracle; 8 Server (az elõzetes + 8.0.5 változat a Linux 2.0.33 verziójához) + CD-jét is, amely igazából nem + feltétlenül szükséges, valamint a &os; + (a 4.3 RELEASE kiadása után nem sokkal levõ) + 4.3-STABLE változatát. + + + + + &sap.r3; 4.6C SR2, &oracle; 8.1.7 + + + + + + Név + Szám + Leírás + + + + + KERNEL + 51014004 + SAP Kernel Oracle / + SAP Kernel 4.6D változat / DEC, Linux + + + RDBMS + 51012930 + Oracle 8.1.7/ RDBMS / + Linux + + + EXPORT1 + 51013953 + 4.6C kiadás SR2 / Export + / 1. lemez + + + EXPORT1 + 51013953 + 4.6C kiadás SR2 / Export + / 2. lemez + + + EXPORT1 + 51013953 + 4.6C kiadás SR2 / Export + / 3. lemez + + + EXPORT1 + 51013953 + 4.6C kiadás SR2 / Export + / 4. (utolsó) lemez + + + LANG1 + 51013954 + 4.6C kiadás SR2 / Nyelvi + támogatás / német, angol, francia + / 1. lemez + + + + + + A telepítendõ nyelvtõl függõen + egyéb nyelvi támogatást tartalmazó + CD használata is szükségessé + válhat. Itt most csak a német és angol + nyelveket használjuk, ezért elegendõ az + elsõ CD. Csendben hozzátesszük, hogy mind a + négy EXPORT CD száma megegyezik. + Ugyanígy a három nyelvi CD-nek is megegyeznek a + számai (ez eltér a 4.6B IDES kiadás CD + számozásától). Az + írás pillanatában a &os; 4.5-STABLE + (2002.03.20-i) változatát + használjuk. + + + + + + &sap; füzetek + + Az &sap.r3; + telepítésével kapcsolatban az alábbi + füzetek bizonyultak hasznosnak: + + + &sap.r3; 4.6B, &oracle; 8.0.5 + + + + + + Szám + Cím + + + + + 0171356 + SAP Software on Linux: Essential + Comments + + + 0201147 + INST: 4.6C R/3 Inst. on UNIX - + Oracle + + + 0373203 + Update / Migration Oracle 8.0.5 --> + 8.0.6/8.1.6 LINUX + + + 0072984 + Release of Digital UNIX 4.0B for + Oracle + + + 0130581 + R3SETUP step DIPGNTAB terminates + + + 0144978 + Your system has not been installed + correctly + + + 0162266 + Questions and tips for R3SETUP on Windows + NT / W2K + + + + + + + + &sap.r3; 4.6C, &oracle; 8.1.7 + + + + + + Szám + Cím + + + + + 0015023 + Initializing table TCPDB (RSXP0004) + (EBCDIC) + + + 0045619 + R/3 with several languages or + typefaces + + + 0171356 + SAP Software on Linux: Essential + Comments + + + 0195603 + RedHat 6.1 Enterprise version: + Known problems + + + 0212876 + The new archiving tool SAPCAR + + + 0300900 + Linux: Released DELL Hardware + + + 0377187 + RedHat 6.2: important remarks + + + 0387074 + INST: R/3 4.6C SR2 Installation on + UNIX + + + 0387077 + INST: R/3 4.6C SR2 Inst. on UNIX - + Oracle + + + 0387078 + SAP Software on UNIX: OS Dependencies + 4.6C SR2 + + + + + + + + + + Hardverkövetelmények + + Az alábbi hardvereszközök + szükségesek az &sap.r3; + rendszer telepítéséhez. Az éles + használathoz ennél természetesen valamivel + több kell majd: + + + + + + Változat + 4.6B + 4.6C + + + + + Processzor + Két &pentium; III 800MHz + Két &pentium; III 800MHz + + + Memória + 1GB ECC + 2GB ECC + + + Szabad hely a merevlemezen + 50 - 60GB (IDES) + 50 - 60GB (IDES) + + + + + + Éles használatra nagyobb + gyorsítótárral rendelkezõ &xeon; + processzorokat, nagysebességû + háttértárakat (SCSI, hardveres RAID + vezérlõvel), USV és ECC memória + modulok ajánlottak. A nagy tárigényt + egyébként az elõre beállított + IDES rendszer indokolja, ami egy 27 GB méretû + adatbázist hoz létre a telepítés + során. Ez a terület általában + elegendõ egy frissen induló rendszer és + hozzátartozó alkalmazásadatok + tárolására. + + + &sap.r3; 4.6B, &oracle; 8.0.5 + + A következõ hardverkonfigurációt + használtuk: két 800 MHz-es &pentium; III + processzor és a hozzájuk tartozó alaplap, + egy &adaptec; 29160 Ultra160 SCSI-vezérlõ (a + 40/80 GB méretû DLT szalagos meghajtó + és CD-meghajtó használatához) + és egy &mylex; &acceleraid; RAID-vezérlõ (2 + csatorna, 6.00-1-00 verziójú firmware és + 32 MB memória), amihez két 17 GB-os + (tükrözött) merevlemez és négy + 36 GB-os merevlemez (RAID 5) csatlakozik. + + + + + &sap.r3; 4.6C, &oracle; 8.1.7 + + Itt a hardver egy &dell; &poweredge; 2500 volt: + kétprocesszoros alaplap, két darab + 1000 MHz-es &pentium; III processzorral + (fejenként 256 KB + gyorsítótárral), 2 GB PC133-as ECC + SDRAM memóriával, PERC/3 DC PCI + RAID-vezérlõvel (128 MB memória), + valamint egy EIDE DVD-meghajtóval. A + RAID-vezérlõre két, egyenként + 18 GB méretû merevlemezt (tükrözve) + és négy 36 GB méretû + merevlemezt csatlakoztattunk (RAID 5-ben). + + + + + + A &os; telepítése + + Elõször is telepítenünk kell a &os;-t. + Ez több módon is lehetséges, ezekrõl a + ban olvashatunk + bõvebben. + + + A lemezek felosztása + + Az egyszerûség kedvéért az + &sap.r3; 46B és + &sap.r3; 46C SR2 + telepítése során is ugyanazt a + felosztást használtuk. Egyedül az + eszközök nevei változtak, mivel a + telepítés eltérõ hardvereken + történt (/dev/da) és + /dev/amr, tehát ha az AMI + &megaraid; esetén a /dev/da0s1a + helyett a /dev/amr0s1a eszközt + láthatjuk): + + + + + + Állományrendszer + Méret (1 KB-os blokkokban) + Méret (GB-ban) + Csatlakozási pont + + + + + /dev/da0s1a + 1.016.303 + 1 + / + + + /dev/da0s1b + + 6 + lapozóállomány + + + /dev/da0s1e + 2.032.623 + 2 + /var + + + /dev/da0s1f + 8.205.339 + 8 + /usr + + + /dev/da1s1e + 45.734.361 + 45 + /compat/linux/oracle + + + /dev/da1s1f + 2.032.623 + 2 + /compat/linux/sapmnt + + + /dev/da1s1g + 2.032.623 + 2 + /compat/linux/usr/sap + + + + + + Elõre állítsuk be és + inicializáljuk a két logikai meghajtót a + &mylex; és a PERC/3 RAID-vezérlõkön. + A hozzátartozó szoftver a + BIOS indításának + fázisában hívható be. + + A lemezek felosztása némileg eltér az + &sap; által javasoltaktól, mivel az &sap; + szerint az &oracle; + könyvtárait (néhány másikkal + együtt) külön-külön érdemes + csatlakoztatni — mi most az + egyszerûsítés kedvéért csak + létrehoztuk ezeket. + + + + + A <command>make world</command> és egy új + rendszermag + + Töltsük le a legfrissebb -STABLE + forrásokat. Fordítsuk újra az + összes forrást (make world) + és a beállításainak + elvégzése után a saját + rendszermagunkat is. Itt ne felejtsük el megadni az + &sap.r3; és az + &oracle; + mûködéséhez szükséges + paramétereket. + + + + + + A Linux környezet telepítése + + + Az linuxos alaprendszer telepítése + + Elsõként a linux_base portot kell + felraknunk (root + felhasználóként): + + &prompt.root; cd /usr/ports/emulators/linux_base +&prompt.root; make install distclean + + + + + A linuxos fejlesztõi környezet + telepítése + + Ha az &oracle;-t &os;-re a + ban leírtak szerint + akarjuk telepíteni, akkor szükségünk + lesz a linuxos fejlesztõeszközökre is: + + &prompt.root; cd /usr/ports/devel/linux_devtools +&prompt.root; make install distclean + + A linuxos fejlesztõkörnyezetet csak az + &sap.r3; 46B IDES + telepítésénél raktuk fel. Nincs + rá szükségünk, ha a &os; rendszeren + nem akarjuk újralinkelni az + &oracle; adatbázist. + Pontosan ez a helyezet, amikor egy Linux rendszerhez + gyártott &oracle; + készletet használunk. + + + + + A szükséges RPM csomagok + telepítése + + RPM + + Az R3SETUP + elindításához PAM + támogatásra is szükségünk lesz. + Amikor elõször próbáltuk meg + telepíteni a &os; 4.3-STABLE változatára + az &sap;-t, felraktuk PAM-et + és az összes hozzátartozó csomagot, + majd végül úgy bírtuk + mûködésre, hogy + kényszerítettük a PAM + telepítését is. Az &sap.r3; + 4.6C SR2 esetén szintén + sikerült önmagában felrakni a PAM RPM + csomagját is, tehát úgy néz ki, + hogy a függõségeit már nem kell + telepíteni: + + &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ +pam-0.68-7.i386.rpm + + Az &oracle; 8.0.5 + verziójához mellékelt intelligens + ügynök futtatásához fel kell rakni a + RedHat tcl-8.0.5-30.i386.rpm nevû + Tcl csomagját is (máskülönben a az + &oracle; telepítése + közben szükséges újralinkelés + nem fog mûködni). Vannak ugyan + egyébként is gondok az + &oracle; + újralinkelésével, azonban ez linuxos + probléma, nem pedig &os;-s. + + + + + Néhány további tipp + + Hasznos lehet, ha felvesszük a + linprocfs bejegyzést az + /etc/fstab állományba. + Ennek pontos részleteit a &man.linprocfs.5; man oldalon + találjuk meg. Másik fontos paraméter a + kern.fallback_elf_brand=3, amelyet az + /etc/sysctl.conf állományba + kell beszúrnunk. + + + + + + Az &sap.r3; környezetének + létrehozása + + + A szükséges állományrendszerek + és csatlakozási pontok + létrehozása + + Egy egyszerûbb telepítéshez elég + csupán a következõ + állományrendszereket + elkészíteni: + + + + + + csatlakozási pont + méret GB-ban + + + + + /compat/linux/oracle + 45 GB + + + /compat/linux/sapmnt + 2 GB + + + /compat/linux/usr/sap + 2 GB + + + + + + Készítenünk kell még + néhány linket is, különben az + &sap; telepítõje + panaszkodni fogni az ellenõrzésük + során: + + &prompt.root; ln -s /compat/linux/oracle /oracle +&prompt.root; ln -s /compat/linux/sapmnt /sapmnt +&prompt.root; ln -s /compat/linux/usr/sap /usr/sap + + Az egyik ilyen telepítés közben + megjelenõ hibaüzenet (a PRD + rendszer és az &sap.r3; 4.6C + SR2 telepítése + esetén): + + INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 + Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to + /sapmnt/PRD/exe. Creating if it does not exist... + +WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 + Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file + /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The + program cannot go on as long as this link exists at this + location. Move the link to another location. + +ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 + can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content + '/sapmnt/PRD/exe' + + + + + A felhasználók és + könyvtárak létrehozása + + Az &sap.r3; rendszernek + két felhasználóra és három + csoportra van szüksége. Az igényelt + felhasználók nevei az + &sap; rendszer + azonosítójától (System ID, SID) + függenek, amely három betûbõl + áll. Egyes ilyen rendszerazonosítók az + &sap; számára vannak + fenntartva. (Például a SAP + és a NIX. Ezek teljes + listáját az &sap; + dokumentációjában találjuk meg.) + Erre az IDES telepítéséhez az + IDS, a 4.6C SR2 + telepítésénél a + PRD neveket adtuk, mivel ezeket a + rendszereket éles használatra + szánták. Ennélfogva a + következõ csoportokat hoztuk létre + hozzájuk (a csoportok azonosítói ugyan + eltérhetnek az általunk + használtaktól): + + + + + + csoport azonosítója + csoport neve + leírás + + + + + 100 + dba + Adatbázis adminisztrátor + + + 101 + sapsys + &sap; rendszer + + + 102 + oper + Adatbázis operátor + + + + + + Az &oracle; + alapértelmezett + telepítésénél csak a + dba csoport jön létre. A + dba csoportot + oper csoportként is + használhatjuk (bõvebb + információkért lásd az + &oracle; és az + &sap; + dokumentációját). + + Ezenkívül az alábbi + felhasználókra van még + szükségünk: + + + + + + felhasználói + azonosító + felhasználói név + általános név + csoport + egyéb csoportok + leírás + + + + + 1000 + idsadm/prdadm + sidadm + sapsys + oper + &sap; adminisztrátor + + + 1002 + oraids/oraprd + orasid + dba + oper + &oracle; adminisztrátor + + + + + + Az &man.adduser.8; parancs használata során + a következõkre lesz szükségünk egy + &sap; Administrator + létrehozásához (figyeljük a + parancsértelmezõt (shell) és a + felhasználói könyvtárat (home + directory)): + + Name: sidadm +Password: ****** +Fullname: SAP Administrator SID +Uid: 1000 +Gid: 101 (sapsys) +Class: +Groups: sapsys dba +HOME: /home/sidadm +Shell: bash (/compat/linux/bin/bash) + + Ugyanígy az &oracle; Administrator + esetében: + + Name: orasid +Password: ****** +Fullname: Oracle Administrator SID +Uid: 1002 +Gid: 100 (dba) +Class: +Groups: dba +HOME: /oracle/sid +Shell: bash (/compat/linux/bin/bash) + + A dba és + oper csoportok használata + során ne felejtsük el megadni az + oper csoportot sem. + + + + + Könyvtárak létrehozása + + A könyvtárakat általában + külön állományrendszerekként + hozzák létre, de ez teljesen az + igényeinken múlik. Mi most egyszerû + könyvtárakként alakítottuk ki + ezeket, ezért tulajdonképpen ugyanazon a + RAID 5 tömbön találhatóak + meg: + + Ehhez elõször beállítjuk az egyes + könyvtárak tulajdonosait és + engedélyeit (root + felhasználóként): + + &prompt.root; chmod 775 /oracle +&prompt.root; chmod 777 /sapmnt +&prompt.root; chown root:dba /oracle +&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap +&prompt.root; chmod 775 /compat/linux/usr/sap + + Másodsorban + orasid + felhasználóként hozzuk létre az + /oracle/SID + alkönyvtárait: + + &prompt.root; su - orasid +&prompt.root; cd /oracle/SID +&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB +&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 +&prompt.root; mkdir saparch sapreorg +&prompt.root; exit + + Az &oracle; 8.1.7 + telepítésénél még + további könyvtárakra is + szükségünk lesz: + + &prompt.root; su - orasid +&prompt.root; cd /oracle +&prompt.root; mkdir 805_32 +&prompt.root; mkdir client stage +&prompt.root; mkdir client/80x_32 +&prompt.root; mkdir stage/817_32 +&prompt.root; cd /oracle/SID +&prompt.root; mkdir 817_32 + + + A client/80x_32 + könyvtárnak pontosan ilyen névvel kell + rendelkeznie. Ne cseréljük ki a benne + szereplõ x-et semmire se! + + + A harmadik lépésben létrehozzuk a + sidadm + felhasználóhoz tartozó + könyvtárakat: + + &prompt.root; su - sidadm +&prompt.root; cd /usr/sap +&prompt.root; mkdir SID +&prompt.root; mkdir trans +&prompt.root; exit + + + + + Az <filename>/etc/services</filename> + + A &sap.r3; + mûködéséhez fel kell vennünk + néhány olyan bejegyzést is az + /etc/services állományba, + amelyek a &os; telepítése során nem + jönnek létre. Így tehát + írjuk be az alábbi sorokat (legalább a + használni kívánt példány + számához illõ sorokat adjuk meg — ez + jelen esetünkben most a 00. + Természetesen az sem okoz gond, ha a + dp, gw, + sp és ms + esetén beírjuk az összes + példánynak megfelelõ portot + 00-tól 99-ig). + Amennyiben a SAProuter vagy az + &sap; OSS + használatára lenne szükségünk, + akkor adjuk meg a SAProuter + által lefoglalt 99-es + példánynak megfelelõ 3299-es portot a + rendszerünkön: + + +sapdp00 3200/tcp # SAP menetirányító 3200 + a példány száma +sapgw00 3300/tcp # SAP átjáró 3300 + a példány száma +sapsp00 3400/tcp # 3400 + a példány száma +sapms00 3500/tcp # 3500 + a példány száma +sapmsSID 3600/tcp # SAP üzenetkezelõ szerver 3600 + a példány száma +sapgw00s 4800/tcp # biztonságos SAP átjáró 4800 + a példány száma + + + + + A szükséges nyelvi + beállítások + + nyelvi + beállítás + + Az &sap;-nek legalább + két olyan nyelvre van szüksége, amely nem + részei az alap RedHat telepítéseknek. Az + &sap; a saját FTP szervereirõl + elérhetõvé tette az ehhez + szükséges RPM csomagokat (amelyek viszont csak OSS + típusú hozzáférés + birtokában tölthetõek le). A 0171356 + számú jegyzet tartalmazza a beszerzendõ + RPM-ek listáját. + + Megcsinálhatjuk úgy is, hogy egyszerûen + csak linkeket hozunk létre (például az + de_DE és + en_US könyvtárakra), + habár ezt egy éles rendszer esetében + semmiképpen sem ajánljuk (az IDES rendszerrel + tapasztalataink szerint eddig még remekül + mûködött). Az alábbi nyelvi + beállítások fognak tehát + nekünk kelleni: + + de_DE.ISO-8859-1 +en_US.ISO-8859-1 + + Így hozzuk létre hozzájuk a + linkeket: + + &prompt.root; cd /compat/linux/usr/share/locale +&prompt.root; ln -s de_DE de_DE.ISO-8859-1 +&prompt.root; ln -s en_US en_US.ISO-8859-1 + + A telepítés során az iméntiek + hiánya gondokat okozhat. Ha folyamatosan figyelmen + kívül hagyjuk az ezekbõl fakadó + hibákat (vagyis a CENTRDB.R3S + állományban a gondot okozó + lépések STATUS + értékét OK-ra + állítjuk), akkor komolyabb + erõfeszítések megtétele + nélkül majd képtelenek leszünk + bejelentkezni a frissen telepített + &sap; rendszerünkbe. + + + + + A rendszermag finomhangolása + + a rendszermag + finomhangolása + + Az &sap.r3; rendszerek + temérdek mennyiségû erõforrást + igényelnek. Ennek + kielégítésére az alábbi + paramétereket adjuk hozzá a rendszermag + beállításait tartalmazó + állományhoz: + + # Adjunk a memóriazabálóknak (SAP és Oracle): +options MAXDSIZ="(1024*1024*1024)" +options DFLDSIZ="(1024*1024*1024)" +# Kell néhány System V beállítás is: +options SYSVSHM # SYSV típusú osztott memória be +options SHMMAXPGS=262144 # a megosztható memória maximális mérete lapokban +#options SHMMAXPGS=393216 # a 46C telepítésekor ezt használjuk +options SHMMNI=256 # az osztott memóriákhoz tartozó azonosítók maximális száma +options SHMSEG=100 # a futó programonként megosztható szegmensek maximuma +options SYSVMSG # SYSV típusú üzenetsorok +options MSGSEG=32767 # a rendszerben keringõ üzenetszegmensek maximális száma +options MSGSSZ=32 # az üzenetszegmensek mérete. 2 hatványa LEGYEN +options MSGMNB=65535 # maximális karakter üzenetsoronként +options MSGTQL=2046 # a rendszerben levõ üzenetek maximuma +options SYSVSEM # SYSV típusú szemaforok +options SEMMNU=256 # a szemaforok UNDO struktúráinak száma +options SEMMNS=1024 # a rendszerben levõ szemaforok száma +options SEMMNI=520 # a szemaforok azonosítóinak mennyisége +options SEMUME=100 # az UNDO kulcsok száma + + Az itt megadott minimum értékek az &sap; + által kiadott dokumentációkból + származnak. Mivel a Linux változathoz + errõl nincs külön leírás, + ezért a (32 bites) HP-UX változat + dokumentációi között érdemes + ennek utánanézni. Mivel a 4.6C SR2 + telepítéséhez használt rendszeren + valamivel több fizikai memória állt + rendelkezésünkre, ezért az osztott + szegmensek méretét nagyobbra tudtuk + megválasztani mind az &sap; + és mind az &oracle; + esetében, ami magyarázza a megosztható + lapok nagyobb számát. + + + Az &os; &i386; változatának + telepítése során hagyjuk meg a + MAXDSIZ és + DFLDSIZ értékek + alapértelmezett 1 GB-os maximumát. + Ellenkezõ esetben ezekhez hasonló furcsa + hibaüzeneteket láthatunk: ORA-27102: + out of memory vagy Linux Error: 12: + Cannot allocate memory. + + + + + + + Az &sap.r3; telepítése + + + Az &sap; CD-k + elõkészítése + + Sok CD-t kell a telepítés során + mozgatni, tehát csatlakoztatni és + leválasztani. Ha viszont elegendõ + meghajtóval rendelkezünk, akkor akár + csatlakoztathatjuk egyszerre is az összeset. Vagy + felmásolhatjuk a CD-t tartalmát a nekik + megfelelõ könyvtárakba: + + /oracle/SID/sapreorg/cd-neve + + ahol a cd-neve a + következõk valamelyike: KERNEL, + RDBMS, EXPORT1, + EXPORT2, EXPORT3, + EXPORT4, EXPORT5 + és EXPORT6 (4.6B/IDES), valamint + KERNEL, RDBMS, + DISK1, DISK2, + DISK3, DISK4 + és LANG (4.6C SR2). A + csatlakoztatott CD-ken található + állományok neveinek nagybetûseknek kell + lenniük. Ha nem így lenne, akkor a + csatlakoztatásnál adjuk meg a + opciót. Így tehát a + következõ parancsokat kell kiadnunk: + + &prompt.root; mount_cd9660 -g /dev/cd0a /mnt +&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-neve +&prompt.root; umount /mnt + + + + + A telepítõszkript futtatása + + Elsõként egy install nevû + könyvtárat kell + elõkészítenünk: + + &prompt.root; cd /oracle/SID/sapreorg +&prompt.root; mkdir install +&prompt.root; cd install + + Ezután futtassuk le a + telepítõszkriptet, ami pedig bemásolja az + install + könyvtárba szinte az összes fontos + állományt: + + &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH + + Az IDES (4.6B) változathoz egy teljes &sap.r3; + bemutató rendszer is tartozik, ezért a + megszokott három CD helyett hat EXPORT + típusú CD-bõl áll. Itt a + CENTRDB.R3S telepítõsablon + csak a szabvány központi példányt + hozza létre (&r3; és + az adatbázis), az IDES központi + példányát már nem. Ezért + az EXPORT1 + könyvtárból ki kell másolnunk a + CENTRDB.R3S állományt, + különben az R3SETUP csak + három EXPORT CD-t fog kérni. + + Az újabb &sap; 4.6 SR2 + kiadáshoz négy EXPORT CD tartozik. A + telepítés folyamatát a + CENTRAL.R3S állományban + levõ paraméterek vezérlik. A + korábbi kiadásokkal ellentétben nincsenek + külön sablonok az adatbázissal és a + nélküle telepítendõ központi + példányok számára. Az + &sap; az adatbázisok + telepítésére külön sablont + használ. Újrakezdéskor a + telepítést ettõl függetlenül + elegendõ az eredeti állománnyal + újraindítani. + + A telepítés közben és + után az &sap;-nek a + hostname paranccsal csak a gép + saját nevét, nem pedig a teljes + hálózati nevét kell megadnunk. Ilyenkor + ezt vagy egyenként begépeljük, vagy + létrehozunk rá egy álnevet az + orasid + és + sidadm + (valamint a megfelelõ lépésekben a + root) felhasználóknak: + alias hostname='hostname -s'. + Ezenkívül még az + &sap; telepítésekor + létrehozott mindkét felhasználó + .profile és + .login állományait is + beállíthatjuk ennek megfelelõen. + + + + + Az <command>R3SETUP</command> 4.6B + verziójának indítása + + Ne felejtsük el jól beállítani + az LD_LIBRARY_PATH környezeti + változót: + + &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib + + A telepítés könyvtárában + root felhasználóként + indítsuk el az R3SETUP + programot: + + &prompt.root; cd /oracle/IDS/sapreorg/install +&prompt.root; ./R3SETUP -f CENTRDB.R3S + + A szkript ezek után feltesz néhány + kérdést (az alapértelmezett + válaszok zárójelben, + közvetlenül a megadottak után): + + + + + + Kérdés + Alapértelmezés + Válasz + + + + + Enter SAP System ID + [C11] + IDSEnter + + + Enter SAP Instance Number + [00] + Enter + + + Enter SAPMOUNT Directory + [/sapmnt] + Enter + + + Enter name of SAP central host + [troubadix.domain.de] + Enter + + + Enter name of SAP db host + [troubadix] + Enter + + + Select character set + [1] (WE8DEC) + Enter + + + Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 + + 1Enter + + + Extract Oracle Client archive + [1] (Yes, extract) + Enter + + + Enter path to KERNEL CD + [/sapcd] + /oracle/IDS/sapreorg/KERNEL + + + Enter path to RDBMS CD + [/sapcd] + /oracle/IDS/sapreorg/RDBMS + + + Enter path to EXPORT1 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT1 + + + Directory to copy EXPORT1 CD + [/oracle/IDS/sapreorg/CD4_DIR] + Enter + + + Enter path to EXPORT2 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT2 + + + Directory to copy EXPORT2 CD + [/oracle/IDS/sapreorg/CD5_DIR] + Enter + + + Enter path to EXPORT3 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT3 + + + Directory to copy EXPORT3 CD + [/oracle/IDS/sapreorg/CD6_DIR] + Enter + + + Enter path to EXPORT4 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT4 + + + Directory to copy EXPORT4 CD + [/oracle/IDS/sapreorg/CD7_DIR] + Enter + + + Enter path to EXPORT5 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT5 + + + Directory to copy EXPORT5 CD + [/oracle/IDS/sapreorg/CD8_DIR] + Enter + + + Enter path to EXPORT6 CD + [/sapcd] + /oracle/IDS/sapreorg/EXPORT6 + + + Directory to copy EXPORT6 CD + [/oracle/IDS/sapreorg/CD9_DIR] + Enter + + + Enter amount of RAM for SAP + DB + + 850Enter (megabyte) + + + Service Entry Message Server + [3600] + Enter + + + Enter Group-ID of sapsys + [101] + Enter + + + Enter Group-ID of oper + [102] + Enter + + + Enter Group-ID of dba + [100] + Enter + + + Enter User-ID of sidadm + [1000] + Enter + + + Enter User-ID of orasid + [1002] + Enter + + + Number of parallel procs + [2] + Enter + + + + + + Ha a CD-ket nem különbözõ helyekre + másoltuk, akkor az &sap; + telepítõje nem fogja megtalálni a ezeket (a + rajtuk levõ LABEL.ASC segít + neki az azonosításban) és kérni + fogja a CD csatlakoztatását, illetve a + csatlakozási pontjának + megadását. + + A CENTRDB.R3S sem minden esetben + mentes a hibáktól. A tapasztalataink szerint az + EXPORT4 címkéjû CD-t kérte + újra, miközben a helyes kulcsokat jelezte ki + (6_LOCATION, majd 7_LOCATION stb.), így egyszerûen + csak lépjünk tovább az + értékek meghagyásával. + + Függetlenül az iménti megemlített + problémáktól, egészen az &oracle; + adatbáziskezelõ telepítéséig + mindennek mûködnie kellene. + + + + + Az <command>R3SETUP</command> 4.6C SR2 + elindítása + + Állítsuk be jól az + LD_LIBRARY_PATH környezeti + változó értékét. Ez + némileg eltér a 4.6B és az + &oracle; 8.0.5 + párosának + beállításától: + + &prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib + + A telepítés + könyvtárából + root felhasználóként + indítsuk el az R3SETUP + programot: + + &prompt.root; cd /oracle/PRD/sapreorg/install +&prompt.root; ./R3SETUP -f CENTRAL.R3S + + A szkript ezek után feltesz néhány + kérdést (az alapértelmezett + válaszok zárójelben, + közvetlenül a megadottak után): + + + + + + Kérdés + Alapértelmezés + Válasz + + + + + Enter SAP System ID + [C11] + PRDEnter + + + Enter SAP Instance Number + [00] + Enter + + + Enter SAPMOUNT Directory + [/sapmnt] + Enter + + + Enter name of SAP central host + [majestix] + Enter + + + Enter Database System ID + [PRD] + PRDEnter + + + Enter name of SAP db host + [majestix] + Enter + + + Select character set + [1] (WE8DEC) + Enter + + + Enter Oracle server version (2) Oracle 8.1.7 + + 2Enter + + + Extract Oracle Client archive + [1] (Yes, extract) + Enter + + + Enter path to KERNEL CD + [/sapcd] + /oracle/PRD/sapreorg/KERNEL + + + Enter amount of RAM for SAP + DB + 2044 + 1800Enter (megabyte) + + + Service Entry Message Server + [3600] + Enter + + + Enter Group-ID of sapsys + [100] + Enter + + + Enter Group-ID of oper + [101] + Enter + + + Enter Group-ID of dba + [102] + Enter + + + Enter User-ID of oraprd + [1002] + Enter + + + Enter User-ID of prdadm + [1000] + Enter + + + LDAP support + + 3Enter (nincs + támogatás) + + + Installation step completed + [1] (continue) + Enter + + + Choose installation service + [1] (DB inst,file) + Enter + + + + + + Az OSUSERDBSID_IND_ORA és OSUSERIDADM_IND_ORA + lépésekben az + orasid + és + sidadm) + felhasználók létrehozása + hibákra futhat. + + Függetlenül az említett + problémáktól, az &oracle; + adatbáziskezelõ telepítéséig + mindennek remekül kell mûködnie. + + + + + + Az &oracle; 8.0.5 telepítése + + Az &oracle; Linux + változatának telepítése során + felmerülõ problémák tekintetében + keressük fel az &sap; füzeteket és az &oracle; + Readme állományait. A + legtöbb, ha nem is az összes gondot az + egymással nem kompatibilis + függvénykönyvtárak + okozzák. + + Az &oracle; + telepítésének részleteit a Az &oracle; + telepítése címû szakaszban + találjuk. + + + Az &oracle; 8.0.5 telepítése az + <command>orainst</command> + segítségével + + Az &oracle; 8.0.5 + verziójának használata esetén + néhány további + függvénykönyvtár + újralinkelésére is szükség + lesz, mivel az &oracle; 8.0.5 + még a régi glibc könyvtárral lett + fordítva (RedHat 6.0), viszont a RedHat 6.1 + már a glibc újabb verzióját + használja. A linkelés + mûködéséhez az alábbi + csomagokat kell még telepítenünk: + + + compat-libs-5.2-2.i386.rpm + compat-glibc-5.2-2.0.7.2.i386.rpm + compat-egcs-5.2-1.0.3a.1.i386.rpm + compat-egcs-c++-5.2-1.0.3a.1.i386.rpm + compat-binutils-5.2-2.9.1.0.23.1.i386.rpm + + + A részleteket lásd az &sap; füzeteiben + vagy az &oracle; Readme + állományaiban. Amennyiben ez nem oldható + meg, akkor az eredeti binárisok, esetleg az eredeti + RedHat rendszerbõl származó + újralinkelt binárisok is + használhatóak (habár a + telepítés pillanatában személyesen + ezt nem tudtuk ellenõrizni). + + Az intelligens ügynök + lefordításához fel kell raknunk a RedHat + saját Tcl csomagját. Ha ehhez nem tudjuk + beszerezni a tcl-8.0.3-20.i386.rpm + csomagot, akkor a RedHat 6.1 változatához + készült tcl-8.0.5-30.i386.rpm + is megteszi. + + Az újralinkeléstõl eltekintve a + telepítés többi része szinte adja + magát: + + &prompt.root; su - oraids +&prompt.root; export TERM=xterm +&prompt.root; export ORACLE_TERM=xterm +&prompt.root; export ORACLE_HOME=/oracle/IDS +&prompt.root; cd $ORACLE_HOME/orainst_sap +&prompt.root; ./orainst + + Az &oracle; On-Line Text Viewer + kikapcsolásán (mivel az jelenleg nem Linux alatt + sem érhetõ el) kívül mindegyik + képernyõt hagyjuk jóvá az + Enter billentyû + lenyomásával. Az + &oracle; ezután a + rendelkezésre álló + gcc, egcs vagy + i386-redhat-linux-gcc helyett a + i386-glibc20-linux-gcc + használatával újra akarjuk linkelni + magát. + + Idõ hiányában az &oracle; + 8.0.5 PreProduction + kiadásából emeltünk ki + binárisokat, de az adatbáziskezelõ rendszer + felélesztésére tett elsõ + kísérleteink kudarcba fulladtak, és + ezután a megfelelõ RPM-ek összeszedése + valódi rémálomnak bizonyult. + + + + + Az &oracle; 8.0.5 Pre-production Release for Linux + (Kernel 2.0.33) telepítése + + A telepítés nagyon könnyû. + Csatlakoztassuk a CD-t, majd indítsuk el a + telepítõt. Ezután meg kell adnunk az + &oracle; felhasználói + könyvtárát és a telepítõ + odamásolja az összes binárist. + Habár a telepítés megkezdése + elõtt a korábbi kísérleteink + nyomát nem tüntettük el. + + Ezt követõen az + &oracle; adatbázisrendszer + minden további gond nélkül + elindítható. + + + + + + Az &oracle; 8.1.7 Linux változatának + telepítése + + Szedjük le az oracle8172.tgz + állományt a Linux rendszeren létrehozott + könyvtárából, és bontsuk ki a + /oracle/SID/817_32/ + könyvtárba. + + + + + Az &sap.r3; telepítésének + folytatása + + Elõször is ellenõrizzük az + isamd (sidadm) + és oraids + (orasid) felhasználók + környezeti beállításait. A + .profile, .login + és .cshrc + állományaikban a korábbi + beállítások szerint kell szerepelnie a + hostname parancsnak. Ha még mindig a + teljes hálózati név lenne meg bennünk, + akkor a hostname parancsot át kell + írni mind a három állományban a + hostname -s parancsra. + + + Az adatbázis feltöltése + + Ezután az R3SETUP + folytatható vagy újraindítható + (attól függõen, hogy a kilépés + választottuk-e vagy sem). Az + R3SETUP ekkor létrehozza az + adatbázisban a táblákat és az + R3load meghívásával + feltölti ezeket adatokkal (a 46B IDES változat + esetében az EXPORT1 - EXPORT6, a 46C esetében + pedig a DISK1 - DISK4 lemezekrõl). + + Amikor a feltöltés befejezõdõtt (ami + akár órákig is eltarthat), + szükség lesz még néhány + jelszó megadására is. A + próbatelepítéseknél nyugodtan + használhatjuk a jól ismert + alapértelmezett jelszavakat (azonban + mindenképpen változtassuk meg ezeket, ha egy + kicsit is számít a biztonság!): + + + + + + Kérdés + Válasz + + + + + Enter Password for sapr3 + sapEnter + + + Confirum Password for sapr3 + sapEnter + + + Enter Password for sys + change_on_installEnter + + + Confirm Password for sys + change_on_installEnter + + + Enter Password for system + managerEnter + + + Confirm Password for system + managerEnter + + + + + + A 4.6B telepítése során még + gondjaink akadtak a dipgntab + használatával. + + + + + Az &oracle; Listener elindítása + + Így kell elindítani az + orasid + felhasználóval az + &oracle; Listenert: + + &prompt.user; umask 0; lsnrctl start + + Ha máshogy próbálkozunk, akkor az + ORA-12546 kódú + hibát fogjuk kapni, mert a hálózati + portok socketei nem rendelkeznek a szükséges + engedélyekkel. Lásd a 072984-es &sap; + füzet. + + + + + Az MNLS táblák + frissítése + + Ha nem Latin 1 kódolású nyelveket + akarunk importálni az &sap; + rendszerbe, akkor frissítenünk kell a + többnyelvû nyelvi támogatáshoz (Multi + National Language Support, MNLS) tartozó + táblázatokat. Ezek bemutatását a + 15023 és 45619 számú &sap; OSS + füzetekben olvashatjuk. Minden más esetben az + &sap; telepítésekor + nyugodtan kihagyhatjuk. + + + Ha még nincs is konkrétan + szükségünk az MNLS-re, akkor is + ellenõriznünk és inicializálnunk + kell a TCPDB táblát. A 0015023 és + 0045619 számú &sap; füzetekben tudhatunk + meg errõl többet. + + + + + + + Telepítés utáni teendõk + + + Az &sap.r3; licenckulcsának + megszerzése + + Az &sap.r3; + licenckulcsát külön kell kérni. + Fontos, mert a telepítéshez használatos + ideiglenes licenc csak négy hétig + érvényes. Elõször szerezzük meg + a hardverkulcsot. Jelentkezzünk be az + idsadm felhasználóval + és adjuk ki a saplicense + parancsot: + + &prompt.root; /sapmnt/IDS/exe/saplicense -get + + Ha a saplicense paraméter + nélkül meghívására + válaszul opciókat listáz ki. A + licenckulcsot megérkezése után így + tudjuk élesíteni: + + &prompt.root; /sapmnt/IDS/exe/saplicense -install + + Ezután a következõ + értékeket kell megadni: + + SAP SYSTEM ID = SID, 3 karakter +CUSTOMER KEY = hardverkulcs, 11 karakter +INSTALLATION NO = telepítés száma, 10 számjegy +EXPIRATION DATE = ééééhhnn, tehát "99991231" +LICENSE KEY = licenckulcs, 24 karakter + + + + A felhasználók + létrehozása + + Hozzunk létre egy felhasználót a 000 + kliensen belül (a csak rajta belül + elvégezhetõ feladatokhoz, aki + különbözik a sap* + és ddic + felhasználóktól). + Felhasználónévként + általában a wartung nevet + választottuk (ami angolul a + service névnek, avagy + szolgáltatásnak felel meg). A + sap_new és + sap_all nevû profilok is kellenek. A + biztonságosság kedvéért a kliens + összes alapértelmezett + felhasználójának (beleértve a + sap* és ddic + felhasználókat is) változtassuk meg a + jelszavát. + + + + + A szállítási rendszer, a profilok, + mûködési módok stb. + beállítása + + A ddic és + sap* felhasználóktól + eltérõ nevû felhasználóval a + 000 kliensen belül legalább a + következõket végezzük el: + + + + + + Feladat + Tranzakció + + + + + A szállítási rendszer (Transport + System) beállítása, + például a Stand-Alone Transport + Domain Entity értékre + STMS + + + A rendszer profiljának + létrehozása és + szerkesztése + RZ10 + + + A mûködési módok és + példányok karbantartása + RZ04 + + + + + + Az iménti és az összes többi + telepítés utáni lépések + leírása teljes egészében + megtalálható az &sap; + telepítési útmutatóiban. + + + + + Az + <filename>init<replaceable>sid</replaceable>.sap</filename> + (<filename>initIDS.sap</filename>) szerkesztése + + Az /oracle/IDS/dbs/initIDS.sap + állomány tartalmazza a + &sap; tartalék + profilját. Itt többek közt a + használni kívánt szalag + méretét, a tömörítés + típusát és hasonló + paramétereket kell definiálni. A + sapdba / brbackup + futtatásához a következõ + értékeket változtattuk meg: + + compress = hardware +archive_function = copy_delete_save +cpio_flags = "-ov --format=newc --block-size=128 --quiet" +cpio_in_flags = "-iuv --block-size=128 --quiet" +tape_size = 38000M +tape_address = /dev/nsa0 +tape_address_rew = /dev/sa0 + + Magyarázat: + + compress + (tömörítés): HP DLT1 + típusú szalagot használtunk, ami tud + hardveres tömörítést. + + archive_function + (archiválási házirend): Ez adja meg, hogy + alapértelmezés szerint mi történjen + az &oracle; archívált naplóival: az + új naplóállományok + elõször a szalagra mentõdnek, majd a már + lementett naplók ismét mentésre + kerülnek és végül törlõdnek. + Ezzel sok fejfájástól + menekülünk meg, mivel ilyenkor az + archiváló szalagok esetleges + sérülése esetén is + valószínûleg képesek leszünk + visszaállítani az adatbázist. + + cpio_flags (a cpio + beállítása): A + használata alapértelmezés, amivel a + blokkok mérete 5120 byte-ra + állítódik. A DLT típusú + szalagokhoz a HP legalább 32 KB-os + blokkméretet javasolt, ezért a + + beállítással ezt 64 KB-ra + növeltük. Szükségünk volt a + + beállításra is, mivel 65535-nél + több inode számunk van. Az utolsó + beállítás a , + amivel megakadályozzuk, hogy a cpio + lementett blokkokat összefoglaló + kijelzésére begerjedjen a + brbackup. + + cpio_in_flags (a cpio bemeneti + beállításai): A szalagok + visszatöltésénél használt + beállítások. A formátumot + automatikusan felismeri. + + tape_size (szalagméret): Ezzel + adjuk meg általában a szalag nyers + kapacitását. Biztonsági okokból + (hardveres tömörítést + használunk) ez az érték a + ténylegesnél valamivel kisebb. + + tape_address (szalagos eszköz): a + cpio által használható + nem visszatekerhetõ eszköz. + + tape_address_rew (visszatekerhetõ + szalagos eszköz): A cpio által + használható visszatekerhetõ + eszköz. + + + + + Telepítés utáni + beállítások + + Az &sap; alábbi + paramétereit kell beállítani a + telepítés után (IDES 46B, 1 GB + memóriával): + + + + + + Név + Érték + + + + + ztta/roll_extension + 250000000 + + + abap/heap_area_dia + 300000000 + + + abap/heap_area_nondia + 400000000 + + + em/initial_size_MB + 256 + + + em/blocksize_kB + 1024 + + + ipc/shm_psize_40 + 70000000 + + + + + + 0013026 &sap; füzet: + + + + + + Név + Érték + + + + + ztta/dynpro_area + 2500000 + + + + + + 0157246 &sap; füzet: + + + + + + Név + Érték + + + + + rdisp/ROLL_MAXFS + 16000 + + + rdisp/PG_MAXFS + 30000 + + + + + + + A fenti paraméterek használatával + egy 1 gigabyte fizikai memóriával + rendelkezõ rendszer esetén + nagyjából így alakul a + memóriahasználat: + + Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free + + (547 MB aktív, 305 MB inaktív, + 109 MB rögzített, 40 MB + gyorsítótár, 112 MB puffer, + 3492 KB szabad) + + + + + + + A telepítés során adódó + problémák + + + Az <command>R3SETUP</command> + újraindítása egy probléma + kijavítása után + + Az R3SETUP hiba esetén + leáll. Miután átnéztük a + hibára utaló naplókat és + elhárítottuk a hiba okát, újra el + kell indítanunk az R3SETUP + programot, majd a REPEAT opció + kiválasztásával próbáljuk + megismételni az R3SETUP által + kifogásolt legutóbbi mûveletet. + + Az R3SETUP + újraindításához egyszerûen + adjuk meg a megfelelõ R3S + állományt: + + &prompt.root; ./R3SETUP -f CENTRDB.R3S + + a 4.6B verzió esetén, vagy a + + &prompt.root; ./R3SETUP -f CENTRAL.R3S + + a 4.6C verzió esetén, függetlenül + attól, hogy a hiba a CENTRAL.R3S + vagy DATABASE.R3S + állományoknál keletkezett. + + + Egyes lépéseknél az + R3SETUP úgy véli, hogy az + &sap; programjai + mûködnek (mivel a hozzájuk tartozó + lépéseket már megtettük), + így a hibák miatt az adatbázist esetleg + korábban nem tudta elindítani. Ezért a + hibák kijavításának + végeztével az R3SETUP + ismételt indítása elõtt + nekünk kell beindítani mind az + adatbázist, mind pedig az + &sap; rendszert. + + Ne felejtsük el újra elindítani az + &oracle; Listener + segédprogramját sem (az + orasid + felhasználóval adjuk ki a umask 0; + lsnrctl start parancsot), ha az + idõközben leállt volna + (például a rendszer kényszerû + újraindítása miatt). + + + + + + OSUSERSIDADM_IND_ORA az <command>R3SETUP</command> + közben + + Ha az R3SETUP panaszkodik ebben a + lépésben, akkor írjuk át az + általa ekkor használt sablont (a 4.6B + esetén ez a CENTRDB.R3S, illetve a + 4.6C esetén ez a CENTRAL.R3S vagy + a DATABASE.R3S). Keressük a + [OSUSERSIDADM_IND_ORA] szöveget, vagy + csak a STATUS=ERROR bejegyzést, majd + írjuk be a következõ + értékeket: + + HOME=/home/sidadm (üres volt) +STATUS=OK (ERROR státusza volt) + + + Ezután indítsuk újra az + R3SETUP programot. + + + + + OSUSERDBSID_IND_ORA az <command>R3SETUP</command> + közben + + Az R3SETUP ebben a + lépésben is hajlamos panaszkodni. Az itt + felbukkanó hiba hasonló az OSUSERSIDADM_IND_ORA + lépésben jelentkezõhöz. + Szerkesszük át az R3SETUP + által ilyenkor használt sablont (4.6B + verzió esetén ez a + CENTRDB.R3S, illetve 4.6C + verziónál a CENTRAL.R3S + vagy DATABASE.R3S). Keressük meg a + [OSUSERDBSID_IND_ORA] részt, vagy + csak a STATUS=ERROR bejegyzést, majd + írjuk át az ebben a szakaszban szereplõ + értéket így: + + STATUS=OK + + Indítsuk újra az R3SETUP + programot. + + + + + <errorname>oraview.vrf FILE NOT FOUND</errorname> hiba az + &oracle; telepítése közben + + A telepítés megkezdése elõtt nem + tiltottuk le az &oracle; On-Line Text + Viewer felrakását. Habár + Linux esetén ez nem használható, + alapértelmezés szerint mégis ki van + választva. Az &oracle; telepítõ + menüjében tiltsuk le ezt és + nélküle kezdjük újra a + telepítést. + + + + + <errorname>TEXTENV_INVALID</errorname> hiba az + <command>R3SETUP</command>, RFC vagy SAPgui Start + programokban + + Ha ilyen hibával kerülünk szembe, akkor + hiányoznak a megfelelõ nyelvi + állományok. A 0171356 &sap; füzet + tartalmazza a telepítendõ RPM csomagok + felsorolását (például a + RedHat 6.1 esetén a + saplocales-1.0-3 és + saposcheck-1.0-1). Amennyiben figyelmen + kívül hagyjuk az ilyen hibákat, és + az R3SETUP minden + kiakadásánál átírjuk (a + CENTRDB.R3S állományban) az + STATUS értékét az + ERROR értékrõl az + OK értékre és + újraindítjuk, az + &sap; nem + állítódik be jól és nem + tudunk a SAPgui + alkalmazással rácsatlakozni a frissen + telepített rendszerre még akkor sem, ha el + tudtuk indítani. Amikor a régebbi linuxos + SAPgui alkalmazással + csatlakozunk, a következõ üzeneteket + kapjuk: + + Sat May 5 14:23:14 2001 +*** ERROR => no valid userarea given [trgmsgo. 0401] +Sat May 5 14:23:22 2001 +*** ERROR => ERROR NR 24 occured [trgmsgi. 0410] +*** ERROR => Error when generating text environment. [trgmsgi. 0435] +*** ERROR => function failed [trgmsgi. 0447] +*** ERROR => no socket operation allowed [trxio.c 3363] +Speicherzugriffsfehler + + Ez a viselkedés annak köszönhetõ, + hogy az &sap.r3; nem képes + jól összerendelni a nyelvi + beállításokat, sõt, magát sem + képes jól beállítani + (hiányoznak némely bejegyzések az + adatbázis egyes tábláiban). Az + &sap;-hez úgy tudunk + ilyenkor csatlakozni, ha a DEFAULT.PFL + állományba felvesszük a következõ + bejegyzéseket (lásd 0043288 füzet): + + abap/set_etct_env_at_new_mode = 0 +install/collate/active = 0 +rscp/TCP0B = TCP0B + + Majd indítsuk újra az egész + &sap; rendszert. Ezután + már tudunk csatlakozni hozzá, még ha az + országra jellemzõ nyelvi + beállítások nem is mûködnek + tökéletesen. Miután korrigáltuk az + ország beállításait (és + felraktuk a megfelelõ nyelvi állományokat), + távolítsuk el az iménti + bejegyzéseket a DEFAULT.PFL + állományból és indítsuk + újra az &sap; + rendszert. + + + + + Az <errorcode>ORA-00001</errorcode> hiba + + Ez a hiba &os; alatt az &oracle; + 8.1.7 használata során + következhet be. Akkor történik, amikor az + &oracle; adatbázis nem volt + képes rendesen inicializálni magát + és összeomlott, aminek révén + szemaforokat és memóriát hagyott + megosztva a rendszerben. Így az adatbázis + következõ indításakor kapunk egy + kövér ORA-00001 + hibát. + + Az ipcs -a paranccsal keressük meg + ezeket, majd az ipcrm + segítségével pedig számoljuk + fel. + + + + + Az <errorcode>ORA-00445</errorcode> (a PMON + háttérprogram nem indult el) hiba + + Ez a hiba az &oracle; 8.1.7 + használatakor következhet be. Akkor kapjuk ezt a + hibát, amikor prdadm + felhasználóként a elindítjuk + startsap szkriptet (például + startsap_majestix_00). + + Erre gyógyír lehet, ha ehelyette az + adatbázis elindításához az + oraprd felhasználóval adjuk + ki az svrmgrl parancsot: + + &prompt.user; svrmgrl +SVRMGR> connect internal; +SVRMGR> startup; +SVRMGR> exit + + + + + Az <errorcode>ORA-12546</errorcode> (A Listener + indítása megfelelõ engedélyekkel) + hiba + + Az &oracle; Listener + alkalmazását oraids + felhasználóként az alábbi + paranccsal indítsuk el: + + &prompt.root; umask 0; lsnrctl start + + Máskülönben + ORA-12546 hibát kapunk, mivel a + hálózati portokhoz tartozó socketek nem + rendelkeznek a megfelelõ engedélyekkel. + Lásd 0072984 &sap; füzet. + + + + + Az <errorcode>ORA-27102</errorcode> (Nincs elég + memória) hiba + + Akkor fordul elõ ilyen hiba, amikor a + MAXDSIZ és + DFLDSIZ értékeit + 1 GB-nál (1024 x 1024 x 1024-nél) nagyobbra + állítottuk. Mellé még kapunk egy + Linux Error 12: Cannot allocate memory + hibát is. + + + + + [DIPGNTAB_IND_IND] az <command>R3SETUP</command> + közben + + Errõl alapvetõen a 0130581 számú + &sap; füzet ad tájékoztatást (az + R3SETUP DIPGNTAB + lépése hibára fut). Az IDES + telepítése során az + &sap; rendszer valamiért az + IDS név helyett egy üres + karakterláncot használ. Ez a + könyvtárak elérésében kisebb + gondokat okoz, mivel az elérési útvonaluk + a SID-bõl + generálódik (ami ebben az esetben az IDS). + Tehát a + + /usr/sap/IDS/SYS/... +/usr/sap/IDS/DVMGS00 + + helyett a következõt próbálja meg + elérni: + + /usr/sap//SYS/... +/usr/sap/D00 + + A telepítés folytatásához + létrehoztunk egy linket és egy másik + könyvtárat: + + &prompt.root; pwd +/compat/linux/usr/sap +&prompt.root; ls -l +total 4 +drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 +drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS +lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS +drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp +drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans + + Észrevettük, hogy a &sap; füzetekben + (0029227 és 0008401) ugyanezt a viselkedést + írják le. Az &sap; + 4.6C telepítésénél + azonban ilyen hibával nem találkoztunk. + + + + + [RFCRSWBOINI_IND_IND] az <command>R3SETUP</command> + közben + + Az &sap; 4.6C + telepítése folyamán ez a hiba + csupán egy korábban bekövetkezett + másik hiba utóhatása volt. Itt át + kell néznünk az összes érintett + naplót és ki kell javítanunk a + tényleges problémát. + + Amennyiben a naplók + átvizsgálása után csak ezt + találjuk egyedüli hibának (lásd + &sap; füzetek), állítsuk át (a + CENTRDB.R3S állományban) a + STATUS értékét az + OK értékre, majd + indítsuk újra az R3SETUP + programot. A telepítés befejezése + után hajtsuk végre az SE38 + tranzakcióból az RSWBOINS + riportot. A további RFCRSWBOINI + és RFCRADDBDIF + lépésekkel kapcsolatban lásd a 0162266 + &sap; füzetet. + + + + + [RFCRADDBDIF_IND_IND] az <command>R3SETUP</command> + közben + + Itt az elõbbihez hasonló feltételek + élnek: mindenképpen ellenõrizzük a + naplókban, hogy a hibát nem egy korábban + keletkezett hiba okozta. + + Ha tényleg csak az 0162266 &sap; füzetben + leírtak érvényesek, akkor (a + CENTRDB.R3S állományban) + állítsuk a gondot okozó + lépés STATUS + értékét az ERROR + értékrõl az OK + értékre, és indítsuk újra + az R3SETUP programot. A + telepítés után pedig hajtsuk végre + az SE38 tranzakciból az RADDBDIF + riportot. + + + + + A <errorcode>sigaction sig31: File size limit + exceeded</errorcode> hiba + + Ez a disp és work + &sap; programok + indítása során történhet meg. + Az &sap; rendszert + indító startsap + szkriptrõl leválva indulnak el a többi + &sap; program + elindításáért felelõs + alfolyamatok. Ennek eredményeképpen a szkript + maga nem fogja észrevenni a hibát. + + Az &sap; programok + elindulását az ps ax | grep + SID paranccsal tudjuk + ellenõrizni. Az eredményül kapott + listában az összes aktív + &oracle; és + &sap; programnak szerepelnie kell. + Ha ebbõl az tûnik ki, hogy bizonyos programok + hiányoznak, vagy nem képesek kapcsolódni + az &sap; rendszerhez, akkor az + /usr/sap/SID/DVEBMGSnr/work/ + könyvtárban nézzük át a + hozzájuk tartozó + naplóállományokat. Elsõsorban a + dev_ms és a + dev_disp állományok + fontosak számunkra. + + A 31-es jelzés akkor keletkezik, ha az + &oracle; és az + &sap; által használt + osztott memória mértéke meghaladja a + rendszermag beállításai közt + megadott értéket. Ezt tehát ennek + növelésével lehet orvosolni: + + # az éles 46C rendszereknek több kell: +options SHMMAXPGS=393216 +# a 46B beéri kevesebbel is: +#options SHMMAXPGS=262144 + + + + + A <command>saposcol</command> nem indul + + A saposcol (4.6D verzió) + programmal akad néhány probléma. Az + &sap; rendszer az + saposcol segítségével + próbál adatokat gyûjteni a rendszer + teljesítményérõl. Mivel ez a + program nem feltétlenül szükséges az + &sap; rendszer + mûködéséhez, ez a probléma nem + tekinthetõ komolynak. A korábbi (4.6B) + verziókban ugyan mûködik, de semmilyen adatot + nem képes begyûjteni (mivel a legtöbb + hívás, például a + processzorhasználat függvénye, + egyszerûen csak nullát ad vissza). + + + + + + + Témák haladóknak + + Ha kíváncsiak vagyunk a Linux + emuláció mûködésére, + olvassuk el ezt a szakaszt. Az itt ismertettek leginkább + Terry Lambert (tlambert@primenet.com) &a.chat; + címére írt levele nyomán kerülnek + bemutatásra (Az üzenet azonosítója: + <199906020108.SAA07001@usr09.primenet.com>). + + + Hogyan mûködik? + + végrehajtási osztály + betöltõ + + A &os; rendelkezik egy ún. + végrehajtási osztály + betöltõvel (execution class loader). Ez + lényegében a &man.execve.2; + rendszerhívás alatt meghúzódó + absztrakciós réteg. + + A &os;-nek a #! karaktersorozat + hatására parancsértelmezõk vagy a + hozzájuk tartozó szkriptek + betöltésére utasító + biztonsági betöltõ helyett van egy + listája az alkalmas betöltõkrõl. + + A &unix; rendszerek a hagyományok szerint egyetlen + betöltõvel rendelkeznek, ami elõször + megvizsgálja a betölteni kívánt + állomány bûvös számát (ami + általában az elsõ 4 vagy 8 byte) és ez + alapján eldönti, hogy az adott formátum + támogatott-e. Amennyiben ez így van, + meghívja a betöltõt. + + Ha a bináris típusa nem ismert a rendszer + számára, akkor az &man.execve.2; + hívás hibával tér vissza, és + a parancsértelmezõ próbálja meg a + saját parancsaiként értelmezni. + + Eddig ez volt az alapértelmezés, + akármilyen parancsértelmezõnk is + volt. + + Késõbb az &man.sh.1; kódjába + bekerült egy aprócska okosítás, amivel + megnézte az állomány elsõ két + karakterét, és ha az :\n volt, + akkor a futtatáshoz maga helyett a &man.csh.1; + parancsértelmezõt hívta meg (ezt + állítólag elõször a SCO + csinálta). + + A &os; viszont végignézi a betöltõk + teljes listáját, amiben a sor végén + szerepel egy általános #! + formátumú betöltõ. Ez az + állomány futtatásához + használatos értelmezõk kódját + keresi, és ha egyet sem sikerül azonosítania, + akkor a /bin/sh programot indítja + el. + + ELF + + A Linux ABI támogatását a &os; + úgy oldja meg, hogy elõször észleli az + ELF bináris bûvös számát (ekkor + még nem tesz különbséget a &os;, + &solaris;, Linux vagy más ELF típusú + binárisokat használó + operációs rendszerek közt). + + Solaris + + Ezután az ELF formátum betöltõje az + ELF állomány megjegyzéseket + tároló szakaszában + bélyegek (brand) után kutat, + ami SVR4 és &solaris; ELF binárisok esetén + nem létezik. + + A Linux binárisokat + mûködésükhöz a &man.brandelf.1; + segítségével Linux + típusúnak kell + megbélyegezni: + + &prompt.root; brandelf -t Linux állomány + + Miután ezt megcsináltuk, az ELF + betöltõ észre fogja venni az + állomány Linux + típusát. + + + ELF + megbélyegzés + + + Mikor az ELF betöltõ észleli, hogy az + állomány Linux + típusú, kicseréli egy mutató + értékét a proc + struktúrában. Minden rendszerhívás + ezen a mutatón keresztül érhetõ el (a + hagyományos &unix; rendszerekben ez a + rendszerhívásokat tartalmazó + sysent[] struktúratömb). + Emellett a frissen elindított program szoftveres + megszakításait tartalmazó + tömbjéhez beállítja a speciális + jelzések kezelését, valamint a Linux modul + által végzett néhány további + (kisebb) javítást. + + A Linux rendszerhívásokat tartalmazó + tömb többek közt tartalmazza a + sysent[] bejegyzések egy + listáját, amelyek címei a rendszermag Linux + moduljára mutatnak. + + Amikor a Linux bináris hív egy + rendszerhívást, a hozzátartozó + szoftveres megszakítás kódja a + proc struktúrából a neki + megfelelõ rendszerhívás kódját + hivatkozza, így &os; rendszerhívás + belépési pontja helyett a Linuxét kapja + meg. + + Ráadásul Linux módban a + különbözõ állományok + hivatkozásai is + átirányítódnak. + Ez lényegében olyan, mint amit az + állományrendszerek + csatlakoztatásánál a + beállítás csinál (ami + nem egyezik meg az + unionfs állományrendszerrel!). + Ilyenkor az állományokat elõször a + /compat/linux/eredeti-hely + könyvtárában keresi, és + majd ha ott nem találja, csak akkor + kezdi el keresni az + /eredeti-hely + ponton. Ezzel oldhatjuk meg, hogy más binárisok + futtatását igénylõ binárisok is + képesek legyenek rendesen mûködni + (például így az egész linuxos + eszköztár tud futni a Linux ABI-n keresztül). + Egyúttal arra is utal, hogy ha a Linux binárisok + számára nem áll rendelkezésre a + megfelelõ bináris, akkor &os; binárisokat is + el tudnak indítani. Ha a &man.uname.1; programot pedig + bemásoljuk a /compat/linux + könyvtáron belülre, akkor a Linux + binárisok képtelenek lesznek megmondani, hogy nem + Linux alatt futnak. + + Így lényegében egy Linux magot + találunk a &os; rendszermagjában. A benne + megtalálható különbözõ + szolgáltatásokat megvalósító + függvények: az állománymûveletek, + a virtuális memória kezelése, a + jelzések küldése és System V + típusú folyamatok közti + kommunikáció stb. megegyeznek a &os; és a + Linux hívásai esetén egyaránt. + Egyetlen eltérés, hogy a &os; binárisok a + &os; segédfüggvényein + (glue function), a Linux binárisok pedig a Linux + segédfüggvényein keresztül férnek + hozzájuk (a legelsõ operációs + rendszerek tulajdonképpen csak a saját + segédfüggvényeiket tartalmazták: a + hívást kezdeményezõ program + proc struktúrájában a + függvények dinamikusan beállított + címe helyett egy globális + sysent[] struktúratömbben + tárolták a meghívható + függvényeket). + + Melyik közülük a &os; natív ABI-ja? + Ez teljesen lényegtelen. Alapvetõen az egyetlen + különbség csupán annyi (pillanatnyilag, + de ez a jövõben még változhat, + valószínûleg hamarosan), hogy a &os; + segédfüggvényei + statikusan megtalálhatóak a rendszermagban, + míg a Linux + segédfüggvényei + egyaránt elérhetõek modulból vagy + statikus linkeléssel. + + Na igen, de akkor ez most emuláció? Nem. Ez + egy ABI, nem emuláció. Itt szó sincs + emulátorról (ahogy szimulátorról + sincs). + + De akkor mégis miért hívják ezt + sokszor Linux emulációnak? + Hát hogy nehezebb legyen eladni a &os;-t! Komolyra + fordítva a szót: ennek a kezdeti változata + akkoriban született meg, amikor erre még nem volt + rendes szó. Nem mondhattuk, hogy a &os; + befordítás vagy egy modul betöltése + nélkül képes lett volna Linux + binárisokat futtatni, ezért valamilyen + módon meg kellett neveznünk az ilyenkor + betöltött kódot — ebbõl lett + a Linux emulátor. + + + +
+ + + diff --git a/hu_HU.ISO8859-2/books/handbook/mac/Makefile b/hu_HU.ISO8859-2/books/handbook/mac/Makefile new file mode 100644 index 0000000000..74aca4172f --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mac/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= mac/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/mac/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/mac/chapter.sgml new file mode 100644 index 0000000000..33a92917bd --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mac/chapter.sgml @@ -0,0 +1,2987 @@ + + + + + + + + + Tom + Rhodes + Írta: + + + + + Kötelezõ + hozzáférés-vezérlés + + + Áttekintés + + MAC + + kötelezõ + hozzáférés-vezérlés + MAC + + + A &os; 5.X változata új biztonsági + bõvítéseket vett át a TrustedBSD + projektbõl a &posix;.1e nyomán. A két + legjelentõsebb új biztonsági mechanizmus az + állományrendszerekben megtalálható + hozzáférés-vezérlési + listák (Access Control List, ACL) + és a kötelezõ + hozzáférés-vezérlés (Mandatory + Access Control, MAC). A kötelezõ + hozzáférés-vezérlés + segítségével olyan új + hozzáférés-vezérlési modulok + tölthetõek be, amelyek új biztonsági + házirendeket implementálnak. Némelyek + közülük védelmet nyújtanak a rendszer + egy szûk részének, amivel így egy adott + szolgáltatást bástyáznak alá. + Mások minden részletre kiterjedõ + címkézett biztonságot szolgáltatnak + alanyokon és objektumokon keresztül. A + meghatározás kötelezõ + része onnan fakad, hogy a szabályok + betartatását a rendszergazdák és a + rendszer végzik, és nem bízzák a + felhasználókra, ahogy azt a System V + típusú rendszerekben a szabványos + állományokra és IPC-re + érvényes engedélyeken keresztül a + tetszés szerinti + hozzáférés-vezérlés + (Discretionary Access Control, DAC) + teszi. + + Ebben a fejezetben a kötelezõ + hozzáférés-vezérlést + övezõ keretrendszerre (MAC Framework) + és a különbözõ biztonsági + házirendeket megvalósító, + beilleszthetõ modulokra fogunk + összpontosítani. + + A fejezet elolvasása során + megismerjük: + + + + hogy a &os; jelen pillanatban milyen modulokat tartalmaz a + MAC rendszeren belül és milyen + mechanizmusok tartoznak hozzájuk; + + + + hogy a MAC biztonsági + házirendjeit képezõ modulok miket + valósítanak meg, valamint mi a + különbség a címkézett és + címkézetlen házirendek + között; + + + + hogyan kell hatékonyan beállítani + és használni rendszerünkben a + MAC rendszert; + + + + hogyan állítsuk be a MAC + rendszerben található különféle + biztonsági házirendeket képezõ + modulokat; + + + + hogyan hozzunk létre a MAC + rendszer segítségével egy + biztonságosabb környezetet, amire + példákat is mutatunk; + + + + hogyan teszteljük le a MAC + rendszer beállításait és + bizonyosodjunk meg mûködésének + helyességérõl. + + + + A fejezet elolvasásához ajánlott: + + + + a &unix; és a &os; alapjainak ismerete () + + + + a rendszermag beállításának + és lefordításának ismerete () + + + + tisztában lenni az alapvetõ biztonsági + kérdésekkel és azok + hatásával a &os;-n belül () + + + + + Az itt ismertetésre kerülõ + információk helytelen alkalmazása a + rendszer hozzáférhetõségének + teljes elvesztését, a felhasználók + bosszantását vagy az X11 által + felkínált lehetõségek + kirekesztését eredményezheti. Ami viszont + ennél is fontosabb, hogy a MAC + rendszerre nem úgy kell tekinteni, mint amitõl a + rendszerünk tökéletesen + biztonságossá válik. A + MAC segítségével + csupán a meglevõ biztonsági + házirendeket gyarapítjuk. A szilárd + biztonsági rutin és a rendszeres + ellenõrzések elvégzése + nélkül a rendszerünk valójában + sosem lesz teljesen biztonságos. + + Hozzá kell tennünk, hogy a fejezetben bemutatott + példák tényleg csak példák. + Senkinek sem tanácsoljuk, hogy az itt említett + beállításokat egy éles rendszerre is + kiterjessze. A különbözõ biztonsági + modulok felépítése rengeteg + gondolkodást és próbálgatást + igényel. Aki nem érti meg az egész + mûködését, könnyen azon kaphatja + magát, hogy újra végig kell mennie a + rendszeren és egyenként be kell + állítania minden könyvtárat és + állományt. + + + + Amivel itt nem foglalkozunk + + Ebben a fejezetben a MAC rendszerrel + kapcsolatban rengeteg biztonsági kérdéssel + foglalkozni fogunk. Az új MAC + biztonsági modulok kifejlesztését azonban + már nem érintjük. Számos olyan + biztonsági modul található a + MAC rendszerben, amelyek rendelkeznek az + új modulok kialakításához és + teszteléséhez szükséges + jellemzõkkel. Ilyenek többek közt a + &man.mac.test.4;, &man.mac.stub.4; és a &man.mac.none.4;. + Ezekrõl a biztonsági modulokról és az + általuk szolgáltatott mechnanizmusokról a + man oldalaik tudnak bõvebb + tájékoztatást adni. + + + + + + A fejezet fontosabb fogalmai + + A fejezet tartalmának kifejtéséhez + szükségünk lesz néhány fontosabb + alapfogalom tisztázására. + Segítségükkel vélhetõen + sikerül eloszlatni a téma feldolgozása + során felmerülõ + félreértéseket, illetve elkerülni az + új fogalmak és információk + váratlan felbukkanását. + + + + alany: Alanynak tekintünk a + rendszerben minden olyan aktív egyedet, amely + információt áramoltat az + objektumok, tehát a + felhasználók, a processzorok, a rendszerben + futó programok stb. között. A &os;-ben + majdnem minden esetben a felhasználók egy + szálon keresztül vezérlik a futó + programokat. + + + + címke: A címke egy + olyan biztonsági tulajdonság, ami vonatkozhat + állományokra, könyvtárakra vagy a + rendszer más elemeire. Egy címke + tekinthetõ a bizalmasságot jelzõ + pecsétnek is: ha egy állományra + címkét teszünk, akkor benne megadjuk a + rá vonatkozó biztonsági jellemzõket, + és csak a hozzá hasonló biztonsági + beállításokkal rendelkezõ + állományok, felhasználók, + erõforrások stb. érhetik el. A + címkék jelentését és + értelmezését a házirendek + beállítása határozza meg: + míg egyes házirendek a címkéket + egy objektum sértetlenségének vagy + titkosságának tekintik, addig mások a + hozzáféréssel kapcsolatos + szabályokat rögzítik bennük. + + + + egycímkés: + Egycímkés esetrõl akkor + beszélünk, amikor az adat + áramlásának + szabályozására az egész + állományrendszer egyetlen címkét + alkalmaz. Ha ezt beállítjuk egy + állományrendszernél, de nem adjuk meg + vele együtt a opciót, + akkor az összes állományra ugyanaz a + címke érvényes. + + + + erõs vízjel: Az erõs + vízjel házirendje szerint a biztonsági + szint akkor növelhetõ, ha magasabb szintû + információkhoz akarunk hozzájutni. A + legtöbb esetben a folyamatok befejezõdése + után visszaállítódik az eredeti + szint. A &os; MAC rendszere pillanatnyilag + ehhez nem tartalmaz házirendet, de a teljesség + kedvéért megadtuk ennek a + definícióját is. + + + + gyenge vízjel: A gyenge + vízjel házirendje szerint a biztonsági + szint csökkenthetõ az alacsonyabb szintû + információk elérése + érdekében. A legtöbb esetben a folyamatok + befejezõdése után + visszaállítódik az eredeti szint. A + &os;-ben ezt a házirendet egyedül a + &man.mac.lomac.4; alkalmazza. + + + + házirend: Szabályok + olyan gyûjteménye, amely megadja, hogy + miként kell a célokat teljesíteni. Egy + házirend általában + az egyes elemek kezelését rögzíti. + Ebben a fejezetben a házirend + kifejezés alatt a biztonsági + házirendet értjük, tehát + olyan szabályok gyûjteményét, + amelyek az adatok és az információ + áramlását határozzák meg, + továbbá megadják, hogy + közülük ki mihez férhet + hozzá. + + + + kényesség: + Általában az MLS + tárgyalásakor kerül elõ. Az + kényesség szintjével az adatok + fontosságát vagy titkosságát + szokták jelölni. A kényességi szint + növekedésével növekszik az adat + titkosságának vagy bizalmasságának + szintje. + + + + objektum: Objektum vagy + rendszerobjektum minden olyan egyed, amelyen + információ folyik keresztül az + alanyok + irányításával. Ezek lehetnek + többek közt könyvtárak, + állományok, mezõk, képernyõk, + billentyûzetek, a memória, mágneses + tárolóeszközök, nyomtatók vagy + bármilyen más + adattároló/hordozó eszköz. Az + objektumok alapvetõen adattárolók vagy a + rendszer erõforrásai. Egy + objektum elérésén + gyakorlatilag az adatok elérését + értjük. + + + + rekesz: Egy rekeszbe soroljuk az + elrekeszteni vagy elkülöníteni + kívánt programok és adatok + összeségét, ahol a + felhasználók explicit módon + képesek hozzáférni a rendszer bizonyos + komponenseihez. Emellett a rekesz utalhat egy + tetszõleges csoportosításra is, + például munkacsoportra, osztályra, + projektre vagy témára. A rekeszek + használata elengedhetetlen a biztonsági + házirendek kialakításához. + + + + sértetlenség: A + sértetlenség, mint kulcsfogalom, az adatok + megbízhatóságának szintje. + Minél sértetlenebb az adat, annál + inkább tekinthetjük + megbízhatónak. + + + + szint: Egy biztonsági + tulajdonság megnövelt vagy lecsökkentett + beállítása. A szint + növekedésével együtt a + biztonság mértéke is + növekszik. + + + + többcímkés: A + vagyis + többcímkés jellemzõ az + állományrendszerek esetén fordulhat + elõ, és a &man.tunefs.8; segédprogrammal + állítható be + egyfelhasználós módban vagy a rendszer + indítása során az &man.fstab.5; + állományon keresztül, esetleg egy új + állományrendszer létrehozásakor. + Ezzel a beállítással a rendszergazda + különféle MAC + címkéket rendelhet különbözõ + objektumokhoz. Ez a beállítás + természetesen csak olyan biztonsági modulok + esetén él, amelyek tudnak + címkézni. + + + + + + + A MAC ismertetése + + Az imént definiált új fogalmak + tükrében most nézzük meg, hogy a + MAC rendszer alkalmazásával + miként javíthatunk rendszerünk + biztonságán. A MAC rendszerhez + készített különbözõ + biztonsági modulok alkalmasak a hálózat + és az állományrendszerek + védelmére, valamint segítségükkel + megakadályozhatjuk, hogy a felhasználók + elérhessenek bizonyos portokat és socketeket stb. A + házirendeket formázó modulokat talán + együttesen tudjuk a leghatékonyabban alkalmazni, + és ha egyszerre több modul + betöltésével egy többrétegû + védelmi rendszert alakítunk ki. Ez nem ugyanaz, + mint a rendszer megerõsítése, ahol a rendszer + összetevõit jellemzõ módon csak bizonyos + célok tekintetében edzzük meg. A + módszer egyedüli hátulütõi a + többszörös állományrendszeri + címkékkel, a felhasználónként + beállítandó hálózati + eléréssel stb. járó + adminisztrációs költségek. + + Ezek a hátrányok azonban eltörpülnek a + létrehozott rendszer tartósságával + szemben. Például, ha képesek vagyunk + megmondani, hogy az adott konfigurációban milyen + házirendek alkalmazására van + szükség, akkor ezzel az adminisztrációs + költségek visszaszoríthatóak. A + szükségtelen házirendek + eltávolításával még + növelhetjük is a rendszer + összteljesítményét, valamint az + így felkínált rugalmasságot. Egy + jó kialakításban figyelembe kell venni az + összes biztonsági elõírást, + és hatékonyan megvalósítani ezeket a + rendszer által felajánlott + különféle biztonsági modulokkal. + + Ezért tehát a MAC + lehetõségeit kihasználó rendszerekben + legalább annyit meg kell tudni oldani, hogy a + felhasználók ne változtathassák + kedvükre a biztonsági tulajdonságokat. Az + összes felhasználói segédprogramnak, + programnak és szkriptnek a kiválasztott + biztonsági modulokban szereplõ + hozzáférési szabályokkal + kifeszített kereten belül kell mozognia. A + MAC totális + irányítása pedig a rendszergazda + kezében van. + + A rendszergazda így egyedül csak a megfelelõ + biztonsági modulok gondos + összeválogatásáért felelõs. + Bizonyos környezetekben szükséges lehet a + hálózaton keresztüli + hozzáférések korlátozása is. + Ilyen esetekben a &man.mac.portacl.4;, &man.mac.ifoff.4; vagy a + &man.mac.biba.4; moduloktól érdemes elindulnunk. + Más esetekben az állományrendszerek + objektumainak bizalmasságát kell csupán + megõriznünk. Erre a célra a + &man.mac.bsdextended.4; és &man.mac.mls.4; modulok a + legalkalmasabbak. + + A házirendekhez kapcsolódó + döntések a hálózati + beállítások alapján is + meghozhatóak. Elképzelhetõ, hogy csak bizonyos + felhasználók férhetnek hozzá az + &man.ssh.1; szolgáltatásain keresztül a + hálózathoz vagy az internethez. A + &man.mac.portacl.4; pontosan ilyen helyzetekben tud a + segítségünkre sietni. Mit tegyünk viszont + az állományrendszerek esetén? Vágjunk + el adott felhasználókat vagy csoportokat bizonyos + könyvtáraktól? Vagy korlátozzuk a + felhasználók vagy segédprogramok + hozzáférését adott + állományokhoz bizonyos objektumok bizalmassá + tételével? + + Az állományrendszerek esetében az + objektumokat néhány felhasználó + elérheti, mások pedig nem. Például + egy nagyobb fejlesztõcsapat kisebb csoportokra + bontható. Az A projektben résztvevõ + fejlesztõk nem férhetnek hozzá a B projektben + dolgozó fejlesztõk munkájához. Ellenben + szükségük lehet a C projekten + munkálkodó fejlesztõk által + létrehozott objektumokra. Ez egy igen érdekes + helyzet. A MAC rendszer által + felkínált különbözõ + biztonsági modulokra építkezve azonban + könnyedén csoportokba tudjuk szervezni a + felhasználókat, és a megfelelõ + területekhez az információ + kiszivárgása nélkül hozzá tudjuk + õket engedni. + + Ennek következtében minden egyes biztonsági + modul a maga módján gondoskodik az egész + rendszer biztonságáról. A céljainknak + megfelelõ modulokat egy jól átgondolt + biztonsági házirend alapján válasszuk + ki. Sok esetben az egész házirendet át kell + tekinteni és újra kell alkalmazni a rendszerben. A + MAC által felajánlott + különbözõ biztonsági modulok + megértése segít a rendszergazdáknak + megválasztani az adott helyzetben legjobban + alkalmazható házirendeket. + + A &os; rendszermagja alapból nem tartalmazza a + MAC rendszert. Ezért a fejezetben + szereplõ példák vagy az itt leírtak + kipróbálásához az alábbi + beállítást kell hozzátennünk a + rendszermag beállításait tartalmazó + állományhoz: + + options MAC + + Majd fordítsuk és telepítsük + újra a rendszermagot. + + + Miközben a MAC rendszerhez + készült különbözõ modulok a + saját man oldalaik szerint igénylik a + beépítésüket, vigyázzunk + velük, mert ezzel a rendszerüket pillanatok alatt ki + tudjuk zárni a hálózatból és + így tovább. A MAC alapú + védelem felépítése leginkább + egy tûzfal + összeállításához + hasonlítható, ahol ugyanígy számolni + kell azzal, hogy egy óvatlan paranccsal + kizárhatjuk magunkat a rendszerbõl. Valamilyen + módon mindig próbáljunk gondoskodni a + rendszer elõzõ állapotának + visszaállíthatóságáról, + és a MAC távoli + adminisztrációját mindig nagyfokú + körültekintéssel végezzük. + + + + + + Bõvebben a MAC címkéirõl + + A MAC-címke egy olyan + biztonsági tulajdonság, amelyet a rendszerben + található alanyokhoz és objektumokhoz + rendelhetünk. + + Egy címke beállításához a + felhasználónak pontosan ismernie kell, hogy ilyenkor + mi történik. Az objektumokhoz tartozó + tulajdonságok a betöltött moduloktól + függenek, és az egyes modulok eltérõ + módon értelmezik ezeket a tulajdonságokat. + Ha a precíz megértésük + hiányában helytelenül állítjuk be + ezeket, vagy nem vagyunk képesek tisztázni a + velük járó következményeket, akkor + az a rendszerünk kiszámíthatatlan és + valószínûleg kedvezõtlen + viselkedését eredményezi. + + A házirendek az objektumhoz rendelt biztonsági + címkéket a hozzáféréssel + kapcsolatos döntések meghozásában + használják fel. Bizonyos házirendek + esetében már maga a címke elegendõ + információt tartalmaz a döntés + megformálásához. Máshol viszont a + címkék egy nagyobb szabályrendszer + részeként dolgozódnak fel stb. + + Például, ha egy állományra + beállítjuk a biba/low + címkét, akkor az arra fog utalni, hogy a + címkét a Biba nevû biztonsági modul + kezeli és értéke low. + + Az a néhány modul, amely a &os;-ben + támogatja a címkézés + lehetõségét, három speciális + címkét definiál elõre. Ezek rendre a + low (alacsony), high (magas) + és equal (egyezõ) címkék. + Habár az egyes modulok esetén eltérõ + módon képesek vezérelni a + hozzáférést, azt mindig biztosra + vehetjük, hogy a low a legalacsonyabb + érték, az equal címke + hatására az adott alanyt vagy objektumot + érintetlenül hagyják, és a + high értékû címke a Biba + és MLS modulok esetében a + legmagasabb beállítást jelenti. + + Az egycímkés állományrendszerek + használata során az egyes objektumonkhoz csak + egyetlen címkét rendelhetünk hozzá. + Ezzel az egész rendszerben csak egyfajta engedélyt + alkalmazunk, ami sok esetben pontosan elegendõ. + Létezik néhány különleges eset, + amikor az állományrendszerben levõ alanyokhoz + vagy objektumokhoz egyszerre több címkét is + hozzá kell rendelnünk. Ilyenkor a + opciót kell átadnunk a + &man.tunefs.8; segédprogramnak. + + A Biba és az MLS esetében + elõfordulhat, hogy egy numerikus címkével + fogjuk jelölni a hierarchikus irányítás + pontos szintjét. A numerikus szintek + használatával tudjuk az információt + különbözõ csoportokba szétosztani vagy + elrendezni, például úgy, hogy csak az adott + szintû vagy a felette álló csoportok + számára engedélyezzük a + hozzáférést. + + Az esetek többségében a + rendszergazdának csak egyetlen címkét kell + beállítania az egész + állományrendszerre. + + Hé, álljunk csak meg! Akkor ez + viszont pont olyan, mint a DAC! Én azt + hittem, hogy a MAC szigorúan a + rendszergazda kezébe adja az + irányítást. Ez az + állítás továbbra is fennáll, + mivel bizonyos értelemben a root lesz + az, aki beállítja a házirendeket, + tehát õ mondja meg, hogy a felhasználók + milyen kategóriákba vagy + hozzáférési szintekbe sorolódnak. + Sajnos, sok biztonsági modul még magát a + root felhasználót is + korlátozza. Az objektumok feletti + irányítás ilyenkor a csoportra száll, + de a root bármikor visszavonhatja vagy + módosíthatja a beállításokat. + Ezzel a hierarchikus/engedély alapú modellel a Biba + és az MLS nevû házirendek + foglalkoznak. + + + A címkék + beállítása + + A címkézéshez kapcsolódó + összes beállítást gyakorlatilag az + alapvetõ rendszerprogramokkal végezhetjük el. + Ezek a parancsok az objektumok és az alanyok + szabályozásához, valamint a + konfiguráció + módosításához és + ellenõrzéséhez adnak egy egyszerû + kezelõfelületet. + + Az összes konfigurációs + beállítást a &man.setfmac.8; és + &man.setpmac.8; segédprogramokkal végezhetjük + el. A setfmac + segítségével a rendszerszintû + objektumokhoz tudunk hozzárendelni a + MAC-címkéket, míg a + setpmac paranccsal a rendszerben levõ + alanyokhoz tudunk címkéket rendelni. Vegyük + például ezt: + + &prompt.root; setfmac biba/high próba + + Amennyiben az iménti parancs hibátlanul + lefutott, visszakapjuk a paranccsort. Ezek a parancsok csak + olyankor maradnak nyugodtan, amikor semmilyen hiba nem + történt. Mûködésük + hasonló a &man.chmod.1; és &man.chown.8; + parancsokéhoz. Bizonyos esetekben Permission + denied (A hozzáférés + nem engedélyezett) hibát kapunk, ami + általában akkor bukkan fel, ha egy + korlátozott objektummal kapcsolatban + próbálunk meg címkét + beállítani vagy módosítani + + Más feltételek mellett másmilyen + hibák keletkezhetnek. Például, ha egy + olyan objektumot próbálunk + újracímkézni, amely nincs a + felhasználó birtokában, esetleg nem is + létezik vagy írásvédett. + Adódhat, hogy a kötelezõ házirend az + állomány, a program, vagy az új + címkeérték tulajdonságai miatt + nem fogja lehetõvé tenni egy futó program + számára egy állomány + újracímkézését. + Nézzük erre egy példát: egy + kevésbé sértetlen + felhasználó megpróbálja + megváltoztatni egy sokkal sértetlenebb + állomány címkéjét. Vagy + egy kevésbé sértetlen + felhasználó sokkal sértetlenebbre + akarja állítani egy kevésbé + sértetlen állomány + címkéjét. + . A rendszergazda a következõ paranccsal + tudja feloldani az ilyen helyzeteket: + + &prompt.root; setfmac biba/high próba +Permission denied +&prompt.root; setpmac biba/low setfmac biba/high próba +&prompt.root; getfmac próba +próba: biba/high + + Ahogy az itt tetten is érhetõ, a + setpmac használható a modul + beállításainak + felülbírálására úgy, + hogy a meghívott programban egy másik + címkét állít be. A + getpmac segédprogram + általában a sendmailhez + hasonló háttérben futó programok + esetében alkalmazható: ilyenkor a konkrét + parancs helyett a futó program + azonosítóját kell megadnunk, de + mûködése ugyanaz. Ha a + felhasználók a hatókörükön + túl levõ állományokat + próbálnak meg módosítani, akkor a + betöltött modulok szabályainak megfelelõen + a mac_set_link függvény + Operation not permitted (A + mûvelet nem engedélyezett) hibát + fog adni. + + + Gyakori címketípusok + + A &man.mac.biba.4;, &man.mac.mls.4; és + &man.mac.lomac.4; moduloknál használhatunk + címkéket. Értékük lehet + high, equal vagy + low, melyek rövid magyarázata a + következõ: + + + + A low címke az objektumra + vagy alanyra érvényes leggyengébb + beállítást jelenti. Az ilyen + címkéjû objektumok vagy alanyok nem + érhetik el a high + címkéjûeket. + + + + Az equal címke + használható minden olyan objektum vagy alany + esetében, amelyeket ki akarunk vonni az adott + házirend hatálya alól. + + + + A high címke adja az + objektumhoz vagy alanyhoz tartozó legerõsebb + beállítást. + + + + Az egyes moduloktól függõen ezek az + értékek az információ + áramoltatásának + különbözõ irányait + írhatják le. A megfelelõ man oldalak + elolvasásával még jobban + megismerhetjük az egyes címketípusok + beállításának + jellegzetességeit. + + + A címkék + beállításáról + részletesebben + + A numerikus osztályozó + címkék + összehasonlítás:rekesz+rekesz + alakban használatosak, tehát a + + biba/10:2+3+6(5:2+3-20:2+3+4+5+6) + + kifejezés így + értelmezhetõ: + + A Biba házirend + címkéje/10 + osztály :2, 3 és 6 + rekeszek: (5 + osztály...) + + Ebben a példában az elsõ + osztály tekinthetõ valódi + osztálynak, amely a valódi + rekeszeket jelenti, a második osztály + egy alacsonyabb besorolás, míg az + utolsó egy magasabb szintû. A legtöbb + konfigurációban nem lesz + szükségünk ennyire összetett + beállításokra, noha képesek + vagyunk felírni ezeket. + + Ha ezt kivetítjük a rendszer objektumaira, + akkor a rendszerben levõ alanyokat illetõen + csupán az aktuális osztály/rekeszek + számítanak, mivel a rendszerben és + hálózati csatolófelületeken + elérhetõ + hozzáférés-vezérlési + jogokat tükrözi. + + Az alany-objektum párokban megadott + osztályzatok és rekeszek + használhatóak fel egy olyan kapcsolat + kiépítésére, amit + dominanciának nevezünk. Ilyenkor + egy alany ural egy objektumot, vagy egy objektum ural egy + alanyt, vagy egyikük sem uralja a másikat, + esetleg mind a kettõ uralja egymást. A + kettõs dominancia esete akkor forog + fenn, amikor a két címke megegyezik. A Biba + információáramoltatási + sajátosságaiból adódóan + jogunk van rekeszeket létrehozni, tudunk + kell, hogy ezek projekteknek feleltethetõek + meg, de az objektumok is rendelkezhetnek rekeszekkel. A + felhasználók ilyenkor csak úgy tudnak + elérni egyes objektumokat, ha az + su vagy a setpmac + használatával leszûkítik a + jogaikat egy olyan rekeszre, ahol már nem + érvényesülnek rájuk + korlátozások. + + + + + + A felhasználók és + címkék kapcsolata + + Maguknak a felhasználóknak is + szükségük van címkékre, mivel + csak ezek segítségével tudnak az + állományaik és programjaik megfelelõ + módon együttmûködni a rendszerben + érvényes biztonsági házirenddel. + Ezt a login.conf + állományban megadható + bejelentkezési osztályokkal + állíthatjuk be. Minden címkéket + használó modulban a + felhasználóknak is van + címkéjük. + + Lentebb látható egy ilyen minta + bejegyzés, amely minden modulhoz tartalmaz + beállítást: + + default:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ + :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ + :manpath=/usr/share/man /usr/local/man:\ + :nologin=/usr/sbin/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :vmemoryuse=100M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=91d:\ + :umask=022:\ + :ignoretime@:\ + :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]: + + Itt a label opciót + használtuk a felhasználói + osztályhoz tartozó alapértelmezett + címkék + beállításához, amit majd a + MAC betartat. A felhasználók + nem módosíthatják ezt az + értéket, ezért ez a + felhasználók számára nem + tekinthetõ tetszõlegesen elhagyható + beállításnak. Egy valós + konfigurációban azonban a rendszergazda + valószínûleg nem akarja majd egyszerre az + összes modult használni. Javasoljuk, hogy + mielõtt egy ilyen jellegû + konfigurációt adnánk meg, olvassuk el az + egész fejezetet. + + + A felhasználók ezt a címkét + meg tudják változtatni az elsõ + bejelentkezés után, de csak a házirend + keretein belül. A fenti példában + úgy állítjuk be a Biba + házirendet, hogy a futó programok + sértetlenségi foka legalább 5, + legfeljebb 15 lehet, de az alapértéke 10. + Tehát a programok egészen addig 10-es szinten + futnak, amíg a programok a Biba + bejelentkezéskor megadott tartományában + meg nem változtatják ezt a + címkét, feltehetõen a + setpmac parancs + hatására. + + + Mindig, amikor megváltozatjuk a + login.conf + beállításait, a + cap_mkdb paranccsal újra kell + generálni a bejelentkezési osztályokhoz + tartozó adatbázist, amire a késõbbi + példákban vagy részekben igyekszünk + is mindig felhívni a figyelmet. + + Nem árt hozzátennünk, hogy sok + rendszerben kifejezetten sok felhasználót kell + kezelnünk, amihez több különbözõ + bejelentkezési osztályra is + szükségünk lehet. Mivel késõbb + már csak egyre jobban bonyolódni fog a + felhasználók kezelése, ezért soha + ne felejtsünk el komolyan elõre tervezni. + + A &os; következõ változataiban meg fognak + jelenni más módszerek is a + felhasználók és címkék + közti kapcsolatok kezelésére. A + &os; 5.3 elõtt azonban ez még + semmiképpen sem várható. + + + + + A hálózati csatolófelületek + és a címkék kapcsolata + + A hálózati csatlakozások + esetében is állíthatunk be + címkéket, melyek a hálózaton + keresztül folyó adatok + áramlását határozzák meg. + Minden esetben ugyanúgy mûködnek, mint ahogy + a házirendek az objektumokra. Például a + biba esetében a magas + beállításokkal rendelkezõ + felhasználók nem férhetnek hozzá + az alacsonyabb címkéjû + hálózati csatolófelületekhez. + + Ha MAC-címkéket akarunk + rendelni egy hálózati felülethez, akkor az + ifconfig parancsnak adjuk meg a + paramétert. + Például a + + &prompt.root; ifconfig bge0 maclabel biba/equal + + parancs beállítja a + biba/equal + MAC-címkét a &man.bge.4; + felületre. A biba/high(low-high) + alakú címkéket átadásukhoz + idézõjelek közé kell tenni, + különben hibát kapunk. + + Minden címkézést + támogató modulhoz tartoznak futási + idõben állítható paraméterek, + amelyekkel akár le is tudjuk tiltani a + MAC-címkéket a + hálózati csatolófelületeken. + Ugyanezt jelenti egyébként, ha + értéket adunk meg a + címkének. Ezt behatóbban úgy + ismerhetjük meg, ha kielemezzük a + sysctl parancs kimenetét, a + megfelelõ modul man oldalát vagy a fejezetben + további részében található, + erre vonatkozó információkat. + + + + + + Egy címke vagy több címke? + + Alapértelmezés szerint a rendszer a + beállítást + használja. Ez vajon mit tartogat a rendszergazda + számára? Számos olyan + eltérést, aminek megvannak a saját + elõnyei és hátrányai a rendszer + védelmi modelljének rugalmassága + szempontjából. + + A + beállítás minden alany vagy objektum + esetében csupán egyetlen címke, + például a biba/high + használatát engedi. Kevesebb + adminisztrációs költséggel jár, + azonban csökkenteni a címkézést + támogató modulok + testreszabhatóságát. Ezért sok + rendszergazda inkább a + beállítást választja a + biztonsági házirend kialakítása + során. + + A beállítás + lehetõvé teszi, hogy mindegyik alanyhoz és + objektumhoz a szabványos + beállítás lehetõségeivel + szemben egymástól függetlenül + külön-külön rendelhessünk + címkéket a partíciókon. Az egy- + és többcímkés opciónak csak + olyan modulok esetében van értelme, amelyek + támogatják a címkézést, mint + például a Biba, Lomac, MLS + és a SEBSD házirendek. + + Sokszor egyáltalán nincs is + szükségünk a + használatára. Tekintsük + például a következõ helyzetet és + biztonsági modellt: + + + + Adott egy &os; webszerver, ahol a MAC + rendszert több biztonsági házirenddel + alkalmazzuk. + + + + A gépen egyedül csak a + biba/high címkére van + szükségünk mindenhez a rendszerben. Itt + egyszerûen csak nem adjuk meg az + állományrendszernek a + beállítást, + mivel az egycímkés rendszer mindig + rendelkezésünkre áll. + + + + Mivel azonban erre a gépre telepíteni + akarunk egy webszervert is, ilyenkor a + biba/low címke + használatával igyekszünk + korlátozni a szerver feldolgozási + képességeit. A Biba házirendrõl + és annak mûködésérõl + csak a késõbbiekben fogunk írni, + ezért ha az elõbbi megjegyzést még + nem teljesen értjük, akkor egyszerûen csak + olvassunk tovább és térjünk vissza + ide. A szerver futása alatt, vagy legalább is + idejének nagy részében egy + külön partíciót használhatna, + amire a biba/low címkét + állítanánk be. Természetesen ez + a példa korántsem teljes, hiszen + hiányoznak belõle az adatokra + érvényes korlátozások, a + konfigurációs és + felhasználói beállítások. + Ez csupán az iménti gondolatmenet gyors + illusztrációja. + + + + Amennyiben címkézést nem + támogató modulokat alkalmazunk, a + beállításra + szinte sosem lesz szükségünk. Ilyenek + például a seeotheruids, + portacl és + partition házirendek. + + A opció használata + és így speciális, + többcímkés védelmi modell + létrehozása képes elbonyolítani a + rendszer karbantartását, mert ilyenkor az + állományrendszerben mindennek lennie kell + címkéjének: könyvtáraknak, + állományok és még az + eszközleíróknak is. + + A most következõ paranccsal + beállítjuk az állományrendszerre a + opciót. Ez csak + egyfelhasználós módban tehetõ + meg: + + &prompt.root; tunefs -l enable / + + A lapozópartíció esetében erre + nincs szükség. + + + Elõfordulhat, hogy néhány + felhasználónak nem sikerül a + opciót + beállítania a rendszerindító + partícióra. Ha ez történne, akkor + olvassuk el a fejezet át. + + + + + + + A védelem megtervezése + + Mindig hasznos idõt szánni a tervezésre, + amikor nekilátunk egy új technológia + alkalmazásához. A tervezés közben a + rendszergazdának egyben kell látnia a + képet, lehetõleg az alábbiak + figyelembevételével: + + + + Elvárások a modell felé + + + + A modell célkitûzései + + + + Továbbá a MAC + használata esetén: + + + + Miként osztályozzuk a célrendszeren + rendelkezésre álló + információt és + erõforrásokat + + + + Milyen információt vagy + erõforrást kell korlátoznunk és + milyen típusú korlátozást + alkalmazzunk rájuk + + + + A MAC melyik moduljain keresztül + tudjuk elérni céljainkat + + + + Habár mindig módunkban áll + megváltoztatni és újra konfigurálni a + rendszerben található erõforrásokat + és biztonsági beállításokat, + sokszor azért igen kényelmetlen + utánanézni a rendszerben és + állítgatni az állományok, illetve + felhasználói hozzáférések + paramétereit. A beállításainkat + valamint azok konfigurációját + elõször külön + próbáljuk ki, mielõtt a MAC + alapú megvalósításunkat egy + éles rendszeren kezdjük el használni. Ennek + elhagyása szinte biztosan kudarcra ítél + minket. + + A különbözõ környezetek + igényei és elvárásai eltérnek. + Egy alaposan és minden részletében + átgondolt védelmi profil megalapozása + csökkenti a rendszer üzembehelyezése után + elvégzendõ módosítások + számát. Mint olyanokra, a következõ + szakaszokban kitérünk a rendszergazdák + számára elérhetõ modulokra, bemutatjuk a + használatukat és beállításukat + és egyes esetekben betekintést is adunk olyan + helyzetekbe, ahol a legjobban kiaknázhatóak a + képességeik. Például egy webszerver + esetén hasznos lehet a &man.mac.biba.4; és + &man.mac.bsdextended.4; házirendek alkalmazása. + Más esetekben, például egy kevés + felhasználóval mûködõ + számítógépen, a &man.mac.partition.4; + modul lehet jó választás. + + + + + A modulok beállítása + + A MAC rendszerben + megtalálható összes modul a korábban + leírtak szerint beépíthetõ a + rendszermagba vagy menet közben is betölthetõ + modulként. A használni kívánt + modulokat a /boot/loader.conf + állományba javasolt felvenni, így azok be + tudnak töltõdni a rendszer indítása + folyamán. + + A soron következõ szakaszokban a + különbözõ MAC-modulokat + dolgozzuk fel és foglaljuk össze a + lehetõségeiket. Továbbá a fejezet + szeretne szólni ezek alkalmazásáról + speciális helyzetekben is. Egyes modulokkal + címkézni is tudunk, aminek révén a + hozzáféréseket címkékkel + szabályozzuk, például úgy, hogy + megmondjuk mit szabad és mit nem. A + címkék beállításait + tartalmazó állomány vezérli az + állományok elérését, a + hálózati kommunikációt és + még sok minden mást. Az elõzõ szakaszban + már megismerhettük, hogy a + opció segítségével hogyan + állíthatjuk be az + állományonkénti vagy + partíciónkénti + hozzáférés-vezérlést. + + Az egycímkés konfigurációban az + egész rendszerben csupán egyetlen címke + használatára nyílik mód, ezért + is hívják a tunefs + beállítását + nek. + + + A seeotheruids MAC-modul + + Lássak + másokatMAC-házirend + + A modul neve: + mac_seeotheruids.ko + + A rendszermag konfigurációs + beállítása: options + MAC_SEEOTHERUIDS + + Rendszerindítási + beállítás: + mac_seeotheruids_load="YES" + + A &man.mac.seeotheruids.4; modul a + security.bsd.see_other_uids és + security.bsd.see_other_gids + sysctl-változókat + utánozza és terjeszti ki. A + használatához semmilyen címkét nem + kell beállítani és transzparens + módon képes együttmûködni a + többi modullal. + + A modult betöltése után az alábbi + sysctl-változókkal tudjuk + vezérelni: + + + + A security.mac.seeotheruids.enabled + engedélyezi a modult és az + alapértelmezett beállításokat + használja. Alapértelmezés szerint + egyik felhasználó sem láthatja a + többiek futó programjait és + csatlakozásait. + + + + A + security.mac.seeotheruids.specificgid_enabled + egy adott csoportot mentesít a házirend + szabályozásai alól. Tehát ki + akarunk vonni egy csoportot a házirend + alkalmazásából, akkor + állítsuk be a + security.mac.seeotheruids.specificgid=XXX + sysctl-változót, ahol az + XXX a mentesíteni + kívánt csoport numerikus + azonosítója. + + + + A + security.mac.seeotheruids.primarygroup_enabled + segítségével adott elsõdleges + csoportokat vonhatunk ki a házirend hatálya + alól. Ezt a változót nem + használhatjuk a + security.mac.seeotheruids.specificgid_enabled + változóval együtt. + + + + + + + + A bsdextended MAC-modul + + + MAC + Állományrendszeri tûzfal + MAC-házirend + + + A modul neve: mac_bsdextended.ko + + A rendszermag konfigurációs + beállítása: options + MAC_BSDEXTENDED + + Rendszerindítási beállítás: + mac_bsdextended_load="YES" + + A &man.mac.bsdextended.4; modul + segítségével egy + állományrendszer szintjén + mûködõ tûzfalat tudunk kialakítani. Ez + a modul a szabványos állományrendszeri + engedély alapú modelljét bõvíti + ki, lehetõvé téve, hogy a rendszergazda + tûzfalszerû szabályokkal nyújtson + védelmet a könyvtárszerkezetben + található állományoknak, + segédprogramoknak és könyvtáraknak. + Amikor egy állományrendszerbeli objektumhoz + próbálunk meg hozzáférni, a modul + illeszti ezt egy szabályrendszerre, amiben vagy + talál egy hozzátartozó szabályt vagy + kifut belõle. Ez a viselkedés a + security.mac.bsdextended.firstmatch_enabled + &man.sysctl.8; paraméter segítségével + változtatható meg. Hasonlóan a &os;-ben + található többi tûzfalmodulhoz, az + állományok elérését + definiáló szabályok a + rendszerindítás során egy &man.rc.conf.5; + változóból olvasódnak be. + + A szabályokat a &man.ugidfw.8; segédprogrammal + adhatjuk meg, amelynek a formai szabályai hasonlóak + az &man.ipfw.8; programéhoz. A &man.libugidfw.3; + függvénykönyvtár + felhasználásával azonban további + segédprogramok is írhatóak + hozzá. + + A modul használata során igyekezzünk + minél jobban odafigyelni, mert helytelen + alkalmazásával el tudjuk vágni magunkat az + állományrendszer bizonyos + részeitõl. + + + Példák + + Miután sikerült betölteni a + &man.mac.bsdextended.4; modult, a következõ paranccsal + tudjuk lekérdezni a jelenleg érvényes + szabályokat: + + &prompt.root; ugidfw list +0 slots, 0 rules + + Ahogy az várható is volt, pillanatnyilag + még egyetlen szabályt sem adtunk meg. Ennek + értelmében tehát mindent el tudunk + érni. A következõ paranccsal tudunk olyan + szabályt létrehozni, ahol a + root kivételével + elutasítjuk az összes felhasználó + hozzáférését: + + &prompt.root; ugidfw add subject not uid root new object not uid root mode n + + + A &os; 5.3 elõtti változataiban az + add paraméter nem + létezett. Ezeknél ehelyett a + set paramétert kell majd + használnunk, lásd lentebb. + + + Ez egyébként egy nagyon buta ötlet, mivel + így a felhasználók még a + legegyszerûbb parancsokat, mint például az + ls-t, sem tudják rájuk kiadni. + Ennél sokkal humánusabb lesz, ha: + + &prompt.root; ugidfw set 2 subject uid felhasználó1 object uid felhasználó2 mode n +&prompt.root; ugidfw set 3 subject uid felhasználó1 object gid felhasználó2 mode n + + Ilyenkor a felhasználó1 + nevû felhasználótól megvonjuk a + felhasználó2 + felhasználói könyvtárának + összes hozzáférését, + beleértve a listázhatóságot + is. + + A felhasználó1 helyett + megadhatjuk a + opciót is. Ebben az esetben egy + felhasználó helyett az összes + felhasználóra ugyanaz a korlátozás + fog érvényesülni. + + + A root felhasználóra + ezek a beállítások nem + vonatkoznak. + + + Ezzel felvázoltuk, miként lehet a + &man.mac.bsdextended.4; modult felhasználni az + állományrendszerek + megerõsítésére. Részletesebb + információkért járuljunk a + &man.mac.bsdextended.4; és &man.ugidfw.8; man + oldalakhoz. + + + + + + Az ifoff MAC-modul + + a csatolófelületek + elfojtása + MAC-házirend + + A modul neve: mac_ifoff.ko + + A rendszermag konfigurációs + beállítása: options + MAC_IFOFF + + Rendszerindítási beállítás: + mac_ifoff_load="YES" + + A &man.mac.ifoff.4; modul kizárólag abból + a célból készült, hogy + segítségével menet közben le tudjuk + tiltani bizonyos hálózati + csatolófelületek + beállítását a + rendszerindítás közben. Sem + címkékre, sem pedig a többi MAC-modulra nincs + szükségünk a használatához. + + A vezérlést nagyrészt az alábbi + sysctl-változókkal tudjuk + megoldani. + + + + A security.mac.ifoff.lo_enabled + engedélyezi vagy letiltja a (&man.lo.4;) helyi loopback + felületen az összes forgalmat. + + + + A security.mac.ifoff.bpfrecv_enabled + engedélyezi vagy letiltja a Berkeley + csomagszûrõ (BPF, Berkeley Packet Filter) + felületén az összes forgalmat. + + + + A security.mac.ifoff.other_enabled + engedélyezi vagy letiltja az összes többi + csatolófelületen az összes forgalmat. + + + + A &man.mac.ifoff.4; modult általában olyan + környezetek monitorozásakor szokták + használni, ahol a rendszer indítása + során még nem szabad hálózati + forgalomnak keletkeznie. Vagy például a security/aide porttal együtt + használva automatikusan el tudjuk zárni a + rendszerünket, ha a védett könyvtárakban + új állományok keletkeznek vagy + megváltoznak a régiek. + + + + + A portacl MAC-modul + + Port + hozzáférés-vezérlési lista + MAC-házirend + + A modul neve: mac_portacl.ko + + A rendszermag konfigurációs + beállítása: + MAC_PORTACL + + Rendszerindítási beállítás: + mac_portacl_load="YES" + + A &man.mac.portacl.4; modul a helyi TCP + és UDP portok kiosztásának + korlátozását teszi lehetõvé + különféle + sysctl-változókon keresztül. + A &man.mac.portacl.4; segítségével + lényegében a nem-root + felhasználók is használhatnak + privilegizált, tehát 1024 alatti portokat. + + Miután betöltöttük, a modul az + összes csatlakozásra alkalmazza a + MAC-házirendet. Ezután az + alábbi változókkal hangolhatjuk a + viselkedését: + + + + A security.mac.portacl.enabled + totálisan engedélyezi vagy letiltja a + házirend használatát + + A security.mac.portacl.enabled + sysctl-változó + kezelésében levõ hiba miatt ez a + beállítás nem fog mûködni a + &os; 5.2.1 vagy korábbi változatai + esetében. + . + + + + A security.mac.portacl.port_high + megadja azt a legmagasabb portot, amelyre még kiterjed + a &man.mac.portacl.4; védelme. + + + + Ha a security.mac.portacl.suser_exempt + változónak nem nulla értéket adunk + meg, akkor azzal a root + felhasználót kivonjuk a + szabályozások alól. + + + + A security.mac.portacl.rules az + érvényes mac_portacl házirendet adja meg, + lásd lentebb. + + + + A security.mac.portacl.rules + változó által megadott aktuális + mac_portacl házirend formátuma a + következõ: + szabály[,szabály,...], ahol ezen + a módon tetszõleges számú + szabályt adhatunk meg. Az egyes szabályok pedig + így írhatóak fel: + azonosítótípus: + azonosító: + protokoll: + port. Az + azonosítótípus + értéke uid vagy + gid lehet, amivel megadjuk, hogy az + azonosító paraméter + felhasználóra vagy csoportra hivatkozik. A + protokoll paraméter adja meg, hogy a + szabályt TCP vagy UDP + típusú kapcsolatra értjük, és + ennek megfelelõen az értéke is + tcp vagy udp lehet. A sort + végül a port paraméter + zárja, ahol annak a portnak számát adjuk meg, + amelyhez az adott felhasználót vagy csoportot + akarjuk kötni. + + + Mivel a szabályokat közvetlenül maga a + rendszermag dolgozza fel, ezért a + felhasználók illetve csoportok + azonosítója, valamint a port értéke + kizárólag numerikus érték lehet. + Tehát a szabályokban név szerint nem + hivatkozhatunk felhasználókra, csoportokra vagy + szolgáltatásokra. + + + A &unix;-szerû rendszereken alapértelmezés + szerint az 1024 alatti portokat csak privilegizált + programok kaphatják meg és + használhatják, tehát a + root felhasználó neve alatt + kell futniuk. A &man.mac.portacl.4; azonban a nem + privilegizált programok számára is + lehetõvé teszi, hogy elfoglalhassanak 1024 alatti + portokat, amihez viszont elõször le kell tiltani ezt a + szabvány &unix;-os korlátozást. Ezt + úgy érhetjük el, ha a + net.inet.ip.portrange.reservedlow és + net.inet.ip.portrange.reservedhigh + változókat egyaránt nullára + állítjuk. + + A &man.mac.portacl.4; mûködésének + részleteirõl a példákon keresztül + vagy a megfelelõ man oldalakból tudhatunk meg + többet. + + + Példák + + A következõ példák az + iméntieket igyekeznek jobban + megvilágítani: + + &prompt.root; sysctl security.mac.portacl.port_high=1023 +&prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0 + + Elsõként beállítjuk, hogy a + &man.mac.portacl.4; vegye át a szabványos + privilegizált portok vezérlését + és letiltjuk a normál &unix;-os + korlátozásokat. + + &prompt.root; sysctl security.mac.portacl.suser_exempt=1 + + A root felhasználót + azonban nem akarjuk kitenni a házirendnek, ezért a + security.mac.portacl.suser_exempt + változónak egy nem nulla értéket + adunk meg. A &man.mac.portacl.4; modul most pontosan + ugyanúgy mûködik, mint a &unix;-szerû + rendszerek alapértelmezés szerint. + + &prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80 + + A 80-as azonosítóval rendelkezõ + felhasználó (aki általában a + www) számára + engedélyezzük a 80-as port + használatát. Így a + www felhasználó + anélkül képes webszervert futtatni, hogy + szüksége lenne a root + jogosultságaira. + + &prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995 + + Az 1001-es azonosítóval rendelkezõ + felhasználónak megengedjük, hogy + elfoglalhassa a 110-es (pop3) és + 995-ös (pop3s) portokat. Ennek + köszönhetõen az adott felhasználó + el tud indítani egy szervert, amihez a 110-es és + 995-ös portokon lehet kapcsolódni. + + + + + + A partition MAC-modul + + a futó programok + felosztását megvalósító + MAC-házirend + + A modul neve: mac_partition.ko + + A rendszermag konfigurációs + beállítása: options + MAC_PARTITION + + Rendszerindítási beállítás: + mac_partition_load="YES" + + A &man.mac.partition.4; házirend a futó + programokat címkéjük szerint adott + partíciókra osztja szét. Ezt + leginkább egy speciális &man.jail.8; + megoldásként tudjuk elképzelni, noha teljesen + felesleges összehasonlítani a kettõt. + + Ez egy olyan modul, amelyet a &man.loader.conf.5; + állományba kell felvenni, hogy a + rendszerindítása közben be tudjon + töltõdni. + + Ezt a házirendet többségében a + &man.setpmac.8; segédprogrammal tudjuk + állítgatni, ahogy az majd lentebb + látható lesz. A következõ + sysctl-változó tartozik + még a modulhoz: + + + + A security.mac.partition.enabled + engedélyezi a futó programok + MAC rendszeren keresztüli + felosztását. + + + + A házirend engedélyezésével a + felhasználók csak a saját programjaikat + láthatják, illetve mindazokat, amelyek az + övékével egy partícióba + tartoznak, de a rajta kívül levõ programokkal + már nem dolgozhatnak. Például, ha egy + felhasználó az insecure + (nem biztonságos) osztály tagja, + akkor ne engedjük, hogy hozzáférhessen a + top vagy bármilyen más olyan + parancshoz, amely további futó programokat hoz + létre. + + A setpmac használatával + tudunk címkéket készíteni a + partíciókhoz és programokat rendelni + hozzájuk: + + &prompt.root; setpmac partition/13 top + + Így a top parancsot + hozzáadjuk az insecure osztályban + levõ felhasználókhoz rendelt + címkéhez. Vegyük észre, hogy az + insecure osztályba tartozó + felhasználók által elindított + összes program a partition/13 + címkét fogja használni. + + + Példák + + A következõ parancs megmutatja a +partíciók címkéit és a futó +programok listáját: + + &prompt.root; ps Zax + + Ezzel paranccsal pedig megnézhetjük egy + másik felhasználó programjainak + címkéit és a felhasználó + által futtatott programokat: + + &prompt.root; ps -ZU trhodes + + + A felhasználók látják a + root címkéjével + futó programokat is, hacsak be nem töltjük a + &man.mac.seeotheruids.4; házirendet. + + + Ezt a megoldást úgy tudnánk + igazán ravaszul felhasználni, ha + például az /etc/rc.conf + állományban letiltanánk az összes + szolgáltatást és egy olyan szkripttel + indítanánk el ezeket, amely futtatásuk + elõtt beállítja hozzájuk a + megfelelõ címkét. + + + A most következõ házirendek a + három alapértelmezett + címkeérték helyett egész + számokat használnak. Ezekrõl, valamint a + rájuk vonatkozó + korlátozásokról a megfelelõ modulok + man oldalain ismerhetünk meg többet. + + + + + + + A többszintû biztonsági MAC-modul + + a többszintû biztonsági + MAC-házirend + + A modul neve: mac_mls.ko + + A rendszermag konfigurációs + beállítása: options + MAC_MLS + + Rendszerindítási beállítás: + mac_mls_load="YES" + + A &man.mac.mls.4; (MLS, Multi-Level Security) házirend + az információ szigorú + áramoltatásával vezérli a rendszerben + található alanyok és objektumok közti + elérést. + + A MLS megoldását + alkalmazó környezetekben a rekeszek mellett minden + alanyra és objektumra be kell még + állítanunk egy adott szintû + engedélyt is. Mivel az engedélyek + avagy az érzékenység szintje akár a + hatezret is meghaladhatja, egy rendszergazda számára + valódi rémálommá válthat az + egyes alanyok és objektumok precíz + beállítása. Szerencsére a + házirend erre a célra tartalmaz három + elõre definiált instant + címkét. + + Ezek az mls/low, + mls/equal és + mls/high. Mivel a man oldal elég + részletesen kifejti ezeket, ezért itt csak + érintõlegesen foglalkozunk velük: + + + + Az mls/low címke egy olyan + alacsony szintû beállítást + képvisel, amely lehetõvé teszi, hogy az + összes többi objektum uralja. Tehát + bárminek is adjuk az mls/low + címkét, alacsony szintû engedéllyel + fog rendelkezni és nem lesz képes elérni + a magasabb szinten levõ információt. + Ráadásul a címke a magasabb szintû + objektumok számára se fogja engedni, hogy + információt közöljön vagy adjon + át az alacsonyabb szintek felé. + + + + Az mls/equal címke olyan + objektumok esetében ajánlott, amelyeket ki + akarunk hagyni a házirend + szabályozásaiból. + + + + Az mls/high címke az + elérhetõ legmagasabb szintû engedélyt + ábrázolja. Az ilyen címkével + ellátott objektumok a rendszer összes többi + objektuma felett uralommal rendelkeznek, habár az + alacsonyabb szintû objektumok felé nem + képesek információt + közvetíteni. + + + + Az MLS: + + + + Egy hierarchikus védelmi szinteket + épít fel nem hierarchikus + kategóriákkal. + + + + Szabályai rögzítettek: a felsõbb + szintek olvasása és az alsóbb szintek + írása egyaránt tiltott (az alanyok csak a + saját vagy az alatta levõ szinteken levõ + objektumokat képesek olvasni, de a felette + állókat már nem. Ehhez hasonlóan + az alanyok a velük egyezõ vagy a felsõbb + szinteket tudják írni, de az alattuk + levõket már nem). + + + + Megõrzi a titkokat (megakadályozza az adatok + alkalmatlan közzétételét). + + + + Megadja mindazt az alapot, ami szükséges + ahhoz, hogy az adatokat több kényességi + szinten, párhuzamosan is kezelni tudjuk + (anélkül, hogy titkos és bizalmas + információkat szivárogtatnánk + ki). + + + + A speciális szolgáltatások és + felületek beállításához az + alábbi sysctl-változók + használhatóak: + + + + A security.mac.mls.enabled + engedélyezi vagy tiltja le az MLS + házirend alkalmazását. + + + + A security.mac.mls.ptys_equal + hatására látja el + mls/equal címkével az + összes &man.pty.4; eszközt + létrehozásuk során. + + + + A security.mac.mls.revocation_enabled + használható az alacsonyabb szintre + minõsített objektumok + hozzáférésének + megvonására. + + + + A security.mac.mls.max_compartments + segítségével adható meg az + objektumok által használt rekeszek + szintjének maximális száma. + Lényegében a rekeszek rendszerben + engedélyezett maximuma. + + + + Az MLS címkéit a + &man.setfmac.8; paranccsal tudjuk módosítani. Egy + ehhez hasonló paranccsal tudunk egy objektumhoz + címkét rendelni: + + &prompt.root; setfmac mls/5 próba + + A próba + állomány + MLS-címkéjét az + alábbi paranccsal kérhetjük le: + + &prompt.root; getfmac próba + + Ezzel össze is foglaltuk az MLS + házirend lehetõségeit. Az eddigiket úgy + is megoldhatjuk, hogy létrehozunk egy központi + házirendet az /etc + könyvtárban, amelyben megadjuk az + MLS házirendhez tartozó + információkat, majd átadjuk a + setfmac parancsnak. Erre a módszerre + majd a házirendek bemutatása után kerül + sor. + + + A kényesség + megállapítása + + A többszintû biztonsági házirend + használatával a rendszergazda a kényes + információk áramlásának + irányát tudja befolyásolni. A + megoldás felfele nem lehet olvasni, lefele nem + lehet írni jellege folytán alapból + mindent a legalacsonyabb szintre helyez. Így + tehát kezdetben minden elérhetõ, és a + rendszergazdának lassanként ebbõl az + állapotból elindulva kell behangolnia az erre + alapozó védelmi rendszert az + információ bizalmasságának + megfelelõen. + + A fentebb említett három alapvetõ + címke mellett a rendszergazdának + valószínûleg szüksége lesz a + felhasználók csoportosítására + és a csoportok közti + információáramlás + szabályozására. A információ + bizalmasságának szintjeit minden bizonnyal + könnyebb szavakkal beazonosítani, + például Confidential + (bizalmas), Secret (titkos) vagy Top + Secret (szigorúan bizalmas). Bizonyos + helyzetekben elég csak a futó projekteknek + megfelelõen kialakítani csoportokat. Az + osztályozás konkrét + módszerétõl függetlenül azonban + mindig elmondható, hogy elõzetes tervezés + nélkül sose állítsunk össze ilyen + fajsúlyú házirendet. + + Ezt a biztonsági modult például webes + üzletek esetén érdemes használnunk, ahol + egy állományszerver tárolja a cég + fontos adatait és pénzügyi + információit. Viszont egy két vagy + három felhasználóval üzemelõ + munkaállomás esetében szinte teljesen + felesleges gondolkodni rajta. + + + + + A Biba MAC-modul + + a Biba sértetlenségi + MAC-házirend + + A modul neve: mac_biba.ko + + A rendszermag konfigurációs + beállítása: options + MAC_BIBA + + Rendszerindítási beállítás: + mac_biba_load="YES" + + A &man.mac.biba.4; modul a MAC Biba + elnevezésû házirendjét tölti be. + Ez leginkább az MLS házirendhez + hasonlít, azzal a kivétellel, hogy az + információ áramoltatására + vonatkozó szabályok némileg visszafelé + mûködnek. Tehát míg az + MLS házirend a kényes + információ áramlását + felfelé nem engedi, addig ez a lefelé + irányuló áramlást + állítja meg. Emiatt ez a szakasz + tulajdonképpen mind a két házirendre + érvényesül. + + A Biba alkalmazása során minden alany és + objektum egy sértetlenséget + jelképezõ címkét visel. Ezek a + címkék hierarchikus osztályokból, nem + peidg hiearchikus összetevõkbõl származnak. + Egy objektum vagy alany sértetlensége a + besorolásával növekszik. + + A modul a biba/low, + biba/equal és + biba/high címkéket ismeri, vagyis + bõvebben: + + + + A biba/low címke tekinthetõ + az alanyok és objektumok legkisebb + sértetlenségének. Ha + beállítjuk egy objektumra vagy alanyra, akkor + ezzel megakadályozzuk, hogy nagyobb + sértetlenségû objektumokat vagy alanyokat + tudjanak írni. Ettõl függetlenül + azonban még képesek olvasni ezeket. + + + + A biba/equal címke + használata kizárólag olyan objektumok + esetében javasolt, amelyeket ki akarunk vonni a + házirend alól. + + + + A biba/high címke megengedi az + alacsonyabb szinteken levõ objektumokat + írását, de az olvasását + viszont már nem. Ezt a címkét olyan + objektumra érdemes ragasztani, amelyek hatással + vannak az egész rendszer + sértetlenségére. + + + + A Biba: + + + + Hierarchikus sértetlenségi szinteket + épít fel nem hiearchikus + sértetlenségi kategóriákkal + kiegészítve. + + + + Szabályai rögzítettek: az felsõbb + szintek írása és az alsóbb szintek + olvasása egyaránt tilos (pontosan az + MLS ellentéte). Egy alany csak a + saját vagy az alatta álló szinteken + szereplõ objektumokat tudja írni. Ehhez + hasonló módon egy alany csak a saját vagy + az afeletti szinten található objektumokat + képes olvasni. + + + + Az adatok sértetlenségét + biztosítja (megakadályozza az alkalmatlan + módosításukat) + + + + Sértetlenségi szinteket határoz meg + (szemben az MLS kényességi szintjeivel). + + + + Az alábbi + sysctl-változókkal + vezérlhetjük a Biba házirend + mûködését: + + + + A security.mac.biba.enabled + használható a célrendszeren a Biba + házirend engedélyezére vagy + letiltására. + + + + A security.mac.biba.ptys_equal + segítségével kapcsolhatjuk ki a Biba + házirend alkalmazását a &man.pty.4; + eszközökön. + + + + A security.mac.biba.revocation_enabled + hatására visszavonódik az objektumok + hozzáférése, ha az rájuk + vonatkozó címke megváltozik. + + + + A rendszer objektumain a Biba házirendet a + setfmac és getfmac + paranccsal állíthatjuk be: + + &prompt.root; setfmac biba/low próba +&prompt.root; getfmac próba +próba: biba/low + + + A sértetlenség + megállapítása + + A sértetlenség a + kényességtõl eltérõen azt igyekszik + szavatolni, hogy az információt + illetéktelenek nem módosítják. Ez + egyaránt vonatkozik az alanyok, objektumok és a + kettõ között átadott adatokra. + Gondoskodik róla, hogy a felhasználók csak + olyan információkat változtathathassanak + meg, sõt csak olyat érhessenek el, amire + ténylegesen szükségük van. + + A &man.mac.biba.4; biztonsági modul megengedi a + rendszergazda számára, hogy megmondja milyen + állományokat és programokat láthat + vagy hívhat meg a felhasználó vagy + felhasználók egy csoportja, miközben + biztosítja, hogy az állományok és a + programok nincsenek kitéve semmilyen + fenyegetésnek, és a rendszer az adott + felhasználóban vagy felhasználói + csoportban megbízik. + + A kezdeti tervezési fázis során a + rendszergazdának fel kell készülnie arra, + hogy a felhasználókat osztályokra, + szintekre és területekre kell osztania. A + felhasználók nem csak adatokhoz, hanem + programokhoz és segédprogramokhoz sem lesznek + képesek hozzáférni, mind az + indításuk elõtt és után. A + modul aktiválás után a rendszer + alapból rögtön a legmagasabb + címkét kapja meg, és teljesen a + rendszergazdára hárul, hogy a + felhasználókhoz beállítsa a + különféle osztályokat és + szinteket. A fentebb leírt engedélyszintek + helyett akár témák alapján is + tervezhetünk. Például + kizárólag csak a fejlesztõk + számára engedjük meg a + forráskód módosítását, + a forráskód lefordítását + és a többi fejlesztõeszköz + használatát. Eközben a többi + felhasználót felosztjuk további + csoportokba, például tesztelõkre és + tervezõkre, vagy meghagyjuk ezeket átlagos + felhasználóknak, akik csak olvasási joggal + rendelkeznek. + + A megvalósított biztonsági modell + természetébõl fakadóan egy + kevésbé sértetlenebb alany nem + írhatja a sokkal sértetlenebb alanyokat, a sokkal + sértetlenebb alanyok pedig nem érhetik el vagy + olvashatják a kevésbé sértetlen + objektumokat. A lehetõ legkisebb osztályú + címke beállításával + gyakorlatilag elérhetetlenné teszük az + alanyok számára. A modult + valószínûleg egy korlátozott + webszerver, fejlesztõi- és tesztgépek vagy + forráskód tárolására + szánt környezetben érdemes bevetni. + Annál esélytelenebb a használata viszont + egy munkaállomás, útválasztó + vagy hálózati tûzfal esetében. + + + + + + A LOMAC MAC-modul + + a LOMAC + MAC-házirend + + A modul neve: mac_lomac.ko + + A rendszermag konfigurációs + beállítása: options + MAC_LOMAC + + Rendszerindítás beállítás: + mac_lomac_load="YES" + + Eltérõen a MAC Biba + házirendjétõl, a &man.mac.lomac.4; egyedül + csak azután engedi elérni az kevésbé + sértetlenebb objektumokat, miután + csökkentjük a sértetlenség szintjét + és ezzel betartjuk a sértetlenségre + vonatkozó szabályokat. + + A gyenge vízjeles sértetlenségi + házirend MAC alapú + változatát nem szabad összetéveszteni a + korábbi &man.lomac.4; implementációval, amely + majdnem ugyanúgy mûködik, mint a Biba, azzal az a + kivétellel, hogy a lebegõ címkékkel + támogatjuk az alanyok lefokozását egy + kisegítõ osztály rekeszén + keresztül. Ez a másodlagos rekesz + [kisegítõ_osztály] + alakú. Tehát amikor egy kisegítõ + osztállyal adjuk meg a lomac házirendet, valahogy + így néz ki: lomac/10[2], ahol a + kettes (2) szám ez a kisegítésre + használt osztály. + + A MAC LOMAC házirendje az + összes rendszerszintû objektum esetében + jelenlevõ sértetlenségi + címkézésen alapszik, megengedve az alanyok + számára, hogy az kevésbé + sértetlen objektumokat olvasni tudják, majd a + címke leminõsítésével az alany + meg tudja akadályozni a sokkal sértetlenebbnek + ítélt objektumok jövõbeni + írását. Ez az a fentebb tárgyalt + [kisegítõ_osztály] + opció, ezért ez a modul a + Bibáénál több kompatibilitást + és kevesebb kezdeti beállítást + igényel. + + + Példák + + Hasonlóan a Biba és MLS + házirendeknél megszokottakhoz, a + setfmac és setpmac + segédprogramok használhatóak a + címkék + hozzárendeléséhez: + + &prompt.root; setfmac /usr/home/trhodes lomac/high[low] +&prompt.root; getfmac /usr/home/trhodes lomac/high[low] + + Itt a kisegítõ osztály a + low. Ezt csak a LOMAC + MAC-házirendnél adhatjuk + meg. + + + + + + A Nagios elzárása a MAC rendszerrel + + a Nagios elzárása a MAC + rendszerrel + + A most következõ bemutatóban a + MAC moduljainak és a megfelelõen + beállított házirendek + használatával fogunk kialakítani egy + biztonságos környezetet. Ne feledjük azonban, + hogy ez csupán egy ártatlan próba és + nem pedig a mindenki biztonsági aggályait + kielégítõ legvégsõ megoldás. + Ha egy házirendet vakon építünk fel + és nem értjük meg a + mûködését, az soha nem válik + hasznunkra, és egy éles helyzetben + katasztrofális hatással járhat. + + A folyamat megkezdése elõtt be kell + állítanunk a multilabel + opciót mindegyik állományrendszerre, a + fejezet elején leírtaknak megfelelõen. Ha ezt + a lépést kihagyjuk, akkor hibákat kapunk. + Továbbá még az elõkészület + részeként ne felejtsünk el gondoskodni a + net-mngt/nagios-plugins, + net-mngt/nagios és + www/apache13 portok + telepítésérõl, + beállításáról és + megfelelõ mûködésérõl + sem. + + + A nem megbízható felhasználók + osztályának létrehozása + + Az eljárást kezdjük az alábbi + (insecure) felhasználói osztály + hozzáadásával az + /etc/login.conf + állományban: + + insecure:\ +:copyright=/etc/COPYRIGHT:\ +:welcome=/etc/motd:\ +:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ +:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin +:manpath=/usr/share/man /usr/local/man:\ +:nologin=/usr/sbin/nologin:\ +:cputime=1h30m:\ +:datasize=8M:\ +:vmemoryuse=100M:\ +:stacksize=2M:\ +:memorylocked=4M:\ +:memoryuse=8M:\ +:filesize=8M:\ +:coredumpsize=8M:\ +:openfiles=24:\ +:maxproc=32:\ +:priority=0:\ +:requirehome:\ +:passwordtime=91d:\ +:umask=022:\ +:ignoretime@:\ +:label=biba/10(10-10): + + Valamint egészítsük ki az + alapértelmezett (default) felhasználói + osztályt a következõ sorral: + + :label=biba/high: + + Ahogy ezzel elkészültünk, az + hozzátartozó adatbázis újbóli + legyártásához a következõ + parancsot kell kiadnunk: + + &prompt.root; cap_mkdb /etc/login.conf + + + + + A rendszerindítással kapcsolatos + beállítások + + Még ne indítsuk újra a + számítógépet, csupán a + szükséges modulok betöltéséhez + bõvítsük ki a + /boot/loader.conf állományt + az alábbi sorokkal: + + mac_biba_load="YES" +mac_seeotheruids_load="YES" + + + + + A felhasználók + beállítása + + Soroljuk be a root + felhasználót a default + osztályba: + + &prompt.root; pw usermod root -L default + + Az összes root + felhasználón kívüli + hozzáférésnek vagy + rendszerfelhasználónak most kelleni fog egy + bejelentkezési osztály. A bejelentkezési + osztályra egyébként is szükség + lesz, mert ennek hiányában a + felhasználók még az olyan egyszerû + parancsokat sem tudják kiadni, mint például + a &man.vi.1;. A következõ sh + szkript nekünk erre pontosan megfelel: + + &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ + /etc/passwd`; do pw usermod $x -L default; done; + + Helyezzük át a nagios + és www felhasználókat az + insecure osztályba: + + &prompt.root; pw usermod nagios -L insecure + &prompt.root; pw usermod www -L insecure + + + + + A <filename>contexts</filename> állomány + létrehozása + + Most csinálnunk kell egy + contexts állományt. Ebben + példában az + /etc/policy.contexts + állományt használjuk. + + # Ez a rendszer alapértelmezett BIBA házirendje. + +# Rendszer: +/var/run biba/equal +/var/run/* biba/equal + +/dev biba/equal +/dev/* biba/equal + +/var biba/equal +/var/spool biba/equal +/var/spool/* biba/equal + +/var/log biba/equal +/var/log/* biba/equal + +/tmp biba/equal +/tmp/* biba/equal +/var/tmp biba/equal +/var/tmp/* biba/equal + +/var/spool/mqueue biba/equal +/var/spool/clientmqueue biba/equal + +# Nagios: +/usr/local/etc/nagios +/usr/local/etc/nagios/* biba/10 + +/var/spool/nagios biba/10 +/var/spool/nagios/* biba/10 + +# Apache: +/usr/local/etc/apache biba/10 +/usr/local/etc/apache/* biba/10 + + Ezzel a házirenddel az információ + áramlását szabályozzuk. Ebben a + konkrét konfigurációban a + felhasználók, a root + és társai, nem férhetnek hozzá a + Nagioshoz. A + Nagios + beállításait tároló + állományok és a neve alatt futó + programok így teljesen különválnak + vagyis elzáródnak a rendszer többi + részétõl. + + Ez az iménti állomány a + következõ parancs hatására kerül be + a rendszerünkbe: + + &prompt.root; setfsmac -ef /etc/policy.contexts / +&prompt.root; setfsmac -ef /etc/policy.contexts / + + + A fenti állományrendszer + felépítése a környezettõl + függõen eltérhet, habár ezt minden + egyes állományrendszeren le kell + futtatni. + + + Az /etc/mac.conf + állományt törzsét a + következõképpen kell még + átírnunk: + + default_labels file ?biba +default_labels ifnet ?biba +default_labels process ?biba +default_labels socket ?biba + + + + + A hálózat engedélyezése + + Tegyük hozzá a következõ sort az + /boot/loader.conf + állományhoz: + + security.mac.biba.trust_all_interfaces=1 + + Ezt az alábbi beállítást pedig + szúrjuk be az rc.conf + állományba a hálózati kártya + konfigurációjához. Amennyiben az + internetet DHCP + segítségével érjük el, ezt a + beállítást manuálisan kell megtenni + minden rendszerindítás alkalmával: + + maclabel biba/equal + + + + + A konfiguráció + kipróbálása + + a MAC beállításainak + kipróbálása + + Gondoskodjunk róla, hogy a webszerver és a + Nagios nem fog elindulni a rendszer + indításakor, majd indítsuk újra a + gépet. Ezenkívül még + ellenõrizzük, hogy a root ne + tudjon hozzáférni a + Nagios + beállításait tartalmazó + könyvtárhoz. Ha a root + képes kiadni egy &man.ls.1; parancsot a + /var/spool/nagios könyvtárra, + akkor valamit elronthattunk. Normális esetben egy + permission denied üzenetet kell + kapnunk. + + Ha minden jónak tûnik, akkor a + Nagios, + Apache és + Sendmail most már + elindítható a biztonsági házirend + szabályozásai szerint. Ezt a következõ + parancsokkal tehetjük meg: + + &prompt.root; cd /etc/mail && make stop && \ +setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ +setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart + + Kétszer is ellenõrizzük, hogy minden a + megfelelõ módon viselkedik-e. Ha valamilyen + furcsaságot tapasztalunk, akkor nézzük + át a naplókat vagy a hibaüzeneteket. A + &man.sysctl.8; használatával tiltsuk le a + &man.mac.biba.4; biztonsági modult és + próbáljunk meg mindent a szokott módon + újraindítani. + + + A root felhasználó + különösebb aggodalom nélkül + képes megváltoztatni a biztonsági rend + betartatását és átírni a + konfigurációs állományokat. Egy + frissen indított parancsértelmezõ + számára ezzel a paranccsal tudjuk + csökkenteni a biztonsági besorolást: + + &prompt.root; setpmac biba/10 csh + + Ennek kivédésére a + felhasználókat a &man.login.conf.5; + beállításaival le kell korlátozni. + Ha a &man.setpmac.8; megpróbál a rekesz + határain túl futtatni egy parancsot, akkor + hibát ad vissza és a parancs nem fut le. Ebben + az esetben a root + felhasználót tegyük a + biba/high(high-high) értékek + közé. + + + + + + + A felhasználók + korlátozása + + Ebben a példában egy viszonylag kicsi, + nagyjából mindössze ötven + felhasználós, adattárolásra + használatos rendszert veszünk alapul. A + felhasználók rendelkezhetnek bizonyos + bejelentkezési tulajdonságokkal, és nem csak + adatokat tudnak tárolni, hanem az + erõforrásokhoz is hozzá tudnak + férni. + + Itt most a &man.mac.bsdextended.4; és a + &man.mac.seeotheruids.4; modulokat vetjük be együttesen, + és nem csak a rendszer objektumainak + elérését tudjuk megakadályozni, hanem + az egyes felhasználók futó programjait is + elrejtjük. + + A mûveletet kezdjük azzal, hogy a + /boot/loader.conf állományt + kibõvítjük a következõ + módon: + + mac_seeotheruids_enabled="YES" + + A &man.mac.bsdextended.4; biztonsági modul az + alábbi + rc.conf-változóval + hozható mûködésbe: + + ugidfw_enable="YES" + + A hozzátartozó alapértelmezett + szabálykészlet az + /etc/rc.bsdextended állományban + tárolódik, amely pedig a rendszer + indítása során töltõdik be. Ezeket + némileg módosítanunk kell majd. Mivel a + példában szereplõ + számítógép csak a + felhasználók kiszolgálását + hivatott ellátni, az utolsó kettõ + kivételével mindent hagyhatunk megjegyzésben. + Így kikényszerítjük + felhasználók által birtokolt + rendszerobjektumok alapértelmezés szerinti + betöltését. + + Vegyük fel a szükséges + felhasználókat a + számítógépre és indítsuk + újra. Tesztelési célból + próbáljunk meg különbözõ + felhasználókként bejelentkezni két + konzolon. Futassuk le a ps aux parancsot, + és így meg tudjuk figyelni, hogy mennyire + látjuk a többi felhasználót. Amikor + megpróbáljuk kiadni a &man.ls.1; parancsot a + többiek felhasználói könyvtáraira, + akkor hibát kell kapnunk. + + Ne próbálgassunk a root + felhasználóval, hacsak a megfelelõ + sysctl változókban be nem + állítottuk az õ + hozzáférésének + blokkolását is. + + + Amikor felveszük egy felhasználót a + rendszerbe, a hozzátartozó &man.mac.bsdextended.4; + szabály nem fog szerepelni a szabályrendszerben. + A szabályrendszer gyors frissítését + úgy tudjuk megoldani, ha a &man.kldunload.8; + használatával egyszerûen + eltávolítjuk a biztonsági modult a + memóriából és + újratöltjük a &man.kldload.8; + paranccsal. + + + + + + A hibák elhárítása a MAC + rendszerben + + MAC + hibaelhárítás + + A fejlesztés fázisában bizonyos + normál konfigurációval rendelkezõ + felhasználók gondokat jeleztek. Ezeket foglaljuk + most itt össze: + + + A <option>multilabel</option> + beállítás nem adható meg a + <filename>/</filename> állományrendszerre + + A beállítás + nem marad meg a rendszerindító + (/) partíciómon! + + A tapasztalatok szerint körülbelül minden + ötvenedik felhasználó szembesül ezzel a + problémával, és mi is találkozunk + vele a kezdeti konfigurációk + kialakítása során. Ennek az + úgynevezett hibának a + behatóbb tanulmányozása során arra + jutottunk, hogy ez többnyire vagy a hibás + dokumentálásból vagy a + dokumentáció + félreértelmezésébõl ered. + Független attól, hogy ez mitõl is + következett be, a következõ lépések + megtételével orvosolhatjuk: + + + + Nyissuk meg az /etc/fstab + állományt és adjuk meg a + rendszerindító partíciónak az + , vagyis az + írásvédett (read-only) + beállítást. + + + + Indítsuk újra a gépet + egyfelhasználós módban. + + + + A tunefs + parancsot futtassuk le a / + állományrendszeren. + + + + Indítsuk újra a rendszert normál + módban. + + + + Adjuk ki a mount + / parancsot, majd + az /etc/fstab állományban + írjuk át a + beállítást az + értékre és megint indítsuk + újra a rendszert. + + + + Alaposan nézzük át a + mount parancs kimenetét és + gyõzödjünk meg róla, hogy a + opció valóban + beállítódott a + rendszerindító + állományrendszerre. + + + + + + + A <acronym>MAC</acronym> után nem lehet + indítani az X11 szervert + + Nem indul az X, miután MAC-kel + kialakítottunk egy biztonságos + környezetet! + + Ezt vagy a MAC + partition házirendje okozza, vagy az + egyik címkékeket használó + házirend helytelen beállítása. A + következõ módon deríthetjük ki az + okát: + + + + Figyelmesen olvassuk el a hibaüzenetet: ha a + felhasználó az insecure + osztály tagja, akkor a partition + házirend lesz a bûnös. + Próbáljuk meg a felhasználót + visszatenni a default osztályba + és a cap_mkdb paranccsal + újragenerálni az adatbázist. Ha ez nem + segít a problémán, akkor haladjunk + tovább. + + + + Alaposan ellenõrizzük a + címkékhez tartozó házirendeket. + Vizsgáljuk meg, hogy a kérdeses + felhasználó esetében a + házirendet és az X11 alkalmazást, + valamint a /dev + eszközöket tényleg jól + állítottuk be. + + + + Ha az iméntiek egyik sem oldja meg gondunkat, + küldjük el a hibaüzenetet és a + környezetünk rövid + leírását a a TrustedBSD + honlapjáról elérhetõ TrustedBSD + levelezési lista vagy a &a.questions; + címére. + + + + + + + Hiba: &man..secure.path.3; cannot stat + <filename>.login_conf</filename> + + Amikor a rendszerben megpróbálok a + root felhasználóról + átváltani egy másik + felhasználóra, a _secure_path: unable + to state .login_conf hibaüzenet jelenik + meg. + + Ez az üzenet általában akkor + látható, amikor a felhasználó + nagyobb értékû címkével + rendelkezik annál, mint akivé válni akar. + Például vegyük a joska + nevû felhasználót a rendszerben, aki az alap + biba/low címkével rendelkezik. + A root felhasználó, akinek + biba/high címkéje van, nem + láthatja joska + felhasználói könyvtárát. Ez + attól függetlenül megtörténik, hogy + a root a su paranccsal + váltott át a joska nevû + felhasználóra vagy sem. Egy ilyen helyzetben a + Biba sértetlenségi modellje nem fogja engedni a + root felhasználóra + számára, hogy láthassa a + kevésbé sértetlen objektumokat. + + + + + A <username>root</username> felhasználó nem + megy! + + A rendszer normál vagy egyfelhasználós + módban sem ismeri fel a root + felhasználót. A whoami parancs + 0 (nullát) ad vissza és a su + parancs pedig annyit mond: who are you? + (ki vagy?). Mi + történhetett? + + Ez csak olyankor történhet, ha a + címkézési házirendet nem + engedélyezzük, vagy a &man.sysctl.8; + használatával, vagy pedig a modul + eltávolításával. Ha a + házirendet letiltjuk vagy ideiglenesen letiltódik, + akkor a bejelentkezési tulajdonságokat + tároló adatbázist a + beállítás + eltávolításával kell + újrakonfigurálni. A + login.conf állományból + ne felejtsük el kivenni az összes + beállítást és + a cap_mkdb paranccsal + újragenerálni az adatbázist. + + Ilyen akkor is elõfordulhat, amikor a házirend + valamilyen módon korlátozza a + master.passwd állomány vagy + adatbázis elérhetõségét. Ezt + általában az okozza, hogy a rendszergazda az + állományt olyan címke alatt + módosítja, amely ütközik a rendszerben + alkalmazott általános házirenddel. Ebben + az esetekben a rendszer próbálja meg beolvasni a + felhasználók adatait, azonban mivel közben az + állomány új címkét + örökölt, nem fér hozzá. Ha a + &man.sysctl.8; paranccsal letiltjuk a házirendet, minden + vissza fog térni a rendes + kerékvágásba. + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/mail/Makefile b/hu_HU.ISO8859-2/books/handbook/mail/Makefile new file mode 100644 index 0000000000..538dff091f --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= mail/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml new file mode 100644 index 0000000000..ec74e75a6c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml @@ -0,0 +1,3150 @@ + + + + + + + + + Bill + Lloyd + Eredetileg készítette: + + + + + Jim + Mock + Átdolgozta: + + + + + Elektronikus levelezés + + + Áttekintés + + e-mail + + Az elektronikus levelezés, más + néven e-mail, a kommunikáció egyik legjobban + elterjedt formája. Ebben a fejezetben bemutatjuk, hogyan + futtassunk &os;-n levelezõ szervert, illetve hogyan + küldjünk és fogadjunk e-maileket a &os; + használatával. Ez azonban semmiképpen sem + tekinthetõ egy teljes referenciának és + tulajdonképpen számos fontos + tényezõrõl szót sem ejtünk. A + témára úgy kaphatunk egy sokkal + átfogóbb rálátást, ha a ben felsorolt remek könyveket is + elolvassuk. + + A fejezet elolvasása során + megismerjük: + + + + milyen szoftverkomponensek játszanak szerepet az + elektronikus levelek küldésében és + fogadásában; + + + + &os;-ben hol találhatóak a + sendmail + konfigurációs állományai; + + + + mi a különbség a helyi és + távoli postaládák + között; + + + + hogyan akadályozzuk meg, hogy a levelezõ + szerverünk a kéretlen levélszemetet + továbbítson; + + + + rendszerünkön hogyan telepítsünk + és állítsunk be más levelezõ + szervereket a sendmail + helyett; + + + + hogyan oldjuk meg a levelezõ szerverekkel + kapcsolatban felmerülõ általános + problémákat; + + + + hogyan használjuk az SMTP protokollt az UUCP + protokollal; + + + + hogyan kell rendszerüket csak + levélküldésre + beállítani; + + + + hogyan levelezzünk betárcsázós + kapcsolattal; + + + + hogyan növeljük rendszerünk + védelmét az SMTP + hitelesítésének + engedélyezésével; + + + + hogyan telepítsünk és + használjunk a levelek küldésére + és fogadására például a + mutthoz hasonló + levelezõ klienseket; + + + + hogyan töltsük le leveleinket egy távoli + POP vagy IMAP + szerverrõl; + + + + hogyan alkalmazzunk automatikusan adott szabályokat + vagy szûrõket az érkezõ + levelekre. + + + + A fejezet elolvasása elõtt ajánlott: + + + + az internet-csatlakozásunk megfelelõ + beállítása (); + + + + a névfeloldás + beállítása (); + + + + a külsõ fejlesztésû + alkalmazások telepítésének + ismerete (). + + + + + + + Az elektronikus levelezés használata + + POP + IMAP + DNS + + Öt fontosabb részre bonthatjuk a + levelezést. Ezek: a + felhasználói program (mail user agent), a levélküldõ démon + (mail transfer agent), a + névfeloldás, a + helyi vagy távoli postaláda és + természetesen maga a + levelezõ szerver (mail host). + + + A felhasználói program + + Ide soroljuk a különbözõ parancssoros + programokat, mint például a + mutt, + pine, elm + és mail, valamint a + különféle grafikus alkalmazásokat, mint + például a balsa + és az xfmail, csak hogy + felsoroljuk néhány újabb, egy + webböngészõhöz hasonlóan + kifinomult eszközt is. Ezek a programok + egyszerûen átküldik az elektronikus levelekkel + kapcsolatos tranzakciókat a helyi levelezõ + szervernek vagy meghívják + valamelyik levélküldõ + démont, esetleg közvetlenül a + TCP protokollon keresztül + kézbesítenek. + + + + + A levélküldõ démon + + + levélküldõ démon + sendmail + + + + levélküldõ démon + postfix + + + + levélküldõ démon + qmail + + + + levélküldõ démon + exim + + + A &os; alapból a sendmail + nevû programot ajánlja fel erre a célra, de + támogat más levelezõ szervereket is, ezek + közül meg is említünk + néhányat + ízelítõként: + + + + exim + + + + postfix + + + + qmail + + + + Ez a démon általában két + feladatot lát el — a beérkezõ levelek + fogadásáért és a kimenõ levelek + elküldéséért felelõs. + Nem tartozik azonban a feladatai + közé, hogy a POP vagy + IMAP protokollokhoz hasonlóan + olvashatóvá tegye a leveleinket, illetve + csatlakozni engedjen a helyi mbox vagy + Maildir formátumú postaládáinkhoz. + Ezekhez a mûveletekhez egy külön démon + szükségeltetik. + + + A sendmail régebbi + változatai tartalmaznak olyan komoly biztonsági + hibákat, amelyek kihasználásával + az illetéktelen behatolók helyi és/vagy + távoli hozzáférést tudnak szerezni + a gépünkön. Az ilyen jellegû + problémák elkerülése + érdekében igyekezzünk mindig a legfrissebb + verzióját használni. Vagy a &os; + Portgyûjteményébõl + telepítsünk fel egy másik + levélküldõ démont. + + + + + + Az elektronikus levelek és a + névfeloldás + + A névfeloldás (Domain Name System, DNS) + és a hozzátartozó named + démon nagy szerepet játszik az elektronikus + levelek továbbításában. A + démon a leveleket úgy küldi át az + egyik géprõl a másikra, hogy a + névfeloldáson keresztül megkeresi azt a + távoli gépet, amelynek a leveleket + címezték. Ez a folyamat szintén + végbemegy, amikor egy távoli géprõl + levelet küldenek a mi szerverünkre. + + MX rekord + + A DNS valósítja meg a + hálózati nevek és az IP-címek + összerendelését valamint ez tárolja el + a levélküldésre vonatkozó + információkat is, amelyeket MX rekordoknak + hívnak. Az MX (Mail eXchanger, + levélváltó) rekord adja meg + azt a gépet vagy azokat a gépeket, amelyek az + adott névtartományban fogadják a leveleket. + Ha a hálózati nevünkhöz vagy + tartományunkhoz nem tartozik MX rekord, akkor a + levél közvetlenül a gépünkre + vándorol feltéve, hogy rendelkezik olyan A + rekorddal, amely összerendeli a gépünk + nevét az IP-címével. + + A &man.host.1; parancs használatával az + alábbi példához hasonlóan + tetszõleges tartomány MX rekordját meg tudjuk + nézni: + + &prompt.user; host -t mx +FreeBSD.org FreeBSD.org mail is handled (pri=10) by +mx1.FreeBSD.org + + + + + Az elektronikus levelek fogadása + + + elektronikus levél + fogadása + + + A tartományunkhoz tartozó leveleket + fogadását a levelezõ szerver végzi. + Összegyûjti a tartományunkba küldött + összes levelet és ezeket a + beállításainktól függõen + vagy mbox (a levelek + tárolásának alapértelmezett + módja) vagy pedig Maildir formátumban + eltárolja. Ahogy eltárolt egy levelet, úgy + helyben egybõl el is tudjuk olvasni például a + &man.mail.1; vagy a mutt + használatával, illetve távolról a + POP vagy IMAP és a + hasonló protokollokkal tudjuk elérni és + begyûjteni. Ezért tehát ha csak a helyi + gépen kívánjuk olvasni a leveleinket, akkor + ahhoz egyáltalán nem kell POP + vagy IMAP szervert + telepítenünk. + + + Távoli postaládák + elérése a <acronym>POP</acronym> és + <acronym>IMAP</acronym> használatával + + POP + IMAP + + A távoli postaládák + eléréséhez tudnunk kell csatlakozni egy + POP vagy IMAP + szerverhez. Ezeken a protokollokon keresztül + tudják a felhasználók minden + különösebb nehézség + nélkül elérni távolról a + helyi postaládáikat. Noha a + POP és az IMAP + segítségével egyaránt el tudjuk + így érni a postaládákat, az + IMAP használatának + mégis több elõnye van, íme + néhány közülük: + + + + Az IMAP a levelek leszedése + mellett tárolni is képes a távoli + szerveren. + + + + Az IMAP támogat + párhuzamos lekéréseket. + + + + Az IMAP hihetetlenül hasznos + tud lenni lassabb összeköttetések + esetében, mivel lehetõvé teszi a + felhasználók számára, hogy + csak az üzenetek vázát + töltsék le és ne az egészet. + Továbbá a szerver és a kliens + közti adatmozgás csökkentése + érdekében képes bizonyos feladatokat + a szerveren elvégezni, például + keresni. + + + + Egy POP vagy IMAP + szerver telepítéséhez az alábbi + lépések megtétele + szükséges: + + + + Válasszuk ki az igényeinket legjobban + kielégítõ IMAP vagy + POP szervert. A következõ + POP és IMAP + szerverek eléggé elterjedtek és + egyben remek példák: + + + + qpopper + + + + teapop + + + + imap-uw + + + + courier-imap + + + + + + + A Portgyûjteménybõl + telepítsük fel a kiválasztott + POP vagy IMAP + démont. + + + + Ha szükséges, akkor a + POP vagy IMAP + szerver betöltéséhez írjuk + át az /etc/inetd.conf + állományt. + + + + + Meg kell említenünk, hogy mind a + POP és az IMAP + az összes információt, tehát + belértve a felhasználók neveit + és jelszavait titkosítatlan formában + továbbítja. Ez azt jelenti, hogy ha ezeket a + protokollokat biztonságos módon + szeretnénk elérni, akkor az &man.ssh.1; + használatával hozzunk létre + hozzá egy tunnelt és azon keresztül + használjuk. Errõl részletesebben a ban olvashatunk. + + + + + + A helyi postaládák + elérése + + A helyi postaládákat a szerveren levõ + levelezõ kliensek közvetlen + használatával érhetjük el. Ilyen + alkalmazások például a + mutt vagy a &man.mail.1;. + + + + + + A levelezõ szerver + + levelezõ szerver + + A levelezõ szerver az a szerver, amely a + gépünk vagy akár az egész + hálózatunk irányába + érkezõ levelek fogadásáért + és elküldéséért + felelõs. + + + + + + + + + Christopher + Shumway + Írta: + + + + + A <application>sendmail</application> + beállítása + + sendmail + + A &man.sendmail.8; a &os; alapértelmezett + levéltovábbító ügynöke (Mail + Transfer Agent, MTA). A + sendmail feladata fogadni a + levelezõ kliensektõl (Mail User Agent, + MUA) érkezõ leveleket és + kézbesíteni azokat a konfigurációs + állományában megadott megfelelõ + levelezõnek. A sendmail + hálózati kapcsolatokat is fogad, képes a + helyi postaládákba vagy akár más + programoknak is leveleket továbbítani. + + A sendmail a következõ + állományban tárolja + beállításait: + + /etc/mail/access + /etc/mail/aliases + /etc/mail/local-host-names + /etc/mail/mailer.conf + /etc/mail/mailertable + /etc/mail/sendmail.cf + /etc/mail/virtusertable + + + + + + Állomány + Szerep + + + + + + /etc/mail/access + + A sendmail által + engedélyezett hozzáféréseket + tároló adatbázis + + + + /etc/mail/aliases + + A postaládák álnevei + + + + /etc/mail/local-host-names + + Azon nevek felsorolása, amelyek + számára a + sendmail leveleket + fogad + + + + /etc/mail/mailer.conf + + A levelezõ programok + beállításai + + + + /etc/mail/mailertable + + A levelezõ programok + kézbesítési + táblázata + + + + /etc/mail/sendmail.cf + + A sendmail központi + beállításait tároló + állomány + + + + /etc/mail/virtusertable + + Virtuális felhasználók és + tartományok táblázatai + + + + + + + <filename>/etc/mail/access</filename> + + Az engedélyezett hozzáféréseket + tároló adatbázis tartalmazza milyen + hálózati neveken vagy IP-címeken lehet + elérni a helyi levelezõ szervert és azok + milyen típusú hozzáférést + kapnak. A gépek az (rendben), + (visszautasít), + (továbbítás) + beállításokat alkalmazhatjuk, vagy + egyszerûen meghívhatjuk hozzájuk a + sendmail hibakezelõ + rutinját egy adott kézbesítési + hibával. Ha egy gépet az + beállítással veszük fel a + listára, ami egyébként + alapértelmezés, akkor ez a gép levelet tud + küldeni egészen addig, amíg a + végsõ cél a helyi gép marad. A + beállítással + felsorolt gépek számára semmiféle + levelezés nem engedélyezett. Ha pedig egy + gép mellett a + beállítás jelenik meg, akkor a szerveren + keresztül tetszõleges címre + küldhet. + + + A <application>sendmail</application> + elérését szabályozó + adatbázis beállítása + + cyberspammer.com 550 Nem szeretjuk a spammereket +FREE.STEALTH.MAILER@ 550 Nem szeretjuk a spammereket +another.source.of.spam REJECT +okay.cyberspammer.com OK +128.32 RELAY + + + Ebben a példában öt bejegyzést + láthatunk. A táblázat bal felének + valamelyik sorára illeszkedõ küldõkre a + táblázatban a sor jobb felén megjelenõ + cselekvés érvényesül. Az elsõ + két sorban a sendmail + hibakezelõ rutinjának adunk át + hibakódokat. A hozzátartozó üzenet + akkor fog megjelenni a távoli gépen, amikor a + tõle érkezõ levél illeszkedik a bal + oldali szabályra. Az ezeket követõ + bejegyzésben visszalökünk minden olyan levelet, + amely az internetrõl egy adott + számítógéptõl érkezik, + például az another.source.of.spam + címrõl. A következõ bejegyzésben + az okay.cyberspammer.com + címrõl elfogadjuk a kapcsolódást, ami + viszont sokkal pontosabb megjelölés a fentebb + szereplõ cyberspammer.com sornál. A + pontosabban kifejtett nevek + felülbírálják a kevésbé + pontosan megnevezetteket. Végül az utolsó + bejegyzésben engedélyezzük a levelek + továbbküldését minden olyan gép + számára, amelynek címe a + 128.32 elõtaggal kezdõdik. Ezek + tehát képesek ezen a levelezõ szerveren + keresztül bárhova leveleket küldeni. + + Az állomány módosítása + után az adatbázis + frissítéséhez mindig le kell futtatnunk egy + make parancsot az + /etc/mail/ könyvtárban. + + + + + <filename>/etc/mail/aliases</filename> + + Az álneveket tartalmazó adatbázis + virtuális postaládákat sorol fel, amelyek + más felhasználókra, + állományokra, programokra vagy további + álnevekre vonatkozhatnak. Íme + néhány példa az + /etc/mail/aliases állományban + szereplõ bejegyzésekre: + + + Virtuális postaládák + + root: localuser +ftp-bugs: joe,eric,paul +bit.bucket: /dev/null +procmail: "|/usr/local/bin/procmail" + + + A formai szabályok egyszerûek: a kettõspont + bal oldalára kell írni azt a + postaládát, amely a jobb oldalán levõ + célokra bomlik. A példa elsõ sorában + egyszerûen megfeleltetjük a root + postaládáját a + localuser + postaládájának, majd ezt a nevet + keressük az álnevek adatbázisában. Ha + nem találunk már rá illeszkedést, + akkor az üzenetet a localuser + nevû helyi felhasználónak + továbbítjuk. A következõ sorban + címek listáját láthatjuk. Ennek + megfelelõen a ftp-bugs + postaláda címére küldött levelek + három további helyi postaládára + mennek tovább: ezek név szerint a + joe, eric és + paul felhasználók + postaládái. Itt a távoli + postaládák + felhasználó@példa.hu alakban + adhatóak meg. A következõ sor az + állományok használatát + példázza, ahol konkrétan a + /dev/null állományba + irányítjuk át az adott címre + érkezõ leveleket. Az utolsó sorban pedig a + programok használatára láthatunk + példát, ahol ebben az esetben a levél egy + &unix;-os csövön keresztül a + /usr/local/bin/procmail szabványos + bemenetére kerül. + + Ha megváltoztatjuk ezt az állományt, + akkor utána az adatbázis + frissítéséhez ne felejtsük el + meghívni a make parancsot az + /etc/mail/ könyvtárban. + + + + + <filename>/etc/mail/local-host-names</filename> + + Ebben az állományban adhatjuk meg, hogy a + &man.sendmail.8; milyen hálózati neveket fogadjon + el helyi hálózati névként. Ide kell + raknunk azokat a tartományokat vagy címeket, + amelyektõl a sendmail leveleket + fogad el. Például, ha a levelezõ szerver az + minta.com + tartományból és a level.minta.com címrõl fogad el + leveleket, akkor a local-host-names + valahogy így fog kinézni: + + minta.com +level.minta.com + + Az állomány módosításakor + a &man.sendmail.8; programot újra kell indítani a + változások + érvényesítéséhez. + + + + + <filename>/etc/mail/sendmail.cf</filename> + + Ahogy a sendmail központi + konfigurációs állománya, a + sendmail.cf irányítja a + sendmail átfogó + viselkedését, beleértve mindent az e-mail + címek átírásától + kezdve a távoli szervereknek küldött + elutasító üzenetek + küldéséig. Mivel ennyire sokfajta szerepet + tölt be egyszerre, ezért ez a + konfigurációs állomány + meglehetõsen összetett és a + részletezése meghaladná ennek a + leírásnak a határait. Szerencsére + az átlagos levelezõ szerverek esetében ezt az + állományt nagyon ritkán kell + módosítani. + + A sendmail központi + konfigurációs állománya a + sendmail lehetõségeit + és viselkedését meghatározó + &man.m4.1; makrókból építhetõ + fel. A pontosabb részleteket a + /usr/src/contrib/sendmail/cf/README + állományban találjuk meg. + + Az állomány megváltoztatása + után a módosítások + érvényesítéséhez újra + kell indítani a sendmail + programot. + + + + + <filename>/etc/mail/virtusertable</filename> + + A virtusertable állomány + képezi le a virtuális tartományokhoz + tartozó címeket valódi + postaládák címeire. Ezek a + postaládák lehetnek helyiek, távoliak, az + /etc/mail/aliases állományban + megadott álnevek vagy állományok. + + + Példa a virtuális tartományok + leképezésére + + root@minta.com root +postmaster@minta.com postmaster@noc.minta.net +@minta.com joe + + + A fenti példában megadtunk egy + leképezést a minta.com tartományhoz. Ez az + állomány úgy dolgozódik fel, hogy + fentrõl lefelé illesztõdnek a címek, + egészen az elsõ egyezésig. Az elsõ + bejegyzés szerint a root@minta.com a helyi + root felhasználó + postaládájára képzõdik le. A + következõ bejegyzés szerint a + postmaster@minta.com a noc.minta.net címen + található postmaster + nevû felhasználó + postaládájára képzõdik le. + Végezetül, ha a minta.com címrõl eddig + még semmi sem illeszkedett volna, akkor az utolsó + leképezés veszi át, amely az minta.com tartományon + belül az összes többi címre + küldött levelet a helyi joe + nevû felhasználó + postaládájára képezi le. + + + + + + + + + Andrew + Boothman + Írta: + + + + + Gregory + Neil Shapiro + Levelei segítségül + szolgáltak: + + + + + A levéltovábbító ügynök + megváltoztatása + + + e-mail + a levéltovábbító + megváltoztatása + + + Ahogy arról már korábban szó + esett, a &os; alapból tartalmazza a + sendmail programot mint + levéltovábbító ügynököt + (MTA, Mail Transfer Agent). Ennélfogva + alapértelmezés szerint ez a felelõs a + kimenõ és beérkezõ levelek + kezeléséért. + + Számtalan okból eredõen egyes + rendszergazdák azonban mégis szeretnék + lecserélni a rendszerükhöz tartozó + levéltovábbítót. Ennek oka lehet + egyszerûen csak annyi, hogy ki akarunk próbálni + egy másik programot vagy éppen egy olyan + eszközre van szükségünk, amely + kizárólag csak máshol található + meg. Szerencsére a &os; megkönnyíti ezt a + váltást. + + + Az új levéltovábbító + telepítése + + A levéltovábbítók széles + köre elérhetõ. A &os; + Portgyûjteményébõl elindulva sok + ilyen programot találhatunk. Természetesen + teljesen mindegy, hogy melyik + levéltovábbítót választjuk + egészen addig, amíg képesek vagyunk &os; + alatt rendesen futtatni. + + Kezdjük tehát az új + levéltovábbító + telepítésével. Miután sikerült + telepíteni, lehetõségünk van + eldönteni, hogy valóban eleget tesz-e az + igényeinknek, sõt az új szoftvert még + az elõtt be tudjuk állítani, hogy + átvenné a sendmail + helyét. Vigyázzunk azonban, hogy az új + szoftver telepítésekor ne írjon felül + olyan rendszerszintû binárisokat, mint + például a /usr/bin/sendmail. + Másrészt az új levelezõ szoftvert + szolgálatba helyezése elõtt + mindenképpen fontos megfelelõen + beállítanunk. + + A kiválasztott + levéltovábbító + beállításával kapcsolatban olvassuk + el a hozzátartozó + dokumentációt. + + + + + A <application>sendmail</application> + letiltása + + A sendmail + elindításához szükséges + módszer jelentõsen megváltozott a 4.5-RELEASE + és 4.6-RELEASE változatok között, + ezért a letiltásának pontos menete bizonyos + esetekben eltérhet. + + + Amikor letiltjuk a sendmail + kimenõ levél szolgáltatását, + soha ne felejtsük el pótolni valamilyen más + levelezõ rendszerrel. Ha nem így + cselekszünk, akkor például a + &man.periodic.8; és a hozzá hasonló + programok nem lesznek képesek a tõlük + megszokott módon e-mailben elküldeni a + futásuk eredményét. A rendszer bizonyos + részei ráadásul egy + mûködõ, + sendmail-kompatibilis rendszert + feltételeznek. Ha letiltása után az + alkalmazások továbbra is a + sendmail + segítségével próbálnak + levelet küldeni, akkor ez a levél a + sendmail inaktív + sorába kerülhet, ahonnan soha nem kerül + kézbesítésre. + + + + A &os; 2002/4/4 elõtti 4.5-STABLE vagy annál + korábbi változata (beleértve a + 4.5-RELEASE és az azt megelõzõ + verziókat) + + Az /etc/rc.conf + állományba írjuk be: + + sendmail_enable="NO" + + Ezzel kikapcsoljuk a sendmail + számára a beérkezõ levelek + feldolgozását, de ha a + /etc/mail/mailer.conf (lásd + lentebb) nem változik, akkor a + sendmail továbbra is + alkalmas lesz levelek küldésére. + + + + + A &os; 2002/4/4 utáni 4.5-STABLE vagy + késõbbi változata (beleértve a + 4.6-RELEASE és az azt következõ + változatokat) + + A sendmail teljes + letiltását, beleértve a kimenõ + levelek kézbesítését, az + /etc/rc.conf állományban a + következõ sor hozzáadásával + kezdeményezhetjük: + + sendmail_enable="NONE" + + Ha csak a beérkezõ levelek + feldolgozását akarjuk kikapcsolni, akkor az + /etc/rc.conf állományban + ennyit állítsunk be: + + sendmail_enable="NO" + + Habár ezzel letiltottuk a beérkezõ + levelek feldolgozását, a helyi + kézbesítés ennek ellenére + még továbbra is mûködni fog. A + sendmail + indításával kapcsolatos + beállításokról a + &man.rc.sendmail.8; man oldalán olvashatunk + részletesebben. + + + + + A &os; 5.0-STABLE és a késõbbi + változatok + + A sendmail teljes + leállításához, beleértve a + kimenõ levelekhez tartozó + szolgáltatást is, a következõket kell + megadni az /etc/rc.conf + állományban: + + sendmail_enable="NO" +sendmail_submit_enable="NO" +sendmail_outbound_enable="NO" +sendmail_msp_queue_enable="NO" + + Ha csak a sendmail + beérkezõ levelekre vonatkozó + szolgáltatását akarjuk tiltani, akkor + ahhoz az /etc/rc.conf + állományban a következõt + állítsuk be: + + sendmail_enable="NO" + + A sendmail + indításával kapcsolatos további + beállításokat az &man.rc.sendmail.8; man + oldalon találjuk. + + + + + + Az új levéltovábbító + elindítása a rendszerrel együtt + + Attól függõen, hogy a &os; melyik + változatát használjuk, a + rendszerindítás folyamán két + módszer áll rendelkezésünkre az + új levélküldõ + elindítására. + + + A &os; 2002/4/11 elõtti 4.5-STABLE változata + (beleértve a 4.5-RELEASE és a korábbi + változatokat) + + Hozzunk létre egy szkriptet a + /usr/local/etc/rc.d + könyvtárban, adjunk neki .sh + kiterjesztést és tegyük a + root felhasználó + által futtathatóvá. A szkriptnek a + start és stop + paramétereket kell tudnia értelmeznie. A + rendszer indulásakor a rendszerszkriptek a + + /usr/local/etc/rc.d/supermailer.sh start + + parancsot fogják majd kiadni, de ezt a szerver + manuális indítására is + felhasználhatjuk. A rendszer + leállításakor pedig a rendszerszkriptek a + stop paramétert fogják + átadni, vagyis a + + /usr/local/etc/rc.d/supermailer.sh stop + + parancsot hívják meg, amelyet + egyébként manuálisan is kiadhatunk a + szerver leállításához. + + + + + A &os; 2002/4/11 utáni 4.5-STABLE változata + (beleértve a 4.6-RELEASE és késõbbi + változatokat) + + A &os; újabb változataiban alkalmazhatjuk az + iménti módszert, vagy az + /etc/rc.conf állományban + megadhatjuk a + + mta_start_script="állománynév" + + változót, ahol az + állománynév + annak a szkriptnek a neve, amely a rendszerrel együtt + elindítandó + levéltovábbítót fogja + beüzemelni. + + + + + + A <application>sendmail</application> mint a rendszer + alapértelmezett levelezõ eszközének + lecserélése + + A sendmail annyira elterjedt + szabványos szoftver a &unix; rendszereken, hogy egyes + szoftverek egyszerûen feltételezik a + jelenlétét. Emiatt sok + levéltovábbítóhoz tartozik egy + sendmail kompatibilis parancssoros + felület is, amellyel igyekeznek megkönnyíteni a + sendmail gyors + lecserélését. + + Ennek következtében tehát, ha egy + másik levelezõ eszközt használunk, akkor + valamilyen módon meg kell bizonyosodnunk róla, + hogy a szabványos sendmail + binárisok, mint például a + /usr/bin/sendmail, valóban a + kiválasztott levéltovábbítot + fogják aktiválni. Szerencsére a &os; + pontosan emiatt tartalmaz egy &man.mailwrapper.8; nevû + rendszert. + + Amikor a sendmail + telepítése szerint mûködik, valami + hasonlót fogunk találni az + /etc/mail/mailer.conf + állományban: + +sendmail /usr/libexec/sendmail/sendmail +send-mail /usr/libexec/sendmail/sendmail +mailq /usr/libexec/sendmail/sendmail +newaliases /usr/libexec/sendmail/sendmail +hoststat /usr/libexec/sendmail/sendmail +purgestat /usr/libexec/sendmail/sendmail + + Ez azt jelenti, hogy amikor az itt felsorolt + általános parancsok közül lefuttatjuk + valamelyiket (például magát a + sendmail parancsot), akkor a rendszer + magától meghívja a + sendmail néven szereplõ wrapper + programot, amely pedig a mailer.conf + alapján kideríti, hogy az adott esetben a + /usr/libexec/sendmail/sendmail + hívására van szükség. Ez a + rendszer megkönnyíti az alapértelmezett + sendmail funkciók helyében + lefuttatandó binárisok + átállítását. + + Így tehát, ha a + /usr/local/supermailer/bin/sendmail-compat + állományt akarjuk futtatni a megszokott + sendmail helyében, akkor az + /etc/mail/mailer.conf + állományt a következõképpen kell + módosítanunk: + + sendmail /usr/local/kedvenclevelezõ/bin/sendmail-compat +send-mail /usr/local/kedvenclevelezõ/bin/sendmail-compat +mailq /usr/local/kedvenclevelezõ/bin/mailq-compat +newaliases /usr/local/kedvenclevelezõ/bin/newaliases-compat +hoststat /usr/local/kedvenclevelezõ/bin/hoststat-compat +purgestat /usr/local/kedvenclevelezõ/bin/purgestat-compat + + + + + A mûvelet befejezése + + Ahogy a céljainknak megfelelõen mindent + beállítottunk, akkor vagy egyszerûen + leállítjuk a sendmail + neve alatt futó programokat és helyettük + elindítjuk az új szoftverhez tartozókat, + vagy csak újraindítjuk a gépet. Az + újraindítással mellesleg + ellenõrizhetjük azt is, hogy jól + állítottuk be a rendszerünket és az + új levélküldõ tényleg elindul a + rendszerünkkel együtt. + + + + + + A hibák elhárítása + + + e-mail + hibaelhárítás + + + + + + Miért kell teljes hálózati neveket + megadni a gépemen? + + + + Elõfordulhat, hogy a hivatkozni + kívánt gép valójában egy + másik tartományban szerepel. + Például, ha az ize.mize.edu gépen vagyunk + és a vagyis nevû gépet + akarjunk innen elérni a mize.edu tartományban, + akkor a teljes hálózati nevével, vagyis + a vagyis.mize.edu néven + kell rá hivatkoznunk, nem pedig egyszerûen csak + vagyis néven. + + BIND + + Régebben egyébként ezt a + BSD-típusú BIND névfeloldók + megengedték. A &os; jelenlegi változatai + azonban már olyan BIND + verziót tartalmaznak, amelyek + alapértelmezés szerint már nem engedik + a tartományunkon kívüli relatív + nevek használatát. Tehát a + vagyis vagy a vagyis.ize.mize.edu gép lesz, + vagy a legfelsõ, gyökér tartományban + keresi a rendszer. + + Ez eltér a korábbi + viselkedéstõl, ahol a keresés + folytatódott a vagyis.mize.edu és vagyis.edu tartományokban + is. Az RFC 1535 elolvasásából ki + fog derülni, hogy miért nem vált be ez a + gyakorlat és hogy miért tekinthetõ + még akár biztonsági résnek + is. + + Ezt a problémát egyébként + megoldhatjuk annyival, hogy az + /etc/resolv.conf + állományba a + + search ize.mize.edu mize.edu + + sor helyett a + + domain ize.mize.edu + + sort írjuk be. Arra viszont ügyeljünk, + hogy a keresési rend ne lépje át a + helyi és nyilvános + adminisztráció között + meghúzódó határt, ahogy + azt az RFC 1535 nevezi. + + + + + MX rekord + + + + A sendmail szerint a + levél a saját farkába + harap + + + + Ezt a sendmail gyakran + ismértelt kérdései között a + következõképpen válaszolták + meg: + + A következõ hibaüzenetet kapom: + +553 MX list for taromány.net points back to felé.tartomány.net +554 felhasználó@tartomány.net... Local configuration error + +Hogyan oldható meg ez a probléma? + +Azt kértük, hogy a tartományba (például tartomány.net) küldött levél +az MX rekord felhasználásával egy adott gépre legyen átirányítva +(ebben az esetben ez a felé.tartomány.net), de a továbbítást végzõ gép +nem ismeri fel magát a tartomány.net címen. Vegyük fel a tartomány.net +tartományt az /etc/mail/local-host-names állományba [melyet a 8.10 elõtti +verziókban /etc/sendmail.cw állománynak hívnak] (ha a +FEATURE(use_cw_file) beállítást használjuk) vagy tegyük hozzá a +Cw tartomány.net sort az /etc/mail/sendmail.cf +állományhoz. + + A sendmail GYIK a címen + található meg (angolul) és + mindenképpen javasolt elolvasni, ha fel + szeretnénk piszkálni a levelezõ + rendszerünk beállításait. + + + + PPP + + + + Hogyan tudok levelezõ szervert futtatni egy + betárcsázós PPP kapcsolat + esetében? + + + + Egy helyi hálózaton levõ &os;-s + gépet akarunk tehát az internethez kapcsolni. + Ez a &os;-s gép lesz a helyi hálózat + leveleket továbbító + átjárója. A PPP kapcsolat nem + dedikált. + + UUCP + + MX record + + + Legalább két módon meg tudjuk + oldani. Az egyik módszer szerint az UUCP + használatára lesz + szükségünk. + + A másik módszer szerint szereznünk + kell egy éjjel-nappal üzemelõ internetes + szervert, amely majd szolgáltatja a másodlagos + MX rekordot a tartományunkhoz. + Például, ha a cégünk + tartománya a cég.hu + és az internet-szolgáltatónk a szolgáltató.net + névre beállította a + tartományunkhoz a másodlagos MX + rekordokat: + + cég.hu. MX 10 cég.hu. + MX 20 szolgáltató.net. + + Végsõ címzettként csak egy + gépet kell megadni (az + /etc/mail/sendmail.cf + állományba a cég.hu + címhez tegyük hozzá a Cw + cég.hu + sort). + + Amikor a leveleket küldeni akaró + sendmail megpróbál + kézbesíteni, elõször hozzánk + (cég.hu) + próbál csatlakozni a modemes + összeköttetésen keresztül. Ez + valószínûleg + idõtúllépéssel befejezõdik, + mivel nem vagyunk fenn minden pillanatban a neten. A + sendmail ekkor automatikusan a + másodlagos MX rekord által megadott + címre küldi a levelet, tehát a + szolgáltatónkhoz (szolgáltató.net). + Ez a másodlagos MX cím próbálja + majd idõlegesen elérni a gépünket + és kézbesíteni a leveleket az + elsõdleges MX rekord által megadott gépre + (cég.hu). + + A bejelentkezéskor ezért egy + hasonló szkriptet kell lefuttatnunk: + + #!/bin/sh +# Tegyük a /usr/local/bin/pppmyisp állományba: +( sleep 60 ; /usr/sbin/sendmail -q ) & +/usr/sbin/ppp -direct pppmyisp + + Ha készítünk egy külön + bejelentkezõ szkriptet a felhasználók + számára, akkor a sendmail + -qRcég.hu + parancsot is használhatjuk a fenti szkript helyett. + Ezzel a cég.hu + sorában található összes + levél azonnal feldolgozásra kerül. + + A helyzetet így lehetne még jobban + pontosítani: + + Az alábbi üzenet a &a.isp; + archívumából származik. + + > we provide the secondary MX for a customer. The customer connects to +> our services several times a day automatically to get the mails to +> his primary MX (We do not call his site when a mail for his domains +> arrived). Our sendmail sends the mailqueue every 30 minutes. At the +> moment he has to stay 30 minutes online to be sure that all mail is +> gone to the primary MX. +> +> Is there a command that would initiate sendmail to send all the mails +> now? The user has not root-privileges on our machine of course. + +In the privacy flags section of sendmail.cf, there is a +definition Opgoaway,restrictqrun + +Remove restrictqrun to allow non-root users to start the queue processing. +You might also like to rearrange the MXs. We are the 1st MX for our +customers like this, and we have defined: + +# If we are the best MX for a host, try directly instead of generating +# local config error. +OwTrue + +That way a remote site will deliver straight to you, without trying +the customer connection. You then send to your customer. Only works for +hosts, so you need to get your customer to name their mail +machine customer.com as well as +hostname.customer.com in the DNS. Just put an A record in +the DNS for customer.com. + + Az idézet fordítása: + + > Másodlagos MX rekordot biztosítunk az ügyfeleinknek. Az ügyfelek ezután automatikusan +> csatlakoznak naponta akár többször is a szolgáltatásunkhoz és leszedik az elsõdleges MX +> rekordhoz tartozó leveleket. (Nem szólunk neki, amikor a tartományához levél +> érkezik.) A sendmail programunk minden 30 percben elküldi a sorban felhalmozódott +> leveleket. Tehát jelen pillanatban legalább 30 percig fenn kell lennie az ügyfélnek, hogy +> rendben megkapja az elsõdlegesre MX rekordra. +> +> Létezik valamilyen parancs a sendmail programhoz, amellyel azonnal lekérhetjük az összes +> levelünket? A felhasználómnak természetesen nincsenek rendszergazdai jogosultságai az adott +> gépen. + +A sendmail.cf privacy flags beállításai között van egy definíció, az +Opgoaway,restrictqrun. + +Vegyük ki innen a restrictqrun beállítást, amivel a nem root felhasználók is megindíthatják a +sor feldolgozását. Valószínûleg az MX-ek átrendezésére is szükség lesz. Mi vagyunk az elsõ MX +az ilyen típusú ügyfelek számára, és ezt adtuk meg: + +# Ha mi vagyunk a legjobb MX a levél számára, akkor ne generáljunk +# helyi beállítási hibát, hanem próbálkozzunk közvetlenül. +OwTrue + +Ezzel már a távoli gép közvetlenül nekünk küld anélkül, hogy próbálkozna az ügyfél kapcsolatával. +Ezt majd továbbküldjünk az ügyfélnek. Ez csak hálózati nevek esetében mûködik, tehát az ügyfelünknek +el kell neveznie a leveleket fogadó gépét customer.com-nak, valamint a fel kell venni a +hostname.customer.com címet is a DNS-be. Ehhez egyszerûen csak elegendõ egy A rekordot +betenni a customer.com-hoz. + + + + + + + Miért kapok folyton Relaying + Denied hibát, amikor más + gépekrõl küldök levelet? + + + + A &os; alapértelmezett telepítése + során a sendmail + úgy állítódik be, hogy csak + arról a géprõl küldhetünk vele + levelet, ahol fut. Például, ha + POP szerver is elérhetõ, + akkor a felhasználók meg tudják + nézni a leveleiket az iskolából, + munkából vagy bármilyen más + távoli helyrõl, de leveleket onnan + továbbra sem tudnak küldeni. + Általában pár pillanattal a + próbálkozás után a + MAILER-DAEMON küldeni fog + egy 5.7 Relaying Denied + (5.7 A továbbítás nem + engedélyezett) üzenetet. + + Több lehetõségünk is van ennek + megkerülésére. Az a legegyszerûbb + módszer, ha az internet-szolgáltatónk + címét felvesszük az + /etc/mail/relay-domains + állományba. Például + így: + + &prompt.root; echo "az.internet.szolgáltató.net" > /etc/mail/relay-domains + + Az állomány létrehozása vagy + módosítása után újra kell + indítanunk a sendmail + programot. Ez remekül mûködik abban az + esetben, ha rendszergazdák vagyunk és nem + akarunk a helyi géprõl levelet küldeni, + vagy egy másik gépen vagy akár + másik internet-szolgáltatóval akarunk + valamilyen kattingatós levelezõ programot + használni. Olyankor is nagyon hasznos lehet, amikor + csak egy vagy két e-mail + hozzáférést állítottunk + be. Ha egyszerre több címet is fel + szeretnénk venni, akkor nyissuk meg ezt az + állományt a kedvenc + szövegszerkesztõnkkel és írjuk be a + tartományokat, soronként egyet: + + saját.internet.szolgáltató.net +másik.internet.szolgáltató.com +felhasználók-internet.szolgáltató.ja +www.minta.org + + Innentõl kezdve a listában szereplõ + bármelyik géprõl tudunk levelet + küldeni (feltéve, hogy az adott + felhasználó hozzáfér a + gépünkhöz). Ezzel + gyönyörûen megoldhatjuk, hogy a + felhasználóink képesek legyenek + távolról is levelet küldeni a + rendszerünkön keresztül anélkül, + hogy mások pedig szemetet küldenének + át rajtunk. + + + + + + + + Komolyabb témák + + A következõ szakaszban szóba kerülnek + olyan komolyabb témák, mint például a + levelek konfigurációja és a levelezés + beállítása az egész tartomány + számára. + + + Alapvetõ beállítások + + + e-mail + beállítás + + + Alapból képesnek kell lennünk leveleket + küldeni külsõ gépekre egészen + addig, amíg az /etc/resolv.conf + állomány a megfelelõ + beállításokat tartalmazza vagy egy + saját névszervert futtatunk. Ha + szeretnénk, hogy a gépünkre + érkezõ levelek elérjék a &os;-s + gépünkön futó + levéltovábbító + ügynököt (például a + sendmail programot), akkor erre + két módszer kínálkozik: + + + + Futtassunk saját névszervert és + hozzunk létre magunknak egy tartományt. + Például FreeBSD.org. + + + + Közvetlenül a gépünkre + küldessük a leveleket. Ezt úgy + tehetjük meg, ha egybõl a + gépünkhöz tartozó DNS névre + küldetjük a leveleket. Például az + enyem.FreeBSD.org + címre. + + + + SMTP + + Függetlenül attól, hogy a fentiek + közül melyik megoldást választjuk, a + levelek csak akkor tudnak eljutni közvetlenül a + gépünkre, ha állandó, statikus + IP-címmel rendelkezünk (tehát nem dinamikus + címmel, amit általában a + betárcsázós PPP kapcsolatokhoz szoktak + kiosztani). Ha tûzfal mögött vagyunk, akkor + valamilyen módon felénk kell + irányítani az SMTP forgalmat is. Ha + közvetlenül a gépünkön akarjuk + fogadni a leveleket, akkor a következõ kettõ + közül az egyik mindenképpen kelleni fog: + + + MX rekord + + Gondoskodjunk róla, hogy a hozzánk + tartozó DNS-ben (legkisebb sorszámú) MX + rekord a gépünk IP-címére + mutat. + + + + Gondoskodjunk róla, hogy a hozzánk + tartozó DNS-ben nincs semmilyen MX rekord a + gépünkhöz. + + + + A fentiek közül bármelyik elég + ahhoz, hogy közvetlenül a gépünkre + érkezzen meg a levél. + + Próbáljuk ki: + + &prompt.root; hostname +enyem.FreeBSD.org +&prompt.root; host enyem.FreeBSD.org +enyem.FreeBSD.org has address 204.216.27.XX + + Ha ezt látjuk, akkor minden gond nélkül + lehet küldeni levelet a nevem@enyem.FreeBSD.org a címre + (feltételezve, hogy a sendmail + megfelelõen mûködik az enyem.FreeBSD.org címen). + + Ha viszont ehhez hasonlót tapasztalunk: + + &prompt.root; host enyem.FreeBSD.org +enyem.FreeBSD.org has address 204.216.27.XX +enyem.FreeBSD.org mail is handled (pri=10) by kozpont.FreeBSD.org + + A gépünkre (enyem.FreeBSD.org) küldött + összes levelet a kozpont szedi össze + ugyanazon felhasználói névvel ahelyett, + hogy közvetlenül a gépünkre küldeni + ezeket. + + Az iménti adatokat a DNS szerver határozza + meg. A levelek továbbításával + kapcsolatos információkat az + MX mint Mail + eXchange DNS-rekord tárolja. Ha + nincs ilyen MX rekord, akkor az IP-cím alapján + közvetlenül az adott géphez kerül a + levél. + + Például a freefall.FreeBSD.org MX rekordja + hajdanán így nézett ki: + + freefall MX 30 mail.crl.net +freefall MX 40 agora.rdrop.com +freefall MX 10 freefall.FreeBSD.org +freefall MX 20 who.cdrom.com + + Láthatjuk, hogy a freefall + esetében több MX bejegyzés is szerepel. A + legalacsonyabb MX-számú gép fogja kapni az + erre a címre beérkezõ leveleket, amennyiben + elérhetõ. Ha valamilyen okból nem + érhetõ el, akkor helyette ideiglenesen a + többiek (melyeket néha csak tartalék + MX-eknek neveznek) veszik át a levelet és + átadják a legalacsonyabb számúnak, + amint az újra elérhetõvé + válik. + + A tartalék jelleggel megadott MX gépek akkor + érnek ténylegesen valamit, ha teljesen + máshonnan csatlakoznak az internethez. Az internet + szolgáltató vagy egy ismerõsünk + gépe valószínûleg minden + további nélkül segít ennek + megoldásában. + + + + + Egy egész tartomány leveleinek + kezelése + + Egy levelezõ szerver + beállításához valahogy meg kell + tudnunk oldalni, hogy a különbözõ + munkaállomásokra küldött levelek + közvetlenül hozzá fussanak be. Alapvetõen + tehát arról lenne szó, hogy a + tartományunkon (ez ebben az esetben a *.FreeBSD.org) belüli gépekre + címzett levelekre ez a gép tart + igényt és így ezek ide + irányítódnak át, majd a + felhasználók errõl a központi + levelezõ szerverrõl kapják meg a + leveleiket. + + DNS + + Az életünk + megkönnyítéséhez minden + felhasználónak létrehozzuk a saját + felhasználói nevét a + levelezõ szerveren is. Ezt az &man.adduser.8; paranccsal + gyorsan el is végezhetjük. + + A levelezõ szerver lesz a hálózat + összes munkaállomásához kirendelt + levélváltó. Ezt a DNS + beállításai között így + adhatjuk meg: + + enyem.FreeBSD.org A 204.216.27.XX ; Munkaállomás + MX 10 kozpont.FreeBSD.org ; Levelezõ szerver + + Ezzel lényegében az A rekord figyelmen + kívül hagyásával + átirányítjuk a munkaállomások + számára érkezõ összes levelet a + levelezõ szerverre. A levelek tehát az MX rekord + által mutatott címre mennek ki. + + Ezt önállóan nem tudjuk elvégezni, + hacsak nem futattunk egy saját DNS szervert. Ha nincsen + vagy nem is tudunk DNS szervert futtatni, akkor ebben a + kérdésben egyeztessünk az + internet-szolgáltatónkkal vagy bárkivel, + aki a DNS beállításaiért + felelõs. + + Ha virtuális e-mail címket is kezelünk, + akkor a most következõ információ + még a hasznunkra lehet. A példa + kedvéért most feltesszük, hogy a + tartományunkban van egy ügyfelünk, jelen + esetben az ugyfel1.org, + és azt akarjuk, hogy az ugyfel1.org címére + küldött levelek a saját levelezõ + szerverünkre kerüljenek át, a level.sajat.com címre. A DNS-t + ehhez így kell beállítani: + + ugyfel1.org MX 10 level.sajat.com + + Ha csak az ugyfel1.org + levelezését akarjuk kezelni, akkor ahhoz + nem kell külön A rekord. + + + Vigyázzunk, mert az ugyfel1.org csak akkor + pingelhetõ, ha létezik hozzá A + rekord. + + + Befejezésül a levelezõ + szerverünkön futó + sendmail számára is fel + kell tárnunk, hogy milyen tartományokhoz + és/vagy hálózati nevekhez fogadjon + leveleket. Ezt több módon is + elvégezhetjük. A következõk + bármelyik megfelel erre a célra: + + + + A FEATURE(use_cw_file) + használata esetén vegyük fel a + címeket az + /etc/mail/local-host-names + állományba. Ha a + sendmail 8.10 elõtti + változatai esetében ehhez az + /etc/sendmail.cw + állományra lesz + szükségünk. + + + + Tegyük be a Cwsajat.cimunk.com + sort az /etc/sendmail.cf vagy a + sendmail 8.10 és + késõbbi változatai esetén az + /etc/mail/sendmail.cf + állományba. + + + + + + + + SMTP és az UUCP + + A &os;-hez tartozó sendmail + olyan gépek számára lett kialakítva, + amelyek közvetlenül az internethez csatlakoznak. Az + UUCP használatával levelezõ rendszerek + számára egy másik konfigurációs + állományt kell telepíteni a + sendmail számára. + + Az /etc/mail/sendmail.cf + állítása kézzel + egyáltalán nem könnyû. A + sendmail 8. változata + ráadásul a konfigurációs + állományokat az &man.m4.1; elõfeldolgozó + segítségével gyártja le, ahol a + tényleges beállítások egy magasabb + absztrakciós szinten jelennek meg. Az &man.m4.1; + típusú konfigurációs + állományok a + /usr/share/sendmail/cf + könyvtárban találhatóak. A + cf alkönyvtárban levõ + README állomány igyekszik a + felhasználót bevezetni az &man.m4.1; alapú + beállítások világába. + + A mailertable nevû + lehetõség használatával tudjuk a + legjobban támogatni az UUCP protokollon keresztüli + kézbesítést. Ezzel felépül egy + olyan adatbázis, amelyet a + sendmail fel tud használni a + továbbítást érintõ + döntésekben. + + Ehhez elsõként hozzuk is létre a + saját .mc állományunkat. + Ehhez a /usr/share/sendmail/cf/cf + könyvtár tartalmaz néhány + példát. Hívjuk most ezt az + állomnyunkat ize.mc néven. A + következõ módszerrel tudjuk egy valós + sendmail.cf állománnyá + alakítani: + + &prompt.root; cd /etc/mail +&prompt.root; make ize.cf +&prompt.root; cp ize.cf /etc/mail/sendmail.cf + + Egy átlagos .mc + állomány egyébként valahogy így + épül fel: + + VERSIONID(`verziószám') OSTYPE(bsd4.4) + +FEATURE(accept_unresolvable_domains) +FEATURE(nocanonify) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') + +define(`UUCP_RELAY', sajat.uucp.relay) +define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw sajat.al.nev +Cw azuucpgepneve.UUCP + + Az accept_unresolvable_domains, + nocanonify és + confDONT_PROBE_INTERFACES + lehetõségekre hivatkozó sorok + megakadályozzák, hogy a levél + kézbesítésében a DNS is szerepet + játsszon. Az UUCP_RELAY az UUCP + alapú kézbesítés + támogatását engedélyezi. + Egyszerûen csak írjunk ide egy internetes + hálózati nevet, amely képes feldolgozni az + .UUCP áltartomány címeit. Az esetek + többségében ide az + internet-szolgáltatónk levelek + továbbküldéséért felelõs + gépe kerül. + + Miután ezzel végeztünk, + szükségünk lesz még az + /etc/mail/mailertable + állományra is. Ha a külvilág + felé csak egyetlen összeköttetést + használunk a levelekhez, akkor az alábbi pontosan + megfelel: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +. uucp-dom:sajat.uucp.relay + + Egy bonyolultabb példa pedig így néz + ki: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 +horus.UUCP uucp-dom:horus +if-bus.UUCP uucp-dom:if-bus +. uucp-dom: + + Az elsõ három sor azokat a speciális + eseteket kezeli, ahol a tartomány felé + küldött levelek nem az alapértelmezett + úton visszük tovább, hanem valamelyik UUCP + szomszéd felé és így le tudjuk + rövidíteni a kézbesítés + útvonalát. Az ezeket követõ sor dolgozza + fel a helyi Ethernet tartomány felé STMP protokollal + továbbítható leveleket. Végül az + UUCP szomszédokat is felsoroljuk az .UUCP + áltartomány jelölése szerint, így + megengedjük, hogy a + uucp-szomszéd! + címzett + felülbírálja az alapértelmezett + szabályokat. Az utolsó sorban mindig egyetlen pont + szerepel, ami minden másra illeszkedik, így az UUCP + kézbesítés egy olyan UUCP szomszéd + felé halad, amely a világ felé egy + univerzális levelezõ átjárónak + tekinthetõ. A uucp-dom: kulcsszó + mögött szereplõ összes csomópont + nevének érvényes UUCP szomszédra kell + utalnia, amelyet a uuname paranccsal le is + tudunk ellenõrizni. + + A feladatból már csak annyi maradt hátra, + hogy használat elõtt ezt az állományt + át kell alakítani DBM adatbázis + formátumba. Az ehhez szükséges parancsot + érdemes mailertable + állomány elejére bejegyzésben + felírni. A mailertable + megváltoztatásakor mindig le kell futtatni ezt a + parancsot. + + Utolsó jótanács: ha nem lennénk + biztosak valamelyik kézbesítési + útvonal mûködésében, ne + felejtsük el a sendmail + beállítását. + Ezzel a sendmail az ún. + címtesztelõ módban + (address test mode) indul el. Gépeljük be, hogy + 3,0, majd írjuk be a tesztelni + kívánt címet. Az utolsó sorban + láthatjuk a felhasznált belsõ + levéltovábbító + ügynököt, a célgépet, amellyel ezt + meghívjuk, és a (valószínûleg az + átfordított) címet. Innen a CtrlD + billentyûkombinációval léphetünk + ki. + + &prompt.user; sendmail -bt +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +> 3,0 ize@pelda.com +canonify input: ize @ pelda . com +... +parse returns: $# uucp-dom $@ sajat.uucp.relay $: ize < @ pelda . com . > +> ^D + + + + + + + + Bill + Moran + Készítette: + + + + + Csak küldés + beállítása + + Gyakran elõfordulhat, hogy csak leveleket akarunk + továbbküldeni. Mint például: + + + + Asztali számítógépünk + van, de használni akarunk olyan programokat, mint + például a &man.send-pr.1;. Ehhez az + internet-szolgáltatón keresztül kell + továbbküldeni a levelet. + + + + A számítógépünk egy olyan + szerver, amely nem helyben kezeli a leveleket, ezért az + összeset átküldi feldolgozásra. + + + + Szinte bármelyik levélküldõ + ügynök képes betölteni ezt az ûrt. + Sajnos eléggé bonyolult helyesen + beállítani úgy egy bármire + képes levélküldõt, hogy egyszerûen + csak szabaduljon meg a levelektõl. Ilyenkor a + sendmail vagy a + postfix használatával + tulajdonképpen ágyúval lövünk + verébre. + + Továbbá, ha egy átlagos + internet-hozzáféréssel rendelkezünk, + adódhat, hogy a szerzõdés egyszerûen + tiltja a levelezõ szerver + futtatását. + + Legegyszerûbben úgy tudjuk + kielégíteni az ilyen jellegû igényeket, + ha feltelepítjük a mail/ssmtp portot. A + root felhasználóval adjuk ki a + következõ parancsokat: + + &prompt.root; cd /usr/ports/mail/ssmtp +&prompt.root; make install replace clean + + Telepítése után a mail/ssmtp portot a mindössze + négysoros + /usr/local/etc/ssmtp/ssmtp.conf + állománnyal állíthatjuk be: + + root=valodiemail@minta.com +mailhub=level.minta.com +rewriteDomain=minta.com +hostname=_GEPNEV_ + + A root felhasználó + számára feltétlenül egy valódi + e-mail címet adjuk meg. A level.minta.com helyére az + internet-szolgáltatónk kimenõ leveleket + továbbító szerverét adjuk meg + (bizonyos szolgáltatók ezt kimenõ + levelezõ szervernek vagy SMTP + szervernek nevezik). + + Ne felejtsük el sendmail + démont sem letiltani, beleértve a kimenõ + levelek kezelését. Ennek részleteit + lásd a ban. + + A mail/ssmtp + használatánál még adhatunk meg + további beállításokat is. A + /usr/local/etc/ssmtp + állományban vagy az ssmtp + man oldalán találhatunk példákat + és olvashatunk bõvebben a + témáról. + + Az ssmtp ilyen fajta + beállításával a + számítógépünkön levõ + szoftverek is helyesen fognak mûködni, miközben nem + sértjük meg az internet-szolgáltató + elõírásait és nem tesszük + lehetõvé, hogy a + számítógépünkrõl + levélszemetet küldhessenek. + + + + + Levelezés betárcsázós + kapcsolattal + + Ha statikus IP-címünk van, akkor az + alapértelmezett beállítások + tökéletesen megfelelõek számunkra. + Csupán a gépünkhöz tartozó + internetes címet kell megadnunk a gépünk + nevének és a sendmail + elvégzi a többit. + + Ha viszont dinamikusan kiosztott IP-címmel + rendelkezünk és betárcsázós + PPP kapcsolaton keresztül csatlakozunk az + internethez, akkor valószínûleg az + internet-szolgáltató levelezõ szerverén + van egy postaládánk. Most tegyük fel, hogy a + internet-szolgáltató tartománya a szolgaltato.net és a + felhasználói név a + felhasznalo, a gépünk neve pedig + otthoni.bsdm, valamint az + internet-szolgáltató részérõl + levelezésre a + relay.szolgaltato.net gépet + használhatjuk. + + A postaládánkból úgy tudjuk + letölteni a leveleket, ha telepítünk hozzá + egy programot. Erre a feladatra a + fetchmail hibátlanul alkalmas, + mivel több különbözõ protokollt ismer. + Ez a program csomagként vagy a + Portgyûjteménybõl (mail/fetchmail) is elérhetõ. + Az internet-szolgáltatók erre + általában a POP protokollt + ajánlják fel. Ha a felhasználói + PPP alkalmazást használjuk, + állítsuk be az + /etc/ppp/ppp.linkup állományt a + következõ módon és így a + csatlakozáskor maguktól letöltõdnek a + leveleink: + + MYADDR: + !bg su felhasznalo -c fetchmail + + Ha a sendmail + segítségével küldjük tovább + a leveleket a nem helyi hozzáférések + felé (ahogy azt lentebb is láthatjuk), akkor minden + bizonnyal a csatlakozáskor arra is + szükségünk lesz, hogy a leveleket + tároló sor is feldolgozódjon. Ezt úgy + oldhatjuk meg, ha az /etc/ppp/ppp.linkup + állományba a fetchmail parancs + után a következõt tesszük: + + !bg su felhasznalo -c "sendmail -q" + + Ez a példa feltételezi, hogy az otthoni.bsdm gépen van egy + felhasznalo nevû + felhasználónk. Az otthoni.bsdm gépen a + felhasznalo felhasználói + könyvtárában hozzunk létre egy + .fetchmailrc állományt: + + poll szolgaltato.net protocol pop3 fetchall pass TitkosJelszo + + Ezt az állományt csak és + kizárólag a felhasznalo + olvashatja, mivel szerepel benne a hozzátartozó + TitkosJelszo. + + Úgy tudunk a megfelelõ from: + fejléccel küldeni, ha felvilágosítjuk a + sendmail programot, hogy ne az + felhasznalo@otthoni.bsdm címet, hanem a + felhasznalo@szolgaltato.net címet + használja. Sõt, a gyorsítás + kedvéért a sendmail + számára érdemes elárulni, hogy a + relay.szolgaltato.net címen + keresztül küldjön. + + A munka elvégzéséhez elegendõ az + alábbi .mc + állomány: + + VERSIONID(`otthoni.bsdm.mc 1.0') +OSTYPE(bsd4.4)dnl +FEATURE(nouucp)dnl +MAILER(local)dnl +MAILER(smtp)dnl +Cwlocalhost +Cwotthoni.bsdm +MASQUERADE_AS(`szolgaltato.net')dnl +FEATURE(allmasquerade)dnl +FEATURE(masquerade_envelope)dnl +FEATURE(nocanonify)dnl +FEATURE(nodns)dnl +define(`SMART_HOST', `relay.szolgaltato.net') +Dmotthoni.bsdm +define(`confDOMAIN_NAME',`otthoni.bsdm')dnl +define(`confDELIVERY_MODE',`deferred')dnl + + Az elõzõ szakaszban találhatjuk meg annak a + módját, hogy miként varázsoljunk + ebbõl az .mc + állományból egy + sendmail.cf állományt. A + sendmail.cf frissítése + után pedig ne felejtsük el a + sendmail + újraindítását! + + + + + + + + James + Gorham + Írta: + + + + + Az SMTP hitelesítése + + Levelezõ szerverünkön az + SMTP protokoll + hitelesítésének (SMTP + Authentication) engedélyezése több + szempontból is elõnyökkel bír. Az + SMTP hitelesítésének + bekapcsolása egy újabb réteget képez a + sendmail védelmében, + és az olyan állandóan mozgásban + levõ felhasználók számára is + megoldást nyújt, akik anélkül + képesek használni ugyanazt a levelezõ szervert, + hogy minden alkalommal újrakonfigurálnák a + levelezõ kliensüket. + + + + Telepítsük fel a security/cyrus-sasl2 portot. A + security/cyrus-sasl2 port + több fordítási idejû + beállítást támogat. Itt most az + SMTP hitelesítését + fogjuk használni, ezért gondoskodjunk a + opció + engedélyezésérõl. + + + + A security/cyrus-sasl2 + telepítés után nyissuk meg + szerkesztésre a + /usr/local/lib/sasl2/Sendmail.conf + állományt (vagy ha még nem + létezne, hozzuk létre), és benne + vegyük fel a következõ sort: + + pwcheck_method: saslauthd + + + + Ezt követõen telepítsük a security/cyrus-sasl2-saslauthd + portot, és tegyük bele az + /etc/rc.conf állományba ezt + a sort: + + saslauthd_enable="YES" + + Végezetül indítsuk el a saslauthd + démont: + + &prompt.root; /usr/local/etc/rc.d/saslauthd start + + Ez a démon fog közvetíteni a + sendmail és a &os; + passwd adatbázisa közti + hitelesítésben. Ezzel elkerülhetjük + az új felhasználói nevek és + jelszavak felvételét az SMTP + hitelesítés használatához, + így a hozzáférések és a + levelezés jelszava ugyanaz marad. + + + + Most pedig írjuk hozzá az alábbi + sorokat az /etc/make.conf + állományhoz: + + SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL +SENDMAIL_LDFLAGS=-L/usr/local/lib +SENDMAIL_LDADD=-lsasl2 + + Ezek a sorok állítják be a + sendmail számára, + hogy fordítás közben a cyrus-sasl2 függvényeit + használja. A sendmail + újrafordítása elõtt + mindenképpen legyen fenn a cyrus-sasl2 port. + + + + A sendmail + újrafordítását a + következõ parancsok + végrehajtásával intézhetjük + el: + + &prompt.root; cd /usr/src/lib/libsmutil +&prompt.root; make cleandir && make obj && make +&prompt.root; cd /usr/src/lib/libsm +&prompt.root; make cleandir && make obj && make +&prompt.root; cd /usr/src/usr.sbin/sendmail +&prompt.root; make cleandir && make obj && make && make install + + A sendmail + fordítása esetén semmilyen + problémának nem szabadna elõfordulnia, + kivéve ha a /usr/src + könyvtárat és a szükséges + osztott könyvtárakat nem változtatjuk + idõközben túlságosan gyakran. + + + + A sendmail + lefordítása és + újratelepítése után + szerkesszük át az + /etc/mail/freebsd.mc + állományt (vagy azt az .mc + állományt, amelyet éppen + használunk). Sok rendszergazda a &man.hostname.1; + parancs válaszát használja fel az + .mc típusú + állományok egyedi elnevezéséhez). + Írjuk bele a következõ sorokat: + + dnl set SASL options +TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl +define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl + + Ezek állítják be a + sendmail számára a + felhasználók hitelesítésére + alkalmas különbözõ módszereket. Ha + a pwcheck módszer helyett + valami mást akarunk használni, akkor + járjunk utána a + dokumentációban. + + + + Zárásul futassuk le a &man.make.1; parancsot + az /etc/mail könyvtárban. + Így lefut az új .mc + állományunk és létrejön egy + freebsd.cf (vagy amilyen nevet az + .mc állománynak megadtunk) + .cf állomány. + Ezután a make install restart + parancs kiadásával másoltassuk át + ezt a sendmail.cf helyére + és szabályosan indítassuk újra a + sendmail + szolgáltatást. A folyamatról + részletesebb tájékoztatást az + /etc/mail/Makefile állomány + tud nyújtani. + + + + Ha eddig minden a legnagyobb rendben történt, + akkor most már képesek vagyunk bejelentkezési + információt is átadni a levelezõ + kliensnek és elküldeni egy tesztüzenetet. A + hibák kiszûréséhez + állítsuk a sendmail + opcióját az 13 + értékre és figyeljük a + /var/log/maillog + állományt. + + További felvilágosításért + olvassuk el a sendmail + SMTP hitelesítéssel + foglalkozó oldalát (angolul). + + + + + + + + Marc + Silver + Készítette: + + + + + Levelezõ kliensek + + levelezõ kliensek + + A levelezõ kliens (Mail User Agent, + MUA) egy olyan alkalmazás, amelyik + elektronikus levelek küldésére és + fogadására használható. + Azonkívül, ahogy az e-mail + fejlõdik és egyre bonyolultabbá + válik, a levelezõ kliensek is egyre inkább + erõsebbé válnak abban a tekintetben, ahogy az + e-maileket kezelik. Ezzel együtt a + felhasználók is egyre több + lehetõséget és rugalmasságot kapnak. A + &os; számos levelezõ klienst támogat, + mindegyikük könnyedén telepíthetõ a + &os; Portgyûjteménye + segítségével. A felhasználók + választhatnak a grafikus kliensek, mint + például az evolution vagy + a balsa és a konzolos kliensek, + például a mutt, + pine vagy mail + között, esetleg használhatják a nagyobb + szervezetek részérõl felkínált + webes felületeket is. + + + mail + + A &man.mail.1; a &os; alapértelmezett levelezõ + kliense. Egy olyan konzolos alkalmazás, amelyben + elérhetjük az e-mailek küldéséhez + és fogadásához szükséges + összes alapvetõ funkciót, habár a + csatolmányokat csak korlátozottan képes + kezelni és csak a helyi postaládákat + kezeli. + + Annak ellenére, hogy a mail + önmaga nem képes kommunikálni + POP vagy IMAP + szerverekkel, az ilyen postaládák tartalmát + egy fetchmail-szerû + alkalmazással (lásd ) le tudjuk tölteni a + számára is elérhetõ helyi + mbox állományba. + + A levelek küldéséhez és + fogadásához egyszerûen hívjuk be a + mail programot a következõ + módon: + + &prompt.user; mail + + Ezután a /var/mail könyvtárban + található felhasználói + postaládánk tartalmát automatikusan + beolvassa a mail segédprogram. Ha a + postaláda üres, akkor a program egybõl befejezi + futását és közli, hogy nem + talált levelet. Amikor viszont tudott beolvasni + leveleket, megjelenik egy felület, ahol a beérkezett + üzenetek listáját láthatjuk. Az + üzenetek automatikusan sorszámozódnak, ahogy + ezt az alábbi példa is szemlélteti: + + Mail version 8.1 6/6/93. Type ? for help. +"/var/mail/marcs": 3 messages 3 new +>N 1 root@localhost Mon Mar 8 14:05 14/510 "proba" + N 2 root@localhost Mon Mar 8 14:05 14/509 "felhasznaloi hozzaferes" + N 3 root@localhost Mon Mar 8 14:05 14/509 "minta" + + Az üzenetek olvasásának a + t paranccsal kezdhetünk neki, amelyet az + elolvasandó üzenet sorszáma követ. + Ebben a példában az elsõ e-mailt nyitjuk + meg: + + & t 1 +Message 1: +From root@localhost Mon Mar 8 14:05:52 2004 +X-Original-To: marcs@localhost +Delivered-To: marcs@localhost +To: marcs@localhost +Subject: proba +Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) +From: root@localhost (Charlie Root) + +Ezt az uzenetet probabol kuldom, valaszolj ra, ha megkaptad. + + Ahogy az a fenti példából is + látszik, a t billentyû + hatására az üzenet a teljes + fejlécével együtt jelenik meg. Az + üzenetek listáját a h + billentyûvel hozhatjuk vissza. + + Ha egy levélre válaszolni szeretnénk, + akkor ezt a mail paranccsal is + megtehetjük, vagy az R vagy az + r parancsokkal. Az R arra + utasítja a mail programot, hogy csak + az üzenet küldõjének válaszoljon, + míg az r hatására nem + csupán a küldõ, hanem az üzenet + összes címzettje megkapja a válaszunkat. A + parancshoz hozzátûzhetjük egy levél + sorszámát is, ekkor az adott levélre fogunk + válaszolni. Miután kiadtuk a parancsot, + írjuk meg a válaszunkat és új sorban + kezdve zárjuk le az üzenetet egyetlen + . beírásával. Valahogy + így: + + & R 1 +To: root@localhost +Subject: Re: proba + +Koszonom, megkaptam a leveledet. +. +EOT + + Új levelet az m + segítségével tudunk küldeni, ami + után meg kell adnunk a címzettet. Egyszerre + több címzettet is meg tudunk adni, ha a + címzett helyén címeiket egy + , karakterrel elválasztva soroljuk fel. + Ezután a levél témája is + megadható, amit végül a levél + szövege követ. Az üzenetet egy új sorban + megadott egyetlen . + segítségével zárhatjuk le. + + & mail root@localhost +Subject: Elsajatitottam a mail hasznalatat + +Most mar en is tudok levelet irni es fogadni a mail hasznalataval... :) +. +EOT + + Amikor a mail segédprogramban + vagyunk, a ? használatával + bármikor segítséget kérhetünk, + valamint a mail + mûködésével kapcsolatban a &man.mail.1; + man oldalát érdemes felkeresni. + + + Ahogy azt már korábban is + említettük, a &man.mail.1; parancsot eredetileg + nem készítették fel az csatolt + állományok kezelésére, + ezért igen gyengén bánik velük. Az + újabb levelezõ kliensek, mint + például a mutt, a + csatolt állományokat sokkal intelligensebb + módon kezelik. Ha viszont ragaszkodunk a + mail használatához, akkor a + converters/mpack port + használatát érdemes megfontolnunk. + + + + + + mutt + + A mutt apró mérete + ellenére egy igen komoly levelezõ kliens és + remek lehetõségeket ajánl fel. Íme + ízelítésképpen + közülük néhány: + + + + Képes az üzeneteket szálakba + rendezni + + + + Az e-mailek titkosítására és + elektronikus aláírására + támogatja a PGP használatát + + + + MIME támogatás + + + + Maildir támogatás + + + + Nagyfokú testreszabhatóság + + + + Ezen lehetõségei révén a + mutt ez egyik legfejlettebb + levelezõ kliens. A mutt + részletesebb bemutatását a címen találjuk + (angolul). + + A mutt stabil változata a + mail/mutt port + használatával telepíthetõ fel, + miközben a fejlesztés alatt levõ + változatot a mail/mutt-devel port telepíti. + Miután a portot sikerült felraknunk, a + mutt az alábbi parancs + begépelésével indítható + el: + + &prompt.user; mutt + + A mutt indulása + után automatikusan beolvassa a /var/mail könyvtárban + megtalálható felhasználói + postaládát és ha lehetséges, akkor + megjeleníti a tartalmát. Ha nincsen levél + a felhasználó postaládájában, + akkor a mutt a + felhasználó parancsaira vár. Ezen a + képen a mutt + üzenetlistája látható: + + + + + + + + A levelek elolvasásához egyszerûen csak + válasszuk ki a kurzorral és nyomjuk meg az + Enter billentyût. Ezután a + mutt így mutatja a + levelet: + + + + + + + + Ahogy azt már a &man.mail.1; parancsnál is + megszokhattuk, a mutt is + lehetõvé teszi, hogy vagy csak a küldõnek, + vagy pedig rajta kívül még az összes + címzettnek is válaszoljunk. A levél + küldõjének az r + lenyomásával tudunk válaszolni. A + csoportos válaszadáshoz pedig, ahol tehát a + küldõn kívül a címzettek is + megkapják a levelünket, a g + billentyût kell használni. + + + A mutt az e-mailek + létrehozásához és + megválaszolásához a &man.vi.1; + szövegszerkesztõt használja. Ezt úgy + tudjuk átállítani, ha a + könyvtárunkban található + .muttrc állományban + átírjuk az editor + változót, vagy értéket adunk az + EDITOR környezeti + változónak. A mutt + beállításáról többet a + címen + tudhatunk meg. + + + Egy új levél megírásához + nyomjuk le az m gombot. Miután + elláttuk érvényes témával a + levelet, a mutt elindítja a + &man.vi.1; szövegszerkesztõt és + nekiláthatunk a levél szövegének. + Amint befejeztük, mentsük el és + lépjünk ki a vi + szerkesztõbõl. Ezután visszakapjuk a + mutt felületét, ahol a + küldendõ e-mail összefoglalását + láthatjuk. A levelet végül az + y lenyomásával + küldhetjük el. Erre a következõ + képen láthatunk egy példát: + + + + + + + + A mutt ezenkívül + még rengeteg segítséget is tartalmaz, + amelyet a legtöbb menübõl a ? + gomb lenyomásával érhetünk el. A + felsõ sorban mindig láthatjuk a kiadható + parancsok rövid összefoglalását. + + + + + pine + + A pine alapvetõen a + kezdõ felhasználók számára + íródott, de számos komolyabb + lehetõséget is támogat. + + + A pine szoftverrel kapcsolatban + a múltban már rengeteg távolról + kihasználható sebezhetõség + látott napvilágot, és ennek + köszönhetõen a támadók + megfelelõen elõkészített e-mailek + segítségével tetszõleges + kódot tudnak futtatni a rendszeren levõ helyi + felhasználókon keresztül. Noha az + összes ilyen ismert hibát + javították, de a &os; biztonsági tisztje + szerint a pine kódját + biztonság szempontjából annyira hanyag + módon írták, hogy további, eddig + még felfedezetlen sebezhetõségeket is + magában rejt. Ennek megfelelõen tehát a + pine használata mindenkinek + csak saját felelõsségre javasolt. + + + A pine jelenlegi verziója + a mail/pine4 porton + keresztül telepíthetõ. A + telepítés lezajlása után a + pine a következõ paranccsal + indítható: + + &prompt.user; pine + + A pine elsõ futtatása + során egy üdvözlõ üzenetet és + egy rövid bemutatkozást jelenít meg, valamint + a pine fejlesztõi arra + kérik a felhasználókat, hogy küldjenek + nekik egy névtelen üzenetet, amibõl le + tudják szûrni mennyien használják a + kliensüket. A névtelen üzenet + elküldéséhez a Enter + lenyomásával járulhatunk hozzá vagy + az E használatával + enélkül tudunk kilépni a + képernyõrõl. Ezt az üdvözlõ + képernyõt itt láthatjuk: + + + + + + + + A felhasználó ezután a + fõmenübe kerül, ahol a kurzorbillentyûkkel + minden gond nélkül tudunk mozogni. Ebben a + fõmenüben a levelek megírására, a + leveleket tároló könyvtárak + tallózására vagy éppen a + címjegyzék karbantartására + gyorsbillentyûket is használhatuk. A + fõmenü alatt szerepel az adott menüben + végrehajtható feladatokhoz tartozó + gyorsbillentyûk rövid felsorolása. + + A pine + alapértelmezés szerint az inbox könyvtárat nyitja + meg. A bennelévõ üzenetek + listájának megtekintéséhez nyomjuk a + I gombot vagy válasszuk ki a lentihez + hasonló módon a MESSAGE + INDEX menüpontot: + + + + + + + + Az üzenetek listájában az adott + könyvtárban található üzenetek + láthatjuk, és köztük a + kurzorbillentyûkkel mozoghatunk. A kiemelt üzenet az + Enter lenyomásával + olvasható el. + + + + + + + + A lenti képen egy ilyen példa üzenetet + láthatunk a pine programban. + A rendelkezésünkre álló + gyorsbillentyûk ilyenkor is a képernyõ + alján megjelennek referenciaként. Ilyen + gyorsbillentyû többek közt az r + gomb, amelynek hatására a klienssel + megválaszolhatjuk a éppen látható + üzenetet. + + + + + + + + A pine kliensen belül a + pico szövegszerkesztõ + segítségével tudunk megválaszolni + egy e-mailt, amely alapból a + pine mellé települ. A + pico megkönnyíti a + navigációt az üzenetekben és sokkal + elnézõbb a kezdõ felhasználókkal, + mint például a &man.vi.1; vagy a &man.mail.1;. Ha + befejeztük a választ, az üzenetet a CtrlX + billentyûkombinációval tudjuk elküldeni. + A pine erre + megerõsítést fog kérni. + + + + + + + + A pine alkalmazás a + fõmenübõl elérhetõ + SETUP menüpont + meghívásával szabható testre. A + további részleteket a oldalon + találhatjuk (angolul). + + + + + + + + + Marc + Silver + Írta: + + + + + A fetchmail használata + + fetchmail + + A fetchmail egy mindentudó + IMAP és POP kliens, + amely lehetõvé teszi a felhasználók + számára, hogy automatikusan töltsenek le + leveleket távoli IMAP és + POP szerverekrõl és + lementsék azokat a helyi postaládáikba. + Így a levelek sokkal könnyebben + elérhetõek. A fetchmail a + mail/fetchmail port + segítségével telepíthetõ, + és számos lehetõséget ajánl fel, + többek közt: + + + + A POP3, APOP, + KPOP, IMAP, + ETRN és az ODMR + protokollok ismerete. + + + + Képes SMTP + használatával levelet továbbítani, + és ennek révén a szûrés, + továbbküldés és az álnevek + használata a megszokott módon + mûködik. + + + + Démonként futtatva képes adott + idõközönként ellenõrizni a frissen + érkezõ üzeneteket. + + + + Képes egyszerre több postaládát + is kezelni, majd ezek tartalmát a + beállításainak megfelelõen + továbbküldeni a különbözõ + helyi felhasználóknak. + + + + Noha a fetchmail összes + lehetõségének aprólékos + bemutatása meghaladná ennek a + leírásnak a kereteit, azért szót + kerítünk néhány alapvetõ + funkciójára. A fetchmail + segédprogramnak a megfelelõ + mûködéshez egy .fetchmailrc + nevû konfigurációs állományra van + szüksége. Ez az állomány tárolja + a szerverekre vonatkozó, valamint a bejelentkezéshez + szükséges információkat. Az + állomány kényes tartalmára tekintettel + azt javasoljuk, hogy csak a tulajdonosának + engedélyezzük az olvasását: + + &prompt.user; chmod 600 .fetchmailrc + + Az alább ismertetésre kerülõ + .fetchmailrc állományban azt + láthatjuk, ahogy egyetlen felhasználó + postaládáját érjük el a + POP protokoll használatával. + Arra utasítja a fetchmail + programot, hogy csatlakozzon a levelezes.com címre a + joska felhasználóval és + az XXX jelszóval. Ebben a + példában feltételezzük, hogy a + joska nevû felhasználó + létezik a rendszerünkben is. + + poll levelezes.com protocol pop3 username "joska" password "XXX" + + A következõ példában több + POP és IMAP + szerverhez csatlakozunk és ahol lehet, több helyi + felhasználónak irányítjuk át a + leveleket: + + poll levelezes.com proto pop3: +user "joska", with password "XXX", is "jozsi" here; +user "andrea", with password "XXXX"; +poll levelezes2.net proto imap: +user "jani", with password "XXXXX", is "hardstuff" here; + + A fetchmail program a + beállítás + megadásával démonként is + elindítható, amely után meg kell adni + (másodpercekben) azt az idõközt, aminek + elteltével a fetchmail + lekérdi a .fetchmailrc + állományban felsorolt szervereket. Az alábbi + példában a fetchmail + 600 másodpercenként kéri el a + leveleket: + + &prompt.user; fetchmail -d 600 + + A fetchmail további + lehetõségeirõl és + mûködésérõl a oldalon olvashatunk + (angolul). + + + + + + + + Marc + Silver + Írta: + + + + + A procmail használata + + procmail + + A procmail segédprogram egy + hihetetlenül erõs alkalmazás, mellyel a + beérkezõ leveleinket tudjuk szûrni. A + felhasználók számára olyan + szabályok megadását teszi + lehetõvé, amelyekre aztán a rendszer illeszti a + bejövõ leveleket, és az eredménynek + megfelelõen elvégez bizonyos feladatokat vagy + átirányítja a levelet más + postaladákba és/vagy e-mail címekre. A + procmail a mail/procmail porttal + telepíthetõ fel. Miután ez sikerült, + akár közvetlenül be is + építhetjük a legtöbb levelezõ + kliensbe. Errõl az adott levelezõ kliens + dokumentációjában olvashatunk többet. A + procmail úgy is + integrálható, ha a felvesszük a + következõ sort a procmail + szolgáltatára igényt tartó + felhasználó könyvtárában + található .forward + állományba: + + "|exec /usr/local/bin/procmail || exit 75" + + A következõ szakaszban láthatjuk a + procmail néhány + alapvetõ szabályát, valamint ezek rövid + leírását. Ezeket a szabályokat a + .procmailrc állományba kell + beleírni, amely szintén a felhasználó + könyvtárában leledzik. + + Ezen szabályok többsége a + &man.procmailex.5; man oldalon is olvasható. + + A felhasznalo@levelezes.com címrõl + érkezõ leveleket irányítsuk át a + jocim@levelezes2.com külsõ + címre: + + :0 +* ^From.*felhasznalo@levelezes.com +! jocim@levelezes2.com + + Minden 1000 byte-nál kisebb levelet küldjünk + át a jocim@levelezes2.com + külsõ címre: + + :0 +* < 1000 +! jocim@levelezes2.com + + Küldjük át az összes + masik@levelezes.com címre küldött + levelet a masik + postaládába: + + :0 +* ^TOmasik@levelezes.com +masik + + Küldjük az összes olyan levelet a + /dev/null eszközre, amelyek a + témájában szerepel a Spam + szó: + + :0 +^Subject:.*Spam +/dev/null + + Egy hasznos szabály, amellyel el tudjuk kapni a &os;.org levelezési + listáiról érkezõ leveleket és el + tudjuk raktározni ezeket a saját + postaládájukba: + + :0 +* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG +{ + LISTNAME=${MATCH} + :0 + * LISTNAME??^\/[^@]+ + FreeBSD-${MATCH} +} + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/mail/mutt1.scr b/hu_HU.ISO8859-2/books/handbook/mail/mutt1.scr new file mode 100644 index 0000000000..b8889a0084 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/mutt1.scr @@ -0,0 +1 @@ +SCRSHOT_Pqp:pQpupiptp p pdp:pDpeplp p pup:pUpnpdpeplp p psp:pSpapvpep p pmp:pMpapiplp p prp:pRpeppplpyp p pgp:pGprpopuppp p p?p:pHpeplppp p p p p p p p p p p p p p p p p p p p1p pNp p p pMpaprp p0p9p pSpupppeprp-pUpspeprp p p p p p p(p p p p1p)p ppprpopbpap p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p   2 N   Mar 09 Super-User      (   1) hozzaferes                                  3 N   Mar 09 Super-User      (   1) minta                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -p*p-pMpuptptp:p p/pvpaprp/pmpapiplp/pmpaprpcpsp p[pMpspgpsp:p3p pNpepwp:p3p p1p.p6pKp]p-p-p-p(pdpaptpep/pdpaptpep)p-p-p-p-p-p-p-p-p-p-p-p-p-p-p(paplplp)p-p-p-p                                                                                 \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mail/mutt2.scr b/hu_HU.ISO8859-2/books/handbook/mail/mutt2.scr new file mode 100644 index 0000000000..7ec414ae7c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/mutt2.scr @@ -0,0 +1 @@ +SCRSHOT_Pip:pEpxpiptp p p-p:pPprpepvpPpgp p pp:pNpepxptpPpgp pvp:pVpipepwp pAptptpapcphpmp.p p pdp:pDpeplp p prp:pRpeppplpyp p pjp:pNpepxptp p?p:pHpeplppp pX-Original-To: marcs@localhost                                                  Delivered-To: marcs@localhost                                                   To: marcs@localhost                                                             Subject: proba                                                                  Date: Tue,  9 Mar 2004 10:28:36 +0200 (SAST)                                    From: Super-User <root@localhost>                                                                                                                               Ez egy proba uzenet. Ha megkaptad, kerlek, valaszolj!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           -pNp p p-p p1p/p1p:p pSpupppeprp-pUpspeprp p p p p p p p p p p p p ptpepsptp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p-p-p p(paplplp)p p                                                                                 \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mail/mutt3.scr b/hu_HU.ISO8859-2/books/handbook/mail/mutt3.scr new file mode 100644 index 0000000000..1b2909dd7f --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/mutt3.scr @@ -0,0 +1 @@ +SCRSHOT_Pyp:pSpepnpdp p pqp:pApbpoprptp p ptp:pTpop p pcp:pCpCp p psp:pSpupbpjp p pap:pAptptpapcphp pfpiplpep p pdp:pDpepspcprpippp p p?p:pHpeplppp p p p p p p p p p p p    From: Marc Silver <marcs@localhost>                                               To: Super-User <root@localhost>                                                 Cc:                                                                            Bcc:                                                                        Subject: Re: proba                                                             Reply-To:                                                                            Fcc:                                                                       Security: Clear                                                                                                                                                                                                                                 -p-p pAptptpapcphpmpepnptpsp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p-p pIp p p p p p1p p/ptpmppp/pmpuptptp-pbpspdp-pcp0phpopbpspcpQp p p p p p p p p p p p p p[ptpepxptp/ppplpapipnp,p p7pbpiptp,p pupsp-papspcpipip,p p1p.p1pKp]p p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -p-p pMpuptptp:p pCpopmpppopspep p p[pAppppprpopxp.p pmpspgp pspipzpep:p p1p.p1pKp p p pAptptpsp:p p1p]p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p-p                                                                                 \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mail/pine3.scr b/hu_HU.ISO8859-2/books/handbook/mail/pine3.scr new file mode 100644 index 0000000000..60be44f5d5 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/pine3.scr @@ -0,0 +1 @@ +SCRSHOT_P p pPpIpNpEp p4p.p5p8p p p pMpEpSpSpApGpEp pIpNpDpEpXp p p p p p p p p p p p p p p p p p pFpoplpdpeprp:p pIpNpBpOpXp p pMpepspspapgpep p1p popfp p3p pApNpSp p p                                                                                 p pAp p p p1p pMpaprp p p9p pSpupppeprp-pUpspeprp p p p p p p p p p p p(p4p7p1p)p ppprpopbpap p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p  A   2 Mar  9 Super-User           (479) hozzaferes                              A   3 Mar  9 Super-User           (473) minta                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ?p Help       

p [ViewMsg]  Np NextMsg     Spppcp NextPage Up Undelete   Fp Forward      \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mail/pine4.scr b/hu_HU.ISO8859-2/books/handbook/mail/pine4.scr new file mode 100644 index 0000000000..dc5969e923 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/pine4.scr @@ -0,0 +1 @@ +SCRSHOT_P p pPpIpNpEp p4p.p5p8p p p pMpEpSpSpApGpEp pTpEpXpTp p p p p p p p p p p p p p p pFpoplpdpeprp:p pIpNpBpOpXp p pMpepspspapgpep p1p popfp p3p pApLpLp pApNpSp p p                                                                                Date: Tue,  9 Mar 2004 10:28:36 +0200 (SAST)                                    From: Super-User <root@localhost>                                               To: marcs@localhost                                                             Subject: proba                                                                                                                                                  Ez egy proba uzenet. Ha megkaptad, kerlek, valaszolj!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           [pApLpLp popfp pmpepspspapgpep]p                                ?p Help       

p ViewAttch  Np NextMsg     Spppcp NextPage Up Undelete   Fp Forward      \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mail/pine5.scr b/hu_HU.ISO8859-2/books/handbook/mail/pine5.scr new file mode 100644 index 0000000000..8f0d4ae531 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mail/pine5.scr @@ -0,0 +1 @@ +SCRSHOT_P p pPpIpNpEp p4p.p5p8p p p pCpOpMpPpOpSpEp pMpEpSpSpApGpEp pRpEpPpLpYp p p p p p p p p p p p p p p p p pFpoplpdpeprp:p pIpNpBpOpXp p p3p pMpepspspapgpepsp p p p                                                                                To      : Super-User <root@localhost>                                           Cc      :                                                                       Attchmnt:                                                                       Subject : Re: proba                                                             -p-p-p-p-p pMpepspspapgpep pTpepxptp p-p-p-p-p-p                                                                                                                                        Megkaptam az uzeneted...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^pGp Get Help  ^pXp Send      ^pRp Read File ^pYp Prev Pg   ^pKp Cut Text  ^pOp Postpone    ^pCp Cancel    ^pJp Justify   ^pWp Where is  ^pVp Next Pg   ^pUp UnCut Text^pTp To Spell     \ No newline at end of file diff --git a/hu_HU.ISO8859-2/books/handbook/mirrors/Makefile b/hu_HU.ISO8859-2/books/handbook/mirrors/Makefile new file mode 100644 index 0000000000..ad5c0e2abe --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mirrors/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= mirrors/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml new file mode 100644 index 0000000000..94e93bc0d5 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml @@ -0,0 +1,4129 @@ + + + + + A &os; beszerzése + + + CD és DVD kiadók + + + Kiskereskedelmi dobozos termékek + + A &os; beszerezhetõ számos + kiskereskedõtõl dobozos termék + formájában is (&os; CD-k, egyéb szoftverek + és nyomtatott dokumentáció): + + + +

+ CompUSA + WWW: +
+ + + +
+ Frys Electronics + WWW: +
+
+ + + + + CD- és DVD-készletek + + &os; CD- és DVD-készletek rengeteg + helyrõl rendelhetõek: + + + +
+ BSD Mall (Daemon News) + PO Box 161 + Nauvoo, IL 62354 + Egyesült Államok + Telefon: +1 866 273-6255 + Fax: +1 217 453-9956 + e-mail: sales@bsdmall.com + WWW: +
+
+ + +
+ BSD-Systems + e-mail: info@bsd-systems.co.uk + WWW: +
+
+ + +
+ FreeBSD Mall, Inc. + 3623 Sanford Street + Concord, CA 94520-1405 + Egyesült Államok + Telefon: +1 925 240-6652 + Fax: +1 925 674-0821 + e-mail: info@freebsdmall.com + WWW: +
+
+ + +
+ Dr. Hinner EDV + St. Augustinus-Str. 10 + D-81825 München + Németország + Telefon: (089) 428 419 + WWW: +
+
+ + +
+ Ikarios + 22-24 rue Voltaire + 92000 Nanterre + Franciaország + WWW: +
+
+ + +
+ JMC Software + Írország + Telefon: 353 1 6291282 + WWW: +
+
+ + +
+ Linux CD Mall + Private Bag MBE N348 + Auckland 1030 + Új-Zéland + Telefon: +64 21 866529 + WWW: +
+
+ + +
+ The Linux Emporium + Hilliard House, Lester Way + Wallingford + OX10 9TA + Egyesült Királyság + Telefon: +44 1491 837010 + Fax: +44 1491 837016 + WWW: +
+
+ + +
+ Linux+ DVD Magazine + Lewartowskiego 6 + Warsaw + 00-190 + Lengyelország + Telefon: +48 22 860 18 18 + e-mail: editors@lpmagazine.org + WWW: +
+
+ + +
+ Linux System Labs Australia + 21 Ray Drive + Balwyn North + VIC - 3104 + Ausztrália + Telefon: +61 3 9857 5918 + Fax: +61 3 9857 8974 + WWW: +
+
+ + +
+ LinuxCenter.Ru + Galernaya utca, 55 + Szentpétervár + 190000 + Oroszország + Telefon: +7-812-3125208 + e-mail: info@linuxcenter.ru + WWW: +
+
+ +
+
+ + + Terjesztõk + + Ha viszonteladók vagyunk és szeretnénk + CD-s &os; termékeket forgalmazni, akkor az alábbi + terjesztõk valamelyikével vegyük fel a + kapcsolatot: + + + +
+ Cylogistics + 809B Cuesta Dr., #2149 + Mountain View, CA 94040 + Egyesült Államok + Telefon: +1 650 694-4949 + Fax: +1 650 694-4953 + e-mail: sales@cylogistics.com + WWW: +
+
+ + +
+ Ingram Micro + 1600 E. St. Andrew Place + Santa Ana, CA 92705-4926 + Egyesült Államok + Telefon: 1 (800) 456-8000 + WWW: +
+
+ + +
+ Kudzu, LLC + 7375 Washington Ave. S. + Edina, MN 55439 + Egyesült Államok + Telefon: +1 952 947-0822 + Fax: +1 952 947-0876 + e-mail: sales@kudzuenterprises.com +
+
+ + +
+ LinuxCenter.Ru + Galernaya utca, 55 + Szentpétervár + 190000 + Oroszország + Telefon: +7-812-3125208 + e-mail: info@linuxcenter.ru + WWW: +
+
+ + +
+ Navarre Corp + 7400 49th Ave South + New Hope, MN 55428 + Egyesült Államok + Telefon: +1 763 535-8333 + Fax: +1 763 535-0341 + WWW: +
+
+
+ +
+ + + + FTP oldalak + + A &os; hivatalos forrásai anonim FTP-n keresztül + is elérhetõek különféle + tükrözésekrõl. Az oldal ugyan + jó minõségû kapcsolattal rendelkezik + és rengeteg felhasználót is enged + egyidejûleg kapcsolódni, azonban + valószínûleg jobban járunk, ha egy + hozzánk közelebbi + tükrözést választunk + (különösen abban az esetben, amikor mi magunk is + egy tükrözést akarunk + készíteni). + + A &os; + tükrözések adatbázisában az + itt megtalálhatónál sokkal pontosabb + leltárt kaphatunk az elérhetõ + tükrözésekrõl, mivel közvetlenül a + névfeloldás segítségével + állapítja meg a szükséges adatokat + és nem egy rögzített listát + tárol. + + Emellett az alábbi tükrözésekrõl + a &os; elérhetõ anonim FTP-n keresztül is. + Amennyiben az anonim FTP használata mellett + döntenénk, igyekezzünk a hozzánk + legközelebb levõ szervert használni. Az + Elsõdleges + tükrözésekként feltüntetett + oldalak általában a teljes &os; archívumot + tartalmazzák (az összes jelenleg elérhetõ + változatot az összes architektúrára), de + a környékünkön vagy országunkban + elhelyezkedõ tükörszerverekrõl többnyire + gyorsabban tudunk majd letölteni. A regionális + oldalakon gyakorta csak a népszerûbb + architektúrákon futó népszerûbb + változatokat találjuk meg, nem a teljes &os; + archívumot. Minden szerver elérhetõ anonim + FTP-vel, de közülük néhány még + további más módszereket is támogat. + Az egyes oldalak által ismert konkrét + módszereket a nevük után + zárójelben közüljük. + + &chap.mirrors.ftp.inc; + + + + + Anonim CVS + + + <anchor id="anoncvs-intro">Bevezetés + + + CVS + anonim + + + Az anonim CVS (vagy más néven + anoncvs) a &os;-hez mellékelt + CVS-es segédprogramok által nyújtott + olyan lehetõség, amivel távoli CVS + repositorykkal tudunk szinkronizálni. Több + más dolog mellett lehetõvé teszi a &os; + felhasználói számára, hogy kiemelt + jogosultságok nélkül képesek + legyenek olvasással kapcsolatos CVS mûveleteket + végrehajtani a &os; Projekt hivatalos anoncvs + szerverein. A használatához egyszerûen + csak a kiválasztott anoncvs szervert kell + beállítani a CVSROOT + környezeti változó + értékének, ahol aztán a + cvs login parancsnak a szerver által + ismert anoncvs jelszót kell megadni. + Ezután a &man.cvs.1; paranccsal a többi CVS + szerverhez hasonlóan lehetõségünk + nyílik hozzáférni. + + + A cvs login parancs a + bejelentkezésekhez szükséges jelszavakat + a HOME könyvtárunkban levõ + .cvspass állományban + tárolja. Ha ez az állomány nem + létezik, akkor a cvs login + elsõ használatakor hibát kapunk. + Ilyenkor csak hozzunk létre egy üres + .cvspass állományt, majd + próbálkozzunk újra. + + + Habár azt mondhatnánk, hogy a CVSup és az + anoncvs lényegében egyazon + feladatot oldják meg, mind a két esetben + léteznek olyan kompromisszumok, amelyek + befolyásolhatják a felhasználó + választását a két + szinkronizációs módszer között. + Dióhéjban ezt úgy tudnánk + összefoglalni, hogy a CVSup a + hálózati erõforrásokat + hatékonyabban kihasználja és + kettejük közül ez a fejlettebb, azonban ennek + meg kell fizetnünk az árát. A + CVSup használatához + elõször ugyanis telepítenünk kell + és be kell állítanunk egy + speciális klienst, illetve az adatokat a + CVSup által + gyûjteményeknek (collection) + nevezett, viszonylag nagy méretû + egyeségekben érhetjük el. + + Ezzel szemben az anoncvs + használata során a megfelelõ CVS modul + nevének felhasználásával + tetszõlegesen megvizsgálhatunk + önálló állományokat vagy + akár programokat (mint az ls vagy a + grep). Természetesen az + anoncvs + segítségével csupán az + olvasást igénylõ CVS mûveleteket + végezhetjük el, ezért ha a &os; Projekt + keretein belül fejleszteni is szeretnénk, akkor + inkább érdemes a + CVSup alkalmazást + választani. + + + + + <anchor id="anoncvs-usage">Az anonim CVS + használata + + A &man.cvs.1; parancsot nagyon könnyû + beállítani az anonim CVS repositoryk + használatához, hiszen mindössze annyit kell + tennünk, hogy a CVSROOT környezeti + változó értékének megadjuk + a &os; Projekt valamelyik anoncvs + szerverét. Ezen sorok írásának + pillanatában a következõ szerverek + érhetõek el: + + + + Ausztria: + :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (a + cvs login használatával + tetszõleges jelszó megadható) + + + Franciaország: + :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs + (pserver (a jelszó anoncvs), ssh + (nincs jelszó)) + + + Németország: + :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (rsh, + pserver, ssh, ssh/2022) + + + Japán: + :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (a + cvs login + használatánál a jelszó + anoncvs.) + + + Tajvan: + :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs + (pserver (a cvs login + használatával tetszõleges jelszó + megadható), ssh (nincs jelszó)) + + SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub + + + + Egyesült Államok: + freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (csak ssh + — nincs jelszó) + + SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu +SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub + + + + Egyesült Államok: + anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (csak ssh2 — + nincs jelszó) + + SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub + + + + + Mivel a CVS használatával + kikérhetjük (check out) + tulajdonképpen a &os; forrásainak + akármelyik eddigi (vagy majd ezután + keletkezõ) változatát, érdemes + megismerkednünk a &man.cvs.1; által alkalmazott + revízió (revision) (az + opcióval állítható) + fogalmával és a &os; Projekt repositoryjain + belül engedélyezett + értékeivel. + + Címkéket (tag) két esetben + használhatunk: a revíziók és az + ágak esetén. A revíziós + címkék mindig egy adott revízióra + hivatkoznak, ami állandóan ugyanazt jelenti. + Ezzel szemben az ágak címkéi a + fejlesztés adott irányú menetének + az adott pillanatban legfrissebb + revízióját hivatkozzák. Mivel az + ágak címkéi nem egy adott + revízióra vonatkoznak, ezért elmondhatjuk + róluk, hogy naponta változik a + jelentésük. + + Az tartalmazza a + felhasználók számára fontos + revíziós címkéket. Ezek azonban + nem igazak a Portgyûjteményre, mivel a + Portgyûjteménynek nincs egyszerre több + fejlesztési iránya. + + Egy ág címkéjének + megadásával általában az adott + irányhoz tartozó állományok + legfrissebb változatát kapjuk meg. Ha viszont + az állományok egy korábbi + változatára lenne szükségünk, + akkor a opció + megadásával meg tudjuk adni annak + idõpontját. Errõl részletesebben a + &man.cvs.1; man oldalán olvashatunk. + + + + + Példák + + Habár a továbbhaladáshoz + mindenképpen javasoljuk a &man.cvs.1; man + oldalának részletes + áttanulmányozását, mutatunk + néhány gyors példát az anonim CVS + használatának tömör + illusztrálására: + + + Valami (az &man.ls.1;) kikérése a + -CURRENT ágból + + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Jelszóként ezután bármit megadhatunk. +&prompt.user; cvs co ls + + + + + Az <filename>src/</filename> fa kikérése + SSH-n keresztül + + &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src +The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. +DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. +Are you sure you want to continue connecting (yes/no)? yes +Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. + + + + Az &man.ls.1; 6-STABLE ágban szereplõ + változatának kikérése + + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Amikor kéri, jelszóként bármit megadhatunk. +&prompt.user; cvs co -rRELENG_6 ls + + + + + Az &man.ls.1; változásainak (Unified Diff + formátumú) listázása + + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Itt jelszóként bármit megadhatunk. +&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls + + + + + A használható modulok nevének + kiderítése + + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Ezután jelszóként bármit megadhatunk. +&prompt.user; cvs co modules +&prompt.user; more modules/modules + + + + + + + Egyéb helyek + + A következõ helyeken találhatunk + még hasznos információkat a CVS + használatáról: + + + + A CVS bemutatása (írta: Cal Poly). + + + + A CVS + honlapja, a CVS fejlesztésével + és alkalmazásával foglalkozó + közösség oldala. + + + + A CVSweb + a &os; Projekt által használt CVS + rendszerének webes felülete. + + + + + + + A CTM használata + + + CTM + + + A CTM használatáva + a távoli könyvtárakat tudunk egy + központi változattal szinkronban tartani. + Eredetileg a &os; forrásaihoz fejlesztették ki, de + idõvel mások más célokra is + alkalmasnak találhatják majd. Az + eltérések (delták) + feldolgozásával kapcsolatban kevéske + dokumentáció áll rendelkezésre, + ezért a &a.ctm-users.name; levelezési + listát érdemes felkeresni, ha többet + szeretnénk megtudni a CTM + egyéb célú + alkalmazásairól. + + + Miért használnánk a + <application>CTM</application>-et? + + A CTM + segítségével a &os; forrásainak + helyi másolatát hozhatjuk létre. A + források több különbözõ + kivitelben is + hozzáférhetõek. A + CTM minden esetben képes + eleget tenni az igényeinknek, akár az + egész CVS fát, akár annak egy + részét kívánjuk csak figyelemmel + követni. Ha netalán &os; fejlesztõk + lennénk, és híján vagyunk vagy + éppen gyenge TCP/IP kapcsolattal rendelkezünk, + esetleg egyszerûen csak automatikusan + értesülni szeretnénk a + változásokról, a + CTM-et nekünk + találták ki. A leggyorsabban fejlõdõ + ágakból is naponta legfeljebb három + deltát fogunk kapni, azonban érdemes megfontolni + a változások automatikus + elküldését levélben. A + szükséges frissítések + méretét mindig igyekszünk + minimalizálni. Ez egyébként + általában alig 5 KB, de néha + (tízbõl egyszer) elõfordul, hogy 10 és + 50 KB között van, és + idõnként 100 KB vagy afeletti + mennyiségû frissítés is + érkezhet. + + Amikor a fejlesztõk által használt + forrásokat töltjük le, magunknak kell + gondoskodnunk a menet közben felmerülõ + különbözõ problémák + megoldásáról. Ez + kiváltképp igaz abban az esetben, amikor az + aktuális, vagy hivatalos nevén + CURRENT ágat követjük. + Mielõtt azonban egy ilyenbe belevágnánk, + érdemes fellapozni a &os; + legfrissebb változatának + használatáról szóló + fejezetet. + + + + + Mire van szükségünk a + <application>CTM</application> + használatához? + + A mûködéshez két komponens + szükségeltetik: a CTM + kliensprogramja és hozzá a kezdeti delták + (amivel majd letöltjük a CURRENT + forrásait). + + A CTM program már a 2.0 + kiadástól kezdve a &os; része, és + a források között a + /usr/src/usr.sbin/ctm + könyvtárban találjuk meg (amennyiben + felraktuk). + + A CTM + mûködéséhez kellõ + deltákat két módon, FTP-n + vagy e-mailen keresztül szerezhetjük be. Ha el + tudunk érni interneten levõ FTP oldalakat, akkor + az alábbi FTP helyeken találunk a + CTM-hez használható + adatokat: + + + + valamint lásd a tükrözéseket. + + FTP-n keresztül lépjünk be a + könyvtárba, töltsük le a + README nevû állományt + és kövessük a benne szereplõ + utasításokat. + + Ha viszont e-mailen keresztül akarjuk megszerezni a + deltákat: + + Iratkozzunk fel a CTM + terjesztési listáinak egyikére. A + &a.ctm-cvs-cur.name; lista az egész CVS-fát, + míg a &a.ctm-src-cur.name; a fõ fejlesztési + ágat teszi elérhetõvé. A + &a.ctm-src-4.name; a 4.X kiadásaihoz ágakat + tartalmazza, és így tovább. (Ha nem + tudjuk, hogyan kell feliratkozni egy levelezési + listára, akkor kattintsunk a lista nevére vagy + kövessük a &a.mailman.lists.link; linket, majd + kattintsunk arra a listára, ahova fel akarunk + iratkozni. Ezen az oldalon az összes, a + feliratkozáshoz nélkülözhetetlen + információnak szerepelnie kell.) + + Miután elkezdenek megérkezni a + CTM-frissítéseket + tartalmazó levelek, a tartalmukat a + ctm_rmail programmal tudjuk kicsomagolni + és felhasználni. Az + /etc/aliases állományba + akár közvetlenül is beírhatjuk a + ctm_rmail programot, és ezzel a + önállósítani tudjuk a + levélben érkezõ frissítések + feldolgozását. A ctm_rmail + man oldalán olvashatjuk ennek részleteit. + + + Nem számít, milyen módon jutunk + hozzá a CTM által + használt deltákhoz, minden esetben fel kell + iratkoznunk a &a.ctm-announce.name; levelezési + listára. Az elkövetkezendõkben ez lesz az + egyetlen hely, ahová a CTM + rendszer mûködtetésével kapcsolatos + bejelentések beküldésre kerülnek. A + feliratkozáshoz kattinsunk a fenti lista + nevére és kövessük a mellette + szereplõ utasításokat. + + + + + A <application>CTM</application> elsõ + használata + + Mielõtt nekilátnánk a + CTM-hez tartozó + delták használatának, elõször + el kell jutnunk egy kiindulási ponthoz, ahonnan majd + létre tudjuk hozni a rákövetkezõ + deltákat. + + Ehhez elsõként vegyük számba, + pontosan mink is van. Általában mindenki egy + üres könyvtárral kezd. + Ilyenkor egy kezdeti Empty (mint + üres) elnevezésû + deltával tudjuk megkezdeni az + CTM által ismert fa + szinkronizálását. Erre a célra + lesznek majd szintén alkalmasak a + megkezdett delták is, amelyek valamikor + a CD-re fognak felkerülni. + + Mivel a fák maguk több tíz megabyte-nyi + méretûek, ezért érdemes + inkább valami kéznél levõ + eszközzel megkezdeni a folyamatot. Ha van -RELEASE + verziójú CD-nk, akkor másoljuk le + róla és bontsuk ki a kiindulásként + használt forrásokat. Ezzel jelentõs + mennyiségû adat átvitelét + takaríthatjuk meg. + + A kezdõ deltákat könnyen + megismerjük a szám után + X karakterrel leválasztott + nevükrõl (például + src-cur.3210XEmpty.gz). Az + X után szereplõ + megnevezés a kezdeti kiindulás + (seed) fokának felel meg. Az + Empty egy üres + könyvtárra utal. A szabályok szerint az + Empty állapotból 100 + deltánként jön létre újabb + (kiindulásra alkalmas) alapváltozat. Ezek + azonban nagyon nagyok is lehetnek. A 70 vagy 80 megabyte-os + gzippel csomagolt adatok gyakoriak az + XEmpty delták + esetén. + + Miután kiválasztottuk a számunkra + megfelelõ alapváltozatot, + szükségünk lesz a tõle nagyobb + sorszámú összes deltára is. + + + + + A <application>CTM</application> használata a + hétköznapokban + + A delták felhasználásához + egyszerûen csak ennyit kell tennünk: + + &prompt.root; cd /ahol/tárolni/akarjuk/az/adatokat +&prompt.root; ctm -v -v /ahol/tároljuk/a/deltákat/src-xxx.* + + A CTM képes + értelmezni a gzip által + csomagolt adatokat, ezért nincs szükség a + delták elõzetes + kitömörítésére, amivel + tárhelyet tudunk spórolni. + + Hacsak nem tekinti tökéletesen + biztonságosnak az egész folyamatot, akkor a + CTM nem fog + módosítani a fán. A deltákat a + CTM + kapcsolójával is ellenõrizhetjük, + aminek során egyáltalán nem fog + módosulni a forrásfa. Ekkor egyszerûen + csak ellenõrzi a delták + sértetlenségét és megnézi, + hogy minden rendben zajlana-e az alkalmazásuk + során. + + A CTM-nek vannak még + további kapcsolói is, melyekrõl + bõvebben a man oldalakból és a + forráskódokból + tájékozódhatunk. + + Most már minden megvan, ami kellhet. Amikor kapunk + egy újabb deltát, a forrásaink + frissítéséhez csak futtassuk át a + CTM-en. + + Ne töröljük le azokat a deltákat, + melyeket nehezen tudtunk letölteni. Helyette + érdemes inkább megtartani ezeket arra az esetre, + ha valami rossz történne. Még ha csak + floppylemezek is állnak rendelkezésünkre, + mindenképpen másoljuk le ezeket az + fdwrite paranccsal. + + + + + A saját változtatásaink + megtartása + + Fejlesztõként biztosan szeretnénk + kísérletezni és + állományokat megváltoztatni a + forrásfában. A CTM a + helyben elkövetett változtatásokat csak + korlátozottan támogatja: az + ize nevû állomány + meglétének vizsgálata elõtt az + ize.ctm állományt fogja + keresni. Ha létezik, akkor a + CTM az ize + helyett ezen fog dolgozni. + + Ezzel a viselkedéssel nyerjük a saját + változtatásaink megtartásának + egyszerû módját: csak másoljuk le + .ctm kiterjesztéssel a + módosítani tervezett állományokat. + Ezután már szabadon módosíthatjuk + a forrásokat, miközben a + CTM a .ctm + kiterjesztésû állományokat + folyamatosan szinkronban tartja. + + + + + A <application>CTM</application> egyéb + érdekes beállításai + + + Derítsük ki pontosan miket is fog + érinteni a frissítés + + A CTM által a + forrásokon elvégzendõ + változtatások listáját az + kapcsolóval + kérdezhetjük le. + + Ez akkor esik kézre, ha szeretnénk + feljegyezni a bekövetkezõ + változásokat, vagy bármilyen + módon elõ- vagy utófeldolgozni a + módosított állományokat, esetleg + szimplán elõvigyázatosak akarunk + lenni. + + + + + Biztonsági másolat + készítése a frissítés + elõtt + + Néha egyszerûen csak szeretnénk az + összes érintett állományról + biztonsági másolatot készíteni a + CTM által elvégzett + frissítés elõtt. + + A + beállítás megadásával az + adott CTM delta által + módosítandó összes + állomány tárolásra kerül a + mentés-állomány + nevû állományba. + + + + + A frissíthetõ állományok + korlátozása + + Egyes esetekben érdekünkben állhat + leszûkíteni a CTM + által eszközölt frissítések + hatáskörét, vagy egyszerûen csak + néhány állomány + szinkronizálására van + szükségünk. + + A CTM számára + feldolgozható állományok + listáját reguláris kifejezés + formájában az és + opciók mentén + határozhatjuk meg. + + Például ha a + lib/libc/Makefile + állomány az összegyûjtött + CTM delták szerinti + legfrissebb verziójához kívánunk + hozzájutni, akkor futtassuk az alábbi + parancsot: + + &prompt.root; cd /akarhova/ahova/ki/akarjuk/bontani/ +&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* + + A CTM deltákban + megadott minden egyes állomány esetén + az az opciók + a parancssorban történt megadásuk + sorrendjében kerülnek feldolgozásra. Egy + állományt kizárólag csak akkor + dolgoz fel a CTM, ha az az + és + opciók kiértékelése után + is indokolt. + + + + + + További tervek a + <application>CTM</application>-mel kapcsolatban + + Rengeteg van: + + + + Valamiféle hitelesítés + bevezetése a CTM + rendszerbe, amivel észlelhetõek a + meghamisított + CTM-frissítések. + + + + A CTM + beállításainak + letisztázása, mivel eléggé + megtévesztõek és nehézkesen + használhatóak. + + + + + + Egyebek + + Léteznek delták a portok + gyûjteményéhez is, azonban még nem + mutatkozott túlzottan nagy + érdeklõdés irántuk. + + + + + CTM tükrözések + + A CTM/FreeBSD anonim FTP-n + keresztül elérhetõ az alábbi + tüköroldalak valamelyikérõl. Amennyiben + ezen a módon kívánjuk letölteni a + CTM rendszerhez tartozó + állományokat, elõször + próbálkozzunk a hozzánk legközelebb + levõ szerverrel. + + Ha bármilyen gond merülne fel, + értesítsük a &a.ctm-users.name; + levelezési listát. + + + + Kalifornia, Bay Area (hivatalos forrás) + + + + + + + + + + + + Dél-Afrika (a korábbi delták + biztonsági másolatai) + + + + + + + + + + + + Tajvan/R.O.C. + + + + + + + + + + + + + + + + + + + + Ha nem találtunk volna hozzánk közel + esõ tükrözést, vagy ha talált + tükör nem elég friss, akkor + próbálkozzunk egy olyan keresõmotor + használatával, mint például az + alltheweb. + + + + + + A CVSup használata + + + Bevezetés + + A CVSup távoli szervereken + található központi repositorykban levõ + forrásfák terjesztésére és a + rajtuk keresztüli frissítésre alkalmas + programcsomag. A &os; forrásait egy CVS repositoryban + tartják karban Kaliforniában egy + fejlesztéseket tároló központi + számítógépen. A + CVSup + segítségével a &os; + felhasználói könnyen szinkronban + tudják vele tartani a saját + forrásaikat. + + A CVSup az ún. + lehúzással frissít. + Ilyenkor a kliensek csak akkor kérnek a szervertõl + frissítéseket, amikor szükségük + van rá, miközben a szerver passzívan + várja a frissítési kérelmeket. + Ennek megfelelõen tehát minden esetben a kliens + kezdeményezi a frissítést, a szerver pedig + önmagától sosem küld ilyeneket + kéretlenül. A felhasználóknak + így vagy maguknak kell meghívniuk a + CVSup kliensét, vagy a + frissítések rendszeres automatikus + letöltéséhez be kell állítaniuk + a cron rendszerprogramot. + + A CVSup kifejezés ebben az + írásmódban az egész programcsomagra + utal. Fõ alkotórészei a a + felhasználó gépén futó + cvsup nevû kliens, és a &os; + tüköroldalain futó cvsupd + nevû szerver. + + A &os; dokumentációjának és + levelezési listáinak fürkészése + során rengeteg hivatkozást találhatunk egy + sup nevû alkalmazásra. A + sup a + CVSup elõdje volt, és + hasonló célokat szolgált. A + CVSup használat + tekintetében nagyon hasonlít a + sup-hoz, és ami azt illeti, a + a sup konfigurációs + állományaival visszafele kompatibilis + formátumot használ. Mivel a + CVSup sokkal gyorsabb és + rugalmasabb, a supot már nem + használja a &os; Projekt. + + + A csup a + CVSup C nyelven + újraírt változata. Legnagyobb + elõnye, hogy gyorsabb és nincs + szüksége a Modula-3 nyelv futtató + környezetére, ezért azt nem kell a + használatához telepíteni. + Ráadásul, ha a &os; 6.2 vagy annál + késõbbi változatát + használjuk, akkor minden további + nélkül a rendelkezésünkre áll, + hiszen az alaprendszer része. A &os; korábbi + verzióinak alaprendszerei ugyan nem tartalmazzák + a &man.csup.1; parancsot, viszont a net/csup port vagy csomag + segítségével pillanatok alatt + telepíteni tudjuk. Emellett a + csup segédprogram nem + támogatja a CVS módot sem. Teljes repositoryk + tükrözéséhez ezért + továbbra is a CVSup kell + használnunk. Amennyiben a + csup mellett tennénk le a + voksunkat, a szakasz fennmaradó részében + egyszerûen hagyjuk ki a CVSup + telepítésérõl szóló + lépéseket és a + CVSup hivatkozásait + helyettesítsük a csup + programmal. + + + + + + Telepítés + + A CVSup + telepítésének legegyszerûbb + módja a &os; csomaggyûjteményében + található elõrefordított net/cvsup csomag használata. + Ha viszont inkább forrásból akarjuk + telepíteni a CVSupot, akkor + helyette használjuk a net/cvsup portot. De legyünk + elõvigyázatosak: a net/cvsup portnak szüksége + van a Modula-3 rendszerre, aminek letöltése + és lefordítása pedig meglehetõsen sok + idõt és tárhelyet igényel. + + + Ha olyan gépen akarjuk használni a + CVSupot, ahol nincs + &xfree86;, + &xorg; vagy bármilyen + más ilyen szerver, akkor használjuk a + net/cvsup-without-gui + portot, ami nem tartalmazza a hozzátartozó + grafikus felületet. + + + Ha a &os; 6.1 vagy korábbi változatain + szeretnénk telepíteni a + csupot, használjuk a &os; + + csomaggyûjteményében + megtalálható net/csup csomagot. Ha viszont + forrásból kívánjuk telepíteni + a csup programot, akkor helyette + használjuk a net/csup + portot. + + + + + A CVSup beállítása + + A CVSup + mûködését a supfile + elnevezésû állomány vezérli. A + + /usr/share/examples/cvsup/ + könyvárban találhatunk néhány + példát a supfile + állományokra. + + A supfile állományban + szereplõ információk a + CVSup használatával + kapcsolatban a következõ kérdéseket + válaszolják meg: + + + + Milyen + állományokat akarunk + letölteni? + + + + Milyen + verzióikra van + szükségünk? + + + + Honnan akarjuk ezeket + beszerezni? + + + + Hova akarjuk rakni a + számítógépünkön? + + + + Hova akarjuk rakni + az állapotot tároló + állományokat? + + + + Az imént feltett kérdésekre a + következõ szakaszokban + összeállítandó + supfile segítségével + fogunk válaszolni. Ehhez elõször bemutatjuk a + supfile formátumú + állományok általános + szerkezetét. + + A supfile állományok + szöveget tartalmaznak. A megjegyzések + # karakterrel kezdõdnek és a sor + végéig tartanak. A kizárólag csak + megjegyzéseket tartalmazó vagy üres sorok nem + kerülnek feldolgozásra. + + Az összes többi fennmaradó sorban pedig + azokat az állományokat írjuk le, amelyeket + a felhasználó le akar tölteni. Az ilyen + fajtájú sorok egy + gyûjtemény (collection) + nevével kezdõdnek, ami állományok egy + szerver által meghatározott logikai + csoportjára utal. A gyûjtemény neve ennek + megfelelõen elárulja a szervernek, hogy pontosan + milyen állományokra van + szükségünk. Ezután következik + whitespace-szel elválasztva nulla vagy több + mezõ, amelyek a korábban feltett + kérdéseinket válaszolják meg rendre. + Ezeknek a mezõknek két típusa létezik: + a beállításokat és a konkrét + értéket tároló mezõk. A + beállításokat tároló + mezõk különbözõ kulcsszavakat + tartalmaznak, például a delete + (törlés) vagy compress + (tömörítés). Az értéket + tároló mezõk is egy kulcsszóval + kezdõdnek, azonban utána közvetlenül egy + = (egyenlõségjel) jön, + amelyet egy második szó követ szorosan. + Így például a + release=cvs pontosan egy ilyen + értékmezõ lesz. + + Egy supfile általában + egynél több gyûjtemény + letöltését írja le. Ezért az + ilyen állományok + felépítésének egyik módja, ha + az egyes gyûjteményhez explicite megadjuk a + hozzátartozó mezõket. Azonban így a + supfile állományok gyorsan + megnövekednek és kényelmetlenné + válnak, mivel a legtöbb gyûjtemény + esetén szinte ugyanazokat a mezõket kellene + megadnunk. A CVSup az ilyen + típusú bonyodalmak elkerülésére + egy alapértelmezési megoldást javasol. A + *default nevû + álgyûjteménnyel kezdõdõ sorok + segítségével meg tudunk adni olyan + beállításokat és + értékeket, amelyek az utána + következõ gyûjtemények + számára alapértelmezésnek fognak + számítani a supfile + állományban. Az itt megadott + alapértelmezések természetesen az egyes + gyûjteményekben tetszõleges módon + felülbírálhatóak, a mezõk + magán a gyûjteményen belüli + megadásával. Az állományban az + alapértelmezések is + megváltoztathatóak vagy + bõvíthetõek további + *default sorok + hozzáadásával. + + Mindezek tudatában most már megkezdhetjük + a FreeBSD-CURRENT ág + tartalmának letöltésére és + frissen tartására alkalmas + supfile állomány + összeállítását. + + + + Milyen + állományokat akarunk letölteni? + + A CVSupon keresztül + elérhetõ állományok + gyûjteményeknek hívott + nevesített csoportokra bontva érhetõek + el. A hivatkozható gyûjtemények + leírását a következõ szakaszban + találjuk. Ebben a példában most + szeretnénk letölteni az egész &os; + rendszer forrását. Ezt a + src-all nevû + gyûjteményre hivatkozva érhetjük el. + A supfile állományunk + létrehozásának elsõ + lépéseként soronként egyet + megadva felsoroljuk a letölteni kívánt + gyûjteményeket (jelen esetünkben csak + egyetlen egyet): + + src-all + + + + Milyen verzióikra + van szükségünk? + + A CVSup + használatával tulajdonképpen a + források összes valaha létezett + verziójához hozzá tudunk férni. + Ez annak köszönhetõ, hogy a + cvsupd szerver + közvetlenül a CVS repositoryból dolgozik, + ami pedig az összes verziót tartalmazza. A + tag= és date= + értékmezõk + segítségével adhatjuk meg az + igényelt verziókat. + + + Legyünk óvatosak azonban a + tag= mezõk helyes + megadásával. Egyes címkék + ugyanis csak bizonyos + állománygyûjtemények + esetén élnek. Ha hibás vagy + elírt címkét adunk meg, akkor a + CVSup törölni fog + olyan állományokat, amelyeket + valószínûleg nem kellene. A + ports-* gyûjtemények + esetében pedig kifejezetten + csak a tag=. + mezõk használhatóak! + + + A tag= mezõk a + tárházban található szimbolikus + címkéket nevezik meg. A + címkéknek két típusa van: a + revíziókhoz és az ágakhoz + tartozó címkék. A + revíziós címkék mindig egy adott + revíziót hivatkoznak, jelentésük + állandó. Ezzel szemben az ágak + címkéi egy adott fejlesztési ág + adott idõpontjában elérhetõ + revíziót címkézi. Mivel az + ágak címkéi nem egy konkrét + revízióra vonatkoznak, ezért + akár olyanra is utalhatnak, ami pillanatnyilag + még nem is létezik. + + Az ban megtalálhatjuk a + fontosabb ágak címkéit. A + CVSup konfigurációs + állományában a címkéket a + tag= elõtaggal kell bevezetni + (így tehát a RELENG_4 + címke hivatkozása + tag=RELENG_4 lesz). Ne felejtsük + el, hogy a Portgyûjtemény esetében csak + tag=. mezõ megadásának + van értelme. + + + Igyekezzünk pontosan lemásolni a + címkék neveit, mivel a + CVSup nem képes + megkülönböztetni az érvényes + és az érvénytelen + címkéket. Ha véletlen elírjuk + a címkét, akkor a + CVSup úgy fog + viselkedni, mintha olyan érvényes + címkére hivatkozhatunk volna, amihez nem + tartoznak állományok. Ennek + következtében pedig egyszerûen + letörli a már meglevõ + forrásainkat. + + + Egy ág címkéjének + megadása során általában az + adott fejlesztési vonal legfrissebb + verzióját kapjuk meg. Ha viszont az adott + ág valamelyik korábbi + változatára lenne szükségünk, + akkor a értékmezõ + felhasználásával meg tudjuk adni a + hozzátartozó dátumot. Ennek + mûködésérõl a &man.cvsup.1; man + oldala részletesebben értekezik. + + A példában mi most a &os;-CURRENT + verziót akarjuk letölteni. Ezért a + következõ sort tesszük a + supfile állományunk + elejére: + + *default tag=. + + Ha nem adunk meg sem tag=, sem pedig + date= mezõket, akkor egy fontos eset + következik be. Ilyenkor ugyanis egy konkrét + verzió helyett közvetlenül a szerver CVS + repositoryjából kapjuk meg az + állományokat, az összes + kiegészítõ információjukkal + együtt. A fejlesztõk általában ezt + a típusú megoldást kedvelik, mivel + így a saját rendszerükön is + könnyen karban tudnak tartani egy + példányt, amiben tudnak keresni a + revíziók között és ki + tudják kérni akár az + állományok korábbi változatait + is. Természetesen ennek + függvényében jóval több + tárhelyre van szükségük. + + + + Honnan akarjuk ezeket + beszerezni? + + A host= mezõ + beállításával + közöljük a cvsup + klienssel, honnan töltse le a + frissítéseket. A CVSup + tükrözések közül + bármelyik megfelel erre a célra, habár + leginkább azt érdemes választani, ami a + kibertérben a hozzánk legközelebb esik. + A példában most egy kitalált &os; + terjesztési oldalt választunk, a cvsup99.FreeBSD.org-ot: + + *default host=cvsup99.FreeBSD.org + + A CVSup futtatása + elõtt tehát ne felejtsük el + megváltoztatni ezt a létezõ + számítógép + hálózati nevére. A + cvsup futtatásakor a opció + megadásával lehetõségünk + ennek + felülbírálására. + + + + Hova akarjuk rakni a + számítógépünkön? + + A prefix= mezõ adja meg a + cvsup számára, hogy hova + tegye a kapott állományokat. A + példában a forrásokat + közvetlenül a forrásokat + tároló központi könyvtárba, a + /usr/src könyvtárba + tettük. Mivel a src + könyvtár neve már hallgatólagosan + benne foglaltatik a letöltésre + kiválasztott gyûjtemény nevében, + ezért itt csak ennyit kell megadnunk: + + *default prefix=/usr + + + + Hova akarjuk rakni az + állapotot tároló + állományokat? + + A CVSup kliens egy + bázisnak (base) nevezett + könyvtárban folyamatosan fenntart bizonyos + állományokban állapotokat (status + file). Ezek a már letöltött + állományok + nyilvántartásával segítik a + CVSup hatékony + munkavégzését. Mi most a + szabványos bázist, a + /var/db könyvtárat fogjuk + használni: + + *default base=/var/db + + Amennyiben még nem létezne a + bázisként használni + kívánt könyvtár, ideje + létrehoznunk. A cvsup ugyanis egy + nem létezõ könyvtár esetén + nem lesz hajlandó mûködni. + + + + További beállítások a + supfile + állományban: + + Általában még egy sor szokott + szerepelni a supfile + állományokban: + + *default release=cvs delete use-rel-suffix compress + + A release=cvs mezõ jelzi, hogy a + szervernek a &os; fõ CVS repositoryból kell + kikeresnie az információkat. + Tulajdonképpen majdnem mindig errõl van + szó, és az itt megadható többi + lehetõség ismertetése most + egyébként is meghaladná a szakasz + határait. + + A delete hatására a + CVSup képes lesz + állományokat törölni. Mindig + érdemes megadnunk, hiszen a + CVSup csak így tudja + teljes mértékben frissentartani a + forrásokat. A CVSup + természetesen csak azokat az + állományokat igyekszik letörölni, + amelyek miatt valóban felelõs. A kóbor + állományokat nem fogja bántani. + + A use-rel-suffix hatása egy + igazi... Rejtély. Ha tényleg érdekel + minket a mûködése, lapozzuk fel + bátran a &man.cvsup.1; man oldalát. Nyugodtan + adjuk meg és különösebben ne + törõdjünk vele. + + A compress + beállítás + segítségével a + kommunikációs csatornán + vándorló adatokat tudjuk gzip-szerû + módon tömöríteni. Ha a + hálózati kapcsolatunk sebessége + meghaladja a 1,5 Mbitet másodpercenként + (T1), akkor ezt már nem érdemes + használni, viszont minden más esetben + lényeges gyorsulást hozhat. + + + + Összegezzük az eddigieket: + + Íme a példaként összerakott + supfile állományunk + teljes tartalma: + + *default tag=. +*default host=cvsup99.FreeBSD.org +*default prefix=/usr +*default base=/var/db +*default release=cvs delete use-rel-suffix compress + +src-all + + + + + A <filename>refuse</filename> + állomány + + Ahogy arról már korábban szó + esett, a CVSup + lehúzással frissít. + Ez alapvetõen annyit jelent, hogy + feltárcsázunk egy + CVSup szervert, aki a + következõt mondja nekünk: A + következõket tudod tõlem + letölteni..., amire a kliensünk ezt + válaszolja: Rendben, akkor nekem kell ez, ez, ez + meg ez. Alapértelmezés szerint a + CVSup kliense azokat az + állományokat fogja letölteni, amelyeket a + konfigurációs állományban + szereplõ gyûjtemények és + címkék által megneveztünk. Ez + azonban nem mindig felel meg az igényeinknek, + különösen akkor, amikor a + doc, ports vagy + www fákat akarjuk letölteni + — az emberek többsége ugyanis nem + beszél négy vagy öt nyelven, ezért + nincs is szükségük a nyelvfüggõ + állományok letöltésére. A + Portgyûjtemény letöltése során + a ports-all helyett egyszerûen + egyenként is felsorolhatjuk a számunkra + érdekes kategóriákat + (például ports-astrology, + ports-biology stb). Azonban mivel a + doc és a www + fákhoz nincsenek nyelvfüggõ + gyûjtemények, ezért elõ kell + halásznunk a CVSup egyik + remek funkcióját, a refuse + állományt. + + A refuse állománnyal + lényegében arra utasítjuk a + CVSup alkalmazást, hogy a + gyûjteményekbõl ne töltse le az + összes állományt. Úgy is + fogalmazhatnánk, hogy javaslatára a kliens + visszautasít (refuse) bizonyos + szervertõl érkezõ állományokat. + Ezeket a visszautasításokat tároló + refuse állományt a + bázis/sup/ + könyvtárban találhatjuk meg (illetve ha + még nincsenek, akkor ide kell rakunk ezeket). Itt a + bázis a + supfile állományban + megadott base= mezõre utal, ami a + példánkban a /var/db + könyvtár volt. Ennek megfelelõen + tehát a refuse + állomány a + /var/db/sup/refuse lesz. + + A refuse állomány + felépítése igen egyszerû: a + letölteni nem kívánt + állományok és könyvtárak + neveit tartalmazza. Például ha az angolul + mellett esetleg még beszélünk egy + kevés németet is, de nincs + szükségünk az angol + dokumentáció német + fordítására sem, akkor a + következõket írjuk a + refuse állományba: + + doc/bn_* +doc/da_* +doc/de_* +doc/el_* +doc/es_* +doc/fr_* +doc/hu_* +doc/it_* +doc/ja_* +doc/mn_* +doc/nl_* +doc/no_* +doc/pl_* +doc/pt_* +doc/ru_* +doc/sr_* +doc/tr_* +doc/zh_* + + és így tovább a többi nyelvre is + (melyeket a &os; CVS + repository böngészésével + deríthetjük ki). + + Ezzel az alkalmas funkcióval a lassú vagy + drága internetes kapcsolattal rendelkezõ + felhasználók nagyon jól tudnak + gazdálkodni, mivel így nem kell + letölteniük az egyáltalán nem + használt állományokat. A + refuse állományokról + és a CVSup más + hasonlóan elegáns funkcióiról a + saját man oldaláról tudhatunk meg + többet. + + + + + + A <application>CVSup</application> futtatása + + Most már készen állunk egy próba + frissítés elvégzésére. A + parancssorban nem sok mindent kell beírnunk ehhez: + + &prompt.root; cvsup supfile + + ahol a + supfile a + frissen létrehozott supfile + állományunk neve lesz. Feltételezve, hogy + a parancsot X11 alatt adtunk ki, az cvsup + erre feldob egy grafikus ablakot néhány gombbal. + Nyomjuk meg a go feliratú gombot + és dõljünk hátra. + + Mivel a példában a + /usr/src könyvtárunk + frissítését állítottuk be, az + állományok aktualizálásához + szükséges jogosultságok + biztosításához a cvsup + programot root + felhasználóként kell elindítanunk. + Teljesen érthetõ, ha egy kicsit izgatottak vagyunk + ezekben a pillanatokban, hiszen az elõbb hoztunk + létre egy általunk eddig ismeretlen programhoz egy + konfigurációs állományt. + Ezért megemlítenénk, hogy ilyenkor + elõször mindig próbáljuk ki a + konfigurációkat, mielõtt azok + bármilyen módosítást + végeznének a fontos állományainkon. + Ehhez hozzunk létre valahol egy üres + könyvtárat, majd adjuk meg a parancssorban ennek a + nevét: + + &prompt.root; mkdir /var/tmp/proba +&prompt.root; cvsup supfile /var/tmp/proba + + Az így megadott könyvtárba kerülnek + a frissítés eredményeképpen + keletkezõ állományok. A + CVSup elõször + megvizsgálja a /usr/src + könyvtárban található + állományokat, viszont egyiküket sem + módosítja vagy törli. A + frissítések ehelyett a + /var/tmp/proba/usr/src + könyvtárba fognak kerülni. A + CVSup emellett még a + báziskönyvtárában tárolt + állapotokat sem fogja megváltoztatni. A + módosított állományok új + változatai a megadott könyvtárba jönnek + létre. Mivel a /usr/src + könyvtárt ehhez csak olvasni fogjuk, a próba + lefuttatásához még + root felhasználónak sem kell + lennünk. + + Ha nem használunk X11-et vagy egyszerûen csak + nincs szükségünk a grafikus felületre, a + parancssorban pár további opció + megadásával így is kiadhatjuk a + cvsup parancsot: + + &prompt.root; cvsup -g -L 2 supfile + + A hatására a + CVSup nem hozza be a grafikus + felületét. Ha nem talál X11-et, akkor ez + természetesen automatikus, de ellenkezõ esetben ezt + is meg kell adnunk. + + Az megadásával a + CVSup az összes + elvégzendõ frissítésrõl + részletes értesítést ad. A + részletességnek három foka van, -tól indulva egészen -ig. Itt az alapértelmezett + érték a 0, amivel a hibaüzenetek + kivételével egyetlen üzenetet sem + kapunk. + + Rengeteg egyéb beállítás + adható még meg, ezeket a cvsup + -H kiadásával kérdezhetjük + le. A beállítások pontosabb + leírását a man oldalon találjuk + meg. + + Miután elégedetten tapasztaltuk, hogy a + frissítés remekül mûködik, a + &man.cron.8; segítségével + próbáljuk meg az egész folyamatot + önmûködövé tenni a + CVSup szabályos + idõközönkénti futtatásával. + Ekkor viszont magától értetõdik, hogy + a CVSup számára ne + engedjük használni a grafikus felületet. + + + + + A <application>CVSup</application> + állománygyûjteményei + + A CVSup révén + elérhetõ + állománygyûjtemények egy hierarchikus + rendszert alkotnak. Van néhány nagyobb + állománygyûjtemény, amelyek kisebb + al-állománygyûjteményekre + bonthatóak. A nagyobb gyûjtemények + letöltése ezért a kisebb + algyûjtemények letöltésével + egyenlõ. A gyûjtemények közt + fennálló hierarchikus rendszer a lentebb + szereplõ lista behúzásaiban + érhetõ tetten. + + A leggyakrabban használt gyûjtemények a + src-all és a + ports-all neveket viselik. A többi + gyûjteményt általában csak kevesen + és csak speciális célokra + használják, ezért egyes + tükrözéseken nem feltétlenül + találjuk meg mindegyiküket. + + + + cvs-all release=cvs + + A &os; fõ CVS repositoryja, beleértve a + titkosításhoz tartozó kódokat + is. + + + + distrib release=cvs + + A &os; terjesztéséhez és + tükrözéséhez + kapcsolódó + állományok. + + + + + doc-all release=cvs + + A &os; kézikönyvének + és a többi dokumentáció + forrásai. Nem tartalmazza a &os; + honlapjának forrásait. + + + + + ports-all release=cvs + + A &os; portgyûjteménye. + + + Ha nem akarjuk a ports-all + egészét (vagyis a teljes + portfát) frissíteni, csak a lentebb + szereplõ egyes algyûjteményeket + letölteni, akkor soha ne + feledkezzünk meg a + ports-base + megadásáról! Amikor valami + változik a portok + mûködésében, akkor a + ports-base által + képviselt algyûjteményben + szereplõ állományokat igen + gyorsan elkezdik használni a + valódi portok. Ezért + ha csak a valódi portokat + frissítjük, amelyek viszont + igényt tartanak néhány + újabb funkcióra is, akkor + könnyen fordítási hibára + vagy különbözõ + rejtélyes hibaüzenetekbe futhatunk. + Emiatt + legeslegelõször + mindig tegyünk róla, hogy a + ports-base + algyûjteményünk a lehetõ + legfrissebb legyen. + + + + Ha a ports/INDEX + állomány egy saját + példányát + kívánjuk létrehozni, akkor + ahhoz a ports-all + gyûjteményt (tehát a teljes + portfát) le kell + kérnünk. A + ports/INDEX + állományt a portfa egy része + alapján nem készíthetjük + el. Errõl bõvebben lásd a + GYIK-ot. + + + + + ports-accessibility + release=cvs + + + A fogyatékos + felhasználókat + segítõ szoftverek. + + + + + ports-arabic + release=cvs + + + Arab nyelvi + támogatás. + + + + + ports-archivers + release=cvs + + + Archiváló + eszközök. + + + + + ports-astro + release=cvs + + + Csillagászathoz tartozó + portok. + + + + + ports-audio + release=cvs + + + Hangtámogatás. + + + + + ports-base + release=cvs + + + A Portgyûjtemény saját + infrastruktúrája — az + Mk/, + Tools/ és + /usr/ports + különféle + alkönyvtáraiban elhelyezkedõ + állományok. + + + Ne hagyjuk figyelmen kívül + a + fenti fontos figyelmeztetést + sem: ezt az algyûjteményt + mindig a &os; + Portgyûjteményével + együtt frissítsük! + + + + + + ports-benchmarks + release=cvs + + + Teljesítménytesztek. + + + + + ports-biology + release=cvs + + + Biológia. + + + + + ports-cad + release=cvs + + + Számítógépes + tervezõeszközök (CAD). + + + + + ports-chinese + release=cvs + + + Kínai nyelvi + támogatás. + + + + + ports-comms + release=cvs + + + Kommunikációs + szoftverek. + + + + + ports-converters + release=cvs + + + Karakterkódolások közti + átalakítók. + + + + + ports-databases + release=cvs + + + Adatbázisok. + + + + + ports-deskutils + release=cvs + + + A számítógép + feltalálása elõtt is + már létezõ + eszközök. + + + + + ports-devel + release=cvs + + + Fejlesztõeszközök. + + + + + ports-dns + release=cvs + + + Névfeloldással kapcsolatos + szoftverek. + + + + + ports-editors + release=cvs + + + Szövegszerkesztõk. + + + + + ports-emulators + release=cvs + + + Más operációs + rendszerek emulátorai. + + + + + ports-finance + release=cvs + + + Pénzügyi, gazdasági + és hasonló + alkalmazások. + + + + + ports-ftp + release=cvs + + + FTP kliensek és szerverek. + + + + + ports-games + release=cvs + + + Játékok. + + + + + ports-german + release=cvs + + + Német nyelvi + támogatás. + + + + + ports-graphics + release=cvs + + + Grafikus + segédeszközök. + + + + + ports-hebrew + release=cvs + + + Héber nyelvi + támogatás. + + + + + ports-hungarian + release=cvs + + + Magyar nyelvi + támogatás. + + + + + ports-irc + release=cvs + + + IRC-vel kapcsolatos programok. + + + + + ports-japanese + release=cvs + + + Japán nyelvi + támogatás. + + + + + ports-java + release=cvs + + + &java; + segédeszközök. + + + + + ports-korean + release=cvs + + + Koreai nyelvi + támogatás. + + + + + ports-lang + release=cvs + + + Programozási nyelvek. + + + + + ports-mail + release=cvs + + + Levelezõ programok. + + + + + ports-math + release=cvs + + + Numerikus + számításokkal + foglalkozó programok. + + + + + ports-mbone + release=cvs + + + MBone alkalmazások. + + + + + ports-misc + release=cvs + + + Egyéb segédprogramok. + + + + + ports-multimedia + release=cvs + + + Multimediás szoftverek. + + + + + ports-net + release=cvs + + + Hálózati szoftverek. + + + + + ports-net-im + release=cvs + + + Üzenetküldõ (Instant + Messaging, IM) szoftverek. + + + + + ports-net-mgmt + release=cvs + + + Hálózati karbantartó + szoftverek. + + + + + ports-net-p2p + release=cvs + + + Egyenrangú (Peer to Peer, P2P) + hálózatok. + + + + + ports-news + release=cvs + + + USENET hírszoftverek. + + + + + ports-palm + release=cvs + + + A Palm sorozat + szoftveres támogatása. + + + + + ports-polish + release=cvs + + + Lengyel nyelvi + támogatás. + + + + + ports-ports-mgmt + release=cvs + + + A portok és csomagok + karbantartását végzõ + segédeszközök. + + + + + ports-portuguese + release=cvs + + + Portugál nyelvi + támogatás. + + + + + ports-print + release=cvs + + + Nyomdai programok. + + + + + ports-russian + release=cvs + + + Orosz nyelvi + támogatás. + + + + + ports-science + release=cvs + + + Tudományos programok. + + + + + ports-security + release=cvs + + + Biztonsági + segédprogramok. + + + + + ports-shells + release=cvs + + + Parancsértelmezõk. + + + + + ports-sysutils + release=cvs + + + Rendszerprogramok. + + + + + ports-textproc + release=cvs + + + Szövegfeldolgozást + segítõ eszközök + (kivéve az asztali + kiadványszerkesztést). + + + + + ports-ukrainian + release=cvs + + + Ukrán nyelvi + támogatás. + + + + + ports-vietnamese + release=cvs + + + Vietnámi nyelvi + támogatás. + + + + + ports-www + release=cvs + + + A világhálóhoz + tartozó szoftverek. + + + + + ports-x11 + release=cvs + + + Az X Window System + mûködését + segítõ portok. + + + + + ports-x11-clocks + release=cvs + + + X11 órák. + + + + + ports-x11-drivers + release=cvs + + + X11 meghajtók. + + + + + ports-x11-fm + release=cvs + + + X11 + állománykezelõk. + + + + + ports-x11-fonts + release=cvs + + + X11 betûtípusok és a + hozzájuk tartozó + segédprogramok. + + + + + ports-x11-toolkits + release=cvs + + + X11 eszközrendszerek. + + + + + ports-x11-servers + release=cvs + + + X11 szerverek. + + + + + ports-x11-themes + release=cvs + + + X11 témák. + + + + + ports-x11-wm + release=cvs + + + X11 ablakkezelõk. + + + + + + + + projects-all release=cvs + + A &os; projektek forrásainak + repositoryja. + + + + + src-all release=cvs + + + A &os; fontosabb forrásai, a + titkosításhoz tartozó + kódokkal együtt. + + + + src-base + release=cvs + + + A /usr/src + könyvtárban levõ egyéb + állományok. + + + + + src-bin + release=cvs + + + Az egyfelhasználós + módban használható + segédeszközök + (/usr/src/bin). + + + + + src-cddl + release=cvs + + + A CDDL licenc szerint terjesztett + segédprogramok és + függvénykönyvtárak + (/usr/src/cddl). + + + + + src-contrib + release=cvs + + + A &os; Projekten kívül + fejlesztett segédprogramok és + függvénykönyvtárak, + viszonylag kevés + módosítással + (/usr/src/contrib). + + + + + src-crypto release=cvs + + + A &os; Projekten kívül + fejlesztett, titkosítással + kapcsolatos segédprogramok és + függvénykönyvtárak, + viszonylag kevés + módosítással + (/usr/src/crypto). + + + + + src-eBones release=cvs + + + Kerberos és DES + (/usr/src/eBones). A + &os; jelenlegi változatai nem + használják. + + + + + src-etc + release=cvs + + + A rendszer + beállításait + tartalmazó állományok + (/usr/src/etc). + + + + + src-games + release=cvs + + + Játékok + (/usr/src/games). + + + + + src-gnu + release=cvs + + + A GPL licenc szerint terjesztett + segédprogramok + (/usr/src/gnu). + + + + + src-include + release=cvs + + + (C nyelvi) Header állományok + (/usr/src/include). + + + + + src-kerberos5 + release=cvs + + + A Kerberos5 biztonsági csomag + (/usr/src/kerberos5). + + + + + src-kerberosIV + release=cvs + + + A KerberosIV biztonsági csomag + (/usr/src/kerberosIV). + + + + + src-lib + release=cvs + + + Függvénykönyvtárak + (/usr/src/lib). + + + + + src-libexec + release=cvs + + + Más programok által + futtatott rendszerprogramok + (/usr/src/libexec). + + + + + src-release + release=cvs + + + A &os; kiadások + elkészítéséhez + szükséges állományok + (/usr/src/release). + + + + + src-rescue + release=cvs + + + Statikusan linkelt programok + vészhelyzet esetére, + lásd &man.rescue.8; + (/usr/src/rescue). + + + + + src-sbin release=cvs + + + Egyfelhasználós + módban használható + rendszereszközök + (/usr/src/sbin). + + + + + src-secure + release=cvs + + + Titkosítással + foglalkozó + függvénykönyvtárak + és parancsok + (/usr/src/secure). + + + + + src-share + release=cvs + + + Több rendszer között + megosztható állományok + (/usr/src/share). + + + + + src-sys + release=cvs + + + A rendszermag + (/usr/src/sys). + + + + + src-sys-crypto + release=cvs + + + A rendszermagban levõ + titkosítással foglalkozó + kód + (/usr/src/sys/crypto). + + + + + src-tools + release=cvs + + + A &os; karbantartására + való különbözõ + segédprogramok + (/usr/src/tools). + + + + + src-usrbin + release=cvs + + + Felhasználói + segédprogramok + (/usr/src/usr.bin). + + + + + src-usrsbin + release=cvs + + + Rendszerszintû segédprogramok + (/usr/src/usr.sbin). + + + + + + + + www release=cvs + + + A &os; Projekt honlapjának + forráskódja. + + + + + + + + distrib release=self + + + A CVSup szerver + saját konfigurációs + állományai. A + CVSup + tükrözései + használják. + + + + + gnats release=current + + + A GNATS hibanyilvántartó + adatbázis. + + + + + mail-archive release=current + + + A &os; levelezési listáinak + archívuma. + + + + + www release=current + + + A &os; Projekt honlapjának generált + állományai (de nem a forrásai). A + WWW tükrözések + használják. + + + + + + + + Bõvebb információk + + A CVSup részletesebb + bemutatását és a hozzátartozó + GYIK-ot A CVSup + honlapján találjuk meg. + + A CVSup &os;-re vonatkozó + tárgyalása a &a.hackers;n történik. + Itt és az &a.announce;n jelentik be a szoftver + újabb változatait. + + A CVSup alkalmazással + kapcsolatos kérdéseket és + hibajelentéseket illetõen a CVSup + GYIK-ot érdemes megnéznünk. + + + + + CVSup oldalak + + A &os; CVSup szerverei az + alábbi oldalakon érhetõek el: + + &chap.mirrors.cvsup.inc; + + + + + + A <application>Portsnap</application> + használata + + + Bevezetés + + A Portsnap a &os; + portfájának biztonságos + terjesztésére megalkotott rendszer. + Hozzávetõleg óránként egyszer a + portfa egy újabb pillanatképe + jön létre, amit ezután + tömörítenek és digitálisan + aláírnak. Az így keletkezõ + állományokat végül HTTP-n + keresztül terjesztik. + + A CVSuphoz hasonlóan a + Portsnap szintén + lehúzással frissít. + Ennek folyamán a becsomagolt és + aláírt portfák egy webszerveren + tároltan várják passzívan a kliensek + kéréseit. A felhasználók így + vagy a &man.portsnap.8; elindításával + azonnal, vagy pedig a &man.cron.8; + segítségével rendszeresen automatikusan + kérhetnek frissítéseket. + + Technikai megfontolásokból a + Portsnap nem közvetlenül a + /usr/ports/ könyvtárban + található éles + portfát változtatja meg. Helyette + alapértelmezés szerint a + /var/db/portsnap/ könyvtárba + kerülõ tömörített + változatával dolgozik. A frissítés + befejeztével ezzel a tömörített + változattal módosítja az éles + portfát. + + + Ha a Portsnapet a &os; + Portgyûjteményébõl + telepítjük, akkor alapértelmezés + szerint a tömörített pillanatképet a + /var/db/portsnap/ könyvtár + helyett a /usr/local/portsnap/ + könyvtárban hozza létre. + + + + + + Telepítés + + A &os; 6.0 vagy késõbbi változataiban + már a Portsnap az alaprendszer + része. A &os; korábbi verzióra a ports-mgmt/portsnap porton + keresztül telepíthetjük. + + + + + A <application>Portsnap</application> + beállítása + + A Portsnap + mûködését az + /etc/portsnap.conf + konfigurációs állomány + vezérli. A felhasználók + többségének a benne helyet kapott + alapbeállítások megfelelõek. Aki + kíváncsi a részletekre, nézze meg a + &man.portsnap.conf.5; man oldalt. + + + Amennyiben a Portsnapet a &os; + Portgyûjteményébõl + telepítettük, a + /etc/portsnap.conf helyett a + /usr/local/etc/portsnap.conf + konfigurációs állományt fogja + használni. Ez az állomány a port + telepítésekor ugyan nem jön létre + automatikusan, de találhatunk belõle egy + mintát, amit a következõ paranccsal tudunk a + helyére másolni: + + &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf + + + + + + A <application>Portsnap</application> elsõ + futtatása + + A &man.portsnap.8; elsõ futtatásakor le kell + töltenünk a /var/db/portsnap/ + (vagy /usr/local/portsnap/, ha a + Portsnapet a + Portgyûjteménybõl telepítettük) + könyvtárba az egész portfa + tömörített képét. Ez 2006 + elejétõl nagyjából 41 MB + méretûre dagadt. + + &prompt.root; portsnap fetch + + Miután sikerült letöltenünk a + tömörített képet, az + éles portfa egy + példányát tudjuk kibontani a + /usr/ports/ könyvtárba. Ez a + lépés még abban az esetben is + kötelezõ, ha már valamilyen módon + feltöltöttük volna ezt a könyvtárat + (például a CVSup + segítségével), hiszen ekkor hozza + létre a portsnap a + mûködéséhez szükséges + adatokat is, amelyek révén el tudja majd + dönteni, hogy a portfa pontosan mely részeit kell + frissítenie. + + &prompt.root; portsnap extract + + + A telepítés során alapból nem + jön létre a /usr/ports/ könyvtár. + Ha a &os; 6.0-RELEASE kiadását + használjuk, akkor a portsnap + indítása elõtt ezt a könyvtárat + el kell készítenünk. A &os; vagy a + Portsnap újabb + változataiban a portsnap elsõ + használata során ez már azonban + önmagától megtörténik. + + + + + + A portfa frissítése + + Miután letöltöttük a portfa + kiinduló pillanatképét és kibontottuk + a /usr/ports/ könyvtárba, a + frissítése két lépésben + végezhetõ el: elõször + elkérjük (fetch) a + tömörített kép + frissítéseit, majd ezután az így + nyert módosításokat + érvényesítjük az + éles portfán (update). Ez a két + lépés egyetlen portsnap parancs + kiadásával összefoglalható: + + &prompt.root; portsnap fetch update + + + A portsnap némely régebbi + változatai nem támogatják ezt a + típusú felírást. Ha tehát + nem mûködne az iménti parancs, akkor helyette + próbáljuk meg ezt: + + &prompt.root; portsnap fetch +&prompt.root; portsnap update + + + + + + A <application>Portsnap</application> automatikus + futtatása + + A Portsnap szervereken + keletkezõ hirtelen tömeg + elkerülése érdekében a + portsnap fetch nem fog &man.cron.8; + feladatként futni. Ehelyett erre létezik egy + külön portsnap cron parancs, amivel + a frissítések letöltése elõtt + véletlenszerûen vár legfeljebb 3600 + másodpercet. + + Emellett a portsnap update parancs + futtatását sem javasoljuk cron + feladatként, mivel komoly problémákat + képes okozni akkor, amikor egy port + fordítása vagy telepítése + során adjuk ki. Azonban az + kapcsoló megadásával a portok + INDEX állományát + biztonságosan tudjuk frissíteni. (Ebbõl + nyilvánvalóan következik, hogy a + portsnap -I update lefutása + után a portsnap update parancsot is ki + kell majd adni az kapcsoló + nélkül a fa többi részének + frissítéséhez.) + + Ha felvesszük a következõ sort az + /etc/crontab állományba, + akkor a portsnap frissíteni fogja a + tömörített felvételt és a + /usr/ports/ könyvtárban + levõ INDEX állományokat, + és küld egy levelet az elavult feltelepített + portokról: + + 0 3 * * * root portsnap -I cron update && pkg_version -vIL= + + + Ha a rendszeróra nem helyi idõ szerint + jár, akkor a 3 értéket + cseréljük ki egy 0 és 23 között + tetszõleges számra, így + hozzájárulunk a a + Portsnap szerverek + terhelésének egyenletes + elosztásához. + + + A portsnap egyes korábbi + változatai nem engednek meg egyszerre több + parancsot (mint például a cron + update). Ha az iménti + felírásban hibát kapunk, akkor + próbáljuk meg a portsnap -I cron + update parancsot kicserélni a + portsnap cron && portsnap -I update + parancsra. + + + + + + + CVS címkék + + Meg kell adnunk egy revízió + címkéjét, amikor a + cvs vagy + CVSup használatával + letöltjük vagy frissítjük a + forrásokat. A revíziós címkék + a &os; egyik fejlesztési irányát vagy egy + adott idõpontbeli állapotát hivatkozzák. + Az elõbbi egy ág címkéje, + míg az utóbbi pedig egy kiadás + címkéje. + + + Az ágak címkéi + + A HEAD kivételével (amely + mindig egy érvényes címke) az összes + címke csak a src/ fára + vonatkozik. A ports/, + doc/ és www/ + fák nem tartalmaznak ágakat. + + + + HEAD + + + A fõ fejlesztési ág, avagy a + &os;-CURRENT szimbolikus neve. Ha nem adunk meg + revíziót, ez lesz az + alapértelmezés. + + A CVSup számára + ezt . címke jelzi (itt most nem + mondatvégi pontot jelöli, hanem a + . karaktert). + + + A CVS számára ez lesz az + alapértelmezett érték, ha nem adunk + meg konkrét revíziós + címkét. Többnyire + nem túlzottan jó + ötlet egy STABLE változatot + használó gépen a CURRENT + verziójú források + kikérése, kivéve hacsak nem ez a + szándékunk. + + + + + + RELENG_7 + + + A FreeBSD-7.X fejlesztési ága, más + néven a FreeBSD 7-STABLE + + + + + RELENG_7_0 + + + A FreeBSD-7.0 kiadás ága, ahová + csak a biztonsági frissítések és + a kritikus hibajavítások kerülnek. + + + + + RELENG_6 + + + A FreeBSD-6.X fejlesztési ága, más + néven a FreeBSD 6-STABLE + + + + + RELENG_6_3 + + + A FreeBSD-6.3 kiadás ága, ahová + csak biztonsági frissítések és a + ritikus hibajavítások kerülnek. + + + + + RELENG_6_2 + + + A FreeBSD-6.2 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_6_1 + + + A FreeBSD-6.1 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_6_0 + + + A FreeBSD-6.0 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_5 + + + A FreeBSD-5.X fejlesztési ág, más + néven a FreeBSD 5-STABLE. + + + + + RELENG_5_5 + + + A FreeBSD-5.5 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_5_4 + + + A FreeBSD-5.4 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_5_3 + + + A FreeBSD-5.3 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_5_2 + + + A FreeBSD-5.2 és FreeBSD-5.2.1 kiadások + ága, ahová csak biztonsági + frissítések és a kritikus + hibajavítások kerülnek. + + + + + RELENG_5_1 + + + A FreeBSD-5.1 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_5_0 + + + A FreeBSD-5.0 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4 + + + A FreeBSD-4.X fejlesztési ága, más + néven a FreeBSD 4-STABLE. + + + + + RELENG_4_11 + + + A FreeBSD-4.11 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_10 + + + A FreeBSD-4.10 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_9 + + + A FreeBSD-4.9 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_8 + + + A FreeBSD-4.8 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_7 + + + A FreeBSD-4.7 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_6 + + + A FreeBSD-4.6 és FreeBSD-4.6.2 kiadások + ága, ahová csak biztonsági + frissítések és a kritikus + hibajavítások kerülnek. + + + + + RELENG_4_5 + + + A FreeBSD-4.5 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_4 + + + A FreeBSD-4.4 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_4_3 + + + A FreeBSD-4.3 kiadás ága, ahová + csak biztonsági frissítések és a + kritikus hibajavítások kerülnek. + + + + + RELENG_3 + + + A FreeBSD-3.X fejlesztési ága, más + néven a 3.X-STABLE. + + + + + RELENG_2_2 + + + A FreeBSD-2.2.X fejlesztési ága, + más néven a 2.2-STABLE. Ez az ág + manapság már elavult. + + + + + + + + A kiadások címkéi + + Ezek a címkék a &os; egyes kiadásainak + dátumára hivatkoznak. Egy kiadás + elõkészítésének és + terjesztésének folyamatáról + részleteiben a kiadásokat + összefoglaló lapról és a + + kiadások építésérõl + szóló cikkbõl + tájékozódhatunk. Az src fában + RELENG_ kezdetû címkéket + találunk. A + ports és doc fákban a + címkék nevei a RELEASE + elõtaggal kezdõdnek. Végezetül a + www fában + nincsenek kiadásokhoz tartozó + címkék. + + + + RELENG_7_0_0_RELEASE + + + FreeBSD 7.0 + + + + + RELENG_6_3_0_RELEASE + + + FreeBSD 6.3 + + + + + RELENG_6_2_0_RELEASE + + + FreeBSD 6.2 + + + + + RELENG_6_1_0_RELEASE + + + FreeBSD 6.1 + + + + + RELENG_6_0_0_RELEASE + + + FreeBSD 6.0 + + + + + RELENG_5_5_0_RELEASE + + + FreeBSD 5.5 + + + + + RELENG_5_4_0_RELEASE + + + FreeBSD 5.4 + + + + + RELENG_4_11_0_RELEASE + + + FreeBSD 4.11 + + + + + RELENG_5_3_0_RELEASE + + + FreeBSD 5.3 + + + + + RELENG_4_10_0_RELEASE + + + FreeBSD 4.10 + + + + + RELENG_5_2_1_RELEASE + + + FreeBSD 5.2.1 + + + + + RELENG_5_2_0_RELEASE + + + FreeBSD 5.2 + + + + + RELENG_4_9_0_RELEASE + + + FreeBSD 4.9 + + + + + RELENG_5_1_0_RELEASE + + + FreeBSD 5.1 + + + + + RELENG_4_8_0_RELEASE + + + FreeBSD 4.8 + + + + + RELENG_5_0_0_RELEASE + + + FreeBSD 5.0 + + + + + RELENG_4_7_0_RELEASE + + + FreeBSD 4.7 + + + + + RELENG_4_6_2_RELEASE + + + FreeBSD 4.6.2 + + + + + RELENG_4_6_1_RELEASE + + + FreeBSD 4.6.1 + + + + + RELENG_4_6_0_RELEASE + + + FreeBSD 4.6 + + + + + RELENG_4_5_0_RELEASE + + + FreeBSD 4.5 + + + + + RELENG_4_4_0_RELEASE + + + FreeBSD 4.4 + + + + + RELENG_4_3_0_RELEASE + + + FreeBSD 4.3 + + + + + RELENG_4_2_0_RELEASE + + + FreeBSD 4.2 + + + + + RELENG_4_1_1_RELEASE + + + FreeBSD 4.1.1 + + + + + RELENG_4_1_0_RELEASE + + + FreeBSD 4.1 + + + + + RELENG_4_0_0_RELEASE + + + FreeBSD 4.0 + + + + + RELENG_3_5_0_RELEASE + + + FreeBSD-3.5 + + + + + RELENG_3_4_0_RELEASE + + + FreeBSD-3.4 + + + + + RELENG_3_3_0_RELEASE + + + FreeBSD-3.3 + + + + + RELENG_3_2_0_RELEASE + + + FreeBSD-3.2 + + + + + RELENG_3_1_0_RELEASE + + + FreeBSD-3.1 + + + + + RELENG_3_0_0_RELEASE + + + FreeBSD-3.0 + + + + + RELENG_2_2_8_RELEASE + + + FreeBSD-2.2.8 + + + + + RELENG_2_2_7_RELEASE + + + FreeBSD-2.2.7 + + + + + RELENG_2_2_6_RELEASE + + + FreeBSD-2.2.6 + + + + + RELENG_2_2_5_RELEASE + + + FreeBSD-2.2.5 + + + + + RELENG_2_2_2_RELEASE + + + FreeBSD-2.2.2 + + + + + RELENG_2_2_1_RELEASE + + + FreeBSD-2.2.1 + + + + + RELENG_2_2_0_RELEASE + + + FreeBSD-2.2.0 + + + + + + + + AFS oldalak + + A &os; a következõ szerverein érhetõ el + AFS: + + + + Svédország + + + Az állományok a következõ helyen + érhetõek el: + /afs/stacken.kth.se/ftp/pub/FreeBSD/ + + stacken.kth.se # Stacken Computer Club, KTH, Svédország +130.237.234.43 #hot.stacken.kth.se +130.237.237.230 #fishburger.stacken.kth.se +130.237.234.3 #milko.stacken.kth.se + + Karbantartó: + ftp@stacken.kth.se + + + + + + + + Rsync oldalak + + A most következõ oldalakon a &os;-t + érhetjük el az rsync protokollal. Az + rsync segédprogram + mûködésében leginkább a &man.rcp.1; + parancshoz hasonlít, de sokkal több + beállítással rendelkezik, és az rsync + távoli frissítéseket kezelõ protokollja + segítségével csak az állományok + csoportjai között levõ eltéréseket + küldi át, amivel a hálózaton + keresztüli szinkronizáció rendkívül + felgyorsítható. Ez olyankor jelent számunkra + a legtöbbet, ha a &os; FTP szerverének vagy CVS + repositoryjának egyik tükrözését + tartjuk karban. Az rsync több + operációs rendszerre is elérhetõ, + és &os;-n a net/rsync + port vagy csomag tartalmazza. + + + + Cseh Köztársaság + + + rsync://ftp.cz.FreeBSD.org/ + + Elérhetõ gyûjtemények: + + + + ftp: a &os; FTP szerverének részleges + tükrözése. + + + FreeBSD: a &os; FTP szerverének teljes + tükrözése. + + + + + + + Németország + + + rsync://grappa.unix-ag.uni-kl.de/ + + Elérhetõ gyûjtemények: + + + + freebsd-cvs: a &os; teljes CVS + tárháza. + + + + Ez a gép ezen kívül még + tükrözi a NetBSD és OpenBSD CVS + repositorykat is. + + + + + Hollandia + + + rsync://ftp.nl.FreeBSD.org/ + + Elérhetõ gyûjtemények: + + + + vol/4/freebsd-core: a &os; FTP szerverének + teljes tükrözése. + + + + + + + Tajvan + + + rsync://ftp.tw.FreeBSD.org/ + rsync://ftp2.tw.FreeBSD.org/ + rsync://ftp6.tw.FreeBSD.org/ + + Elérhetõ gyûjtemények: + + + FreeBSD: a &os; FTP szerverének teljes + tükrözése. + + + + + + + Egyesült Királyság + + + rsync://rsync.mirror.ac.uk/ + + Elérhetõ gyûjtemények: + + + + ftp.FreeBSD.org: a &os; FTP szerverének + teljes tükrözése. + + + + + + + Amerikai Egyesült Államok + + + rsync://ftp-master.FreeBSD.org/ + + Ezt a szervert csak az elsõdleges &os; + tükrözéseknek szabad + használniuk. + + Elérhetõ gyûjtemények: + + + + FreeBSD: a &os; FTP szerverének központi + archívuma. + + + acl: a &os; központi ACL listája. + + + + rsync://ftp13.FreeBSD.org/ + + Elérhetõ gyûjtemények: + + + + FreeBSD: a &os; FTP szerver teljes + tükrözése. + + + + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/multimedia/Makefile b/hu_HU.ISO8859-2/books/handbook/multimedia/Makefile new file mode 100644 index 0000000000..f90e1cd2b0 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/multimedia/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= multimedia/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml new file mode 100644 index 0000000000..35e8f311d4 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml @@ -0,0 +1,2445 @@ + + + + + + + + + Ross + Lippert + Szerkesztette: + + + + + Multimédia + + + Áttekintés + + A &os; a hangkártyák széles + választékát ismeri, ami által + képesek vagyunk + számítógépünkkel hi-fi + minõségû hangzást létrehozni. + Ennek részeként rögzíteni és + visszajátszani tudunk többek közt MPEG Audio + Layer 3 (MP3), WAV és Ogg Vorbis formátumokban. A + &os; Portgyûjteménye ezenkívül tartalmaz + még olyan alkalmazásokat is, amelyekkel szerkeszteni + lehet a felvett hangokat, effekteket hozzátenni és + vezérelni a hangkártyánkhoz csatlakoztatott + MIDI eszközöket. + + Némi kísérletezéssel a &os; + még videoállományok és DVD-k + lejátszására is rávehetõ. A + különféle videoanyagok + kódolására, + konvertálására és + visszajátszására alkalmas programok + száma azonban jóval kisebb, mint a hanganyagok + esetén. Például az írás + pillanatában nincs a &os; + Portgyûjteményében a formátumok + közti konvertálásra alkalmas, a videókat + olyan jól újrakódolni tudó + alkalmazás, amilyen az audio esetén az audio/sox. Azonban ezen a + területen a szoftverek palettája gyorsan + változik. + + Ebben a fejezetben bemutatjuk a hangkártyánk + beállításához szükséges + lépéseket. Az X11 telepítése + és beállítása () + során ugyan már foglalkoztunk a + videokártyánkkal kapcsolatos hardveres + problémákkal, azonban a jobb + visszajátszás érdekében további + cselfogásokat is be kell majd vetnünk. + + A fejezet elolvasása során + megismerjük: + + + + hogyan állítsuk be úgy a + rendszerünket, hogy felismerje a + hangkártyánkat; + + + + hogyan bizonyosodjuk meg róla, hogy a + kártyánk valóban + mûködik; + + + + hogyan oldjuk meg a hangkártya + beállítása során + felmerülõ problémákat; + + + + hogyan játsszunk le és kódoljunk + MP3-at vagy más egyéb + hangformátumot; + + + + hogyan támogatja a videokat az X szerver; + + + + hogyan adnak az egyes lejátszók és + kódolók még jobb eredményt + + + + hogyan játsszunk le DVD-ket, + .mpg és .avi + állományokat; + + + + hogyan mentsük a CD-k és DVD-k + tartalmát állományokba; + + + + hogyan állítsuk be a TV + kártyánkat + + + + hogyan állítsunk be egy scannert. + + + + A fejezet elolvasásához ajánlott: + + + + egy új rendszermag + beállításának és + telepítésének ismerete (). + + + + + Ha zenei CD-ket próbálunk meg a &man.mount.8; + paranccsal csatlakoztatni, akkor az hibával, vagy a + legrosszabb esetben akár teljes + rendszerösszeomlással is járhat. + Az ilyen típusú lemezek az ISO + szabványú + állományrendszerekétõl + eltérõ kódolással rendelkeznek. + + + + + + + + + Moses + Moore + Írta: + + + + + Marc + Fonvieille + A &os; 5.X verziójához + igazította: + + + + + A hangkártya beállítása + + + A rendszer beállítása + + PCI + ISA + hangkártya + + A mûvelet megkezdése elõtt ki kell + derítenünk, milyen típusú + hangkártyánk van, milyen chip van rajta, PCI vagy + ISA buszon csatlakozik-e. A &os; rengeteg PCI és ISA + buszos kártyát ismer egyaránt. A + sajátunk beazonosításához a + támogatott hangeszközök listáját + a Hardware Notes + (Hardverjegyzék) oldalán találhatjuk meg. + Ebbõl a jegyzékbõl mellesleg azt is + megtudhatjuk, hogy melyik meghajtó kezeli a + kártyánkat. + + + rendszermag + beállítás + + + A hangeszközünk használatához be + kell töltenünk a neki megfelelõ meghajtót. + Ez két módon is megtehetõ. Ezek + közül az a legkönnyebb, ha a &man.kldload.8; + paranccsal egyszerûen betöltjük a rendszermag + hangkártyánkhoz tartozó modulját. + Ezt megtehetjük közvetlenül + parancssorból: + + &prompt.root; kldload snd_emu10k1 + + vagy a /boot/loader.conf + állományból az alábbihoz + hasonló sor hozzáadásával: + + snd_emu10k1_load="YES" + + A fenti példák a Creative &soundblaster; Live! + hangkártyára vonatkoznak. A többi + betölthetõ hangkártya-modul felsorolása + a /boot/defaults/loader.conf + állományban található. Ha nem + vagyunk benne biztosak, hogy melyik meghajtót is akarjuk + pontosan használni, akkor próbálkozzunk az + snd_driver modul + betöltésével: + + &prompt.root; kldload snd_driver + + Ez egy olyan metameghajtó, ami egyszerre betölti + az összes érintett eszközmeghajtót, + és segítségével + felgyorsíthatjuk a megfelelõ meghajtó + megtalálását. A + /boot/loader.conf + használatával is be tudjuk ugyanígy + tölteni az összes meghajtót. + + Az snd_driver metameghajtó + betöltése után úgy kereshetjük + meg a ténylegesen használatban levõ + meghajtót, ha megnézzük a + /dev/sndstat állományt a + cat /dev/sndstat paranccsal. + + A második módszer szerint a + hangkártyánk támogatását + statikusan beépítjük a rendszermagba. A + lentebb található szakaszban olvashatjuk mindazok + az információkat, amikre + szükségünk lehet ennek elvégzése + közben. A rendszermag + újrafordításával kapcsolatban + forduljunk a hez. + + + A hangkártya támogatásával + rendelkezõ saját rendszermag + összeállítása + + Elsõként hozzá kell adnunk a + rendszermaghoz a hangeszközök + alapmeghajtóját, a &man.sound.4; eszközt. + Ezt a rendszermag beállításait + tartalmazó állományban az alábbi + sor felvételével tehetjük meg: + + device sound + + Ezután tegyük még hozzá a + hangkártyánkhoz kapcsolódó + támogatást is. Ehhez viszont pontosan tudunk + kell, melyik meghajtó képes mûködtetni + a kártyát. A hangkártyához + tartozó meghajtót a Hardware Notes + (Hardverjegyzék)-ben található + eszközök listájából + deríthetjük ki. Például a Creative + &soundblaster; Live! hangkártyát a + &man.snd.emu10k1.4; meghajtó kezeli. Ennek a + hangkártyának a támogatását + az alábbi sorral állíthatjuk be: + + device snd_emu10k1 + + Az itt használatos formátumot a + meghajtó man oldalának + átolvasásából tudhatjuk meg. + Azonban az összes támogatott hangkártya + meghajtó megadásának pontos + formátuma megtalálható a + /usr/src/sys/conf/NOTES + állományban is. + + A PnP (Plug n Play)-t nem ismerõ ISA + kártyák esetén az összes többi + nem PnP-s ISA kártyához hasonlóan + szükséges lehet a rendszermag + számára megadnunk a kártya hardveres + beállításait (IRQ, I/O port stb). Ezt a + /boot/device.hints + állományon keresztül tehetjük meg. A + rendszerindítási folyamat során a + &man.loader.8; beolvassa ezt az állományt, majd + átadja a benne szereplõ + információkat a rendszermagnak. + Például a Creative &soundblaster; 16, nem PnP-s + ISA kártya az snd_sb16 + meghajtóval együtt az &man.snd.sbc.4; + meghajtót használja. A kártya + használatához a rendszermag + beállításait tartalmazó + állományba ezeket a sorokat kell megadni: + + device snd_sbc +device snd_sb16 + + valamint a /boot/device.hints + állományba ezeket: + + hint.sbc.0.at="isa" +hint.sbc.0.port="0x220" +hint.sbc.0.irq="5" +hint.sbc.0.drq="1" +hint.sbc.0.flags="0x15" + + Ekkor a kártya a 0x220 I/O + portot és 5 IRQ-t + használja. + + A /boot/device.hints + állományban alkalmazott felírási + módról bõvebben a &man.sound.4;, valamint a + kérdéses meghajtó man oldalán + tájékozódhatunk. + + A fentiekben bemutatott beállítások + alapértelmezettek, néhány esetben azonban + a kártyánknak megfelelõen meg kell + változtatnunk az IRQ és egyéb + értékeket. Errõl a + kártyáról konkrétan a + &man.snd.sbc.4; man oldalon olvashatunk + részletesebben. + + + + + + A hangkártya + kipróbálása + + Miután újraindítottuk a + számítógépünket a + módosított rendszermaggal, vagy miután + betöltöttük a szükséges modult, a + hangkártyának valahogy így kell megjelennie + a rendszerünk üzenetpufferében + (&man.dmesg.8;): + + pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 +pcm0: [GIANT-LOCKED] +pcm0: <Cirrus Logic CS4205 AC97 Codec> + + A hangkártyánk állapota a + /dev/sndstat állományon + keresztül ellenõrizhetõ: + + &prompt.root; cat /dev/sndstat +FreeBSD Audio Driver (newpcm) +Installed devices: +pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 +kld snd_ich (1p/2r/0v channels duplex default) + + Ez a kiírás rendszerünként + eltérhet. Ha nem látunk semmilyen + pcm0 eszközt, akkor menjünk + vissza és nézzük át újra, + pontosan mit is csináltunk. Vizsgáljuk át + a rendszermagunk beállításait + tartalmazó állományt és + gyõzõdjünk meg róla, hogy a megfelelõ + meghajtót adtuk meg. Az itt felmerülõ gyakori + gondokkal a foglalkozik. + + Ha azonban minden remekül haladt, akkor most már + van egy mûködõ hangkártyánk. Ha + rendesen összekapcsoltuk hangkártyánkat a CD- + vagy DVD-meghajtónk audio csatlakozásával, + akkor tegyünk egy CD-t a meghajtóba és + kezdjük el játszani a &man.cdcontrol.1; + paranccsal: + + &prompt.user; cdcontrol -f /dev/acd0 play 1 + + Az olyan alkalmazások, mint például az + audio/workman, ehhez egy + sokkal barátságosabb felületet + nyújtanak. Az MP3 formátumú + állományok meghallgatásához pedig + minden bizonnyal jól fog jönni egy olyan + alkalmazás is, mint például az audio/mpg123. + + A kártyát úgy is tesztelhetjük, ha + az alábbihoz hasonló módon adatokat + küldünk a /dev/dsp + állományba: + + &prompt.user; cat állománynév > /dev/dsp + + ahol az + állománynév + tetszõleges állomány neve lehet. A parancs + hatására valamilyen zajt kell hallanunk, és + ez egyben meg is erõsíti, hogy a + hangkártyánk mûködik. + + A hangkártyánk csatornáinak + jellemzõit a &man.mixer.8; paranccsal + állíthatjuk. Errõl további + részleteket a &man.mixer.8; man oldalon + olvashatunk. + + + Gyakori problémák + + eszközleíró + I/O port + IRQ + DSP + + + + + + Hiba + Megoldás + + + + + + sb_dspwr(XX) timed out + Nem állítottuk be jól az I/O + portot. + + + + bad irq XX + Nem állítottuk be jól az IRQ + értékét. Gondoskodjunk + róla, hogy a beállított + érték megegyezik a + hangkártyánkéval. + + + + xxx: gus pcm not attached, out of + memory + Nincs elég memória az eszköz + használatához. + + + + xxx: can't open /dev/dsp! + A fstat | grep dsp parancs + kiadásával ellenõrizzük, hogy + valamelyik alkalmazás használja-e + már az eszközt. Gyakori bajkeverõ az + esound és a + KDE + hangtámogatása. + + + + + + + + + + + + + Munish + Chopra + Írta: + + + + + Több hangforrás + kihasználása + + Gyakoran szükségünk lehet több + hangforrás egyidejû használatára, + fõleg olyankor, amikor az esound + vagy az artsd bizonyos + alkalmazásokkal nem hajlandó megosztani a + hangeszközt. + + A &os; ezt a virtuális + hangcsatornák használatával + oldja meg, amit a &man.sysctl.8; eszközön + keresztül tudunk engedélyezni. Amikor a + rendszermagban virtuális csatornák + használatával keverünk, akkor + lényegében képesek vagyunk a + hangkártyánk által egyszerre + játszható hangok számát + megtöbbszörözni. + + A virtuális csatornák számának + beállításához a sysctl két + változóját kell módosítanunk, + amelyet root + felhasználóként így tehetünk + meg: + + &prompt.root; sysctl hw.snd.pcm0.vchans=4 +&prompt.root; sysctl hw.snd.maxautovchans=4 + + A fenti példa négy virtuális + csatornát hoz létre, ami egészen + jellemzõ a mindennapi használatban. A + hw.snd.pcm0.vchans + pcm0 virtuális + csatornáinak számát adja meg, amelyet az + eszköz csatlakoztatása után tudunk + beállítani. A + hw.snd.maxautovchans az új + eszközhöz tartozó virtuális + csatornákat adja meg, ami akkor + állítódik be, amikor a &man.kldload.8; + paranccsal csatlakoztatjuk. Mivel a + pcm modul a többi + eszközmeghajtótól függetlenül + töltõdik be, ezért a + hw.snd.maxautovchans azt tárolja, hogy + a késõbb hozzá csatlakozó + eszközök mennyi virtuális csatornát + fognak majd kapni. + + + A használatban levõ + eszközöknél nem tudjuk megváltoztatni a + virtuális csatornák számát. Ehhez + elõször le kell állítanunk az + eszközt használó összes programot, + tehát a zenelejátszókat és + hangdémonokat. + + + Amennyiben nem használjuk ki a &man.devfs.5; + által nyújtott lehetõségeket, az + összes alkalmazásnak a + /dev/dsp0.x + eszközre kell mutatnia, ahol az + x értéke 0-tól + 3-ig terjedhet attól függõen, hogy a + hw.snd.pcm.0.vchans + értékét a fenti példához + hasonlóan 4-re állítottuk-e. A + &man.devfs.5; megoldását használó + rendszerek esetén ez a folyamat automatikusan lezajlik, + tehát az összes /dev/dsp + eszközre irányuló kérés + magától + átirányítódik. + + + + + + + + Josef + El-Rayes + Írta: + + + + + A keverõ alapértelmezett + értékeinek beállítása + + A keverõben megjelenõ + különbözõ csatornák + alapértékei a &man.pcm.4; meghajtó + forráskódjában huzalozottan + találhatóak meg. Számos alkalmazás + és démon segít két + hívás közt megõrizni a keverõben + beállított értékeket, azonban ez nem + teljesen egy tiszta megoldás. A meghajtó + szintjén is be tudjuk állítani a + keverõ alapértékeit — ezt a + /boot/device.hints állomány + megfelelõ módosításával + érhetjük el, például: + + hint.pcm.0.vol="50" + + Ezzel a &man.pcm.4; modul betöltése során + a hangerõ (volume) csatorna alapértelmezett + értéket 50-re állítjuk. + + + + + + + + + Chern + Lee + Írta: + + + + + MP3 + + Az MP3 (MPEG Layer 3 Audio) használatával + közel CD minõségû hangot lehet + elérni, ezért a mi &os; + munkaállomásunk sem maradhat ki elõnyeinek + élvezetébõl. + + + MP3 lejátszók + + Az XMMS (X Multimedia System) + kiemelkedõen a legnépszerûbb X11-es MP3 + lejátszó. Mivel az + XMMS grafikus + felhasználói felülete szinte teljesen + megegyezik a Nullsoft + Winampjának + felületével, ezért még a + Winamp skinjeit is + használhatjuk vele. Az + XMMS-ben ezenkívül + még a natív pluginek + támogatását is + megtalálhatjuk. + + Az XMMS a multimedia/xmms portból vagy + csomagból telepíthetõ. + + Az XMMS + használatára könnyû + ráérezni: megtaláljuk benne a + lejátszandó számok listáját, + egy grafikus hangszínszabályzót és + még sok minden mást. Akik már ismerik a + Winamp + mûködését, azok az + XMMS-t is egyszerûnek + érzik majd. + + Mellette az audio/mpg123 + port egy másik, parancssoros MP3 lejátszót + kínál fel. + + Az mpg123 + futtatásához paraméterként meg kell + adnunk a hangeszközt és lejátszandó + MP3 állományt, ahogy ez a példában + is látható: + + &prompt.root; mpg123 -a /dev/dsp1.0 IzéMizé-Sláger.mp3 +High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. +Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. +Uses code from various people. See 'README' for more! +THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! + + + + + +Playing MPEG stream from IzéMizé-Sláger.mp3 ... +MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo + + + Itt a /dev/dsp1.0 eszköznevet ne + felejtsük el kicserélni a rendszerünkben + található dsp eszköz + nevével. + + + + + Sávok lementése CD-rõl + + Mielõtt MP3 formátumba + tömörítenénk egy CD-t vagy annak egy + sávját, a CD-n található audio + adatot valahogy le kell tudnunk szedni a merevlemezre. Ezt + úgy tehetjük meg, ha a nyers CDDA (CD Digital Audio) + adatot WAV formátumú állományokba + mentjük. + + A sysutils/cdrtools + csomag részeként elérhetõ + cdda2wav segédprogrammal tudjuk a + CD-ken levõ audio és a hozzájuk + tartozó egyéb információkat + leszedni. + + A meghajtóban levõ CD teljes tartalmát + (root felhasználóként) + a következõ parancs kiadásával lehet + (sávonként) különálló WAV + állományokba menteni: + + &prompt.root; cdda2wav -D 0,1,0 -B + + A cdda2wav ismeri az ATAPI (IDE) + CD-meghajtókat, használatukhoz a SCSI + egység sorszáma helyett az eszköz + nevét kell megadni. Tehát például + így szedjük le egy IDE-meghajtóról a + 7. sávot: + + &prompt.root; cdda2wav -D /dev/acd0 -t 7 + + A a + 0,1,0 sorszámú SCSI + eszközre utal, ami megfelel cdrecord + -scanbus parancs eredményének. + + Az egyes sávok lementéséhez a + kapcsoló + használható: + + &prompt.root; cdda2wav -D 0,1,0 -t 7 + + A példa szerint a zenei CD-rõl a hetedik + sávot szedjük le. Egyszerre több sávot, + például az elsõtõl a hetedikig, egy + tartomány megadásával menthetünk + le: + + &prompt.root; cdda2wav -D 0,1,0 -t 1+7 + + A &man.dd.1; segédprogram is + használható ATAPI eszközökön + levõ hangsávok kimentéséhez. Ennek + lehetõségérõl részletesebben a + ban olvashatunk. + + + + + MP3 állományok + tömörítése + + Az MP3 állomány + tömörítésére manapság a + legtöbben a lame + elnevezésû kódolót + választják. A portfában a + lame az audio/lame helyen + található meg. + + Az elõbb kimentett WAV állományok + felhasználásával az alábbi + paranccsal tudjuk átalakítani a + audio01.wav állományt + audio01.mp3 + állománnyá: + + &prompt.root; lame -h -b 128 \ +--tt "Izé dal címe" \ +--ta "Izé-mizé elõadó" \ +--tl "Izé-mizé album" \ +--ty "2001" \ +--tc "Leszedte és tömörítette: Izé" \ +--tg "Mûfaj" \ +audio01.wav audio01.mp3 + + A 128 kbites tömörítés a + gyakorlatban leginkább használt + kódolási arány, sokan azonban a sokkal jobb + minõségû 160 vagy 192 kbites + tömörítést szeretik. Minél + nagyobb a kódolási arány, annál + több helyet fog foglalni a keletkezõ MP3 + állomány — habár a + minõsége is jobb lesz. A + kapcsoló alkalmazásával tudjuk + aktivizálni a jobb minõségû de + valamivel lassabb módot. A + kezdetû paraméterek ID3 tageket adnak meg, amelyek + segítségével az MP3 + állományokba rájuk vonatkozó + információkat tudunk beágyazni. A + tömörítés további + beállításairól a + lame man oldalán + tájékozódhatunk. + + + + + MP3 állományok + kitömörítése + + Ha MP3 formátumú állományokat + szeretnénk audio CD-re írni, akkor ehhez + elõször tömörítetlen WAV + formátumba kell ezeket alakítanunk. Az + XMMS és az + mpg123 is egyaránt + lehetõséged ad az MP3 állományok + kitömörítésére. + + Lemezre írás az + XMMS-sel: + + + + Indítsuk el az XMMS + alkalmazást. + + + + Az XMMS menüjének + felhozásához kattinsunk jobb gombbal az + ablakjára. + + + + Válasszuk az Options + almenüben található + Preference menüpontot. + + + + Változtassuk meg az Output Plugin + beállítást a Disk Writer + Plugin értékre. + + + + Nyomjunk a Configure gombra. + + + + Írjuk be (vagy válasszuk ki a + Browse gombbal) a könyvtárat, + ahová majd a kitömörített + állományok kerülnek. + + + + Az eddig megszokottak szerint töltsük be az + XMMS-be az MP3 + állományt, állítsuk 100%-ra a + hangerõt és kapcsoljuk ki a + hangszínszabályzót (EQ, + equalizer). + + + + Nyomjuk le a Play gombot — + úgy fog tûnni, mintha az + XMMS játszaná az + MP3 állományt, de nem hallunk semmit. Ekkor a + tartalmát állományba menti. + + + + Mikor befejeztük a + kitömörítést, ne felejtsük el + visszaállítani az Output Plugin + értékét az + alapértelmezettre. + + + + Írás a szabványos kimenetre az + mpg123-mal: + + + + Futtassuk le a mpg123 -s + audio01.mp3 > + audio01.pcm parancsot. + + + + Az XMMS az + állományokat WAV formátumban írja, + miközben az mpg123 nyers PCM + hangadatokat képez belõlük. A + cdrecord használata + során mind a két formátumból + hozhatóak létre audio CD-k. A nyers PCM a + &man.burncd.8; programmal használható. Amikor WAV + állományokkal dolgozunk, minden egyes sáv + elején egy apró kattanást hallhatunk: ez a + WAV állomány fejléce lesz. A (audio/sox portból vagy + csomagból telepíthetõ) + SoX segédprogrammal a WAV + formátumú állományok fejléce + pillanatok alatt eltávolítható: + + &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw + + A CD-írók &os; alatti + használatával kapcsolatban olvassuk el a t. + + + + + + + + + Ross + Lippert + Írta: + + + + + Videók lejátszása + + A videolejátszás egy nagyon friss és + gyorsan fejlõdõ alkalmazási terület. + Legyünk türelmesek, ez nem minden fog annyira + könnyen menni, mint a hangok esetében. + + A kezdéshez nem árt tudnunk, hogy a + videokártyánk milyen gyártmányú + és milyen chipet használ. Míg az + &xorg; és az + &xfree86; számos + különféle videokártyát ismer, + csupán töredékükkel lehet jó + lejátszási teljesítményt + elõhozni. Az X11 futtatása közben az + &man.xdpyinfo.1; parancs kiadásával + kérdezhetjük le az X szervertõl a + kártyánk használatával + elérhetõ kiterjesztéseket. + + Érdemes a kezünk ügyében tartani egy + rövidke MPEG formátumú állományt, + amellyel majd ki tudjuk próbálni a + különféle lejátszókat és + azok beállításait. Mivel egyes DVD + lejátszók alapértelmezés szerint a + /dev/dvd helyen keresik a + lejátszandó DVD eszközt, vagy egyszerûen + csak így írták meg ezeket mindenképpen + hasznos lehet, ha szimbolikus linkeket hozunk létre a + megfelelõ eszközökre: + + &prompt.root; ln -sf /dev/acd0 /dev/dvd +&prompt.root; ln -sf /dev/acd0 /dev/rdvd + + A &man.devfs.5; mûködése miatt azonban ezek a + kézzel létrehozott linkek az + újraindítás után már nem + maradnak meg. A szimbolikus linkeket a rendszer minden egyes + indulásakor úgy tudjuk automatikusan + létrehozni, hogy ha az /etc/devfs.conf + állományba felvesszük az alábbi + sort: + + link acd0 dvd +link acd0 rdvd + + Emellett a DVD-k titkosításának + feloldása, mely a DVD-meghajtók speciális + funkcióit igényli, a DVD eszközökön + írási jogot is igényel. + + Az X11 osztott memóriát kezelõ + felületének gyorsításához + javasolt néhány &man.sysctl.8; változó + értékének megnövelése is: + + kern.ipc.shmmax=67108864 +kern.ipc.shmall=32768 + + + A megjelenítõ képességeinek + megállapítása + + XVideo + SDL + DGA + + Több különbözõ úton lehet + X11 alatt videókat nézni, de ennek tényleges + módját igazából a + rendelkezésre álló hardver határozza + meg. Az itt leírt módszerek által + kihozható minõség hardverenkét + eltérhet. Másodsorban a videók + megjelenítése az X11-ben az utóbbi + idõben igen nagy hangsúlyt kapott, ezért az + &xorg; és az + &xfree86; minden egyes + változatával jelentõsen javulhat a helyzet + ezen a téren. + + A videók megjelenítésére + használt gyakori felületek: + + + + X11: az X11 normális kimenete osztott + memórián keresztül + + + XVideo: az X11 felületének + kiterjesztése, ami tetszõleges X11 által + kirajzolható objektum esetén támogat + videót + + + SDL: a Simple Directmedia Layer + + + DGA: a Direct Graphics Access (közvetlen grafikus + hozzáférés) + + + SVGAlib: alacsonyszintû konzolos grafikus + réteg + + + + + XVideo + + Az &xorg; és az + &xfree86; 4.X rendelkezik egy + XVideo (avagy Xvideo, Xv, xv) + elnevezésû kiterjesztéssel, amelyen + keresztül egy speciális gyorsítás + segítségével a kirajzolható + objektumokban közvetlenül meg tudunk + jeleníteni videókat. Ezzel a + kiterjesztéssel még a gyengébb + gépeken is nagyon jó minõségû + lejátszást tudunk elérni. + + A kiterjesztés + mûködésérõl az + xvinfo parancs kiadásával + gyõzõdhetünk meg: + + &prompt.user; xvinfo + + Ha a parancs eredménye ehhez hasonló, akkor + a kártyánk támogatja az + XVideót: + + X-Video Extension version 2.2 +screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 + "XV_COLORKEY" (range 0 to 16777215) + client settable attribute + client gettable attribute (current value is 2110) + "XV_BRIGHTNESS" (range -128 to 127) + client settable attribute + client gettable attribute (current value is 0) + "XV_CONTRAST" (range 0 to 255) + client settable attribute + client gettable attribute (current value is 128) + "XV_SATURATION" (range 0 to 255) + client settable attribute + client gettable attribute (current value is 128) + "XV_HUE" (range -180 to 180) + client settable attribute + client gettable attribute (current value is 0) + maximum XvImage size: 1024 x 1024 + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) + id: 0x30323449 (I420) + guid: 49343230-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) + id: 0x36315652 (RV16) + guid: 52563135-0000-0000-0000-000000000000 + bits per pixel: 16 + number of planes: 1 + type: RGB (packed) + depth: 0 + red, green, blue masks: 0x1f, 0x3e0, 0x7c00 + id: 0x35315652 (RV15) + guid: 52563136-0000-0000-0000-000000000000 + bits per pixel: 16 + number of planes: 1 + type: RGB (packed) + depth: 0 + red, green, blue masks: 0x1f, 0x7e0, 0xf800 + id: 0x31313259 (Y211) + guid: 59323131-0000-0010-8000-00aa00389b71 + bits per pixel: 6 + number of planes: 3 + type: YUV (packed) + id: 0x0 + guid: 00000000-0000-0000-0000-000000000000 + bits per pixel: 0 + number of planes: 0 + type: RGB (packed) + depth: 1 + red, green, blue masks: 0x0, 0x0, 0x0 + + Az XVideo nem mindegyik + implementációjában vannak jelen a + felsorolt formátumok (YUV2, YUV12 stb.), ami viszont + néhány lejátszó + számára akadályokat jelenthet. + + Amennyiben viszont ezt látjuk: + + X-Video Extension version 2.2 +screen #0 +no adaptors present + + Akkor a kártyánk nem rendelkezik XVideo + támogatással. + + Ha az XVideo nem támogatott a + kártyánk számára, akkor az + csupán csak annyit jelent, hogy a gépünknek + nehéz dolga lesz a videók + megjelenítéséhez szükséges + számítási kapacitás + kiszolgálásában. Azonban a + videokártyánktól és + processzorunktól függõen még + így is kielégítõ eredményt + tudunk elõcsalni. Ekkor viszont minden bizonnyal + érdemes lesz átolvasnunk ban, hogyan tudjuk + növelni a teljesítményét. + + + + + A Simple Directmedia Layer + + A Simple Directmedia Layer, vagy SDL, eredetileg a + µsoft.windows;, BeOS és &unix; közti + hordozhatóságot szándékozta + megvalósítani, aminek + segítségével a hangot és + grafikát hatékonyan használni tudó + alkalmazások hozhatóak létre. Az SDL + által nyújtott réteg a hardver olyan + alacsonyszintû absztrakcióját öleli + fel, amely gyakran még az X11 + felületénél is hatékonyabb. + + Az SDL a devel/sdl12 + helyen található. + + + + + Direct Graphics Access (Közvetlen grafikus + hozzáférés) + + A közvetlen grafikus hozzáférés + az X11 egy olyan kiterjesztése, ami lehetõvé + teszi a programok számára az X szerver + megkerülését és így + közvetlenül a videokártya + memóriáját képesek elérni. + Mivel a megosztás hatékony + megvalósításához ez nagyban + építkezik alacsonyszintû + leképzési mûveletekre, ezért az + ilyet használó programokat + root felhasználóként + kell futtatni. + + A DGA kiterjesztés a &man.dga.1; + segítségével tesztelhetõ és + mérhetõ. A dga parancs + kiadása után minden billentyû + lenyomására megváltoztatja a + képernyõn látható színeket. + A kilépéshez a q + billentyût kell lenyomni. + + + + + + A videókkal foglalkozó portok és + csomagok + + videoportok + videocsomagok + + Ebben a szakaszban a &os; + Portgyûjteményébõl a videók + lejátszására alkalmas programokat + vesszük számba. A videolejátszás + nagyon gyorsan fejlõdõ terület, ezért az + itt említett különbözõ + alkalmazások képességei az itt + leírtaktól némileg + eltérhetnek. + + Elõször is fontos tisztában lennünk + azzal, hogy számos &os;-n futó + videoalkalmazás eredetileg linuxos + alkalmazásként indult, és + közülük sokan még csak béta + minõségûek. Íme a &os;-n is + megtalálható videocsomagokkal kapcsolatos + néhány olyan gond, amivel esetleg + összefuthatunk: + + + + Az egyik alkalmazás nem képes + visszajátszani olyan állományt, amit + egy másik alkalmazás hozott + létre. + + + Az alkalmazás nem képes + visszajátszani a saját maga által + készített állományokat. + + + Ugyanazon az alkalmazás két + különbözõ gépen, amikor mind a + kettõn az adott konfigurációra + fordítjuk le, ugyanazt az állományt + másképpen játssza vissza. + + + Egy olyan látszólag egyértelmû + szûrõ, mint például a kép + átméretezése, a hibás + átmértezõ rutin miatt nagyon + csúnya eredményt produkál. + + + Az alkalmazás gyakran elszáll. + + + A porthoz nem találjuk a + dokumentációt, egyedül csak az interneten + vagy a port work + könyvtárában van. + + + + Sok alkalmazás a linuxizmus jeleit is + hordozza, vagyis gondok adódhatnak abból, hogy a + szerzõk az alkalmazások + mûködtetéséhez a Linux rendszermag + és a különféle terjesztésekben + megtalálható módosított + szabványos könyvtárak + különlegességeit használják ki. + Ezeket a portok karbantartói nem mindig észlelik + és javítják ki, ami miatt az + alábbiak bármikor bekövetkezhetnek: + + + + A processzor jellemzõit a + /proc/cpuinfo állományon + keresztül állapítják meg. + + + A szálak helytelen használatuk miatt a + program befejezõdésekor + összeakadnak. + + + Az alkalmazással gyakran együtt + használt egyéb alkalmazások még + nem nincsenek benne a &os; + Portgyûjteményében. + + + + Az ilyen alkalmazások fejlesztõi a + hordozhatóság javításával + és a problémák megoldásával + kapcsolatban eddig mindig igyekeztek + együttmûködni a portok + karbantartóival. + + + MPlayer + + Az MPlayer az utóbbi + idõben felbukkant, gyorsan fejlõdõ + videolejátszó. Fejlesztõinek célja + a sebesség és rugalmasság a Linux, + illetve más &unix; rendszereken. A + kezdeményezés abból fakadt, hogy a + fejlesztés mögött álló csapat + alapítójának elege lett az akkoriban + elérhetõ lejátszók + teljesítményébõl. + Mondhatnánk, hogy ez a program feláldozta a + grafikus felületet az áramvonalas + kialakításért, azonban ha + hozzászokunk a parancssori + beállításokhoz és a + billentyûkön keresztüli + vezérléshez, remekül + mûködik. + + + Az MPlayer lefordítása + + + MPlayer + fordítása + + + Az MPlayer a multimedia/mplayer helyen + található. A program a + fordítási folyamat során elvégez + számos hardverellenõrzést, aminek + eredményeképpen az egyik rendszeren + fordított program nem vihetõ a másikra. + Ezért különösen fontos portból + fordítani és nem pedig bináris csomagot + használni. Mindezek mellett a + Makefile állományban + még számos, a make + parancsnak a fordítás megkezdésekor + átadható beállítást + találhatunk: + + &prompt.root; cd /usr/ports/multimedia/mplayer +&prompt.root; make +N - O - T - E + +Take a careful look into the Makefile in order +to learn how to tune mplayer towards you personal preferences! +For example, +make WITH_GTK1 +builds MPlayer with GTK1-GUI support. +If you want to use the GUI, you can either install +/usr/ports/multimedia/mplayer-skins +or download official skin collections from +http://www.mplayerhq.hu/homepage/dload.html + + + Az üzenet fordítása: + + +F - I - G - Y - E - L - E - M + +Az mplayert személyes igényeinekhez úgy tudjuk igazítani, ha +figyelmesen átnézzük a Makefile állományt! Például a WITH_GTK1 +megadásával az MPlayer GTK1 alapú grafikus felülettel jön létre. +A grafikus felület használatához telepítenünk kell a +/usr/ports/multimedia/mplayer-skins portot is, vagy letölteni a +hivatalos skingyûjteményt a http://www.mplayerhq.hu/homepage/dload.html +oldalról. + + + A port alapbeállításai a + legtöbb felhasználó számára + megfelelõek, habár az Xvid kódek + használatához meg kell adnunk a + WITH_XVID + beállítást. Rajta kívül + még az alapértelmezett DVD eszközt is + érdemes megadni a WITH_DVD_DEVICE + beállítással, amelynek + alapértéke a + /dev/acd0. + + A leírás + elkészítésének + idõpontjában az MPlayer + portja létrehozza a HTML dokumentációt + és a két végrehajtható + állományt: az mplayer + lejátszót és videók + újrakódolásáért + felelõs mencoder + segédprogramot. + + Az MPlayer HTML + dokumentációja nagyon közlékeny, + és ha az olvasó nem találná + valamelyik videohardver vagy felület + leírását ebben a fejezetben, akkor ez a + dokumentáció mindenképpen egy hasznos + olvasnivalónak bizonyul. Ha a &unix;-ok alatt + elérhetõ videotámogatás + leírását keressük, + határozottan megéri idõt szánni az + MPlayer + dokumentációjának alapos + végigolvasására. + + + + + Az MPlayer használata + + + MPlayer + használata + + + Az MPlayer + használatához a felhasználói + könyvtárunkban rendelkeznünk kell egy + .mplayer elnevezésû + könyvtárral. Ezt a következõ + paranccsal tudjuk létrehozni: + + &prompt.user; cd /usr/ports/multimedia/mplayer +&prompt.user; make install-user + + Az mplayer parancssori + paraméterei a hozzátartozó man oldalon + találhatóak meg, valamint mindezek a HTML + dokumentációban még + részletesebben. Ebben a szakaszban csupán + néhányukat mutatjuk be. + + Egy állomány, mint például a + tesztvideo.avi, + a + beállításával + játszható le a különbözõ + felületeken: + + &prompt.user; mplayer -vo xv tesztvideo.avi + &prompt.user; mplayer -vo sdl tesztvideo.avi + &prompt.user; mplayer -vo x11 tesztvideo.avi + &prompt.root; mplayer -vo dga tesztvideo.avi + &prompt.root; mplayer -vo 'sdl:dga' tesztvideo.avi + + Érdemes az itt felsorolt + konfigurációk mindegyikét + kipróbálni, mivel az egymáshoz + mért teljesítményük rengeteg + tényezõn múlik, de közülük + talán maga a hardver a legjelentõsebb. + + A DVD-k lejátszásához + cseréljük ki a + tesztvideo.avi + paramétert a + + paraméterekkel, ahol az N + a lejátszandó fejezet sorszáma, + valamint az + ESZKÖZ + a DVD-hez tartozó eszközleíró. + Például így tudjuk elkezdeni + /dev/dvd eszközrõl a 3. + fejezet lejátszását: + + &prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd + + + A port fordítása során a + WITH_DVD_DEVICE paraméter + segítségével megadható az + alapértelmezett DVD eszköz, amely + alapból a /dev/acd0. + Errõl többet a port + Makefile + állományában + találhatunk. + + + A leállításhoz, + szüneteltetéshez, + továbblépéshez és többi + hasonló funkcióhoz tartozó + billentyûket a mplayer -h parancs + kimenetébõl vagy a man oldal + elolvasásából deríthetjük + ki. + + A lejátszáshoz tartozó + néhány viszonylag fontos + beállítás: az teljesképernyõs módra + vált, valamint a + segít növeli a + teljesítményt. + + A lejátszáskor kiadandó parancs + túlburjánzását el tudjuk + kerülni, ha létrehozunk egy + .mplayer/config állományt + és itt állítjuk be a gyakori + opciókat: + + vo=xv +fs=yes +zoom=yes + + Végezetül megemlítjük, hogy az + mplayer segítségével + a DVD-n található fejezeteket ki tudjuk + menteni .vob + állományokba. A DVD második + fejezetének kimentéséhez + gépeljük be ezt: + + &prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd + + A parancs eredményeképpen keletkezõ + out.vob állomány + formátuma MPEG lesz, amit a fejezetben bemutatott + további csomagokkal tudunk feldolgozni. + + + + + mencoder + + mencoder + + A mencoder + használatának megkezdése elõtt + javasolt alaposan beleásnunk magunkat a HTML + dokumentációba és megismerkednünk + az alapvetõ beállításaival. Van + külön man oldala is, azonban a HTML + leírás nélkül + önmagában ez nem túl sokat ér. + Megszámlálhatatlan úton és + módon növelhetõ benne a + minõség, csökkenthetõ a + kódolási arány, + változtatható a formátum, és + ezen apró finomságok felelõsek a + jó vagy éppen a rossz + teljesítményért. A + témába néhány példa + bemutatásával igyekszünk beavatni az + olvasót. Elõször vegyünk egy + egyszerû másolást: + + &prompt.user; mencoder bemenõ.avi -oac copy -ovc copy -o eredmény.avi + + A parancssori paraméterek helytelen + kombinációja olyan állományokat + eredményezhet, amelyeket még maga az + mplayer sem képes + lejátszani. Ezért ha csak le akarunk szedni + egy állományt, akkor maradjunk meg az + mplayer + opciójánál. + + A + bemenõ.avi + állományt MPEG4 video- és MPEG3 + hangtömörítéssel (amihez kell majd a + audio/lame) így + tudjuk lekódolni: + + &prompt.user; mencoder bemenõ.avi -oac mp3lame -lameopts br=192 \ + -ovc lavc -lavcopts vcodec=mpeg4:vhq -o eredmény.avi + + Ezzel az mplayer és + xine programok számára is + egyaránt lejátszható + állomány jön létre. + + A DVD fejezeteit úgy tudjuk közvetlenül + kódolni, ha a parancssorban kicseréljük a + bemenõ.avi + állományt az beállításra, illetve + ha a programot root + felhasználóként futtatjuk. De mivel + elsõre általában ritkán vagyunk + elégedettek a kódolással, + érdemes elõször inkább lementeni az + egész fejezetet egy állományba, majd + azon dolgozni. + + + + + + A xine videolejátszó + + A xine lejátszó + mögött projekt célja nem egy + mindenható alkalmazás létrehozása, + hanem inkább olyan + újrahasznosítható + függkönyvtárak és egy moduláris + felépítésû program + kifejlesztése, amelyeket pluginekkel tudunk + kiegészíteni. A multimedia/xine helyen + portként, valamint csomagként is + elérhetõ. + + A xine itt-ott még + valamelyest durva, de mindenképpen egy + dicséretes kezdeményezés. A + xine a gyakorlatban egyaránt + egy erõs processzort és gyors + videokártyát kíván, vagy az XVideo + kiterjesztés támogatását. A + grafikus felhasználói felülete ugyan + használható, de még kicsit + esetlen. + + Az írás pillanatában az + xine mellé még nem + kapunk olyan modult, amivel le tudnánk játszani + a CSS kódolású DVD-ket. Léteznek + azonban olyan külsõs modulok, amelyekkel meg lehet + valósítani ezt a feladatot, azonban a &os; + Portgyûjteményében ezeket még nem + találhatjuk meg. + + A xine az + MPlayerhez képes többet + tesz a felhasználóért, azonban ezzel + egyidõben el is veszi tõle a finomhangolás + lehetõségét. A + xine legjobban az XVideót + ismerõ felületeken teljesít. + + A xine + alapértelmezés szerint grafikus felülettel + indul, ahol a menük segítségével + tudunk megnyitni egy adott állományt: + + &prompt.user; xine + + Vagy a grafikus felület használata + nélkül kiadhatjuk közvetlenül is az + állomány + lejátszását: + + &prompt.user; xine -g -p kedvencmozim.avi + + + + + A transcode + + A transcode nem egy újabb + lejátszó, hanem a video- és audio + állományok + újratömörítésére + használható programok gyûjteménye. A + transcode + segítségével a szabványos be- + és kimeneten keresztül parancssoros programokkal + képesek vagyunk videoállományokat + összefûzni, megjavítani. + + A multimedia/transcode + port fordítása során temérdek + beállítást adhatunk meg, amelyek + közül az alábbi parancsban foglaljuk össze + az általunk javasolandókat: + + &prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ +WITH_MJPEG=yes -DWITH_XVID=yes + + Ezek a beállítások a legtöbb + felhasználó számára + elegendõek. + + A transcode képességeinek + illusztrálásához lássunk egy + példát, amiben megmutatjuk, hogyan kell egy DivX + állományt PAL szabványú MPEG-1 + formátumú (PAL VCD) + állománnyá alakítani: + + &prompt.user; transcode -i bemenõ.avi -V --export_prof vcd-pal -o output_vcd +&prompt.user; mplex -f 1 -o eredmény_vcd.mpg eredmény_vcd.m1v eredmény_vcd.mpa + + Az eredményül keletkezõ + eredmény_vcd.mpg + MPEG állomány akár már + játszható is + MPlayerrel. Ha az + állományt kiírjuk egy írható + CD-re, akkor ezzel video CD-t is létre tudunk hozni, + amihez viszont szükségünk van mind a multimedia/vcdimager és + sysutils/cdrdao + programokra. + + A transcode parancsnak van saját + man oldala, azonban ehelyett a transcode + wikiben érdemes inkább további + információkat és példákat + keresni. + + + + + + Ajánlott olvasmányok + + A &os;-hez tartozó videoszoftverek nagyon gyorsan + fejlõdnek. Könnyen elképzelhetõ, hogy az + imént tárgyalt problémák + legtöbbje a közeljövõben hamarosan + megoldódik. Addig viszont bárkinek, aki a + legtöbbet szeretné kihozni a &os; audio- és + video lehetõségeibõl, rengeteg + leírás és dokumentáció + elolvasása alapján kell összecsiszolnia a + különbözõ + beállításokat, és csak + néhány alkalmazás mellett érdemes + kitartania. Ebben a szakaszban igyekszünk segíteni + az olvasónak megtalálni az ilyen jellegû + információkat. + + Az MPlayer + dokumentációja szakmai szempontból + igen közlékeny. Ezt mindenkinek érdemes + elolvasnia, aki a késõbbiekben magasabb szakmai + szinten akar foglalkozni a &unix;-os videózással. + Az MPlayer levelezési + listája viszont alig tolerálja a + dokumentációt rendesen el nem olvasó + emberek kérdéseit, ezért minden egyes hiba + bejelentése elõtt lehetõleg rendesen + nézzük át a dokumentáció + odavágó részeit. + + A xine + HOGYAN egyik külön fejezetében az + összes lejátszó esetén + érvényesíthetõ + teljesítménynövelési + módszereket mutat be. + + Végül íme néhány + ígéretes alkalmazás, amelyeket + érdemes kipróbálnunk: + + + + Avifile, ami + egyben a multimedia/avifile port + + + Ogle, + ami a multimedia/ogle + port + + + Xtheater + + + multimedia/dvdauthor, egy + nyílt forráskódú DVD-tartalom + szerkesztõ + + + + + + + + + + + Josef + El-Rayes + Eredetileg írta: + + + + + Marc + Fonvieille + Kiegészítette, + továbbfejlesztette: + + + + + TV kártyák + beállítása + + TV kártyák + + + Bevezetés + + A TV kártyák segítségével + kábeles vagy antennás + televízióadásokat tudunk nézni a + számítógépünkön. A + legtöbbjük RCA vagy S-video bemenettel rendelkezik, + valamint néhányukon még FM + rádiókészülék is + megtalálható. + + A &os; a &man.bktr.4; meghajtón keresztül a + Brooktree Bt848/849/878/879, illetve a Conexant CN-878/Fusion + 878a típusú, PCI-os + videorögzító chipeket ismeri. + Ügyelnünk kell arra, hogy a kártyánkon + levõ vevõkészülék is + használható legyen, amit pedig a &man.bktr.4; man + oldalán megtalálható támogatott + eszközök listájából + ellenõrizhetünk. + + + + + A meghajtó beállítása + + A kártyánk használatához be kell + töltenünk a &man.bktr.4; meghajtót, ami + csupán annyiból áll, hogy a + /boot/loader.conf állományhoz + hozzáadunk egy ilyen sort: + + bktr_load="YES" + + Másik lehetõségünk, ha a TV + kártya támogatását statikusan + beleépítjük a rendszermagba. Ha ezt a + megoldást választjuk, a következõ + sorokat kell elhelyeznünk a rendszermag + beállításait tartalmazó + állományba: + + device bktr +device iicbus +device iicbb +device smbus + + A fentebb látható egyéb + eszközök megadása azért + szükséges, mert a kártya + részegységei egy I2C buszon csatlakoznak + egymáshoz. Miután beillesztettük a + szükséges változtatásokat, + fordítsuk le és telepítsük az + új rendszermagot. + + A támogatás hozzáadása + után újra kell indítanunk a + számítógépünket. A + rendszerindítási folyamat során meg kell + jelennie a TV kártyánknak is, valahogy + így: + + bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 +iicbb0: <I2C bit-banging driver> on bti2c0 +iicbus0: <Philips I2C bus> on iicbb0 master-only +iicbus1: <Philips I2C bus> on iicbb0 master-only +smbus0: <System Management Bus> on bti2c0 +bktr0: Pinnacle/Miro TV, Philips SECAM tuner. + + Természetesen a fenti üzenetek az + aktuális hardvereszközünknek megfelelõen + némileg eltérhetnek. Ellenõrizzük, hogy + a vevõkészüléket helyesen ismerte-e fel + a rendszer. Ha nem sikerült volna, akkor a &man.sysctl.8; + és a rendszermag beállításai + segítségével még mindig van + lehetõségünk állítani rajta. + Például, ha egy Philips SECAM + vevõkészüléket akarunk + beállítani, akkor a rendszermag + beállításaihoz még hozzá kell + adni a következõ sort: + + options OVERRIDE_TUNER=6 + + vagy erre közvetlenül használhatjuk a + &man.sysctl.8; programot is: + + &prompt.root; sysctl hw.bt848.tuner=6 + + A &man.bktr.4; man oldalán és a + /usr/src/sys/conf/NOTES + állományban megtalálhatjuk a többi + beállítás részletes + leírását is. + + + + + Hasznos alkalmazások + + A TV kártyánk tényleges + használatához azonban még a + következõ alkalmazások valamelyikét is + telepítenünk kell: + + + + A multimedia/fxtv + használatával ablakban + tévézhetünk, valamint + lehetõségünk van kép/audio/video + kimentésére is. + + + A multimedia/xawtv + az fxtv-hez hasonló + lehetõségekkel bíró + tévénézõ alkalmazás. + + + A misc/alevt + dekódolja és megjeleníti a + mûsorhoz kapcsolódó Videotex/Teletext + üzeneteket. + + + Az audio/xmradio + segítségével az egyes TV + kártyákon megtalálható FM + rádiókészülékeket tudjuk + használatba venni. + + + Az audio/wmtune a + rádióvevõkhöz + használható hasznos grafikus + alkalmazás. + + + + Ebben a témában a &os; + Portgyûjteményében további + érdekes alkalmazások találhatóak + még. + + + + + Hibakeresés + + Ha bármilyen gond adódna a TV + kártyánkkal kapcsolatosan, akkor elõször + mindenképpen érdemes megnézni, hogy a rajta + levõ videorögzítõ chipet és + vevõkészüléket a &man.bktr.4; + meghajtó ténylegesen ismeri-e, illetve hogy + jól állítottuk-e be. A TV + kártyákra irányuló + különféle egyéb kérdések + és segítség tekintetében + érdemes lehet még levelet küldeni a + &a.multimedia.name; címére is. + + + + + + + + + Marc + Fonvieille + Írta: + + + + + Lapolvasók + + lapolvasók + + + Bevezetés + + A &os; lapolvasókhoz a + SANE (Scanner Access Now Easy) + elnevezésû API (alkalmazásfejlesztõi + felület) segítségével képes + hozzáférni, amelyet a + Portgyûjteményben találhatunk meg. A + lapolvasást végzõ hardvereszközök + használatához a &os; a + SANE mellett még + néhány eszközmeghajtóra is + támaszkodik. + + A &os; egyaránt ismeri az SCSI és USB + csatlakoztatású lapolvasókat is. + Még mielõtt nekikezdenénk a lapolvasó + beállításához, bizonyosodjuk meg + róla, hogy a SANE + támogatja. A SANE által + ismert eszközök felsorolásában + ellenõrizhetjük a lapolvasónk + támogatottságának állapotát. + Ezenkívül még a &man.uscanner.4; man oldalon + is láthatjuk az ismert USB-s lapolvasók + listáját. + + + + + A rendszermag beállítása + + A korábbiak értelmében tehát + mind a SCSI, mind pedig a USB felületen csatlakozó + eszközök támogatottak. A lapolvasónknak + megfelelõen eltérõ eszközmeghajtók + szükségesek. + + + Beállítás USB felületen + + A GENERIC rendszermag + alapértelmezés szerint tartalmazza az USB-s + lapolvasók használatához + szükséges eszközmeghajtókat. Ha + valamiért azonban mégis saját + rendszermagot akarunk használni, akkor ne + felejtsük el ellenõrizni, hogy a rendszermag + beállításai között + megtalálhatóak a következõ + sorok: + + device usb +device uhci +device ohci +device uscanner + + Az alaplapon levõ USB chipkészletnek + megfelelõen a device uhci vagy + device ohci sorok közül csak az + egyikre lesz szükség, habár az sem okoz + különösebben gondot, ha mind a kettõt + benne hagyjuk. + + Ha nem GENERIC rendszermagunk van, de + nem akarjuk újrafordítani, akkor a + &man.kldload.8; parancs segítségével a + &man.uscanner.4; eszközmeghajtó modulját + akár közvetlenül is + betöltethetjük: + + &prompt.root; kldload uscanner + + Ezt a modult a rendszerindítás során + úgy tudjuk automatikusan betöltetni, ha a + /boot/loader.conf + állományhoz hozzávesszük a + következõ sort: + + uscanner_load="YES" + + A megfelelõen felépített rendszermag + elindítása vagy a szükséges modul + betöltése után csatlakoztassuk az USB-s + lapolvasónkat. Ez sor fog megjelenni a rendszer + üzenetpufferében (&man.dmesg.8;): + + uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 + + Ez az üzenet elárulja nekünk, hogy a + lapolvasóhoz mostantól a + /dev/uscanner0 + eszközleíró tartozik. + + + + + Beállítás SCSI + felületen + + Ha a lapolvasónk SCSI felületen csatlakozik, + fontos tisztában lennünk azzal, hogy pontosan + milyen SCSI-vezérlõn keresztül is + érhetjük el, ugyanis a rajta + található SCSI chipkészletnek + megfelelõen kell majd hangolnunk a rendszermag + beállításait. A + GENERIC rendszermag alapból ismeri + a leggyakrabban elõforduló + SCSI-vezérlõket. Mindenképpen olvassuk + át a NOTES nevû + állományt és adjuk hozzá a + rendszermag beállításaihoz a + megfelelõ sort. A SCSI-kártya + meghajtóján kívül még az + alábbi beállításokat is meg kell + adnunk a rendszermagunk számára: + + device scbus +device pass + + Ahogy sikerült a rendszermagot sikeresen + lefordítani és telepíteni, a rendszer + indulása során az üzenetpufferben + már láthatjuk is a felismert + eszközt: + + pass2 at aic0 bus 0 target 2 lun 0 +pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device +pass2: 3.300MB/s transfers + + Ha a rendszer indulásakor még nem kapcsoltuk + volna be a lapolvasónkat, a &man.camcontrol.8; parancs + segítségével késõbb + külön kérhetjük a SCSI buszon + található eszközök + újbóli felderítését: + + &prompt.root; camcontrol rescan all +Re-scan of bus 0 was successful +Re-scan of bus 1 was successful +Re-scan of bus 2 was successful +Re-scan of bus 3 was successful + + Ekkor a lapolvasó megjelenik a SCSI + eszközök felsorolásában: + + &prompt.root; camcontrol devlist +<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) +<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) +<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) +<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) + + A SCSI eszközökrõl további + leírásokat a &man.scsi.4; és + &man.camcontrol.8; man oldalakon találhatunk. + + + + + + A SANE beállítása + + A SANE rendszere két + részre oszlik: a backendekre (graphics/sane-backends) és a + frontendekre (graphics/sane-frontends). Ezek + közül maguk a backendek szolgáltatják a + lapolvasó + hozzáférhetõségét. A + SANE által ismert + eszközeinek listájából + kifürkészhetjük, hogy lapolvasónkat + melyik backenden keresztül érhetjük el. Az + eszköz megfelelõ használatához + döntõ fontosságú + megállapítani a hozzátartozó + backendet. A frontendek között találjuk meg a + lapolvasást felügyelõ grafikus felületeket + (mint például az + xscanimage). + + Elsõként telepítsük a graphics/sane-backends portot vagy + csomagot. Ezután ellenõrizzük, hogy a + SANE felismeri a lapolvasót, + és ehhez adjuk ki a sane-find-scanner + parancsot: + + &prompt.root; sane-find-scanner -q +found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 + + A kimenetében jelzi a felületet, amin a + lapolvasó csatlakozik, valamint a + hozzátartozó eszközleírót. A + gyártó neve és a termék + típusa nem minden esetben jelenik meg, de ez nem is + annyira fontos. + + + Némely USB-s lapolvasók esetén + még egy firmware-t is be kell töltenünk, + amirõl bõvebben a backendhez tartozó man + oldalokon olvashatunk. Ajánlott még elolvasni a + &man.sane-find-scanner.1; és &man.sane.7; man oldalakat + is. + + + Most pedig nézzük meg, hogy vajon a frontend is + be tudja-e azonosítani a lapolvasónkat. + Alapértelmezés szerint a + SANE backendjéhez tartozik + még egy &man.scanimage.1; nevû segédprogram + is, aminek segítségével listázni + tudjuk a használható eszközöket + és képeket tudunk beolvasni parancssorból. + Közülük a kapcsoló + listáz: + + &prompt.root; scanimage -L +device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner + + Ha ennek eredményeképpen semmi sem jelenik + meg, vagy a &man.scanimage.1; látszólag nem + talált semmilyen eszközt, akkor a lapolvasó + azonosítása nem sikerült. Ilyen esetekben + valószínûleg módosítanunk kell + a backend beállításait tartalmazó + állományt a használni kívánt + lapolvasó eszköz szerint. A backendek + beállításait a /usr/local/etc/sane.d/ + könyvtárban találjuk. Ez a probléma + bizonyos USB-s lapolvasók esetében + jelentkezik. + + Például, ha ban használt USB-s + lapolvasónkra a sane-find-scanner + parancs a következõket adja vissza: + + &prompt.root; sane-find-scanner -q +found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 + + Akkor a lapolvasót sikerült megtalálni, + és láthatjuk, hogy USB-n keresztül + csatlakozik és a /dev/uscanner0 + eszközleíró tartozik hozzá. Most + már ellenõrizhetjük a lapolvasó helyes + beazonosítását is: + + &prompt.root; scanimage -L + +No scanners were identified. If you were expecting something different, +check that the scanner is plugged in, turned on and detected by the +sane-find-scanner tool (if appropriate). Please read the documentation +which came with this software (README, FAQ, manpages). + + Az üzenet fordítása: + + +Nincs azonosítható lapolvasó. Ha nem erre számítottunk, akkor ellenõrizzük, +hogy az eszközt tényleg bekapcsoltuk, csatlakoztattuk és észlelte a +sane-find-scanner segédprogram (amennyiben szükséges). Kérjük, olvassa el a +szoftverhez tartozó dokumentumtációt (README, FAQ, man oldalak)! + + + Mivel a lapolvasót nem sikerült + azonosítani, át kell írnunk a + /usr/local/etc/sane.d/epson.conf + állományt. A használt lapolvasó + típusa &epson.perfection; 1650, ezért hozzá + az epson backendet fogjuk használni. + Ehhez feltétlenül olvassuk el a + konfigurációs állományban + található megjegyzéseket is. A sorokat + igen könnyû átírni: tegyük + megjegyzésbe az összes olyat, ahol a + lapolvasónk számára nem megfelelõ + felületek találhatóak (a mi esetünkben + tehát megjegyzésbe fogjuk tenni az összes + scsi szóval kezdõdõ sort, + hiszen a nekünk USB-s eszközünk van), majd az + állomány végére írjuk be a + használni kívánt felületet és + eszközleírót. Ez ebben a konkrét + esetben ennyi lenne: + + usb /dev/uscanner0 + + A megfelelõ formátum és a további + részletek leírásához ne + felejtsük el azonban elolvasni a backend + konfigurációs állományában + felbukkanó megjegyzéseket és az ide + tartozó man oldalt sem. Most már + megpróbálkozhatunk újra a lapolvasó + azonosításával: + + &prompt.root; scanimage -L +device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner + + Láthatjuk, hogy az USB-s lapolvasónkat + sikerült azonosítani. Nem számít, ha + esetleg nem egyezne a valósággal a + gyártó vagy a típus + megjelölése. Itt a valóban lényeges + elem az `epson:/dev/uscanner0' mezõ + lesz, melynek a backend és az + eszközleíró nevét kell helyesen + tartalmaznia. + + A beállítást akkor zárhatjuk le, + miután a scanimage -L parancs + képes észlelni a lapolvasót. A eszköz + ekkor már készen áll a + beolvasásra. + + Míg a &man.scanimage.1; parancssorból teszi + lehetõvé számunkra a lapolvasást, + addig érdemesebb a képek olvasását + egy grafikus felületen keresztül + végeznünk. A SANE egy + egyszerû, ám hatékony grafikus felületet + ajánl fel ehhez, ez az + xscanimage (graphics/sane-frontends). + + Az Xsane (graphics/xsane) egy másik + népszerû grafikus frontend. + Segítségével speciális + lehetõségeket is kihasználhatunk, mint + például többféle + képolvasási mód + (fénymásoló, fax stb.), + színkorrekció, kötegelt beolvasás, + stb. Mind a két említett alkalmazás + elérhetõ a The GIMP + bõvítményeként is. + + + + + A lapolvasó használatának + engedélyezése más + felhasználók számára + + A korábban tárgyalt mûveletek + mindegyikét root + felhasználóként tudjuk csak + végrehajtani. Azonban elõfordulhat, hogy más + felhasználók számára is + szeretnénk hozzáférést + biztosítani a lapolvasóhoz. Ehhez az + érintett felhasználóknak a + lapolvasóhoz tartozó + eszközleíróhoz olvasási és + írás joggal kell rendelkezniük. + Például az USB-s lapolvasónk a + /dev/uscanner0 + eszközleírót használja, amely az + operator csoport tulajdonában van. + Például a + pgj nevû + felhasználó úgy fog tudni + hozzáférni, ha felvesszük ebbe a + csoportba: + + &prompt.root; pw groupmod operator -m pgj + + A parancs részleteít a &man.pw.8; man + oldalán olvashatjuk. Ezenkívül még a + /dev/uscanner0 esetén be kell + állítanunk a megfelelõ írási + jogokat is (0660 vagy 0664), mivel az + operator csoport alapból csak + olvasni tudja. Ezt pedig úgy tehetjük meg, ha az + /etc/devfs.rules állományhoz + hozzáadjuk a következõ sort: + + [system=5] +add path uscanner0 mode 660 + + Ezt követõen az /etc/rc.conf + állományba írjuk be az alábbi sort + és utána indítsuk újra a + számítógépet: + + devfs_system_ruleset="system" + + Az itt szereplõ sorok pontos + jelentésérõl a &man.devfs.8; man + oldaláról + tájékozódhatunk. + + + Természetesen biztonsági + megfontolásokból azonban érdemes + kétszer is meggondolni, hogy mely + felhasználókat vesszük fel a ebbe + csoportba, különösen akkor, ha az + operator csoportról van + szó! + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/network-servers/Makefile b/hu_HU.ISO8859-2/books/handbook/network-servers/Makefile new file mode 100644 index 0000000000..150dbe3121 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/network-servers/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= network-servers/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml new file mode 100644 index 0000000000..cabe96f1b7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml @@ -0,0 +1,6693 @@ + + + + + + + + + Murray + Stokely + Átdolgozta: + + + + + Hálózati szerverek + + + Áttekintés + + Ebben a fejezetben a &unix; típusú rendszerekben + leggyakrabban alkalmazott hálózati + szolgáltatások közül fogunk + néhányat bemutatni. Ennek során + megismerjük a hálózati + szolgáltatások különbözõ + típusainak telepítését, + beállítását, tesztelését + és karbantartását. A fejezet + tartalmát folyamatosan példákkal + igyekszünk illusztrálni. + + A fejezet elolvasása során + megismerjük: + + + + + hogyan dolgozzunk az inetd + démonnal; + + + + hogyan állítsuk be a hálózati + állományrendszereket; + + + + hogyan állítsunk be egy + hálózati információs szervert a + felhasználói hozzáférések + megosztására; + + + + hogyan állítsuk be automatikusan a + hálózati + hozzáférésünket a DHCP + használatával; + + + + hogyan állítsunk be névfeloldó + szervereket; + + + + hogyan állítsuk be az + Apache webszervert; + + + + hogyan állítsuk be az + állományok átviteléért + felelõs (FTP) szervert; + + + + a Samba + használatával hogyan állítsunk be + &windows;-os kliensek számára + állomány- és + nyomtatószervert; + + + + az NTP protokoll segítségével hogyan + egyeztessük az idõt és dátumot, hogyan + állítsunk be egy idõszervert. + + + + + A fejezet elolvasásához ajánlott: + + + + az /etc/rc szkriptek alapjainak + ismerete; + + + + az alapvetõ hálózati fogalmak + ismerete; + + + + a külsõ szoftverek + telepítésének ismerete (). + + + + + + + + + + + Chern + Lee + Készítette: + + + + + A &os; 6.1-RELEASE változatához + igazította: + A &os; Dokumentációs + Projekt + + + + + Az <application>inetd</application> + <quote>szuperszerver</quote> + + + Áttekintés + + Az &man.inetd.8; démont gyakran csak internet + szuperszerverként nevezik, mivel a helyi + szolgáltatások kapcsolatainak + kezeléséért felelõs. Amikor az + inetd fogad egy csatlakozási + kérelmet, akkor eldönti róla, hogy ez melyik + programhoz tartozik és elindít egy + példányt belõle, majd átadja neki a + socketet (az így meghívott program a + szabvány bemenetéhez, kimenetéhez és + hibajelzési csatornájához kapja meg a + socket leíróit). Az + inetd használatával + úgy tudjuk csökkenteni a rendszerünk + terhelését, hogy a csak alkalmanként + meghívott szolgáltatásokat nem futtatjuk + teljesen független önálló + módban. + + Az inetd démont + elsõsorban más démonok + elindítására használjuk, de + néhány triviális protokollt + közvetlenül is képes kezelni, mint + például a chargen, + auth és a + daytime. + + Ebben a fejezetben az inetd + beállításának alapjait foglaljuk + össze mind parancssoros módban, mind pedig az + /etc/inetd.conf konfigurációs + állományon keresztül. + + + + + Beállítások + + Az inetd + mûködése az &man.rc.8; rendszeren + keresztül inicializálható. Az + inetd_enable ugyan alapból a + NO értéket veszi fel, vagyis + tiltott, de a sysinstall + használatával már akár a + telepítés során bekapcsolható + attól függõen, hogy a felhasználó + milyen konfigurációt választott. Ha + tehát a: + + inetd_enable="YES" + + vagy + + inetd_enable="NO" + + sort tesszük az /etc/rc.conf + állományba, akkor azzal az + inetd démont + indíthatjuk el vagy tilthatjuk le a rendszer + indítása során. Az + + &prompt.root; /etc/rc.d/inetd rcvar + + paranccsal lekérdezhetjük a pillanatnyilag + érvényes beállítást. + + Emellett még az inetd + démonnak az inetd_flags + változón keresztül + különbözõ parancssori paramétereket + is át tudunk adni. + + + + + Parancssori paraméterek + + Hasonlóan a legtöbb szerverhez, az + inetd viselkedését is + befolyásolni tudjuk a parancssorban + átadható különbözõ + paraméterekkel. Ezek teljes listája a + következõ: + + inetd + + Ezek a paraméterek az + /etc/rc.conf állományban az + inetd_flags segítségével + adhatóak meg az inetd + részére. Alapértelmezés szerint az + inetd_flags értéke -wW + -C 60, ami az inetd + által biztosított szolgáltatások TCP + protokollon keresztüli wrappelését kapcsolja + be, illetve egy IP-címrõl nem engedi a + felkínált szolgáltatások + elérését percenként hatvannál + többször. + + A kezdõ felhasználók örömmel + nyugtázhatják, hogy ezeket az + alapbeállításokat nem szükséges + módosítaniuk, habár a + késõbbiekben majd fény derül arra, hogy + a kiszolgálás gyakoriságának + szabályozása remek védekezést + nyújthat túlzottan nagy mennyiségû + kapcsolódási kérelem ellen. A + megadható paraméterek teljes listája az + &man.inetd.8; man oldalán olvasható. + + + + -c maximum + + + Az egyes szolgáltatásokhoz egyszerre + felépíthetõ kapcsolatok + alapértelmezett maximális + számát adja meg. Alapból ezt a + démont nem korlátozza. A + + beállítással ez akár + szolgáltatásonként külön is + megadható. + + + + + -C arány + + + Korlátozza, hogy egyetlen IP-címrõl + alapból hányszor hívhatóak meg + az egyes szolgáltatások egy percen + belül. Ez az érték alapból + korlátlan. A + + beállítással ez + szolgáltatásonként is + definiálható. + + + + + -R arány + + + Megadja, hogy egy szolgáltatást egy perc + alatt mennyiszer lehet meghívni. Ez az + érték alapértelmezés szerint + 256. A 0 megadásával + eltöröljük ezt a típusú + korlátozást. + + + + + -s maximum + + + Annak maximumát adja meg, hogy egyetlen + IP-címrõl egyszerre az egyes + szolgáltatásokat mennyiszer tudjuk + elérni. Alapból ez korlátlan. + Szolgáltatásonként ezt a + paraméterrel + tudjuk felülbírálni. + + + + + + + Az <filename>inetd.conf</filename> + állomány + + Az inetd + beállítását az + /etc/inetd.conf konfigurációs + állományon keresztül végezhetjük + el. + + Amikor az /etc/inetd.conf + állományban módosítunk valamit, az + inetd démont a + következõ paranccsal meg kell kérnünk, + hogy olvassa újra: + + + Az <application>inetd</application> + konfigurációs állományának + újraolvasása + + &prompt.root; /etc/rc.d/inetd reload + + + A konfigurációs állomány minden + egyes sora egy-egy démont ír le. A + megjegyzéseket egy # jel vezeti be. Az + /etc/inetd.conf állomány + bejegyzéseinek formátuma az alábbi: + + szolgáltatás-neve +socket-típusa +protokoll +{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] +felhasználó[:csoport][/bejelentkezési-osztály] +szerver-program +szerver-program-paraméterei + + Az IPv4 protokollt használó &man.ftpd.8; + démon bejegyzése például így + néz ki: + + ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l + + + + szolgáltatás-neve + + + Ez az adott démon által képviselt + szolgáltatást nevezi meg, amelynek + szerepelnie kell az /etc/services + állományban. Ez határozza meg, hogy + az inetd milyen porton figyelje + a beérkezõ kapcsolatokat. Ha egy új + szolgáltatást hozunk létre, akkor azt + elõször az /etc/services + állományba kell felvennünk. + + + + + csatlakozás-típusa + + + Ennek az értéke + stream, dgram, + raw, vagy seqpacket + lehet. A stream típust + használja a legtöbb kapcsolat-orientált + TCP démon, miközben a dgram + típus az UDP + szállítási protokollt + alkalmazó démonok esetében + használatos. + + + + + protokoll + + + Valamelyik a következõk + közül: + + + + + + Protokoll + Magyarázat + + + + + tcp, tcp4 + TCP IPv4 + + + udp, udp4 + UDP IPv4 + + + tcp6 + TCP IPv6 + + + udp6 + UDP IPv6 + + + tcp46 + TCP IPv4 és v6 + + + udp46 + UDP IPv4 és v6 + + + + + + + + + {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] + + + A + beállítás mondja meg, hogy az + inetd démonból + meghívott démon saját maga + képes-e kezelni kapcsolatokat. A + típusú kapcsolatok + esetében egyértelmûen a + beállítást kell + használni, miközben a + esetén, ahol általában több + szálon dolgozunk, a + megadása javasolt. A + hatására általában egyetlen + démonnak adunk át több socketet, + míg a minden sockethez egy + újabb példányt indít + el. + + Az inetd által + indítható példányokat a + megadásával + korlátozhatjuk. Ha tehát + például az adott démon + számára legfeljebb példány + létrehozását + engedélyezzük, akkor a + után /10 + beállítást kell megadnunk. A + /0 használatával + korlátlan mennyiségû + példányt + engedélyezhetünk. + + A mellett még + további két másik + beállítás jöhet + számításba az egyes démonok + által kezelhetõ kapcsolatok maximális + számának + korlátozásában. A + az + egyes IP-címekrõl befutó + lekezelhetõ kapcsolatok percenkénti + számát szabályozza, így + például ha itt a tizes értéket + adjuk meg, akkor az adott szolgáltatáshoz + egy IP-címrõl percenként csak + tízszer férhetünk hozzá. A + az egyes + IP-címekhez egyszerre elindítható + példányok számára ír + elõ egy korlátot. Ezek a paraméterek + segítenek megóvni rendszerünket az + erõforrások akaratos vagy akaratlan + kimerítésétõl és a DoS + (Denial of Service) típusú + támadásoktól. + + Ebben a mezõben a vagy + valamelyikét + kötelezõ megadni. A , + + és + paraméterek ellenben elhagyhatóak. + + A típusú + több szálon futó démonok a + , + vagy + + korlátozása nélkül + egyszerûen csak így adhatóak meg: + nowait. + + Ha ugyanezt a démont tíz kapcsolatra + lekorlátozzuk, akkor a következõt kell + megadnunk: nowait/10. + + Amikor pedig IP-címenként 20 kapcsolatot + engedélyezünk percenként és + mindössze 10 példányt, akkor: + nowait/10/20. + + Az iménti beállítások a + &man.fingerd.8; démon alapértelmezett + paramétereinél is + megtalálhatóak: + + finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s + + Végezetül engedélyezzük 100 + példányt, melyek közül + IP-címenként 5 használható: + nowait/100/0/5. + + + + + felhasználó + + + Ezzel azt a felhasználót adjuk meg, + akinek a nevében az adott démon futni fog. + Az esetek túlnyomó részében a + démonokat a root + felhasználó futtatja. Láthatjuk + azonban, hogy biztonsági okokból bizonyos + démonok a daemon vagy a + legkevesebb joggal rendelkezõ + nobody felhasználóval + futnak. + + + + + szerver-program + + + A kapcsolat felépülésekor az itt + teljes elérési úttal megadott + démon indul el. Ha ezt a + szolgáltatást maga az + inetd belsõleg + valósítja meg, akkor ebben a mezõben az + értéket adjuk + meg. + + + + + szerver-program-paraméterei + + + Ez a + beállítással együtt + mûködik, és ebben a mezõben a + démon meghívásakor + alkalmazandó paramétereket tudjuk + rögzíteni, amelyet a démon + nevével kezdünk. Ha a démont a + parancssorból a + sajátdémon + -d paranccsal hívnánk meg, akkor a + sajátdémon + -d lesz + + beállítás helyes értéke + is. Természetesen, ha a démon egy + belsõleg megvalósított + szolgáltatás, akkor ebben a mezõben is + az fog megjelenni. + + + + + + + Védelem + + Attól függõen, hogy a + telepítés során mit választottunk, + az inetd által + támogatott szolgáltatások egyes + része talán alapból engedélyezett + is. Amennyiben egy adott démont konkrétan nem + használunk, akkor érdemes megfontolni a + letiltását. A kérdéses démon + sorába tegyünk egy # jelet az + /etc/inetd.conf állományba, + majd olvastassuk + újra az inetd beállításait. + Egyes démonok, mint például az + fingerd használata + egyáltalán nem ajánlott, mivel a + támadók számára hasznos + információkat tudnak + kiszivárogtatni. + + Más démonok nem ügyelnek a + védelemre, és a kapcsolatokhoz rendelt + lejárati idejük túlságosan + hosszú vagy éppen nincs is. Ezzel a + támadónak lehetõsége van lassú + kapcsolatokkal leterhelni az adott démont, ezáltal + kimeríteni a rendszer erõforrásait. Ha + úgy találjuk, hogy túlságosan sok az + ilyen kapcsolat, akkor jó ötletnek bizonyulhat a + démonok számára a + , + vagy + korlátozások + elrendelése. + + Alapértelmezés szerint a TCP kapcsolatok + wrappelése engedélyezett. A &man.hosts.access.5; + man oldalon találhatjuk meg az + inetd által + meghívható különféle + démonok TCP-alapú korlátozásainak + lehetõségeit. + + + + + Egyéb lehetõségek + + A daytime, + time, + echo, + discard, + chargen és + auth szolgáltatások + feladatainak mindegyikét maga az + inetd is képes + ellátni. + + Az auth + szolgáltatás a hálózati + keresztül azonosítást teszi + lehetõvé és bizonyos mértékig + beállítható. A többit egyszerûen + csak kapcsoljuk ki vagy be. + + A témában az &man.inetd.8; man oldalán + tudunk még jobban elmerülni. + + + + + + + + + Tom + Rhodes + Átdolgozta és javította: + + + + + + Bill + Swingle + Írta: + + + + + A hálózati állományrendszer + (NFS) + + NFS + + A &os; több állományrendszert ismer, + köztük a hálózati + állományrendszert (Network File System, NFS) is. Az NFS állományok + és könyvtárak megosztását teszi + lehetõvé a hálózaton keresztül. Az + NFS + használatával a felhasználók és + a programok képesek majdnem úgy elérni a + távoli rendszereken található + állományokat, mintha helyben + léteznének. + + Íme az NFS néhány + legjelentõsebb elõnye: + + + + A helyi munkaállomások kevesebb + tárterületet használnak, mivel a + közös adatokat csak egyetlen + számítógépen tároljuk + és megosztjuk mindenki között. + + + + A felhasználóknak nem kell a + hálózat minden egyes gépén + külön felhasználói + könyvtárral rendelkezniük. Ezek ugyanis az + NFS segítségével + akár egy szerveren is + beállíthatóak és + elérhetõvé tehetõek a + hálózaton keresztül. + + + + A különbözõ + háttértárak, mint például a + floppy lemezek, CD-meghajtók és &iomegazip; + meghajtók a hálózaton több + számítógép között + megoszthatóak. Ezzel csökkenteni tudjuk a + hálózatunkban szükséges + cserélhetõ lemezes eszközök + számát. + + + + + Ahogy az <acronym>NFS</acronym> mûködik + + Az NFS legalább két fõ + részbõl rakható össze: egy + szerverbõl és egy vagy több kliensbõl. A + kliensek a szerver által megosztott adatokhoz + képesek távolról hozzáférni. + A megfelelõ mûködéshez mindössze csak + néhány programot kell beállítani + és futtatni. + + A szervernek a következõ démonokat kell + mûködtetnie: + + + NFS + szerver + + + állományszerver + UNIX kliensek + + + + rpcbind + + + mountd + + + nfsd + + + + + + + + + + Démon + Leírás + + + + + nfsd + Az NFS démon, amely + kiszolgálja az NFS + kliensektõl érkezõ + kéréseket. + + + mountd + Az NFS csatlakoztató + démonja, amely végrehajtja az &man.nfsd.8; + által átküldött + kéréseket. + + + rpcbind + Ez a démon lehetõvé teszi az + NFS kliensek számára, + hogy fel tudják deríteni az + NFS szerver által + használt portot. + + + + + + A kliensen is futnia kell egy démonnak, amelynek a + neve nfsiod. Az + nfsiod démon az + NFS szerver felõl érkezõ + kéréseket szolgálja ki. A + használata teljesen opcionális, csupán a + teljesítményt hívatott javítani, de + a normális és helyes mûködéshez + nincs rá szükségünk. Az &man.nfsiod.8; + man oldalán errõl többet is + megtudhatunk. + + + + + Az <acronym>NFS</acronym> + beállítása + + + NFS + beállítás + + + Az NFS beállítása + viszonylag egyértelmûen adja magát. A + mûködéséhez szükséges + programok automatikus elindítása csupán + néhány apró módosítást + igényel az /etc/rc.conf + állományban. + + Az NFS szerveren gondoskodjunk + róla, hogy az alábbi + beállítások szerepeljenek az + /etc/rc.conf + állományban: + + rpcbind_enable="YES" +nfs_server_enable="YES" +mountd_flags="-r" + + A mountd magától el + fog indulni, ha az NFS szervert + engedélyezzük. + + A kliensen a következõ + beállítást kell felvennünk az + /etc/rc.conf + állományba: + + nfs_client_enable="YES" + + Az /etc/exports állomány + adja meg, hogy az NFS milyen + állományrendszereket exportáljon (vagy + másképpen szólva osszon + meg). Az /etc/exports + állományban tehát a megosztani + kívánt állományrendszereket kell + szerepeltetnünk, és azt, hogy melyik + számítógépekkel tudjuk ezeket + elérni. A gépek megnevezése mellett a + hozzáférésre további + megszorításokat írhatunk fel. Ezek + részletes leírását az + &man.exports.5; man oldalon találjuk meg. + + Lássunk néhány példát az + /etc/exports állományban + megjelenõ bejegyzésekre: + + + NFS + példák + exportálásra + + + A most következõ példákban az + állományrendszerek + exportálásának finomságait + igyekszünk érzékeltetni, noha a + konkrét beállítások gyakran a + rendszerünktõl és a hálózati + konfigurációtól függenek. + Például, ha a /cdrom + könytárat akarjuk három gép + számára megosztani, akik a szerverrel + megegyezõ tartományban találhatóak + (ezért nem is kell megadnunk a tartományt) vagy + mert egyszerûen megtalálhatók az + /etc/hosts állományunkban. + Az beállítás az + exportált állományrendszereket + írásvédetté teszi. Ezzel a + beállítással a távoli rendszerek nem + lesznek képesek módosítani az + exportált állományrendszer + tartalmát. + + /cdrom -ro gép1 gép2 gép3 + + A következõ sorban a /home + könyvtárat három gép + számára osztjuk meg, melyeket IP-címekkel + adtunk meg. Ez olyan helyi hálózat esetén + hasznos, ahol nem állítottunk be + névfeloldást. Esetleg a belsõ + hálózati neveket az + /etc/hosts állományban is + tárolhatjuk. Ezzel utóbbival kapcsolatban a + &man.hosts.5; man oldalt érdemes fellapoznunk. Az + beállítás + lehetõvé teszi, hogy az alkönyvtárak is + csatlakozási pontok lehessenek. Más + szóval, nem fogja csatlakoztatni az + alkönyvtárakat, de megengedi a kliensek + számára, hogy csak azokat a + könyvtárakat csatlakoztassák, amelyeket kell + vagy amelyekre szükségünk van. + + /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 + + A következõ sorban az /a + könyvtárat úgy exportáljuk, hogy az + állományrendszerhez két + különbözõ tartományból is + hozzá lehessen férni. A + beállítás + hatására a távoli rendszer + root felhasználója az + exportált állományrendszeren szintén + root felhasználóként + fogja írni az adatokat. Amennyiben a + -maproot=root beállítást + nem adjuk meg, akkor a távoli rendszeren hiába + root az adott felhasználó, az + exportált állományrendszeren nem lesz + képes egyetlen állományt sem + módosítani. + + /a -maproot=root gep.minta.com doboz.haz.org + + A kliensek is csak a megfelelõ engedélyek + birtokában képesek elérni a megosztott + állományrendszereket. Ezért a klienst ne + felejtsük el felvenni a szerver + /etc/exports + állományába. + + Az /etc/exports + állományban az egyes sorok az egyes + állományrendszerekre és az egyes + gépekre vonatkoznak. A távoli gépek + állományrendszerenként csak egyszer + adhatóak meg, és csak egy alapértelmezett + bejegyzésük lehet. Például + tegyük fel, hogy a /usr egy + önálló állományrendszer. Ennek + megfelelõen az alábbi bejegyzések az + /etc/exports állományban + érvénytelenek: + + # Nem használható, ha a /usr egy állományrendszer: +/usr/src kliens +/usr/ports kliens + + Egy állományrendszerhez, vagyis itt a + /usr partícióhoz, két + export sort is megadtunk ugyanahhoz a kliens + nevû géphez. Helyesen így kell megoldani az + ilyen helyzeteket: + + /usr/src /usr/ports kliens + + Az adott géphez tartozó egy + állományrendszerre vonatkozó exportoknak + mindig egy sorban kell szerepelniük. A kliens + nélkül felírt sorok egyetlen géphez + tartozónak fognak számítani. Ezzel az + állományrendszerek megosztását + tudjuk szabályozni, de legtöbbek + számára nem jelent gondot. + + Most egy érvényes exportlista következik, + ahol a /usr és az + /exports mind helyi + állományrendszerek: + + # Osszuk meg az src és ports könyvtárakat a kliens01 és kliens02 részére, de csak a +# kliens01 férhessen hozzá rendszeradminisztrátori jogokkal: +/usr/src /usr/ports -maproot=root kliens01 +/usr/src /usr/ports kliens02 +# A kliensek az /exports könyvtárban teljes joggal rendelkeznek és azon belül +# bármit tudnak csatlakoztatni. Rajtuk kívül mindenki csak írásvédetten képes +# elérni az /exports/obj könyvtárat: +/exports -alldirs -maproot=root kliens01 kliens02 +/exports/obj -ro + + A mountd démonnal az + /etc/exports állományt minden + egyes módosítása után újra be + kell olvastatni, mivel a változtatásaink csak + így fognak érvényesülni. Ezt + megcsinálhatjuk úgy is, hogy küldünk egy + HUP (hangup, avagy felfüggesztés) jelzést a + már futó démonnak: + + &prompt.root; kill -HUP `cat /var/run/mountd.pid` + + vagy meghívjuk a mountd &man.rc.8; + szkriptet a megfelelõ paraméterrel: + + &prompt.root; /etc/rc.d/mountd onereload + + Az ban tudhatunk meg + részleteket az rc szkriptek + használatáról. + + Ezek után akár a &os; + újraindításával is + aktiválhatjuk a megosztásokat, habár ez nem + feltétlenül szükséges. Ha + root felhasználónként + kiadjuk a következõ parancsokat, akkor azzal minden + szükséges programot elindítunk. + + Az NFS szerveren tehát: + + &prompt.root; rpcbind +&prompt.root; nfsd -u -t -n 4 +&prompt.root; mountd -r + + Az NFS kliensen pedig: + + &prompt.root; nfsiod -n 4 + + Ezzel most már minden készen áll a + távoli állományrendszer + csatlakoztatására. A példákban a + szerver neve szerver lesz, valamint a kliens + neve kliens. Ha csak ideiglenesen akarunk + csatlakoztatni egy állományrendszert vagy + egyszerûen csak ki akarjuk próbálni a + beállításainkat, a kliensen + root felhasználóként + az alábbi parancsot hajtsuk végre: + + + NFS + csatlakoztatás + + + &prompt.root; mount szerver:/home /mnt + + Ezzel a szerveren található + /home könyvtárat fogjuk a + kliens /mnt könyvtárába + csatlakoztatni. Ha mindent jól + beállítottunk, akkor a kliensen most már be + tudunk lépni az /mnt + könyvtárba és láthatjuk a szerveren + található állományokat. + + Ha a számítógép + indításával automatikusan akarunk + hálózati állományrendszereket + csatlakoztatni, akkor vegyük fel ezeket az + /etc/fstab állományba. Erre + íme egy példa: + + szerver:/home /mnt nfs rw 0 0 + + Az &man.fstab.5; man megtalálhatjuk az összes + többi beállítást. + + + + + Zárolások + + Bizonyos alkalmazások (például a + mutt) csak akkor mûködnek + megfelelõen, ha az állományokat a + megfelelõ módon zárolják. Az + NFS esetében az + rpc.lockd használható + az ilyen zárolások + megvalósítására. Az + engedélyezéséhez mind a szerveren és + a kliensen vegyük fel a következõ sort az + /etc/rc.conf állományba (itt + már feltételezzük, hogy az + NFS szervert és klienst + korábban beállítottuk): + + rpc_lockd_enable="YES" +rpc_statd_enable="YES" + + A következõ módon indíthatjuk + el: + + &prompt.root; /etc/rc.d/nfslocking start + + Ha nincs szükségünk valódi + zárolásra az NFS kliensek + és az NFS szerver között, + akkor megcsinálhatjuk azt is, hogy az + NFS kliensen a &man.mount.nfs.8; programnak + az paraméter + átadásával csak helyileg + végzünk zárolást. Ennek + további részleterõl a &man.mount.nfs.8; man + oldalon kaphatunk felvilágosítást. + + + + + Gyakori felhasználási módok + + Az NFS megoldását a + gyakorlatban rengeteg esetben alkalmazzák. Ezek + közül most felsoroljuk a legelterjedtebbeket: + + + NFS + használata + + + + + Több gép között megosztunk egy + telepítõlemezt vagy más + telepítõeszközt. Ez így sokkal + olcsóbb és gyakorta kényelmes + megoldás abban az esetben, ha egyszerre több + gépre akarjuk ugyanazt a szoftvert + telepíteni. + + + + Nagyobb hálózatokon sokkal + kényelmesebb lehet egy központi + NFS szerver használata, ahol a + felhasználók könyvtárait + tároljuk. Ezek a felhasználói + könyvtárak aztán megoszthatóak a + hálózaton keresztül, így a + felhasználók mindig ugyanazt a + könyvárat kapják függetlenül + attól, hogy milyen + munkaállomásról is jelentkeztek + be. + + + + Több géppel is képes így + osztozni az /usr/ports/distfiles + könyvtáron. Ezen a módon sokkal + gyorsabban tudunk portokat telepíteni a + gépekre, mivel nem kell külön mindegyikre + letölteni az ehhez szükséges + forrásokat. + + + + + + + + + + Wylie + Stilwell + Készítette: + + + + + Chern + Lee + Újraírta: + + + + + Automatikus csatlakoztatás az + <application>amd</application> + használatával + + amd + automatikus csatlakoztató + démon + + Az &man.amd.8; (automatikus csatlakoztató + démon, az automatic mounter daemon) + önmûködõen csatlakoztatja a távoli + állományrendszereket, amikor azokon belül + valamelyik állományhoz vagy + könyvtárhoz próbálunk + hozzáférni. Emellett az + amd az egy ideje már + inaktív állományrendszereket is + automatikusan leválasztja. Az + amd használata egy remek + alternatívát kínál az + általában az /etc/fstab + állományban megjelenõ állandóan + csatlakoztatott állományrendszerekkel + szemben. + + Az amd úgy + mûködik, hogy kapcsolódik egy NFS szerver + /host és /net + könyvtáraihoz. Amikor egy állományt + akarunk elérni ezeken a könyvtárakon + belül, az amd kikeresi a + megfelelõ távoli csatlakoztatást és + magától csatlakoztatja. A + /net segítségével egy + IP-címrõl tudunk exportált + állományrendszereket csatlakoztatni, miközben + a /host a távoli gép + hálózati neve esetében + használatos. + + Ha tehát a /host/izemize/usr + könyvtárban akarunk elérni egy + állományt, akkor az amd + démonnak ahhoz elõször az + izemize nevû géprõl + exportált /usr + könyvtárat kell csatlakoztatnia. + + + Egy exportált állományrendszer + csatlakoztatása az <application>amd</application> + használatával + + Egy távoli számítógép + által rendelkezésre bocsátott + megosztásokat a showmount paranccsal + tudjuk lekérdezni. Például az + izemize gépen elérhetõ + exportált állományrendszereket így + láthatjuk: + + &prompt.user; showmount -e izemize +Exports list on izemize: +/usr 10.10.10.0 +/a 10.10.10.0 +&prompt.user; cd /host/izemize/usr + + + Ahogy a példában látjuk is, a + showmount parancs a /usr + könyvtárat mutatja megosztásként. + Amikor tehát belépünk a + /host/izemize/usr könyvtárba, + akkor amd magától + megpróbálja feloldani az izemize + hálózati nevet és csatlakoztatni az + elérni kívánt exportált + állományrendszert. + + Az amd az indító + szkripteken keresztül az /etc/rc.conf + alábbi beállításával + engedélyezhetõ: + + amd_enable="YES" + + Emellett még az amd_flags + használatával további paraméterek is + átadható az amd + felé. Alapértelmezés szerint az + amd_flags tartalmaz az alábbi: + + amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" + + Az /etc/amd.map állomány + adja meg az exportált állományrendszerek + alapértelmezett beállításait. Az + /etc/amd.conf állományban az + amd további + lehetõségeit konfigurálhatjuk.. + + Ha többet is szeretnénk tudni a + témáról, akkor az &man.amd.8; és az + &man.amd.conf.5; man oldalakat javasolt elolvasnunk. + + + + + + + + John + Lind + Készítette: + + + + + Problémák más rendszerek + használatakor + + Némely PC-s ISA buszos Ethernet + kártyákra olyan korlátozások + érvényesek, melyek komoly hálózati + problémák keletkezéséhez + vezethetnek, különösen az NFS esetében. + Ez a nehézség nem &os;-függõ, de a &os; + rendszereket is érinti. + + Ez gond általában majdnem mindig akkor + merül fel, amikor egy (&os;-s) PC egy + hálózatba kerül többek közt a + Silicon Graphic és a Sun Microsystems által + gyártott nagyteljesítményû + munkaállomásokkal. Az NFS csatlakoztatása + és bizonyos mûveletek még hibátlanul + végrehajtódnak, azonban hirtelen a szerver + látszólag nem válaszol többet a kliens + felé úgy, hogy a többi rendszertõl + folyamatosan dolgozza felfele a kéréseket. Ez a + kliens rendszeren tapasztalható csak, amikor a kliens + &os; vagy egy munkaállomás. Sok rendszeren + egyszerûen rendesen le sem lehet állítani a + klienst, ha a probléma egyszer már + felütötte a fejét. Egyedüli + megoldás gyakran csak a kliens + újraindítása marad, mivel az NFS-ben + kialakult helyzetet máshogy nem lehet megoldani. + + Noha a helyes megoldás az lenne, ha + beszereznénk egy nagyobb teljesítményû + és kapacitású kártyát a &os; + rendszer számára, azonban egy jóval + egyszerûbb kerülõút is + található a kielégítõ + mûködés eléréséhez. Ha a + &os; rendszer képviseli a szervert, + akkor a kliensnél adjuk meg a + beállítást is a + csatlakoztatásnál. Ha a &os; rendszer a + kliens szerepét tölti be, akkor + az NFS állományrendszert az + beállítással + csatlakoztassuk róla. Ezek a + beállítások az fstab + állomány negyedik mezõjében is + megadhatóak az automatikus csatlakoztatáshoz, vagy + manuális esetben a &man.mount.8; parancsnak a + paraméterrel. + + Hozzá kell azonban tennünk, hogy létezik + egy másik probléma, amit gyakran ezzel + tévesztenek össze, amikor az NFS szerverek és + kliensek nem ugyanabban a hálózatban + találhatóak. Ilyen esetekben mindenképpen + gyõzõdjünk meg róla, + hogy az útválasztók rendesen + továbbküldik a mûködéshez + szükséges UDP + információkat, különben nem sokat tudunk + tenni a megoldás érdekében. + + A most következõ példákban a + gyorsvonat lesz a + nagyteljesítményû munkaállomás + (felület) neve, illetve a freebsd pedig a + gyengébb teljesítményû Ethernet + kártyával rendelkezõ &os; rendszer + (felület) neve. A szerveren az + /osztott nevû könyvtárat + fogjuk NFS állományrendszerként + exportálni (lásd &man.exports.5;), amelyet majd a + /projekt könyvtárba fogunk + csatlakoztatni a kliensen. Minden esetben érdemes lehet + még megadnunk a vagy + , illetve + opciókat is. + + Ebben a példában a &os; rendszer + (freebsd) lesz a kliens, és az + /etc/fstab + állományában így szerepel az + exportált állományrendszer: + + gyorsvonat:/osztott /projekt nfs rw,-r=1024 0 0 + + És így tudjuk manuálisan + csatlakoztatni: + + &prompt.root; mount -t nfs -o -r=1024 gyorsvonat:/osztott /projekt + + Itt a &os; rendszer lesz a szerver, és a + gyorsvonat /etc/fstab + állománya így fog kinézni: + + freebsd:/osztott /projekt nfs rw,-w=1024 0 0 + + Manuálisan így csatlakoztathatjuk az + állományrendszert: + + &prompt.root; mount -t nfs -o -w=1024 freebsd:/osztott /projekt + + Szinte az összes 16 bites Ethernet kártya + képes mûködni a fenti írási vagy + olvasási korlátozások nélkül + is. + + A kíváncsibb olvasók + számára eláruljuk, hogy pontosan + miért is következik be ez a hiba, ami egyben arra is + magyarázatot ad, hogy miért nem tudjuk + helyrehozni. Az NFS általában 8 kilobyte-os + blokkokkal dolgozik (habár kisebb + méretû darabkákat is tud + készíteni). Mivel az Ethernet által kezelt + legnagyobb méret nagyjából 1500 byte, + ezért az NFS blokkokat több Ethernet + csomagra kell osztani — még olyankor is, ha ez a + program felsõbb rétegeiben osztatlan + egységként látszik — ezt aztán + fogadni kell, összerakni és + nyugtázni mint egységet. A + nagyteljesítményû + munkaállomások a szabvány által + még éppen megengedett szorossággal + képesek ontani magukból az egy egységhez + tartozó csomagokat, közvetlenül egymás + után. A kisebb, gyengébb + teljesítményû kártyák + esetében azonban az egymáshoz tartozó, + késõbb érkezõ csomagok ráfutnak a + korábban megkapott csomagokra még pontosan + azelõtt, hogy elérnék a gépet, + így az egységek nem + állíthatóak össze vagy nem + nyugtázhatóak. Ennek + eredményeképpen a munkaállomás egy + adott idõ múlva megint próbálkozik, de + ismét az egész 8 kilobyte-os blokkot + küldi el, ezért ez a folyamat a + végtelenségig ismétlõdik. + + Ha a küldendõ egységek + méretét az Ethernet által kezelt csomagok + maximális mérete alá csökkentjük, + akkor biztosak lehetünk benne, hogy a teljes Ethernet + csomag egyben megérkezik és + nyugtázódik, így elkerüljük a + holtpontot. + + A nagyteljesítményû + munkaállomások természetesen + továbbra is küldhetnek a PC-s rendszerek felé + túlfutó csomagokat, de egy jobb + kártyával az ilyen túlfutások nem + érintik az NFS által használt + egységeket. Amikor egy ilyen + túlfutás bekövetkezik, az érintett + egységet egyszerûen újra elküldik, + amelyet a rákövetkezõ alkalommal nagy + valószínûséggel már tudunk + rendesen fogadni, összerakni és + nyugtázni. + + + + + + + + + Bill + Swingle + Írta: + + + + + Eric + Ogren + Írta: + + + Udo + Erdelhoff + + + + + Hálózati információs rendszer + (NIS/YP) + + + Mi ez? + + NIS + Solaris + HP-UX + AIX + Linux + NetBSD + OpenBSD + + A hálózati információs + szolgáltatást (Network Information Service, avagy + NIS) a Sun + Microsystems fejlesztette ki a &unix; (eredetileg &sunos;) + rendszerek központosított + karbantartásához. Mostanra már + lényegében ipari szabvánnyá + nõtte ki magát, hiszen az összes nagyobb + &unix;-szerû rendszer (a &solaris;, HP-UX, &aix;, Linux, + NetBSD, OpenBSD, &os; stb.) támogatja a NIS + használatát. + + + sárga oldalak + NIS + + + A NIS + régebben sárga oldalak (Yellow Pages) néven + volt ismert, de a különbözõ jogi + problémák miatt késõbb ezt a Sun + megváltoztatta. A régi elnevezést + (és a yp rövidítést) azonban + még napjainkban is lehet néhol + látni. + + + NIS + tartományok + + + Ez egy RPC alapján mûködõ, + kliens/szerver felépítésû rendszer, + amely az egy NIS tartomány belül levõ + számítógépek számára + teszi lehetõvé ugyanazon konfigurációs + állományok használatát. + Segítségével a rendszergazda a NIS + klienseket a lehetõ legkevesebb adat + hozzáadásával, + eltávolításával vagy + módosításával képes egyetlen + helyrõl beállítani. + + Windows NT + + Hasonló a &windowsnt; tartományaihoz, + és habár a belsõ implementációt + tekintve már akadnak köztük jelentõs + eltérések is, az alapvetõ funkciók + szintjén mégis összevethetõek. + + + + + A témához tartozó fogalmak és + programok + + A NIS telepítése számos fogalom + és fontos felhasználói program kerül + elõ &os;-n, akár egy NIS szervert akarunk + beállítani, akár csak egy NIS + klienst: + + rpcbind + portmap + + + + + + + + + Fogalom + Leírás + + + + + NIS tartománynév + A NIS központi szerverei és az + összes hozzájuk tartozó kliens + (beleértve az alárendelt szervereket) + rendelkezik egy NIS tartománynévvel. + Hasonló a &windowsnt; által + használt tartománynevekhez, de a NIS + tartománynevei semmilyen kapcsolatban nem + állnak a névfeloldással. + + + + rpcbind + Az RPC (Remote Procedure Call, a + NIS által használt egyik + hálózati protokoll) + engedélyezéséhez lesz rá + szükségünk. Ha az + rpcbind nem fut, akkor sem + NIS szervert, sem pedig NIS klienst nem tudunk + mûködtetni. + + + + ypbind + A NIS klienst köti össze a + hozzátartozó NIS szerverrel. A NIS + tartománynevet a rendszertõl veszi, + és az RPC + használatával csatlakozik a szerverhez. + Az ypbind a NIS + környezet kliens és szerver közti + kommunikációjának magját + alkotja. Ha az ypbind + leáll a kliens gépén, akkor nem + tudjuk elérni a NIS szervert. + + + + ypserv + Csak a NIS szervereken szabad futnia, mivel ez maga + a NIS szerver programja. Ha az &man.ypserv.8; + leáll, akkor a szerver nem lesz képes + tovább kiszolgálni a NIS + kéréseket (szerencsére az + alárendelt szerverek képesek + átvenni ezeket). A NIS bizonyos + változatai (de nem az, amelyik a &os;-ben is + megjelenik) nem próbálnak meg más + szerverekhez csatlakozni, ha bedöglik az + aktuális használt szerver. Ezen gyakran + egyedül csak a szervert képviselõ + program (vagy akár az egész szerver) + újraindítása segíthet, + illetve az ypbind + újraindítása a kliensen. + + + + rpc.yppasswdd + Ez egy olyan program, amelyet csak a NIS + központi szerverein kell csak futtatni. Ez a + démon a NIS kliensek számára a NIS + jelszavaik megváltoztatását teszi + lehetõvé. Ha ez a démon nem fut, + akkor a felhasználók csak úgy + tudják megváltoztatni a jelszavukat, ha + bejelentkeznek a központi NIS szerverre. + + + + + + + + + Hogyan mûködik? + + A NIS környezetekben háromféle gép + létezik: a központi szerverek, az alárendelt + szerverek és a kliensek. A szerverek képezik a + gépek konfigurációs + információinak központi + tárhelyét. A központi szerverek + tárolják ezen információk hiteles + másolatát, míg ezt az alárendelt + szerverek redundánsan tükrözik. A kliensek a + szerverekre támaszkodnak ezen információk + beszerzéséhez. + + Sok állomány tartalma megosztható ezen + a módon. Például a + master.passwd, a group + és hosts állományokat + meg szokták osztani NFS-en. Amikor a kliensen + futó valamelyik programnak olyan + információra lenne szüksége, amely + általában ezekben az állományokban + nála megtalálható lenne, akkor helyette a + NIS szerverhez fordul. + + + A gépek típusai + + + + NIS + központi szerver + + + + A központi NIS szerver. Ez + a szerver, amely leginkább a &windowsnt; + elsõdleges + tartományvezérlõjéhez + hasonlítható tartja karban az összes, + NIS kliensek által használt + állományt. A passwd, + group, és összes + többi ehhez hasonló állomány + ezen a központi szerveren található + meg. + + + Egy gép akár több NIS + tartományban is lehet központi szerver. + Ezzel a lehetõséggel viszont itt most nem + foglalkozunk, mivel most csak egy viszonylag kis + méretû NIS környezetet + feltételezünk. + + + + + NIS + alárendelt szerver + + + + Az alárendelt NIS + szerverek. A &windowsnt; tartalék + tartományvezérlõihez + hasonlítanak, és az alárendelt NIS + szerverek feladata a központi NIS szerveren + tárolt adatok másolatainak + karbantartása. Az alárendelt NIS szerverek + a redundancia megvalósításában + segítenek, aminek leginkább a fontosabb + környezetekben van szerepe. Emellett a központi + szerver terhelésének + kiegyenlítését is elvégzik. A + NIS kliensek elsõként mindig ahhoz a NIS + szerverhez csatlakoznak, amelytõl elõször + választ kapnak, legyen akár az egy + alárendelt szerver. + + + + NIS + kliens + + + + A NIS kliensek. A NIS kliensek, + hasonlóan a &windowsnt; + munkaállomásokhoz, a NIS szerveren (amely a + &windowsnt; munkaállomások esetében a + tartományvezérlõ) keresztül + jelentkeznek be. + + + + + + + + A NIS/YP használata + + Ebben a szakaszban egy példa NIS környezetet + állítunk be. + + + Tervezés + + Tegyük fel, hogy egy aprócska egyetemi labor + rendszergazdái vagyunk. A labor, mely 15 &os;-s + gépet tudhat magáénak, jelen pillanatban + még semmilyen központosított + adminisztráció nem létezik. Mindegyik + gép saját /etc/passwd + és /etc/master.passwd + állománnyal rendelkezik. Ezeket az + állományokat saját kezûleg kell + szinkronban tartani. Tehát ha most felveszünk egy + felhasználót a laborhoz, akkor az + adduser parancsot mind a 15 gépen ki + kell adni. Egyértelmû, hogy ez így nem + maradhat, ezért úgy döntöttük, + hogy a laborban NIS-t fogunk használni, és + két gépet kinevezünk szervernek. + + Az iméntieknek megfelelõen a labor most + valahogy így néz ki: + + + + + + A gép neve + IP-cím + A gép szerepe + + + + + ellington + 10.0.0.2 + központi NIS + + + coltrane + 10.0.0.3 + alárendelt NIS + + + basie + 10.0.0.4 + tanszéki munkaállomás + + + bird + 10.0.0.5 + kliensgép + + + cli[1-11] + 10.0.0.[6-17] + a többi kliensgép + + + + + + Ha még nincs tapasztalatunk a NIS rendszerek + összeállításában, akkor + elõször jó ötlet lehet + végiggondolni, miként is akarjuk + kialakítani. A hálózatunk + méretétõl függetlenül is akadnak + olyan döntések, amelyeket mindenképpen meg + kell hoznunk. + + + A NIS tartománynév + megválasztása + + + NIS + tartománynév + + + Ez nem az a tartománynév, + amit megszokhattunk. Ennek a pontos neve NIS + tartománynév. Amikor a kliensek + kérnek valamilyen információt, akkor + megadják annak a NIS tartománynak a + nevét is, amelynek részei. Így tud egy + hálózaton több szerver arról + dönteni, hogy melyikük melyik kérést + válaszolja meg. A NIS által használt + tartománynévre tehát inkább + úgy érdemes gondolni, mint egy valamilyen + módon összetartozó gépek + közös nevére. + + Elõfordul, hogy egyes szervezetek az interneten is + nyilvántartott tartománynevüket + választják NIS tartománynévnek. + Ez alapvetõen nem ajánlott, mivel a + hálózati problémák + felderítése közben + félreértéseket szülhet. A NIS + tartománynévnek a hálózatunkon + belül egyedinek kell lennie, és lehetõleg + minél jobban írja le az általa + csoportba sorolt gépeket. Például a + Kis Kft. üzleti osztályát tegyük a + kis-uzlet NIS tartományba. Ebben a + példában most a + proba-tartomany nevet + választottuk. + + SunOS + + A legtöbb operációs rendszer azonban + (köztük a &sunos;) a NIS tartománynevet + használja internetes + tartománynévként is. Ha a + hálózatunkon egy vagy több ilyen + gép is található, akkor a NIS + tartomány nevének az internetes + tartománynevet kell + megadnunk. + + + + + A szerverek fizikai elvárásai + + Nem árt néhány dolgot fejben + tartani, amikor a NIS szervernek használt + gépet kiválasztjuk. Az egyik ilyen + szerencsétlen dolog az a szintû + függõség, ami a NIS kliensek felõl + megfigyelhetõ a szerverek felé. Ha egy kliens + nem tudja a NIS tartományon belül felvenni a + kapcsolatot valamelyik szerverrel, akkor az a gép + könnyen megbízhatatlanná válhat. + Felhasználói- és + csoportinformációk nélkül a + legtöbb rendszer egy idõre le is merevedik. Ennek + figyelembevételével tehát olyan + gépet kell szervernek választanunk, amelyet + nem kell gyakran újraindítani, és nem + végzünk rajta semmilyen komoly munkát. A + célnak legjobban megfelelõ NIS szerverek + valójában olyan gépek, amelyek + egyedüli feladata csak a NIS kérések + kiszolgálása. Ha a hálózatunk + nem annyira leterhelt, akkor még a NIS szerver + mellett más programokat is futtathatunk, de ne + feledjük, hogy ha a NIS szolgáltatás + megszûnik, akkor az az összes + NIS kliensen éreztetni fogja kedvezõtlen + hatását. + + + + + + A NIS szerverek + + A NIS rendszerben tárolt összes + információ általános + példánya egyetlen gépen + található meg, amelyet a központi NIS + szervernek hívunk. Az információk + tárolására szánt adatbázis + pedig NIS táblázatoknak (NIS map) nevezzük. + &os; alatt ezek a táblázatok a + /var/yp/tartománynév + könyvtárban találhatóak, ahol a + tartománynév + a kiszolgált NIS tartományt nevezi meg. + Egyetlen NIS szerver egyszerre akár több + tartományt is kiszolgálhat, így itt + több könyvtár is található, + minden támogatott tartományhoz egy. Minden + tartomány saját, egymástól + független táblázatokkal rendelkezik. + + A központi és alárendelt NIS szerverek + az ypserv démon + segítségével dolgozzák fel a NIS + kéréseket. Az ypserv + felelõs a NIS kliensektõl befutó + kérések fogadásáért, + és a kért tartomány valamint + táblázat nevébõl meghatározza + az adatbázisban tárolt állományt, + majd innen visszaküldi a hozzátartozó + adatot a kliensnek. + + + A központi NIS szerver + beállítása + + + NIS + szerver + beállítása + + + A központi NIS szerver + beállítása viszonylag + magától értetõdõ, de a + nehézségét az igényeink + szabják meg. A &os; alapból támogatja + a NIS használatát. Ezért + mindössze annyit kell tennünk, hogy a + következõ sorokat betesszük az + /etc/rc.conf állományba, + és a &os; gondoskodik a többirõl. + + + + nisdomainname="proba-tartomany" + Ez a sor adja meg a hálózati + beállítások (vagy + például az + újraindítás) során a NIS + tartomány nevét, amely a korábbiak + szerint itt most a + proba-tartomany. + + + + nis_server_enable="YES" + Ezzel utasítjuk a &os;-t, hogy a + hálózati alkalmazások + következõ indításakor a NIS + szervert is aktiválja. + + + + nis_yppasswdd_enable="YES" + Ezzel engedélyezzük az + rpc.yppasswdd démont, amely a + korábban említettek szerint + lehetõvé teszi a felhasználók + számára, hogy a közvetlenül a + kliensekrõl változtassák meg a NIS + jelszavukat. + + + + + A konkrét NIS + beállításainktól + függõen további bejegyzések + felvételére is szükségünk + lehet. Erre késõbb még az olyan NIS + szervereknél, amelyek egyben NIS kliensek, + vissza fogunk térni. + + + Most mindössze annyit kell tennünk, hogy + rendszeradminisztrátorként kiadjuk az + /etc/netstart parancsot. Az + /etc/rc.conf állományban + szereplõ adatok alapján mindent + beállít magától. + + + + + A NIS táblázatok + inicializálása + + + NIS + táblázatok + + + A NIS táblázatok + lényegében a /var/yp + könyvtárban tárolt adatbázisok. A + központi NIS szerver /etc + könyvtárában található + konfigurációs + állományokból + állítódnak elõ, egyetlen + kivétellel: ez az + /etc/master.passwd + állomány. Ennek megvan a maga oka, hiszen nem + akarjuk a root és az összes + többi fontosabb felhasználóhoz + tartozó jelszót az egész NIS + tartománnyal megosztani. Ennek megfelelõen a + NIS táblázatok + inicializálásához a + következõt kell tennünk: + + &prompt.root; cp /etc/master.passwd /var/yp/master.passwd +&prompt.root; cd /var/yp +&prompt.root; vi master.passwd + + El kell távolítanunk az összes + rendszerszintû (bin, + tty, kmem, + games, stb), és minden olyan + egyéb hozzáférést, amelyeket nem + akarjuk közvetíteni a NIS kliensek felé + (például a root és + minden más nullás, vagyis + rendszeradminisztrátori azonosítóval + ellátott hozzáférést). + + + Gondoskodjunk róla, hogy az + /var/yp/master.passwd + állomány sem a csoport, sem pedig + bárki más számára nem + olvasható (600-as engedély)! Ennek + beállításához + használjuk az chmod parancsot, + ha szükséges. + + + Tru64 UNIX + + Ha végeztünk, akkor már + tényleg itt az ideje inicializálni NIS + táblázatainkat. A &os; erre egy + ypinit nevû szkriptet ajánl + fel (errõl a saját man oldalán tudhatunk + meg többet). Ez a szkript egyébként a + legtöbb &unix; típusú + operációs rendszeren + megtalálható, de nem az összesen. A + Digital UNIX/Compaq Tru64 UNIX rendszereken ennek a neve + ypsetup. Mivel most a központi NIS + szerver táblázatait hozzuk létre, + azért az ypinit szkriptnek + át kell adnunk a opciót + is. A NIS táblázatok + elõállításánál + feltételezzük, hogy a fentebb ismertetett + lépéseket már megtettük, majd + kiadjuk ezt a parancsot: + + ellington&prompt.root; ypinit -m proba-tartomany +Server Type: MASTER Domain: proba-tartomany +Creating an YP server will require that you answer a few questions. +Questions will all be asked at the beginning of the procedure. +Do you want this procedure to quit on non-fatal errors? [y/n: n] n +Ok, please remember to go back and redo manually whatever fails. +If you don't, something might not work. +At this point, we have to construct a list of this domains YP servers. +rod.darktech.org is already known as master server. +Please continue to add any slave servers, one per line. When you are +done with the list, type a <control D>. +master server : ellington +next host to add: coltrane +next host to add: ^D +The current list of NIS servers looks like this: +ellington +coltrane +Is this correct? [y/n: y] y + +[ .. a táblázatok generálása .. ] + +NIS Map update completed. +ellington has been setup as an YP master server without any errors. + + Az üzenetek fordítása: + + A szerver típusa: KÖZPONTI, tartomány: proba-tartomany +Az YP szerver létrehozásához meg kell válaszolni néhány kérdést az +eljárás megkezdése elõtt. +Szeretnénk, ha az eljárás megszakadna a nem végzetes hibák esetén is? [i/n: n] n +Rendben, akkor ne felejtsük el manuálisan kijavítani a hibát, ha +valamivel gond lenne. Ha nem tesszük meg, akkor elõfordulhat, hogy +valami nem fog rendesen mûködni. Most össze kell állítanunk egy listát +a tartomány YP szervereirõl. +Jelenleg a rod.darktech.org a központi szerver. +Kérjünk, adjon meg további alárendelt szervereket, soronként egyet. +Amikor ezt befejeztük, a <control D> lenyomásával tudunk +kilépni. +központi szerver : ellington +következõ gép : coltrane +következõ gép : ^D +A NIS szerverek listája jelenleg a következõ: +ellington +coltrane +Ez megfelelõ? [i/n: i] i + +[ .. a táblázatok generálása .. ] + +A NIS táblázatok sikeressen frissültek. +Az elligon szervert minden hiba nélkül sikerült központi szerverként +beállítani. + + Az ypinit a + /var/yp/Makefile.dist + állományból létrehozza a + /var/yp/Makefile + állományt. Amennyiben ez + létrejött, az állomány + feltételezi, hogy csak &os;-s gépek + részvételével akarunk + kialakítani egy egyszerveres NIS környezetet. + Mivel a proba-tartomany még egy + alárendelt szervert is tartalmaz, ezért + át kell írnunk a + /var/yp/Makefile + állományt: + + ellington&prompt.root; vi /var/yp/Makefile + + Ezt a sort kell megjegyzésbe tennünk: + + NOPUSH = "True" + + (ha még nem lenne úgy). + + + + + Az alárendelt NIS szerverek + beállítása + + + NIS + alárendelt szerver + + + Az alárendelt NIS szerverek + beállítása még a + központinál is egyszerûbb. + Jelentkezzünk be az alárendelt szerverre + és az eddigieknek megfelelõen írjuk + át az /etc/rc.conf + állományt. Az egyetlen + különbség ezúttal csupán + annyi lesz, hogy az ypinit + lefuttatásakor a opciót + kell megadnunk (mint slave, vagyis alárendelt). A + opció használatához + a központi NIS szerver nevét is át kell + adnunk, ezért a konkrét parancs valahogy + így fog kinézni: + + coltrane&prompt.root; ypinit -s ellington proba-tartomany + +Server Type: SLAVE Domain: test-domain Master: ellington + +Creating an YP server will require that you answer a few questions. +Questions will all be asked at the beginning of the procedure. + +Do you want this procedure to quit on non-fatal errors? [y/n: n] n + +Ok, please remember to go back and redo manually whatever fails. +If you don't, something might not work. +There will be no further questions. The remainder of the procedure +should take a few minutes, to copy the databases from ellington. +Transferring netgroup... +ypxfr: Exiting: Map successfully transferred +Transferring netgroup.byuser... +ypxfr: Exiting: Map successfully transferred +Transferring netgroup.byhost... +ypxfr: Exiting: Map successfully transferred +Transferring master.passwd.byuid... +ypxfr: Exiting: Map successfully transferred +Transferring passwd.byuid... +ypxfr: Exiting: Map successfully transferred +Transferring passwd.byname... +ypxfr: Exiting: Map successfully transferred +Transferring group.bygid... +ypxfr: Exiting: Map successfully transferred +Transferring group.byname... +ypxfr: Exiting: Map successfully transferred +Transferring services.byname... +ypxfr: Exiting: Map successfully transferred +Transferring rpc.bynumber... +ypxfr: Exiting: Map successfully transferred +Transferring rpc.byname... +ypxfr: Exiting: Map successfully transferred +Transferring protocols.byname... +ypxfr: Exiting: Map successfully transferred +Transferring master.passwd.byname... +ypxfr: Exiting: Map successfully transferred +Transferring networks.byname... +ypxfr: Exiting: Map successfully transferred +Transferring networks.byaddr... +ypxfr: Exiting: Map successfully transferred +Transferring netid.byname... +ypxfr: Exiting: Map successfully transferred +Transferring hosts.byaddr... +ypxfr: Exiting: Map successfully transferred +Transferring protocols.bynumber... +ypxfr: Exiting: Map successfully transferred +Transferring ypservers... +ypxfr: Exiting: Map successfully transferred +Transferring hosts.byname... +ypxfr: Exiting: Map successfully transferred + +coltrane has been setup as an YP slave server without any errors. +Don't forget to update map ypservers on ellington. + + Most már lennie kell egy + /var/yp/proba-tartomany nevû + könyvtárunknak is. A központi NIS szerver + táblázatainak másolata itt fognak + tárolódni. Ezeket soha ne felejtsük el + frissen tartani. Az alárendelt szervereken a + következõ /etc/crontab + bejegyzések pontosan ezt a feladatot + látják el: + + 20 * * * * root /usr/libexec/ypxfr passwd.byname +21 * * * * root /usr/libexec/ypxfr passwd.byuid + + Ez a két sor gondoskodik róla, hogy az + alárendelt szerverek ne felejtsék el + egyeztetni a táblázataikat a központi + szerver táblázataival. Habár ezek a + bejegyzések nem nélkülözhetetlenek a + megfelelõ mûködéshez, mivel a + központi szerver mindig igyekszik az alárendelt + szervereknek elküldeni a NIS + táblázataiban létrejött + változásokat. Mivel azonban a jelszavak + létfontosságúak a szervertõl + függõ rendszerek számára, + ezért jó ötlet lehet explicit + módon is elõírni a + frissítést. Ez a forgalmasabb + hálózatokon nagyobb jelentõséggel + bír, mivel ott a táblázatok + frissítése nem mindig fejezõdik be + rendesen. + + Most pedig futassuk le a + /etc/netstart parancsot az + alárendelt szervereken is, amivel így elindul + a NIS szerver. + + + + + + A NIS kliensek + + A NIS kliens az ypbind démon + segítségével egy kötésnek + (bind) nevezett kapcsolatot épít ki egy adott + NIS szerverrel. Az ypbind ellenõrzi a + rendszer alapértelmezett tartományát (ezt + a domainname paranccsal + állítottunk be), majd RPC + kéréseket kezd szórni a helyi + hálózaton. Ezek a kérések annak a + tartománynak a nevét tartalmazzák, + amelyhez az ypbind megpróbál + kötést létrehozni. Ha az adott + tartomány kiszolgálására + beállított szerver észleli ezeket a + kéréseket, akkor válaszol az + ypbind démonnak, amely pedig + feljegyzi a szerver címét. Ha több szerver + is elérhetõ (például egy + központi és több alárendelt), akkor az + ypbind az elsõként + válaszoló címét fogja + rögzíteni. Innentõl kezdve a kliens + közvetlenül ennek a szervernek fogja küldeni a + NIS kéréseit. Az ypbind + idõnként megpingeli a szervert, + hogy meggyõzõdjön az + elérhetõségérõl. Ha az + ypbind egy adott idõn belül nem + kap választ a ping kéréseire, akkor + megszünteti a kötést a tartományhoz + és nekilát keresni egy másik + szervert. + + + A NIS kliensek beállítása + + + NIS + a kliensek beállítása + + + Egy &os;-s gépet NIS kliensként + meglehetõsen egyszerûen lehet + beállítani. + + + + Nyissuk meg az /etc/rc.conf + állományt és a NIS + tartománynév + beállításához, valamint az + ypbind + elindításához a + következõket írjuk bele: + + nisdomainname="proba-tartomany" +nis_client_enable="YES" + + + + A NIS szerveren található jelszavak + importálásához + távolítsuk el az összes + felhasználói + hozzáférést az + /etc/master.passwd + állományunkból és a + vipw + segítségével adjuk hozzá az + alábbi sort az állomány + végéhez: + + +::::::::: + + + Ez a sor beenged bárkit a + rendszerünkre, akinek a NIS szervereken van + érvényes + hozzáférése. A NIS klienseket + ezzel a sorral sokféle módon tudjuk + állítani. A hálózati + csoportokról szóló + szakaszban találunk majd errõl + több információt. A téma + mélyebb megismeréséhez az + O'Reilly Managing NFS and NIS + címû könyvét + ajánljuk. + + + + Legalább helyi + hozzáférést (vagyis amit nem + NIS-en keresztül importálunk) azonban + mindenképpen hagyjunk meg az + /etc/master.passwd + állományunkban, és ez a + hozzáférés legyen a + wheel csoport tagja. Ha valami + gond lenne a NIS használatával, akkor + ezen a hozzáférésen + keresztül tudunk a gépre + távolról bejelentkezni, majd innen + root felhasználóra + váltva megoldani a felmerült + problémákat. + + + + + A NIS szerverrõl az összes + lehetséges csoport-bejegyzést az + /etc/group + állományban így tudjuk + importálni: + + +:*:: + + + + Miután elvégeztük ezeket a + lépéseket, képesek leszünk + futtatni az ypcat passwd parancsot, + és látni a NIS szerver jelszavakat + tartalmazó táblázatát. + + + + + + + A NIS biztonsága + + Általában tetszõleges távoli + felhasználó küldhet RPC + kéréseket az &man.ypserv.8; számára + és kérheti le a NIS táblázatok + tartalmát, feltéve, hogy ismeri a tartomány + nevét. Az ilyen hitelesítés + nélküli mûveletek ellen az &man.ypserv.8; + úgy védekezik, hogy tartalmaz egy + securenets nevû lehetõséget, + amellyel az elérhetõségüket tudjuk + leszûkíteni gépek egy csoportjára. Az + &man.ypserv.8; indításakor ezeket az + információkat a + /var/yp/securenets + állományból próbálja meg + betölteni. + + + Az elérési útvonala megadható + a opció + használatával. Ez az állomány + olyan bejegyzéseket tartalmaz, amelyekben egy + hálózati cím és tõle + láthatatlan karakterekkel elválasztva egy + hálózati maszk szerepel. A # + karakterrel kezdõdõ sorokat megjegyzésnek + nyilvánítjuk. Egy minta securenets + állomány valahogy így nézne + ki: + + + # Engedélyezzük önmagunkról a csatlakozást -- kell! +127.0.0.1 255.255.255.255 +# Engedélyezzük a 192.168.128.0 hálózatról érkezõ csatlakozásokat: +192.168.128.0 255.255.255.0 +# Engedélyezzük a laborban található 10.0.0.0 és 10.0.15.255 közti +# címekkel rendelkezõ gépek csatlakozását: +10.0.0.0 255.255.240.0 + + Ha az &man.ypserv.8; olyan címrõl kap + kérést, amely illeszkedik az elõírt + címek valamelyikére, akkor a szokásos + módon feldolgozza azt. Ellenkezõ esetben a + kérést figyelmen kívül hagyja + és egy figyelmeztetést vesz fel hozzá a + naplóba. Ha a /var/yp/securenets + állomány nem létezik, akkor az + ypserv tetszõleges géprõl + engedélyezi a csatlakozást. + + Az ypserv lehetõséget ad a + Wietse Venema által fejlesztett TCP + Wrapper csomag használatára is. + Ezzel a rendszergazda a /var/yp/securenets + állomány helyett a TCP + Wrapper konfigurációs + állományai alapján képes + szabályozni az elérhetõséget. + + + Miközben mind a két módszer + nyújt valamilyen fajta védelmet, de a + privilegizált portok teszteléséhez + hasonlóan az IP + álcázásával (IP spoofing) + sebezhetõek. Ezért az összes NIS-hez + tartozó forgalmat tûzfallal kell + blokkolnunk. + + Az /var/yp/securenets + állományt használó szerverek nem + képesek az elavult TCP/IP + implementációkat használó + érvényes klienseket rendesen kiszolgálni. + Egyes ilyen implementációk a címben a + géphez tartozó biteket nullára + állítják az + üzenetszóráshoz, és/vagy + ezért az üzenetszóráshoz + használt cím kiszámításakor + nem tudja észleli a hálózati maszkot. A + legtöbb ilyen probléma megoldható a kliens + konfigurációjának + megváltoztatásával, míg más + problémák megoldása a + kérdéses kliensek + nyugdíjazását + kívánják meg, vagy a + /var/yp/securenets + használatának elhagyását. + + Egy régebbi TCP/IP implementációval + üzemelõ szerveren pedig a + /var/yp/securenets állomány + használata kifejezetten rossz ötlet, és a + hálózatunk nagy részében + képes használhatatlanná tenni a NIS + funkcióit. + + TCP wrapperek + + A TCP Wrapper csomag + alkalmazása a NIS szerverünk + válaszadáshoz szükséges + idejét is segít csökkenteni. Az ilyenkor + jelentkezõ plusz késlekedés mellesleg + elég nagy lehet ahhoz, hogy a klienseknél + idõtúllépés következzen be, + különösen a terheltebb + hálózatokon vagy a lassú NIS szerverek + esetében. Ha egy vagy több kliensünk is + ilyen tüneteket mutat, akkor érdemes a + kérdéses kliens rendszereket alárendelt + NIS szerverekké alakítani és + önmagukhoz rendelni. + + + + + + Egyes felhasználók + bejelentkezésének + megakadályozása + + A laborunkban van egy basie nevû + gép, amely a tanszék egyetlen + munkaállomása. Ezt a gépet nem akarjuk + kivenni a NIS tartományból, de a központi NIS + szerver passwd állománya + mégis egyaránt tartalmazza a hallgatók + és az oktatók eléréseit. Mit lehet + ilyenkor tenni? + + Adott felhasználók esetében le tudjuk + tiltani a bejelentkezést a gépen még + olyankor is, ha léteznek a NIS + adatbázisában. Ehhez mindössze a kliensen az + /etc/master.passwd állomány + végére be kell tennünk egy + -felhasználónév + sort, ahol a + felhasználónév + annak a felhasználónak a neve, akit nem akarunk + beengedni a gépre. Ezt leginkább a + vipw használatán keresztül + érdemes megtennünk, mivel a vipw + az /etc/master.passwd + állomány alapján végez némi + ellenõrzést, valamint a szerkesztés + befejeztével magától + újragenerálja a jelszavakat tároló + adatbázist. Például, ha a + bill nevû felhasználót + ki akarjuk tiltani a basie nevû + géprõl, akkor: + + basie&prompt.root; vipw +[vegyük fel a -bill sort a végére, majd lépjünk ki] +vipw: rebuilding the database... +vipw: done + +basie&prompt.root; cat /etc/master.passwd + +root:[jelszó]:0:0::0:0:The super-user:/root:/bin/csh +toor:[jelszó]:0:0::0:0:The other super-user:/root:/bin/sh +daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin +operator:*:2:5::0:0:System &:/:/sbin/nologin +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin +tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin +kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin +games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin +news:*:8:8::0:0:News Subsystem:/:/sbin/nologin +man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin +bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin +uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico +xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin +pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin ++::::::::: +-bill + +basie&prompt.root; + + + + + + + + Udo + Erdelhoff + Készítette: + + + + + A hálózati csoportok + alkalmazása + + hálózati + csoportok + + Az elõzõ szakaszban ismertetett módszer + viszonylag jól mûködik olyan esetekben, amikor + nagyon kevés felhasználóra és/vagy + számítógépre kell alkalmaznunk + speciális megszorításokat. A nagyobb + hálózatokban szinte biztos, + hogy elfelejtünk kizárni egyes + felhasználókat az érzékeny + gépekrõl, vagy az összes gépen + egyenként kell ehhez a megfelelõ + beállításokat elvégezni, és + ezzel lényegében elvesztjük a NIS + legfontosabb elõnyét, vagyis a + központosított + karbantarthatóságot. + + A NIS fejlesztõi erre a problémára a + hálózati csoportokat + létrehozásával válaszoltak. A + céljuk és mûködésük + szempontjából leginkább a &unix;-os + állományrendszerekben található + csoportokhoz mérhetõek. A legnagyobb + eltérés a numerikus azonosítók + hiányában mutatkozik meg, valamint a + hálózati csoportokat a + felhasználókon kívül további + hálózati csoportok megadásával is ki + lehet alakítani. + + A hálózati csoportok a nagyobb, bonyolultabb, + többszáz felhasználós + hálózatok számára jöttek + létre. Egy részrõl ez nagyon jó + dolog, különösen akkor, ha egy ilyen helyzettel + kell szembenéznünk. Másrészrõl + ez a mértékû bonyolultság szinte + teljesen lehetetlenné teszi a hálózati + csoportok egyszerû bemutatását. A szakasz + további részében használt + példa is ezt a problémát igyekszik + illusztrálni. + + Tételezzük fel, hogy laborunkban a NIS sikeres + bevezetése felkeltette a fõnökeink + figyelmét. Így a következõ feladatunk + az lett, hogy terjesszük ki a NIS tartományt az + egyetemen található néhány + másik gépre is. Az alábbi két + táblázatban az új + felhasználók és az új + számítógép neveit találjuk, + valamint a rövid leírásukat. + + + + + + Felhasználók nevei + Leírás + + + + + + alpha, + beta + az IT tanszék hétköznapi + dolgozói + + + + charlie, + delta + az IT tanszék újdonsült + dolgozói + + + + echo, + foxtrott, golf, + ... + átlagos dolgozók + + + + able, + baker, ... + ösztöndíjasok + + + + + + + + + + Gépek nevei + Leírás + + + + + + haboru, halal, + ehseg, szennyezes + A legfontosabb szervereink. Csak az IT + tanszék dolgozói férhetnek + hozzájuk. + + + buszkeseg, + kapzsisag, irigyseg, + harag, bujasag, + lustasag + Kevésbé fontos szerverek. Az IT + tankszék összes tagja el tudja érni + ezeket a gépeket. + + + + egy, ketto, + harom, negy, + ... + Átlagos munkaállomások. + Egyedül csak a valódi + dolgozók jelentkezhetnek be ezekre a + gépekre. + + + + szemetes + Egy nagyon régi gép, semmi + értékes adat nincs rajta. Akár + még az öszöndíjasok is + nyúzhatják. + + + + + + Ha ezeket az igényeket úgy + próbáljuk meg teljesíteni, hogy a + felhasználókat egyenként blokkoljuk, akkor + minden rendszer passwd + állományába külön fel kell + vennünk a + -felhasználó + sorokat a letiltott felhasználókhoz. Ha csak + egyetlen bejegyzést is kihagyunk, akkor könnyen + bajunk származhat belõle. Ez a rendszer kezdeti + beállítása során még + talán nem okoz gondot, de az új + felhasználókat biztosan el + fogjuk felejteni felvenni a megfelelõ csoportokba. + Elvégre Murphy is optimista volt. + + A hálózati csoportok használata ilyen + helyzetekben számos elõnyt rejt. Nem kell az egyes + felhasználókat külön felvenni, egy + felhasználót felveszünk valamelyik csoportba + vagy csoportokba, és a csoportok összes + tagjának egyszerre tudjuk tiltani vagy + engedélyezni a hozzáféréseket. Ha + hozzáadunk egy új gépet a + hálózatunkhoz, akkor mindössze a + hálózati csoportok bejelentkezési + korlátozásait kell beállítani. Ha + új felhasználót veszünk fel, akkor a + felhasználót kell vennünk egy vagy több + hálózati csoportba. Ezek a + változtatások függetlenek + egymástól, és nincs szükség + minden felhasználó és minden + gép összes + kombinációjára. Ha a NIS + beállításainkat elõzetesen + körültekintõen megterveztük, akkor egyetlen + központi konfigurációs + állományt kell módosítani a + gépek elérésének + engedélyezéséhez vagy + tiltásához. + + Az elsõ lépés a hálózati + csoportokat tartalmazó NIS táblázat + inicializálása. A &os; &man.ypinit.8; programja + alapértelmezés szerint nem hozza létre ezt + a táblázatot, de ha készítünk + egy ilyet, akkor a NIS implementációja + képes kezelni. Egy ilyen üres + táblázat + elkészítéséhez ennyit kell + begépelni: + + ellington&prompt.root; vi /var/yp/netgroup + + Ezután elkezdhetjük felvenni a tartalmát. + A példánk szerint legalább négy + hálózati csoportot kell csinálnunk: az IT + dolgozóinak, az IT új dolgozóinak, a + normál dolgozóknak és az + öszöndíjasoknak. + + IT_DOLG (,alpha,proba-tartomany) (,beta,proba-tartomany) +IT_UJDOLG (,charlie,proba-tartomany) (,delta,proba-tartomany) +FELHASZNALO (,echo,proba-tartomany) (,foxtrott,proba-tartomany) \ + (,golf,proba-tartomany) +OSZTONDIJAS (,able,proba-tartomany) (,baker,proba-tartomany) + + Az IT_DOLG, IT_UJDOLG + stb. a hálózati csoportok nevei lesznek. Minden + egyes zárójelezett csoport egy vagy több + felhasználói hozzáférést + tartalmaz. A csoportokban szereplõ három mezõ + a következõ: + + + + Azon gépek neve, amelykre a következõ + elemek érvényesek. Ha itt nem adunk meg + neveket, akkor a bejegyzés az összes + gépre vonatkozik. Ha megadjuk egy gép + nevét, akkor jutalmunk a teljes + sötétség, a rettegetés és + totális megtébolyodás. + + + + A csoporthoz tartozó + hozzáférés neve. + + + + A hozzáféréshez + kapcsolódó NIS tartomány. A csoportba + más NIS tartományokból is át + tudunk hozni hozzáféréseket, ha + netalán éppen olyan szerencsétlenek + lennénk, hogy több NIS tartományt is + felügyelnünk kell. + + + + A mezõk mindegyike tartalmazhat + dzsókerkaraktereket. Errõl részletesebben a + &man.netgroup.5; man oldalon olvashatunk. + + + hálózati + csoportok + + A hálózati csoportoknak lehetõleg ne + adjunk 8 karakternél hosszabb nevet, + különösen abban az esetben, ha a NIS + tartományban más operációs + rendszereket is használunk. A nevekben eltérnek + a kis- és nagybetûk. Ha a hálózati + csoportokat nevét nagybetûkkel írjuk, akkor + könnyen különbséget tudunk tenni a + felhasználók, gépek és + hálózati csoportok nevei + között. + + Egyes (nem &os; alapú) NIS kliensek nem + képesek kezelni a nagyon sok bejegyzést + tartalmazó hálózati csoportokat. + Például a &sunos; néhány + korábbi verziója fennakad rajta, ha egy + hálózati csoport 15 + bejegyzésnél többet + tartalmaz. Az ilyen korlátozások alól + úgy tudunk kibújni, ha 15 + felhasználónként újabb + hálózati csoportokat hozunk létre, + amelyekkel az eredeti hálózati csoportot + építjük fel: + + NAGYCSP1 (,joe1,tartomany) (,joe2,tartomany) (,joe3,tartomany) [...] +NAGYCSP2 (,joe16,tartomany) (,joe17,tartomany) [...] +NAGYCSP3 (,joe31,tartomany) (,joe32,tartomany) +NAGYCSOPORT NAGYCSP1 NAGYCSP2 NAGYCSP3 + + Ugyanez a folyamat javasolt olyan esetekben is, ahol 225 + felhasználónál többre lenne + szükség egyetlen hálózati csoporton + belül. + + + Az így létrehozott új NIS + táblázat szétküldése + meglehetõsen könnyû feladat: + + ellington&prompt.root; cd /var/yp +ellington&prompt.root; make + + Ez a parancs létrehoz három NIS + táblázatot: netgroup, + netgroup.byhost és + netgroup.byuser. Az &man.ypcat.1; + paranccsal ellenõrizni is tudjuk az új NIS + táblázatainkat: + + ellington&prompt.user; ypcat -k netgroup +ellington&prompt.user; ypcat -k netgroup.byhost +ellington&prompt.user; ypcat -k netgroup.byuser + + Az elsõ parancs kimenete a + /var/yp/netgroup állomány + tartalmára emlékeztethet minket. A második + parancsnak nincs semmilyen kimenete, hacsak nem adtunk meg + valamilyen gépfüggõ hálózati + csoportot. A harmadik parancs a hálózati + csoportokat listázza ki a + felhasználókhoz. + + A kliensek beállítása tehát + nagyon egyszerû. A haboru nevû + szerver beállításához + indítsuk el a &man.vipw.8; programot, és + cseréljük a + + +::::::::: + + sort erre: + + +@IT_DOLG::::::::: + + Innentõl kezdve kizárólag csak az + IT_DOLG csoportban található + felhasználók fognak bekerülni a + haboru jelszó + adatbázisába, és csak ezek a + felhasználók tudnak ide bejelentkezni. + + Sajnos ez a korlátozás a + parancsértelmezõ ~ + funkciójára és összes olyan rutinra is + vonatkozik, amelyet a felhasználói nevek és + azok numerikus azonosító között + képez le. Más szóval a cd + ~felhasználó + parancs nem fog mûködni, és az ls + -l parancs kimenetében a + felhasználói nevek helyett csak numerikus + azonosítók jelennek meg, továbbá + afind . -user joe -print No such + user (Nincs ilyen + felhasználó) hibát fog + visszaadni. Ez úgy tudjuk megjavítani, ha + úgy importáljuk a szerverre az összes + felhasználó bejegyzését, hogy + közben tiltjuk a + hozzáférésüket. + + Ehhez vegyünk fel egy újabb sort az + /etc/master.passwd + állományba. A sor valahogy így fog + kinézni: + + +:::::::::/sbin/nologin, amely annyit + tesz, hogy importáljuk az összes + bejegyzést, de a hozzájuk tartozó + parancsértelmezõ a + /sbin/nologin legyen. A + passwd állományban + tetszõleges mezõ tartalmát le tudjuk úgy + cserélni, ha megadunk neki egy alapértelmezett + értéket az /etc/master.passwd + állományban. + + + Vigyázzunk, hogy a + +:::::::::/sbin/nologin sort az + +@IT_DOLG::::::::: sor után + írjuk. Ha nem így teszünk, akkor a + NIS-bõl importált összes + felhasználói hozzáférés a + /sbin/nologin + parancsértelmezõt kapja. + + + Miután elvégeztük ezt a + változtatást, minden újabb dolgozó + felvétele után csupán egyetlen + táblázatot kell megváltoztatnunk. Ugyanezt + a taktikát követhetjük a kevésbé + fontosabb szerverek esetében is, hogy ha a helyi + /etc/master.passwd + állományukban a korábbi + +::::::::: bejegyzést valami + ilyesmivel helyettesítjük: + + +@IT_DOLG::::::::: ++@IT_UJDOLG::::::::: ++:::::::::/sbin/nologin + + Az egyszerû munkaállomások + esetében pedig ezekre a sorokra lesz + szükségünk: + + +@IT_DOLG::::::::: ++@FELHASZNALOK::::::::: ++:::::::::/sbin/nologin + + Minden remekül üzemel egészen addig, + amíg néhány múlva ismét + változik a házirend: az IT tanszékre + ösztöndíjasok érkeznek. Az IT + ösztöndíjasai a munkaállomásokat + és a kevésbé fontosabb szervereket + tudják használni. Az új IT dolgozók + már a központi szerverekre is bejelentkezhetnek. + Így tehát létrehozunk egy új + hálózati csoportot + IT_OSZTONDIJAS néven, majd + felvesszük ide az új IT + ösztöndíjasokat, és nekilátunk + végigzongorázni az összes gép + összes konfigurációs + állományát... Ahogy azonban egy + régi mondás is tartja: A + központosított tervezésben ejtett + hibák teljes káoszhoz vezetnek. + + A NIS az ilyen helyzeteket úgy igyekszik + elkerülni, hogy megengedi újabb + hálózati csoportok + létrehozását más + hálózati csoportokból. Egyik ilyen + lehetõség a szerep alapú + hálózati csoportok kialakítása. + Például, ha a fontosabb szerverek + bejelentkezési korlátozásai + számára hozzunk létre egy + NAGYSRV nevû csoportot, valamint egy + másik hálózati csoportot + KISSRV néven a kevésbé + fontosabb szerverekhez, végül + MUNKA néven egy harmadik + hálózati csoportot a + munkaállomásokhoz. Mindegyik ilyen + hálózati csoport tartalmazza azokat a csoportokat, + amelyek engedélyezik a gépek + elérését. A hálózati + csoportok leírását tartalmazó NIS + táblázat most valahogy így fog + kinézni: + + NAGYSRV IT_DOLG IT_UJDOLG +KISSRV IT_DOLG IT_UJDOLG IT_OSZTONDIJAS +MUNKA IT_DOLG IT_OSZTONDIJAS FELHASZNALOK + + A bejelentkezési megszorítások ilyen + típusú megadása viszonylag jól + mûködik, hogy ha azonos korlátozások + alá esõ gépek csoportjait akarjuk + felírni. Bánatunk ez a kivétel, és + nem a szabály. Az esetek nagy + többségében ugyanis a bejelentkezésre + vonatkozó korlátozásokat + gépenként kell egyesével megadni. + + A hálózati csoportok gépfüggõ + megadása tehát az iménti házirendhez + társuló igények + kielégítésének egyik módja. + Ebben a forgatókönyvben az + /etc/master.passwd állomány + minden számítógépen két + +-os sorral kezdõdik. + Közülük az elsõ a gépen + engedélyezett hozzáféréseket + tartalmazó hálózati csoportra vonatkozik, a + második pedig az összes többi + hozzáféréshez az + /sbin/nologin parancsértelmezõt + kapcsolja hozzá. Itt jó ötlet, ha a + gép nevének + VÉGIG-NAGYBETÛS + változatát adjuk meg a hozzátartozó + hálózati csoport nevének: + + +@GÉPNÉV::::::::: ++:::::::::/sbin/nologin + + Miután elvégeztük ezt a feladatot minden + egyes gépen, az /etc/master.passwd + állomány helyi változatait soha + többé nem kell módosítanunk. Az + összes többi változtatást a NIS + táblázaton keresztül tudjuk keresztül + vinni. Íme a felvázolt + forgatókönyvhöz tartozó + hálózati csoportok + kiépítésének egyik lehetséges + változata, egy-két finomsággal + kiegészítve: + + # Elõször a felhasználók csoportjait adjuk meg: +IT_DOLG (,alpha,proba-tartomany) (,beta,proba-tartomany) +IT_UJDOLG (,charlie,proba-tartomany) (,delta,proba-tartomany) +TANSZ1 (,echo,proba-tartomany) (,foxtrott,proba-tartomany) +TANSZ2 (,golf,proba-taromany) (,hotel,proba-tartomany) +TANSZ3 (,india,proba-taromany) (,juliet,proba-tartomany) +IT_OSZTONDIJAS (,kilo,proba-tartomany) (,lima,proba-tartomany) +D_OSZTONDIJAS (,able,proba-tartomany) (,baker,proba-tartomany) +# +# Most pedig hozzunk létre csoportokat szerepek szerint: +FELHASZNALOK TANSZ1 TANSZ2 TANSZ3 +NAGYSRV IT_DOLG IT_UJDOLG +KISSRV IT_DOLG IT_UJDOLG IT_OSZTONDIJAS +MUNKA IT_DOLG IT_OSZTONDIJAS FELHASZNALOK +# +# Következzenek a speciális feladatokhoz tartozó csoportok: +# Az echo és a golf tudja elérni a vírusvédelemért felelõs gépet: +VEDELEM IT_DOLG (,echo,proba-tartomany) (,golf,proba-tartomany) +# +# Gép alapú hálózati csoportok +# A fõ szervereink: +HABORU NAGYSRV +EHSEG NAGYSRV +# Az india nevû felhasználó hozzá szeretné ehhez férni: +SZENNYEZES NAGYSRV (,india,proba-tartomany) +# +# Ez valóban fontos és komolyan szabályoznunk kell: +HALAL IT_DOLG +# +# Az elõbb említett vírusvédelmi gép: +EGY VEDELEM +# +# Egyetlen felhasználóra korlátozzuk le ezt a gépet: +KETTO (,hotel,proba-tartomany) +# [...és itt folytatódik a többi csoporttal] + + Ha a felhasználói + hozzáféréseinket valamilyen + adatbázisban tároljuk, akkor a + táblázat elsõ részét + akár az adatbázis lekérdezésein + keresztül is elõ tudjuk állítani. Ezzel + a módszerrel az új felhasználók + automatikusan hozzáférnek a + gépekhez. + + Legyünk viszont óvatosak: nem mindig javasolt + gépeken alapuló hálózati csoportokat + készíteni. Ha a hallgatói laborokba + egyszerre több tucat vagy akár több száz + azonos konfigurációjú gépet + telepítünk, akkor a gép alapú + csoportok helyett inkább szerep alapú csoportokat + építsünk fel, mivel így a NIS + táblázatok méretét egy + elfogadható méreten tudjuk tartani. + + + + + Amit feltétlenül észben kell + tartanunk + + Még mindig akad néhány olyan dolog, + amit másképpen kell csinálnunk + azután, hogy most már NIS környezetben + vagyunk. + + + + Amikor egy új felhasználót akarunk + felvenni a laborba, akkor csak a + központi NIS szerverre kell felvennünk, és + újra kell generáltatnunk a NIS + táblázatokat. Ha ezt + elfelejtjük megtenni, akkor az új + felhasználó a központi NIS szerveren + kívül sehova sem lesz képes + bejelentkezni. Például, ha fel akarjuk venni + a jsmith nevû + felhasználót a laborba, akkor ezt kell + tennünk: + + &prompt.root; pw useradd jsmith +&prompt.root; cd /var/yp +&prompt.root; make proba-tartomany + + Vagy a pw useradd jsmith parancs + helyett az adduser jsmith parancsot is + használhatjuk. + + + A rendszergazdai szintû + hozzáféréseket ne tároljuk a NIS + táblázatokban. Olyan + gépekre egyáltalán ne is + küldjünk olyan karbantartáshoz + használt hozzáféréseket, + amelynek a felhasználói hivatalosan nem is + férhetnének hozzájuk. + + + A központi NIS szervert és az + alárendelt szervereket óvjuk minél + jobban, és igyekezzünk minimalizálni a + kieséseiket. Ha valaki feltöri vagy + egyszerûen csak kikapcsolja ezeket a gépeket, + akkor ezzel lényegében mindenkit + megakadályoz abban, hogy be tudjon jelentkezni a + laborban. + + Ezek a központosított + vezérlésû rendszerek legfõbb + gyengeségei. Ha nem védjük kellõen + a NIS szervereinket, akkor azzal nagyon ellenséget + szerezhetünk magunknak! + + + + + + + Kompatibilitás a NIS elsõ + változatával + + A &os;-ben megtalálható + ypserv szolgáltatás + valamennyire képes ellátni a NIS elsõ + változatát használó klienseket is. + A &os; NIS implementációja csak a NIS v2 + protokollt használja, azonban mivel más + implementációk kompatibilisek + kívánnak maradni a régebbi rendszerekkel, + ismerik a v1 protokollt is. Az ilyen rendszerekhez + tartozó ypbind démonok + még olyankor is megpróbálnak v1-es NIS + szerverekhez kötést létrehozni, amikor + valójában nincs is rá + szükségük (és gyakran még akkor + is ilyet keresnek, amikor az üzenetükre már + válaszolt egy v2-es szerver). + Hozzátennénk, hogy bár az + ypserver ezen változata a + normál klienshívásokat képes + feldolgozni, a táblázatokat már nem tudja + átküldeni a v1-es klienseknek. Ebbõl + következik, hogy a központi vagy alárendelt + szerverek nem tudnak együttmûködni olyan NIS + szerverekkel, amelyek csak a v1-es protokollt beszélik. + Szerencsére ilyen szervereket manapság már + alig használnak. + + + + + NIS szerverek, melyek egyben NIS kliensek + + Óvatosan kell bánnunk az + ypserv + elindításával olyan többszerveres + tartományokban, ahol a szerverek maguk is NIS kliensek. + Alapvetõen nincs abban semmi kivetnivaló, ha a + szervereket saját magukhoz kötjük ahelyett, + hogy engednénk nekik a kötési + kérések küldését és + így egymáshoz kötnénk ezeket. + Különös hibák tudnak származni + olyan helyzetekben, amikor az egyik szerver leáll, + miközben a többiek pedig függenek tõle. + Végül is ilyenkor minden kliens szépen + kivárja a szükséges idõt, aztán + megpróbál más szerverekhez + kötõdni, de az itt fellépõ + késlekedés jelentõs mennyiségû + lehet, és ez a hibajelenség ismét + fennállhat, mivel elõfordulhat, hogy a szerverek + megint egymáshoz kapcsolódnak. + + A klienst úgy tudjuk egy adott szerverhez kötni, + ha az ypbind parancsot a + beállítással indítjuk. Ha mindezt + nem akarjuk manuálisan megtenni a NIS szerver minden + egyes újraindításakor, akkor vegyük + fel a következõ sorokat az + /etc/rc.conf + állományba: + + nis_client_enable="YES" # elindítjuk a klienst is +nis_client_flags="-S NIS tartomány,szerver" + + Részletesebb lásd az &man.ypbind.8; man + oldalát. + + + + + A jelszavak formátuma + + + NIS + jelszavak formátuma + + + A NIS rendszerek kiépítése során + az emberek leggyakrabban a jelszavak formátumával + kapcsolatban tapasztalnak nehézségeket. Ha a + szerverünk DES titkosítású jelszavakat + használ, akkor csak olyan klienseket fog tudni + támogatni, amelyek szintén így + kódolják ezeket. Például, ha a + hálózaton vannak &solaris; rendszerû NIS + klienseink, akkor szinte biztos, hogy DES + titkosítást kell használnunk. + + A szerverek és a kliensek által + használt formátumokat az + /etc/login.conf állományba + tekintve deríthetjük ki. Ha a gépek + többségén a DES titkosítást + látjuk, akkor a default + osztálynak egy ilyen bejegyzést kell + tartalmaznia: + + default:\ + :passwd_format=des:\ + :copyright=/etc/COPYRIGHT:\ + [a többit most nem mutatjuk] + + A passwd_format tulajdonság + további lehetséges értékei lehetnek + a blf és az md5 + (melyek rendre a Blowfish és MD5 + titkosítású jelszavakat adják + meg). + + Ha változtattunk valamit az + /etc/login.conf állományban, + akkor a bejelentkezési tulajdonságok + adatbázisát is újra kell generálni, + melyet root + felhasználóként a következõ + módon tehetünk meg: + + &prompt.root; cap_mkdb /etc/login.conf + + + Az /etc/master.passwd + állományban jelenlevõ jelszavak + formátuma azonban nem frissítõdik + egészen addig, amíg a felhasználók + a bejelentkezési adatbázis + újragenerálása + után meg nem + változtatják a jelszavaikat. + + + Úgy tudjuk még biztosítani, hogy a + jelszavak megfelelõ formátumban + kódolódjanak, ha az + /etc/auth.conf állományban + megkeressük a crypt_default sort, + amelyben a választható + jelszóformátumok + felhasználásái sorrendjét + találhatjuk meg. Itt tehát mindössze annyit + kell tennünk, hogy a kiszemelt formátumot a lista + elejére tesszük. Például, ha a DES + titkosítású jelszavakat akarunk + használni, akkor ez a bejegyzés így fog + kinézni: + + crypt_default = des blf md5 + + Ha a fenti lépéseket követjük az + összes &os; alapú NIS szervernél és + kliensnél, akkor biztosra mehetünk abban, hogy a + hálózatunkon belül ugyanazt a + jelszóformátumot fogják használni. + Ha gondunk akadna a NIS kliensek + hitelesítésével, akkor itt érdemes + kezdeni a hiba felderítését. Ne + felejtsük: ha egy NIS szervert egy heterogén + hálózatba akarunk telepíteni, akkor + valószínûleg az összes rendszeren a DES + titkosítást kell választani, mivel + általában ez a közös nevezõ ebben a + tekintetben. + + + + + + + + + Greg + Sutter + Írta: + + + + + A hálózat automatikus + beállítása (DHCP) + + + Mi az a DHCP? + + + Dinamikus + állomáskonfigurációs + protokoll + DHCP + + internetes szoftverkonzorcium + (ISC) + + A Dinamikus állomáskonfigurációs + protokoll, avagy Dynamic Host Configuration Protocol (DHCP) + annak eszközeit írja le, hogy egy rendszer + miként tud csatlakozni egy hálózathoz + és miként tudja azon belül megszerezni a + kommunikációhoz szükséges + információkat. A &os; 6.0 elõtti + változatai az ISC (Internet Software Consortium, vagyis + az internetes szoftverkonzorcium) által kidolgozott DHCP + kliens (&man.dhclient.8;) implementációját + tartalmazzák. A késõbbi verziókban + pedig az OpenBSD 3.7 verziójából + átvett dhclient paranccsal + dolgozhatunk. Ebben a szakaszban a dhclient + parancsra vonatkozó összes információ + egyaránt érvényes az ISC és az + OpenBSD által fejlesztett DHCP kliensekre. A DHCP + szerver az ISC-tõl származik. + + + + + Mivel foglalkozik ez a szakasz + + Ebben a szakaszban az ISC és az OpenBSD DHCP + klienseinek kliens- és szerver oldali komponsenseit + mutatjuk be. A kliens oldali program neve a + dhclient, amely a &os; + részeként érkezik, és a szerver + oldali elem pedig a net/isc-dhcp3-server porton + keresztül érhetõ el. A lentebb említett + hivatkozások mellett a témában még a + &man.dhclient.8;, &man.dhcp-options.5; és a + &man.dhclient.conf.5; man adhatnak bõvebb + felvilágosítást a + témában. + + + + + Ahogyan mûködik + + UDP + + Amikor a dhclient, vagyis a DHCP kliens + elindul egy kliensgépen, akkor a hálózaton + üzenetszórással próbálja meg + elkérni a konfigurációjához + szükséges adatokat. Alapértelmezés + szerint ezek a kérések a 68-as UDP porton + keresztül mennek. A szerver ezekre a 67-es UDP porton + válaszol, ahol visszaad a kliensnek egy IP-címet + és a hálózat használatához + szükséges további + információkat, mint például a + hálózati maszkot, az alapértelmezett + átjáró és a + névfeloldásért felelõs szerverek + címét. Az összes ilyen jellegû adat egy + DHCP bérlet (lease) + formájában érkezik meg, amely csak egy + adott ideig érvényes (ezt a DHCP szerver + karbantartója állítja be). Így a + hálózaton a kliens nélküli + IP-címeket egy idõ után automatikusan + visszanyerjük. + + A DHCP kliensek rengeteg információt + képes elkérni a szervertõl. Ezek teljes + listáját a &man.dhcp-options.5; man oldalán + olvashatjuk el. + + + + + Használat a &os;-n belül + + A &os; teljes egészében tartalmazza az ISC + vagy az OpenBSD DHCP kliensét, a + dhclient programot (attól + függõen, hogy a &os; melyik változatát + használjuk). A DHCP kliensek támogatása a + telepítõben és az alaprendszerben is + megtalálható, és ezzel + mentesülünk minden konkrét + hálózati beállítás + alól a DHCP szervereket alkalmazó + hálózatokon. A dhclient a + &os; 3.2 változata óta + megtalálható a rendszerben. + + sysinstall + + DHCP használatát a + sysinstall is lehetõvé + teszi. Amikor egy hálózati felületet a + sysinstall programon belül + állítunk be, akkor a második + kérdés mindig ez szokott lenni: Do you want + to try DHCP configuration of the interface? + (Megpróbáljuk DHCP + használatával beállítani a + felületet?) Ha erre igennel válaszolunk, + akkor azzal lényegében a + dhclient parancsot indítjuk el, + és ha mindez sikerrel zárul, akkor szinte + magától kitöltõdik az összes + hálózati beállításunk. + + A DHCP használatához két dolgot kell + beállítanunk a rendszerünkön: + + + DHCP + követelmények + + + + + Gondoskodjunk róla, hogy a + bpf eszköz része a + rendszermagunknak. Ha még nem lenne benne, akkor a + rendszermag beállításait + tartalmazó állományba vegyük fel + a device bpf sort és + fordítsuk újra a rendszermagot. A + rendszermagok fordításáról a + ben tudhatunk meg + többet. + + A bpf eszköz + alapból megtalálható a + GENERIC rendszermagokban, így + ha ezt használjuk, akkor nem kell saját + verziót készítenünk a DHCP + használatához. + + + Azok számára viszont, akik + biztonsági szempontból aggódnak a + rendszerük miatt, meg kell említenünk, + hogy a bpf egyben az az + eszköz, amely a csomagok + lehallgatását is lehetõvé + teszi (habár az ilyeneket + root + felhasználóként lehet csak + elindítani). A bpf + kell a DHCP + használatához, azonban ha nagyon fontos + nekünk a rendszerünk biztonsága, akkor + a bpf eszközt + érdemes kivennünk a rendszermagból, + ha még pillanatnyilag nem használunk + ilyet. + + + + Az /etc/rc.conf + állományunkat az alábbiak szerint + kell módosítani: + + ifconfig_fxp0="DHCP" + + + Az fxp0 eszközt ne + felejtsük el kicserélni arra a + felületre, amelyet automatikusan akarunk + beállítani. Ennek mikéntje a ban + olvasható. + + + Ha a dhclient a rendszerünkben + máshol található, vagy + egyszerûen csak további + beállításokat akarunk átadni a + dhclient parancsnak, akkor adjuk meg a + következõt is (változtassuk meg + igényeink szerint): + + dhcp_program="/sbin/dhclient" +dhcp_flags="" + + + + + DHCP + szerver + + + A DHCP szerver, a dhcpd a + net/isc-dhcp3-server + port részeként érhetõ el. Az a + port tartalmazza az ISC DHCP szerverét és a + hozzátartozó + dokumentációt. + + + + + Állományok + + + DHCP + konfigurációs + állományok + + + + + /etc/dhclient.conf + + A dhclient + mûködéséhez szükség lesz + egy konfigurációs állományra, + aminek a neve /etc/dhclient.conf. Ez + az állomány általában csak + megjegyzéseket tartalmaz, mivel az + alapértelmezett értékek többnyire + megfelelõek. Ezt a konfigurációs + állományt a &man.dhclient.conf.5; man oldal + írja le. + + + + /sbin/dhclient + + A dhclient statikusan linkelt + és az /sbin + könyvtárban található. A + &man.dhclient.8; man oldal tud róla + részletesebb felvilágosítást + adni. + + + + /sbin/dhclient-script + + A dhclient-script a &os;-ben + levõ DHCP kliens konfigurációs szkriptje. + Mûködését a &man.dhclient-script.8; + man oldal írja le, de a felhasználók + részérõl semmilyen + módosítást nem igényel. + + + + /var/db/dhclient.leases + + A DHCP kliens az érvényes + bérleteket tartja nyilván ezekben az + állományban és naplóként + használja. A &man.dhclient.leases.5; man oldal ezt + valamivel bõvebben kifejti. + + + + + + További olvasnivalók + + A DHCP protokoll mûködését az RFC 2131 + mutatja be. A témához kapcsolódóan + itt tudunk még + leírásokat találni. + + + + + A DHCP szerverek telepítése és + beállítása + + + Mirõl szól ez a szakasz + + Ebben a szakaszban arról olvashatunk, hogy + miként kell egy &os; típusú rendszert + DHCP szervernek beállítani, ha az ISC + (internetes szoftverkonzorcium) DHCP szerverét + használjuk. + + Ez a szerver nem része a &os;-nek, ezért a + szolgáltatás + elindításához elõször fel + kell raknunk a net/isc-dhcp3-server portot. A + Portgyûjtemény használatára + vonatkozóan a lehet + segítségünkre. + + + + + A DHCP szerver telepítése + + + DHCP + telepítés + + + Ha a &os; rendszerünket DHCP szerverként + akarjuk beállítani, akkor ehhez + elsõként a &man.bpf.4; eszköz + jelenlétét kell biztosítani a + rendszermagban. Ehhez vegyük fel a device + bpf sort a rendszermagunk + beállításait tartalmazó + állományba, majd fordítsuk újra + a rendszermagot. A rendszermag + lefordításáról a ben olvashatunk. + + A bpf eszköz a &os;-hez + alapból adott GENERIC + rendszermag része, ezért a DHCP + használatához nem kell feltétlenül + újat fordítanunk. + + + A biztonsági szempontok miatt + aggódó felhasználók + részére megjegyezzük, hogy a + bpf eszköz egyben a + csomagok lehallgatását is + lehetõvé teszi (habár az ilyen + témájú programok + futtatásához megfelelõ jogokra is + szükség van). A + bpf használata + kötelezõ a DHCP + mûködtetéséhez, de ha nagyon + kényesek vagyunk a biztonságot + illetõen, akkor minden olyan esetben, amikor nem + használjuk ki ezt a lehetõséget, + távolítsuk el a + rendszermagból. + + + A következõ lépésben át + kell szerkesztenünk a mintaként mellékelt + dhcpd.conf állományt, + amelyet a net/isc-dhcp3-server port rakott + fel. Ez alapértelmezés szerint a + /usr/local/etc/dhcpd.conf.sample + néven található meg, és + mielõtt bármit is változtatnánk + rajta, másoljuk le + /usr/local/etc/dhcpd.conf + néven. + + + + + A DHCP szerver beállítása + + + DHCP + dhcpd.conf + + + A dhcpd.conf az + alhálózatokat illetve a gépeket + érintõ deklarációkat tartalmazza, + és talán a legkönnyebben a + következõ példa alapján + mutatható be: + + option domain-name "minta.com"; +option domain-name-servers 192.168.4.100; +option subnet-mask 255.255.255.0; + +default-lease-time 3600; +max-lease-time 86400; +ddns-update-style none; + +subnet 192.168.4.0 netmask 255.255.255.0 { + range 192.168.4.129 192.168.4.254; + option routers 192.168.4.1; +} + +host mailhost { + hardware ethernet 02:03:04:05:06:07; + fixed-address levelezes.minta.com; +} + + + + Ez a beállítás adja meg a + kliensek számára az alapértelmezett + keresési tartományt (search domain). A + &man.resolv.conf.5; tud ezzel kapcsolatban + részletesebb információkat + adni. + + + + Ez a beállítás adja meg a + kliensek által használt + névfeloldó szerverek vesszõvel + elválasztott felsorolását. + + + + A kliensekhez tartozó hálózati + maszk. + + + + A kliens egy adott idõre kérhet + bérleti jogot, egyébként a szerver + dönt a bérlet lejárati + idejérõl (másodpercekben). + + + + Ez az a maximális idõ, amennyire a + szerver hajlandó bérbe adni + IP-címet. A kliens ugyan hosszabb idõre is + kérheti és meg is kapja, de legfeljebb + csak max-lease-time + másodpercig lesz érvényes. + + + + Ez a beállítás határozza + meg, hogy a DHCP szervernek frissítse-e a + névoldási információkat a + bérlések + elfogadásánál vagy + visszamondásánál. Az ISC + implementációjánál ez a + beállítás + kötelezõ. + + + + Ezzel adjuk meg milyen tartományból + tudunk IP-címeket kiosztani a kliensek + számára. A kezdõ címet is + beleértve, innen fogunk kiutalni egyet a + klienseknek. + + + + A kliensek felé elküldött + alapértelmezett átjáró + címe. + + + + A gép hardveres MAC-címe (így a + DHCP szerver képes felismerni a + kérés küldõjét). + + + + Ennek megadásával a gépek + mindig ugyanazt az IP-címet kapják. Itt + már megadhatunk egy hálózati nevet, + mivel a bérlethez tartozó + információk visszaküldése + elõtt maga a DHCP szerver fogja feloldani a + gép nevét. + + + + Miután befejeztük a + dhcpd.conf + módosítását, a DHCP szerver az + /etc/rc.conf állományban + tudjuk engedélyezni, vagyis tegyük bele a + következõt: + + dhcpd_enable="YES" +dhcpd_ifaces="dc0" + + A dc0 felület nevét + helyettesítsük annak a felületnek (vagy + whitespace karakterekkel elválasztott + felületeknek) a nevével, amelyen keresztül + a DHCP szerver várni fogja a kliensek + kéréseit. + + Ezután a következõ parancs + kiadásával indítsuk el a + szervert: + + &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start + + Amikor a jövõben valamit változtatunk a + konfigurációs állományon, akkor + ezzel kapcsolatban fontos megemlíteni, hogy ha csak + egy SIGHUP jelzést + küldünk a dhcpd + démonnak, akkor az a többi + démontól eltérõen + önmagában még nem + eredményezi a konfigurációs adatok + újraolvasását. Helyette a + SIGTERM jelzéssel kell + leállítani a programot, majd + újraindítani a fenti paranccsal. + + + + + Állományok + + + DHCP + konfigurációs + állományok + + + + + /usr/local/sbin/dhcpd + + A dhcpd statikusan + linkelt és a /usr/local/sbin + könyvtárban található. A + porttal együtt felkerülõ &man.dhcpd.8; + man oldal ad részletesebb + útmutatást + dhcpd + használatáról. + + + + /usr/local/etc/dhcpd.conf + + Mielõtt a dhcpd + megkezdhetné mûködését, + egy konfigurációs állományra + is szükségünk lesz, amely a + /usr/local/etc/dhcpd.conf. Ez az + állomány tartalmazza az összes olyan + információt, ami kell a kliensek + megfelelõ kiszolgálásához + valamint a szerver mûködéséhez. + Ez a konfigurációs állomány + porthoz tartozó &man.dhcpd.conf.5; man oldalon + kerül ismertetésre. + + + + /var/db/dhcpd.leases + + A DHCP szerver ebben az állományba + tartja nyilván a kiadott bérleteket, egy + napló formájában. A porthoz + kapcsolódó &man.dhcpd.leases.5; man + oldalon errõl többet is megtudhatunk. + + + + /usr/local/sbin/dhcrelay + + A dhcrelay + állománynak olyan komolyabb + környezetekben van szerepe, ahol a DHCP szerver a + kliensektõl érkezõ + kéréseket egy másik + hálózaton található DHCP + szerverhez továbbítja. Ha + szükség lenne erre a + lehetõségre, akkor telepítsük + fel a net/isc-dhcp3-relay portot. A + porthoz tartozó &man.dhcrelay.8; man oldal ennek + részleteit taglalja. + + + + + + + + + + + + Chern + Lee + Készítette: + + + + Tom + Rhodes + + + + Daniel + Gerzo + + + + + Névfeloldás (<acronym>DNS</acronym>) + + + Áttekintés + + BIND + + A &os; alapértelmezés szerint a BIND (Berkeley + Internet Name Domain) egyik verzióját tartalmazza, + amely a névfeloldási (Domain Name System, + DNS) protokoll egyik elterjedt + implementációja. A DNS + protokollon keresztül tudunk az + IP-címekhez neveket rendelni és + fordítva. Például a www.FreeBSD.org névre a &os; Projekt + webszerverének IP-címét + kapjuk meg, miközben a ftp.FreeBSD.org pedig a + hozzátartozó FTP szerver + IP-címét fogja visszaadni. + Ehhez hasonlóan a fordítottja is + megtörténhet, vagyis egy + IP-címhez is kérhetjük a + hálózati név feloldását. A + névfeloldási kérések + kiszolgálásához nem feltétlenül + szükséges névszervert futtatni a + rendszerünkön. + + A &os; jelen pillanatban alapból a + BIND9 névszervert tartalmazza. A + benne szereplõ változata több biztonsági + javítást, új + állományrendszeri kiosztást és + automatizált &man.chroot.8; + beállítást is magában foglal. + + névfeloldás + + Az interneten keresztüli névfeloldást + legfelsõ szintû tartományoknak (Top Level + Domain, TLD) nevezett hitelesített + tövek némileg bonyolult rendszerén alapszik, + valamint más egyéb olyan névszervereken, + amelyek további egyéni információkat + tárolnak és táraznak. + + A BIND fejlesztését jelenleg az Internet + Software Consortium () + felügyeli. + + + + + Alapfogalmak + + A leírás megértéséhez be + kell mutatnunk néhány névfeloldással + kapcsolatos fogalmat. + + névfeloldó + inverz DNS + gyökérzóna + + + + + + + + + Fogalom + Meghatározás + + + + + + Közvetlen névfeloldás (forward + DNS) + A hálózati nevek + leképezése IP-címekre. + + + + Õs (origin) + Egy adott zóna állományban + szereplõ tartományra vonatkozik. + + + + named, BIND, + névszerver (name server) + A &os;-n belüli BIND névszerver + különbözõ + megnevezései. + + + + Névfeloldó (resolver) + Az a program a rendszerben, amelyhez a + hálózaton levõ gépek a + zónák adatainak + elérésével kapcsolatban + fordulnak. + + + + Inverz névfeloldás (reverse + DNS) + A rendes névfeloldás + ellentéte, vagyis az + IP-címek + leképzése hálózati + nevekre. + + + + Gyökérzóna (root zone) + Az interneten található + zónák hierarchiájának + töve. Minden zóna ebbe a + gyökérzónába esik, ahhoz + hasonlóan, ahogy egy + állományrendszerben az + állományok a + gyökérkönyvtárba. + + + + Zóna (zone) + Egy különálló + tartomány, altartomány vagy a + névfeloldás azon része, amelyet + egyazon fennhatóság alatt tartanak + karban. + + + + + + + zónák + példák + + + Példák zónákra: + + + + A . + gyökérzóna. + + + + A org. egy legfelsõ szintû + tartomány (TLD) a + gyökérzónán belül. + + + + A minta.org. a + org. TLD + tartomány alatti zóna. + + + + A 1.168.192.in-addr.arpa egy olyan + zóna, amelyek a 192.168.1.* + IP-tartományban szereplõ + összes címet jelöli. + + + + Mint láthatjuk, a hálózati nevek + balról kiegészülve pontosodnak. Tehát + például a minta.org. sokkal pontosabb + meghatározás, mint a org., ahogy + az org. magánál a + gyökérzónánál jelent + többet. A hálózati nevek felosztása + leginkább egy állományrendszerhez + hasonlítható, például a /dev könyvtár a + gyökéren belül található, + és így tovább. + + + + + Miért érdemes névszervert + futtatni + + A névszerverek általában két + alakban jelennek meg. Egyikük a hitelesített + névszerver, a másikuk a + gyorsítótárazó + névszerver. + + Egy hitelesített névszerverre akkor van + szükségünk, ha: + + + + a világ többi része felé + akarunk hiteles névfeloldási + információkat szolgáltatni; + + + + regisztráltunk egy tartományt + (például minta.org) és az alatta + levõ hálózati nevekhez is + szeretnénk IP-címeket + rendeltetni; + + + + a IP-címtartományunkban + szükség van inverz névfeloldási + bejegyzésekre (amely + IP-címbõl ad meg + hálózati nevet) is; + + + + a kérések + teljesítéséhez egy tartalék + avagy második, alárendelt (slave) + névszerver kell. + + + + A gyorsítótárazó + névszerverre akkor van szükségünk, + ha: + + + + egy helyi névfeloldó szerver + felhasználásával fel akarjuk + gyorsítani az egyébként a + külsõ névszerver felé + irányuló kérések + kiszolgálását. + + + + Amikor valaki lekérdezi a www.FreeBSD.org címét, akkor + a névfeloldó elõször + általában a kapcsolatot rendelkezésre + bocsátó internet-szolgáltató + névszerverét kérdezi meg és onnan + kapja meg a választ. Egy helyi, + gyorsítótárazó névszerver + használata esetén azonban egy ilyen + kérést csak egyszer kell kiadni a külsõ + névszervernek. Ezután már minden + további ilyen kérés el sem hagyja a + belsõ hálózatunkat, mivel a válasz + szerepel a gyorsítótárban. + + + + + Ahogyan mûködik + + &os; alatt a BIND démon nyilvánvaló + okokból named néven + érhetõ el. + + + + + + Állomány + Leírás + + + + + + &man.named.8; + A BIND démon. + + + + &man.rndc.8; + A névszervert vezérlõ + segédprogram. + + + + /etc/namedb + A BIND által kezelt zónák + adatait tároló + könyvtár. + + + + /etc/namedb/named.conf + A démon konfigurációs + állománya. + + + + + + Attól függõen, hogy miként + állítjuk be az adott zónát a + szerveren, a hozzátartozó állományok + a /etc/namedb + könyvtáron belül a master, slave vagy dynamic alkönyvtárban + foglalnak helyet. Az itt tárolt + állományokban levõ névfeloldási + információk alapján válaszol a + névszerver a felé intézett + kérésekre. + + + + + A BIND elindítása + + + BIND + elindítás + + + Mivel a BIND alapból elérhetõ a + rendszerben, viszonylag könnyen be tudjuk + állítani. + + A named alapértelmezett + beállítása szerint egy &man.chroot.8; + környezetben futó egyszerû + névfeloldást végzõ szerver. Ezzel a + beállítással a következõ + parancson keresztül tudjuk elindítani: + + &prompt.root; /etc/rc.d/named forcestart + + Ha engedélyezni akarjuk a + named démont minden egyes + rendszerindításkor, tegyük a + következõ sort az /etc/rc.conf + állományba: + + named_enable="YES" + + Értelemszerûen az + /etc/namedb/named.conf tele van olyan + beállítási lehetõségekkel, + amelyek meghaladják ennek a leírásnak a + kereteit. Ha viszont kíváncsiak vagyunk a + &os;-ben a named + indításához használt + beállításokra, akkor az + /etc/defaults/rc.conf + állományban nézzük meg + named_* + változókat és olvassuk át az + &man.rc.conf.5; man oldalt. Emellett még a t is hasznos lehet elolvasni. + + + + + A konfigurációs + állományok + + + BIND + konfigurációs + állományok + + + A named + beállításait tartalmazó + állományok pillanatnyilag az /etc/namedb könyvtárban + találhatóak és hacsak nem egy egyszerû + névfeloldóra tartunk igényt, akkor a + használata elõtt módosítanunk is kell. + Itt ejtjük meg a beállítások nagy + részét. + + + A <command>make-localhost</command> + használata + + Ha a helyi gépen egy központi + zónát akarunk beállítani, akkor + lépjünk be az /etc/namedb könyvtárba + és futtassuk le a következõ parancsot: + + &prompt.root; sh make-localhost + + Ha nem történt semmilyen hiba, akkor a + master + alkönyvtárban most meg kell jelennie egy új + állománynak. A helyi + tartománynévhez tartozó + állomány a localhost.rev, + valamint IPv6 környezetben a + localhost-v6.rev. Alapértelmezett + konfigurációs állományként + a named.conf ehhez tartalmaz minden + szükséges információt. + + + + + <filename>/etc/namedb/named.conf</filename> + + // $FreeBSD$ +// +// Részletesebb leírást a named.conf(5) és named(8) man oldalakon, valamint +// a /usr/share/doc/bind9 könyvtárban találhatunk. +// +// Ha egy hitelesített szervert akarunk beállítani, akkor igyekezzünk +// a névfeloldás összes finom részletével pontosan tisztában lenni. +// Ugyanis még a legkisebb hibákkal is egyrészt elvághatunk gépeket az +// internet-lérésétõl, vagy másrészt felesleges forgalmat tudunk +// generálni +// + +options { + directory "/etc/namedb"; + pid-file "/var/run/named/pid"; + dump-file "/var/dump/named_dump.db"; + statistics-file "/var/stats/named.stats"; + +// Ha a named démont csak helyi névfeloldóként használjuk, akkor ez +// egy biztonságos alapbeállítás. Ha viszont a named démon az egész +// hálózatunkat is kiszolgálja, akkor ezt a beállítást tegyük +// megjegyzésbe, vagy adjunk meg egy rendes IP-címet, esetleg +// töröljük ki. + listen-on { 127.0.0.1; }; + +// Ha rendszerünkön engedélyezett az IPv6 használata, akkor a helyi +// névfeloldó használatához ezt a sort vegyük ki a megjegyzésbõl. +// A hálózatunk többi részérõl pedig úgy lehet elérni, ha itt megadunk +// egy IPv6 címet, vagy az "any" kulcsszót. +// listen-on-v6 { ::1; }; + +// A "forwarders" blokk mellett a következõ sorral megkérhetjük a +// névszervert, hogy önmagától soha nem kezdeményezzen kéréseket, +// hanem mindig az iménti helyen megjelölt szerverekhez irányítsa +// ezeket: +// +// forward only; + +// Ha a szolgáltatónk névszervert is elérhetõvé tett számunkra, akkor +// itt adjuk meg annak az IP-címét és engedélyezzük az alábbi sort. +// Ezzel egyben kihasználjuk a gyorsítótárat is, így mérsékeljük az +// internet felé mozgó névfeloldásokat. +/* + forwarders { + 127.0.0.1; + }; +*/ + + Ahogy arról a megjegyzésekben is szó + esik, úgy tudjuk aktiválni a + gyorsítótárat, ha megadjuk a + forwarders beállítást. + Normális körülmények között + a névszerver az interneten az egyes + névszervereket rekurzívan fogja keresni + egészen addig, amíg meg nem találja a + keresett választ. Az iménti + beállítás + engedélyezésével azonban + elõször a szolgáltató + névszerverét (vagy az általa + kijelölt névszervert) fogjuk megkérdezni, a + saját + gyorsítótárából. Ha a + szolgáltató kérdéses + névszervere egy gyakran használt, gyors + névszerver, akkor ezt érdemes + bekapcsolnunk. + + + Itt a 127.0.0.1 + megadása nem mûködik. + Mindenképpen írjuk át a + szolgáltatónk névszerverének + IP-címére. + + + /* + * Ha köztünk és az elérni kívánt névszerverek között tûzfal + * is található, akkor az alábbi "query-source" direktívát is + * engedélyeznünk kell. A BIND korábbi változatait mindig az + * 53-as porton keresztül küldték el a kéréseiket, de BIND + * nyolcadik verziójától kezdve alapértelmezés szerint + * erre a feladatra már egy véletlenszerûen választott, nem + * privilegizált UDP portot használnak. + */ + // query-source address * port 53; +}; + +// Ha engedélyezzük a helyi névszervert, akkor az /etc/resolv.conf +// állományban elsõ helyen megadni a 127.0.0.1 címet. Sõt, az +// /etc/rc.conf állományból se felejtsük ki. + +zone "." { + type hint; + file "named.root"; +}; + +zone "0.0.127.IN-ADDR.ARPA" { + type master; + file "master/localhost.rev"; +}; + +// RFC 3152 +zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" { + type master; + file "master/localhost-v6.rev"; +}; + +// FONTOS: Ne használjuk ezeket az IP-címeket, mert nem valódiak, +// csupán illusztrációs és dokumentációs célokból adtuk meg! +// +// Az alárendelt zónák beállításaira vonatkozó bejegyzések. Érdemes +// ilyet beállítani legalább ahhoz a zónához, amelyhez a tartományunk is +// tartozik. Az elsõdleges zónához tartozó IP-címet érdeklõdjük meg +// az illetékes hálózati rendszergazdától. +// +// Soha ne felejtsünk el megadni zónát az inverz kereséshez +// IN-ADDR.ARPA)! (A neve a IP-cím tagjainak fordított sorrendjébõl +// származik, amelyhez hozzátoldunk még egy ".IN-ADDR.ARPA" részt.) +// +// Mielõtt nekilátnánk egy elsõdleges zóna beállításának, gondoljuk +// végig, hogy tényleg a megfelelõ szinten ismerjük a névfeloldás és +// a BIND mûködését. Gyakran ugyanis egyáltalán nem nyilvánvaló +// csapdákba tudunk esni. Egy alárendelt zóna beállítása sokkal +// egyszerûbb feladat. +// +// FONTOS: Ne kövessük vakon a most következõ példát :-) Helyette inkább +// valódi neveket és címeket adjunk meg. + +/* Példa központi zónára +zone "minta.net" { + type master; + file "master/minta.net"; +}; +*/ + +/* Példa dinamikus zónára +key "mintaorgkulcs" { + algorithm hmac-md5; + secret "sf87HJqjkqh8ac87a02lla=="; +}; +zone "minta.org" { + type master; + allow-update { + key "mintaorgkulcs"; + }; + file "dynamic/minta.org"; +}; +*/ + +/* Példa közvetlen és inverz alárendelt zónákra +zone "minta.com" { + type slave; + file "slave/minta.com"; + masters { + 192.168.1.1; + }; +}; +zone "1.168.192.in-addr.arpa" { + type slave; + file "slave/1.168.192.in-addr.arpa"; + masters { + 192.168.1.1; + }; +}; +*/ + + A named.conf + állományban tehát így adhatunk meg + közvetlen és inverz alárendelt + zónákat. + + Minden egyes újabb kiszolgált + zónához az egy új bejegyzést kell + felvenni a named.conf + állományban. + + Például a minta.org címhez + tartozó legegyszerûbb ilyen bejegyzés + így néz ki: + + zone "minta.org" { + type master; + file "master/minta.org"; +}; + + Ez egy központi zóna, ahogy arról a + mezõ, vagyis a típusa is + árulkodik. Továbbá a + mezõben láthatjuk, hogy a + hozzátartozó információkat az + /etc/namedb/master/minta.org + állományban tárolja. + + zone "minta.org" { + type slave; + file "slave/minta.org"; +}; + + Az alárendelt esetben a zónához + tartozó információkat a zóna + központi szerverétõl kapjuk meg és + megadott állományban mentjük el. Ha + valamiért a központi szerver leáll vagy nem + érhetõ el, akkor az alárendelt szerver az + átküldött zóna + információk alapján képes helyette + kiszolgálni a kéréseket. + + + + + A zóna állományok + + + BIND + zóna állományok + + + A minta.org + címhez tartozó példa központi + zóna állomány (amely az + /etc/namedb/master/néven.org + érhetõ el) tartalma az alábbi: + + $TTL 3600 ; 1 óra +minta.org. IN SOA ns1.minta.org. admin.minta.org. ( + 2006051501 ; sorozatszám + 10800 ; frissítés + 3600 ; ismétlés + 604800 ; lejárat + 86400 ; minimális TTL + ) + +; névszerverek + IN NS ns1.minta.org. + IN NS ns2.minta.org. + +; MX rekordok + IN MX 10 mx.minta.org. + IN MX 20 levelezes.minta.org. + + IN A 192.168.1.1 + +; a gépek nevei +localhost IN A 127.0.0.1 +ns1 IN A 192.168.1.2 +ns2 IN A 192.168.1.3 +mx IN A 192.168.1.4 +levelezes IN A 192.168.1.5 + +; álnevek +www IN CNAME @ + + A .-ra végzõdõ + hálózati nevek abszolút nevek, míg + minden más . nélküli + név az õsére vezehetõ vissza + (tehát relatív). Például a + www a + www.õs. A + kitalált zóna állományunkban itt + most az õs a minta.org, így a + www névbõl a + www.minta.org név keletkezik. + + A zóna állományok + felépítése a következõ: + + rekordnév IN rekordtípus érték + + + névfeloldás + rekordok + + + A névfeloldásban leggyakrabban alkalmazott + rekordok típusai: + + + + SOA + + + a zóna fennhatóságának + kezdete + + + + + NS + + + egy hitelesített névszerver + + + + + A + + + egy gép címe + + + + + CNAME + + + egy álnév kanonikus neve + + + + + MX + + + levélváltó + + + + + PTR + + + mutató a tartománynévre (az + inverz feloldás használja) + + + + + +minta.org. IN SOA ns1.minta.org. admin.minta.org. ( + 2006051501 ; sorozatszám + 10800 ; 3 óránként frissítsünk + 3600 ; 1 óra után próbálkozzunk újra + 604800 ; 1 hét után jár le + 86400 ) ; a minimális TTL 1 nap + + + + + + minta.org. + + + a tartomány neve, amely egyben a zóna + õse + + + + + ns1.minta.org. + + + a zóna elsõdleges/hitelesített + névszervere + + + + + admin.minta.org. + + + a zónáért felelõs + személy neve, akinek az e-mail + címét a @ + behelyettesítésével kapjuk meg. + (Tehát a admin@example.org + címbõl admin.example.org + lesz.) + + + + + 2006051501 + + + az állomány sorozatszáma. Ezt + a zóna állomány + módosításakor mindig + növelnünk kell. Manapság a + rendszergazdák a sorozatszámot + ééééhhnnvv + alakban adják meg. A + 2006051501 tehát azt jelenti, + hogy az állományt 2006. május + 15-én módosították + utoljára, és a 01 pedig + arra utal, hogy aznap elõször. A + sorozatszám megadása fontos az + alárendelt névszerverek + számára, mivel így tudják + megállapítani, hogy a zóna mikor + változott utoljára. + + + + + + IN NS ns1.minta.org. + + Ez egy NS bejegyzés. A zónához + tartozó minden hitelesített névszervernek + lennie kell legalább egy ilyen + bejegyzésének. + + +localhost IN A 127.0.0.1 +ns1 IN A 192.168.1.2 +ns2 IN A 192.168.1.3 +mx IN A 192.168.1.4 +levelezes IN A 192.168.1.5 + + Az A rekord egy gép nevét adja meg. Ahogy a + fenti példából is kiderül, az + ns1.minta.org név a + 192.168.1.2 címre + képzõdik le. + + + IN A 192.168.1.1 + + Ez a sor 192.168.1.1 + címet rendeli az aktuális õshöz, amely + jelen esetünkben az example.org. + + +www IN CNAME @ + + A kanonikus neveket tároló rekordokat + általában egy gép álneveihez + használjuk. Ebben a példában a + www a fõgép egyik + álneve, amely itt a minta.org (192.168.1.1) tartomány. A CNAME + rekordok tehát álnevek megadására + használhatóak, vagy egyetlen + állománynév körkörös + rendszerû (round robin típusú) + feloldására több gép + között. + + MX rekord + + + IN MX 10 levelezes.minta.org. + + Az MX rekord adja meg, hogy milyen levelezõ szerverek + felelõsek a zónába érkezõ + levelek fogadásáért. A levelezes.minta.org a levelezõ + szerver hálózati neve, ahol a 10 az adott + levelezõ szerver prioritása. + + Több levelezõ szerver is megadható 10-es, + 20-as stb. prioritásokkal. A minta.org tartományon + belül elõször mindig a legnagyobb MX + prioritással rendelkezõ levelezõ szervernek + próbáljuk meg továbbítani a + leveleket (a legkisebb prioritási + értékkel rendelkezõ rekord), majd + ezután a második legnagyobbnak stb. + egészen addig, amíg a levelet tovább nem + küldtük. + + Az in-addr.arpa zóna állományok + (inverz DNS) esetén ugyanez a + felépítés, kivéve, hogy a PTR + típusú bejegyzések szerepelnek az A + és CNAME helyett. + + $TTL 3600 + +1.168.192.in-addr.arpa. IN SOA ns1.minta.org. admin.minta.org. ( + 2006051501 ; sorozatszám + 10800 ; frissítés + 3600 ; ismétlés + 604800 ; lejárat + 3600 ) ; minimum + + IN NS ns1.minta.org. + IN NS ns2.minta.org. + +1 IN PTR minta.org. +2 IN PTR ns1.minta.org. +3 IN PTR ns2.minta.org. +4 IN PTR mx.minta.org. +5 IN PTR levelezes.minta.org. + + Ez az állomány írja le tehát a + kitalált tartományunkon belül az + IP-címek és hálózati nevek + összerendelését. + + + + + + A gyorsítótárazó + névszerver + + + BIND + gyorsítótárazó + névszerver + + + A gyorsítótárazó + névszerver az a névszerver, amelyik egyik + zónában sem hitelesített. Egyszerûen + csak öncélú kéréseket + küld, és a kapott válaszokat megjegyzi. A + beállításához mindössze annyit + kell tennünk, hogy az eddigiekhez hasonlóan, de + zónák nélkül beállítunk + egy névszervert. + + + + + Biztonság + + Habár a névfeloldás + szempontjából a BIND a legelterjedtebb, a + biztonságosságával azért akadnak + gondok. Gyakran találnak benne potenciális + és kihasználható biztonsági + réseket. + + A &os; azonban a named + démont automatikusan egy &man.chroot.8; környezetbe + helyezi. Emellett még léteznek további + más védelmi mechanizmusok is, amelyek + segítségével el tudjuk kerülni a + névfeloldást célzó esetleges + támadásokat. + + Sosem árt olvasgatni a CERT által kiadott + biztonsági figyelmeztetéseket és + feliratkozni a &a.security-notifications; címére, + hogy folyamatosan értesüljünk az interneten + és a &os;-ben talált különbözõ + biztonsági hibákról. + + + Ha valamilyen gondunk támadna, akkor esetleg + próbálkozzunk meg a forrásaink + frissítésével és a + named + újrafordításával. + + + + + + Egyéb olvasnivalók + + A BIND/named man oldalai: + &man.rndc.8; &man.named.8; &man.named.conf.5; + + + + Az ISC + BIND hivatalos honlapja (angolul) + + + + Az ISC BIND + hivatalos fóruma (angolul) + + + + + A BIND GYIK (angolul) + + + + O'Reilly DNS and + BIND 5th Edition + + + + RFC1034 - + Domain Names - Concepts and Facilities + + + + RFC1035 - + Domain Names - Implementation and + Specification + + + + + + + + + + + Murray + Stokely + Készítette: + + + + + Az Apache webszerver + + + webszerverek + beállítása + + + Apache + + + Áttekintés + + A &os; szolgálja ki a legforgalmasabb honlapok nagy + részét szerte a világban. A + mögöttük álló webszerverek + általában az Apache + webszervert alkalmazzák. Az + Apache használatához + szükséges csomagok megtalálhatóak a + &os; telepítõlemezén is. Ha a &os; elsõ + telepítésekor még nem + telepítettük volna az + Apache szerverét, akkor a + www/apache13 vagy www/apache12 portból tudjuk + feltenni. + + Az Apache szervert sikeres + telepítését követõen be kell + állítanunk. + + + Ebben a szakaszban az Apache + webszerver 1.3.X változatát + mutatjuk be, mivel ezt használják a + legtöbben &os; alatt. Az + Apache 2.X rengeteg új + technológiát vezetett be, de ezekkel itt most + nem foglalkozunk. Az + Apache 2.X + változatával kapcsolatban keressük fel a + oldalt. + + + + + + Beállítás + + + Apache + konfigurációs + állományok + + + Az Apache webszerver + konfigurációs állománya &os; alatt + /usr/local/etc/apache/httpd.conf + néven található. Ez az + állomány egy szokványos &unix;-os + szöveges konfigurációs + állomány, ahol a megjegyzéseket egy + # karakterrel vezetjük be. Az itt + használható összes lehetséges + beállítási lehetõség + átfogó ismertetése meghaladná az + egész kézikönyv határait, ezért + most csak a leggyakrabban módosított + direktívákat fogjuk ismertetni. + + + + ServerRoot "/usr/local" + + + Ez adja meg az Apache + számára az alapértelmezett + könyvtárat. A binárisai ezen + belül a bin + és sbin + alkönyvtárakban, a konfigurációs + állományai pedig az etc/apache + könyvtárban tárolódnak. + + + + + ServerAdmin saját@címünk.az.interneten + + + Erre a címre küldhetik nekünk a + szerverrel kapcsolatos hibákat. Ez a cím + egyes szerver által generált oldalakon + jelenik meg, például hibák + esetében. + + + + + ServerName www.minta.com + + + A ServerName + segítségével meg tudjuk adni, hogy + milyen nevet küldjön vissza a szerver a + klienseknek olyankor, ha az nem egyezne meg a jelenlegivel + (vagyis a www nevet használjuk a + gépünk valódi neve helyett). + + + + + DocumentRoot "/usr/local/www/data" + + + A DocumentRoot adja meg azt a + könyvtárat, ahonnan kiszolgáljuk a + dokumentumokat. Alapértelmezés szerint az + összes kérés erre a + könyvtárra fog vonatkozni, de a szimbolikus + linkek és az álnevek akár más + helyekre is mutathatnak. + + + + + A változtatások végrehajtása + elõtt mindig is jó ötlet biztonsági + másolatot készíteni az + Apache konfigurációs + állományairól. Ahogy sikerült + összerakni egy számunkra megfelelõ + konfigurációt, készen is állunk az + Apache + futtatására. + + + + + Az <application>Apache</application> + futtatása + + + Apache + indítása és + leállítása + + + A többi hálózati szervertõl + eltérõen az Apache nem az + inetd szuperszerverbõl fut. A + kliensektõl érkezõ HTTP kérések + minél gyorsabb kiszolgálásának + érdekében úgy állítottuk be, + hogy önállóan fusson. Ehhez egy szkriptet is + mellékeltünk, amellyel igyekeztünk a + lehetõ legjobban leegyszerûsíteni a szerver + indítását, + leállítását és + újraindítását. Az + Apache elsõ + indításához adjuk ki a következõ + parancsot: + + &prompt.root; /usr/local/sbin/apachectl start + + Így pedig a szervert bármikor + leállíthatjuk: + + &prompt.root; /usr/local/sbin/apachectl stop + + Ha valamilyen okból megváltoztattuk volna a + szerver beállításait, akkor ezen a + módon tudjuk újraindítani: + + &prompt.root; /usr/local/sbin/apachectl restart + + Ha a jelenleg megnyitott kapcsolatok felbontása + nélkül akarjuk újraindítani az + Apache szervert, akkor ezt + írjuk be: + + &prompt.root; /usr/local/sbin/apachectl graceful + + Mindezekrõl az &man.apachectl.8; man oldalon + találunk bõvebb leírást. + + Amennyiben szükségünk lenne az + Apache + elindítására a rendszer + indításakor, akkor a következõ sort + vegyünk fel az /etc/rc.conf + állományba: + + apache_enable="YES" + + Az Apache 2.2 + esetében: + + apache22_enable="YES" + + Amikor az Apache + httpd nevû programjának + szeretnénk további paranccsori + paramétereket átadni a rendszer + indítása során, akkor ezeket így + tudjuk megadni az rc.conf + állományban: + + apache_flags="" + + Most, miután a webszerverünk mûködik, + a böngészõnkkel mindezt ellenõrizni is + tudjuk a http://localhost/ cím + beírásával. Ilyenkor az + alapértelmezés szerinti + /usr/local/www/data/index.html + állomány tartalmát láthatjuk. + + + + + Virtuális nevek + + Az Apache a virtuális + nevek használatának két + különbözõ módját ismeri. Ezek + közül az elsõ módszer a név + alapú virtualizáció (Name-based Virtual + Hosting). Ilyenkor a kliens HTTP/1.1 + fejlécébõl próbálja meg a + szerver megállapítani a hivatkozási nevet. + Segítségével több tartomány is + osztozhat egyetlen IP-címen. + + Az Apache név alapú + virtualizációjának + beállításához az alábbi + beállítást kell hozzátennünk a + httpd.conf + állományhoz: + + NameVirtualHost * + + Ha a webszerverünk neve www.tartomany.hu, és hozzá + egy www.valamilyenmasiktartomany.hu + virtuális nevet akarunk megadni, akkor azt a + következõképpen tehetjük meg a + httpd.conf állományon + belül: + + <VirtualHost *> +ServerName www.tartomany.hu +DocumentRoot /www/tartomany.hu +</VirtualHost> + +<VirtualHost *> +ServerName www.valamilyenmasiktartomany.hu +DocumentRoot /www/valamilyenmasiktartomany.hu +</VirtualHost> + + A címek és elérési utak + helyére helyettesítsük be a használni + kívánt címeket és + elérési utakat. + + A virtuális nevek + beállításának további + részleteivel kapcsolatosan keressük fel az + Apache hivatalos + dokumentációját a címen + (angolul). + + + + + Apache-modulok + + + Apache + modulok + + + Az alap szerver képességeinek + kiegészítéséhez több + különbözõ Apache + modul áll rendelkezésünkre. A &os; + Portgyûjteménye az Apache + telepítése mellett lehetõséget ad a + népszerûbb bõvítményeinek + telepítésére is. + + + mod_ssl + + + webszerverek + biztonság + + + SSL + titkosítás + + A mod_ssl modul az OpenSSL + könyvtár használatával + valósít meg erõs titkosítást + a biztonságos socket réteg második, + illetve harmadik verziójával (Secure Sockets + Layer, SSL v2/v3) és a biztonságos + szállítási rétegbeli (Transport + Layer Security v1) protokoll + segítségével. Ez a modul mindent + biztosít ahhoz, hogy a megfelelõ + hatóságok által aláírt + tanúsítványokat tudjunk kérni, + és ezáltal egy védett webszervert + futtassunk &os;-n. + + Ha még nem telepítettünk volna fel az + Apache szervert, akkor a www/apache13-modssl porton + keresztül a mod_ssl modullal + együtt is fel tudjuk rakni az + Apache 1.3.X + változatát. Az SSL támogatása + pedig már az Apache 2.X + www/apache22 porton + keresztül elérhetõ változataiban + alapértelmezés szerint + engedélyezett. + + + + + Kapcsolódás nyelvekhez + + Mindegyik nagyobb szkriptnyelvhez létezik egy + külön Apache-modul, amelyek + segítségével komplett + Apache-modulokat tudunk + készíteni az adott nyelven. Gyakran a dinamikus + honlapok is így próbálják a + szerverbe épített belsõ + értelmezõn keresztül a külsõ + értelmezõ indításából + és benne a szkriptek + lefuttatásából fakadó + költségeket megspórolni, ahogy errõl a + következõ szakaszokban olvashatunk. + + + + + + Dinamikus honlapok + + + webszerverek + dinamikus + + + Az utóbbi évtizedben egyre több + vállalkozás fordult az internet felé + bevételeik és részesedéseinek + növelésének reményében, amivel + egyre jobban megnõtt az igény a dinamikus honlapokra + is. Miközben bizonyos cégek, mint + például a µsoft;, a saját + fejlesztésû termékeikbe + építettek be ehhez támogatást, addig + a nyílt forrásokkal foglalkozó + közösség sem maradt tétlen és + felvette a kesztyût. A dinamikus tartalom + létrehozásához többek közt + Django, Ruby on Rails, a mod_perl + és a mod_php modulok + használhatóak. + + + Django + + Python + Django + + A Django egy BSD típusú licensszel + rendelkezõ keretrendszer, amelynek + használatával nagy + teljesítményû és elegáns + webes alkalmazásokat tudunk gyorsan kifejleszteni. + Tartalmaz egy objektum-relációs + leképezõt, így az adattípusokat + Python-objektumokként tudjuk leírni, és + ezekhez az objektumokhoz egy sokrétû, dinamikus + adatbázis hozzáférést + nyújtó alkalmazásfejlesztõi + felületet, így a fejlesztõknek egyetlen SQL + utasítást sem kell megírniuk. + Találhatunk még benne továbbá egy + bõvíthetõ sablonrendszert, amelynek + köszönhetõen az alkalmazás belsõ + mûködése elválasztható a + HTML-beli megjelenésétõl. + + A Django mûködéséhez a + mod_python modulra, az + Apache szerverre és egy + tetszõlegesen választott SQL alapú + adatbázisrendszerre van szükség. A + hozzátartozó &os; port mindezeket automatikusan + telepíti a megadott beállítások + szerint. + + + A Django telepítése az Apache, + mod_python3 és a PostgreSQL + használatával + + &prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL + + + Miután a Django és a hozzá + szükséges komponensek felkerültek + rendszerünkre, hozzunk létre egy + könyvtárat a leendõ Django projektünknek + és állítsuk be az Apache szervert, hogy + az oldalunk belül a megadott linkekre a saját + alkalmazásunkat hívja meg a beágyazott + Python-értelmezõn keresztül. + + + Az Apache beállítása a Django + és mod_python használatához + + A következõ sort kell hozzátennünk + a httpd.conf állományhoz, + hogy az Apache bizonyos linkeket a webes alkalmazás + felé irányítson át: + + <Location "/"> + SetHandler python-program + PythonPath "['/a/django/csomagok/helye/'] + sys.path" + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE azoldalam.beallitasai + PythonAutoReload On + PythonDebug On +</Location> + + + + + + Ruby on Rails + + Ruby on Rails + + A Ruby on Rails egy olyan másik nyílt + forráskódú keretrendszer, amivel + lényegében egy teljes fejlesztõi + készletet kapunk és amelyet kifejezetten arra + élezték ki, hogy + segítségével a webfejlesztõk sokkal + gyorsabban tudjanak haladni és a komolyabb + alkalmazások gyorsabb elkészítése + se okozzon nekik gondot. A + Portrgyûjteménybõl pillanatok alatt + telepíthetõ. + + &prompt.root; cd /usr/ports/www/rubygem-rails; make all install clean + + + + + mod_perl + + + mod_perl + Perl + + + Az Apache és Perl + egyesítésén fáradozó + projekt a Perl programozási nyelv és az + Apache webszerver erejének + összehangolásán dolgozik. A + mod_perl modulon keresztül + Perlben vagyunk képesek modulokat + készíteni az Apache + szerverhez. Ráadásul a szerverben egy + belsõ állandó értelmezõ is + található hozzá, ezzel igyekeznek + megspórolni a külsõ értelmezõ + és a Perl indításából + keletkezõ többletköltségeket. + + A mod_perl több + különbözõ módon + állítható munkába. A + mod_perl + használatához nem szabad elfelejtenünk, + hogy a mod_perl 1.0-ás + verziója csak az Apache 1.3 + változatával mûködik, és a + mod_perl 2.0-ás + változata pedig csak az + Apache 2.X + változataival. A mod_perl + 1.0 a www/mod_perl + portból telepíthetõ, valamint a statikusan + beépített változata a www/apache13-modperl portban + található. A + mod_perl 2.0 a www/mod_perl2 portból + rakható fel. + + + + + + + + Tom + Rhodes + Írta: + + + + + mod_php + + + mod_php + PHP + + + A PHP, vagy másik nevén + PHP, a hipertext feldolgozó egy + általános célú szkriptnyelv, + amelyet kifejezetten honlapok fejlesztéséhez + hoztak létre. A szabványos + HTML ágyazható nyelv + felépítésében a C, &java; + és Perl nyelveket ötvözi annak + elérése érdekében, hogy ezzel + segítse a fejlesztõket a dinamikusan + generált oldalak minél gyorsabb + megírásában. + + A PHP5 támogatását + úgy tudjuk hozzáadni az + Apache webszerverhez, ha + telepítjük a lang/php5 portot. + + Ha a lang/php5 portot + most telepítjük elõször, akkor a vele + kapcsolatos beállításokat + tartalmazó OPTIONS menü + automatikusan megjelenik. Ha ezzel nem + találkoznánk, mert például + valamikor korábban már felraktuk volna a + lang/php5 portot, akkor a + port könyvtárában következõ + parancs kiadásával tudjuk újra + visszahozni: + + &prompt.root; make config + + A beállítások között + jelöljük be az APACHE + opciót, amelynek eredményeképpen + létrejön az Apache + webszerverhez használható + mod_php5 betölthetõ + modul. + + + A PHP4 modult még ma is + rengeteg szerver használja több + különbözõ okból + (például kompatibilitási + problémák vagy a már korábban + kiadott tartalom miatt). Ha tehát a + mod_php5 helyett inkább a + mod_php4 modulra lenne + szükségünk, akkor a lang/php4 portot + használjuk. A lang/php4 portnál is + megtalálhatjuk a lang/php5 fordítási + idejû beállításainak nagy + részét. + + + Az iméntiek révén települnek + és beállítódnak a dinamikus + PHP alkalmazások + támogatásához szükséges + mouldok. Az + /usr/local/etc/apache/httpd.conf + állományban ellenõrizni is tudjuk, hogy az + alábbi részek megjelentek-e: + + LoadModule php5_module libexec/apache/libphp5.so + + AddModule mod_php5.c + <IfModule mod_php5.c> + DirectoryIndex index.php index.html + </IfModule> + <IfModule mod_php5.c> + AddType application/x-httpd-php .php + AddType application/x-httpd-php-source .phps + </IfModule> + + Ahogy befejezõdött a mûvelet, a + PHP modul betöltéséhez + mindösszesen az apachectl paranccsal + kell óvatosan újraindítanunk a + webszervert: + + &prompt.root; apachectl graceful + + A PHP jövõbeni + frissítéseihez már nem lesz + szükségünk a make config + parancsra, mivel a korábban kiválasztott + OPTIONS menün belüli + beállítasainkat a &os; + Portgyûjteményéhez tartozó + keretrendszer automatikusan elmenti. + + A PHP &os;-ben + megtalálható támogatása + kifejezetten moduláris, ezért az alap + telepítése igencsak korlátozott. A + további elemek hozzáadásához a + lang/php5-extensions + portot tudjuk használni. A port egy + menüvezérelt felületet nyújt a + PHP különbözõ + bõvítményeinek + telepítéséhez. Az egyes + bõvítményeket azonban a megfelelõ + portok használatával is fel tudjuk rakni. + + Például PHP5 modulhoz + úgy tudunk támogatást adni a + MySQL adatbázis szerverhez, + ha feltelepítjük a databases/php5-mysql portot. + + Miután telepítettünk egy + bõvítményt, az + Apache szerverrel újra be + kell töltetnünk a megváltozott + beállításokat: + + &prompt.root; apachectl graceful + + + + + + + + + + Murray + Stokely + Készítette: + + + + + Állományok átvitele (FTP) + + FTP szerverek + + + Áttekintés + + Az adatállomány átviteli protokoll + (File Transfer Protocol, FTP) a felhasználók + számára lehetõséget ad az ún. + FTP szerverekre + állományokat feltölteni, illetve onnan + állományokat letölteni. A &os; alaprendszere + is tartalmaz egy ilyen FTP szerverprogramot, + ftpd néven. Ezért &os; + alatt egy FTP + szerver beállítása meglehetõsen + egyszerû. + + + + + Beállítás + + A beállítás legfontosabb + lépése, hogy eldöntsük milyen + hozzáféréseken át lehet + elérni az FTP szervert. Egy hétköznapi &os; + rendszerben rengeteg hozzáférés a + különbözõ démonokhoz tartozik, de az + ismeretlen felhasználók számára nem + kellene megengednünk ezek használatát. Az + /etc/ftpusers állományban + szerepelnek azok a felhasználók, akik semmilyen + módon nem érhetik el az FTP + szolgáltatást. Alapértelmezés + szerint itt találhatjuk az elõbb említett + rendszerszintû hozzáféréseket is, de + ide minden további nélkül felvehetjük + azokat a felhasználókat, akiknél nem + akarjuk engedni az FTP elérését. + + Más esetekben elõfordulhat, hogy csak + korlátozni akarjuk egyes felhasználók FTP + elérését. Ezt az + /etc/ftpchroot állományon + keresztül tehetjük meg. Ebben az + állományban a lekorlátozni + kívánt felhasználókat és + csoportokat írhatjuk bele. Az &man.ftpchroot.5; man + oldalán olvashatjuk el ennek részleteit, + ezért ennek pontos részleteit itt most nem + tárgyaljuk. + + + FTP + anonim + + + Ha az FTP szerverünkhöz névtelen (anonim) + hozzáférést is engedélyezni akarunk, + akkor ahhoz elõször készítenünk + kell egy ftp nevû + felhasználót a &os; rendszerünkben. A + felhasználók ezután az + ftp vagy anonymous + nevek, valamint egy tetszõleges jelszó (ez a + hagyományok szerint a felhasználó e-mail + címe) használatával is képesek + lesznek bejelentkezni. Az FTP szerver ezután a + névtelen felhasználók esetében + meghívja a &man.chroot.2; rendszerhívást, + és ezzel lekorlátozza + hozzáférésüket az + ftp felhasználó + könyvtárára. + + Két szöveges állományban adhatunk + meg a becsatlakozó FTP kliensek számára + üdvözlõ üzeneteket. Az + /etc/ftpwelcome állomány + tartalmát még a bejelentkezés elõtt + látni fogják a felhasználók, a + sikeres bejelentkezést követõen pedig az + /etc/ftpmotd állomány + tartalmát látják. Vigyázzunk, mert + ennek az állománynak már a + bejelentkezési környezethez képest + relatív az elérése, ezért a + névtelen felhasználók esetében ez + konkrétan az ~ftp/etc/ftpmotd + állomány lesz. + + Ahogy beállítottuk az FTP szervert, az + /etc/inetd.conf állományban + is engedélyeznünk kell. Itt mindössze annyira + lesz szükségünk, hogy + eltávolítjuk a megjegyzést jelzõ + # karaktert a már meglevõ + ftpd sor elõl: + + ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l + + Ahogy arról már a szót ejtett, az + inetd + beállításait újra be kell + olvastatunk a konfigurációs állomány + megváltoztatása után. + + Most már be is tudunk jelentkezni az FTP + szerverre: + + &prompt.user; ftp localhost + + + + + Karbantartás + + syslog + + + naplóállományok + FTP + + + Az ftpd démon a + &man.syslog.3; használatával naplózza az + üzeneteket. Alapértelmezés szerint a + rendszernaplózó démon az FTP + mûködésére vonatkozó + üzeneteket az /var/log/xferlog + állományba írja. Az FTP naplóinak + helyét az /etc/syslog.conf + állományban tudjuk + módosítani: + + ftp.info /var/log/xferlog + + + FTP + anonim + + + Legyünk körültekintõek a névtelen + FTP szerverek üzemeltetésekor. Azt pedig + kétszer is gondoljuk meg, hogy + engedélyezzük-e a névtelen + felhasználók számára + állományok feltöltését, hiszen + könnyen azon kaphatjuk magunkat, hogy az FTP oldalunk + illegális állománycserék + színterévé válik vagy esetleg valami + sokkal rosszabb történik. Ha mindenképpen + szükségünk lenne erre a + lehetõségre, akkor állítsunk be olyan + engedélyeket a feltöltött + állományokra, hogy a többi névtelen + felhasználó ezeket a tartalmuk tüzetes + ellenõrzéséig ne is olvashassa. + + + + + + + + + Murray + Stokely + Készítette: + + + + + Állomány- és nyomtatási + szolgáltatások µsoft.windows; kliensek + számára (Samba) + + Samba szerver + Microsoft Windows + + állományszerver + windowszos kliensek + + + nyomtatószerver + windowszos kliensek + + + + Áttekintés + + A Samba egy olyan elterjedt + nyílt forráskódú szoftver, ami + µsoft.windows; kliensek számára tesz + lehetõvé állomány- és + nyomtatási szolgáltatásokat. Az ilyen + kliensek általa helyi meghajtóként + képesek elérni a &os; + állományrendszerét, vagy helyi + nyomtatóként a &os; általt kezelt + nyomtatókat. + + A Samba csomagja + általában megtalálható a &os; + telepítõeszközén. Ha a &os;-vel + együtt nem raktuk fel a Samba + csomagját, akkor ezt késõbb net/samba3 port vagy csomag + telepítésével pótolhatjuk. + + + + + Beállítás + + A Samba + konfigurációs állománya a + telepítés után + /usr/local/share/examples/samba/smb.conf.default + néven található meg. Ezt kell + lemásolnunk /usr/local/etc/smb.conf + néven, amelyet aztán a + Samba tényleges + használata elõtt módosítanunk + kell. + + Az smb.conf állomány a + Samba futásához + használt beállításokat tartalmazza, + mint például &windows; kliensek + számára felkínált a nyomtatók + és megosztások adatait. A + Samba csomagban ezen + kívül találhatunk még egy + swat nevû webes eszközt, + amellyel egyszerû módon tudjuk az + smb.conf állományt + állítgatni. + + + A Samba webes adminisztrációs eszköze + (SWAT) + + A Samba webes adminisztrációs + segédeszköze (Samba Web Administration Tool, SWAT) + az inetd démonon + keresztül fut démonként. Ennek + megfelelõn az /etc/inetd.conf + állományban a következõ sort kell + kivennünk megjegyzésbõl, mielõtt a + swat + segítségével megkezdenénk a + Samba + beállítását: + + swat stream tcp nowait/400 root /usr/local/sbin/swat swat + + Ahogy azt a is + mutatja, az inetd démont + újra kell indítanunk a megváltozott + konfigurációs állományának + újbóli beolvasásához. + + Miután az inetd.conf + állományban a swat + engedélyezésre került, a + böngészõnk segítségével + próbáljunk meg a címre csatlakozni. + Elõször a rendszer root + hozzáférésével kell + bejelentkeznünk. + + Miután sikeresen bejelentkeztünk a + Samba + beállításait tárgyaló + lapra, el tudjuk olvasni a rendszer + dokumentációját, vagy a + Globals fülre kattintva + nekiláthatunk a beállítások + elvégzésének. A + Globals részben + található opciók az + /usr/local/etc/smb.conf + állomány [global] + szekciójában található + változókat tükrözik. + + + + + Általános + beállítások + + Akár a swat + eszközzel, akár a + /usr/local/etc/smb.conf közvetlen + módosításával dolgozunk, a + Samba + beállítása során a + következõkkel mindenképpen össze fogunk + futni: + + + + workgroup + + + A szervert elérni kívánó + számítógépek által + használt NT tartomány vagy munkacsoport + neve. + + + + + netbios name + NetBIOS + + + A Samba szerver NetBIOS + neve. Alapértelmezés szerint ez a + név a gép hálózati + nevének elsõ tagja. + + + + + server string + + + Ez a szöveg jelenik meg akkor, ha + például a net view + paranccsal vagy valamilyen más + hálózati segédprogrammal + kérdezzük le a szerver beszédesebb + leírását. + + + + + + + Biztonsági + beállítások + + A /usr/local/etc/smb.conf + állományban a két legfontosabb + beállítás a választott + biztonsági modell és a kliensek + felhasználói jelszavainak + tárolásához használt + formátum. Az alábbi direktívák + vezérlik ezeket: + + + + security + + + Itt a két leggyakoribb + beállítás a security = + share és a security = + user. Ha a kliensek a &os; gépen + található felhasználói + neveiket használják, akkor + felhasználói szintû védelemre + van szükségünk (tehát a user + beállításra). Ez az + alapértelmezett biztonsági házirend + és ilyenkor a klienseknek elõször be + kell jelentkezniük a megosztott + erõforrások + eléréséhez. + + A megosztás (share) szintû + védelem esetében, a klienseknek nem kell a + szerveren érvényes + felhasználói névvel és + jelszóval rendelkezniük a megosztott + erõforrások eléréséhez. + Ez volt az alapbeállítás a + Samba korábbi + változataiban. + + + + + passdb backend + + NIS+ + LDAP + SQL adatbázis + + + A Samba számos + különbözõ hitelesítési + modellt ismer. A klienseket LDAP, NIS+, SQL + adatbázis vagy esetleg egy + módosított jelszó + állománnyal is tudjuk hitelesíteni. + Az alapértelmezett hitelesítési + módszer a smbpasswd, + így itt most ezzel foglalkozunk. + + + + + Ha feltesszük, hogy az alapértelmezett + smbpasswd formátumot + választottuk, akkor a Samba + úgy fogja tudni hitelesíteni a klienseket, ha + elõtte létrehozzuk a + /usr/local/private/smbpasswd + állományt. Ha a &windows;-os kliensekkel is el + akarjuk érni a &unix;-os felhasználói + hozzáféréseinket, akkor használjuk + a következõ parancsot: + + &prompt.root; smbpasswd -a felhasználónév + + A + hivatalos Samba HOGYAN ezekrõl a + beállításokról szolgál + további információkkal (angolul). + Viszont az itt vázolt alapok viszont már + elegendõek a Samba + elindításához. + + + + + + A <application>Samba</application> + elindítása + + A net/samba3 port a + Samba + irányítására egy új + indító szkriptet tartalmaz. A szkript + engedélyezéséhez, tehát + általa a Samba + elindításának, + leállításának és + újraindításának lehetõvé + tételéhez vegyük fel a következõ + sort az /etc/rc.conf + állományba: + + samba_enable="YES" + + Ha még finomabb irányításra + vágyunk: + + nmbd_enable="YES" + smbd_enable="YES" + + + Ezzel egyben a rendszer indításakor + automatikusan be is indítjuk a + Samba + szolgáltatást. + + + A Samba a következõkkel + bármikor elindítható: + + &prompt.root; /usr/local/etc/rc.d/samba start +Starting SAMBA: removing stale tdbs : +Starting nmbd. +Starting smbd. + + Az rc szkriptekkel kapcsolatban a t ajánljuk + elolvasásra. + + A Samba jelen pillanatban + három különálló + démonból áll. Láthatjuk is, hogy az + nmbd és + smbd démonokat + elindította a samba szkript. Ha az + smb.conf állományban + engedélyeztük a winbind + névfeloldási szolgáltatást is, akkor + láthatjuk, hogy ilyenkor a + winbindd démon is + elindul. + + A Samba így + állítható le akármikor: + + &prompt.root; /usr/local/etc/rc.d/samba stop + + A Samba egy összetett + szoftercsomag, amely a µsoft.windows; + hálózatokkal kapcsolatos széles + körû együttmûködést tesz + lehetõvé. Az általa felkínált + alapvetõ lehetõségeken túl a többit + a honlapon + ismerhetjük meg (angolul). + + + + + + + + + Tom + Hukins + Készítette: + + + + + Az órák egyeztetése az NTP + használatával + + NTP + + + Áttekintés + + Idõvel a számítógép + órája hajlamos elmászni. A + hálózati idõ protokoll (Network Time + Protocol, NTP) az egyik módja az óránk + pontosan tartásának. + + Rengeteg internetes szolgáltatás + elvárja vagy éppen elõnyben + részesíti a számítógép + órájának pontosságát. + Például egy webszervertõl + megkérdezhetik, hogy egy állományt adott + ideje módosítottak-e. A helyi + hálózatban az egyazon + állományszerveren megosztott + állományok ellentmondásmentes + dátumozása érdekében szinte + elengedhetetlen az órák + szinkronizálása. Az olyan + szolgáltatások, mint a &man.cron.8; is komolyan + építkeznek a pontosan járó + rendszerórára, amikor egy adott pillanatban kell + lefuttatniuk parancsokat. + + + NTP + ntpd + + + A &os; alapból az &man.ntpd.8; NTP szervert tartalmazza, amellyel + más NTP + szerverek segítségével tudjuk + beállítani gépünk + óráját, vagy éppen idõvel + kapcsolatos információkat szolgáltatni + másoknak. + + + + + A megfelelõ NTP szerverek + kiválasztása + + + NTP + a szerverek kiválasztása + + + Az óránk egyeztetéséhez egy vagy + több NTP + szerverre lesz szükségünk. Elõfordulhat, + hogy a hálózati rendszergazdánk vagy az + internet-szolgáltatónk már + beállított egy ilyen szervert erre a célra. + Ezzel kapcsolatban olvassuk el a megfelelõ + leírásokat. A nyilvánosan + elérhetõ NTP szerverekrõl készült + egy lista, ahonnan könnyedén ki tudjuk + keresni a számunkra leginkább megfelelõ + (hozzánk legközelebbi) szervert. Ne hagyjuk + figyelmen kívül a szerverre vonatkozó + házirendet és kérjünk engedélyt + a használatához, amennyiben ez + szükséges. + + Több, egymással közvetlen kapcsolatban nem + álló NTP szerver + választásával járunk jól, ha + netalán az egyikük váratlanul + elérhetetlenné vagy az órája + pontatlanná válna. Az &man.ntpd.8; a visszakapott + válaszokat intelligensen használja fel, mivel + esetükben a megbízható szervereket + részesíti elõnyben. + + + + + A gépünk + beállítása + + + NTP + beállítása + + + + Alapvetõ beállítások + + ntpdate + + Ha a számítógépünk + indításakor akarjuk egyeztetni az + óránkat, akkor erre az &man.ntpdate.8; nevû + programot használhatjuk. Ez olyan asztali gépek + számára megfelelõ választás, + amelyeket gyakran indítanak újra és csak + idõnként kell szinkronizálnunk. A + legtöbb gépnek viszont az &man.ntpd.8; + használatára van szüksége. + + Az &man.ntpdate.8; elindítása olyan + esetekben is hasznos, ahol az &man.ntpd.8; is fut. Az + &man.ntpd.8; az órát fokozatosan + állítja, ellenben az &man.ntpdate.8; az + eltérés mértékétõl + és irányától függetlenül + egyszerûen átállítja a gép + óráját a pontos idõre. + + Az &man.ntpdate.8; elindítását + úgy tudjuk engedélyezni a rendszer + indításakor, ha az + /etc/rc.conf állományba + berakjuk az ntpdate_enable="YES" sort. + Emellett még ntpdate_flags + változóban meg kell adnunk az alkalmazott + beállítások mellett azokat a szervereket, + amelyekkel szinkronizálni akarunk. + + + + + + + NTP + ntp.conf + + + Általános + beállítások + + Az NTP az /etc/ntp.conf + állományon keresztül + állítható, amelyek + felépítését az &man.ntp.conf.5; + man oldal tárgyalja. Íme erre egy egyszerû + példa: + + server ntplocal.minta.com prefer +server timeserver.minta.org +server ntp2a.minta.net + +driftfile /var/db/ntp.drift + + A server beállítás + adja meg az egyeztetéshez használt szervereket, + soronként egyet. Ha egy szerver mellett szerepel + még a prefer paraméter is, + ahogy azt a példában a ntplocal.minta.com mellett + láthattuk, akkor a többivel szemben azt a szervert + fogjuk elõnyben részesíteni. Az így + kiemelt szervertõl érkezõ választ + abban az esetben viszont eldobjuk, hogy a többi + szervertõl kapott válasz jelentõs + mértékben eltér tõle. Minden + más esetben a õ válasza lesz a + mérvadó. A prefer + paramétert általában olyan NTP + szerverekhez használják, amelyek + közismerten nagy pontosságúak, tehát + például külön erre a célra + szánt felügyeleti eszközt is + tartalmaznak. + + A driftfile + beállítással azt az + állományt adjuk meg, amiben a rendszeróra + frekvencia eltolódásait tároljuk. Az + &man.ntpd.8; program ezzel ellensúlyozza automatikusan + az óra természetes + elmászását, ezáltal + lehetõvé téve, hogy egy viszonylag pontos + idõt kapjuk még abban az esetben is, amikor egy + kis idõre külsõ idõforrások + nélkül maradnánk. + + A driftfile + beállítással egyben azt az + állományt jelöljük ki, amely az NTP + szervertõl kapott korábbi válaszokat + tárolja. Ez az NTP mûködéséhez + szükséges belsõ adatokat tartalmaz, + ezért semmilyen más programnak nem szabad + módosítania. + + + + + A szerverünk elérésének + szabályozása + + Alapértelmezés szerint az NTP + szerverünket bárki képes elérni az + interneten. Az /etc/ntp.conf + állományban szereplõ + restrict beállítás + segítségével azonban meg tudjuk mondani, + milyen gépek érhetik el a + szerverünket. + + Ha az NTP szerverünk felé mindenféle + próbálkozást el akarunk utasítani, + akkor az /etc/ntp.conf + állományba a következõ sort kell + felvennünk: + + restrict default ignore + + + Ezzel egyben azonban a helyi + beállításainkban szereplõ + szerverek elérését is + megakadályozzuk. Ha külsõ NTP szerverekkel + is szeretnénk szinkronizálni, akkor itt is + engedélyezünk kell ezeket. Errõl + bõvebben lásd az &man.ntp.conf.5; man + oldalon. + + + Ha csak a belsõ hálózatunkban levõ + gépek számára szeretnénk + elérhetõvé tenni az órák + egyeztetését, de sem a szerver + állapotának + módosítását nem + engedélyezzük, sem pedig azt, hogy a vele + egyenrangú szerverekkel szinkronizáljon, akkor + az iménti helyett a + + restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap + + sort írjuk bele, ahol a 192.168.1.0 a belsõ + hálózatunk IP-címe és a 255.255.255.0 a + hozzátartozó hálózati + maszk. + + Az /etc/ntp.conf több + restrict típusú + beállítást is tartalmazhat. Ennek + részleteirõl az &man.ntp.conf.5; man oldalon, az + Access Control Support címû + szakaszban olvashatunk. + + + + + + Az NTP futtatása + + Úgy tudjuk az NTP szervert elindítani a + rendszerünkkel együtt, ha az + /etc/rc.conf állományban + szerepeltetjük az ntpd_enable="YES" + sort. Ha az &man.ntpd.8; számára további + beállításokat is át akarunk adni, + akkor az /etc/rc.conf + állományban adjuk meg az + ntpd_flags paramétert. + + Ha a gépünk újraindítása + nélkül akarjuk elindítani a szerver, akkor az + ntpd parancsot adjuk ki az + /etc/rc.conf állományban a + ntpd_flags változóhoz megadott + paraméterekkel. Mint például: + + &prompt.root; ntpd -p /var/run/ntpd.pid + + + + + Az ntpd használati idõleges internet + csatlakozással + + Az &man.ntpd.8; program megfelelõ + mûködéséhez nem szükséges + állandó internet kapcsolat. Ha azonban + igény szerinti tárcsázással + építjünk fel ideiglenes kapcsolatot, akkor + érdemes letiltani az NTP forgalmát, nehogy + feleslegesen aktiválja vagy tartsa életben a + vonalat. Ha PPP típusú kapcsolatunk van, akkor az + /etc/ppp/ppp.conf állományban + a filter direktívával tudjuk + ezt leszabályozni. Például: + + set filter dial 0 deny udp src eq 123 + # Nem engedjük az NTP által küldött adatoknak, hogy tárcsázást + # kezdeményezzenek: + set filter dial 1 permit 0 0 + set filter alive 0 deny udp src eq 123 + # Nem engedjük az NTP adatainak, hogy fenntartsák a kapcsolatot: + set filter alive 1 deny udp dst eq 123 + set filter alive 2 permit 0/0 0/0 + + Mindenezekrõl részletesebb + felvilágosítást a &man.ppp.8; man oldal + PACKET FILTERING címû + szakaszában és a + /usr/share/examples/ppp/ + könyvtárban található + példákban kaphatunk. + + + Egyes internet-szolgáltatók + blokkolják az alacsonyabb portokat, ezáltal az + NTP nem használható, mivel a válaszok nem + fogják elérni a gépünket. + + + + + + További olvasnivalók + + Az NTP szerver dokumentációja HTML + formátumban a /usr/share/doc/ntp/ + könyvtárban található. + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/pgpkeys/Makefile b/hu_HU.ISO8859-2/books/handbook/pgpkeys/Makefile new file mode 100644 index 0000000000..7c61203aff --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/pgpkeys/Makefile @@ -0,0 +1,19 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= pgpkeys/chapter.sgml + +PGPKEYS!= perl -ne 'm/\"([\w-]+.key)\"/ && print "$$1\n"' \ + ${DOC_PREFIX}/share/pgpkeys/pgpkeys.ent +SRCS+= ${PGPKEYS} + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/pgpkeys/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/pgpkeys/chapter.sgml new file mode 100644 index 0000000000..8f93a97354 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/pgpkeys/chapter.sgml @@ -0,0 +1,57 @@ + + + + + PGP-kulcsok + + PGP-kulcsok + + Arra az esetre, ha ellenõriznünk kellene a + tisztségviselõk vagy fejlesztõk + aláírását, esetleg + titkosított e-mailt szeretnénk küldeni nekik, + ebben a fejezetben mellékeljük az ehhez + szükséges kulcsokat. A FreeBSD.org összes + felhasználójának kulcsa + letölthetõ a http://www.FreeBSD.org/doc/pgpkeyring.txt + címrõl. + + + Tisztségviselõk + + §ion.pgpkeys-officers; + + + + + A Core Team tagjai + + §ion.pgpkeys-core; + + + + + Fejlesztõk + + §ion.pgpkeys-developers; + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/ports/Makefile b/hu_HU.ISO8859-2/books/handbook/ports/Makefile new file mode 100644 index 0000000000..93280bcae8 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/ports/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= ports/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml new file mode 100644 index 0000000000..aa6e07644b --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml @@ -0,0 +1,2173 @@ + + + + + + Alkalmazások telepítése: csomagok + és portok + + + Áttekintés + + portok + csomagok + + A &os; rendszereszközök gazdag + gyûjteményével érkezik az alaprendszer + részeként. Azonban a külsõ + alkalmazások telepítéséhez rengeteg + teendõt kell elvégeznünk. A feladat + elvégzésére ezért a &os; két, + egymást kiegészítõ + technológiát kínál fel: a &os; + Portgyûjteményt (telepítés + forráskódból) és a csomagokat + (telepítés elõre elkészített + bináris csomagokból). Mind a két + módszerrel fel tudjuk telepíteni a kedvenc + alkalmazásunk legújabb verzióját + lokálisan vagy egyenesen a + hálózatról. + + A fejezet elolvasása során + megismerjük: + + + + hogyan telepítsünk külsõ + fejlesztésû bináris + szoftvercsomagokat; + + + hogyan fordítsunk le a forrásukból + külsõ fejlesztésû szoftvereket a + Portgyûjtemény + segítségével; + + + hogyan távolítsunk el korábban + már telepített csomagokat és + portokat; + + + hogyan bíráljuk felül a + Portgyûjtemény által használt + alapértelmezett értékeket; + + + hogyan keressük meg a megfelelõ + szoftvercsomagokat; + + + hogyan frissítsük a telepített + alkalmazásokat. + + + + + + + Az alkalmazások telepítésének + összefoglalása + + Ha korábban már használtunk &unix; + rendszereket, valószínûleg ismerjük a + külsõ alkalmazások + telepítésének jellemezõ + menetét: + + + + Töltsük le a szoftvert, amelyet vagy + forráskód vagy pedig bináris + formátumban érhetünk el. + + + + Bontsuk ki az alkalmazás letöltött + változatát (ez általában a + &man.compress.1;, &man.gzip.1; vagy a &man.bzip2.1; + által tömörített tar + állomány). + + + + Keressük meg dokumentációt + (többnyire az INSTALL vagy a + README állományban + található, vagy a doc/ + alkönyvtárban) és olvassuk el benne, hogyan + tudjuk telepíteni a szoftvert. + + + + Ha a szoftver forrását + töltöttük le, fordítsuk le. + Elképzelhetõ, hogy ennek során + szerkesztenünk kell a Makefile + állományt vagy lefuttatnunk a + configure szkriptet, illetve más + lépéseket is el kell + végeznünk. + + + + Próbáljuk a ki szoftvert, majd + telepítsük. + + + + Ez annak a forgatókönyve, amikor minden hiba + nélkül lezajlik. Megeshet azonban, ha olyan szoftvert + telepítünk, amelyet nem kifejezetten a &os;-hez + terveztek, akkor javítanunk kell a + forráskódban a szoftver megfelelõ + mûködéséhez. + + Ha sikerül mûködésre bírni, + folytathatjuk &os;-n a szoftver telepítését a + megszokott módon. Habár a &os; erre + a célra két lehetõséget is + felkínál, amivel rengeteg + erõfeszítéstõl megkímélhet + minket: ezek a csomagok és a portok. Az írás + pillanatában közel &os.numports; külsõ + alkalmazás érhetõ el ilyen + formában. + + Egy adott alkalmazás esetén a + hozzátartozó &os;-s csomag mindössze egyetlen + letöltendõ állományt takar. A csomag + tartalmazza az alkalmazás + telepítéséhez szükséges + összes parancs elõre lefordított + változtatát, ugyanígy magát a + dokumentációt is. A letöltött csomagokat + a &os; csomagkezelõ parancsaival vehetjük + használatba: ezek a &man.pkg.add.1;, &man.pkg.delete.1;, + &man.pkg.info.1; és így tovább. Az új + alkalmazások telepítése ennek + köszönhetõen egyetlen paranccsal + elvégezhetõ. + + Egy alkalmazás &os;-s portja mögött + lényegében állományok + gyûjteménye áll, amelyek abban + segítenek, hogy automatikusan tudjunk telepíteni a + forráskód + felhasználásával. + + Ne felejtsük el, hogy normális esetben + számos lépcsõt végig kell járnunk + egy program sajátkezû + lefordításához (letöltés, + kitömörítés, javítgatás, + fordítás, telepítés). A portot + alkotó állományok tartalmazzák az + összes olyan szükséges információt, + amelyek átengedik ezt a feladatot a rendszernek. Kiadunk + néhány egyszerû parancsot és az + alkalmazás magától letöltõdik, + kitömörítõdik, módosítja a + forráskódját, lefordul és + települ. + + Valójában a portrendszer + használható olyan csomagok + létrehozására is, amelyeket + késõbb a pkg_add és + többi hozzá hasonló, hamarosan + részletesebben is bemutatandó csomagkezelõ + paranccsal is kezelni tudunk. + + A csomagok és a portok egyaránt képesek + függõségeket kezelni. + Tegyük fel, hogy egy olyan alkalmazást akarunk + telepíteni, amely egy adott + függvénykönyvtár + meglététõl függ a rendszeren. Az + alkalmazás és a könyvtár is + elérhetõ &os; portként és + csomagként. Akár a pkg_add + parancsot, akár a portrendszert használjuk az + alkalmazás hozzáadására, mind a + kettõ észre fogja venni, hogy a szükséges + könyvtárt még nem telepítettük, + ezért elõször azt fogja automatikusan + telepíteni. + + Tudván, hogy a két említett + megoldás szinte teljesen egyenértékû, + felmerülhet a kérdés: a &os; mégis + miért rendelkezik mindkettõvel? A csomagoknak + és a portoknak is megvannak a maguk elõnyei, és + hogy a kettõ közül melyiket használjuk, csak + az egyéni ízlésünkön + múlik. + + + A csomagok használatának elõnyei + + + Egy csomag általában kisebb, mint az + alkalmazás forráskódját + tartalmazó tömörített tar + állomány. + + + + A csomagokat nem kell fordítani. Nagyobb + alkalmazások, mint például a + Mozilla, + KDE vagy + GNOME esetén ez + kulcsfontosságú lehet, fõleg abban az + esetben, ha a rendszerünk ehhez nem eléggé + gyors. + + + + A csomagok használata nem várja el + tõlünk, hogy behatóbban ismerjük + miként is kell &os;-n szoftvereket + lefordítani. + + + + + A portok használatának elõnyei + + + A csomagokat általános esetben igen + óvatos beállításokkal + készítik el, hiszen a lehetõ legtöbb + rendszeren mûködõképesnek kell + lenniük. Ha viszont portból + telepítünk, nyugodtan hangolhatjuk úgy a + beállításokat, hogy + (például) a &pentium; 4 vagy az Athlon + processzoroknak kedvezõ kódot hozzanak + létre. + + + + Bizonyos alkalmazások fordítás + idején állítandó + beállításokkal rendelkeznek arról, + hogy mire lesznek képesek és mire nem. + Például az Apache + beépített konfigurációs + opciók széles kelléktárával + rendelkezik. Amikor viszont portból hozzuk + létre, nem kell elfogadnunk ezek alapértelmezett + értékeit, hanem a saját + igényeinknek megfelelõen + átállíthatjuk ezeket. + + Egyes esetekben több különféle + beállítást tükrözõ csomag + is létezhet ugyanahhoz az alkalmazáshoz. + Például a Ghostscript + elérhetõ ghostscript + és ghostscript-nox11 + csomagként is attól függõen, hogy + telepítettük-e az X11 szervert. Ez + természetesen egy meglehetõsen durva + kijátszása a csomagrendszernek, és + gyorsan lehetetlenné is válik a + használata, ha az adott alkalmazás + egy-két fordítási idejû + beállításnál többel + rendelkezik. + + + + Néhány szoftver licencelése tiltja a + bináris terjesztést. Ezért ezek a + szoftverek kizárólag csak + forráskód formájában + továbbíthatóak. + + + + Néhányan nem bíznak meg a + bináris verziókban. Ha látjuk a + forráskódot is, akkor (elméletben) + át tudjuk nézni, és mi magunk is + megkereshetjük a benne lappangó + hibákat. + + + + Ha vannak saját javításaink, csak a + forráskód birtokában tudjuk ezeket + felhasználni. + + + + Sokan szeretik, ha egyszerûen csak ott + van a szoftverek forráskódja. Ha + éppen unatkoznak, beléjük tudnak + nézni, ötleteket és kódot tudnak + belõlük meríteni (persze csak akkor, ha ezt a + licenc megengedi), vagy tovább tudják ezeket + fejleszteni, orvosolni tudják a hibáikat + stb. + + + + A portok frissítésérõl a &a.ports; + és a &a.ports-bugs; valamelyikérõl + szerezhetünk naprakész + információkat. + + + Mielõtt bármelyik alkalmazást is + telepítenénk, érdemes meglátogatnunk + az oldalt, ahol a + hozzátartozó ismert biztonsági + problémákról olvashatunk. + + Telepíthetjük a ports-mgmt/portaudit programot is, + amely automatikusan ellenõrzi a telepített + alkalmazások ismert sebezhetõségeit. Ez az + ellenõrzés egyébként megejthetõ + minden port lefordítása elõtt is. Ezalatt a + portaudit -F -a parancs + kiadásával ellenõrizhetjük utólag + a telepített csomagokat. + + + A fejezet fennmaradó részében + megmutatjuk, hogyan használjuk &os;-ben a csomagokat + és portokat külsõ alkalmazások + telepítésére és + karbantartására. + + + + + A számunkra szükséges alkalmazások + felkutatása + + Mielõtt telepítenénk bármilyen + alkalmazást, tudnunk kell, hogyan is nevezik. + + A &os;-hez elérhetõ alkalmazások + listája folyamatosan növekszik. Szerencsére + számos módja van annak, hogy + utánajárjunk a keresett szoftvernek: + + + + A &os; honlapján találhatunk egy + rendszeresen frissülõ listát az összes + elérhetõ alkalmazásról, a http://www.FreeBSD.org/ports/ + címen. Itt a portok különbözõ + kategóriákba sorolva találhatóak + meg, ahol név szerint megkereshetjük az + alkalmazást (amennyiben ismerjük), vagy + végigböngészhetjük az adott + kategóriában elérhetõ + alkalmazásokat is. + + + FreshPorts + + + Dan Langlille a címen + karbantartja a FreshPorts nevû oldalt. Ezen az oldalon + folyamatosan nyomon lehet követni a + Portgyûjteményben megtalálható + alkalmazások változásait, + lehetõvé téve, hogy egy vagy több + portot is figyeljünk, vagy e-mailt + küldjünk a + frissítésükrõl. + + + FreshMeat + + + Amennyiben nem ismerjük a keresett alkalmazás + nevét, próbáljuk meg felkutatni a + FreshMeaten () + vagy hozzá hasonló oldalakon, majd + nézzük a &os; honlapján, hogy az adott + alkalmazást portolták-e már a + rendszerre. + + + + Ha pontosan ismerjük a port nevét, és + csak a kategóriáját kellene + megkeresnünk, használjuk a &man.whereis.1; + parancsot. Egyszerûen csak adjuk ki a whereis + név parancsot, + ahol az név a + telepítendõ program neve. Ha sikerült + megtalálni, részletes információt + kapunk arról, hogy hol található, + valahogy így: + + &prompt.root; whereis lsof +lsof: /usr/ports/sysutils/lsof + + A fenti példában megtudhatjuk, hogy az + lsof parancs a + /usr/ports/sysutils/lsof + könyvtárban található. + + + + Vagy egy egyszerû &man.echo.1; paranccsal is + megkereshetjük a portfában a portokat. Mint + például: + + &prompt.root; echo /usr/ports/*/*lsof* +/usr/ports/sysutils/lsof + + Ez a módszer a /usr/ports/distfiles + könyvtárba letöltött összes + illeszkedõ állományt is + kilistázza. + + + + Egy másik lehetõség egy adott port + megtalálására, ha a + Portgyûjtemény beépített + keresési mechanizmusát használjuk. Ennek + használatához a /usr/ports + könyvtárban kell lennünk. Miután + beléptünk ide, futtassuk le a make + search + name=programnév + parancsot, ahol a programnév + a keresendõ program neve. Például, ha az + lsof programot keressük: + + &prompt.root; cd /usr/ports +&prompt.root; make search name=lsof +Port: lsof-4.56.4 +Path: /usr/ports/sysutils/lsof +Info: Lists information about open files (similar to fstat(1)) +Maint: obrien@FreeBSD.org +Index: sysutils +B-deps: +R-deps: + + A keresés eredményében + leginkább a Path: kezdetû sorra kell + odafigyelnünk, mivel ez árulja el, hol is + találhatjuk meg a portot. Az itt szereplõ + többi információ nem szükséges + a port telepítéséhez, ezért + azokkal itt most nem foglalkozunk. + + Mélyebb keresésekhez használhatjuk a + make search + key=szöveg parancsot + is, ahol a szöveg a + keresendõ szöveg(részlet) lesz. Ezt a + rendszer keresni fogja a portok neveiben, + megjegyzésekben, leírásokban és + függõségekben. Amikor nem ismerjük a + keresett program nevét, ez olyan portok + keresésére alkalmas, amelyek egy adott + témához kapcsolódnak. + + A fenti esetek mindegyikében a keresés nem + különbözteti meg a kis- és + nagybetûket. Tehát a LSOF + keresése ugyanazt az eredményt adja, mint az + lsof esetén. + + + + + + + + + + Chern + Lee + Írta: + + + + + A csomagrendszer használata + + + Csomagok telepítése + + + csomagok + telepítése + + + pkg_add + + A &man.pkg.add.1; segédprogram + segítségével telepíthetünk + &os;-hez készült szoftvercsomagokat lokálisan + vagy a hálózaton levõ egyik szerveren + megtalálható + állományokból: + + + Csomagok letöltése manuálisan + és telepítése lokálisan + + &prompt.root; ftp -a ftp2.FreeBSD.org +Connected to ftp2.FreeBSD.org. +220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. +331 Guest login ok, send your email address as password. +230- +230- This machine is in Vienna, VA, USA, hosted by Verio. +230- Questions? E-mail freebsd@vienna.verio.net. +230- +230- +230 Guest login ok, access restrictions apply. +Remote system type is UNIX. +Using binary mode to transfer files. +ftp> cd /pub/FreeBSD/ports/packages/sysutils/ +250 CWD command successful. +ftp> get lsof-4.56.4.tgz +local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz +200 PORT command successful. +150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). +100% |**************************************************| 92375 00:00 ETA +226 Transfer complete. +92375 bytes received in 5.60 seconds (16.11 KB/s) +ftp> exit +&prompt.root; pkg_add lsof-4.56.4.tgz + + + Ha nincsenek egyáltalán helyben csomagjaink + (például egy &os; CD-készletben), akkor a + legjobban úgy járunk, ha a használjuk a + &man.pkg.add.1; kapcsolóját. + Ennek hatására a segédprogram + önmagától meghatározza a + szükséges állományformátumot + és verziót, majd FTP-n keresztül letölti + és telepíti a csomagot. + + pkg_add + + &prompt.root; pkg_add -r lsof + + Az iménti példában a program + mindenféle további beavatkozás + nélkül letölti a megfelelõ csomagot + és felteszi. Ha a központi helyett egy másik + szervert szeretnénk használni, felül kell + bírálnunk az alapértelmezett + beállításokat és igényeinknek + megfelelõen be kell állítanunk a + PACKAGESITE környezeti változó + értékét. A &man.pkg.add.1; a &man.fetch.3; + programot használja az állományok + letöltésére, amely pedig számos + egyéb környezeti változót is figyel, + mint például az FTP_PASSIVE_MODE, + az FTP_PROXY és az + FTP_PASSWORD. Ha tûzfal mögött + vagyunk, ezek közül néhányat biztosan be + kell majd állítanunk, vagy FTP/HTTP proxyt kell + használnunk. A &man.fetch.3; man oldalán + megtaláljuk ezen változók teljes + felsorolását. Figyeljük meg, hogy az + lsof-4.56.4 helyett csak + lsof-ot adtunk meg. Amikor ugyanis + kérjük a csomag letöltését is, + nem szabad verziószámot megadnunk. A + &man.pkg.add.1; mindig az alkalmazás legfrissebb + verzióját fogja letöltetni. + + + Ha a &os.current; vagy &os.stable; verziókat + használjuk, a &man.pkg.add.1; mindig az + alkalmazás elérhetõ legfrissebb + verzióját fogja letölteni. Ha azonban + valamelyik -RELEASE verziót használjuk, a + csomagnak az adott kiadáshoz készült + verzióját fogja leszedni. Ezt a + mûködési módot a + PACKAGESITE változó + felülírásával viszont meg tudjuk + változtatni. Például ha a + &os; 5.4-RELEASE változatával dolgozunk, a + &man.pkg.add.1; alapértelmezés szerint a + ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ + címrõl fogja letölteni a csomagokat. Ha mi + viszont a &os; 5-STABLE csomagok + letöltését akarjuk elérni, + állítsuk az PACKAGESITE + értékét a + ftp://ftp.freebsd.org/pub/FreeBSD/i386/packages-5-stable/Latest/ + címre. + + + A csomagok .tgz és + .tbz formátumokban kerülnek + terjesztésre. Ezek az + címen, vagy pedig a &os; CD-ken találhatóak + meg. A 4 CD-bõl álló készlet (illetve + a PowerPak stb.) minden CD-jén találhatunk + csomagokat a packages/ + könyvtárban. A csomagokat tároló + könyvtár struktúrája hasonló a + /usr/ports könyvtárban + kialakított könyvtárfához. Minden + kategóriának saját könyvtára + van, és minden csomag megtalálható az + All (összes) + kategóriában. + + A csomagrendszer könyvtárszerkezete tehát + megegyezik a portok szétosztásával, + ezáltal így képesek egymással + összedolgozni a teljes csomag/port rendszer + megformálásában. + + + + + A csomagok kezelése + + + csomagok + kezelés + + + A &man.pkg.info.1; egy olyan segédprogram, amellyel + készíteni lehet egy listát a + telepített csomagokról, és emellett + még más egyéb információkat + tudhatunk meg róluk. + + pkg_info + + &prompt.root; pkg_info +cvsup-16.1 A general network file distribution system optimized for CV +docbook-1.2 Meta-port for the different versions of the DocBook DTD +... + + A &man.pkg.version.1; összefoglalja az összes + telepített csomag verzióját. + Ezenkívül össze is hasonlítja a csomagok + verzióját a portfában + található aktuális + verziókéval. + + pkg_version + + &prompt.root; pkg_version +cvsup = +docbook = +... + + A második oszlopban látható jelek + utalnak a telepített verzió a helyi + portfában található + verzióéhoz viszonyított + korára. + + + + + + Jel + Jelentés + + + + + = + A telepített csomag verziója megegyzik + a helyi portfában található + verziójával. + + + < + A telepített verzió a portfában + levõnél régebbi. + + + > + A telepített verzió újabb, mint + a portfában található. (A helyi + portfa valószínûleg nem lett + frissítve.) + + + ? + A telepített csomag nem + található a portok között. (Ez + akkor történhet meg, amikor + például egy portot + eltávolítottak a + Portgyûjteménybõl vagy + átnevezték.) + + + * + A csomagnak több verziója is jelen + van. + + + ! + A telepített csomag szerepel az indexben, de a + pkg_version valamiért nem volt + képes összehasonlítani a + verziószámát az indexben levõ + bejegyzéssel. + + + + + + + + Csomagok törlése + + pkg_delete + + csomagok + törlés + + + Egy korábban már telepített csomag + eltávolításához használjuk a + &man.pkg.delete.1; segédprogramot. + + &prompt.root; pkg_delete xchat-1.7.1 + + A &man.pkg.delete.1; használatánál + szükség van a csomag teljes nevének és + verziószámának megadására. A + fenti parancs tehát nem mûködik, ha csak az + xchat-et adjuk meg az + xchat-1.7.1 helyett. A + telepített csomag verzióját azonban + könnyedén kitalálhatjuk a &man.pkg.version.1; + alkalmazásával. Esetleg egyszerûen + dzsókerkaraktereket is használhatunk: + + &prompt.root; pkg_delete xchat\* + + Ebben az esetben az összes xchat-tel + kezdõdõ csomagot letörli. + + + + + Egyebek + + A csomagokra vonatkozó összes + információ a /var/db/pkg + könyvtárban található. Az egyes + csomagok leírása és hozzájuk + telepített állományok listája az + ezen a könyvtáron belül elhelyezkedõ + állományokban tárolódik. + + + + + + A Portgyûjtemény használata + + A most következõ szakaszokban megismerhetjük + azokat az alapvetõ utasításokat, amelyekkel a + Portgyûjteményen keresztül tudunk programokat + telepíteni és eltávolítani. Az ehhez + használható make targetek + és környezeti változók + részletesebb leírását a &man.ports.7; + man oldalán lelhetjük meg. + + + A Portgyûjtemény beszerzése + + Mielõtt bármelyik portot is tudnánk + telepíteni, elsõként magát a + Portgyûjteményt kell megszereznünk — ez + lényegében a /usr/ports + könyvtárban megtalálható + Makefile állományok, + javítások és leírások + gyûjteménye. + + A &os; telepítése közben a + sysinstall rákérdez a + Portgyûjtemény telepítésére is. + Ha erre nemet válaszoltunk volna, a portok + gyûjteményét az alábbi módokon + szerezhetjük be: + + + A CVSup használatával + + A CVSup protokoll + használatával viszonylag gyorsan el tudjuk + érni és naprakészen tudjuk tartani a + Portgyûjtemény egy példányát. + A CVSup használatát + alaposabban a A CVSup + használata címû + függelékben ismerhetjük meg. + + + A &os; 6.2 változatától kezdve az + alaprendszerben a CVSup + protokollt a csup + valósítja meg. A &os; korábbi + változatának használói ezt a + programot a net/csup + porton vagy csomagon keresztül tudják + telepíteni. + + + Gondoskodjunk róla, hogy a /usr/ports üres legyen a + csup elsõ futtatása + elõtt! Ha más forrásból raktuk ide + a Portgyûjteményt, a + csup nem fogja lenyesegetni az + azóta eltávolított + javításokat. + + + Futtassuk a csup programot: + + &prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile + + Itt írjuk át a + cvsup.FreeBSD.org + címét a hozzánk legközelebb + levõ CVSup szerver + címére. Az összes elérhetõ + tükörszerver címét a CVSup + tükrözések () címû részben + olvashatjuk. + + + Ha például el akarjuk kerülni a + CVSup szerver + megadását a parancssorban, akkor + mindenképpen a ports-supfile + állományból érdemes + készíteni egy saját + verziót. + + + + Ebben az esetben root + felhasználóként másoljuk a + /usr/share/examples/cvsup/ports-supfile + állományt egy új helyre, + például a /root + könyvtárba vagy a saját + felhasználói + könyvtárunkba. + + + + Szerkesszük át a + ports-supfile + állományt. + + + + Írjuk át a + CHANGE_THIS.FreeBSD.org + értéket a hozzánk + legközelebb található + CVSup szerverére. A + CVSup + tükrözések () címû + részben megtaláljuk az összes ilyen + tükörszervert. + + + + És most indítsuk el a + csup parancsot az alábbi + módon: + + &prompt.root; csup -L 2 /root/ports-supfile + + + + + + + A &man.csup.1; parancs késõbbi futása + során már letölti és + érvényesíti az észlelt + változtatásokat a saját + Portgyûjteményünkben, de a + telepített portokat viszont nem fogja + újrafordítani. + + + + + A Portsnap használatával + + A Portsnap egy másik + módszert képvisel a Portgyûjtemény + terjesztésére. Elõször a + &os; 6.0-ás verziójában jelent meg. + A régebbi rendszereken a ports-mgmt/portsnap csomag + telepítésével válik + elérhetõvé: + + &prompt.root; pkg_add -r portsnap + + A Portsnap + lehetõségeinek részletesebb + megismeréséhez tekintsük át A Portsnap használata + címû szakaszt. + + + Mivel a &os; 6.1-RELEASE és az utána + következõ verziók már alapból + tartalmazzák a Portsnap + portot vagy csomagot, nyugodtan kihagyhatjuk a most + következõ lépést. A /usr/ports könyvtár + magától létrejön a + &man.portsnap.8; parancs elsõ futtatása + során. A Portsnap + korábbi verziói esetén viszont, ha nem + létezett, elõzetesen készíteni + kellett egy + könyvtárat: + + &prompt.root; mkdir /usr/ports + + + + Töltsük le a Portgyûjtemény + tömörített pillanatképét a + /var/db/portsnap + könyvtárba. Ha akarjuk, ezután a + lépés után már + lekapcsolódhatunk az internetrõl. + + &prompt.root; portsnap fetch + + + + Ha még csak elõször futtatjuk a + Portsnapet, bontsuk ki az + imént letöltött állapotot a + /usr/ports + könyvtárba: + + &prompt.root; portsnap extract + + Ha viszont már korábban is létezett + a /usr/ports + könyvtárunk és most csak + frissítjük, akkor helyette ezt a parancsot adjuk + ki: + + &prompt.root; portsnap update + + + + + A <application>sysinstall</application> + használatával + + Ebben az esetben a sysinstall + nevû programmal telepítjük a + Portgyûjteményt valamilyen + telepítõeszközrõl. Ilyenkor azonban a + kiadás dátumának megfelelõ, + valószínûlég régebbi + változat kerül fel. Ha rendelkezünk + internet-hozzáféréssel, akkor + inkább az elõbb tárgyalt módszerek + valamelyikét alkalmazzuk. + + + root + felhasználóként adjuk ki a + sysinstall (vagy a &os; 5.2 elõtti + verzióban a /stand/sysinstall) + parancsot, ahogy itt is láthatjuk: + + &prompt.root; sysinstall + + + + Menjünk le és álljunk meg a + Configure + (Beállítások), menüpontnál, + és nyomjunk Enter + billentyût. + + + + Menjünk le és keressük meg a + Distributions + (Terjesztések) menüponot, majd nyomjunk meg az + Enter billentyût. + + + + Menjünk le, válasszuk ki a + ports elemet a + Szóköz + megnyomásával. + + + + Menjünk fel az Exit + (Kilépés) ponthoz, nyomjunk meg az + Enter billentyût. + + + + Válasszuk ki a telepítéshez + használni kívánt eszközt, mint + például CD, FTP stb. + + + + Menjünk fel az Exit + (Kilépés) menüpontig, majd nyomjunk meg + az Enter billentyût. + + + + Végezetül lépjünk ki a + sysinstall programból, + aminhez nyomjunk meg az X + billentyût. + + + + + + Portok telepítése + + + portok + telepítés + + + A váz fogalma az elsõ, amit a + Portgyûjteménnyel kapcsolatban tisztázni + kell. Dióhéjban összefoglalva, egy port + váza azon állományok legszûkebb + halmaza, amelyek elárulják a &os; + számára, hogyan fordítsuk le hibamentesen + és hogyan telepítsük az adott programot. + Ehhez minden port vázában + megtalálható: + + + + Egy Makefile nevû + állomány. Ez tartalmazza azokat a + különbözõ utasításokat, + amelyek megmondják, hogyan kell lefordítani + és hova kell telepíteni a rendszerünkben + az adott alkalmazást. + + + + Egy distinfo nevû + állomány. Ebben található + információ a port + lefordításához szükséges + állományok + letöltésérõl, valamint a + letöltött állományok + ellenõrzéséhez szükséges (az + &man.md5.1; és &man.sha256.1; programokkal + számolt) ellenõrzõösszegek. + + + + Egy files alkönyvtár. + Itt találhatjuk meg azokat a + javításokat, amelyek + alkalmazásával le tudjuk fordítani a + programot &os;-n is. Ezek a javítások + többnyire bizonyos állományok + módosításaira vonatkozó + apró állományok + formájában jelennek meg. + Természetüknél fogva szöveges + formátumúak, és általában + olyanok szerepelnek bennük, hogy + Töröld a 10. sort vagy + Változtasd meg a 26. sort erre: .... + Ezeket a javításokat eredetileg patcheknek + (foltoknak) nevezik, vagy másképp diffeknek + (eltéréseknek) is, mivel a &man.diff.1; + program segítségével hozzák + ezeket létre. + + Ez a könyvtár tartalmazhat további + állományokat is portok + elkészítéséhez. + + + + Egy pkg-descr nevû + állomány. Ez a program részletesebb, + gyakran többsoros bemutatása. + + + + Egy pkg-plist nevû + állomány. Itt találjuk meg a port + által telepítendõ összes + állományt. Ez egyben közli a + portrendszerrel is, hogy az eltávolítás + során mely állományokat kell majd + törölnie. + + + + Egyes portokban szereplhetnek még egyéb + állományok is, mint például a + pkg-message. Ezeket az + állományokat a portrendszer különleges + helyzetek kezelésére tartogatja. Ha még + többet kívánunk megtudni ezekrõl az + állományokról, vagy magukról a + portokról általánosságban, lapozzuk + fel a &os; + porterek kézikönyvét. + + A port ugyan tartalmazza a forráskód + lefordításához szükséges + utasításokat, de konkrétan a + forráskódot viszont nem. Ezt egy CD-rõl vagy + az internetrõl tudjuk megszerezni. A + forráskód általában a szerzõje + által kedvelt formában jelenik meg: ez gyakran egy + gzip-pel tömörített tar állomány, + de lehet tömörítve mással is, vagy + éppen lehet tömörítetlen. A program + forráskódját, legyen akármilyen + formában is, nevezik distfile-nak + (terjesztési állománynak). A &os; portok + telepítésének két + módszerét tárjuk fel a + következõkben. + + + A portok telepítéséhez + root felhasználóként + kell bejelentkeznünk. + + + + Mielõtt telepítenénk bármelyik + portot is, ajánlott frissíteni a + Portgyûjteményünket és + ellenõriznünk az adott portot a címen + található biztonsági + adatbázisban. + + Az újonnan telepítendõ + alkalmazások biztonsági + sebezhetõségeinek ellenõrzését + automatikussá is tehetjük a + portaudit + használatával. Ez a segédeszköz is + a Portgyûjteményben található + (ports-mgmt/portaudit). + Érdemes minden port telepítése elõtt + letöltenünk a legfrissebb sebezhetõségi + adatbázist a portaudit -F parancs + kiadásával. Mellesleg az adatbázis + rendszeres frissítése és ez a + biztonsági felülvizsgálat a + naponként elvégzendõ biztonsági + ellenõrzések közt is megjelenik. + Ezekrõl részletesebben a &man.portaudit.1; + és &man.periodic.8; man oldalakon olvashatunk. + + + A Portgyûjtemény feltételezi, hogy + mûködõ + internet-hozzáféréssel rendelkezünk. + Amennyiben ez nem így lenne, a terjesztési + állományokat, forráskódokat + saját magunknak kell bemásolnunk a + /usr/ports/distfiles + könyvtárba. + + A kezdéshez lépjünk be a + telepítendõ port + könyvtárába: + + &prompt.root; cd /usr/ports/sysutils/lsof + + Miután beléptünk az + lsof könyvtárába, + láthatjuk a port vázát. A + következõ lépés a fordítás + avagy a port buildelése + (elkészítése). Ezt egy szimpla + make parancs kiadásával + kezdeményezhetjük. Miután megtettük, + valami ilyesmit kell tapasztalnunk: + + &prompt.root; make +>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. +===> Extracting for lsof-4.57 +... +[ide jön a kitömörítés kimenete] +... +>> Checksum OK for lsof_4.57D.freebsd.tar.gz. +===> Patching for lsof-4.57 +===> Applying FreeBSD patches for lsof-4.57 +===> Configuring for lsof-4.57 +... +[ide jön a configure szkript kimenete] +... +===> Building for lsof-4.57 +... +[ide jön a fordítás kimenete] +... +&prompt.root; + + A fordítás befejeztével visszakapjunk a + parancssort. A soron következõ lépés a + port telepítése lesz. Ehhez mindössze + egyetlen szóval kell kiegészítenünk a + make parancs meghívását: + ez a szó pedig az install + (telepít) lesz. + + &prompt.root; make install +===> Installing for lsof-4.57 +... +[a telepítés kimenete kimarad] +... +===> Generating temporary packing list +===> Compressing manual pages for lsof-4.57 +===> Registering installation for lsof-4.57 +===> SECURITY NOTE: + This port has installed the following binaries which execute with + increased privileges. +&prompt.root; + + Miután ismét visszakaptuk a parancssort, + már futtatni is tudjuk a frissen telepített + alkalmazásunkat. Mivel az lsof + programnak tovább jogosultságokra is + szüksége van, egy errõl szóló + biztonsági figyelmeztetést is láthatunk. A + portok létrehozása és + telepítése során érdemes + figyelnünk az ehhez hasonló + figyelmeztetésekre. + + A telepítés befejeztével nem árt + törölnünk a fordításhoz + felhasznált alkönyvtárat (work) is. Ezzel + nemcsak a drága lemezterületet spóroljuk meg, + hanem megelõzzük a port késõbbi + frissítése során felmerülõ + esetleges problémákat is. + + &prompt.root; make clean +===> Cleaning for lsof-4.57 +&prompt.root; + + + Az eljárásból két + lépést meg is tudunk takarítani, ha + egyszerûen csak a make install + clean parancsot adjuk ki az elõbb + három lépésben tagolt + make, make + install és + make clean + parancsok helyett. + + + + Bizonyos parancsértelmezõk a + PATH környezeti változóban + felsorolt könyvtárakban található + parancsokat gyorsítótárban + tárolják, ezzel felgyorsítva a + hozzájuk tartozó végrehajtható + állományok keresését. Ha + történetesen ilyen parancsértelmezõt + használnánk, az új portok + telepítése után + szükségünk lehet a rehash + parancs kiadására, mivel enélkül nem + tudjuk elérni a frissen telepített parancsokat. + Ezt a parancsot például a + tcsh és a hozzá + hasonló parancsértelmezõkben + találhatjuk meg, az sh és + rokonainál pedig a hash -r ennek a + megfelelõje. A pontos információkat + errõl a témáról a + parancsértelmezõnk + dokumentációjában lelhetjük + meg. + + + Némely külsõ DVD termék, mint + például a &os; Malltól + megrendelhetõ &os; Toolkit, tartalmazhatnak + terjesztési állományokat. Ezek + remekül használhatóak a + Portgyûjteménnyel. Ehhez csatlakoztatnunk kell a + DVD-t a /cdrom könyvtárba. + Ettõl eltérõ csatlakozási pontok + használata esetén ne felejtsük el + átállítani a CD_MOUNTPTS + változót sem a make + számára. Ekkor a fordításhoz + szükséges állományokat úgy + fogja kezelni a rendszer, mintha a merevlemezünkön + lennének. + + + Vigyázzunk arra, hogy néhány portot + nem lehet CD-n terjeszteni. Ez részben azért + lehet, mert a szükséges állományok + letöltéséhez, illetve újbóli + terjesztéséhez ki kell tölteni valamilyen + regisztrációs nyomtatványt, vagy pedig + egyéb okok miatt. Tehát ha olyan portot akarunk + telepíteni, ami nincs rajta a CD-n, mindenképpen + rendelkeznünk kell internetkapcsolattal. + + + A portrendszer a &man.fetch.1; segédprogramot + használja az állományok + letöltésére, amely figyelembevesz + különféle környezeti + változókat, ilyenek többek közt az + FTP_PASSIVE_MODE, FTP_PROXY + és az FTP_PASSWORD. Ha tûzfal + mögött vagyunk, szükségünk lehet ezek + némelyikének helyes + beállítására, vagy FTP/HTTP proxyt + kell használnunk. A &man.fetch.3; man oldala tartalmazza + ezen változók teljes + listáját. + + A make fetch + azon felhasználók számára + nyújt segítséget, akik nem csatlakoznak + minden esetben a hálózatra. Egyszerûen csak + futtassuk le a könyvtárszerkezet + legtetejérõl (/usr/ports) ezt a + parancsot és a szükséges + állományok letöltõdnek nekünk. A + parancs mûködik az alsóbb szinteken is, + például a /usr/ports/net + könyvtárban. Azonban legyünk tekintettel arra, + hogy ha egy port függ más portoktól vagy + függvénykönyvtáraktól, ez a + parancs nem fogja letölteni a + hozzájuk tartozó állományokat. + Ilyenkor a fetch helyett + használjuk a fetch-recursive + targetet. + + + Ha a make parancsot egy felsõbb + szinten futtatjuk, akkor ezzel létre tudjuk hozni az + összes vagy csak kategóriánként az + összes portot, hasonlóan az elõbb + említett make + fetch módszerhez. + Ez azonban veszélyes, mivel egyes portok + kizárják mások használatát. + Emellett elõfordulhat az is, hogy bizonyos portok + ugyanazon a néven telepítenek több, + tartalmukban különbözõ + állományt. + + + Nagyon ritkán adódhat, hogy a + felhasználónak nem a + MASTER_SITES által mutatott + helyekrõl kell beszereznie a szükséges + állományokat (innen töltõdnek ugyanis + le). A MASTER_SITES + beállítást az alábbi paranccsal + bírálhatjuk felül: + + &prompt.root; cd /usr/ports/könyvtár +&prompt.root; make MASTER_SITE_OVERRIDE= \ +ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch + + Ebben a példában a + MASTER_SITES értékét a + ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ + címre változtattuk meg. + + + A portok némelyike lehetõvé teszi + (esetleg meg is követeli), hogy engedélyezzük + vagy letiltsuk a készülõ program bizonyos + elemeit hatékonysági, biztonsági vagy + egyéb testreszabási irányelvek + mentén. Ilyen többek közt a www/mozilla, a security/gpgme és a mail/sylpheed-claws. Ha + elérhetõek ilyen beállítási + lehetõségek, arról a rendszer egy + üzenetben tájékoztat minket. + + + + Az alapértelmezett könyvtárak + felülbírálása + + Néha hasznos (vagy kötelezõ) lehet + eltérõ munka- és + célkönyvtárak alkalmazása. A + WRKDIRPREFIX és a + PREFIX változókkal ezek + alapértelmezéseit tudjuk megváltoztatni. + Például a + + &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install + + parancs a portot a + /usr/home/example/ports + könyvtárban fogja lefordítani és az + eredményét a /usr/local + könyvtárba telepíti. A + + &prompt.root; make PREFIX=/usr/home/example/local install + + parancs hatására a port a + /usr/ports könyvtárban + készül el és a + /usr/home/example/local + könyvtárba települ. + + Természetesen a + + &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install + + parancs ötvözi az elõbbi kettõt + (amelyet most túlságosan is hosszú lenne + kiírni, de vélhetõen sejthetõ + belõle az alapötlet). + + Lehetõség van ezen változókat a + saját környezetünkben is + beállítani. Ha erre lenne + szükségünk, nézzünk utána + az ezzel kapcsolatos teendõnek a + parancsértelmezõnk man oldalán. + + + + + Az <command>imake</command> + használatáról + + Bizonyos portok az (X Window System + részeként megjelenõ) + imake segédprogramra + támaszkodnak, ahol viszont nem mûködik a + PREFIX + átállítása és + mindenképpen a /usr/X11R6 + könyvtárba akar telepíteni. Ehhez + hasonlóan egyes Perl portok figyelmen kívül + hagyják a PREFIX + változót és közvetlenül a Perl + fájába kerülnek. Az ilyen portok + esetén nagyon nehéz vagy szinte lehetetlen + betartatni a PREFIX + használatát. + + + + + A portok újrakonfigurálása + + Egyes portok lefordítása elõtt + megjelenik egy ncurses alapú menü, ahol ki tudunk + választani bizonyos fordítási + beállításokat. Gyakran elõfordul, + hogy a port lefordítása után a + felhasználók szeretnék újra + elõhozni ezt a menüt és megadni vagy kivenni + bizonyos beállításokat. Erre több + mód is kínálkozik. Egyik ilyen + lehetõség az, ha belépünk a port + könyvtárába és kiadjuk a + make config + parancsot, amivel lényegében ismét + elõcsaljuk a beállításokat + összefoglaló menüt. Másik ilyen + lehetõség a make + showconfig + alkalmazása, amivel a porthoz tartozó + összes beállítást tudjuk egyszerre + megjeleníteni. Ezek mellett még + használható a make + rmconfig parancs is, amivel + törölni tudjuk az összes eddigi + beállítást és így + újrakezdhetjük a port + konfigurációját. Ezek és a + többi ilyen opció a &man.ports.7; man oldalon + kerül bõvebb kifejtésre. + + + + + + A portok eltávolítása + + + portok + eltávolítás + + + Most már tudjuk, miként lehet portokat + telepíteni, azonban valószínûleg + még az is érdekelhet minket, hogy miként + kell ezeket eltávolítani abban az esetben, ha + például késõbb meggondolnánk + magunkat velük kapcsolatban. A korábban + telepített példaportot fogjuk + eltávolítani (a figyelmetlenek + kedvéért megemlítjük, hogy ez az + lsof volt). A portok + eltávolítása teljesen egybevág a + csomagokéval (errõl a csomagokról szóló + részben beszéltünk), mivel ekkor is + használhatjuk a &man.pkg.delete.1; parancsot: + + &prompt.root; pkg_delete lsof-4.57 + + + + + A portok frissítése + + + portok + frissítés + + + Elõször is a &man.pkg.version.1; parancs + felhasználásával listázzuk ki azokat + a portokat, amik felett már eljárt az idõ + és a Portgyûjteményben + található belõlük újabb + verzió: + + &prompt.root; pkg_version -v + + + A <filename>/usr/ports/UPDATING</filename> + állomány + + Miután frissítettük a + Portgyûjteményünket, de még + mielõtt megpróbálnánk + akármelyik portot is frissíteni, érdemes + egy pillantást vetnünk a + /usr/ports/UPDATING + állományra. Itt megtalálhatóak + azok a problémák és a hozzájuk + tartozó lépések, amelyekkel a + felhasználóknak a portok + frissítése során szembe kell + nézniük, beleértve az + állományformátumok, a + konfigurációs állományok + helyének megváltozását vagy + egyéb olyan módosításokat, amik a + korábbi verziókkal + összeférhetetlenséget + szülhetnek. + + Amennyiben az UPDATING + állomány tartalma ellentmondana az itt + olvasottakkal, mindig az UPDATING + állományban leírtak az + irányadóak. + + + + + Portok frissítése a + <application>portupgrade</application> + használatával + + portupgrade + + A portupgrade nevû + segédprogramot a portok egyszerûbb + frissítésére találták ki, + és a ports-mgmt/portupgrade portban + található meg. A make + install clean paranccsal + bármelyik más porthoz hasonlóan + telepíthetjük: + + &prompt.root; cd /usr/ports/ports-mgmt/portupgrade +&prompt.root; make install clean + + A pkgdb -F paranccsal + fésültessük át a telepített + portok listáját, és javítsuk az + általa jelentett ellentmondásokat. + Érdemes rendszeresen elvégezni ezt, + lehetõleg minden frissítés + elõtt. + + Miután kiadtuk a portupgrade -a + parancsot, a portupgrade + nekilát frissíteni az összes elavult portot + a rendszerünkben. Ha minden egyes + frissítést külön meg szeretnénk + erõsíteni, használjuk a + kapcsolót is. + + &prompt.root; portupgrade -ai + + Ha nem akarjuk az összes portot frissíteni, + csupán egy bizonyos alkalmazásét, + használjuk a portupgrade + pkgname + paraméterezést. A + kapcsoló megadásával a + portupgrade elõször + frissíti az adott alkalmazás + függõségeit. + + &prompt.root; portupgrade -R firefox + + Ha a mûvelet során csomagokat + kívánunk használni portok helyett, adjuk + meg a kapcsolót. Ennek + révén a portupgrade + megkeresi a csomagokat a PKG_PATH + környezeti változóban felsorolt + könyvtárakban vagy ha itt nem találja, + letölti ezeket egy távoli szerverrõl. + Amennyiben a csomagokat sem helyben, sem pedig a távoli + szerveren nem találja, a + portupgrade helyettük portokat + fog használni. Ilyenkor a portok + használatát a + kapcsoló beállításával + lehet elkerülni: + + &prompt.root; portupgrade -PP gnome2 + + Csak a terjesztési állományok (vagy a + esetén csomagok) + letöltéséhez használjuk a + kapcsolót. Mindezekrõl + részletesebben a &man.portupgrade.1; man oldalon + olvashatunk. + + + + + Portok frisstse a <application>Portmanager</application> + használatával + + portmanager + + A Portmanager egy másik + hasznos segédprogram a portok könnyû + frissítéséhez. A ports-mgmt/portmanager porton + keresztül érhetõ el: + + &prompt.root; cd /usr/ports/ports-mgmt/portmanager +&prompt.root; make install clean + + Használatával az összes + telepített port egyetlen paranccsal + frissíthetõ: + + &prompt.root; portmanager -u + + Ha a Portmanager minden egyes + lépését külön meg + kívánjuk erõsíteni, akkor a + kapcsolókat se felejtsük el + megadni. A Portmanager emellett + új portok telepítésére is + használható. Eltérõen a + make install clean parancsban + megszokottaktól, a kiválasztott port összes + függõségét még a + fordítás és a telepítés + elõtt fogja frissíteni. + + &prompt.root; portmanager x11/gnome2 + + Ha bármilyen gondot tapasztalnánk a + kiválasztott port függõségeit + illetõen, a Portmanagert + felkérhetjük az összes + függõség helyes sorrendben + történõ + újrafordítására. Amikor + befejezte, a problémás portot is újra + létrehozza. + + &prompt.root; portmanager graphics/gimp -f + + Bõvebb információkért + lásd &man.portmanager.1;. + + + + + Portok frissítése a + <application>Portmaster</application> + használatával + + portmaster + + A Portmaster szintén a + portok frissítésére alkalmas + segédprogram. A Portmaster + esetében a hangsúly az + alaprendszerben is megtalálható + eszközök használatán van (tehát + nem függ semmilyen más porttól) és a + /var/db/pkg/ + könyvtárban található + információk alapján dönti el, hogy + milyen portokat kell frissítenie. A ports-mgmt/portmaster portból + érhetõ el: + + &prompt.root; cd /usr/ports/ports-mgmt/portmaster +&prompt.root; make install clean + + A Portmaster a portokat az + alábbi négy kategória + valamelyikébe sorolja be: + + + + Gyökér (root) portok (nem függenek + semmitõl, semmi sem függ tõlük) + + + Törzs (trunk) portok (nem függenek + semmitõl, de mások függenek + tõlük) + + + Ág (branch) portok (vannak + függõségeik és mások is + függenek tõlük) + + + Levél (leaf) portok (vannak + függõségeik, de semmi sem függ + tõlük) + + + + A következõ paranccsal le tudjuk kérni az + összes telepített portot és az + kapcsolóval + frissítéseket keresni hozzájuk: + +&prompt.root; portmaster -L +===>>> Root ports (No dependencies, not depended on) +===>>> ispell-3.2.06_18 +===>>> screen-4.0.3 + ===>>> New version available: screen-4.0.3_1 +===>>> tcpflow-0.21_1 +===>>> 7 root ports +... +===>>> Branch ports (Have dependencies, are depended on) +===>>> apache-2.2.3 + ===>>> New version available: apache-2.2.8 +... +===>>> Leaf ports (Have dependencies, not depended on) +===>>> automake-1.9.6_2 +===>>> bash-3.1.17 + ===>>> New version available: bash-3.2.33 +... +===>>> 32 leaf ports + +===>>> 137 total installed ports + ===>>> 83 have new versions available + + + Az összes telepített port egyetlen + egyszerû paranccsal frissíthetõ: + + &prompt.root; portmaster -a + + + A Portmaster + alapértelmezés szerint minden egyes + törlendõ korábbi portról + biztonsági másolatot készít. + Amikor az új változat telepítése + sikeresen lezajlott, akkor a + Portmaster ezt a másolatot + megsemmisíti. A + paraméterrel azonban megkérhetjük, hogy + ne törölje le a biztonsági mentést. + Az megadásával a + Portmaster interaktív + módban indul el, és minden port + frissítése elõtt a + felhasználó + megerõsítését fogja + kérni. + + + Amennyiben valamilyen hiba lép fel a + frissítés folyamán, az + opció megadásával + kérhetjük az összes port + frissítését és + újrafordítását is: + + &prompt.root; portmaster -af + + A Portmaster + használatával új portokat is fel tudunk + telepíteni a rendszerre úgy, hogy azok + függõségeit is igyekszik frissíteni a + lefordításuk elõtt: + + &prompt.root; portmaster shells/bash + + A további részleteket a &man.portmaster.8; + man oldalon találjuk. + + + + + + A portok tárigénye + + + portok + tárigény + + + A Portgyûjtemény idõvel egyre több + helyet fog elfoglalni a merevlemezünkön. + Miután sikeresen létrehoztunk és + telepítettünk egy szoftvert a + hozzátartozó portból, érdemes mindig + eltakarítanunk magunk után a work könyvtárban menet + közben keletkezett átmeneti + állományokat a make + clean parancs + használatával. Az egész + Portgyûjteményt egyetlen mozdulattal ezzel a + paranccsal tudjuk végigsepregetni: + + &prompt.root; portsclean -C + + Az idõ elõrehaladtával a distfiles könyvtárban + is rengeteg régi forrás tud felhalmazódni. + Ezeket eltávolíthatjuk kézzel, vagy az + alábbi parancs segítségével + törölhetjük az összes olyan + terjesztési állományt, amelyekre már + egyetlen port sem hivatkozik: + + &prompt.root; portsclean -D + + Vagy törölhetjük az összes olyan + terjesztési állományt, amelyre egyetlen + pillanatnyilag feltelepített port sem hivatkozik a + rendszerünkben: + + &prompt.root; portsclean -DD + + + A portsclean segédprogram a + portupgrade programcsomag + része. + + + Ne felejtsük el eltávolítani azokat a + portokat, amikre már nincs szükségünk a + továbbiakban. Ebben a feladatban egy jól + használható segédeszköz lehet a + segítségünkre, a ports-mgmt/pkg_cutleaves port. + + + + + + Telepítés utáni teendõk + + Az új alkalmazás feltelepítése + után minden bizonnyal szeretnénk elolvasni a + hozzá társított dokumentációt, + az egyedi beállításainknak megfelelõen + módosítani a konfigurációs + állományokat, engedélyezni a + rendszerindítás során + történõ automatikus + indítását (ha démonról lenne + szó) és így tovább. + + Az egyes alkalmazások + beállításához elvégzendõ + lépések nyilvánvalóan + egyedenként eltérõek. Azonban tudunk + szolgálni néhány általános + tanáccsal válaszként az ilyenkor + felmerülõ Na és akkor most mi + legyen? kérdésre: + + + + Kérdezzük meg a &man.pkg.info.1; + programtól, milyen állományok és + hova kerültek fel a telepítés során. + Például, ha a SzuperCsomag 1.0.0-át + raktunk fel, akkor a + + &prompt.root; pkg_info -L SzuperCsomag-1.0.0 | less + + parancs kilistázza az összes + állományt, amit a csomagból felraktunk. + Ezek közül leginkább a + man/ könyvtárban + levõekre figyeljünk, mivel ezek lesznek az + alkalmazás man oldalai. Ehhez hasonlóan a + etc/ könyvtárban a + konfigurációs állományok és + a doc/ könyvtárban pedig a + nagyobb lélegzetvételû + dokumentációk foglalnak helyet. + + Ha nem emlékszünk pontosan rá, hogy az + alkalmazások melyik verzióját is + telepítettük, a + + &prompt.root; pkg_info | grep -i SzuperCsomag + + alakú parancs megkeresi az összes olyan + csomagot, aminek a nevében szerepel a + SzuperCsomag + szövegrészlet. A fenti példában + természetesen igény szerint változtassuk + meg a SzuperCsomag szöveget a + tényleges csomag nevére. + + + + Ahogy sikerült megtalálnunk az + alkalmazáshoz tartozó man oldalakat, lapozzuk + fel ezeket a &man.man.1; segítségével. + Ugyanígy nézzük át a + mellékelt minta konfigurációs + állományokat és az összes + elérhetõ dokumentációt. + + + + Ha az alkalmazásnak van saját honlapja, + kutassunk ott is információk után, + olvassuk el a gyakran ismételt kérdéseket + és így tovább. Ha nem tudnánk + pontosan a honlap címét, a + + &prompt.root; pkg_info SzuperCsomag-1.0.0 + + kimenetébõl könnyen + elõkeríthetõ. Itt egy + WWW: kezdetû sort kell keresnünk + (már amennyiben létezik), amit az + alkalmazás honlapjának címe kell + kövessen. + + + + A rendszerrel együtt indítandó portok + (ilyenek többek közt az internetes + szolgáltatások), általában a + /usr/local/etc/rc.d + könyvtárba rakják a saját + indítószkriptjüket. Érdemes + leellenõrizni ezt a szkriptet és az + igényeinknek megfelelõen módosítani, + átnevezni. A Szolgáltatások + indítása címû szakaszban ezt + részleteiben is megismerhetjük. + + + + + + + Teendõ a sérült portokkal + + Ha véletlenül ráakadnánk egy olyan + portra, ami nem mûködik megfelelõen, + nagyjából a következõket tudjuk + tenni: + + + + Derítsük ki a Hibajelentések + adatbázisából, hogy + készül-e már javítás az adott + porthoz. Ha igen, akkor annak befejezése után + már képesek leszünk + használni. + + + + Kérjük meg a port + karbantartóját, hogy segítsen. A + karbantartó elérhetõségének + felderítéséhez gépeljük be a + make maintainer + parancsot, vagy keressük meg a + Makefile állományban a + karbantartó e-mail címét. Ne + felejtsük el neki megemlíteni a levélben a + port nevét és verzióját (vagyis + mindenképpen küldjük el a + $FreeBSD: sort a + Makefile + állományból) és a parancs + kiadásától a hiba + felbukkanásáig tartó kimenetet. + + + Némely portokat nem + egyedülálló személyek tartanak + karban, hanem egy + levelezési lista. A legtöbbjük + neve, ha nem is mindé, nagyjából + ilyen alakú: freebsd-listanév@FreeBSD.org. + Egy ilyen jellegû kérdés + megfogalmazása során ezt is vegyük + figyelembe! + + Kifejezetten a freebsd-ports@FreeBSD.org + karbantartóval rendelkezõ portoknak nincs + rendes gazdája. A hozzájuk + kapcsolódó javítások és + mindenféle segítség, ötlet + errõl a levelezési listáról + érkeznek. Ilyen esetekben számítunk + az önkéntes segítõkre! + + + Ha nem kapunk semmilyen választ, a hiba + bejelentésére használhatjuk a + &man.send-pr.1; programot is (errõl bõvebben + lásd a &os;-s + hibajelentések írása + címû cikket). + + + + Javítsuk meg mi magunk! A porterek + kézikönyve részletesen taglalja a + portok belsõ + felépítését, így onnan + elindulva akár magunktól is meg tudunk + javítani egy esetlegesen sérült portot, + vagy be is küldhetjük a sajátunkat! + + + + Töltsük le a porthoz tartozó csomagot a + hozzánk legközelebb levõ FTP oldalról. + A központi csomaggyûjtemény a + ftp.FreeBSD.org címen, a + packages + nevû könyvtárban + található, de mielõtt ide + fordulnánk, nézzük meg a hozzánk + legközelebb + levõ tükörszervert is! Ha egy csomagot + így telepítünk, akkor több + eséllyel fog mûködni és + ráadásul még jóval gyorsabb is. A + csomag telepítésére használjuk a + &man.pkg.add.1; programot. + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/Makefile b/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/Makefile new file mode 100644 index 0000000000..1a44fcbd0c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= ppp-and-slip/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml new file mode 100644 index 0000000000..e463865a74 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml @@ -0,0 +1,4212 @@ + + + + + + + + + Jim + Mock + Átdolgozta, átrendezte és + aktualizálta: + + + + + A PPP és a SLIP + + + Áttekintés + + PPP + SLIP + + A &os; számos módon képes + összekötni két + számítógépet. Ha + betárcsázós modemmel akarunk + hálózati vagy internetes kapcsolatot + felépíteni, esetleg azt szeretnénk, hogy + mások képesek legyenek minket ilyen módon + elérni, akkor ahhoz PPP-t, illetve SLIP-et kell + használnunk. Ebben a fejezetben a modemes + kommunikáció beállításait + mutatjuk be részletesebben. + + A fejezet elolvasása során + megismerjük: + + + + hogyan állítsunk be + felhasználói PPP-t; + + + hogyan állítsunk be rendszerszintû + PPP-t; + + + hogyan állítsunk be egy + PPPoE (PPP over Ethernet, vagyis PPP + Ethernet felett) kapcsolatot; + + + hogyan állítsunk be egy + PPPoA (PPP over ATM, vagyis PPP ATM + felett) kapcsolatot; + + + hogyan állítsunk be SLIP klienst és + szervert. + + + + + PPP + felhasználói PPP + + + PPP + rendszer PPP + + + PPP + Ethernet felett + + + A fejezet elolvasásához ajánlott: + + + + az alapvetõ hálózati + technológiák ismerete; + + + a betárcsázós kapcsolatok, a PPP + és/vagy SLIP alapjainak és céljainak + megértése. + + + + Talán érdekli a kedves olvasót, hogy mi + az alapvetõ különbség a + felhasználói és a rendszerszintû PPP + között. A válasz egyszerû: a + felhasználói PPP a beérkezõ és + kimenõ adatokat nem a rendszermagban, hanem a + felhasználói szinten dolgozza fel. Ez + költséges abból a szempontból, hogy + emiatt adatokat kell másolgatni a rendszer és a + felhasználói szint között, azonban egy + sokkal többet tudó PPP implementációnak + ad ezzel utat. A felhasználói PPP a + tun eszközön keresztül + kommunikál a külvilággal, miközben a + rendszermagban található PPP mindezt a + ppp eszközzel + valósítja meg. + + + A fejezetben a felhasználói PPP-t + egyszerûen csak ppp néven + fogjuk hivatkozni, hacsak nem lesz szükséges + különbséget tennünk közte és + más PPP szoftverek, mint például a + pppd között. Ha + mást nem mondunk, akkor a fejezetben ismertetett + összes parancsot root + felhasználóként kell kiadni. + + + + + + + + + Tom + Rhodes + Frissítette és javította: + + + + + + Brian + Somers + Eredetileg készítette: + + + + + Nik + Clayton + Segített még: + + + Dirk + Frömberg + + + Peter + Childs + + + + + A felhasználói PPP alkalmazása + + + A felhasználói PPP + + + Elõfeltételek + + A leírás feltételezi, hogy + rendelkezünk a következõkkel: + + + internet-szolgáltató + PPP + kapcsolat + + + Olyan internet-elõfizetés, ahol PPP-n + keresztül csatlakozunk + + + + Egy modem vagy más olyan + rendszerünkhöz csatlakozó eszköz, + amelyen keresztül el tudjuk érni az + internet-szolgáltatónkat + + + + Az internet-elõfizetés + betárcsázásához + szükséges telefonszámok + + + PAP + CHAP + UNIX + bejelentkezési + név + jelszó + + + A bejelentkezési nevünk és + jelszavunk. (Vagy a megszokott &unix;-os + felhasználói név és + jelszó páros, vagy egy PAP esetleg CHAP + bejelentkezési név és + jelszó.) + + + névszerver + + + Egy vagy több névszerver IP-címe. + Ehhez az internet-szolgáltatók + általában két IP-címet adnak + meg. Ha egyet sem kaptunk, akkor a + ppp.conf állományban + erre a célra használhatjuk az + enable dns parancsot, és ekkor a + ppp majd automatikusan be fogja + állítani nekünk a + névszervereket. Ezt a lehetõséget az + befolyásolja, hogy az + internet-szolgáltató oldalán + mûködõ PPP implementáció + támogatja-e a névfeloldás + egyeztetését (DNS negotiation). + + + + A következõ információkat is + megkaphatjuk az + internet-elõfizetésünkhöz, de nem + feltétlenül szükségesek: + + + + Az internet-szolgáltató + átjárójának IP-címe. + Az átjáró az a gép, amelyen + keresztül a gépünk csatlakozik és + számára ez lesz az + alapértelmezett + átjáró. Ha nem + rendelkezünk ezzel az információval, + akkor csak állítsunk be valamit, és + majd a csatlakozáskor a szolgáltató + PPP szervere felülírja a megfelelõ + beállításokkal. + + Erre a címre a ppp + HISADDR néven hivatkozik. + + + + A használandó hálózati + maszk. Amennyiben a szolgáltató ezt nem + adta meg, nyugodtan használjuk erre a 255.255.255.255 + értéket. + + + statikus + IP-cím + + + Ha a szolgáltatónk statikus + IP-címet és rögzített + hálózati nevet is biztosít + nekünk, ezt is megadhatjuk. Minden más + esetben egyszerûen csak hagyjuk, hogy a rendszer + automatikusan válasszon nekünk egyet. + + + + Ha a szükséges információknak + nem vagyunk birtokában, akkor vegyük fel a + kapcsolatot az internet-szolgáltatókkal. + + + Ebben a szakaszban a példákban + szereplõ konfigurációs + állományok sorait számozva + láthatjuk. Ezek a sorszámok a + bemutatás és a tárgyalás + megkönnyítése érdekében + szerepelnek, és nem az eredeti + állományok részei. Mindezek mellett a + tabulátorok és szóközök + megfelelõ használata is fontos. + + + + + + A <application>PPP</application> automatikus + beállítása + + + PPP + beállítása + + + A ppp és a + pppd (a PPP rendszerszintû + megvalósítása) egyaránt az + /etc/ppp könyvtárban + található konfigurációs + állományokat használja. A + felhasználói PPP-hez ezenkívül + még a /usr/share/examples/ppp/ + könyvtárban vannak példák. + + A ppp parancs + beállítása az igényeinktõl + függõen számos állomány + módosítását igényelheti. A + tartalmukat nagyban befolyásolja, hogy a + szolgáltatónk részérõl a + címeket kiosztása statikus (vagyis egy adott + címet kapunk és folyamatosan azt + használjuk) esetleg dinamikus (vagyis az + IP-címünk minden egyes + kapcsolódáskor más és + más). + + + PPP statikus IP-címmel + + + PPP + statikus IP-címmel + + + Ebben az esetben az + /etc/ppp/ppp.conf + konfigurációs állományt kell + átszerkesztenünk. Tartalma az alábbi + példához hasonlítható. + + + A : karakterrel + végzõdõ sorok mindig az elsõ + oszlopban kezdõdnek (tehát a sor + elején), míg az összes többi sort + tabulátorok vagy szóközök + használatával bentebb kell raknunk. + + + 1 default: +2 set log Phase Chat LCP IPCP CCP tun command +3 ident user-ppp VERSION (built COMPILATIONDATE) +4 set device /dev/cuad0 +5 set speed 115200 +6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ +7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" +8 set timeout 180 +9 enable dns +10 +11 szolgaltato: +12 set phone "(123) 456 7890" +13 set authname ize +14 set authkey mize +15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" +16 set timeout 300 +17 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0 +18 add default HISADDR + + + + 1. sor: + + + Ez azonosítja be az alapértelmezett + bejegyzést. Az itt szereplõ parancsok a + ppp minden egyes futásakor + magukból végrehajtódnak. + + + + + 2. sor: + + + Beállítja a naplózás + paramétereit. Amikor a + beállításaink már + kifogástalanul mûködnek, akkor ezt a + sort érdemes átírni a + következõre: + + set log phase tun + + Ezzel jelentõs mértékben vissza + tudjuk fogni a naplózás + mértékét. + + + + + 3. sor: + + + Ezzel mondjuk meg a PPP-nek, hogy a többiek + felé miként azonosítsa + magát. A PPP akkor azonosítja + magát a társak felé, ha + valamilyen gondja akad az egyeztetésekkel + és a kapcsolat + beállításával. Az + így továbbított + információk a másik oldal + rendszergazdái számára + nyújthatnak segítséget az ilyen + jellegû problémák + felderítésében. + + + + + 4. sor: + + + Itt adjuk meg az eszközt, amelyre a modem + csatlakozik. A COM1 neve + /dev/cuad0 (vagy + /dev/cuaa0 &os; 5.X alatt), + a COM2 neve pedig + /dev/cuad1 (vagy + /dev/cuaa1). + + + + + 5. sor: + + + A csatlakozás sebességét + adjuk meg. Ha a 115 200-as érték + itt nem mûködne (ez egyébként + minden újabb gyártmányú + modem esetében elfogadható), akkor + helyette használjuk a 38400-as + beállítást. + + + + + 6. és 7. sorok: + + + PPP + felhasználói PPP + + + + A híváshoz használt + karakterlánc. A felhasználói PPP + a &man.chat.8; programhoz hasonló + küldök-várok + típusú szerkesztést alkalmaz. A + kihasználható + lehetõségekrõl a man oldalán + olvashatunk részletesebben. + + Az olvashatóság + kedvéért a parancs a következõ + sorban folytatódik. A + ppp.conf + állományban bármelyik parancs, + ahol a \ karakterrel zárjuk a + sort, az ugyanígy folytatható a + következõben. + + + + + 8. sor: + + + A kapcsolathoz tartozó + üresjárati idõt állítja + be. Ennek értéke alapból + 180 másodperc, így ez a sor + pusztán csak az érthetõséget + szolgálja. + + + + + 9. sor: + + + Arra utasítja a PPP-t, hogy a + többiektõl kérdezze le a helyi + névfeloldó + beállításait. Ha saját + névszervert futtatunk, akkor ezt a sort + tegyük inkább megjegyzésbe vagy + töröljük ki. + + + + + 10. sor: + + + Ez az üres sor az + átláthatóság + kedvéért került bele. A PPP az + összes üres sort figyelmen kívül + hagyja. + + + + + 11. sor: + + + Itt kezdõdik a szolgaltato + nevû szolgáltatóhoz tartozó + bejegyzés. Ezt késõbb akár + ki is cserélhetjük az + internet-szolgáltatónk nevére, + így a + beállítással tudjuk majd + beindítani a kapcsolatot. + + + + + 12. sor: + + + Beállítjuk a + szolgáltatóhoz tartozó + telefonszámot. A kettõspont + (:) vagy a csõvezeték + (|) karakterekkel + elválasztva több telefonszámot is + meg tudunk adni. A &man.ppp.8; oldalon olvashatunk a + két elválasztó közti + különbségekrõl. Röviden + ezeket úgy foglalhatnánk össze, + hogy ha váltogatni akarunk a számok + között, akkor használjuk a + kettõspontot. Ha mindig az elsõként + megadott számot akarjuk hívni és + a többit csak akkor, ha ez nem mûködik, + akkor a csõvezeték karakterre lesz + szükségünk. Ahogy a példa is + mutatja, az összes telefonszámot + tegyük mindig idézõjelek + közé. + + Ha a telefonszámban egyébként + is szerepelnek szóközök, akkor is + idézõjelek (") + közé kell tennünk. Ennek + elhagyásával egy egyszerû, + ámde kényes hibát + ejtünk. + + + + + 13. és 14. sor: + + + A felhasználói nevet és + jelszót tartalmazza. Amikor egy &unix; + fajtájú bejelentkezést kapunk, + akkor ezekre az értékekre a set + login parancsban \U és \P + változókkal tudunk hivatkozni. Ha PAP + vagy CHAP használatával + jelentkezünk be, akkor ezek az + értékek a hitelesítéskor + kerülnek felhasználásra. + + + + + 15. sor: + + + PAP + CHAP + + Ha a PAP vagy CHAP protokollok valamelyikét + használjuk, akkor nem lesz + szükségünk a login + változóra, ezért ezt + megjegyzésbe is tehetjük, vagy akár + ki is törölhetjük. A PAP és CHAP + hitelesítésrõl + szóló részben olvashatjuk ennek + további részleteit. + + A bejelentkezéshez használt + karakterlánc hasonlít a + behíváshoz használt, + chat-szerû felépítéssel + rendelkezõ karakterlánchoz. A + példában látható + karakterlánc egy olyan + szolgáltatáshoz illeszkedik, ahol a + bejelentkezés valahogy így néz + ki: + + A Világ Legjobb Szolgáltatója +login: izé +password: mizé +protocol: ppp + + Ezt a szkriptet alakítsuk a saját + igényeinkhez. Ha elõször + próbálkozunk ilyen szkript + írásával, akkor lehetõleg + kapcsoljuk be a rendszerek között + lezajló + beszélgetés + naplózását, hogy ellenõrizni + tudjuk minden a megfelelõen módon + történik-e. + + + + + 16. sor: + + idõkorlát + + + Beállítjuk a kapcsolathoz + tartozó alapértelmezett + idõkorlátot (másodpercben). Itt a + kapcsolat automatikusan lezárul + 300 másodperc tétlenséget + követõen. Ha nem akarunk ilyen + korlátot szabni, akkor ezt az + értéket állítsuk + nullára vagy használjuk a + paranccsori + kapcsolót. + + + + + 17. sor: + + internet-szolgáltató + + + A felülethez tartozó címeket + állítja be. A + x.x.x.x helyére a + szolgáltató által kiosztott + IP-címet kell beírnunk. A + y.y.y.y helyett pedig a + szolgáltató + átjárója kerül be + (lényegében az a gép, amelyhez + csatlakozunk). Amennyiben az + internet-szolgáltatónk nem adott meg + semmilyen átjárót, erre a + célra a 10.0.0.2/0 címet is + használhatjuk. Amikor nekünk kell + kitalálnunk ezeket a címeket, + akkor ne felejtsünk el létrehozni + hozzájuk egy bejegyzést az + /etc/ppp/ppp.linkup + állományban a PPP dinamikus + IP-címmel szakaszban szereplõek + szerint. Ha nem adjuk meg ezt a sort, akkor a + ppp parancs nem képes + módban + mûködni. + + + + + 18. sor: + + + A szolgáltató + átjárójához felvesz egy + alapértelmezett útvonalat. A + HISADDR kulcsszót a 17. + sorban megadott átjáró + címével helyettesítjük. + Ezért fontos, hogy ez a 17. sor után + szerepeljen, különben a + HISADDR nem lesz képes + inicializálódni. + + Ha a ppp parancsot nem akarjuk + módban futtatni, akkor ezt + a sort a ppp.linkup + állományba is átrakhatjuk. + + + + + Ha statikus IP-címmel rendelkezünk és + a ppp + módban fut, akkor a ppp.linkup + állományba egészen addig nem kell + semmit sem írnunk, amíg a csatlakozás + elõtt az útválasztási + táblázatokban a megfelelõ adatok + találhatóak. Olyankor is jól + jöhet, amikor a csatlakozást követõen + meg akarunk hívni bizonyos programokat. Ezt majd a + sendmailes példában + fogjuk bõvebben kifejteni. + + Erre példákat a + /usr/share/examples/ppp/ + könyvtárban találhatunk. + + + + + PPP dinamikus IP-címmel + + + PPP + dinamikus IP-címmel + + + IPCP + + Ha az internet-szolgáltatónktól nem + kaptunk statikus IP-címet, akkor a + ppp paranccsal is be tudjuk + állítani a helyi és távoli + címeket. Ez az IP-címek + kitalálásával + történik, valamint úgy, hogy a + ppp számára a + csatlakozás után lehetõvé + tesszük az IP konfigurációs protocol (IP + Configuration Protocol, IPCP) használatát. A + ppp.conf tartalma szinte teljesen + megegyezik a PPP statikus + IP-címmel részben szereplõvel, + egyetlen apró különbséggel: + + 17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 + + Ismét szeretnénk elmondani, hogy a + sorszámot ne írjuk bele, hiszen az csak + hivatkozási céllal szerepel. Legalább + egy szóközzel kezdjünk bentebb. + + + + 17. sor: + + + A / után megjelenõ + szám azoknak a biteknek a számát + adja meg, amire a ppp támaszkodik. A + környezetünknek jobban megfelelõ + IP-címeket is megadhatunk, de a fenti + példa minden esetben mûködni + fog. + + Az utolsó paraméterrel + (0.0.0.0) azt mondjuk a PPP-nek, + hogy az egyeztetést ne a 10.0.0.1, hanem a 0.0.0.0 címmel kezdje + meg, amire egyes szolgáltatók + esetén szükségünk is lesz. A + set ifaddr elsõ + paramétereként azonban soha ne adjuk meg + a 0.0.0.0 címet, mivel ezzel + a PPP módban nem tudja + beállítani a kezdeti + útvonalat. + + + + + Ha nem módban + indítjuk, akkor az + /etc/ppp/ppp.linkup + állományban meg kell adnunk még egy + bejegyzést is. A ppp.linkup + állományt a kapcsolat létrejötte + után dolgozzuk fel. Itt már a + ppp megkapta a felülethez + tartozó címeket, így az + útválasztási táblázatba + fel tudjuk venni hozzájuk a megfelelõ + bejegyzéseket: + + 1 szolgaltato: +2 add default HISADDR + + + + 1. sor: + + + A kapcsolat felépítése + során a ppp a + ppp.linkup + állományban a következõ + szabályok szerint fogja keresni a + bejegyzéseket: elõször a + ppp.conf + állományban megadott + címkét próbálja + megtalálni. Ha ez nem sikerül, akkor az + átjárónknak megfelelõ + bejegyzést kezdi el keresni. Ez egy + négy byte-ból álló, + felírásában az IP-címekhez + hasonlító címke. Ha még + ez a címke sem található, akkor a + MYADDR bejegyzést + keresi. + + + + + 2. sor: + + + Ez a sor mondja meg a ppp + programnak, hogy vegyen fel egy + HISADDR címre + vonatkozó alapértelmezett + útvonalat. A HISADDR + címet az IPCP által egyeztetett + átjáró IP-címére + cseréljük ki. + + + + + Ha erre a részletesebb példát + akarunk látni, akkor a + /usr/share/examples/ppp/ppp.conf.sample + és + /usr/share/examples/ppp/ppp.linkup.sample + állományokban a pmdemand + bejegyzést nézzük meg. + + + + + A bejövõ hívások + fogadása + + + PPP + bejövõ hívások + fogadása + + + Amikor egy helyi hálózathoz + csatlakozó gépen akarjuk a + ppp programot + beállítani a bejövõ + hívások fogadására, akkor azt is + el kell döntenünk, hogy + engedélyezzük-e a csomagok + továbbküldését a belsõ + hálózat felé. Amennyiben igen, akkor a + becsatlakozó gépenek a belsõ + hálózatunkon ki kell osztani egy + külön címet és az + /etc/ppp/ppp.conf + állományban, és meg kell adnunk az + enable proxy parancsot. Emellett + még az /etc/rc.conf + állományban se feleljtsük el megadni a + következõ sort: + + gateway_enable="YES" + + + + + Melyik getty? + + A &os; + beállítása + betárcsázós kapcsolatokhoz + nagyon jól bemutatja a + betárcsázós + szolgáltatások + beállítását a &man.getty.8; + segítségével. + + A getty helyett + egyébként az + mgetty, a getty egy ügyesebb + változata is használható, ami + kifejezetten a betárcsázós vonalakhoz + készült. + + A mgetty használatának + többek közt az egyik elõnye, hogy + aktívan tartja a kapcsolatot a + modemekkel, tehát hogy ha az + /etc/ttys állományban + letiltjuk a modemet, akkor nem is fog válaszolni a + hívásokra. + + Emellett az mgetty + késõbbi változatai (a 0.99 beta + változatától kezdve) még a PPP + folyamok automatikus észlelését is + támogatják, ezáltal a kliensek + szkriptek nélkül is képesek elérni + a szerverünket. + + Ha errõl többet akarunk megtudni, akkor az + mgetty paranccsal kapcsolatban olvassuk + el Az mgetty és az + AutoPPP címû szakaszt. + + + + + A <application>PPP</application> + engedélyei + + A ppp parancsot + általában root + felhasználóként kell futtatni. Ha + viszont a ppp parancsot tetszõleges + felhasználóval akarjuk szerver módban + futtatni az iméntiek szerint, akkor ahhoz fel kell + vennünk az /etc/group + állományban szereplõ + network csoportba. + + Ezeken kívül még az + allow paranccsal is + engedélyeznünk kell konfigurációs + állomány egy vagy több + részének elérését + is: + + allow users fred mary + + Ha ezt a parancsot a default + bejegyzésnél adjuk meg, akkor az így + megadott felhasználók mindenhez hozzá + tudnak férni. + + + + + PPP shellek a dinamikus IP-címek + használóinak + + PPP shellek + + Hozzunk létre egy + /etc/ppp/ppp-shell nevû + állományt, amelyben a következõk + szerepelnek: + + #!/bin/sh +IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` +CALLEDAS="$IDENT" +TTY=`tty` + +if [ x$IDENT = xdialup ]; then + IDENT=`basename $TTY` +fi + +echo "PPP for $CALLEDAS on $TTY" +echo "Starting PPP for $IDENT" + +exec /usr/sbin/ppp -direct $IDENT + + Ez a szkript legyen végrehajtható. + Ezután az alábbi paranccsal + ppp-dialup néven + készítsünk egy szimbolikus linket erre a + szkriptre: + + &prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialup + + Ez a szkript lesz az összes + betárcsázó felhasználónk + shellje. A most következõ + példa az /etc/passwd + állományban szereplõ, + pchilds nevû PPP + felhasználó bejegyzését mutatja + be (ne felejtsük el, hogy soha ne közvetlenül + szerkesszük a jelszavakat tároló + állományt, hanem a &man.vipw.8; + segítségével). + + pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup + + Hozzunk létre egy /home/ppp + nevû könyvtárat a következõ + bárki által olvasható 0 byte-os + állományokkal: + + -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin +-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts + + Ezek hatására az + /etc/motd állomány + tartalma nem jelenik meg. + + + + + PPP shellek a statikus IP-címek + használóinak + + PPP shellek + + Az iméntiekhez hasonló módon + készítsük el a + ppp-shell állományt, + és mindegyik statikus IP-vel rendelkezõ + hozzáféréshez csináljunk egy + szimbolikus linket a ppp-shell + szkriptre. + + Például, ha három + betárcsázós ügyfelünk van, + fred, sam + és mary, feléjük + 24 bites CIDR hálózatokat + közvetítünk, akkor a következõket + kell begépelnünk: + + &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred +&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam +&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary + + A fentebb szereplõ betárcsázós + felhasználók eléréseihez + tartozó shelleket állítsuk be az itt + létrehozott szimbolikus linkekre (így + tehát mary shellje az + /etc/ppp/ppp-mary lesz). + + + + + A <filename>ppp.conf</filename> + beállítása a dinamikus IP-címek + használóinak + + Az /etc/ppp/ppp.conf + állományban a következõ sorok + valamelyikének kellene szerepelnie: + + default: + set debug phase lcp chat + set timeout 0 + +ttyd0: + set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 + enable proxy + +ttyd1: + set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 + enable proxy + + + A bentebb kezdett sorokat mi is kezdjünk + bentebb. + + + A default: szakasz minden kapcsolat + esetén betöltõdik. Az + /etc/ttys állományban + engedélyezett mindegyik + betárcsázós vonal létrehoz a + fenti ttyd0: szakaszhoz hasonló + bejegyzést. Minden vonal kap egy egyedi + IP-címet a dinamikus felhasználók + számára szánt + címtartományból. + + + + + A <filename>ppp.conf</filename> + beállítása a statikus IP-vel + rendelkezõk számára + + A /usr/share/examples/ppp/ppp.conf + állományban szereplõ tartalom mellett az + összes statikus kiosztású + IP-címmel rendelkezõ + betárcsázó felhasználóhoz + még hozzá kell tennünk egy szakaszt. A + példánkban ezek továbbra is + fred, sam + és mary. + + fred: + set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 + +sam: + set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 + +mary: + set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 + + Amennyiben szükséges, az + /etc/ppp/ppp.linkup tartalmazhat + további útválasztási + információkat is az egyes statikus + IP-címmel rendelkezõ + felhasználókhoz. A lentebb bemutatott sor a + kliens ppp összekötettésén + keresztül vesz fel egy útvonalat a 203.14.101.0/24 hálózat + felé. + + fred: + add 203.14.101.0 netmask 255.255.255.0 HISADDR + +sam: + add 203.14.102.0 netmask 255.255.255.0 HISADDR + +mary: + add 203.14.103.0 netmask 255.255.255.0 HISADDR + + + + + Az <command>mgetty</command> és az + AutoPPP + + mgetty + AutoPPP + LCP + + Ha az mgetty programot az + AUTO_PPP + beállítással fordítjuk le, akkor + azzal az mgetty képessé + válik a PPP kapcsolatok LCP fázisát + észlelni és magától + létrehozni hozzá egy ppp shellt. Mivel az + alapértelmezett név/jelszó páros + azonban ilyenkor nem jelenik meg, a + felhasználókat a PAP vagy a CHAP protokollon + keresztül lehet hitelesíteni. + + Ez a szakasz most feltételezi, hogy a sikeresen + beállítottuk, lefordítottuk és + telepítettük az mgetty + valamelyik (0.99 béta vagy késõbbi) + változatát az AUTO_PPP + opció engedélyezésével. + + Az + /usr/local/etc/mgetty+sendfax/login.config + állományban ne felejtsük + ellenõrizni, hogy szerepel a + következõ: + + /AutoPPP/ - - /etc/ppp/ppp-pap-dialup + + Ezzel utasítjuk az mgetty + programot arra, hogy az észlelt PPP kapcsolatokhoz + futtassa le a ppp-pap-dialup + szkriptet. + + Hozzunk létre az + /etc/ppp/ppp-pap-dialup nevû + állományt, amelyben majd a + következõk fognak szerepelni (az + állomány legyen + végrehajtható): + + #!/bin/sh +exec /usr/sbin/ppp -direct pap$IDENT + + Az /etc/ttys + állományban engedélyezett összes + betárcsázós vonalhoz + készítsük el a megfelelõ + bejegyzést az /etc/ppp/ppp.conf + állományban. Ezek remekül meg fognak + férni az imént készített + definíciókkal. + + pap: + enable pap + set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 + enable proxy + + Minden olyan felhasználónak, aki ezzel a + módszerrel jelentkezik be, szüksége lesz + egy név/jelszó kombinációra az + /etc/ppp/ppp.secret + állományban, vagy az alábbi + beállítás megadásával + választhatjuk azt is, hogy a + felhasználókat az + /etc/passwd állományon + keresztül a PAP protokoll + segítségével azonosítjuk. + + enable passwdauth + + Ha statikus IP-címet akarunk kiosztani + némely felhasználóknak, akkor az + /etc/ppp/ppp.secret + állományban ezt megadhatjuk a harmadik + paraméternek. Errõl bõvebben a + /usr/share/examples/ppp/ppp.secret.sample + állományban láthatunk + példát. + + + + + A Microsoft kiterjesztései + + DNS + NetBIOS + + PPP + Microsoft kiterjesztések + + + A PPP úgy is beállítható, + hogy kérésre DNS és NetBIOS + típusú névfeloldáshoz is + szolgáltasson információkat. + + A PPP 1.x változatával úgy lehet + engedélyezni ezeket a kiterjesztéseket, ha az + /etc/ppp/ppp.conf + állomány megfelelõ részeibe + felvesszük a következõ sorokat: + + enable msext +set ns 203.14.100.1 203.14.100.2 +set nbns 203.14.100.5 + + A PPP második és késõbbi + változataiban pedig: + + accept dns +set dns 203.14.100.1 203.14.100.2 +set nbns 203.14.100.5 + + Ezzel a kliens megkapja az elsõdleges és + másodlagos névszerverek címeit, + valamint a NetBIOS névszervert. + + Ha a második és az azt követõ + verziókban a set dns sort + elhagyjuk, akkor a PPP az + /etc/resolv.conf + állományban található + értékeket fogja használni. + + + + + A PAP és CHAP hitelesítés + + PAP + CHAP + + Egyes internet-szolgáltatók úgy + állítják be a rendszerüket, hogy a + kapcsolat felépítése során a + hitelesítés a PAP vagy CHAP mechanizmusok + valamelyikével történik. Ilyenkor a + szolgáltató nem egy login: + sorral fogja bekérni a szükséges + adatokat, hanem közvetlenül a PPP kapcsolatot + kezdi el használni. + + A PAP nem olyan biztonságos, mint a CHAP, de itt + a biztonság nem is annyira fontos, mivel a jelszavak, + amelyeket ugyan a PAP titkosítatlan formában + küld tovább, csak egy soros vonalon haladnak + át. A rossz indulatú támadók + itt nem sok mindent tudnak + lehallgatni. + + A PPP statikus + IP-címmel és a PPP dinamikus IP + címmel címû szakaszokhoz + képest a következõ + módosításokat kell + elvégeznünk: + + 13 set authname AFelhasználóiNevem +14 set authkey AJelszavam +15 set login + + + + 13. sor: + + + Ebben a sorban adjuk meg a PAP/CHAP + felhasználói nevünket, amelyet + AFelhasználóiNevem + helyett kell beírni. + + + + + 14. sor: + + jelszó + + + Ebben a sorban adjuk meg a PAP/CHAP jelszavunkat, + AJelszavam helyett. + Szándénkunk + egyértelmûsítése + érdekében ezek mellett még egy + további sort is érdemes felvennünk, + tehát: + + 16 accept PAP + + vagy + + 16 accept CHAP + + Alapértelmezés szerint a PAP + és CHAP is egyaránt elfogadott. + + + + + 15. sor: + + + A PAP és CHAP alkalmazásakor + általában nem is kell + bejelentkeznünk a szolgáltató + szerverére. Ezért a set + login parancsnál használt + karakterláncot le is kell tiltanunk. + + + + + + + + A <command>ppp</command> + beállításainak + megváltoztatása menet közben + + A háttérben futó + ppp programhoz menet közben is + tudunk beszélni, de csak olyankor, amikor az ehhez + szükséges portot megadtuk. Ezt úgy + tudjuk megtenni, ha beállítások + közé felvesszük az alábbit: + + set server /var/run/ppp-tun%d DiagnosticPassword 0177 + + Így a PPP az elõre megadott &unix; + tartománybeli socketen keresztül fogja + várni a kapcsolódásunkat, és a + konkrét hozzáféréshez + jelszót kér. A névben szereplõ + %d a használatban levõ + tun eszköz + sorszámát jelöli. + + Miután a csatlakozás + beállítódott, a szkriptekben a + &man.pppctl.8; program használható a + futó program + vezérléséhez. + + + + + + A PPP hálózati + címfordítási + képességének + kihasználása + + PPPNAT + + A PPP képes a rendszermag + rásegítése nélkül + képes hálózati + címfordítást végezni. Ezt a + lehetõséget a következõ sor + hozzáadásával tudjuk aktiválni az + /etc/ppp/ppp.conf + állományban: + + nat enable yes + + A PPP-be épített hálózati + címfordítás a -nat + parancssori paraméterrel is bekapcsolható. Az + /etc/rc.conf állományban is + található hozzá egy + ppp_nat változó, amely + alapértelmezés szerint + engedélyezett. + + Amikor használjuk ezt a lehetõséget, az + /etc/ppp/ppp.conf + állományban a következõ + opciókkal engedélyezhetjük a + bejövõ kapcsolatok + továbbítását: + + nat port tcp 10.0.0.2:ftp ftp +nat port tcp 10.0.0.2:http http + + vagy egyáltalán ne bízzunk meg a + külvilágban: + + nat deny_incoming yes + + + + + A rendszer végsõ + beállítása + + + PPP + beállítása + + + Mostanra ugyan már beállítottuk a + ppp programot, azonban még + néhány dolgot be kell állítanunk, + mielõtt ténylegesen nekilátnánk + használni. Ezek mindegyike az + /etc/rc.conf állomány + módosítását igényli. + + Az állományt fentrõl lefelé + fogjuk feldolgozni, de elõtte ne felejtsünk el + értéket adni a hostname= + változónak, például: + + hostname="ize.minta.com" + + Amennyiben a szolgáltatónk statikus + IP-címet és nevet biztosít + számunkra, az lesz a legjobb, ha itt a tõle kapott + nevet adjuk meg. + + Keressük meg a network_interfaces + változót. Ha a rendszerünkben + kérésre akarjuk tárcsázni a + szolgáltatónkat, akkor a + tun0 eszközt mindenképpen + vegyük fel az értékébe, minden + más esetben pedig távolítsuk el. + + network_interfaces="lo0 tun0" +ifconfig_tun0= + + + Az ifconfig_tun0 + változónak üres értéket + kell megadnunk, és létre kell hoznunk egy + /etc/start_if.tun0 nevû + állományt. Ebben a következõ sornak + kell szerepelnie: + + ppp -auto arendszerem + + Ez a szkript a hálózat + beállításakor fut le, és a ppp + démont automatikus módban indítja el. + Ha az adott gép egy helyi hálózat + átjárója is egyben, akkor az + kapcsolót is érdemes + megadnunk mellette. A pontosabb részletek + tekintetében olvassuk el a megfelelõ man + oldalt. + + + Az /etc/rc.conf + állományban a NO + érték megadásával tiltsuk le az + útválasztást végzõ program + használatát: + + router_enable="NO" + + routed + + Fontos, hogy a routed démon ne + induljon el, mivel routed hajlamos + törölni a ppp által + létrehozott alapértelmezett + útválasztási bejegyzéseket. + + Ezenkívül még a + sendmail_flags + változóról szóló + sorból is érdemes kivenni a + opciót, máskülönben a + sendmail minden mûvelet + megkezdése elõtt nekiáll felderíteni + a hálózatot, és ezzel megindítja a + tárcsázást. Próbáljuk meg + így átírni az + értékét: + + sendmail_flags="-bd" + + sendmail + + Ezért cserébe viszont a + sendmail programot a ppp kapcsolat + létrejöttekor mindig utasítanunk kell, hogy + újból ellenõrizze a levelezési sort. + Ezt a következõk begépelésével + érhetjük el: + + &prompt.root; /usr/sbin/sendmail -q + + Ugyanezt automatikusan is meg tudjuk tenni a + !bg paranccsal a + ppp.linkup + állományban: + + 1 szolgaltato: +2 delete ALL +3 add 0 0 HISADDR +4 !bg sendmail -bd -q30m + + SMTP + + Ha nem felelne meg ez a megoldás, akkor egy + dfilter is beállítható az + SMTP forgalom szûrésére. A + példák között megtaláljuk ennek + pontos minkéntjét. + + Ezután már csak a gépünk + újraindítása maradt hátra. Az + újraindítás után már be is + gépelhetjük: + + &prompt.root; ppp + + ahol a dial szolgaltato parancs + kiadásával meg tudjuk kezdeni a PPP kapcsolat + felépítését, vagy a + ppp programot megkérhetjük + arra, hogy automatikusan kezdje el, amint van kimenõ + forgalom (és nem készítettük el a + start_if.tun0 szkriptet). Ekkor + gépeljük be ezt: + + &prompt.root; ppp -auto szolgaltato + + + + + Összefoglalás + + Gyorsan foglaljuk össze, hogy az ppp + beállításához milyen + lépések megtétele szükséges + az elsõ alkalommal: + + A kliens oldalán: + + + + Gyõzõdjünk meg róla, hogy a + tun eszköz benne van a + rendszermagban. + + + + Ellenõrizzük, hogy a + tunN + eszközhöz tartozó állomány + rendelkezésre áll a + /dev könyvtárban. + + + + Hozzunk létre egy bejegyzést az + /etc/ppp/ppp.conf + állományban. A + pmdemand + példából a legtöbb + szolgáltató esetében ki tudunk + indulni. + + + + Ha dinamikus IP-címet kapunk, akkor az + /etc/ppp/ppp.linkup + állományba is vegyünk fel egy + bejegyzést. + + + + Frissítsük az + /etc/rc.conf + állományunkat. + + + + Ha igény szerint akarunk + tárcsázni, akkor hozzunk létre + start_if.tun0 néven egy + szkriptet. + + + + A szerver oldalán: + + + + Gondoskodjunk róla, hogy a + tun eszköz + támogatása szerepel rendszermagban. + + + + Gyõzõdjünk meg róla, hogy a + tunN + eszköz megtalálható a + /dev könyvtárban. + + + + Az /etc/passwd + állományban (a &man.vipw.8; program + használatával) hozzunk létre + bejegyzéseket. + + + + A felhasználók könyvtáraiban + hozzunk létre egy olyan profilt, amely ppp + -direct direct-server vagy egy ehhez + hasonló parancsot futtat le. + + + + Az /etc/ppp/ppp.conf + állományban adjuk meg egy bejegyzést. + A direct-server példa ehhez + egy remek alapot biztosít. + + + + Az /etc/ppp/ppp.linkup + állományban hozzunk létre egy + bejegyzést. + + + + Frissítsük az + /etc/rc.conf + állományunkat. + + + + + + + + + + + + Gennady B. + Sorokopud + Egyes részeit készítette: + + + + Robert + Huff + + + + + A rendszerszintû PPP alkalmazása + + + A rendszerszintû PPP + beállítása + + + PPP + rendszer PPP + + + Mielõtt a gépünkön nekikezdünk a + PPP beállításának, + ellenõrizzük, hogy a pppd + megtalálható a /usr/sbin + könyvtárban és az + /etc/ppp könyvtár + létezik. + + A pppd két módban + képes mûködni: + + + + kliensként — a + gépünket soros vonali vagy modemes PPP + kapcsolaton keresztül csatlakoztatjuk a + külvilághoz + + + + PPP + szerver + + + + szerverként — a + számítógépünk egy + hálózat része, ahol a többieket a + PPP használatával kapcsoljuk össze + + + + Mind a két esetben egy konfigurációs + állomány tartalmát kell + összeállítanunk (ez az + /etc/ppp/options vagy a + ~/.ppprc, ha a gépünkön + több felhasználó is PPP-t akar + használni). + + Egy modemes vagy soros vonali szoftverre is + szükségünk lesz (ez többnyire a comms/kermit), amellyel távoli + gépeket tudunk felhívni és + feléjük kapcsolatot felépíteni. + + + + + + + + Trev + Roydhouse + Az alapjául szolgáló + információkat adta: + + + + + A <command>pppd</command> mint kliens + + + PPP + kliens + + + Cisco + + A most következõ + /etc/ppp/options állománnyal + egy Cisco terminál szerverhez tudunk kapcsolódni + egy PPP vonalon keresztül. + + crtscts # a hardveres forgalomirányítás engedélyezése +modem # modem vezérlõvonal +noipdefault # a távoli PPP szervernek kell IP-címet adnia + # ha az IPCP alapú egyeztetés során a távoli gép nem küld + # nekünk IP-címet, akkor vegyük ki ezt a beállítást +passive # LCP csomagokat várunk +domain ppp.ize.com # ide írjuk be a hálózati nevünket + +:távoli_ip # ide kell írni a távoli PPP szerver IP-címét + # a PPP kapcsolaton keresztül erre fogjuk továbbküldeni a csomagokat + # ha nem adtuk meg "noipdefault" beállítást, akkor ezt a sort + # írjuk át helyi_ip:távoli_ip alakúra + +defaultroute # adjuk meg ezt a sort is, ha a PPP szerverünket egyben az + # alapértelmezett átjárónak is be akarjuk állítani + + Így kapcsolódunk: + + Kermit + modem + + + + Tárcsázzuk a távoli gépet a + Kermit (vagy bármilyen + más modemes program) + elindításával, majd adjuk meg a + felhasználói nevünket és + jelszavunkat (vagy bármi mást, amivel a + távoli gépen engedélyezni tudjuk a PPP + használatát). + + + + Lépjünk ki a + Kermit programból + (anélkül, hogy bontanánk a + vonalat). + + + + Írjuk be a következõket: + + &prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200 + + Ne felejtsük el megadni a megfelelõ + sebességet és eszközt. + + + + A számítógépünk most + már PPP-n keresztül csatlakozik. Ha valamilyen + okból nem sikerülne felépíteni a + kapcsolatot, akkor vegyük fel a + beállítást is az + /etc/ppp/options állományba, + majd a konzolra érkezõ üzenetek + segítségével próbáljuk meg + felderíteni a probléma okát. + + Az alábbi /etc/ppp/pppup szkript + mind a három fázist automatikussá + teszi: + + #!/bin/sh +pgrep -l pppd +pid=`pgrep pppd` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +pgrep -l kermit +pid=`pgrep kermit` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.dial +pppd /dev/tty01 19200 + + Kermit + + Az /etc/ppp/kermit.dial egy olyan + Kermit szkript, amivel + tárcsázni tudunk és a távoli + gépen elvégezni az összes + szükséges hitelesítést (a + leírás végén találhatunk is + egy ilyen szkriptet példaként). + + Az alábbi /etc/ppp/pppdown + szkripttel tudjuk bontani a PPP vonalat: + + #!/bin/sh +pid=`pgrep pppd` +if [ X${pid} != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill -TERM ${pid} +fi + +pgrep -l kermit +pid=`pgrep kermit` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +/sbin/ifconfig ppp0 down +/sbin/ifconfig ppp0 delete +kermit -y /etc/ppp/kermit.hup +/etc/ppp/ppptest + + A /usr/etc/ppp/ppptest + elindításával ellenõrizni tudjuk, hogy + a pppd még mindig fut. Ez valahogy + így néz ki: + + #!/bin/sh +pid=`pgrep pppd` +if [ X${pid} != "X" ] ; then + echo 'pppd running: PID=' ${pid-NONE} +else + echo 'No pppd running.' +fi +set -x +netstat -n -I ppp0 +ifconfig ppp0 + + A vonal bontásához az + /etc/ppp/kermit.hup szkriptet kell + elindítanunk, amiben a következõ + szerepelnek: + + set line /dev/tty01 ; ide írjuk be a saját modemünket +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +echo \13 +exit + + A kermit helyett a + chat programot is + használhatjuk: + + A következõ két állomány + már elég egy kapcsolat + létrehozásához pppd + használatával: + + /etc/ppp/options: + + /dev/cuad1 115200 + +crtscts # a hardveres forgalomirányítás engedélyezése +modem # modemes vezérlõvonal +connect "/usr/bin/chat -f /etc/ppp/login.chat.script" +noipdefault # a távoli PPP kiszolgálónak adnia kell egy IP-címet + # ha a távoli gép nem küldi az IP-címünk az IPCP alapú egyeztetés során + # akkor távolítsuk el ezt a beállítást +passive # LCP csomagokat várunk +domain sajat.tartomany # ide írjuk be a saját tartománynevünket + +: # a távoli PPP kiszolgáló IP-címét tegyük ide + # ezen keresztül fogjuk továbbküldeni a PPP kapcsolaton áthaladó csomagokat + # nem adtuk meg a "noipdefault" beállítást, akkor ezt + # sort írjuk át helyi_ip:távoli_ip alakúra + +defaultroute # ez a sor akkor kell, ha a PPP szerver lesz az + # alapértelmezett átjárónk is + + /etc/ppp/login.chat.script: + + + A most következõt egyetlen sorba kell + írnunk. + + + ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTtelefon.szám + CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: bejelentkezési-azonosító + TIMEOUT 5 sword: jelszó + + Miután ezeket telepítettük és a + megfelelõképpen módosítottuk, + már csak a pppd parancsot kell + kiadnunk, valahogy így: + + &prompt.root; pppd + + + + + A <command>pppd</command> mint szerver + + Az /etc/ppp/options + állományban nagyjából a + következõknek kell szerepelnie: + + crtscts # hardveres forgalomirányítás +netmask 255.255.255.0 # hálózati maszk (nem kötelezõ) +192.114.208.20:192.114.208.165 # a helyi és távoli gépek IP-címei + # a helyi IP-nek el kell térnie az Ethernet + # (vagy más egyéb) felülethez tartozó címtõl. + # a távoli IP a távoli géphez rendelt IP-cím +domain ppp.ize.com # a saját tartományunk +passive # az LCP csomagok várása +modem # modemes vonal + + Az alábbi /etc/ppp/pppserv + szkript a pppd démont + szervernek állítja be: + + #!/bin/sh +pgrep -l pppd +pid=`pgrep pppd` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +pgrep -l kermit +pid=`pgrep kermit` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +# reset ppp interface +ifconfig ppp0 down +ifconfig ppp0 delete + +# enable autoanswer mode +kermit -y /etc/ppp/kermit.ans + +# run ppp +pppd /dev/tty01 19200 + + A szerver leállítására a + következõ /etc/ppp/pppservdown + szkriptet kell használnunk: + + #!/bin/sh +pgrep -l pppd +pid=`pgrep pppd` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +pgrep -l kermit +pid=`pgrep kermit` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.noans + + A következõ Kermit + szkript (/etc/ppp/kermit.ans) + engedélyezi vagy tiltja le a modem automatikus + válaszadását. Körülbelül + így épül fel: + + set line /dev/tty01 +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +inp 5 OK +echo \13 +out ATS0=1\13 ; "ATS0=0\13"-ra írjuk át, ha le akarjuk tiltani az + ; automatikus válaszadást +inp 5 OK +echo \13 +exit + + Az /etc/ppp/kermit.dial + elnevezésû szkriptet használhatjuk arra, hogy + tárcsázzunk távoli gépeket és + hitelesítsük magunkat rajtuk. Írjuk + át az igényeinknek megfelelõen, tegyük + bele a bejelentkezéshez szükséges + azonosítót és jelszót, illetve a + modemünk és a távoli gép + válaszai szerint módosítsuk az + input utasításokat. + + ; +; írjuk ide azt a com vonalat, amire a modemünk csatlakozik: +; +set line /dev/tty01 +; +; ide kerül a modem sebessége: +; +set speed 19200 +set file type binary ; teljes 8 bites állomány-átvitel +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none +set modem hayes +set dial hangup off +set carrier auto ; adjuk meg a SET CARRIER utasítást is, ha kell +set dial display on ; adjuk meg a SET DIAL utasítást is, ha kell +set input echo on +set input timeout proceed +set input case ignore +def \%x 0 ; a bejelentkezés számlálója +goto slhup + +:slcmd ; tegyük a modemet parancs módba +echo Tegyuk a modemet parancs modba. +clear ; töröljük a be nem olvasott karaktereket a bemeneti pufferbõl +pause 1 +output +++ ; a Hayes-féle helyettesítési szekvenciák használata +input 1 OK\13\10 ; várjuk meg az OK jelzést +if success goto slhup +output \13 +pause 1 +output at\13 +input 1 OK\13\10 +if fail goto slcmd ; ha a modem nem válaszol OK-val, akkor próbálkozzunk újra + +:slhup ; bontsuk a vonalat +clear ; töröljük ki a be nem olvasott karaktereket a bemeneti pufferbõl +pause 1 +echo A vonal bontasa. +output ath0\13 ; a kapcsolat létrejöttét jelzõ Hayes-parancs +input 2 OK\13\10 +if fail goto slcmd ; ha nincs OK válasz, akkor tegyük a modemet parancs módba + +:sldial ; tárcsázzuk a számot +pause 1 +echo Dialing. +output atdt9,550311\13\10 ; ide írjuk a telefonszámot +assign \%x 0 ; nullázzuk le az idõzítõt + +:look +clear ; töröljük az olvasatlan karaktereket a bemeneti pufferbõl +increment \%x ; számoljuk a másodperceket +input 1 {CONNECT } +if success goto sllogin +reinput 1 {NO CARRIER\13\10} +if success goto sldial +reinput 1 {NO DIALTONE\13\10} +if success goto slnodial +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 60 goto look +else goto slhup + +:sllogin ; bejelentkezés +assign \%x 0 ; nullázzuk le az idõzítõt +pause 1 +echo A bejelentkezes keresese. + +:slloop +increment \%x ; számoljuk a másodperceket +clear ; töröljük az olvasatlan karaktereket a bemeneti pufferbõl +output \13 +; +; ide írjuk be a várható bejelentkezési sablont: +; +input 1 {Felhasznaloi nev: } +if success goto sluid +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 10 goto slloop ; tízszer próbálkozzunk a bejelentkezéssel +else goto slhup ; 10 sikertelen próbálkozás után bontsuk a vonalat és kezdjük újra + +:sluid +; +; ide írjuk be a felhasználói azonosítónkat: +; +output ppp-login\13 +input 1 {Jelszo: } +; +; ide tegyük a hozzátartozó jelszót: +; +output ppp-password\13 +input 1 {Atvaltas SLIP modba.} +echo +quit + +:slnodial +echo \7Nincs vonal. Ellenorizzuk a telefonvonalat!\7 +exit 1 + +; local variables: +; mode: csh +; comment-start: "; " +; comment-start-skip: "; " +; end: + + + + + + + + + Tom + Rhodes + Készítette: + + + + + <acronym>PPP</acronym> kapcsolatok + hibaelhárítása + + + PPP + hibaelhárítás + + + Ebben a szakaszban összefoglalunk néhány + olyan problémát, ami a PPP modemen keresztüli + használata során keletkezhet. + Például pontosan tisztában kell + lennünk azzal, hogy a tárcsázott rendszer + milyen adatokat és hogyan fog tõlünk + bekérni. Egyes szolgáltatók egy + ssword promptot, míg mások egy + password promptot adnak. Ha a + ppp szkript nem illeszkedik ezekhez az + elvárásokhoz, akkor nem tudunk bejelentkezni. A + ppp csatlakozások + nyomonkövetésének egyik leggyakoribb + módja a manuális kapcsolódás. A + következõkben ezért a manuális + csatlakozásokra vonatkozó + legszükségesebb ismereteket mutatjuk be + lépésrõl lépésre. + + + Az eszközleírók + ellenõrzése + + Ha újrakonfiguráltuk a rendszermagunkat, + akkor minden bizonnyal még emlékszünk a + sio eszközre. Ha nem + készítettünk volna új rendszermagot, + ne aggódjunk. Egyszerûen csak a + dmesg parancs kimenetében + keressük meg a modemes eszközhöz tartozó + adatokat: + + &prompt.root; dmesg | grep sio + + Ennek eredményeképpen kapunk egy rövid + összefoglalást a sio + típusú eszközökrõl. Ezek lesznek + a számunkra fontos COM portok. Amennyiben a + modemünk egy szabványos soros portként + mûködik, akkor a sio1 vagy + COM2 néven kell + keresnünk. Ha megtaláltuk, akkor nem kell + új rendszermagot fordítanunk. Amikor a soros + vonali modemünk a sio1 vagy + COM2 porton csatlakozik DOS-ban, + akkor itt a neki megfelelõ eszköz a + /dev/cuad1 lesz (vagy + /dev/cuaa1 &os; 5.X alatt). + + + + + Kapcsolódás manuálisan + + A ppp kézi + irányításával gyorsan, + egyszerûen és minden fájdalomtól + mentesen tudunk csatlakozni az internethez, de olyankor is + hasznos, ha ki akarjuk deríteni, hogy az + internet-szolgáltatónk milyen módon kezeli + a kliensek ppp csatlakozásait. Nos, + akkor ehhez indítsuk is el a + PPP alkalmazást a + paranccsorból. Az alábbi példákban + rendre a pelda névvel hivatkozunk a + PPP-t mûködtetõ + gépre. A ppp tehát a + ppp parancs + begépelésével + indítható: + + &prompt.root; ppp + + Ezzel elindítottuk a ppp + programot. + + ppp ON pelda> set device /dev/cuad1 + + Beállítjuk a modemünket, ami ebben az + esetben a cuad1 (vagy + /dev/cuaa1 &os; 5.X alatt). + + ppp ON pelda> set speed 115200 + + Beállítjuk a csatlakozás + sebességét, ami ebben az esetben 115 200 + kbit/mp. + + ppp ON pelda> enable dns + + Azt mondjuk a ppp programnak, hogy + állítsa be a névfeloldót és + az /etc/resolv.conf állományt + egészítse ki a megfelelõ + névszerverekkel. Ha a ppp nem + képes megállapítani a gépünk + nevét, akkor késõbb ezt még + kézzel is be tudjuk állítani. + + ppp ON pelda> term + + Váltsunk terminál módba, + így mi irányítjuk a modemet. + + deflink: Entering terminal mode on /dev/cuad1 +type '~h' for help + + at +OK +atdt123456789 + + Az at paranccsal hozzuk alaphelyzetbe a + modemet, majd a atdt paranccsal és egy + telefonszám megadásával megkezdjük a + szolgáltató + tárcsázását. + + CONNECT + + Ezzel jelez vissza a kapcsolódás + megkezdésérõl. Ha itt bármilyen + hardvertõl független csatlakozási + probléma merülne fel, akkor ezen a ponton tudunk + ellene tenni valamit. + + ISP Login:felhasznalonev + + Itt kell megadnunk a felhasználói + nevünket, ami megegyezik a szolgáltató + által adott azonosítónkkal. + + ISP Pass:jelszo + + Ezúttal a jelszavunkat kell megadni, amit + szintén a szolgáltató bocsátott + rendelkezésünkre az azonosító mellett. + Akárcsak amikor bejelentkezünk a &os;-be, itt sem + fog látszódni a jelszavunk. + + Shell or PPP:ppp + + Szolgáltatótól függõen + elõfordulhat, hogy ez a sor soha nem is jelenik meg. Itt + kérdezik meg, hogy a szolgáltatónál + egy shellt akarunk használni, vagy csak elindítani + egy ppp kapcsolatot. Ebben a + példában természetesen a + ppp opciót választjuk, mivel + egy internet-elõfizetés birtokosai vagyunk. + + Ppp ON pelda> + + Figyeljük meg, hogy az elsõ + nagybetûssé vált. Ezzel jelzi a program, + hogy sikeresen csatlakoztunk a + szolgáltatónkhoz. + + PPp ON pelda> + + Sikeresen azonosítottuk magunkat a + szolgáltató felé és várjuk az + IP-címünket. + + PPP ON pelda> + + Megkaptuk az IP-címünket és ezzel + sikeresen felépült a kapcsolat. + + PPP ON pelda>add default HISADDR + + Itt adjuk hozzá az alapértelmezett + útvonalat, amire mindenképpen + szükségünk van ahhoz, hogy a + külvilággal is kapcsolatban tudjunk lépni, + mivel jelenleg csak a vonal másik végén + lévõ gépet érjük el. Ha ezt + bizonyos, már meglevõ útvonalak miatt nem + sikerül felvenni, akkor az elé + tegyünk egy ! jelet. Ezt viszont a + kapcsolat felépítése elõtt is + megtehetjük, így menet közben az új + útvonalat felveszi a többi közé. + + Ha eddig minden remekül ment, akkor ezen ponton + már egy élõ internet-kapcsolattal + rendelkezünk, és a programot a CTRLz + lenyomásával a háttérbe is + tehetjük. Ha a PPP felirat ismét + a ppp feliratra váltana, akkor az arra + utal, hogy elvesztettük a kapcsolatot. Erre nem árt + figyelni, mivel ezzel jelzi az aktuális kapcsolat + állapotát. A nagybetûs P-k jelölik, + hogy az adott szinten megvan a kapcsolat a + szolgáltató felé, a kisbetûs p-k pedig + arra utalnak, hogy azon a szinten a kapcsolat valamiért + megszûnt. A ppp csak ezt a két + állapotot ismeri. + + + Nyomkövetés + + Ha közvetlen vonalunk van és mégsem + sikerül kapcsolatot létesíteni, akkor + tiltsuk le a hardveres CTS/RTS + forgalomirányítást a paranccsal. Ez leginkább akkor fordul + elõ, ha csatlakoztunk egy olyan + terminálszerverhez, amely valamennyire képes + kezelni a PPP kapcsolatokat, de a + PPP megáll, mikor adatot + próbál írni a kommunikációs + csatornára, mivel arra a CTS (Clear + To Send — lehet küldeni) + jelzésre vár, amely soha nem fog + megérkezni. Ha mégis ezt a + beállítást akarjuk használni, + akkor a + beállításra is + szükségünk lesz, mivel ez kell bizonyos + karakterek hardverfüggõ + átküldésének + felülbírálásához, + legtöbb esetben a XON/XOFF miatt. A &man.ppp.8; man + oldalon találhatunk errõl és ennek + használatáról részletesebb + leírást. + + Ha egy régebbi gyártmányú + modemünk van, akkor a + beállítás alkalmazása is javasolt. + Alapértelmezés szerint ugyanis nincs + paritás, de a régebbi modemek és (a + forgalom növekedésével) egyes + szolgáltatók még használják + hibaellenõrzésre. Ha Compuserve + elõfizetésünk van, mindenképpen + kapcsoljuk be. + + Amikor a PPP nem tér + vissza parancs módba, akkor gyaníthatóan + az egyeztetésben lesz valahol probléma, mivel a + szolgáltató a kliensüktõl várja + a kezdeményezését. Ezen a ponton a + ~p paranccsal utasíthatjuk a ppp + programot a konfigurációs + információk + átküldésének + megkezdésére. + + Ha egyáltalán nem kapunk promptot a + bejelentkezéshez, akkor nagy a + alószínûsége, hogy az iménti + &unix; stílusú hitelesítés helyett + PAP vagy CHAP protokollt + kell használnunk. A PAP vagy + CHAP használatához + mindössze a következõ + beállításokat kell megadnunk + PPP programnak a terminál + mód aktiválása elõtt: + + ppp ON pelda> set authname felhasznalonev + + ahol a felhasznalonev helyett a + szolgáltatótól kapott + azonosítót kell beírnunk. + + ppp ON pelda> set authkey jelszo + + ahol a jelszo helyett a + szolgáltatótól kapott jelszót kell + megadnunk. + + Ha sikeresen csatlakoztunk, de még nem + találunk semmilyen tartománynevet, akkor a + &man.ping.8; és IP-cím + segítségével tudjuk megvizsgálni, + hogy mûködõképes-e a kapcsolat. Ha + 100 százalékos (100%) csomagvesztést + (packet loss) tapasztalunk, akkor szinte biztos, hogy nincs + meg az alapértelmezett útvonal. + Nézzük meg újra, hogy az beállítást + megadtuk-e a kapcsolat felépítésekor. Ha + viszont már el tudunk érni egy távoli + IP-címet, akkor nagyon valószínû, + hogy az /etc/resolv.conf + állományba nem került bele a megfelelõ + névfeloldó címe. Az említett + állománynak valahogy így kellene + kinéznie: + + domain minta.com +nameserver x.x.x.x +nameserver y.y.y.y + + Ahol az x.x.x.x és + y.y.y.y címeket a + szolgáltatónk névszervereinek + címével kell behelyettesíteni. Ez nem + minden esetben található meg az + elõfizetõi szerzõdésben, de ha + felhívjuk a szolgáltatónkat, akkor minden + bizonnyal elárulják ezeket a + címeket. + + A &man.syslog.3; is alkalmas a + PPP kapcsolatok + naplózására. Ehhez csupán ennyit + kell megadnunk az /etc/syslog.conf + állományban: + + !ppp +*.* /var/log/ppp.log + + A legtöbb esetben ez a lehetõség + már eleve adott. + + + + + + + + + + Jim + Mock + Készítette (a + http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html + alapján): + + + + + A PPP használata Ethernet felett (PPPoE) + + + PPP + over Ethernet + + + + PPPoE + PPP, over Ethernet + + + Ebben a szakaszban azt ismertetjük, hogyan + állítsuk be a PPP-t Ethernet felett (PPP over + Ethernet, PPPoE). + + + A rendszermag beállítása + + A PPPoE mûködéséhez most már + semmilyen módosításra nincs + szükség a rendszermag + beállításaiban. Amennyiben a hozzá + szükséges Netgraph támogatás nem + található a rendszermagban, akkor azt a + ppp önmûködõen + betölti. + + + + + A <filename>ppp.conf</filename> + beállítása + + Íme egy mûködõ + ppp.conf állomány: + + default: + set log Phase tun command # itt akár egy részletesebb naplózást is be tudunk állítani + set ifaddr 10.0.0.1/0 10.0.0.2/0 + +a_szolgaltato_neve: + set device PPPoE:xl1 # az xl1 helyére írjuk be a saját Ethernet eszközünket + set authname FELHASZNALONEV + set authkey JELSZO + set dial + set login + add default HISADDR + + + + + A <application>ppp</application> futtatása + + root + felhasználóként adjuk ki az alábbi + parancsot: + + &prompt.root; ppp -ddial a_szolgaltato_neve + + + + + A <application>ppp</application> indítása a + rendszerindítás során + + Az /etc/rc.conf + állományba vegyük fel a + következõket: + + ppp_enable="YES" +ppp_mode="ddial" +ppp_nat="YES" # csak akkor, ha címfordítás kell a helyi hálózaton, máskülönben "NO" +ppp_profile="a_szolgaltato_neve" + + + + + A szolgáltatási címkék + használata + + Bizonyos esetekben szolgáltatási + címkét (service tag) is használnunk kell a + kapcsolat létrehozásához. A + szolgáltatási címkék + segítségével tudjuk + megkülönböztetni az adott hálózaton + elérhetõ különbözõ PPPoE + szervereket. + + A szolgáltatótól kapott + dokumentációban szerepelnie kell minden ehhez + kapcsolódó információnak. + Amennyiben nem találjuk, érdeklõdjünk a + szolgáltatónál. + + Utolsó reményként + megpróbálhatjuk a Portgyûjteményben + található Roaring Penguin + PPPoE nevû program által javasolt + módszert. Ennél vegyük azonban + számításba, hogy félre tudja + programozni a modemünket, amitõl akár + használhatatlanná is válhat, ezért + kétszer is gondoljuk meg, mielõtt használni + kezdjük. Egyszerûen csak tegyük fel a + szolgáltatótól a modemünk mellé + kapott szoftvert. Ezután lépjünk be a + program System menüjébe. Itt + kell lennie a megfelelõ profilnak, ami + általában az ISP. + + A profil neve (a szolgáltatás + címkéje) a ppp.conf + állományban a PPPoE bejegyzés + részeként jelenik meg a set + device parancsban (ennek pontos részleteit + lásd a &man.ppp.8; man oldalon). Tehát + nagyjából így néz ki: + + set device PPPoE:xl1:ISP + + Az xl1 eszköz nevét + ne felejtsük el a megfelelõ Ethernet + kártyához tartozó eszköz nevére + kicserélni. + + Az ISP helyett pedig írjuk + be az imént kiderített profil nevét. + + A témával kapcsolatban az alábbi + helyeken találhatunk további + információkat: + + + + Cheaper + Broadband with FreeBSD on DSL, írta: Renaud + Waldura (angolul). + + + + + Nutzung von T-DSL und T-Online mit FreeBSD, + írta: Udo Erdelhoff (németül). + + + + + + + PPPoE és a &tm.3com; <trademark + class="registered">HomeConnect</trademark> ADSL Modem Dual + Link + + Ez a modem nem felel meg az RFC 2516 + elõírásainak (A Method for + transmitting PPP over Ethernet (PPPoE), írta: + L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone + és R. Wheeler). Helyette az Ethernet keretekben + eltérõ csomagtípus kódokat + használ. A 3Com-nál + panaszkodjunk, ha szerintünk is be kellene tartaniuk a + PPPoE specifikációját. + + A &os; is csak akkor lesz képes + együttmûködni ezzel az eszközzel, ha + beállítjuk a megfelelõ sysctl + változót. Ezt a rendszerindítás + során automatikusan meg tudjuk tenni az + /etc/sysctl.conf + módosításával: + + net.graph.nonstandard_pppoe=1 + + vagy közvetlenül az alábbi + paranccsal: + + &prompt.root; sysctl net.graph.nonstandard_pppoe=1 + + Sajnos, mivel ez egy rendszerszintû + beállítás, ezért a &tm.3com; + HomeConnect ADSL Modem + és más normális PPPoE kliens vagy szerver + egyszerre nem használható. + + + + + + <application>PPP</application> ATM felett (PPPoA) + + + PPP + over ATM + + + + PPPoA + PPP, over ATM + + + Most a PPP ATM feletti (PPP over ATM, PPPoA) + beállítását fogjuk bemutatni. A PPPoA + az európai DSL szolgáltatók + körében igen nagy népszerûségnek + örvend. + + + PPPoA használata az Alcatel &speedtouch; + USB-vel + + Az ilyen eszközökhöz tartozó PPPoA + támogatás a &os;-ben portként áll + rendelkezésre, mivel az ehhez szükséges + firmware csak az Alcatel + licencelési feltételei szerint + terjeszthetõ, ezért nem lehet része az alap + &os; rendszernek. + + A szoftver telepítéséhez ezért a + Portgyûjteményt kell + használnunk. Telepítsük a net/pppoa portot és + kövessük a mellékelt + utasításokat. + + Sok más USB-s eszközhöz hasonlóan az + Alcatel &speedtouch; USB-nek a gépünkrõl kell + letöltenie a mûködéséhez + szükséges firmware-t. Ez a folyamat &os; alatt + automatizálható, tehát ez a + másolás minden esetben megtörténik, + amikor az eszközt az USB portra csatlakoztatjuk. Ehhez az + /etc/usbd.conf állományba a + következõ adatokat kell beletennünk. Az + állományt root + felhasználóként tudjuk csak + szerkeszteni. + + device "Alcatel SpeedTouch USB" + devname "ugen[0-9]+" + vendor 0x06b9 + product 0x4061 + attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o" + + Az usbd, vagyis az USB + démon engedélyezéséhez az + /etc/rc.conf állományba + tegyük bele az alábbit: + + usbd_enable="YES" + + Emellett még a ppp + kapcsolatot is be tudjuk állítani az + indítás során. Ehhez mindössze a + következõ sort kell megadnunk az + /etc/rc.conf állományban. + Ismét megemlítjük, hogy ezt a mûveletet + csak a root felhasználóval + tudjuk végrehajtani. + + ppp_enable="YES" +ppp_mode="ddial" +ppp_profile="adsl" + + Ezután úgy tudjuk szóra bírni a + kapcsolatot, ha a net/pppoa + porthoz mellékelt ppp.conf + állományt használjuk fel + kiindulásként. + + + + + Az mpd használata + + Az mpd + segítségével többféle + szolgáltatáshoz, köztük a PPTP-hez + hozzá tudunk férni. Az + mpd a Portgyûjteményben + net/mpd néven + található meg. Sok ADSL modemnek + szüksége van egy PPTP tunnelre közte és + gép között. Ilyen modem például + az Alcatel &speedtouch; Home is. + + Elõször magát a portot kell + telepítenünk, majd ezután már be + tudjuk állítani az + mpd-t a saját és a + szolgáltatónk igényei szerint. A port a + rengeteg leírással megtûzdelt minta + konfigurációs állományait a + PREFIX/etc/mpd/ + könyvtárba teszi. Itt a + PREFIX azt a könyvtárat + jelöli, ahova a portok kerülnek. Ez alapból a + /usr/local/. Az + mpd + beállításáról + szóló teljes dokumentáció a + telepítés után elérhetõ HTML + formátumban a + PREFIX/share/doc/mpd/ + könyvtárban. Íme egy példa az + mpd + beállítására ADSL kapcsolatok + esetében. Az ezzel kapcsolatos + beállításaink két + állományra bomlanak, melyek közül az + elsõ az mpd.conf: + + default: + load adsl + +adsl: + new -i ng0 adsl adsl + set bundle authname felhasználónév + set bundle password jelszó + set bundle disable multilink + + set link no pap acfcomp protocomp + set link disable chap + set link accept chap + set link keep-alive 30 10 + + set ipcp no vjcomp + set ipcp ranges 0.0.0.0/0 0.0.0.0/0 + + set iface route default + set iface disable on-demand + set iface enable proxy-arp + set iface idle 0 + + open + + + + A felhasználói azonosító, + amellyel a szolgáltató felé + hitelesítjük magunkat. + + + Az azonosítóhoz tartozó + jelszó, amelyet szintén a + szolgáltatól kaptunk. + + + + Az mpd.links állomány + tartalmazza a felépítendõ kapcsolatra vagy + kapcsolatokra vonatkozó információkat. + Például az elõbbiekhez tartozó + mpd.links tartalma ez: + + adsl: + set link type pptp + set pptp mode active + set pptp enable originate outcall + set pptp self 10.0.0.1 + set pptp peer 10.0.0.138 + + + + A &os;-s számítógépünk + címe, ahonnan az mpd + indul. + + + Az ADSL modemünk IP-címe. Az Alcatel + &speedtouch; Home esetén ez a cím + alapértelmezés szerint a 10.0.0.138. + + + + A kapcsolat ezek után pillanatok alatt + felépíthetõ, ha a root + felhasználóval kiadjuk a következõ + parancsot: + + &prompt.root; mpd -b adsl + + A kapcsolat állapotát a következõ + paranccsal tudjuk ezután ellenõrizni: + + &prompt.user; ifconfig ng0 +ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 + inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff + + &os; alatt az mpd használata + ajánlott az ADSL szolgáltatások + eléréséhez. + + + + + A pptpclient használata + + &os; alatt a net/pptpclient + segítségével is tudunk PPPoA + típusú szolgáltatásokhoz + kapcsolódni. + + A net/pptpclient + felhasználásával úgy tudunk DSL + szolgáltatásokat elérni, ha + feltelepítjük a hozzátartozó portot + vagy csomagot, majd módosítjuk az + /etc/ppp/ppp.conf állományt. + Mind a két mûveletet csak root + felhasználóként tudjuk + lebonyolítani. Ehhez egy ppp.conf + állományt lentebb adtunk meg. A + ppp.conf állományban + található további + beállítási lehetõségekrõl + a &man.ppp.8; man oldalon olvashatunk. + + adsl: + set log phase chat lcp ipcp ccp tun command + set timeout 0 + enable dns + set authname felhasználónév + set authkey jelszó + set ifaddr 0 0 + add default HISADDR + + + + A DSL szolgáltatónktól kapott + felhasználói név. + + + Az elõfizetéshez tartozó + jelszó. + + + + + Mivel az elõfizetéshez tartozó + jelszót a ppp.conf + állományba titkosítatlan formában + kell szerepeltetnünk, ezért gondoskodjunk + róla, hogy senki sem képes olvasni a + tartalmát. A most következõ parancsokkal + beállítjuk, hogy ez az állomány + csak a root felhasználó + számára legyen olvasható. A + részletekért lásd a &man.chmod.1; + és &man.chown.8; man oldalakat. + + &prompt.root; chown root:wheel /etc/ppp/ppp.conf +&prompt.root; chmod 600 /etc/ppp/ppp.conf + + + Ezzel a paranccsal a DSL útválasztónk + felé nyitunk egy tunnelt a PPP kapcsolathoz. Az + Ethernetes DSL modemek általában egy elõre + beállított helyi hálózati + IP-címmel rendelkeznek, amelyhez tudunk csatlakozni. Az + Alcatel &speedtouch; Home esetében ez a cím a + 10.0.0.138. Az + útválasztóhoz adott + dokumentációban keressük meg, hogy az + eszközünkhöz konkrétan milyen cím + tartozik. A tunnel megnyitásához és a PPP + kapcsolat megindításához a + következõ parancsot kell kiadnunk: + + &prompt.root; pptp cím adsl + + + Az iménti parancs végére még + érdemes odatenni az et jelet + (&) is, mivel így a + pptp + mûködését a háttérben + folytatja. + + + A parancs hatására a virtuális tunnelt + megtestesítõ tun + eszköz jön létre a + pptp és + ppp programok között. + Miután visszakaptuk a parancssort, vagy a + pptp program + megerõsítette a kapcsolódás + sikerességét, a keletkezett járatot + így tudjuk ellenõrizni: + + &prompt.user; ifconfig tun0 +tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 + inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 + Opened by PID 918 + + Ha nem tudnánk valamiért csatlakozni, akkor + elõször nézzük meg az + útválasztónk + beállításait, ami általában a + telnet vagy egy + böngészõ segítségével + elérhetõ. Ha még mindig nem vagyunk + képesek csatlakozni, akkor a pptp + parancs kimenetében és + ppp + /var/log/ppp.log néven + elérhetõ naplójában kereshetünk + árulkodó nyomokat. + + + + + + + + + Satoshi + Asami + Eredetileg készítette: + + + + + Guy + Helmer + A hozzávalókat biztosította: + + + + Piero + Serini + + + + + A SLIP használata + + SLIP + + + A SLIP kliensek beállítása + + + SLIP + kliens + + + A következõkben azt mutatjuk be, hogy egy &os;-s + gépet miként tudunk egy hálózaton + statikus névvel beállítani a SLIP + használatával. A dinamikus hálózati + nevek használatakor (vagyis amikor a címünk + minden egyes tárcsázáskor + megváltozhat) egy valamivel bonyolultabb + beállításra van + szükségünk. + + Elõször is állapítsuk meg, hogy a + modemünk melyik soros portra csatlakozik. Sokan + /dev/modem néven egy szimbolikus + linket hoznak létre a valódi eszközre, + például a /dev/cuadN (vagy + &os; 5.X alatt a /dev/cuaaN) + leíróra. Ennek köszönhetõen az + eszköz tényleges névetõl el tudunk + vonatkoztatni és soha nem kell módosítanunk + semmit, ha a modemet például egy másik + portra kell átraknunk. Ugyanis könnyedén + kacifántossá tud válni a helyzet, amikor + egyszerre kell megváltoztatnunk egy rakat dolgot az + /etc könyvtárban és + módosítanunk az összes + .kermrc állományt! + + + A /dev/cuad0 (vagy a &os; 5.X + alatt a /dev/cuaa0) a + COM1 port, a + cuad1 (avagy + /dev/cuaa1) a + COM2 és így + tovább. + + + A rendszermag beállításait + tartalmazó állományban a + következõnek mindenképpen szerepelnie + kell: + + device sl + + Mivel ez általában a + GENERIC rendszermagban + megtalálható, így ez nem okoz semmilyen + gondot, kivéve, hogy ha korábban már + kitöröltük. + + + Dolgok, amiket csak egyszer kell megtenni + + + + Vegyük fel az otthoni gépünket, az + átjárónkat és a + névszervereket az /etc/hosts + állományba. Erre álljon itt egy + konkrét példa: + + 127.0.0.1 localhost loghost +136.152.64.181 water.CS.Example.EDU water.CS water +136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway +128.32.136.9 ns1.Example.EDU ns1 +128.32.136.12 ns2.Example.EDU ns2 + + + + Ehhez a &os; 5.0 elõtti változataiban + az /etc/host.conf + állományban a hosts + szónak meg kell elõznie a + bind szót. A &os; 5.0 + utáni változatai erre a célra + már az /etc/nsswitch.conf + állományt használják, + ezért az állományban szereplõ + sorban ilyenkor a + dns szó elõtt a + files szónak kell megjelennie. + Ezek nélkül mókás dolgok tudnak + történni rendszerünkben. + + + + Szerkesszük át az + /etc/rc.conf + állományt. + + + + A hálózati nevünket a + következõ sorban tudjuk megadni: + + hostname="az.en.nevem" + + Ide a gépünk teljes internetes + hálózati nevét kell + beírnunk. + + + default route + + + Az alapértelmezett + átjárót az alábbi sor + módosításával tudjuk + beállítani úgy, hogy a + + defaultrouter="NO" + + változó értékét + átírjuk: + + defaultrouter="slip-gateway" + + + + + + Készítsük el az + /etc/resolv.conf + állományt, amelyben majd a + következõk legyenek: + + domain CS.Example.EDU +nameserver 128.32.136.9 +nameserver 128.32.136.12 + + névszerver + tartománynév + + Látható, hogy ezek a + névfeloldásért felelõs szerverek + címei. Természetesen a ténylegesen + beírandó tartomány (domain) neve + és a névszerverek címei mindig az + adott környezetünktõl függenek. + + + + Állítsuk be egy jelszót a + root és + toor felhasználóknak + (és mindenki másnak, akinek még nem + lenne). + + + + Indítsuk újra a + számítógépünket és + utána gyõzõdjünk meg róla, + hogy a megfelelõ hálózati névvel + rendelkezik. + + + + + + A SLIP kapcsolatok + felépítése + + + SLIP + kapcsolódás + + + + + Tárcsázzunk és + gépeljük be a slip + parancsot, majd ezt követõen a + gépünk nevét és a + jelszót. Ez leginkább a konkrét + környezettõl függ. Ha a + Kermit nevû programot + használjuk, akkor egy ilyen szkripttel is + próbálkozhatunk: + + # a kermit beállítása +set modem hayes +set line /dev/modem +set speed 115200 +set parity none +set flow rts/cts +set terminal bytesize 8 +set file type binary +# a következõ makró felelõs a tárcsázásért és a bejelentkezésért +define slip dial 643-9600, input 10 =>, if failure stop, - +output slip\x0d, input 10 Azonosito:, if failure stop, - +output silvia\x0d, input 10 Jelszo:, if failure stop, - +output ***\x0d, echo \x0aCONNECTED\x0a + + Természetesen a felhasználói + nevet és a jelszót a sajátunkra kell + benne kicserélnünk. Miután ezzel is + megvagyunk, a Kermit + paranccsorában a csatlakozáshoz + egyszerûen csak írjuk be, hogy + slip. + + + Nem javasoljuk, hogy az + állományrendszeren a jelszavakat + titkosítatlan formában tároljuk. Mindeki + csak a saját felelõsségére tegyen + ilyet. + + + + + Hagyjuk el a Kermit + programot (a Ctrl + z + billentyûkombinációval bármikor + fel tudjuk függeszteni a futását) + és root + felhasználóként írjuk be a + következõt: + + &prompt.root; slattach -h -c -s 115200 /dev/modem + + Ha ezután már képesek vagyunk a + ping paranccsal elérni az + útválasztó másik + oldalán található gépet, akkor + az azt jelenti, hogy sikerült csatlakoznunk! Ha + viszont itt még nem járnánk sikerrel, + akkor az slattach parancsnak ne a + paramétert adjuk meg, hanem a + paramétert. + + + + + + + Hogyan bontsunk egy kapcsolatot + + Tegyük a következõket: + + &prompt.root; kill -INT `cat /var/run/slattach.modem.pid` + + Ez leállítja az slattach + programot. Ne felejtsük el azonban, hogy ezt csak a + root felhasználóval tudjuk + végrehajtani. Ezután térjünk vissza + a kermit programhoz (ha + felfüggesztettük volna, akkor ehhez a + fg parancsra lesz + szükségünk), és lépjünk ki + belõle (q). + + Az &man.slattach.8; man oldala ehhez a ifconfig + sl0 down parancsot javasolja, amellyel + lényegében leállítjuk a + hozzátartozó felületet. + Igazából a kettõ között nincs + semmilyen komolyabb eltérés (mivel az + (ifconfig sl0 is ugyanezt + eredményezi.) + + Néha elõfordulhat, hogy a modem + egyszerûen nem hajlandó eldobni a vonalat. Ilyen + esetekben indítsuk el a kermit + programot és lépjünk ki megint. + Másodjára általában már + sikerül. + + + + + Hibaelhárítás + + Ha valamiért ez mégsem válna be, + akkor csak nyugodtan kérdezõsködjünk a + &a.net.name; levelezési listán. A tapasztalatok + szerint az embereknek eddig a következõkkel voltak + problémáik: + + + + Az slattach + meghívásakor sem a , sem + pedig a paramétert nem + adták meg. (Ez ugyan nem végzetes hiba, de + egyes felhasználók szerint ez + segített megoldani a gondokat.) + + + + Az helyett + -et írtak be (egyes + betûtípusoknál könnyen össze + lehet téveszteni ezeket). + + + + Az ifconfig sl0 + segítségével ellenõrizhetõ + a felület állapota. Például + ilyet láthatunk: + + &prompt.root; ifconfig sl0 +sl0: flags=10<POINTOPOINT> + inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 + + + + Ha a &man.ping.8; no route to + host hibaüzenetet ad, akkor az + útválasztási + táblázattal van a gond. A netstat + -r paranccsal gyorsan ki tudjuk listázni + a rendszerünkben jelenleg nyilvántartott + utakat: + + &prompt.root; netstat -r +Routing tables +Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: + +(root node) +(root node) + +Route Tree for Protocol Family inet: +(root node) => +default inr-3.Example.EDU UG 8 224515 sl0 - - +localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438 +inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - +water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 +(root node) + + Az elõzõ példákat egy + viszonylag forgalmas rendszerbõl ragadtuk ki. A + rendszerünkön megjelenõ számok a + hálózati aktivitás + mértékének + függvényei. + + + + + + + + A SLIP szerverek beállítása + + + SLIP + szerver + + + Ebben a leírásban igyekszünk bemutatni + hogyan kell egy &os; típusú rendszer alatt SLIP + szervert beállítani, ami általában + annyit jelent, hogy a rendszerünben a távoli SLIP + kliensek csatlakozásakor automatikusan elindítjuk + a kapcsolatokat. + + + Elõfeltételek + + TCP/IP hálózatok + + Ez a szakasz igen szakmai jellegû, ezért az + olvasó részérõl + feltételezünk a témában némi + alapismeretet. Ez alatt alapvetõen a TPC/IP + hálózati protokollt értjük, + különös hangsúllyal a + hálózatok és hálózati + csomópontok címzéséen, a + hálózati maszkokon, alhálózatokon, + útválasztáson, az olyan + útválasztási protokollokon, mint + például a RIP. A SLIP + beállítása egy + betárcsázós szerveren mindezen fogalmak + ismeretét igényli, és ha ezekkel + még nem lennénk tisztában, akkor olvassuk + el például Craig Hunt TCP/IP Network + Administration címû könyvét + (O'Reilly & Associates, Inc.; ISBN: 0-937175-82-X) vagy + Douglas Comer TCP/IP protokollról szóló + könyveit. + + modem + + Mindezek mellett még feltételezzük, + hogy már beállítottuk a modem(ek)et + és a rajtuk keresztüli bejelentkezéshez + szükséges állományokat. Ha + még nem készítettük volna fel erre a + rendszerünket, akkor a ad + részletes tájékoztatást a + betárcsázós szolgáltatások + beállításáról. A soros + vonali eszközmeghajtóval kapcsolatban + továbbá érdemes átolvasni a + &man.sio.4; oldalt, valamint a &man.ttys.5;, &man.gettytab.5;, + &man.getty.8; és &man.init.8; oldalakat a + bejelentkezések modemen keresztüli + fogadásáról, illetve talán az + &man.stty.1; oldalt a soros port paramétereinek + megfelelõ + beállításáról (mint + például a clocal a + közvetlenül csatlakozó soros felületek + esetében). + + + + + Gyors áttekintés + + A &os; SLIP szerverként általában a + következõ módon üzemel: a SLIP + felhasználó tárcsázza a &os;-s + SLIP szerverünket, majd bejelentkezik egy specális + SLIP bejelentkezési azonosító + használatával, amely a + /usr/sbin/sliplogin shellt + használja. A sliplogin program az + /etc/sliphome/slip.hosts + állományban megkeresi a speciális + felhasználóhoz tartozó sort, és ha + talál egy ilyet, akkor csatlakoztatja a soros vonalat + egy rendelkezésre álló SLIP + felületre, amelyen aztán a SLIP felültet + beállításához lefuttatja az + /etc/sliphome/slip.login shell + szkriptet. + + + Példa SLIP szerveren keresztüli + bejelentkezésre + + Például, ha a SLIP + felhasználó azonosítója + Shelmerg, akkor az + /etc/master.passwd + állományban a hozzátartozó + bejegyzést nagyjából ilyen: + + Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin + + Amikor Shelmerg bejelentkezik, a + sliplogin az + /etc/sliphome/slip.hosts + állományban keresni fog egy + felhasználó + azonosítójához illeszkedõ sort. + Például tegyük fel, hogy az + /etc/sliphome/slip.hosts + állományban szerepel egy ilyen sor: + + Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp + + A sliplogin ezt a sor fogja + megtalálni, majd a soros vonalat a + következõ elérhetõ SLIP + felülethez kapcsolja, amelyen ezután + végrehajtja az + /etc/sliphome/slip.login szkriptet a + következõ módon: + + /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp + + Ha minden jól megy, akkor az + /etc/sliphome/slip.login kiad egy + ifconfig parancsot azon a SLIP + felületen, amelyre a sliplogin + magát csatlakoztatta (amely a fenti + példában a 0. SLIP felület volt, + és amelyet meg is adtunk + slip.login elsõ + paramétereként), és így + beállítja a helyi IP-címet + (dc-slip), a távoli IP-címet + (sl-helmer), a SLIP felülethez + tartozó hálózati maszkot (0xfffffc00) valamint a + további opciókat + (autocomp). Ha valami rosszul sülne + el, akkor a sliplogin ezekrõl + általában nagyon jó + minõségû, + információdús üzeneteket + készít, amelyeket a + syslogd démon pedig a + /var/log/messages + állományba rögzít. (A + &man.syslogd.8; és &man.syslog.conf.5; man oldalak + és talán maga az + /etc/syslog.conf segíthet + kideríteni, hogy a syslogd + jelenleg naplóz-e, és ha igen, akkor + hova.) + + + + + + A rendszermag beállítása + + + rendszermag + beállítása + + + SLIP + + A &os; alap (vagyis a GENERIC) + rendszermagja támogatja a SLIP (&man.sl.4;) + használatát. Ha viszont saját + rendszermagunk van, akkor elõfordulhat, hogy + beállítások közé fel kell + vennünk a következõ sort is: + + device sl + + Alapértelmezés szerint a &os; nem + továbbít semmilyen csomagot. Amennyiben a &os; + SLIP szerverünket + útválasztóként is + mûködtetni akarjuk, úgy az + /etc/rc.conf állományban a + gateway_enable változó + értékét át kell + állítanunk a + értékre. + + Az új beálllítások + érvényesítéséhez + újra kell indítanunk a + gépünket. + + Ha a &os; rendszermag beállítása + során segítségre szorulnánk, akkor + olvassuk el et. + + + + + A sliplogin beállítása + + Ahogy arra már korábban is utaltunk, az + /etc/sliphome könyvtárban + három állomány felelõs a + /usr/sbin/sliplogin + beállításáért (lásd + &man.sliplogin.8;): a slip.hosts, + amelyekben a SLIP felhasználókat és a + hozzájuk tartozó IP-címeket adjuk meg; a + slip.login, amely általában + csak a SLIP felületet állítja be; (az + elhagyható) slip.logout, amely a + soros vonal bontásakor a + slip.login hatását + igyekszik visszafordítani. + + + A <filename>slip.hosts</filename> + beállítása + + Az /etc/sliphome/slip.hosts + soraiban whitespace karakterekkel tagoltan legalább + négy elem szerepel: + + + + a SLIP felhasználó + bejelentkezési azonosítója + + + + a SLIP kapcsolat helyi címe (a SLIP + szerveréhez képest) + + + + a SLIP kapcsolat távoli címe + + + + hálózati maszk + + + + A helyi és távoli címek lehetnek + hálózati nevek is (amelyeket vagy az + /etc/hosts, vagy pedig az + /etc/nsswitch.conf + állományban szereplõ + beállítások alapján tudunk + feloldani IP-címre), illetve a hálózati + maszk is lehet egy olyan név, amelyet az + /etc/networks fel tud oldani. A + példaként bemutatott rendszerünkben az + /etc/sliphome/slip.hosts + állomány nagyjából így + épül fel: + + # +# login helyi-cím távoli-cím maszk opc1 opc2 +# (normal,compress,noicmp) +# +Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp + + A sorok végén az alábbi + opciók közül egy vagy több + szerepelhet: + + + + — a fejléceket + nem tömörítjük + + + + — a fejlécek + tömörítése + + + + — ha a távoli + végpont engedi, akkor + tömörítsük a + fejléceket + + + + — az ICMP csomagok + tiltása (így például a + ping által generált + csomagok is eldobódnak a + sávszélesség felemésztese + helyett) + + + + SLIP + TCP/IP hálózatok + + A SLIP kapcsolathoz tartozó helyi és + távoli címek megválasztása + függ attól, hogy egy külön TCP/IP + alhálózatot szentelünk-e neki, vagy a + SLIP szerverünkön egy ARP proxy-t + használunk (amely tulajdonképpen nem egy + valódi ARP proxy, de ebben a + szakaszban így fogunk rá hivatkozni). Ha nem + vagyunk biztosak benne, hogy melyik módszert + válasszuk vagy hogy miként osszuk ki az + IP-címeket, akkor nézzünk utána + ezekenek a SLIP használatával kapcsolatos + elõfeltételek között + megemlített könyvekben () és/vagy + konzultáljunk a hálózatunk + karbantartójával. + + Ha a SLIP klienseknek külön + alhálózatokat osztunk ki, akkor a saját + IP-címünkbõl kell létrehoznunk + és kiadnunk ezeket. Ezután + valószínûleg a SLIP + szerverünkön keresztül még meg kell + adnunk egy statikus útvonalat legközelebbi IP + útválasztó felé. + + Ethernet + + Minden más esetben az ARP proxy + módszert kell alkalmaznunk, ahol a SLIP kliensek + IP-címeit a SLIP szerver Ethernet + alhálózatából osztjuk ki, + és ennek megfelelõen az + /etc/sliphome/slip.login és + /etc/sliphome/slip.logout szkripteket + módosítanunk kell úgy, hogy az + &man.arp.8; segítségével képesek + legyenek a SLIP szerver ARP + táblázatában kezelni az ARP proxy + bejegyzéseit. + + + + + A <filename>slip.login</filename> + beállítása + + Egy átlagos + /etc/sliphome/slip.login + állomány körülbelül + ilyen: + + #!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# Egy általános slip vonali bejelentkezési állomány. A sliplogin ezt az alábbi +# paraméterekkel hívja meg: +# 1 2 3 4 5 6 7-n +# slipegys. ttyseb. azonosító helyi-cím távoli-cím maszk egyéb-pmek. +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6 + + Ez a slip.login + állomány az ifconfig + segítségével pusztán + beállítja a megfelelõ SLIP + felülethez tartozó helyi, valamint távoli + címet és a hálózati + maszkot. + + Ha ehelyett azonban az ARP proxy + módszerét választottuk volna + (tehát a SLIP kliensekenek nem akarunk egész + alhálózatokat kiutalni), akkor az + /etc/sliphome/slip.login + állomány eképpen alakul: + + #!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# Egy általános slip vonali bejelentkezési állomány. A sliplogin ezt az alábbi +# paraméterekkel hívja meg: +# 1 2 3 4 5 6 7-n +# slipegys. ttyseb. azonosító helyi-cím távoli-cím maszk egyéb-pmek. +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6 +# A SLIP kliensre vonatkozó ARP kéréseket a mi Ethernet címünkkel +# válaszoljuk meg: +/usr/sbin/arp -s $5 00:11:22:33:44:55 pub + + Láthatjuk, hogy az elõbbi + slip.login állomány egy + arp -s $5 00:11:22:33:44:55 pub + paranccsal egészült ki, ami a SLIP szerver ARP + táblázatában hoz létre egy ARP + bejegyzést. Ez az ARP bejegyzés gondoskodik + róla, hogy a SLIP szerver válaszoljon a + saját Ethernetes MAC-címével, amikor + egy másik IP csomópont a SLIP kliens + IP-címe felõl érdeklõdik. + + + Ethernet + MAC-cím + + + Amikor a fenti példából indulunk + ki, a benne megadott MAC-címet (00:11:22:33:44:55) + feltétlenül cseréljük a + rendszerünk Ethernet kártyájának + MAC-címével, mert különben az + ARP proxy egyáltalán nem fog + mûködni! A SLIP szerverünk + MAC-címét a netstat -i + paranccsal deríthetjük ki, amelynek a + kimenetében a második sor valahogy így + néz ki: + + ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 + + Ebbõl derül ki, hogy az adott rendszer + valódi MAC-címe a 00:02:c1:28:5f:4a — az &man.arp.8; + számára azonban a netstat + -i kimenetében szereplõ pontokat + kettõspontokra kell cserélni, és a + tagokat ki kell egészíteni + kétkarakteres hexadecimális + számokká. Az &man.arp.8; man oldalán + tudhatunk meg ennek részleteirõl + többet. + + + Amikor létrehozzuk az + /etc/sliphome/slip.login és + /etc/sliphome/slip.logout + állományokat, akkor ne felejtsük el + hozzájuk beállítani a + végrehajtást + engedélyezõ bitet sem (tehát ilyenkor + mindig adjuk ki a chmod 755 + /etc/sliphome/slip.login + /etc/sliphome/slip.logout parancsokat is), + különben a sliplogin ezeket + nem tudja majd elindítani. + + + + + + A <filename>slip.logout</filename> + beállítása + + Az /etc/sliphome/slip.logout + állományra nincs feltétlenül + szükségünk (hacsak nem egy ARP + proxy-t akarunk csinálni), de ha + valamiért mégis el akarjuk + készíteni, akkor ehhez a következõ + alapvetõ slip.logout szkript + használható: + + #!/bin/sh - +# +# slip.logout + +# +# Egy logout állomány a slip vonalhoz. A sliplogin ezt a szkriptet a +# következõ paraméterekkel hívja: +# 1 2 3 4 5 6 7-n +# slipegys. ttyseb. login helyi-cím távoli-cím maszk opc-pmek. +# +/sbin/ifconfig sl$1 down + + Ha az ARP proxy módszert + használjuk, és az + /etc/sliphome/slip.logout + felhasználásával akarjuk a SLIP + klienshez tartozó ARP bejegyzést + törölni, akkor ebbõl induljunk ki: + + #!/bin/sh - +# +# @(#)slip.logout + +# +# Egy logout állomány a slip vonalhoz. A sliplogin ezt a szkriptet a +# következõ paraméterekkel hívja: +# 1 2 3 4 5 6 7-n +# slipegys. ttyseb. login helyi-cím távoli-cím maszk opc-pmek. +# +sbin/ifconfig sl$1 down +# Ne válaszoljunk többet a SLIP kliensre vonatkozó ARP kérésekre +/usr/sbin/arp -d $5 + + Az arp -d $5 parancs + eltávolítja az ARP proxy + mûködéséhez bejegyzést, + amelyet még a slip.login + szkripttel vettünk fel a SLIP kliens + bejelentkezésekor. + + Talán felesleges ismételgetésnek + tûnhet: az + /etc/sliphome/slip.logout + állománynak létrehozása + után állítsuk be a + végrehajtásra szóló bitet + (vagyis adjuk ki a chmod 755 + /etc/sliphome/slip.logout parancsot). + + + + + + Az útválasztással kapcsolatos + megfontolások + + + SLIP + útválasztás + + + Ha a hálózatunk többi része + (lényegében az internet) és a SLIP + klienseink között nem az ARP proxy + módszerrel közvetítjük a csomagokat, + akkor a legközelebbi alapértelmezett + átjárókhoz minden bizonnyal fel kell + vennünk statikus útvonalakat, így a SLIP + kliensek alhálózatai a SLIP + szerverünkön keresztül ki tudnak jutni. + + + Statikus útvonalak + + statikus útvonalak + + A legközelebbi alapértelmezett + átjárók felé nem minden esetben + könnyû felvenni statikus útvonalakat (vagy + egyes esetekben pedig egyenesen lehetetlen, mivel nincsenek + meg hozzá a jogaink). Ha az + intézményünkön belül több + átjáró is megtalálható, + akkor bizonyos útválasztók, + például a Cisco és Proteon + gyártmányúak esetében nem csak a + SLIP alhálózatok felé kell + beállítanunk statikus útvonalakat, + hanem azt is meg kell mondanunk, hogy ezekrõl milyen + más útválasztók is tudjanak. + Pontosan emiatt a statikus útválasztás + beüzemeléséhez + szükségünk lesz egy kis + utánajárásra és + próbálgatásra. + + + + + A <application>&gated;</application> + futtatása + + &gated; + + + A &gated; most már + magántulajdonú szoftver, amelynek a + forráskódja a továbbiakban már + nem rendelkezésre a nagyközönség + számára (errõl többet a &gated; honlapján + tudhatunk meg). Ez a fejezet csupán abból a + célból íródott, hogy a + visszafelel kompatibilitást szolgálja azok + számára, akik még valamelyik + régebbi verzióját + használják. + + + A &os; SLIP szerverünkön a statikus + útvonalak beállításával + kapcsolatos fejfájásoktól + részint a &gated; + telepítésével és a + megfelelõ útválasztási protokollok + (RIP/OSPF/BGP/EGP) beállításával + mentesülhetünk, melyek majd + információval látják el a + többi útválasztót a SLIP + alhálózatainkról. A + &gated; + beállításához egy + /etc/gated.conf állományt + kell megírnunk. Az itt látható + állomány csak egy példa, ami + hasonlít ahhoz, melyet a szerzõ a saját + SLIP szerverén használ: + + # +# a dc.dsu.edu tartomány gated konfigurációs állománya -- a gated 3.5alpha5 változatához +# az xxx.xxx.yy RIP információit küldi szét az ed Ethernet felületen +# +# +# Nyomkövetési beállítások: +# +traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; + +rip yes { + interface sl noripout noripin ; + interface ed ripin ripout version 1 ; + traceoptions route ; +} ; + +# +# Engedélyezzünk egy halom nyomkövetési információt a felület és a +# rendszermag között: +kernel { + traceoptions remnants request routes info interface ; +} ; + +# +# A RIP protokollon keresztül adjuk tovább az xxx.xxx.yy állomáshoz +# vezetõ utat az Ethernet felületen: +# + +export proto rip interface ed { + proto direct { + xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP kapcsolatok + } ; +} ; + +# +# A RIP protokollon és az ed Ethernet felületen keresztül +# fogadjuk útvonalakat: + +import proto rip interface ed { + all ; +} ; + + RIP + + A fentebb megadott példa + gated.conf állomány az + xxx.xxx.yy SLIP + alhálózat útválasztási + információit küldi szét a RIP + protokollal az Ethernet felületen keresztül. Ha a + hálózati kártyánk + meghajtására nem az + ed eszközmeghajtót + használjuk, akkor összes + ed felületre vonatkozó + hivatkozást cseréljük ki benne. Ebben a + példában beállítjuk még a + nyomkövetési információk + mentését is a + /var/tmp/gated.output + állományba, amellyel így + tulajdonképpen a &gated; + viselkedését tudjuk megfigyelni. Amennyiben a + &gated; már + tökéletesen mûködik, ezeket a + nyomkövetési beállításokat + akár el is hagyhatjuk. Az + xxx.xxx.yy cím helyett + pedig a saját SLIP alhálózatunk + hálózati címét + helyettesítsük be (de ehhez ne felejtsük + hozzáigazítani a proto + direct részben szereplõ + hálózati maszkot sem). + + Miután telepítettük és + beállítottuk a + &gated; démont a + rendszerünkön, nem kell mást tennünk, + csak a &os; rendszerindításért + felelõs szkriptjeiben a + routed helyett + &gated; démont + elindítani. Ezt a legegyszerûbben úgy + tudjuk elérni, ha a router + és router_flags + változók értékeit + átírjuk az /etc/rc.conf + állományban. A + &gated; man oldalán + találhatunk egy részletesebb + leírást a paranccsori + paraméterekrõl. + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/preface/preface.sgml b/hu_HU.ISO8859-2/books/handbook/preface/preface.sgml new file mode 100644 index 0000000000..3ab05ebe60 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/preface/preface.sgml @@ -0,0 +1,962 @@ + + + + + Elõszó + + Kiknek szánjuk + ezt a könyvet + + A &os;-t még nem ismerõk felfedezhetik, hogy a + könyv elsõ része a &os; + telepítésének folyamatán vezeti + keresztül a felhasználót, valamint + érintõlegesen bemutatja az ezt + alátámasztó &unix;-os alapfogalmakat és + szabályokat. Ennek a résznek a + végigjárása nem kíván + többet, csupán egy kis felfedezõ kedvet, illetve a + menet közben bemutatott új fogalmak + befogadását. + + Ha túljutottunk rajta, a kézikönyv + második, jóval terjedelmesebb része a &os;-t + használó rendszergazdák számára + nyújt mindenféle témában minden + részletre kiterjedõ referenciát. Ezek + közül egyes fejezetek elvárnak némi + elõzetes felkészülést, amelyet a minden + fejezet áttekintésében említeni is + fogunk. + + További információkért olvassuk + át a et. + + Változtatások a harmadik + kiadásban + + A harmadik kiadás a &os; Dokumentációs + Projekt tagjainak két évi kemény + munkájának gyümölcse. Az alábbi + fontosabb változtatások jelennek meg ebben az + új kiadásban: + + + + : a + beállításra és + finomhangolásra vonatkozó részeket + bõvítettük az ACPI energia- és + erõforrás gazdálkodásról + szóló részekkel, a cron + rendszerprogrammal, ill. még több, a rendszermag + finomhangolását elõsegítõ + opció leírásával. + + + + : a biztonságról + szóló részt bõvítettük a + virtuális magánhálózatokról + (VPN-ekrõl), állományrendszeri + hozzáférés-vezérlési + listákról (ACL-ek) szóló elemekkel, + valamint biztonságtechnikai tanácsokkal. + + + + : a kötelezõ + hozzáférés-vezérlésrõl + (MAC-rõl) szóló fejezet teljesen új + ebben a kiadásban. Bemutatja, mi is az a MAC és + hogyan hasznosítható egy &os;-s rendszer + biztonságossá tételében. + + + + : a háttértárakat + tartalmazó részt bõvítettük az + USB-tárakról, állományrendszeri + pillanatképeirõl, + lemezkvótákról, állomány- + és hálózat alapú + állományrendszerekrõl, továbbá + a titkosított partíciókról + szóló részekkel. + + + + : a Vinum egy új fejezet + ebben a kiadásban. Bemutatja a Vinum + logikaikötet-kezelõ használatát, aminek + segítségével eszközfüggetlen + módon hozhatunk létre logikai lemezeket, + szoftveres RAID-0, RAID-1 és RAID-5 + konfigurációkat. + + + + Bekerült egy + hibaelhárításról szóló + rész a PPP és SLIP + leírásához. + + + + : az elektronikus levelezést + ismertetõ részt bõvítettük a + különféle + levéltovábbító rendszerekrõl, + az SMTP hitelesítésrõl, UUCP + protokollról, a fetchmail + és procmail + programokról szóló elemekkel, valamint + egyéb, haladókat megcélzó + témákkal. + + + + : a hálózati + szervereket ismertetõ rész egy teljesen új + fejezet ebben a kiadásban. Benne + megtalálható az Apache HTTP + szerver, az ftpd + szerver, illetve a µsoft; &windows;-os kliensek + számára megfelelõ + Samba szerver + beállítása. Az + érthetõség kedvéért egyes + részek átkerültek ide a , vagyis a haladó + hálózati témákat + tárgyaló fejezetbõl. + + + + : a haladó + hálózati témákat tartalmazó + részt kiegészítettük a &os; és + a &bluetooth; eszközök kapcsolatáról, a + vezeték nélküli + hálózatokról és az aszinkron + adatátvitel módról (ATM-rõl) + szóló ismeretekkel. + + + + Létrehoztunk egy szójegyzéket + abból a célból, hogy a könyvben + használt definíciók és + szakkifejezések egyetlen központi helyen össze + legyenek foglalva. + + + + Számos esztétikai javítást + eszközöltünk a könyvben + található ábrákon és + táblázatokon. + + + + Változtatások a második + kiadásban + + A második kiadás a &os; + Dokumentációs Projekt tagjainak két évi + komoly munkájának eredménye. Az alábbi + fontosabb változtatások jelennek meg ebben a + kiadásban: + + + + Bekerült egy teljes tárgy- és + névmutató. + + + + Mindegyik ASCII-ábrát grafikusak + váltották fel. + + + + Mindegyik fejezet elejére odakerült egy + általános áttekintés, ami egy + rövid összefoglalást ad a fejezet + tartalmáról, valamint közli az + elolvasásához szükséges + ismereteket. + + + + A tartalmat felosztottuk logikailag három + részre: Bevezetés, + Rendszeradminisztráció és + Függelék. + + + + A et (A &os; + telepítése) teljesen + újraírtuk és sok-sok + illusztráció is hozzáadásra + került a könnyebb megértés + érdekében. + + + + A (A &unix; alapjai) + kiegészült a futó programokról, + démonokról és jelzésekrõl + szóló további hasznos + információkkal. + + + + A et (Alkalmazások + telepítése) bõvítettük a + bináris csomagkezelésrõl szóló + további ismeretekkel. + + + + A (Az X Window System) + teljes újraíráson ment át, aminek + folyamán igyekeztünk nagyobb hangsúlyt + helyezni a modern asztali technológiák, mint pl. + a KDE és + GNOME &xfree86; 4.X-en + történõ használatának + leírására. + + + + A (A &os; + rendszerindítási folyamata) + kibõvült. + + + + A + (Háttértárak) két, + korábban külön levõ fejezet, a + Lemezek és Biztonsági + mentések + összeolvasztásából jött + létre. Úgy éreztük, a bennük + helyet kapott témákat sokkal könnyebb + úgy megérteni, ha egyetlen fejezetben + tárgyaljuk ezeket. Egy (hardveres és szoftveres) + RAID-rõl szóló rész is + belekerült. + + + + A (Soros vonali + kommunikáció) teljes + átszervezésre került, valamint a &os; 4.X/5.X + verziókhoz igazítottuk. + + + + A (A PPP és a + SLIP) lényegesen sokat + fejlõdött. + + + + Számos új rész került a be (Egyéb + haladó hálózati + témák). + + + + A (Elektronikus + levelezés) kibõvült a + sendmail + beállításáról + tartalmazó újabb + információkkal. + + + + A (Bináris Linux + kompatibilitás) kiegészült az + &oracle; és a + &sap.r3; + telepítését bemutató + részekkel. + + + + Az alábbi új témák kerültek + tárgyalásra a második + kiadásban: + + + Beállítás és + finomhangolás () + + + + Multimédia () + + + + + + A könyv + felépítése + + A könyvet négy logikailag + elkülönülõ részre osztottuk fel. Az + elsõ, Bevezetés címû + részben bemutatjuk a &os; telepítését + és használatának alapjait. + Elgondolásunk szerint az itt szereplõ fejezeteket sorban + érdemes elolvasni, esetenként kihagyni azokat, amelyek + már az olvasó számára ismert + témákat dolgoznak fel. A második, + Gyakori feladatok címû + részben megismerhetjük a &os; néhány + gyakorta használt lehetõségét. Ez a + rész, valamint az ezt követõ összes többi + tetszõleges sorrendben olvasható. Mindegyik fejezet egy + rövidke összefoglalással kezdõdik, amely + ismerteti, az olvasótól milyen jellegû + tapasztalatokat vár el a fejezet megértése. + Célja, hogy segítsen az olvasónak + megtalálni a számára érdekes + témákat. A harmadik, + Rendszeradminisztráció + címû részben rendszergazdai feladatokat + tárgyalunk. A negyedik, Hálózati + kommunikáció címû + részben hálózatok és szerverek + üzemeltetésével kapcsolatos ismereteket + foglaltunk össze. Végül, az ötödik + rész tartalmazza a függeléket és az + irodalomjegyzéket, hivatkozásokat. + + + + + + + : + Bemutatkozás + + A &os; bemutatkozik az új + felhasználóknak. Szó esik a &os; Projekt + történetérõl, + célkitûzéseirõl és a + fejlesztési modelljérõl. + + + + + : A &os; + telepítése + + Végigvezetjük a felhasználót a + telepítési folyamat egészén. + Bizonyos rendhagyó kérdések, mint + például a soros konzolon keresztül + történõ telepítés is + terítékre kerülnek. + + + + + : A &unix; + alapjai + + Sorra vesszük a &os; operációs rendszer + alapvetõ parancsait és lehetõségeit. + Amennyiben már jártasak vagyunk valamilyen + szinten a &linux; vagy más &unix;-típusú + rendszerek használatában, nyugodtan kihagyhatjuk + ezt a fejezetet. + + + + + : Alkalmazások + telepítése, csomagok és + portok + + Megismerhetjük, miként tudunk külsõ + cégek által fejlesztett alkalmazásokat + telepíteni a &os; + Portgyûjteményének (&os; + Ports Collection) vagy a megszokott bináris csomagok + használatán keresztül. + + + + + : Az X Window + System + + Általános bemutatásra kerül az X + Window System, valamint az X11 használata a &os;-n. + Ezenkívül olvashatunk az elterjedtebb + munkakörnyezetekrõl, mint pl. a + KDE és a + GNOME. + + + + + + + : Asztali + alkalmazások + + Felsoroljuk az ismertebb asztali alkalmazásokat: + webböngészõket és alkalmazói + programcsomagokat, és bemutatjuk, hogyan + telepítsük ezeket &os;-re. + + + + + : + Multimédia + + Megtudhatjuk, hogyan állítsuk be a zene- + és videolejátszást + rendszerünkön. Emellett olvashatunk + néhány multimédiás + alkalmazás használatáról + is. + + + + + : A &os; rendszermag + testreszabása + + Kifejtjük, miért lehet + szükségünk egy új rendszermag + konfigurálására, és + részletesen végigjárjuk egy rendszermag + konfigurációjának, + fordításának és + telepítésének + lépéseit. + + + + + : + Nyomtatás + + Ismertetjük, hogyan lehet nyomtatókat + használni &os; alatt, beleértve a munkalapok + készítésének + mikéntjét, a nyomtatóhasználat + nyilvántartását és a kezdeti + beállításokat. + + + + + : Bináris Linux + kompatibilitás + + Megismerhetjük a &os; bináris Linux + kompabilitásához kapcsolódó + lehetõségeket. Ezenfelül részletekre + is kitérõ telepítési + útmutatót találhatunk + különbözõ népszerû linuxos + alkalmazásokhoz, mint például az + &oracle;, + &sap.r3; és a + &mathematica;. + + + + + + + : + Beállítás és + finomhangolás + + Megismerhetjük a &os; azon paramétereit, + amelyek megfelelõ állításával + a rendszergazdák a lehetõ legtöbbet + képesek kihozni &os; rendszerükbõl. + Ezenkívül bemutatásra kerül a &os;-ben + használt számos konfigurációs + állomány, valamint hogy ezeket hol + találhatjuk meg. + + + + + : A &os; + rendszerindítási folyamata + + Tartalmazza a &os; rendszerindítási + folyamatának leírását, és + elmagyarázza, miként lehet ezt vezérelni + a konfigurációs beállítások + segítségével. + + + + + : Felhasználók + és hozzáférések alapvetõ + kezelése + + Bemutatja a felhasználói fiókok + létrehozását és + kezelését. Emellett megemlíti a + felhasználókra + érvényesíthetõ + erõforrás-megszorításokat, illetve + egyéb fiókkezelési feladatokat. + + + + + : + Biztonság + + Bemutatásra kerül a &os; rendszerünk + biztonságossá tételére alkalmas + számos különféle eszköz, + többek közt a Kerberos, IPsec és az + OpenSSH. + + + + + : A jail + alrendszer + + Megtudhatjuk, hogyan mûködik az az + alkalmazások elszigeteléséért + felelõs jail alrendszer, valamint miben emelkedik ki a + &os;-ben is megtalálható hagyományos + chroot megoldással szemben. + + + + + : Kötelezõ + hozzáférés-vezérlés + + Megismerhetjük a kötelezõ + hozzáférés-vezérlést + (MAC-et), valamint azt, hogyan is tudjuk felhasználni + egy &os;-s rendszer biztonsága + érdekében. + + + + + : Biztonsági + események vizsgálata + + Kiderül, mit jelent a &os;-ben az események + vizsgálata, illetve mindez hogyan + telepíthetõ, konfigurálható + és miként tudjuk a vizsgálatok adatait + kielemezni vagy felügyelni. + + + + + : + Háttértárak + + Bemutatásra kerül, miként + kezelhetjük a háttértárolókat + és állományrendszereket a &os;-ben. Ide + tartoznak a fizikai lemezek, RAID-tömbök, optikai + és szalagos egységek, memória + alapú lemezek és a hálózati + állományrendszerek. + + + + + : GEOM, a moduláris + lemezszervezõ rendszer + + Megismerhetjük a &os;-ben jelenlevõ GEOM + alrendszert és az általa támogatott + különbözõ RAID-szintek + beállítását. + + + + + : A Vinum + kötetkezelõ + + Megtudhatjuk, hogyan használjuk a Vinumot, a + logikaikötet-kezelõt, amely + eszközfüggetlen logikai lemezeket, szoftveres + RAID-0, RAID-1 és RAID-5 konfigurációkat + biztosít. + + + + + : + Virtualizáció + + Tartalmazza a virtualizációs rendszerek + által felkínált lehetõségek + bemutatását és használatát + a &os;-vel. + + + + + : Honosítás, az + I18N/L10N használata és + beállítása + + Bemutatja, hogyan használjuk a &os;-t a rendszer + és az alkalmazások szintjén az + angoltól eltérõ nyelveken. + + + + + : Az + élvonal + + Elmagyarázza, mik az alapvetõ + különbségek a &os;-STABLE, &os;-CURRENT + verziók, valamint a &os; kiadások + között. Bemutatja, mely felhasználók + lehetnek azok, akik a legtöbbet tudnak profitálni + egy fejlesztõi rendszer + használatából, illetve körvonalazza + ennek folyamatát. + + + + + + + : Soros vonali + kommunikáció + + Kifejti, hogyan csatlakoztassunk terminált vagy + modemet a &os; rendszerünkhöz, ha + behívó vagy betárcsázós + kapcsolatot szeretnénk létrehozni. + + + + + : A PPP és a + SLIP + + Bemutatja, miként tudjuk PPP-n, SLIP-en és + Etherneten keresztüli PPP-vel (PPPoE) összekapcsolni + a &os;-t távoli rendszerekkel. + + + + + : Elektronikus + levelezés + + Megismerhetjük egy elektronikus levelezõ szerver + különféle komponenseit, és + elmélyedhetünk az egyik leghíresebb + levelezõszerver-szoftver, a + sendmail + használatában és felületesebb + konfigurálásában. + + + + + : + Hálózati szerverek + + Részletekbe menõen és + konfigurációs példákkal mutatja + be, miként tudunk hálózati + állományrendszer kiszolgálónak, + névszervernek, hálózati + információs rendszer kiszolgálónak + vagy idõszinkronizációs szervernek + beállítani egy &os;-s + számítógépet. + + + + + : + Tûzfalak + + Kifejti a szoftveres tûzfalak mögött + álló filozófiát, valamint + részletesen tárgyalja a + különbözõ, &os;-n elérhetõ + tûzfalak konfigurációját. + + + + + : Egyéb + haladó hálózati + témák + + Feldolgoz számos hálózati + témát, beleértve az internet kapcsolat + helyi hálózaton (LAN-on) keresztül + történõ megosztását több + számítógép között, + haladó forgalomirányítási + kérdéseket, vezeték nélküli + hálózatok + beállítását, &bluetooth;, ATM, + IPv6 és sok minden mással kapcsolatos + információkat. + + + + + + + : A &os; + beszerzése + + Felsorolja azokat a forrásokat, ahonnan a &os; CD-n + vagy DVD-n beszerezhetõ, valamint azokat a honlapokat, + ahonnan letölthetõ vagy telepíthetõ a + &os;. + + + + + : + Irodalomjegyzék + + A könyv sok tekintetben olyan témákat + is érint, amelyek felkelthetik az olvasó + érdeklõdését és ezek + kapcsán bõvebb magyarázatra vágyik. + Az irodalomjegyzékben ezért + összeírtunk számos remek könyvet, + amelyekre hivatkozunk is a fejezetekben. + + + + + : + Erõforrások az interneten + + Tartalmazza a &os; felhasználók + számára elérhetõ azon + fórumokat, ahová beküldhetik + kérdéseiket, illetve szakmai jellegû + társalgásokat folytathatnak. + + + + + : + PGP-kulcsok + + Az egyes &os; fejlesztõk PGP-kulcsait sorolja + fel. + + + + + A könyvben + alkalmazott konvenciók + + A könnyebb és egységesebb + olvashatóság kedvéért az alábbi + konvenciókat igyekeztünk követni a + könyvben. + + Tipográfiai konvenciók + + + + Dõlt + + A dõlt betûket + állománynevek, URL-ek, kiemelt szövegek + és a szakmai kifejezések elsõ + elõfordulásakor használjuk. + + + + + Írógépszerû + + Az + írógépszerû + betûket hibaüzenetek, parancsok, környezeti + változók, portok, + számítógépek, + felhasználók, csoportok, eszközök + nevei, változók és + kódrészletek esetén + használjuk. + + + + + Félkövér + + A félkövér + betûket alkalmazások, parancsok és + billentyûk megnevezésénél + használjuk. + + + + + + Felhasználói bevitel + + A billentyûket + félkövérrel írjuk, hogy + kiemelkedjenek a szöveg többi részébõl. + Az egyszerre megnyomni kívánt billentyûk + kombinációját a `+' + jelöléssel adjuk meg, mint például: + + + + Ctrl + Alt + Del + + + + Ez azt jelenti, hogy a felhasználónak a + Ctrl, Alt és + Del billentyûket egyszerre kell + lenyomnia. + + Azokat a billentyûket, amelyeket egymás után + kell lenyomni, vesszõvel választjuk el, + például: + + + + Ctrl + X + , + + Ctrl + S + + + + Ez tehát azt jelenti, hogy a felhasználónak + elõször a Ctrl és + X billentyûket, majd a Ctrl + és S billentyûket kell egyszerre + lenyomnia. + + Példák + + A E:\> kijelzéssel + kezdõdõ példák egy &ms-dos; parancsot + jelölnek. Ha másképpen nem említjük, + ezeket a parancsokat a modern µsoft.windows;-okban + található Parancssorból kell + kiadni. + + E:\> tools\fdimage floppies\kern.flp A: + + A &prompt.root; kijelzéssel kezdõdõ + példák a &os;-ben rendszeradminisztrátori + jogokat igénylõ parancsok kiadását + jelentik. Ehhez bejelentkezhetünk a root + felhasználóval, vagy felvethetjük a + rendszeradminisztrátori jogokat a saját + felhasználói fiókunkból a &man.su.1; + használatával is. + + &prompt.root; dd if=kern.flp of=/dev/fd0 + + A &prompt.user; kijelzéssel kezdõdõ + példák olyan parancsra utalnak, amelyeket egy + normál felhasználói fiókból + érdemes kiadni. Hacsak másképpen nem + jelezzük, a C-shell szintaxisát használjuk a + környezeti változók és egyéb + parancsok megadásakor. + + &prompt.user; top + + Köszönetnyilvánítás + + A könyv, amit itt most olvashatunk, több száz + ember együttes munkájának eredménye a + világ minden tájáról. Akár csak + elgépeléseket javítottak, vagy komplett + fejezeket adtak hozzá, minden + hozzájárulás hasznosnak bizonyult. + + Emellett sok cég anyagilag is támogatta a + könyv fejlõdését, lehetõvé + téve ezáltal, hogy a szerzõk teljes + munkaidõben dolgozhassanak rajta, pénzt kapjanak az + írásaikért stb. Leginkább a BSDi + (amelyet késõbb felvásárolt a Wind River Systems) adott + teljes munkaidõs fizetést a &os; + Dokumentációs Projekt tagjainak a könyv + gondozásához, amely végül az elsõ + nyomtatott kiadás megjelentetéséhez vezetett + 2000 márciusában (ISBN 1-57176-241-8). A Wind River + Systems ezt követõen további szerzõket is + finanszírozott a nyomtatási-szedési + infrastruktúra továbbfejlesztéséhez + és a könyv tartalmának + bõvítéséhez. Ennek eredménye lett + a második nyomtatott kiadás, amely 2001 + novemberében jelent meg (ISBN 1-57176-303-1). 2003 — + 2004 folyamán a FreeBSD Mall, Inc. + támogatott anyagilag számos + hozzájárulót a kézikönyvet + illetõ munkájáért, a harmadik nyomtatott + kiadásra történõ + elõkészítésben. + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/printing/Makefile b/hu_HU.ISO8859-2/books/handbook/printing/Makefile new file mode 100644 index 0000000000..72d9e9b80a --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/printing/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= printing/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml new file mode 100644 index 0000000000..2abc412ff7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml @@ -0,0 +1,6901 @@ + + + + + + + + + Sean + Kelly + Írta: + + + + + Jim + Mock + Átdolgozta és frissítette: + + + + + + Nyomtatás + + + Áttekintés + + LPD nyomtatási + rendszer + nyomtatás + + A &os; képes rengeteg féle és fajta + nyomtatóval együttmûködni, a + legrégebbi vegyszeres nyomtatótól kezdve + egészen napjaink lézernyomtatójáig, + aminek köszönhetõen alkalmazásaikkal nagyon + jó minõségû nyomtatásokat tudunk + készíteni. + + A &os; a helyi hálózaton + nyomtatószervernek is beállítható. + Ekkor a vele közös hálózatra + csatlakozó többi, &os;, &windows; vagy &macos; + rendszerû számítógéptõl + képes nyomtatási kéréseket elfogadni. + A &os; gondoskodik róla, hogy egyszerre csak egy + nyomtatás készüljön el, számon + tartja, hogy mely felhasználók és + számítógépek nyomtatnak a + legtöbbet, és minden feladathoz + munkalapot (banner page) készít, + amiben többek közt megtalálhatjuk, hogy kihez + tartozik. + + A fejezet elolvasása során + megismerjük: + + + + hogyan állítsuk be a &os; nyomtatási + sorát; + + + + hogyan telepítsünk nyomtatási + szûrõket, hogyan kezeljünk + különbözõ speciális + nyomtatási feladatokat, tehát + például miként alakítsuk át + a beérkezõ dokumentumokat olyan nyomtatási + formátumra, amelyet a nyomtatónk is + megért; + + + + hogyan engedélyezzük a fejléc- vagy + munkainformációk + kinyomtatását; + + + + hogyan nyomtassunk más + számítógépekhez csatlakoztatott + nyomtatókkal; + + + + hogyan nyomtassunk a hálózatra + közvetlenül kapcsolt nyomtatókkal; + + + + hogyan állítsuk be a nyomtató + korlátait, például a nyomtatási + munkák méretét, amivel egyes + felhasználók nyomtatását + visszafoghatjuk; + + + + hogyan készítsünk nyomtatási + kimutatásokat és nyilvántartást a + nyomtató használatáról; + + + + hogyan keressük meg a nyomtatás során + felmerül problémák okait. + + + + A fejezet elolvasásához ajánlott: + + + + egy új rendszermag + beállításának és + telepítésének ismerete (). + + + + + + Bevezetés + + A &os;-ben a nyomtatók + mûködéséhez be kell állítani + az LPD nyomtatási rendszert. Ez + a Berkeley sornyomtatási rendszere, amelyet ezentúl + röviden csak LPD-nek fogunk + hívni. Ez a &os; alapértelmezett szabványos + nyomtatásvezérlõ rendszere. Ebben a fejezetben + az LPD és annak + konfigurációja kerül bemutatásra. + + Ha már találkoztunk az + LPD-vel vagy hozzá + hasonló rendszerekkel, akkor innen nyugodtan ugorhatunk az + Kezdeti + beállítások címû + szakaszra. + + Az LPD vezérli a + számítógéphez csatlakoztatott + nyomtató összes funkcióját. + Számos feladata van: + + + + Felügyeli a lokálisan és + hálózaton keresztül csatlakoztatott + nyomtatók hozzáféréseit. + + + nyomtatási + munkák + + + Lehetõvé teszi az átküldött + állományok kinyomtatását, + amelyeket munkáknak + nevezünk. + + + + Minden nyomtatóhoz fenntart egy nyomtatási + sort, amivel meg tudja + akadályozni, hogy egyszerre több + felhasználó is hozzá tudjon férni + az egyes nyomtatókhoz. + + + + A fejléceket (vagy más + néven munka- vagy + elválasztó lapokat) + nyomtat, így a felhasználók könnyen + megtalálják a saját nyomtatásaikat + a többi közt. + + + + Felügyeli a soros portokon csatlakozó + nyomtatók kommunikációs + beállításait. + + + + A hálózaton keresztül + átküli a munkákat egy másik + számítógép + LPD sorába. + + + + A nyomtatandó munkák + formázásához lefuttatja az adott + nyomtató nyelvéhez és + képességeihez illeszkedõ speciális + szûrõket. + + + + Nyilvántartja a nyomtató + kihasználtságát. + + + + A beállításait tartalmazó + állomány (/etc/printcap) + és a speciális szûrõprogramok + segítségével az + LPD sokféle nyomtatón + képes az összes említett feladatot vagy annak + egy részét megvalósítani. + + + Amiért nyomtatási sort érdemes + használni + + Amikor csak egyedül vagyunk a rendszerben, + felmerülhet bennünk a kérdés, hogy minek + is kellene nekünk veszõdni a nyomtatási sor + beállításával, hiszen nincs + szükségünk sem a + hozzáférések + vezérlésére, sem fejlécekre, sem + pedig nyilvántartásra. Noha akár + közvetlenül is el tudjuk érni a + nyomtatót, néhány okból azért + mégis érdemes nyomtatási sort + használni: + + + + Az LPD a + háttérben nyomtat, ezért ilyenkor nem + kell megvárni, amikor az adat + átmásolódik a nyomtatóra. + + + &tex; + + + Az LPD tetszõlegesen + tudja alakítani a nyomtatási munkákat: + hozzájuk tud tenni különbözõ + adatokat (dátum és idõ), vagy a + speciális állományokat + (például a &tex; DVI formátumát) + képes megértetni a nyomtatóval, + és nem nekünk kell mindezeket a + lépéseket elvégeznünk. + + + + Számos nyomtatási lehetõséggel + rendelkezõ szabad és kereskedelmi program arra + számít, hogy a rendszerünkben + nyomtatási sor található, ezért + egy ilyen beállításával sokkal + könnyebb használni ezeket a szoftvereket. + + + + + + + + Kezdeti beállítások + + Úgy tudjuk használni a nyomtatókat az + LPD nyomtatási + rendszerével, ha egyaránt beállítjuk a + nyomtatót és magát az + LPD-t is. Itt a + beállítás két szintjét + tárgyaljuk: + + + + Az Alacsonyszintû + nyomtatóbeállítás + címû szakaszból megtudhatjuk, hogyan tudunk + csatlakoztatni egy nyomtatót, hogyan adjuk meg az + LPD-nek, miként + kommunikáljon vele, hogyan nyomtassunk ki egyszerû + szöveges állományokat a + nyomtatón. + + + + A Magasszintû + nyomtatóbeállítás + szakaszban bemutatjuk, hogyan nyomtassunk ki + különféle speciális + állományokat, hogyan + készítessünk fejléceket, hogyan + nyomtassuk hálózaton keresztül, hogyan + vezéreljük a nyomtatók + hozzáférését és hogyan + tartsuk nyilván a nyomtató + használatát. + + + + + Alacsonyszintû + nyomtatóbeállítás + + Ebben a szakaszban láthatjuk, miképpen kell + beállítani a nyomtatónkat és az + LPD hogyan lesz képes azt + használatba venni. Az alapoktól + kezdünk: + + + + A Hardveres + beállítás címû + szakaszban abban kapunk segítséget, hogyan + kell a nyomtatót a + számítógéphez + csatlakoztatni. + + + + A Szoftveres + beállítás címû + szakaszban az LPD + nyomtatási rendszer + beállítását tartalmazó + állományt (/etc/printcap) + vesszük sorra. + + + + Amennyiben olyan nyomtatót akarunk + beállítani, amely nem helyileg, hanem valamilyen + hálózati protokollon keresztül csatlakozik, + nézzük meg a Nyomtatók + hálózati adatcsatlakozással + címû szakaszt. + + Habár ez a szakasz nevében csupán + Alacsonyszintû + nyomtatóbeállításról + szól, meglehetõsen szerteágazó tud + lenni. A nyomtató hardveres és szoftveres + életre keltése az egyik legnehezesebb feladat. Ha + van egy mûködõ nyomtatónk, a + fejlécek és a nyilvántartás + beállítása tulajdonképpen már + gyerekjáték. + + + Hardveres beállítás + + Ebben a szakaszban a nyomtatók + csatlakoztatásának lehetséges + módozatairól esik szó. Beszélni + fogunk mindenféle portokról és + kábelekrõl, és a &os; + rendszermagjának az egyes nyomtatók + használatához szükséges + beállításairól is. + + Ha korábban tudtuk csatlakoztatni a + nyomtatónkat, és más + operációs rendszerekkel már sikeresen is + nyomtattunk vele, akkor rögtön ugorhatunk is a Szoftveres + beállításokat tartalmazó + szakaszra. + + + Portok és kábelek + + A személyi + számítógépekhez kapható + nyomtatók általában a + következõ három csatolófelület + egyikével rendelkeznek: + + + + + nyomtató + soros + + + + A soros, más + néven RS-232-es vagy COM porton keresztül + kommunikáló felületek a + számítógép soros + portján küldenek adatot a + nyomtatónak. A soros + csatolófelületek igen elterjedtek a + számítógépiparban, + könnyen tudunk ilyen kábelt szerezni, + gyorsan is gyártható. Elõfordulhat, + hogy a soros csatolófelületek + használatához valamilyen + különleges kábelre, valamint bonyolult + kommunikációs + beállítások + megadására van szükség. A + legtöbb soros port által + elérhetõ legnagyobb adatátviteli + sebesség másodpercenként + 115 200 bit, ami miatt azonban a komolyabb grafikai + tartalmak nyomtatása szinte lehetetlen. + + + + nyomtató + párhuzamos + + + + A párhuzamos + csatolófelületek a + számítógépünk + párhuzamos portjával küldenek + adatokat a nyomtatónak. A párhuzamos + felületek gyorsabbak az RS-232 soros + felületnél, és a + számítógéppiacon is gyakran + megtalálhatóak. Könnyen tudunk ilyen + kábelt szerezni, azonban kézileg nehezebb + elkészíteni. A párhuzamos + csatolófelületekhez általában + nem tartoznak kommunikációs + beállítások, ezért + rendkívül egyszerûen el lehet + boldogulni velük. + + + centronics + párhuzamos nyomtató + + + A párhuzamos felületekre olykor + Centronics + csatolófelületként is hivatkoznak, + amelyet egy nyomtatótípus után + neveztek el. + + + + nyomtató + USB + + + + A Universal Serial Bus (Univerzális soros + busz) rövidítéseként + használt USB elnevezésû + csatolófelület a párhuzamos és + a soros felületeknél jóval nagyobb + sebességre képes. A + hozzátartozó kábelek + felépítése egyszerû és + az áruk olcsó. Habár a + nyomtatás terén az USB hivatott + leváltani az RS-232-es soros és a + párhuzamos felületeket, nem mindegyik &unix; + rendszer támogatja kellõképpen. Ezt + a problémát például + úgy kerülhetjük el, ha olyan + nyomtatót vásárolunk, amelyen a + legtöbbhöz hasonlóan a + párhuzamos és az USB csatlakozás is + megtalálható. + + + + A párhuzamos felületeken + általában csak egy irányban tudunk + üzeneteket küldeni (a + számítógéptõl a + nyomtatóhoz), miközben az USB és a soros + felület használatával mind a két + irányban is. &os; alatt viszont már az + újabb (EPP és ECP) párhuzamos portok + egy IEEE 1284 szabványú kábellel + képesek oda-vissza kommunikálni. + + PostScript + + A párhuzamos nyomtatók + kétirányú + kommunikációját általában + két mód közül az egyiken + szokták megvalósítani. Az elsõ + esetben a &os; a nyomtatóhoz egy speciális + meghajtót használ, amely ismeri az + általa beszélt nyelvet. Ilyenek a + tintasugaras nyomtatók, amelyek más + egyéb állapotinformációk mellett + ezen keresztül képesek jelezni a tinapatronokban + levõ tinta mennyiségét. A második + esetben a nyomtató ismeri a &postscript; + nyelvet. + + A &postscript; nyelvû munkák + valójában a nyomtatónak + küldött programok. Használatukhoz + még papírra sincs feltétlenül + szükség, és adódhat, hogy + közvetlenül a + számítógépnek + válaszolnak. A &postscript; is + kétirányú kommunikáción + keresztül értesíti a + számítógépet az olyan + gondokról, mint például a &postscript; + programokban levõ hibák vagy a papír + beakadása, amely információnak a + felhasználók szoktak örülni. + Hovatovább ez a kétirányú + kommunikáció a kulcsa a &postscript; + nyomtatók hatékony + nyilvántartásának is: egyszerûen + lekérdezzük a nyomtatótól a + lapszámlálót (ami megadja, hogy a + nyomtató eddig mennyi lapot nyomtatott ki), + kiküldjük a felhasználóhoz + tartozó feladatot és ismét + lekérdezzük a lapszámlálót. + A két érték + kivonásából + tájékozódhatunk a + felhasználó által igényelt lapok + mennyiségérõl. + + + + + Párhuzamos portok + + A párhuzamos csatolófelületen + érintkezõ nyomtató + használatához kapcsoljunk össze + számítógépünket és + nyomtatónkat egy párhuzamos kábellel. + Az erre vonatkozó konkrét + utasítások a nyomtató és/vagy a + számítógép + kézikönyvében olvashatóak. + + Jegyezzük meg, hogy a + számítógép melyik + párhuzamos portjára csatlakoztattuk a + kábelt. &os; alatt az elsõ ilyen port a + ppc0 eszköz, a második + pedig a ppc1 eszköz lesz és + így tovább. A nyomtatóeszköz + elnevezése ugyanezt a sémát + követi: a /dev/lpt0 lesz az + elsõ párhuzamos porton levõ nyomtató + stb. + + + + + Soros portok + + A soros csatolófelületet + használó nyomtatók + beüzemeléséhez elõször egy + soros kábel segítségével + kapcsoljuk össze a + számítógépünkkel. Ennek + pontos részleteit a nyomtató és/vagy a + számítógépünk + kézikönyvében találhatjuk + meg. + + Ha nem vagyunk benne biztosak, hogy milyen a + megfelelõ soros kábel, + próbáljunk az alábbiak alapján + dönteni: + + + + A modem kábele a + két oldalán levõ az egymásnak + megfelelõ tüskéket + közvetlenül összeköti. Ezt a + típust nevezik DTE-DCE + kábelnek. + + + null-modem kábel + + + A null-modem kábel + bizonyos érintkezõket rendesen, + másokat pedig fordítva köt össze + (például a küldõt a + fogadóval), illetve némelyeket + rövidre zár közvetlenül a + csatlakozón belül. Ez a típus a + DTE-DTE kábel. + + + + Néhány speciális + nyomtató esetén elõfordul még + a soros + nyomtatókábel, amelyek + leginkább a null-modem kábelekez + hasonlítanak, azonban az ott rövidre + zárt csatornák itt a nekik megfelelõ + érintkezõknek továbbítanak + jeleket. + + + + jelváltási + sebesség + paritás + forgalomirányítási + protokoll + + Emellett még a nyomtató + elõlapján vagy az alján + található kapcsolók + segítségével be kell + állítanunk a nyomtatóhoz tartozó + kommunikációs paramétereket is. Itt + válasszuk azt a bps (a bitek + száma másodpercenként) + értéket, amelyet még a + számítógépünk és a + nyomtatónk is egyaránt képes + támogatni. Válasszunk 7 vagy 8 adatbitet, + páros, páratlan vagy kikapcsolt + paritásbitet és 1 vagy 2 stopbitet. Ekkor + tudjuk megadni a forgalomirányítási + protokollt is: lehet kikapcsolt, XON/XOFF (ez az ún. + sávon belüli vagy + szoftveres) + forgalomirányítás. Ne felejtsük + el ezeket a beállításokat a most + következõ szoftveres + beállítások elvégzése + során sem. + + + + + + Szoftveres beállítás + + Ebben a fejezetben tárgyaljuk a &os;-ben + található LPD + nyomtatási rendszer mûködéséhez + és a nyomtatáshoz szükséges + szoftveres beállításokat. + + Íme az elvégzendõ lépések + rövid vázlata: + + + + Amennyiben szükséges, + állítsuk be a rendszermagunkat + nyomtató által használt portra. + Ehhez A rendszermag + beállítása szakaszban + olvashatjuk mit is kell pontosan tenni. + + + + Ha párhuzamos portot használunk, akkor + állítsuk be, hogy a párhuzamos port + miként fog kommunikálni. A párhuzamos + port kommunikációs módjának + beállítása címû + szakasz tárja fel ennek részleteit. + + + + Próbáljuk ki, hogy ezek után az + operációs rendszer képes-e adatot + küldeni a nyomtatónak. A nyomtató + kommunikációjának + ellenõrzése szakaszban kapunk erre + pár javaslatot. + + + + Az /etc/printcap + állomány + felhasználásával + állítsuk be a nyomtatónkhoz a + LPD-t. Errõl a fejezet + további részei adnak majd + felvilágosítást. + + + + + A rendszermag beállítása + + Az operációs rendszer magja + eszközök egy adott csoportjával + képes együttmûködni, amiben a soros + és párhuzamos felületen csatlakozó + nyomtatók is megtalálhatóak. Azonban + ha a rendszermag nem ismeri fel még valamelyiket, + akkor a soros vagy párhuzamos portok + használatához külön + támogatásra van szükség. + + Így tudjuk megnézni, hogy a jelenleg + használt rendszermag támogatja-e a soros + csatolófelületet: + + &prompt.root; grep sioN /var/run/dmesg.boot + + Itt az N + nullától kezdõdõen adja meg a soros + port sorszámát. Amennyiben látunk + valami ilyesmit: + + sio2 at port 0x3e8-0x3ef irq 5 on isa +sio2: type 16550A + + Ez azt jelenti, hogy a rendszermag sikeresen + észlelte a portot. + + A párhuzamos csatolófelület + támogatásáról így + gyõzõdhetünk meg: + + &prompt.root; grep ppcN /var/run/dmesg.boot + + Itt az N + nullától kezdõdõen + sorszámozza a párhuzamos portot. Ha + eredményül valami hasonlót kapunk: + + ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 +ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode +ppc0: FIFO with 16/16/8 bytes threshold + + Ez arra utal, hogy a rendszermagunk tud a + portról. + + Elõfordulhat azonban, hogy az + operációs rendszer csak akkor fogja + észrevenni a nyomtatásra használt soros + vagy párhuzamos portot, ha + átállítjuk a rendszermagunkat. + + A soros port támogatásának + beállításához olvassuk el a + rendszermag beállításáról + szóló szakaszt. A párhuzamos port + támogatásához szintén olvassuk + el ugyanazt a szakaszt és a most + a következõt. + + + + + + A párhuzamos port kommunikációs + módjának beállítása + + A párhuzamos csatolófelület + használata esetén választhatunk, hogy a + &os; milyen módon tartsa a kapcsolatot a + nyomtatóval: megszakításokkal + vezérelje (interrupt-driven) vagy esetleg folyamatosan + kérdezgesse (polled). A &os; általános + meghajtója (&man.lpt.4;) a &man.ppbus.4; alrendszert + használja, ami a portot a &man.ppc.4; meghajtón + keresztül vezérli. + + + + A megszakítás + alapú módszer a GENERIC + rendszermagban alapértelmezés. Ilyenkor az + operációs rendszer egy + megszakításkérés + felhasználásával értesül + arról, hogy a nyomtató mikor áll + készen adatok fogadására. + + + + A lekérdezéses + módszer használata során az + operációs rendszer folyamatosan + érdeklõdik a nyomtató + rendelkezésre + állásáról. Amikor erre + pozitív megerõsítést kap, akkor + a rendszermag újabb adatokat küld. + + + + A megszakításos módszer valamivel + gyorsabb, azonban cserébe lefoglal egy + értékes IRQ vonalat. A HP újabb + nyomtatói állítólag nem + mûködnek megfelelõen ilyen módban, + valamilyen (pillanatnyilag még nem teljesen + tisztázott) idõzítési + probléma miatt. Ezért az ilyen + nyomtatóknak is valószínûleg a + lekérdezéses módszer kell + használniuk. Más nyomtatók pedig + habár mûködnek mind a két + módszerrel, hihetetlenül lassúak a + megszakításokkal. + + Kétféleképpen + állíthatjuk be a kommunikációs + módot: a rendszermagon keresztül, vagy az + &man.lptcontrol.8; segédprogrammal. + + A rendszermagban így + állíthatjuk be a + kommunikációt: + + + + Írjuk át a rendszermag + beállításait tartalmazó + állományt. Keressük meg benne a + használt párhuzamos portnak megfelelõen + a ppc0, ppc1 + (második párhuzamos port) vagy + ppc2 (harmadik párhuzamos port) + bejegyzést, és + engedélyezzük. + + + + A megszakításos mód + használatához nyissuk meg a + /boot/device.hints + állományt, és az + N helyére + írjuk be a + + hint.ppc.0.irq="N" + + sorba a megfelelõ IRQ számát. + A rendszermag beállításait + tartalmazó állománynak + tartalmaznia kell a &man.ppc.4; meghajtót + is: + + device ppc + + + + + A lekérdezéses mód + használatához a + /boot/device.hints + állományból + távolítsuk el a következõ + sort: + + hint.ppc.0.irq="N" + + Némely esetben azonban ennyi még nem + lesz elég a port lekérdezéses + beállításához. Ugyanis ha + a hozzátartozó meghajtó az + &man.acpi.4;, akkor ez fogja felismerni, kezelni + és a nyomtatóhoz tartozó portok + hozzáférési módját + vezérelni. A problémát + ezért gyakran érdemes a &man.acpi.4; + beállításai között is + keresni. + + + + + + Mentsük el az állományt. + Konfiguráljuk be, fordítsuk le és + telepítsük az új rendszermagot. Ennek + pontos részleteit a + rendszermag + beállításáról + szóló fejezetben olvashatjuk. + + + + A kommunikáció + módjának + beállítása az + &man.lptcontrol.8; programmal: + + + + A megszakításos mód + beállításához írjuk + be: + + &prompt.root; lptcontrol -i -d /dev/lptN + + ahol az + lptN a + nyomtatóhoz tartozó eszköz neve. + + + + A lekérdezéses mód + beállításához írjuk + be: + + &prompt.root; lptcontrol -p -d /dev/lptN + + ahol az + lptN a + nyomtatóhoz tartozó eszköz neve. + + + + Ha ezeket a parancsokat berakjuk az + /etc/rc.local + állományunkba, akkor azzal a rendszer minden + egyes indítása során + beállítjuk a számunkra megfelelõ + módot. Errõl többet az &man.lptcontrol.8; + man oldaláról tudhatunk meg. + + + + A kommunikáció + ellenõrzése + + Még mielõtt nekilátnánk a + nyomtatási rendszer + beállításának, bizonyosodjuk meg + róla, hogy az operációs rendszer + képes adatokat továbbítani a + nyomtatónak. Sokkal könnyebb + egymástól függetlenül + megvizsgálni a kommunikáció és + nyomtatási rendszer + mûködését. + + A nyomtatót úgy tudjuk + kipróbálni, ha küldünk neki valamilyen + szöveget. Az &man.lptest.1; tökéletesen + megfelelõ akkor, ha olyan nyomtatónk van, amely + azonnal kinyomtatja a kapott szöveget. Ez a program 96 + sorban létrehozza mind az összes 96 + kinyomtatható ASCII karaktert. + + PostScript + + A &postscript; (vagy más egyéb nyelvet + ismerõ) nyomtatóknak azonban ennél + kifinomultabb próbára van szüksége. + Erre a célra tökéletesen megfelel egy olyan + kisebb &postscript; programocska, mint például + ez: + + %!PS +100 100 moveto 300 300 lineto stroke +310 310 moveto /Helvetica findfont 12 scalefont setfont +(Remek! Ez mukodik!) show +showpage + + Ezt a &postscript; kódot nyugodtan + elmenthetjük egy állományba, amelyet + aztán a késõbbi szakaszokban megjelenõ + példák szerint használni is tudunk + majd. + + PCL + + + A kézikönyvben a nyomtató nyelve + alatt leginkább egy &postscript;-szerû nyelvet + értünk, nem pedig a Hewlett Packard PCL + típusú nyelvét. Habár a PCL + nagyon sokra képes, hiszen keverhetjük + még benne akár a programokat és a nyers + szövegeket is. Ezzel szemben a &postscript; nem + képes nyers szöveget kinyomtatni, ezért + az ilyen típusú nyomtatók + mûködtetéséhez külön + támogatásra van + szükségünk. + + + + A párhuzamos nyomtató + ellenõrzése + + + nyomtató + párhuzamos + + + Ebben a szakaszban megtudhatjuk, hogy &os; alatt + miként ellenõrizzük a párhuzamos + portra csatlakozó nyomtatók + mûködését. + + A párhuzamos porton levõ + nyomtató + kipróbálásához: + + + + A &man.su.1; segítségével + váljunk root + felhasználóvá. + + + + Küldjünk a nyomtatónak valamilyen + adatot. + + + + Ha a nyomtató képes nyers + szöveget fogadni, akkor használjuk az + &man.lptest.1; programot. Ehhez + gépeljük be: + + &prompt.root; lptest > /dev/lptN + + ahol az N + nullától kezdõdõen a + párhuzamos port sorszáma. + + + + Ha a nyomtató &postscript; vagy + más nyomtatási nyelvet ismer, akkor + egy apró programot kell küldenünk + neki. Ehhez írjuk be: + + &prompt.root; cat > /dev/lptN + + Ezután soronként írjuk be a + programot, de + vigyázzunk, mert az + Enter vagy a + Return lenyomása után + már nem tudjuk kijavítani! A program + begépelése után nyomjuk meg a + + CtrlD + vagy bármely más olyan + billentyûkombinációt, amivel ki + tudunk lépni. + + Ezt a programot belerakhatjuk egy + állományba is, amire aztán + adjuk ki az alábbi parancsot: + + &prompt.root; cat állomány > /dev/lptN + + ahol az + állomány a + nyomtatóra küldendõ program neve + lesz. + + + + + + Ezután a nyomtató megkezdi a + nyomtatást. Ne aggódjunk, ha netalán + valami furcsán nézne ki, mert a + késõbbiekben ezt még úgyis + rendbetesszük. + + + + + A soros nyomtató ellenõrzése + + + nyomtató + soros + + + Ebben a szakaszban megtudhatjuk, hogyan + ellenõrizzük a &os; és soros portra + kötött nyomtató + kapcsolódását. + + Így tudjuk kipróbálni a + soros porton csatlakozó + nyomtatónkat: + + + + A &man.su.1; paranccsal váljunk + root + felhasználóvá. + + + + Nyissuk meg az /etc/remote + állományt. Tegyük hozzá a + következõ sort: + + printer:dv=/dev/port:br#bps:pa=paritás + + bit-per-másodperc + soros port + paritás + + ahol a port a soros porthoz + tartozó eszközleíró neve + (ttyd0, ttyd1, + stb.), a bps a + nyomtató által használt + adatátviteli sebesség, végül a + paritás a + nyomtatóhoz használt paritás (ami + lehet even (páros), + odd (páratlan), + none (nincs), vagy + zero (nulla)). + + Íme egy olyan soros nyomtató + beállítása + (printer néven), amely + sebessége 19 200 bps, a harmadik portra + csatlakozik és nem használ + paritást: + + printer:dv=/dev/ttyd2:br#19200:pa=none + + + + Kapcsolódjunk a nyomtatóhoz a + &man.tip.1; segítségével. Ennek + parancsa: + + &prompt.root; tip printer + + Ha az iménti lépés nem + mûködne, próbálkozzunk az + /etc/remote állomány + újbóli + módosításával, és a + /dev/cuaaN + eszköz helyett használjuk a + /dev/ttydN + eszközt! + + + + Küldjünk adatot a + nyomtatónak. + + + + Ha a nyomtató képes nyers + szöveget nyomtatni, akkor használjuk az + &man.lptest.1; segédprogramot. + Gépeljük be: + + &prompt.user; $lptest + + + + Ha a nyomtató a &postscript; vagy egy + hozzá hasonló nyomtatási + nyelven kommunikál, akkor a + nyomtatónak egy rövid programot kell + küldenünk. Soronként + gépeljük be a programot, azonban + vigyázzunk arra, hogy a + törlés és minden más + szerkesztésre használt billentyû + a nyomtató számára is + értelmes lehet. Az is elõfordulhat, + hogy a program küldését egy + speciális jelsorozattal tudjuk csak + lezárni. A &postscript; nyomtatók + esetén ilyenkor elegendõ a Ctrl + D billentyûk + együttes lenyomása. + + Vagy tehetjük az egész programot egy + állományba, amihez aztán + írjuk be ezt: + + &prompt.user; >állomány + + ahol az + állomány a + programot tartalmazó állomány + neve. Miután a &man.tip.1; elküldte az + állományt, nyomjuk le a + lezáráshoz szükséges + billentyûkombinációt. + + + + + + Most már meg kellene jelennie valaminek a + nyomtatón. Az még nem számít, + pontosan mi is lesz az — késõbb még + majd úgyis beállítjuk. + + + + + + A nyomtatási rendszer aktiválása: a + <filename>/etc/printcap</filename> + állomány + + Csatlakoztattuk a nyomtatónkat, a + mûködtetéséhez + beállítottuk a rendszermagot (amennyiben erre + szükségünk volt), és tudtunk neki + adatokat küldeni. Most már készen + állunk arra, hogy LDP + alkalmazáson keresztül beállítsuk a + nyomtató hozzáférésének + vezérlését. + + Az LPD + beállításait az + /etc/printcap állományban + találjuk. Az LPD + nyomtatási rendszer minden egyes mûvelet + elõtt beolvassa ezt az állományt, + ezért a benne végzett + módosítások szinte azonnal életbe + is lépnek. + + + nyomtató + tulajdonságai + + + A &man.printcap.5; tartalma könnyen + érthetõ, a /etc/printcap + állományt egyszerûen + módosíthatjuk a kedvenc + szövegszerkesztõnkkel. A + felépítése teljesen megegyezik a + többi hozzá hasonló + állományéval: ilyenek + például a + /usr/share/misc/termcap és a + /etc/remote. Az itt alkalmazott + formátum teljes leírását a + &man.cgetent.3; man oldalon találjuk. + + A nyomtatási rendszer egyszerû + beállítása az alábbi + lépésekbõl áll: + + + + Adjunk nevet (és még + néhány álnevet) a nyomtatónak, + írjuk ezeket az /etc/printcap + állományba. A nevekrõl A nyomtató + elnevezése címû szakaszban + kapunk felvilágosítást. + + + fejléclapok + + + A(z alapból bekapcsolt) fejléclapokat az + sh tulajdonság + megadásával kapcsolhatjuk ki. A + részleteket A fejléclapok + letiltása címû szakaszban + találjuk. + + + + Hozzunk létre egy nyomtatási + könyvtárat, és adjuk meg a + helyét az sd tulajdonság + beállításával. A nyomtatási + könyvtár létrehozása + címû szakaszban fogunk errõl többet + mondani. + + + + Állítsunk be egy nyomtató + által használt /dev + könyvtárbeli leírót, és + az lp tulajdonsággal adjuk meg + az /etc/printcap + állományban. Errõl + részletesebben A + nyomtatóeszköz + azonosítása címû + szakaszban olvashatunk. Ha a nyomtató soros porton + keresztül csatlakozik, az ms# + tulajdonsággal még meg kell adnunk A nyomtatási rendszer + kommunikációs paraméterei + szakaszban tárgyaltakat is. + + + + Helyezzünk el egy szûrõt a + beérkezõ nyers szövegek + számára. Errõl A szövegszûrõ + telepítése címû szakasz + értekezik. + + + + Az &man.lpr.1; parancs + segítségével próbáljuk + ki a nyomtatást. Ennek pontos részleteit a + Próbáljuk + ki! és a Hibakeresés + címû fejezetekben találhatjuk + meg. + + + + + A magasabb szintû nyomtatók, mint + például a &postscript; nyomtatók nem + képesek közvetlenül nyers szöveget + nyomtatni. Az imént felvázolt egyszerû + beállítási séma + feltételezi, hogy csak olyan + állományokat fogunk nyomtatni a + nyomtatón, amelyeket meg is ért. + + + A felhasználók gyakran arra + számítanak, hogy bármelyik általuk + elérhetõ nyomtatón képesek nyers + szöveget kinyomtatni. Az LPD + alkalmazással kapcsolatban álló programok + is általában ugyanezt az elgondolást + követik. Ha egy saját nyelvvel rendelkezõ + nyomtatót akarunk telepíteni, de a + nyomtató saját nyelvén + és a nyers szöveg + formájában érkezõ munkákat is + rendesen ki akarjuk nyomtatni, akkor mindenképpen + javasoljuk, hogy illeszünk még egy további + lépést is ebbe a sorba: illesszünk a + rendszerbe egy nyers szövegrõl automatikusan + &postscript; (vagy más egyéb) nyelvre + tolmácsoló programot. Errõ a Szöveges + nyomtatási feladatok &postscript; + nyomtatókon címû fejezetben + olvashatunk. + + + A nyomtató elnevezése + + Az elsõ (egyszerû) lépés a + nyomtatónk nevének kiválasztása. + Igazából nem számít, mennyire + kifejezõ vagy éppen hóbortos nevet adunk + neki, hiszen emellett még számos + álnévvel is illethetjük. + + Az /etc/printcap + állományban megtalálható + nyomtatók egyikének legalább az + lp álnévvel rendelkeznie + kell, mivel ez lesz az alapértelmezett + nyomtató neve. Tehát ha a + felhasználó nem adja meg sem a + PRINTER környezeti + változót, sem pedig az + LPD-vel kapcsolatban + álló aktuális parancsban a + használni kívánt nyomtató + nevét, akkor a rendszer az lp + nevût fogja keresni. + + Ezenkívül általában még + gyakran adnak egy olyan álnevet is a + nyomtatónak, ahol annak teljes leírása, + többek közt a gyártmánya és a + típusa szerepel. + + Ahogy sikerült nevet és álneveket + adni a nyomtatónak, írjuk is be ezeket az + /etc/printcap állományba. + Itt a nyomtató neveit balról el kezdjük + felsorolni, mindegyik álnevet egy + függõleges vonallal válasszunk el, + és az utolsó után pedig tegyünk + pontosvesszõt. + + A most következõ példában egy + olyan vázt mutatunk be az + /etc/printcap + állományhoz, amiben két + nyomtatót (egy Diablo 630 + márkájú sornyomtatót és + egy Panasonic KX-P4455 típusú &postscript; + lézernyomtatót) adunk meg: + + # +# /etc/printcap (rose) +# +rattan|line|diablo|lp|Diablo 630 Line Printer: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: + + Ebben a példában az elsõ + nyomtató neve rattan, és + ehhez tartozik még a line, + diablo, lp, és + Diablo 630 Line Printer + álnév. Mivel itt soroltuk fel az + lp álnevet is, ezért a + rendszerben ez lesz az alapértelmezett + nyomtató. A második nyomtató neve + bamboo, és álnevei + többek közt a ps, + PS, S, + panasonic, valamint a Panasonic + KX-P4455 PostScript v51.4. + + + + A fejléclapok letiltása + + + nyomtatás + fejléclapok + + + Az LPD nyomtatási + rendszer alapértelmezés szerint minden egyes + feladathoz fejléclapot + készít. Ez a lap szép nagy + betûkkel tartalmazza a munkát kiadó + felhasználó nevét, a gépet, + amirõl küldték, és a feladat + nevét. Sajnálatos módon ez azonban + inkább akadályozza a hibakeresést a + nyomtató beállításában, + ezért most inkább kapcsoljuk ki ezeket. + + Ha le akarjuk tiltani a fejléclapokat, az + /etc/printcap állományban + adjuk meg az sh (úgy mint + suppress header pages) tulajdonságot. + Íme egy példa az sh + tulajdonsággal bõvített + /etc/printcap + állományra: + + # +# /etc/printcap (rose) - sehol sem lesznek fejléclapok +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh: + + Ebben a példában megfigyelhetjük a + helyes felírási módot: az elsõ sor a + legbaloldalibb oszlopban kezdõdik, és az azt + követõ sorok pedig bentebb. Minden + bejegyzésben az utolsó + kivételével mindegyik sor egy visszaper + (backslash) karakterrel zárul. + + + + + A nyomtatási könyvtár + létrehozása + + nyomtatási + rendszer + nyomtatási + munkák + + A nyomtatási rendszerünk + beállításának + következõ lépése a + nyomtatási könyvtár + létrehozása. Ez egy olyan + könyvtár, ahová a + különbözõ nyomtatási feladatok + kerülnek a feldolgozásuk elõtt, valamint + ahol a nyomtatási rendszer többi + állománya lakozik. + + A nyomtatási rendszer adatait + tároló könyvtárakat tartalmuk + gyakori változása miatt + általában a /var/spool + könyvtárba szokás tenni. Ezen + könyvtárak tartalmát nem + szükséges menteni sem. Az &man.mkdir.1; parancs + futtatásával egyszerûen újra + létre tudjuk hozni. + + Általában minden nyomtatóhoz + külön létre szoktak hozni egy + könyvtárat az adott nyomtató + nevén. Erre példa: + + &prompt.root; mkdir /var/spool/nyomtatónév + + Azonban ha a hálózatunkon rengeteg + nyomtató található, akkor + érdemes inkább egyetlen könyvtárat + használni, amelyet az LPD + számára tartunk fenn. + + &prompt.root; mkdir /var/spool/lpd +&prompt.root; mkdir /var/spool/lpd/rattan +&prompt.root; mkdir /var/spool/lpd/bamboo + + + Amennyiben fontos nekünk a + felhasználói nyomtatások + titkosságának megóvása, + érdemes levédenünk a nyomtatási + könyvtárat, így az nem lesz mindenki + által elérhetõ. A nyomtatási + könyvtárak tulajdonosa egyedül és + kizárólag a daemon + felhasználó és a + daemon csoport legyen, és + hozzá olvasási, írási + és keresési engedélyekkel + rendelkezzen. Ezt fogjuk most beállítani a + példáinkban szereplõ + nyomtatóinkhoz is: + + &prompt.root; chown daemon:daemon /var/spool/lpd/rattan +&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo +&prompt.root; chmod 770 /var/spool/lpd/rattan +&prompt.root; chmod 770 /var/spool/lpd/bamboo + + + Végezetül az + /etc/printcap állományban + ezeket a könyvtárakat se felejtsük el + megadni az LPD-nek. Itt a + nyomtatási könyvtár nevét az + sd tulajdonsággal írjuk + le: + + # +# /etc/printcap (rose) - a nyomtatási könyvtárak hozzáadása +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo: + + Vegyük észre, hogy a nyomtató neve + ugyan a sor elején kezdõdik, azonban a + hozzátartozó összes többi sor mind + bentebb kezdõdik és egy visszaper (backslash) + karakterrel választjuk le. + + Ha az sd tulajdonsággal nem + adunk meg semmilyen nyomtatási könyvtárat, + akkor ennek az értéke + alapértelmezés szerint a + /var/spool/lpd lesz. + + + + + A nyomtatóeszköz + azonosítása + + A portok beállításával + foglalkozó szakaszban már + beazonosítottuk, hogy a &os; a + /dev könyvtárban melyik + eszközleírón keresztül fogja + megszólítani a nyomtatót. Most ideje + ugyanezt tudatni az LPD-vel is. + Így amikor a nyomtatási rendszer ki szeretne + nyomtatni egy munkát, a szûrõprogram + nevében ezt az eszközt nyitja meg (ahol a + szûrõn keresztül továbbítjuk az + adatokat a nyomtató felé). + + Az lp tulajdonság + segítségével a + /etc/printcap állományban + soroljuk fel a nyomtatók /dev + könyvtárban található + leíróit. + + Az eddig használt példánkban most + tételezzük fel, hogy a rattan + nevû nyomtató az elsõ párhuzamos + porton található, míg a + bamboo nevû a hatodik soros porton. + Ebben a helyzetben így kellene + kiegészítenünk az + /etc/printcap + állományunkat: + + # +# /etc/printcap (rose) - a használni kívánt eszközök +# beazonosítása +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5: + + Az LPD + alapértelmezés szerint a + /dev/lp eszköz fogja + használni, ha nem adjuk meg az lp + tulajdonságot az /etc/printcap + állományban. Az /dev/lp + azonban a &os;-ben jelenleg nem létezik. + + Ha a telepítendõ nyomtatónk + valamelyik párhuzamos portra csatlakozik, akkor innen + akár tovább is léphetünk A szövegszûrõ + telepítése címû szakaszra. + Ha viszont nem, kövessük a most + következõ szakaszban szereplõ + utasításokat. + + + + + A nyomtatási rendszer + kommunikációs paraméterei + + + nyomtató + soros + + + A soros portra csatlakozó + nyomtatóknál az LPD + képes beállítani az adatátviteli + sebességet, a paritást, valamint más + egyéb olyan kommunikációs + paramétereket, amelyekkel a szûrõprogram + adatokat tud továbbítani a nyomtató + felé. Ez több szempontból is + elõnyös, mivel: + + + + Egyszerûen az + /etc/printcap + állomány + átírásával ki tudunk + próbálni több + kommunikációs + beállítást, nem kell magát a + szûrõprogramot + újrafordítanunk. + + + + A nyomtatási rendszer képes ugyanazt a + szûrõt több, + különbözõ + kommunikációs + beállítást alkalmazó + nyomtatóhoz is használni. + + + + Az /etc/printcap + állományban az lp + tulajdonsággal megadott eszközök soros + kommunikációjának + beállításait az alábbi + tulajdonságok határozzák meg: + + + + br#sebesség + + Beállítja az eszköz + adatátviteli sebességét a + sebesség + értékre, ahol a + sebesség lehet 50, + 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, + 4800, 9600, 19 200, 38 400, 57 600 vagy + 115 200 bit másodpercenként + (bps). + + + + + ms#stty-mód + + Beállítja az eszköz + megnyitása után használt + termináleszköz + mûködésének + paramétereit. Az &man.stty.1; man oldalon + többet is megtudhatunk róluk. + + + + + Miután az LPD + megnyitja az lp tulajdonsággal + megadott eszközt, beállítja az + ms# tulajdonság + értéke szerint annak jellemzõit. Itt a + parenb, parodd, + cs5, cs6, + cs7, cs8, + cstopb, crtscts, + és ixon módok lehetnek + lényegesek, melyekrõl az &man.stty.1; man + oldalon többet is megtudhatunk. + + Állítsunk most akkor be az egyik + képzeletbeli nyomtatónkat a hatodik soros + portra. Az adatátviteli sebessége 38 400 + bps lesz. A kommunikáció + módjánál kapcsoljuk ki a + paritást (-parenb), 8 bites + karakterek legyenek (cs8), ne legyen + modemes vezérlés (clocal) + és a hardveres forgalomirányítás + legyen crtscts: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts: + + + + + A szövegszûrõ + telepítése + + + nyomtatás + szûrõk + + + Most már utasíthatjuk az + LPD-t, hogy milyen + szövegszûrõt használjon a + munkák nyomtatóra + küldéséhez. A + szövegszûrõ (text + filter), vagy más néven bemeneti + szûrõ (input filter) egy olyan program, + amelyet az LPD egy + nyomtatási feladat elvégzésekor + lefuttat. Amikor az LPD + lefuttatja a nyomtatóhoz tartozó + szövegszûrõt, a szûrõ + szabványos bemenetére elküldi a + kinyomtatandó munkát, és a + szabványos kimenetét pedig + átirányítja az lp + tulajdonság által megadott + nyomtatóeszközre. Ennek megfelelõen a + szûrõnek a szabványos bemenetrõl kell + olvasnia az elvégzendõ feladatot, a + szabványos kimenetre pedig a ténylegesen + nyomtatandót kell kiírnia. A + szövegszûrõk részleteirõl a Hogyan + mûködnek a szûrõk? szakasz + szól. + + A mi esetünkben most szövegszûrõnek + tökéletesen megfelel egy olyan rövid + szkript, ami a nyomtatóra a munkát a + /bin/cat paranccsal küldi ki. A + &os;-ben még találhatunk egy másik + szûrõt is, amelynek a neve + lpf. Ez képes a + törlést és aláhúzást + jelzõ karaktereket érthetõvé tenni + bizonyos nyomtatók számára. + Természetesen itt használhatunk kedvünk + szerinti szûrõt is. Az lpf + szûrõ mûködésének + részleteit Az + lpf szövegszûrõ címû + szakaszban fejtjük ki bõvebben. + + Elõször is készítsünk egy + /usr/local/libexec/if-simple nevû + egyszerû szövegszûrõ szkriptet. A + kedvenc szövegszerkesztõnkkel írjuk bele a + következõ sorokat: + + #!/bin/sh +# +# if-simple - egyszerû szövegszûrõ szkript az lpd-hez +# Helye: /usr/local/libexec/if-simple +# +# Egyszerûen átmásolja a kimenetére a bemenetérõl érkezõ adatokat; nem +# fogad el semmilyen paramétert. + +/bin/cat && exit 0 +exit 2 + + Tegyük indíthatóvá: + + &prompt.root; chmod 555 /usr/local/libexec/if-simple + + Ezután tájékoztassuk róla az + LPD-t az + /etc/printcap állományban + található if + tulajdonság megadásával. Itt most a + példánkban szereplõ mind a két + nyomtatóhoz beillesztjük: + + # +# /etc/printcap (rose) - a szövegszûrõ hozzáadása +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\ + :if=/usr/local/libexec/if-simple: + + + Az if-simple szkript + megtalálható a /usr/share/examples/printing + könyvtárban. + + + + + + Az <application>LPD</application> + elindítása + + Az &man.lpd.8; az /etc/rc + szkriptbõl, az lpd_enable + változó értékének + megfelelõen indul el. Ennek értéke + alapból NO, vagyis nem. Ha eddig + még nem tettük volna meg, akkor az + /etc/rc.conf állományba + most vegyük fel a következõ sort: + + lpd_enable="YES" + + Ezután vagy indítsuk újra a + számítógépünket, vagy pedig + adjuk ki az &man.lpd.8; parancsot: + + &prompt.root; lpd + + + + + Próbáljuk ki! + + Elérkeztünk az + LPD egyszerû + beállításának utolsó + lépéséhez. Sajnos azonban még + nem gratulálhatunk, hiszen hátra van + még a nyomtató + kipróbálása és az esetlegesen + elõforduló hibák + kijavítása. A beállítást + úgy tudjuk a legegyszerûbben letesztelni, ha + megpróbálunk valamit kinyomtatni. Az + LPD rendszerben az &man.lpr.1; + parancs használatával tudunk nyomtatási + feladatokat kiadni. + + A + kommunikáció ellenõrzése + címû szakaszban megtalálhatjuk, hogy + hozzunk létre tesztelésre alkalmas + szövegeket az &man.lpr.1; és az &man.lptest.1; + programok segítségével. + + Az LPD + beállításainak egyszerû + tesztelése: + + Írjuk be: + + &prompt.root; lptest 20 5 | lpr -Pnyomtatónév + + ahol a + nyomtatónév az + /etc/printcap állományban + megadott egyik nyomtató neve (vagy álneve) + lehet. Az alapértelmezett nyomtató + kipróbálásához ne adjunk meg az + &man.lpr.1; parancsnak semmilyen + paramétert. Még egyszer + megemlítenénk, hogy amennyiben &postscript; + nyomtatót tesztelünk, az elõbbi helyett az + &man.lptest.1; paranccsal küldjünk ki egy + &postscript; programot. Ehhez tegyük a tesztelõ + programunkat egy állományba, majd írjuk + be az lpr + állománynév + parancsot. + + A &postscript; nyomtató esetén a + kiküldött program eredményét kell + látnunk. Amennyiben az &man.lptest.1; parancsot + használjuk, valami ilyesmire kell + számítanunk: + + !"#$%&'()*+,-./01234 +"#$%&'()*+,-./012345 +#$%&'()*+,-./0123456 +$%&'()*+,-./01234567 +%&'()*+,-./012345678 + + A nyomtató kimerítõbb + teszteléséhez próbáljunk meg + nagyobb programokat keríteni valahonnan (ha a + nyomtatónk valamilyen nyelven kommunikál) vagy + adjunk meg az &man.lptest.1; parancsnak más + paramétereket. Például az + lptest 80 60 soronként 80 + karaktert írat ki 60 sorban. + + Amennyiben a nyomtató nem mûködne, + nézzük meg a Hibakereséshez + tartozó szakaszt. + + + + + + + + Magasszintû + nyomtatóbeállítás + + Ebben a szakaszban olyan szûrõket mutatunk be, + amelyek speciálisan formázott + állományok, fejléclapok, + hálózati nyomtatás, nyomtatási + nyilvántartás vagy szabályozás + esetén használhatóak. + + + Szûrõk + + + nyomtatás + szûrõk + + + Noha az LPD képes + hálózati protokollokat, nyomtatási sorokat, + hozzáférést és sok minden más + nyomtatási feladatot kezelni, a + tényleges munka legnagyobb + része a szûrõkben (filter) + történik. A szûrõk olyan programok, + amelyek tartják a kapcsolatot a nyomtatóval + és megbírkóznak annak + eszközfüggõségeivel és + különleges igényeivel. Az egyszerû + beállítás során egy primitív + szövegszûrõt állítottunk be + (lásd A + szövegszûrõ telepítése) + — ami annyira egyszerû, hogy szinte minden + nyomtatón mûködnie kell. + + Azonban mindahhoz, hogy ki tudjuk használni a + különbözõ átalakítási, + nyilvántartási lehetõségeket, valamint + a nyomtatók különlegességeit és + egyebeit, meg kell értenünk a szûrõk + pontos mûködését. Az elõbb + említett feladatok ugyanis teljesen a szûrõ + kezében vannak. Ezzel kapcsolatban azonban rossz + hír, hogy ezeket a szûrõket + nekünk kell megírnunk. A + jó hír ellenben az, hogy könnyen + találunk ilyen szûrõket, vagy ha éppen + nem lelnénk valamelyiket, akkor is gyorsan meg tudjuk + ezeket írni. + + Sõt, a &os; alapból tartalmaz is egyet, amit a + /usr/libexec/lpr/lpf helyen találunk + meg, és sok olyan nyomtatóval képes + együttmûködni, amelyek nyers szöveget tudnak + nyomtatni. (Kezeli az állományokban + felbukkanó törléseket és + tabulalásokat, valamint képes + nyilvántartást vezetni, de semmi többet.) + Rajta kívül még számos + szûrõt és szûrõelemet is + találhatunk a &os; + Portgyûjteményében. + + Lássuk, mit tartogat számunkra ez a + rész: + + + + A Hogyan + mûködnek a szûrõk? + címû szakaszban megpróbálunk + egyfajta áttekintést adni a szûrõk + nyomtatási folyamatban betöltött + szerepérõl. Mindenképpen érdemes + elolvasnunk ezt a szakaszt, mivel ebben derül ki, hogy + valójában mi is történik a + függöny mögött, vagyis + amikor az LPD használja + ezeket a szûrõket. Ezzel a tudással el + tudjuk kerülni vagy éppen nyakon tudjuk + csípni azokat a problémákat, amelyek a + nyomtatóinkhoz telepített szûrõk + hozzáadása során + adódhatnak. + + + + Az LPD alapból arra + számít, hogy minden nyomtató + képes nyers szöveget nyomtatni. Ez gondot okoz + a &postscript; (és minden más nyelv + alapú) nyomtatók esetén, mivel azok nem + képesek nyers szöveget nyomtatni. Szöveges + nyomtatási feladatok &postscript; + nyomtatókon címû szakaszban + viszont fény derül rá, hogyan + kerekedjünk felül ezen. Feltétlenül + olvassuk el, ha &postscript; nyomtatónk van. + + + + A &postscript; számos program közkedvelt + kimeneti formátuma, sõt gyakran maguk a + felhasználók is szeretnek ilyen programokat + írni. Sajnos azonban a &postscript; nyomtatók + egyáltalán nem olcsók. A &postscript; + szimulációja nem &postscript; + nyomtatókon címû szakaszban + megtudhatjuk, miképp tudjuk úgy + módosítani a szûrõt, hogy + nem &postscript; nyomtatókon is + tudjunk &postscript; programokkal nyomtatni. Ezt a szakaszt + akkor érdemes elolvasni, ha nincs &postscript; + nyomtatónk. + + + + A Konverziós + szûrõk címû szakaszban + eláruljuk, miként lehetséges + automatizálni a különbözõ + állományformátumok és a + nyomtatók által érthetõ + formátumok közti konverziókat, legyen az + grafikus vagy betûszedésre vonatkozó + adat. A szakasz elolvasása során + megismerjük, hogyan tudjuk a nyomtatónkat + képessé tenni az lpr -t + paranccsal troff adatok, vagy a lpr -d + paranccsal a &tex; DVI állományainak, esetleg + az lpr -v paranccsal raszteres + képek nyomtatására és így + tovább. Csak ajánlani tudjuk ennek + elolvasását. + + + + A Kimeneti + szûrõk címû szakaszban + kivesézzük az LPD + egyik kevésbé használt + lehetõségét is, a kimeneti + szûrõket. Hacsak nem fejléclapokat akarunk + készíteni (lásd Fejléclapok), + akkor ezt a szakaszt nyugodtan kihagyhatjuk. + + + + Az lpf + szövegszûrõ szakaszban + bemutatásra kerül a &os;-ben alapból + megtalálható lpf + szûrõ, amely egy sornyomtatónknál + (vagy az így viselkedõ + lézernyomtatóknál) + használható egyszerû + szövegszûrõ. Ha nyers szövegek + nyomtatásánál meg akarjuk oldani a + nyomtatási munkák + nyilvántartását, vagy a + törlés karakter láttán a + nyomtatónk füstölni kezdene, akkor + mindenképpen érdemes belemerülnünk + az lpf titkaiba. + + + + + A most következõ szkriptek mindegyike + megtalálható a /usr/share/examples/printing + könyvtárban. + + + + Hogyan mûködnek a szûrõk? + + Ahogy már korábban is jeleztük, a + szûrõ egy olyan végrehajtható program, + amelyet az LPD indít el, + amikor a nyomtatóval eszközfüggetlen + módon kommunikál. + + Amikor az LPD egy feladat + elvégzése során ki akar nyomtatni egy + állományt, akkor elindít egy ilyen + szûrõprogramot. A szûrõ szabványos + bemenetére elküldi a kinyomtatandó + állományt, a szabványos kimenetét + a nyomtatóra, a szabványos hibajelzéseit + pedig egy naplóállományba + irányítja (ez utóbbit az + /etc/printcap) állományban + az lf tulajdonsággal adhatjuk meg, + vagy alapértelmezés szerinti a + /dev/console állományba + kerül). + + troff + + Az LPD a használni + kívánt szûrõt és annak + paramétereit az /etc/printcap + állományban felsoroltak vagy az &man.lpr.1; + parancssorában megadottak szerint választja ki. + Például, ha a felhasználó a + lpr -t parancsot adja ki, akkor az + LPD a célként + megadott nyomtatónál szereplõ + tf tulajdonság által megadott + troff szûrõt kezdi el használni. Amennyiben + a felhasználó egyszerûen csak nyers + szöveget akar nyomtatni, akkor az if + szûrõnek kellene elindulnia (ez viszont csak + részben igaz: lásd Kimeneti + szûrõk) + + Háromfajta szûrõ jelenhet meg az + /etc/printcap + állományban: + + + + A szövegszûrõ + (text filter), ami a hagyományos szöveges + nyomtatásért felelõs, és amit az + LPD + dokumentációjában érdekes + módon bemeneti + szûrõnek (input filter) + hívnak. Mivel az LPD + arra számít, hogy minden nyomtató + alapból képes kinyomtatni bármilyen + nyers szöveget, ezért a + szövegszûrõ feladata, hogy a + nyomtató számára gondoskodjon a + tabulátorok, törlések és + más egyéb speciális karakterek + megfelelõ kezelésérõl. Emellett + ha olyan helyen vagyunk, ahol szükség van a + nyomtatási munkák + nyilvántartására is, a + szövegszûrõ ennek megoldására + is képes, méghozzá úgy, hogy + összeszámolja a kinyomtatott sorokat és + elosztja ezeket a nyomtató által + oldalanként nyomtatott sorok + számával. Egy szövegszûrõ a + következõ paraméterekkel indulhat: + + + szûrõnév + -c + -w + szélesség + -l + hossz + -i + behúzás + -n + hozzáférés + -h + gépnév + nyilvántartás + + + ahol a + + + + + + akkor jelenik meg, ha egy munkát az + lpr -l paranccsal adunk + át + + + + + szélesség + + az /etc/printcap + állományban definiált + pw (page width, avagy + oldalszélesség) tulajdonság + értéke, ami + alapbeállítás szerint + 132 + + + + + hossz + + a pl (page length, avagy + oldalhossz) tulajdonság + értéke, amely az + alapbeállítás szerint + 66 + + + + + behúzás + + az lpr -i parancs + megadása során használt + behúzás mértéke, ami + alapból 0 + + + + + hozzáférés + + a nyomtatást végzõ + felhasználó + hozzáférésének + megnevezése + + + + + gépnév + + a gép neve, amirõl a + nyomtatási munka érkezett + + + + + nyilvántartás + + ez a nyilvántartást + tároló állomány + af tulajdonsággal + definiált neve + + + + + + + nyomtatás + szûrõk + + + + A konverziós + szûrõk (conversion filter) egy adott + állományformátumot hoznak a + nyomtató számára értelmes + formára. Például ditroff adatok + közvetlenül ugyan nem nyomtathatóak, + azonban a ditroff állományokhoz tudunk + telepíteni egy olyan szûrõt, amely a + ditroff adatokat a nyomtató számára + is emészthetõ és nyomtatható + formájúvá teszi. A Konverziós + szûrõk címû szakasz tud + ezekrõl többet mondani. Ilyen esetekben + kérhetünk nyilvántartást. A + konverziós szûrõk az alábbi + paraméterekkel indulhatnak: + + + szûrõnév + -x + pixelszélesség + -y + pixelmagasság + -n + hozzáférés + -h + gépnév + nyilvántartás + + + ahol a + pixelszélesség a + px tulajdonság + értékébõl (ami alapból + 0), a pixelmagasság a + py tulajdonság + értékébõl (ami alapból + szintén 0) származik. + + + + A kimeneti szûrõ + (output filter), ami csak akkor aktív, ha a + szövegszûrõ nem, vagy ha + engedélyeztük fejléclapok + nyomtatását. Tapasztalatom szerint az ilyen + szûrõket ritkán használják. + A Kimeneti + szûrõk címû szakasz mutatja + be a mûködésüket. Ekkor + csupán két paraméterünk + van: + + + szûrõnév + -w + szélesség + -l + hosszúság + + + amik rendre megegyeznek a szövegszûrõk + és + paramétereivel. + + + + A szûrõk ki is tudnak + lépni a következõ kódokkal + (exit status): + + + + 0 + + A szûrõ sikeresen kinyomtatta az + állományt. + + + + + 1 + + A szûrõnek nem sikerült kinyomtatnia + az állományt, azonban szeretné, ha + az LPD újból + megpróbálkozna vele. Az + LPD tehát ebben + az esetben újraindítja a + szûrõt. + + + + + 2 + + A szûrõnek nem sikerült kinyomtatnia + az állományt, és nem is + kívánja újra + megpróbálni. Ekkor az + LPD eldobja az + állományt. + + + + + A &os; kiadásokban megtalálható + /usr/libexec/lpr/lpf + szövegszûrõ képes a kapott + szélesség és hossz paraméterekkel + megállapítani az oldaltöréseket + és a nyomtató használatát + nyilvántartani, amihez a + hozzáférés, gépnév + és nyilvántartás adatait használja + fel. + + Amikor majd igyekszünk mellé újabb + szûrõket beszerezni, ne felejtsük el + ellenõrizni, hogy együtt tudnak-e mûködni + az LPD-vel. Ha a válasz + igen, akkor a fentebb említett paraméterek + mindegyikét ismerniük kell. Az + általános használatra készült + szûrõk készítése során + mi magunknak is be kell tartanunk ezeket az + elvárásokat. + + + + + Szöveges nyomtatási feladatok &postscript; + nyomtatókon + + nyomtatsái + munkák + + Ha csak egyedül dolgozunk a + számítógépen és + &postscript; (vagy bármilyen más nyelvet + ismerõ) nyomtatónk van, valamint + megígérjük, hogy soha nem küldünk + sem mi, sem pedig nem küldetünk semmilyen más + programmal nyers szöveget a nyomtatóra, akkor + átléphetjük ezt a szakaszt. + + Ha viszont egyaránt akarunk küldeni + &postscript; programot és nyers szöveget + tartalmazó munkákat a nyomtatónak, akkor + ehhez kénytelenek vagyunk a rendszerünket + beállítani. Elõször is + szükségünk van szövegszûrõre, + ami megállapítja, hogy a frissen érkezett + munka nyers szöveget vagy &postscript; programot + tartalmaz-e. Minden &postscript;-alapú feladat a + %! karaktersorozattal kezdõdik (a + többi esetben olvassuk a nyomtató + leírását). Szóval, ha a + nyomtatandó állomány elsõ két + karaktere ilyen, akkor egy &postscript; programmal van dolgunk + és közvetlenül + továbbküldhetjük a munkát a + nyomtatónak. Minden más esetben a + szûrõnek elõbb át kell alakítania + a szöveget &postscript; nyelvre. + + Hogyan érhetjük el mindezt? + + + nyomtató + soros + + + Ha soros nyomtatónk van, akkor erre a feladatra az + lprps parancs tökéletes. Az + lprps egy olyan &postscript; + szûrõ, amely mind a két irányban + képes közvetíteni. Folyamatosan + rögzíti egy állományba a + nyomtató állapotát, így a + felhasználók és rendszergazdák + pontosan látják a nyomtató jelenlegi + állapotát (például + toner low (a toner hamarosan kifogy) + vagy paper jam (a papír + beragadt)). Ami viszont sokkal lényegesebb, hogy a + psif nevû program képes + megmondani az érkezõ munka valódi + típusát, és ennek megfelelõen meg + tudja hívni nyers szöveg + átalakítására a + textps (egy másik program, amit a + lprps mellé kapunk) parancsot. + Ezután az lprps elküldi a + feladatot a nyomtatónak. + + Az lprps a &os; + Portgyûjteményének része + (lásd A + Portgyûjtemény), ezért a + használni kívánt papír + méretétõl függõen pillanatok + alatt magunk is letölhetjük, fordíthatjuk + és telepíthetjük a print/lprps-a4 és print/lprps-letter csomagok + valamelyikét. Az lprps + telepítése után egyszerûen csak + adjuk meg a psif elérési + útvonalát. Ha tehát + telepítettük a Portgyûjteménybõl + az lprps csomagot, akkor egy soros portra + csatlakozó &postscript; nyomtató esetén + ezt kell beírnunk az /etc/printcap + állományba: + + :if=/usr/local/libexec/psif: + + Ezenkívül még az rw + tulajdonsággal meg kell mondanunk az + LPD-nek, hogy a nyomtatót + írásra és olvasásra nyissa + meg. + + Amennyiben a &postscript; nyomtatónk a + párhuzamos porton csatlakozik (és amiért + a nyomtatónk nem képes az + lprps által igényelt + kétirányú kommunikációra), + szövegszûrõként a következõ + szkriptet fogjuk használni: + + #!/bin/sh +# +# psif - PostScript vagy nyers szöveg nyomtatása PostScript nyomtatón +# Ez a szkriptes változat, NEM pedig az lprps-hez mellékelt szûrõ +# (a /usr/local/libexec/psif állomány)! +# + +IFS="" read -r first_line +first_two_chars=`expr "$first_line" : '\(..\)'` + +if [ "$first_two_chars" = "%!" ]; then + # + # PostScript: nyomtassuk ki. + # + echo "$first_line" && cat && printf "\004" && exit 0 + exit 2 +else + # + # Nyers szöveg: alakítsuk át, majd nyomtassuk ki. + # + ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 + exit 2 +fi + + A fentebb szereplõ szkriptben a + textps programot használjuk a nyers + szövegek &postscript; programokra + alakításához, de helyette + bármilyen más konvertáló programot + is igénybe vehetünk. A &os; + Portgyûjteményében (lásd A Portgyûjtemény) + találhatunk erre a célra egy + a2ps nevû programot is, amit esetleg + érdemes lehet közelebbrõl + megnéznünk. + + + + + &postscript; szimulációja nem &postscript; + nyomtatókon + + + PostScript + emuláció + + Ghostscript + + A &postscript; a magas színvonalú + betûszedés és nyomtatás de + facto szabványa. Emellett azonban a + &postscript; egy költséges + szabvány is. Az Aladdin Enterprises-nak hála + azonban létezik egy hozzá hasonló szabad + szoftver, a Ghostscript, amely + képes &os;-n is futni. A + Ghostscript képes a + legtöbb &postscript; állomány + olvasására, megjelenítésére + mindenféle eszközökön, beleértve + a &postscript;et nem ismerõ nyomtatókat is. A + Ghostscript és egy + speciális szövegszûrõ + telepítésével el tudjuk érni, hogy + egy nem &postscript; nyomtató valódi + &postscript; nyomtatóként viselkedjen. + + Ha telepíteni szeretnénk, a + Ghostscript + megtalálható a &os; + Portgyûjteményében. Innen tehát + magunk is könnyedén le tudjuk tölteni, + fordítani és telepíteni. + + A &postscript; nyomtatás + szimulációjához elõször egy + szûrõ segítségével észre + kell vennünk, hogy egy &postscript; + formátumú állományt + készülünk kinyomtatni. Ha nem ilyen a + nyomtatandó munka, akkor egyenesen a nyomtatóra + küldjük, azonban minden más esetben + elõször a Ghostscript + segítségével átalakítjuk + egy olyan formátumba, amit a nyomtató is + képes feldolgozni. + + Nézzünk erre egy példát: a most + következõ szövegszûrõ a Hewlett + Packard DeskJet 500-as nyomtatóihoz + használható. Más nyomtató + esetén cseréljük ki a gs + (Ghostscript) parancs + paraméterét a neki + megfelelõre. (A telepített + Ghostscript által ismert + nyomtatók listáját a gs + -h paranccsal kérdezhetjük le.) + + #!/bin/sh +# +# ifhp - Ghostscripttel szimulált Postscript nyomtatás DeskJet 500-on +# Helye: /usr/local/libexec/ifhp + +# +# LF karaktereket CR+LF-ként kezeljük (elkerülve ezzel a HP/PCL +# nyomtatókon a "lépcsõzést"): +# +printf "\033&k2G" || exit 2 + +# +# Az állomány elsõ két karakterének beolvasása +# +IFS="" read -r first_line +first_two_chars=`expr "$first_line" : '\(..\)'` + +if [ "$first_two_chars" = "%!" ]; then + # + # Ez PostScript: küldjük át a Ghostscripten és nyomtassuk ki. + # + /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ + -sOutputFile=- - && exit 0 +else + # + # Nyers szöveg vagy HP/PCL, ezért küldjük át közvetlenül. Az utolsó + # lap kidobásához küldünk még egy lapdobást is. + # + echo "$first_line" && cat && printf "\033&l0H" && +exit 0 +fi + +exit 2 + + Befejezésül az if + tulajdonságon keresztül + értesítenünk kell errõl a + szûrõrõl az LPD-t + is: + + :if=/usr/local/libexec/ifhp: + + Készen is vagyunk! Most már nyugodtan + beírhatjuk, hogy lpr + sima.szöveg vagy + lpr + akármi.ps, mind a + kettõnek ki kell tudnia nyomtatódnia. + + + + + Konverziós szûrõk + + Miután elvégeztük az Alacsonyszintû + nyomtatóbeállítás + címû szakaszban leírt + beállításokat, a (nyers ASCII szöveg + mellett) kedvenc állományformátumainkhoz + is minden bizonnyal szeretnénk telepíteni + néhány konverziós + szûrõt. + + + Miért használjunk konverziós + szûrõket? + + + &tex; + DVI állományok + nyomtatása + + + A konverziós szûrõk + segítségével állományok + mindenféle formátumait könnyen ki tudjuk + nyomtatni. Például tegyük fel, hogy a + sokat dolgozunk a &tex; betûszedõ rendszerrel + és egy &postscript; nyomtatónk van. Minden + alkalommal, amikor egy DVI állományt hozunk + létre a &tex; forrásból, azt + közvetlenül még nem tudjuk a + nyomtatóra küldeni. Ehhez a következõ + parancsokat kell kiadnunk: + + &prompt.user; dvips hínár-elemzés.dvi +&prompt.user; lpr hínár-elemzés.ps + + Ha telepítünk egy konverziós + szûrõt a DVI állományokhoz, meg + tudjuk spórolni ezt a manuális + átalakítási lépést azzal, + hogy átadjuk ezt a feladatot az + LPD-nek. Így + ezután mindig, amikor egy DVI állományt + akarunk kinyomtatni, csupán egyetlen + lépésre lesz + szükségünk: + + &prompt.user; lpr -d hínár-elemzés.dvi + + Az LPD-nek a + paraméterrel adjuk meg, hogy a + nyomtatás elõtt hajtsa végre a DVI + átalakítását. A Formázási + és konverziós + beállítások címû + szakaszban találjuk meg a többi + konverziós opciót. + + Minden olyan konverziós + beállításhoz, amit használni + szeretnénk a nyomtatóval, + telepítenünk kell egy + konverziós szûrõt + (conversion filter) és meg kell adnunk a nevét + az /etc/printcap + állományban. A konverziós + szûrõk az egyszerû + nyomtatóbeállításnál + szereplõ szövegszûrõkhöz + hasonlítanak (lásd A szövegszûrõ + telepítése szakasz) azzal a + kivétellel, hogy a nyers szövegek + kinyomtatása helyett ezek a szûrõk a + nyomtató számára értelmes + formátumra alakítják az + állományokat. + + + + + Milyen konverziós szûrõket + érdemes telepíteni? + + Olyan konverziós szûrõket + telepítsünk, amelyekre gyakran + szükségünk lehet. Ha például + sok DVI adatot szeretnénk nyomtatni a + jövõben, akkor használjunk DVI + konverziós szûrõt, vagy ha sok troff + formátumú adatot nyomtatunk, akkor minden + bizonnyal jól fog jönni egy troff + szûrõ. + + A következõ táblázat foglalja + össze azokat a szûrõket, amelyekkel az + LPD képes + együttmûködni. Megtudhatjuk, hogy az + /etc/printcap állományban + melyik tulajdonság tartozik hozzájuk és + hogyan hívjuk meg ezeket az lpr + paranccsal: + + + + + + Állománytípus + Tulajdonság az + /etc/printcap + állományban + Az lpr + kapcsolója + + + + + cifplot + cf + + + + DVI + df + + + + plot + gf + + + + ditroff + nf + + + + FORTRAN forrás + rf + + + + troff + tf + + + + raster + vf + + + + nyers szöveg + if + nincs, , vagy + + + + + + + A példánkban tehát a lpr + -d parancs használata arra utal, hogy a + nyomtatónak az /etc/printcap + állományból a df + tulajdonságára van + szüksége. + + FORTRAN + + Minden hadakozás ellenére + állíthatjuk, hogy a FORTRAN források + és a plot által használt szövegek + formátuma napjainkra már elavultnak + tekinthetõ. Ezért ezekhez az opciókhoz a + saját szûrõinkkel tetszõleges + formázási lehetõségeket + rendelhetünk. Például, ha Printerleaf + (az Interleaf asztali kiadványszerkesztõ + formátuma) állományokat + szeretnénk közvetlenül nyomtatni, akkor + valószínûleg nem lesz + szükségünk plot állományokra. + Ezért a gf tulajdonságnak + megadhatunk egy Printerleaf konverziós + szûrõt, amelyen keresztül aztán a + felhasználók az lpr -g + paranccsal Printerleaf állományokat tudnak + nyomtatni. + + + + + Konverziós szûrõk + telepítése + + Mivel a konverziós szûrõk az alap &os; + rendszeren kívülre kerülnek, ezért + ezeket minden valószínûség szerint + valahol a /usr/local + könyvtárban találjuk meg. Ezen + belül is általában a + /usr/local/libexec + könyvtárban fordulnak elõ, mivel ezeket + csak az LPD futtatja, senki + másnak nincs rájuk + szüksége. + + A konverziós szûrõk + aktiválásához az + /etc/printcap állományban + egyszerûen adjuk meg az alkalmas + tulajdonságoknak megfelelõ szûrõk + elérési útvonalait. + + A példánkban most felveszünk egy DVI + konverziós szûrõt a + bamboo nevû nyomtatóhoz. Itt + ismét láthatjuk a korábban + használt /etc/printcap + állományt, ahol most azonban a + bamboo nevû + nyomtatónál hozzáadtunk egy + df tulajdonságot: + + # +# /etc/printcap (rose) - egy df szûrõ hozzáadása a bamboo +# nevû nyomtatóhoz +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + + A DVI szûrõ ebben az esetben a + /usr/local/libexec/psdf néven + elérhetõ aprócska szkript. Ezt + találhatjuk benne: + + #!/bin/sh +# +# psdf - DVI szûrõ PostScript nyomtatóhoz +# Helye: /usr/local/libexec/psdf +# +# Az lpr -d parancs hatására hívódik meg +# +exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" + + A szkript a dvips parancsot + szûrõként futtatja (az + paraméterrel) a szabványos bemenetrõl, + ahova a nyomtatási munkát is kapja. + Ezután elindítja az lprps + &postscript; szûrõt (lásd a Szöveges + nyomtatási feladatok &postscript; + nyomtatókon címû szakaszt) az + LPD által átadott + paraméterekkel. Az lprps parancs + ezekkel a paraméterekkel tartja nyilván az + így kinyomtatott lapokat. + + + + + További példák konverziós + szûrõkre + + A konverziós szûrõk + telepítésének nincs bevált + receptje, ezért ebben a szakaszban bemutatunk + rájuk néhány mûködõ + illusztrációt. Ezeket tudjuk + felhasználni saját szûrõk + elkészítésére. Vagy ha + megtehetjük, használjuk közvetlenül + ezeket. + + Ebben a példa szkriptben Hewlett Packard LaserJet + III-Si nyomtatókhoz hozunk létre raszteres + (pontosabban GIF formátumú) konverziós + szûrõt: + + #!/bin/sh +# +# hpvf - GIF állományokat konvertál át HP/PCL-be, majd kinyomtatja +# Helye: /usr/local/libexec/hpvf + +PATH=/usr/X11R6/bin:$PATH; export PATH +giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ + && exit 0 \ + || exit 2 + + Úgy mûködik, hogy a GIF + állományt elõször PNM (portable + anymap), utána PGM (portable graymap), majd PBM + (portable bitmap) formátumúra alakítja, + amibõl végül LaserJet/PCL-kompatibilis adat + lesz. + + Ez lesz a hozzátartozó + /etc/printcap + állomány: + + # +# /etc/printcap (orchid) +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif:\ + :vf=/usr/local/libexec/hpvf: + + A most következõ szkript a groff + betûszedû rendszerbõl érkezõ + troff adatokat alakítja át a + bamboo nevû &postscript; + nyomtató számára: + + #!/bin/sh +# +# pstf - a groff troff adait alakítja PS-re, majd kinyomtatja +# Helye: /usr/local/libexec/pstf +# +exec grops | /usr/local/libexec/lprps "$@" + + A szkript az lprps parancs + segítségével kommunikál a + nyomtatóval. Ha a nyomtatónk + párhuzamos porton csatlakozik, akkor helyette ezt a + szkriptet használjuk: + + #!/bin/sh +# +# pstf - a groff troff adatait alakítja PS-re, majd kinyomtatja +# Helye: /usr/local/libexec/pstf +# +exec grops + + Kész is! A szûrõ + éltrekeltéséhez mindössze ennyit + kell beillesztenünk az + /etc/printcap + állományba: + + :tf=/usr/local/libexec/pstf: + + Most pedig jöjjön a FORTRAN szerelmeseinek + szívét megmelengetõ szkript. Ez egy + olyan szövegszûrõ, amely bármelyik + nyers szöveget közvetlenül kezelni + tudó nyomtató esetén mûködik. + A teak nevû nyomtatóhoz + helyezzük be: + + #!/bin/sh +# +# hprf - FORTRAN szövegszûrõ LaserJet 3si-hez +# Helye: /usr/local/libexec/hprf +# + +printf "\033&k2G" && fpr && printf "\033&l0H" && + exit 0 +exit 2 + + Az /etc/printcap + állományban a teak + nyomtatóhoz a következõ sor + beírásával tudjuk engedélyezni + ezt a szûrõt: + + :rf=/usr/local/libexec/hprf: + + Most pedig következzen egy utolsó, de az + eddigieknél valamivel összetettebb példa. + Ebben a korábban bemutatott teak + nevû LaserJet nyomtatóhoz fogunk + hozzáadni egy DVI szûrõt. + Elõször is következzen a mûvelet + egyszerûbb része: bõvítsük ki + az /etc/printcap + állományt a DVI szûrõ + helyének megadásával: + + :df=/usr/local/libexec/hpdf: + + Ezután következzék a nehezebb + rész: a szûrõ + elkészítése. Ehhez + szükségünk lesz egy DVI-rõl + LaserJet/PCL-re alakító programra. A &os; + Portgyûjteményében (lásd A Portgyûjtemény) + találunk is egyet: a csomag neve print/dvi2xx. A csomag + telepítésével megkapjunk a nekünk + kellõ dvilj2p programot, ami + képes DVI-t LaserJet IIp, LaserJet III és a + LaserJet 2000 típusok által ismert + kódokra fordítani. + + A dvilj2p + felhasználásától + függetlenül a hpdf néven + létrehozni kívánt szûrõnk + még így is bonyolult lesz, hiszen a + dvilj2p nem tud olvasni a + szabványos bemenetrõl, hanem minden áron + egy állománnyal akar dolgozni. Sõt, + olyan állománnyal, amelynek + .dvi kiterjesztése van, + ezért még a /dev/fd/0 + (vagyis a szabványos bemenethez tartozó + eszközleíró) használata is + akadályokba ütközik. + + Üröm még az örömünkben, + hogy a /tmp könyvtárat sem + tudjuk felhasználni ideiglenes link + létrehozására: a szimbolikus linkeket a + bin felhasználó és + csoport birtokolja, a szûrõt pedig a + daemon felhasználó + futtatja. A /tmp + könyvtárban rááadásul csak + a tulajdonosaik képesek állományokat + átnevezni vagy törölni (sticky bit). + Ezért a szûrõ ugyan létre tudna + hozni egy linket, azonban ezt a munkája + végeztével nem lesz majd képes + törölni, mivel a link egy másik + felhasználóhoz tartozik. + + Ezért a szûrõ az aktuális + könyvtárban fogja létrehozni ezt a + szimbolikus linket, ami jelen esetünkben a + nyomtatási rendszer által használt + könyvtár lesz (ezt az + /etc/printcap állomány + sd tulajdonságával adjuk + meg). Itt remekül el tudják végezni a + feladataikat a szûrõk, különösen + mivel (néha) több hely van itt, mint a + /tmp könyvtárban. + + Végül lássuk magát a + szûrõt: + + #!/bin/sh +# +# hpdf - DVI adat nyomtatása HP/PCL nyomtatón +# Helye: /usr/local/libexec/hpdf + +PATH=/usr/local/bin:$PATH; export PATH + +# +# Létrehozunk egy függvényt az átmeneti állományok törlésére. Ezek +# az aktuális könyvtárban jönnek létre, ami pedig a nyomtatási +# rendszer adott nyomtatóhoz tartozó könyvtára lesz. +# +cleanup() { + rm -f hpdf$$.dvi +} + +# +# Létrehozunk egy függvényt a súlyos hibák kezelésére: írassunk ki +# egy adott üzenetet és lépjünk ki a 2-es hibakóddal. Ezzel üzenünk +# az LPD-nek, hogy ne nyomtatassa újra a munkát. +# +fatal() { + echo "$@" 1>&2 + cleanup + exit 2 +} + +# +# Ha a felhasználó eltávolítja a munkát a sorból, akkor az LPD egy SIGINT +# jelzést fog küldeni, ezért próbáljuk meg azt elkapni (néhány más egyéb +# jelzéssel együtt), így még tudjuk törölni az ideiglenesen +# létrehozott állományokat. +# +trap cleanup 1 2 15 + +# +# Gondoskodjunk róla, hogy a feladat megkezdésekor még egyetlen +# használt állomány sem létezik. +# +cleanup + +# +# Kössük össze a szabványos bemenetet egy DVI állománnyal (amit +# majd nyomtatni akarunk). +# +ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" + +# +# LF = CR+LF +# +printf "\033&k2G" || fatal "Cannot initialize printer" + +# +# Alakítsuk át az adatot és nyomtassunk. A dvilj2p által visszaadott érték +# nem túlságosan megbízható, ezért ne is foglalkozzunk vele. +# +dvilj2p -M1 -q -e- dfhp$$.dvi + +# +# Takarítsunk el magunk után és lépjünk ki szabályosan +# +cleanup +exit 0 + + + + + Automatikus konverziók: a konverziós + szûrõk helyett + + A konverziós szûrõk sokat + segítenek egy kényelmes nyomtatási + környezet kialakításában, azonban + a használatukhoz a felhasználóknak (az + &man.lpr.1; parancson keresztül) egyenként + hivatkozniuk kell rájuk. Ha a rendszerünk + felhasználói nem eléggé + mûveltek számítástechnikai + téren, akkor még egy szûrõ + megadása is zavaró lehet számukra. Ami + még ennél is rosszabb, hogy egy rosszul + megadott szûrõ hatására a + nyomtató sem fogja jól kezelni az adott + állomány formátumát és + erre válaszul akár többszáz lapot + is pillanatok alatt kiköphet + magából. + + A konverziós szûrõk + telepítése helyett gyakran csak egy + (alapértelmezett) szövegszûrõre van + szükségünk, amely kideríti a + nyomtatandó állomány pontos + formátumát és magától + elindítja a neki megfelelõ konverziós + szûrõt. Ilyen esetekben például a + file parancs pont a hasznunkra + válhat. Persze bizonyos + állománytípusok közt nagyon + nehéz különbséget tenni — de + ezekre továbbra is adhatunk még + külön konverziós szûrõket. + + apsfilter + + nyomtatás + szûrõk + apsfilter + + + A &os; Portgyûjteményében + találhatunk egy apsfilter + elnevezésû szövegszûrõt + (print/apsfilter), ami + képes ilyen automatikus konverzióra. + Képes felismerni a nyers szöveget, &postscript; + programokat, DVI és szinte bármilyen + formátumú állományokat, + lefuttatni rájuk a megfelelõ + átalakítástokat, majd kinyomtatni + ezeket. + + + + + + Kimeneti szûrõk + + Az LPD nyomtatási + rendszer kezel egy eddig még nem tárgyalt + szûrõtípust is: ez a kimeneti + szûrõ. A kimeneti szûrõ a + szövegszûrõhöz hasonlóan csak nyers + szöveg nyomtatására használatos, de + tartalmaz néhány + egyszerûsítést. Ha kizárólag + csak kimeneti szûrõket alkalmazunk, akkor: + + + + Az LPD az egész + nyomtatási feladathoz egyetlen kimeneti + szûrõt fog használni, nem pedig minden + állományhoz külön. + + + Az LPD a kimeneti + szûrõ számára nem nyújt + semmilyen segítséget a munkán + belül szereplõ állományok + kezdetének vagy végének + megállapításában. + + + Az LPD a szûrõnek + nem adja át sem a felhasználó + hozzáférését, sem pedig + gépnevét, ezért + nyilvántartásra nem alkalmas. Mindent + összegezve lényegében csak két + paramétert kap meg: + + + szûrõnév + -wszélesség + -lhossz + + + ahol a + szélesség a + kérdéses nyomtató + pw + tulajdonságából, a + hossz pedig a + pl tulajdonságából + származik. + + + + Ne bûvöljön el minket a szûrõ + egyszerûsége! Ha például a + munkában minden állományt újabb + lapon szeretnénk kezdeni, akkor azt kimeneti + szûrõvel nem tudjuk megoldani. + Erre a célra használjunk + szövegszûrõt (másik nevén + bemeneti szûrõt), lásd A szövegszûrõ + telepítése szakaszt. Hovatovább, + a kimeneti szûrõ valójában + sokkal bonyolultabb abban a tekintetben, + hogy a beérkezõ adatok közül neki kell + kikeresnie a speciális jelentéssel + bíró karaktereket ugyanúgy, ahogy az + LPD helyett saját + magának kell küldenie a jelzéseket. + + Azonban a kimeneti szûrõk használata + elkerülhetetlen, ha + például fejléclapokat akarunk nyomtatni, + és esetleg még különbözõ + inicializálásra használatos + speciális kódokat vagy karakterláncokat + akarunk ez elõtt kiküldeni. (Ellenben + badarság a + fejléclapoktól követelni a + felhasználó adatait, hiszen az + LPD a kimeneti szûrõnek + nem ad semmilyen erre vonatkozó + információt.) + + Egyetlen nyomtató esetén az + LPD egyaránt + lehetõvé teszi kimeneti, szöveg- és + más egyéb szûrõk + használatát. Ilyenkor az + LPD a kimeneti szûrõn + keresztül csak a fejlécet tartalmazó oldal + (lásd a Fejléclapok + szakaszt) nyomtatását indítja el. Ezt + követõen az LPD arra + számít, hogy a kimeneti szûrõ + két karakter, az ASCII 031 és az ezt + követõ ASCII 001, hatására + leállítja magát. + Amikor tehát a kimeneti szûrõ + érzékeli ezt a két karaktert (031, 001), + akkor a SIGSTOP jelzéssel le kell + állnia. Miután az + LPD lefuttatta a többi + szûrõt, a SIGCONT + jelzéssel újraindítja a kimeneti + szûrõt. + + Ha van kimeneti szûrõnk, de + nincs szövegszûrõnk, akkor + az LPD minden további + feldolgozás nélkül továbbadja a + munkát a kimeneti szûrõnek. Ahogy már + korábban is említettük, a kimeneti + szûrõ a munkában levõ összes + állományt egymás után nyomtatja + ki, lapdobások vagy bármilyen más + papírmozgatás nélkül, ezért + valószínûleg nem ez + kell nekünk. Az esetek túlnyomó + részében ehhez elég egy + szövegszûrõ. + + A korábban szövegszûrõként + beharangozott lpf program kimeneti + szûrõként is képes + funkcionálni. Ha szükségünk lenne egy + gyorsan összecsapható kimeneti szûrõre, + és nem akarunk a speciális karakterek valamint a + jelzések küldésével elidõzni, + akkor próbálkozzunk az lpf + használatával. Az lpf + parancsot mellesleg becsomagolhatjuk egy olyan szkriptbe is, + amely elvégzi a nyomtató számára + szükséges inicializálást. + + + + + Az <command>lpf</command> + szövegszûrõ + + A &os; bináris terjesztéséhez + mellékelt /usr/libexec/lpr/lpf + program egy szövegszûrõ (bemeneti + szûrõ), amely képes (az lpr + -i paranccsal hozzáadott munkákat) + tabulálni, (az lpr -l paranccsal + felvett munkákban) a vezérlõkaraktereket + figyelemen kívül hagyni, a munkában + elõforduló törlések és + behúzások nyomtatási + pozícióját igazítani és + nyilvántartani a kinyomtatott lapokat. Kimeneti + szûrõként is tud viselkedni. + + Az lpf szûrõ rengeteg + nyomtatási környezetben + felhasználható. Habár nem képes a + nyomtatónak inicializáló jelsorozatokat + küldeni, mégis könnyû olyan szkriptet + írni, amely elvégzi ezeket a + hiányzó kezdeti + beállításokat, majd lefuttatja az + lpf szûrõt. + + oldalak + nyilvántartása + + nyilvántartás + nyomtató + + + Az lpf akkor lesz képes helyesen + számolni a kinyomtatott lapokat, ha ehhez az + /etc/printcap állományban + jól töltjük ki a pw + és pl tulajdonságokat. Ezen + értékek segítségével + határozható meg ugyanis, hogy mennyi szöveg + fért rá egy lapra és így mennyi + lapot emésztett fel az adott felhasználó + által küldött munka. A nyomtatás + nyilvántartásával kapcsolatban A nyomtató + használatának + nyilvántartása címû szakaszt + érdemes elolvasni. + + + + + + Fejléclapok + + Ha nagyon sok + felhasználónk van, és sok + különbözõ nyomtatót is + használnak, akkor elõbb vagy utóbb minden + bizonnyal elkerülhetetlenné fog válni a + fejléclapok + használata. + + + munkalapok + fejléclapok + + fejléclapok + + A fejléc-, vagy más néven + munka vagy + elválasztó lapok + segítik elõ a kinyomtatott munkák + azonosítását. A többi + dokumentumtól kirívó módon, + általában dekoratív keretben, nagy, vastag + betûkkel nyomtatódnak ki, hogy a halomnyi + papír között a felhasználók + könnyedén megtalálhassák az + elküldött munkáik eredményét. + Természetesen a fejléclapok + nyilvánvaló hátulütõje, hogy + így minden munkához még egy lappal + többet kell elhasználni és mivel + gyakorlatilag néhány percnél tovább + nincs is rájuk szükség, meglehetõsen + hamar a kukába kerülnek. (A fejléclapok + munkánként jönnek létre, nem pedig az + munkákban levõ állományokhoz + egyenként, ezért nem is akkora pazarlás + ez.) + + Az LPD rendszer képes + magától fejléclapokat + készíteni a nyomtatásokhoz, + amennyiben a nyomtatónk képes + közvetlenül nyers szöveget nyomtatni. Ha + &postscript; nyomtatónk van, akkor ennek + legyártásához egy külsõ programra + van szükségünk, lásd a Fejléclapok + &postscript; nyomtatókon szakaszt. + + + A fejléclapok engedélyezése + + Az Alacsonyszintû + nyomtatóbeállítás + címû szakaszban az + /etc/printcap állományban a + sh (úgy mint suppress + header) tulajdonsággal kikapcsoltuk a + fejléclapokat. A fejléclapok + engedélyezéséhez mindösszesen el + kell távolítanunk ezt az sh + tulajdonságot. + + Ez túl egyszerû, nemde? + + Igen, ez így van. + Elõfordulhat, hogy + szükségünk van még egy olyan kimeneti + szûrõre is, amely inicializáló + karaktereket küld a nyomtatónak. Íme egy + példa ehhez a Hewlett Packard PCL-kompatibilis + nyomtatói esetére: + + #!/bin/sh +# +# hpof - Kimeneti szûrõ Hewlett Packard PCL-kompatibilis nyomtatókhoz +# Helye: /usr/local/libexec/hpof + +printf "\033&k2G" || exit 2 +exec /usr/libexec/lpr/lpf + + Az of tulajdonsággal adjuk meg a + kimeneti szûrõt. A Kimeneti + szûrõk szakaszban errõl + részletesebben is olvashatunk. + + A korábban ismertetett teak + nevû nyomtatóhoz most az alábbi minta + /etc/printcap állományt + mellékeljük. Itt engedélyeztük a + fejléclapokat és hozzátettük az + iménti kimeneti szûrõt: + + # +# /etc/printcap (orchid) +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif:\ + :vf=/usr/local/libexec/hpvf:\ + :of=/usr/local/libexec/hpof: + + Mostantól kezdve, amikor a + felhasználók a teak + nyomtatón akarnak nyomtatni, minden munkához + kapni fognak egy fejléclapot. Amennyiben a kedves + felhasználók mégis keresgetni + akarják a nyomtatásaikat, az lpr + -h paranccsal tetszõleges módon + letilthatják azokat. Az &man.lpr.1; többi + hasonló opcióját A fejléclapokhoz + tartozó beállítások + szakaszban találjuk. + + + Az LPD minden + fejléclap után egy lapdobást küld. + Ha erre a célra a nyomtatónk egy + eltérõ karaktert vagy karaktersorozatot + használ, akkor azt az + /etc/printcap állomány + ff tulajdonságával + határozhatjuk meg. + + + + + + A fejléclapok vezérlése + + A fejléclapok engedélyezésével + az LPD egy ún. + hosszú fejlécet fog + készíteni, vagyis a felhasználót, + gépet és a munkát jól + azonosító, egész lapot kitöltõ + óriási betûket. Erre egy példa + (amiben a rose nevû géprõl + kelly nyomtatta ki az + outline elnevezésû + munkát): + + k ll ll + k l l + k l l + k k eeee l l y y + k k e e l l y y + k k eeeeee l l y y + kk k e l l y y + k k e e l l y yy + k k eeee lll lll yyy y + y + y y + yyyy + + + ll + t l i + t l + oooo u u ttttt l ii n nnn eeee + o o u u t l i nn n e e + o o u u t l i n n eeeeee + o o u u t l i n n e + o o u uu t t l i n n e e + oooo uuu u tt lll iii n n eeee + + + + + + + + + + r rrr oooo ssss eeee + rr r o o s s e e + r o o ss eeeeee + r o o ss e + r o o s s e e + r oooo ssss eeee + + + + + + + + Job: outline + Date: Sun Sep 17 11:04:58 1995 + + Ezt követõen az LPD + elküld még egy lapdobást is, ezért + maga a munka egy új oldalon fog kezdõdni + (kivéve, ha az /etc/printcap + állományban az adott nyomtatóhoz + tartozó bejegyzésben megadtuk az + sf (úgy mint suppress form + feeds, vagyis a lapdobások letiltása) + tulajdonságot. + + Ha úgy jobban tetszik, akkor az + /etc/printcap állományban a + sb tulajdonsággal az + LPD utasítható + rövid fejlécek + készítésére is. Ilyenkor a + fejléclap tartalma mindössze ennyi lesz: + + rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 + + Alapértelmezés szerint az + LPD elõször a + fejléclapot majd a munkát nyomtatja ki. Ezt a + sorrendet az /etc/printcap + állományban a hl (header + last) tulajdonsággal meg tudjuk + fordítani. + + + + + A nyomtató használatának + nyilvántartása + + Az LPD által + felkínált fejléclapok használata + során egyetlen irányelv + érvényesül a + nyilvántartásukban: a fejléclapok + költségmentesek. + + De miért? + + Azért, mert kizárólag csak a kimeneti + szûrõ képes a fejléclapok + viselkedését irányítani, ami + viszont nem képes semmiféle + nyilvántartásra, hiszen nem kapja meg az ehhez + szükséges felhasználói- + vagy gépnév + információkat, illetve + nyilvántartásokat. Emiatt fogalma sincs + róla, hogy kit terhel az adott nyomtató + használata. Úgy sem tudjuk megoldani a + problémát, ha a szöveg- vagy + konverziós szûrõkben (ahol már + rendelkezésünkre állnak a + felhasználó és a gépének + adatai) hozzátoldunk még egy + lapot a munkához, mivel a + felhasználók az lpr -h + parancs használatával kedvük szerint + letilthatják a fejléclapokat. Ezt ugyan + alapvetõen a természetet óvni + kívánó felhasználók + részesítik elõnyben, de ettõl + függetlenül sem erõszakolhatjuk rá + mindenkire. + + Az sem elég, ha minden + szûrõ létrehozza a saját + fejlécét (amiért aztán + pénzt kérhetnénk). Mivel ha a + felhasználók az lpr -h + paranccsal le akarják tiltani a fejlécek + használatát, attól a + szûrõkhöz még mindig + létrejönnek, hiszen az + LPD a + opcióról semmilyen + értesítést nem küld át a + szûrõknek. + + Nos, ilyenkor mitévõk legyünk? + + A lehetõségeink: + + + + Elfogadjuk az LPD + elvét, és nem számítunk fel + költséget a fejléclapokra. + + + + Az LPD helyett egy + másik nyomtatási rendszert + használunk, például az + LPRng rendszert. A Más + nyomtatási rendszerek címû + szakaszban kiderül, milyen alternatívák + érhetõek el az LPD + kiváltására. + + + + Írjunk mi magunk egy + intelligens kimeneti + szûrõt. Normális esetben a kimeneti + szûrõk nem valók másra, + csupán a nyomtató alaphelyzetbe + hozására vagy egyszerûbb + karakterkonverziók + elvégzésére. Fejléclapokhoz + és nyers szöveget tartalmazó + munkákhoz remekül használható + (ahol nincs szöveg- (avagy bemeneti) + szûrõ). Azonban ha a nyers szövegekhez van + szövegszûrõnk, akkor az + LPD a kimeneti szûrõt + csak a fejléclapokhoz indítja el. Emellett + a kimeneti szûrõ az + LPD által + generált fejléc szövegébõl + képes megmondani, melyik + felhasználóhoz és géphez + tartozik a szóbanforgó fejléc. A + módszer egyetlen bökkenõje, hogy a + nyilvántartásokat tároló + állományról viszont még + így se tudunk semmilyen információt + szerezni (mivel nem kapjuk meg az af + tulajdonsággal beállított + állomány nevét). Ha azonban egy + rendszerszinten elérhetõ + állományba mentjük ezeket az adatokat, + akkor akár bele is drótozhatjuk ezt a + kimeneti szûrõbe. A kimeneti szûrõ az + adatot megtalálásában ilyenkor + úgy tudunk segíteni, ha az + /etc/printcap + állományban az sh + (rövid fejléc) tulajdonságot + állítjuk be. De ez igazából + sok hûhó semmiért, és a + felhasználók is jobban megbecsülik az + olyan nagylelkû rendszergazdát, aki nem + számítja fel nekik a + fejléclapokat. + + + + + + + Fejléclapok &postscript; + nyomtatókon + + Ahogy arról már korábban is + szó esett, az LPD + képes többféle nyomtató + számára is megfelelõ, nyers + szövegû fejléclapokat + készíteni. Persze a &postscript; + közvetlenül nem képes nyers szövegek + nyomtatására, ezért az + LPD ezen lehetõsége + lényegében használhatatlan — + többnyire. + + Ilyen helyzetben a fejléclapok + használatának nyilvánvaló + módja, hogy minden szövegszûrõt + fejlécek gyártására + utasítunk. Ezek a szûrõk a + felhasználóról és a + gépérõl kapott + információkból össze tudják + állítani a megfelelõ fejléclapot. A + megoldás hátránya, hogy ez még + olyankor is megtörténik, amikor a + felhasználók az lpr -h + paranccsal küldik a munkájukat. + + Kísérletezzünk egy kicsit ezzel a + módszerrel! A most következõ szkript + három paramétert fogad el (a + felhasználó hozzáférést, a + gép és a munka nevét), majd ezekbõl + létrehoz egy egyszerû &postscript; + formátumú fejlécet: + + #!/bin/sh +# +# make-ps-header - PostScript fejléc létrehozása a szabvány kimenetre +# Helye: /usr/local/libexec/make-ps-header +# + +# +# Ezek itt a PostScript által használt egységekben vannak megadva +# (72/col vagy 28/cm). Írjuk át az általunk használt papírméretre, +# A4-re vagy amit éppen használunk: +# +page_width=612 +page_height=792 +border=72 + +# +# A paraméterek ellenõrzése. +# +if [ $# -ne 3 ]; then + echo "Usage: `basename $0` <user> <host> <job>" 1>&2 + exit 1 +fi + +# +# Mentsük el ezeket, leginkább az olvashatóság miatt. +# +user=$1 +host=$2 +job=$3 +date=`date` + +# +# Küldjük el a PostScript-kódot a szabványos kimenetre. +# +exec cat <<EOF +%!PS + +% +% Gondoskodjunk róla, hogy ne zavarjuk az utánunk következõ +% felhasználó munkáját. +% +save + +% +% Csináljunk egy csúf vastag szegélyt, körbe a papíron. +% +$border $border moveto +$page_width $border 2 mul sub 0 rlineto +0 $page_height $border 2 mul sub rlineto +currentscreen 3 -1 roll pop 100 3 1 roll setscreen +$border 2 mul $page_width sub 0 rlineto closepath +0.8 setgray 10 setlinewidth stroke 0 setgray + +% +% Jelenítsük meg a felhasználó azonosítóját szép, feltûnõ +% betûkkel. +% +/Helvetica-Bold findfont 64 scalefont setfont +$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto +($user) show + +% +% Most pedig mutassuk az unalmas részleteket. +% +/Helvetica findfont 14 scalefont setfont +/y 200 def +[ (Job:) (Host:) (Date:) ] { +200 y moveto show /y y 18 sub def } +forall + +/Helvetica-Bold findfont 14 scalefont setfont +/y 200 def +[ ($job) ($host) ($date) ] { + 270 y moveto show /y y 18 sub def +} forall + +% +% Ennyi lett volna. +% +restore +showpage +EOF + + Ezzel a szkripttel pedig mindegyik konverziós- + és szövegszûrõ elõször + létrehoz egy fejléclapot, majd kinyomtatja a + felhasználó munkáját. Íme + egy korábban már bemutatott DVI szûrõ, + amit most kiegészítünk a fejléclapok + használatával: + + #!/bin/sh +# +# psdf - DVI szûrõ PostScript nyomtatóhoz +# Helye: /usr/local/libexec/psdf +# +# Az lpr -d parancs hatására hívódik meg. +# + +orig_args="$@" + +fail() { + echo "$@" 1>&2 + exit 2 +} + +while getopts "x:y:n:h:" option; do + case $option in + x|y) ;; # Ignore + n) login=$OPTARG ;; + h) host=$OPTARG ;; + *) echo "LPD started `basename $0` wrong." 1>&2 + exit 2 + ;; + esac +done + +[ "$login" ] || fail "No login name" +[ "$host" ] || fail "No host name" + +( /usr/local/libexec/make-ps-header $login $host "DVI File" + /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args + + Láthatjuk, hogy a szûrõnek a + felhasználói- és a gépnév + megállapításához végig kell + néznie a paraméterek listáját. Ez + lényegében minden más konverziós + szûrõnél ugyanígy néz ki. Ez a + lista azonban a szövegszûrõk esetén + némileg eltér (lásd a Hogyan mûködnek + a szûrõk? szakaszt). + + Már az elõbbiekben is tárgyaltuk, hogy + ez a megoldás, habár eléggé + egyszerû, az lpr számára + nem teszi lehetõvé a fejléclapok + letiltását (a opció). + Ha a felhasználóink kímélni + akarják a fákat (vagy meg akarják + úszni a fejléclapok égbeszökõ + költségeit), akkor ezt nem tudják megtenni, + hiszen a szûrõk minden munkához + készíteni fognak fejléceket. + + Ezt a korlátozást csak úgy tudjuk + elsöpörni, ha bevetjük a A + nyomtató használatának + nyilvántartása szakaszban leírt + cselt, tehát készítünk egy olyan + kimeneti szûrõt, amely megkeresi az LPD-vel + generált fejléceket és létrehozza + azok &postscript; változatát. Ha valaki az + lpr -h paranccsal küld + nyomtatnivalót, akkor LPD + nem készít hozzá fejléclapot, + ahogy a kimeneti szûrõnk sem. A kimeneti + szûrõ minden más esetben beolvassa az + LPD által küldött + szöveget és átküldi a neki + megfelelõ &postscript; kódot a + nyomtatóra. + + Ha soros &postscript; nyomtatónk van, akkor + használhatjuk a psof kimeneti + szûrõhöz tartozó + lprps parancsot is, ami pontosan az + elõbbit végzi el. Hozzátennénk + azonban, hogy a psof nem számolja a + fejléclapokat. + + + + + + Hálózati nyomtatás + + + nyomtató + hálózati + + hálózati + nyomtatás + + A &os; tud hálozaton is nyomtatni, vagyis tud + távoli számítógépeknek is + nyomtatási munkát küldeni. A + hálózati nyomtatás kifejezés + általánosságban véve két + különbözõ dolgra utalhat: + + + + Egy távoli + számítógéphez kapcsolt + nyomtató hozzáférését. A + géphez a nyomtató a hagyományos soros + vagy párhuzamos csatolófelületen + keresztül kapcsolódik, amit aztán az + LPD alkalmas + beállításával a + hálózaton mindenki számára + elérhetõvé teszünk. A Távoli + számítógépekre csatlakoztatott + nyomtatók címû szakasz errõl + szól. + + + + Egy közvetlenül a hálózatra + kapcsolt nyomtató + hozzáférését. A nyomtató + tehát rendelkezik még egy + hálózati csatlakozással is a + hagyományos soros vagy párhuzamos felület + mellett (vagy éppen helyett). Egy ilyen + nyomtató a következõképpen + mûködhet: + + + + Elfogadja az LPD + kéréseit, és még + képes munkákat is tárolni. Ebben + az esetben teljesen egyenértékû egy + LPD alkalmazást + futtató + számítógéppel. Ekkor nincs + más teendõnk, csak követnünk kell + a + Távoli számítógépeken + telepített nyomtatók + címû szakasz + utasításait. + + + + Hálózati adatfolyamokkal dolgozik. + Ebben az esetben a nyomtatót hozzá + kell kapcsolnunk a hálózaton + található egyik + számítógéphez, ami majd a + munkák tárolásáért + és folyamatos + küldéséért lesz felelõs. + A Nyomtatók + hálózati adatcsatlakozással + szakasz az ilyen fajtájú nyomtatók + telepítésére tesz + néhány javaslatot. + + + + + + + Távoli számítógépekre + csatlakoztatott nyomtatók + + Az LPD nyomtatási + rendszer alapból képes más, + szintén LPD-t (vagy vele + kompatibilis rendszert) futtató + számítógépekre munkákat + küldeni. Ezzel lényegében az egyik + géphez hozzá tudunk kapcsolni egy + nyomtatót, amit aztán a többiek + számára elérhetõvé + teszünk. Ez olyan nyomtatók esetében is + mûködik, amelyek ismerik az + LPD által alkalmazott + protokollt. + + A távoli nyomtatáshoz elõször + telepítsük a nyomtatót valamelyik + számítógépre az Alacsonyszintû + nyomtatóbeállítás + szakaszban leírtak szerint, és ezzel az lesz a + nyomtatószerverünk. + Ezután, amennyiben szükségesnek + találjuk, végezzünk magasabb szintû + nyomtatóbeállításokat is. + Ne felejtsük el kipróbálni a + nyomtatón, hogy rendesen mûködik az + LPD mindegyik olyan + beállításával, amit + engedélyeztünk. Emellett gondoskodjunk minden + olyan jogosultságról is, amivel a + helyi + számítógéprõl el + tudjuk érni a távoli + számítógép által + felkínált LPD + szolgáltatást (lásd Távoli + számítógépekrõl + érkezõ kérések + szabályozása). + + + nyomtató + hálózati + + hálózati + nyomtatás + + Ha olyan nyomtatót használunk, aminek a + hálózati felülete kompatibilis az + LPD rendszerrel, akkor az + elõbb említett + nyomtatószerver + lényegében maga lesz a nyomtató, valamint + a nyomtató neve a rajta + beállított név. Ezzel kapcsolatban + olvassuk el a nyomtatóhoz és/vagy a + hálózati csatolójához + mellékelt dokumentációt. + + + Amikor a Hewlett Packard Laserjet típusú + nyomtatóit használjuk, a + text nevû nyomtatónév + magától elvégzi a LF és CRLF + formátumú sortörések közti + átalakítást, ezért ilyenkor + nincs szükségünk a + hpif szkriptre. + + + Ezután ha szeretnénk más gépek + részére is elérhetõvé tenni a + frissen telepített nyomtatónkat, adjuk meg + mindegyikük /etc/printcap + állományában a + következõket: + + + + Tetszõlegesen választott nevet, + álneveket. Az egyszerûség + kedvéért azonban itt érdemes + ugyanazokat a neveket választani, mint amit a + nyomtatószerveren is használunk. + + + + Szándékosan hagyjuk az + lp tulajdonságot üresen + (:lp=:). + + + + Hozzunk létre egy nyomtatási + könyvtárat, és jelöljük meg a + helyét az sd + tulajdonsággal. Az LPD + itt fogja összegyûjteni a munkákat, + mielõtt elküldené azokat a + nyomtatószervernek. + + + + Adjuk meg a nyomtatószerver nevét az + rm tulajdonság + segítségével. + + + + Az rp tulajdonsággal adjuk + meg a nyomtatószerverre + csatlakoztatott nyomtató nevét. + + + + Kész! Az /etc/printcap + állományban már nem kell megadni + konverziós szûrõket, + oldalbeállításokat és semmi + más egyebet. + + Lássunk mindezekre egy példát. A + rose nevû + számítógéphez két + nyomtató csatlakozik, a bamboo + és a rattan. Most pedig + beállítjuk, hogy az orchid + nevû gép felhasználói képesek + legyenek ezekkel a nyomtatókkal dolgozni. Ekkor a most + következõk szerint fog kinézni az + orchid (a + Fejléclapok engedélyezése + szakaszban bemutatott) /etc/printcap + állománya. Tartalmazza a + teak nevû nyomtató + beállításait is, és ehhez fogjuk + hozzáadni a rose másik + két nyomtatóját: + + # +# /etc/printcap (orchid) - a rose két (távoli) nyomtatójának +# hozzáadása +# + +# +# A "teak" egy helyi nyomtató, közvetlenül az orchidhoz +# csatlakozik: +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/ifhp:\ + :vf=/usr/local/libexec/vfhp:\ + :of=/usr/local/libexec/ofhp: + +# +# A "rattan" rose-hoz csatlakozik, így küldhetünk neki munkát: +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: + +# +# A "bamboo" is a rose-hoz tartozik: +# +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: + + Ezután más csak létre kell hoznunk a + megfelelõ nyomtatási könyvtárakat az + orchid nevû gépen: + + &prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo +&prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo +&prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo + + Mostantól kezdve az orchid + felhasználói képesek lesznek nyomtatni a + rattan és bamboo + nevû nyomtatókon is. Ezért, ha az + orchid egyik felhasználója + beírja, hogy: + + &prompt.user; lpr -P bamboo -d sushi-leírás.dvi + + Az orchid gépen + mûködõ LPD rendszer + ezt a munkát a bemásolja a + /var/spool/lpd/bamboo nevû + nyomtatási könyvtárba és feljegyzi + róla, hogy a nyomtatásához DVI + szûrõre lesz szükség. Ahogy + rose gépen található + bamboo nyomtatási + könyvtárában elegendõ hely keletkezik, + a két LPD + átküldi egymás közt a + rose nevû gépre az + állományt. Ezután az + állomány egészen addig várakozik a + rose nyomtatási sorában, + amíg végezetül kinyomtatásra nem + kerül. A rose fogja + átalakítani DVI-rõl &postscript; + formátumra átalakítani (mivel a + bamboo egy &postscript; + nyomtató). + + + + + Nyomtatók hálózati + adatcsatlakozással + + Amikor hálózati kártyát + vásárolunk a nyomtatónkhoz, + általában két változatukkal + találkozhatunk: az egyikük nyomtatási + rendszerként mûködik (ez a + drágább), a másikuk pedig egyszerûen + csak soros vagy párhuzamos csatlakozón + továbbítandó adatként + közvetíti az adatokat a nyomtató + felé (az olcsóbb). A drágábbik + változatot az elõzõ, Távoli + számítógépekre csatlakoztatott + nyomtatók címû szakaszban + leírtak szerint tudjuk használni. + + Az /etc/printcap + állományban ugyan meg tudjuk adni, hogy a + nyomtató soros vagy párhuzamos portra + csatlakozik, és azon keresztül milyen + adatátviteli sebességgel (amennyiben soros), + forgalomirányítással, + tabulálással, sortörési + konvenció szerint stb. kommunikáljunk vele. + Azonban TCP/IP vagy más hálózati porton + ülõ nyomtatók adatait itt nem tudjuk + kifejteni. + + A hálózatra kötött + nyomtatók használatához + lényegében egy olyan külön + kifejlesztett kommunikációs programra van + szükségünk, amely a szöveg- vagy + konverziós szûrõkhöz hasonló + módon hívható meg. Erre rögtön + adunk is egy példát: a + netprint szkript a szabványos + bemenetrõl beolvassa az összes kinyomtatandó + adatot és átküldi azokat a + hálózatra csatlakoztatott nyomtatónak. A + szkript elsõ paramétereként a + nyomtató hálózati nevét adjuk meg, + másodiknak pedig portot. Azonban megjegyezzünk, + hogy ez csak egyirányú + kommunikációt tesz lehetõvé (a + &os;-tõl a nyomtatóig). Sok + hálózati nyomtató viszont két + irányban is képes kommunikálni, + ezért érdemes lehet ezt kihasználni (a + nyomtató állapotának + lekérdezésére, + nyilvántartások + készítésére stb). + + #!/usr/bin/perl +# +# netprint - A hálózatra csatlakoztatott nyomtató szövegszûrõje +# Helye: /usr/local/libexec/netprint +# +$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; + +$printer_host = $ARGV[0]; +$printer_port = $ARGV[1]; + +require 'sys/socket.ph'; + +($ignore, $ignore, $protocol) = getprotobyname('tcp'); +($ignore, $ignore, $ignore, $ignore, $address) + = gethostbyname($printer_host); + +$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); + +socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) + || die "Can't create TCP/IP stream socket: $!"; +connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; +while (<STDIN>) { print PRINTER; } +exit 0; + + Rengeteg szûrõben fel tudjuk használni + ezt a szkriptet. Például tegyük fel, hogy + egy Diablo 750-N típusú sornyomtatót + csatlakoztattunk a hálózatra, amely az 5100-as + porton várja a nyomtatandó adatokat. A + hálózati neve most scrivener + lesz. Íme a hozzátartozó + szövegszûrõ: + + #!/bin/sh +# +# diablo-if-net - Az 5100-as porton figyelõ `scrivener' nevû Diablo +# nyomtató szövegszûrõje. Helye: /usr/local/libexec/diablo-if-net +# +exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 + + + + + A nyomtató használatának + szabályozása + + + nyomtató + a hozzáférés + korlátozása + + + Ebben a szakaszban a nyomtató + használatának + korlázásáról írunk. Az + LPD rendszeren keresztül + meghatározhatjuk, hogy ki képes helyben vagy + távolról hozzáférni a + nyomtatóhoz, mennyi másolatot nyomtathat, mennyi + és egyenként mekkora munkákat + küldhet. + + + A másolatok számának + szabályozása + + Az LPD + segítségével a felhasználók + egy állományt könnyen ki tudnak nyomtatni + akár többször is. Ha (például) + a felhasználó egy munka + nyomtatásához az lpr -#5 + parancsot használja, akkor a munkában levõ + összes állományból öt + példányt kap. Ennek + létjogosultságát azonban nekünk kell + megítélni. + + Amennyiben úgy érezzük, hogy a + további példányok + készítése csupán felesleges + papír- és tintapazarlás, akkor az + sc tulajdonság + megadásával az + /etc/printcap állományban + kikapcsolhatjuk az &man.lpr.1; + lehetõség használatát. Így + amikor a felhasználók a + kapcsolóval küldenek el munkákat a + nyomtatóra, a következõt fogják + tapasztalni: + + lpr: multiple copies are not allowed + + Fordítása: + + lpr: másolatok nyomtatása nem engedélyezett + + Vigyázzunk arra, hogy ha távoli + számítógépen zajlik a + nyomtatás (lásd Távoli + számítógépekre csatlakoztatott + nyomtatók), akkor az sc + tulajdonságot a távoli + számítógép + /etc/printcap + állományában is be kell + állítani, máskülönben a + felhasználók egy másik + számítógéprõl mindig + képesek lesznek több példány + nyomtatására. + + Nézzünk erre egy példát. Itt + most a rose nevû + számítógép + /etc/printcap + állományát vesszük szemügyre. + Ebben a rattan egy nagyon + szívélyes nyomtató lesz, ezért + engedélyezi a másolatok + nyomtatását, azonban a bamboo + nevû lézernyomtató nála már + sokkal válogatósabb lesz, ezért a + beállításai közt az + sc tulajdonsággal kikapcsoljuk a + másodpéldányok + nyomtatását: + + # +# /etc/printcap (rose) - A másolatok korlátozása a "bamboo" +# nevû nyomtatón +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + + Az sc tulajdonságot az + orchid /etc/printcap + állományában is meg kell adni (és + ha már itt vagyunk, akkor tegyük meg ugyanezt a + teak esetében is): + + # +# /etc/printcap (orchid) - Nincsenek másodpéldányok sem a helyi +# "teak" nyomtatón, sem pedig a távoli "bamboo" nyomtatón +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ + :if=/usr/local/libexec/ifhp:\ + :vf=/usr/local/libexec/vfhp:\ + :of=/usr/local/libexec/ofhp: + +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: + + Az sc tulajdonság + használatával ugyan megakadályozzuk az + lpr -# parancs + teljesítését, azonban ez még + mindig nem óv minket attól, hogy a + felhasználók képesek legyenek + többször egymás után lefuttatni az + &man.lpr.1; parancsot, vagy éppen egyetlen + munkában több állományt is + elküldeni: + + &prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign + + Számos módszer kínálkozik az + effajta visszaélések + kivédésére (beleértve a figyelmen + kívül hagyást is), lehet velük + kísérletezgetni! + + + + A nyomtatók + hozzáférésének + szabályozása + + A &unix; csoportkezelésével és az + /etc/printcap állományban + található rg + tulajdonság felhasználásával + korlátozni tudjuk, ki milyen nyomtatón + dolgozhat. Ehhez mindösszesen annyit kell tennünk, + hogy besoroljuk egy csoportba azokat a + felhasználókat, amelyek + hozzáférhetnek a nyomtatóhoz, és + az rg tulajdonsággal + megnevezzük azt. + + A csoporton kívüli + felhasználókat (köztük magát a + root felhasználót is) pedig + ezután így üdvözli a rendszer, ha + megpróbálnak valamit kinyomtatni egy + korlátozott felhasználású + nyomtatón: + + lpr: Not a member of the restricted group + + Az üzenet fordítása: + + lpr: Nem jogosult felhasználó + + Ha erre a távoli + számítógépek esetén + szükségünk lenne (lásd Távoli + számítógépekre csatlakoztatott + nyomtatók), akkor tegyük ugyanazt, mint + amit az sc (a + másodpéldányok letiltása, + suppress multiple copies) tulajdonság + esetén is, vagyis az rg + tulajdonságot adjuk meg azokon a távoli + számítógépeken is, amelyek + hozzá tudnak férni a megosztott + nyomtatóhoz. + + Például megengedjük, hogy a + rattan nevû nyomtatót + bárki használhassa, azonban a + bamboo nyomtatón csak az + artists nevû csoport + használhatja. Következzen hát akkor a + rose korábbról már + ismert /etc/printcap + állománya: + + # +# /etc/printcap (rose) - A bamboo hozzáférésének korlátozása +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + + Most ne bántsuk a másik (az + orchid nevû gépen levõ) + /etc/printcap állományt. + Így persze az orchid bármelyik + felhasználója nyomtathat a + bamboo nyomtatón. De ez most egy + olyan eset, ahol egyébként lekorlátozzuk + a orchid elérését is, + ezért az ott beengedett felhasználók + már akár használhatják is a + nyomtatót. Vagy sem. + + + Minden nyomtatóhoz csak egy ilyen csoportot + adhatunk meg. + + + + + + A beküldött munkák + méretének szabályozása + + nyomtatási + munkák + + Ha sok felhasználó szeretne a + nyomtatóinkhoz hozzáférni, akkor minden + bizonnyal meg akarunk adni egy felsõ határt a + felhasználók által beküldhetõ + nyomtatások méretére vonatkozóan. + Mivel a nyomtatási könyvtáraknak otthont + adó állományrendszer is egyszer betelhet, + ezért mindenképpen érdemes gondoskodni + arról, hogy mindenki munkáját el tudjuk + rendesen tárolni. + + + nyomtatási munkák + szabályozása + + + Az LPD az mx + tulajdonsággal lehetõséget ad arra, hogy + lekorlátozzuk a munkákban + található egyes állományok + méretét. Ennek + mértékegysége egy + BUFSIZ blokk, ami pedig 1024 byte. Ha + értékül nullát adunk meg, akkor + nincs korlátozás, viszont ha semmit sem + rögzítünk, akkor az mx + tulajdonság alapértéke, vagyis 1000 blokk + lesz a határ. + + + Ez az érték a munkákban levõ + egyes állományok + méretére vonatkozik, nem + pedig a munkák teljes méretére. + + + Fontos tudni, hogy az LPD nem + dobja vissza a méreten felüli + állományokat. Ehelyett a méret alatti + részt szépen berakja a sorba és + kinyomtatja, a többi pedig elhagyja. Lehetne rajta + vitázni, hogy ez mennyire helyes cselekedet. + + Példaképpen definiáljunk a + korábban használt rattan + és bamboo nyomtatóinkhoz + ilyen korlátokat. Mivel az + artists csoport tagjai hajlamosak nagy + &postscript; állományokat küldeni, + ezért most lekorlátozzuk ezt öt + megabyte-ra. A szöveges nyomtatónk esetén + azonban nem lesz semmilyen határ: + + # +# /etc/printcap (rose) +# + +# +# Itt nincs korlát a munkákra: +# +rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:mx#0:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +# +# Öt megabyte a PostScript: +# +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + + Ismét hozzátesszük, hogy ezek a + korlátok csak a helyi felhasználókra + vonatkoznak. Amennyiben távolról is el lehet + érni ezt a nyomtatót, a távoli + felhasználókat nem fog semmilyen + korlátozás érinteni. Azokon a + számítógépeken is meg kell adnunk + az /etc/printcap + állományban az mx + tulajdonságot. Ehhez a Távoli + számítógépekre csatlakoztatott + nyomtatók címû szakaszban + találunk segítséget. + + Van még egy speciális módszer, amivel + képesek vagyunk szabályozni a + távolról érkezõ + kérések méretét. Errõl a + Távoli + számítógépekrõl + érkezõ kérések + szabályozása szakaszban + olvashatunk. + + + + + Távoli + számítógépekrõl + érkezõ kérések + szabályozása + + Az LPD nyomtatási + rendszer több módot is szolgáltat a + távolról érkezõ nyomtatási + munkák szabályozására: + + + + Az elérés + szabályozása + + + Az /etc/hosts.equiv és + /etc/hosts.lpd + állományok + segítségével + beállíthatjuk, hogy mely távoli + számítógépektõl + fogadjon el kéréseket az + LPD. Az + LPD minden + kérés elfogadásakor ellenõrzi, + hogy a küldõ + számítógép címe + szerepel-e az említett állományok + valamelyikében. Ha nem, akkor az + LPD visszautasítja a + kérést. + + A két állomány + felépítése egyszerû, mert + bennük minden sorban egy-egy hálózati + nevet adunk meg. Hozzátennénk azonban, + hogy legyünk óvatosak, mivel az + /etc/hosts.equiv + állományt az &man.ruserok.3; protokoll is + használja, ezért ennek + módosítása hatással van az + &man.rsh.1; és &man.rcp.1; programok + mûködésére. + + Például most nézzük meg a + rose + /etc/hosts.lpd + állományát: + + orchid +violet +madrigal.fishbaum.de + + Ennek megfelelõen tehát a + rose elfogadja az + orchid, violet + és madrigal.fishbaum.de nevû + távoli számítógépek + kéréseit. Ha bármilyen más + gép próbál hozzáférni + a rose által + felkínált LPD + szolgáltatáshoz, + visszautasítja. + + + + + A méret szabályozása + + + Szabályozhatjuk többek közt azt is, + hogy mennyi szabad területnek kell fennmaradnia a + nyomtatási könyvtárnak otthont + adó állományrendszeren. A helyi + nyomtató könyvtárában ehhez + hozzunk létre egy minfree + nevû állományt. Ide írjuk be, + mennyi szabad lemezblokk (512 byte-os egység a + lemezen) szükségeltetik egy + távolról beérkezõ munka + fogásához. + + Így gondoskodhatunk róla, hogy a + távoli felhasználók nem + fogják eltömíteni az + állományrendszerünket, illetve ezzel + egyúttal adhatunk némi elõnyt a helyi + felhasználóknak is: õk ugyanis + még azután is képesek lesznek + munkákat küldeni a nyomtatónak, + miután az állományrendszeren + található szabad terület + mennyisége már rég a + minfree állományban + szereplõ érték alá + csökkent. + + Példaként most a + bamboo nevû nyomtatónkhoz + adjunk meg egy ilyen minfree + állományt. Ehhez az + /etc/printcap + állományból tudjuk + kideríteni a hozzátartozó + nyomtatási könyvtárat. Lássuk + tehát belõle a bamboo + bejegyzését: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ + :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + + A nyomtatási könyvtárat az + sd tulajdonság + határozza meg. Úgy állítjuk + most be, hogy az LPD + számára a távoli munkák + fogadásához ebben a + könyvtárban legalább három + megabyte (6144 blokk) szabad területnek mindig + lennie kell: + + &prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree + + + + + + A felhasználók + szabályozása + + + Az /etc/printcap + állományban megadható + rs tulajdonság + segítségével korlátozhatjuk + a helyi nyomtatókhoz hozzáférni + képes távoli felhasználókat. + Amikor az rs tulajdonság + szerepel egy helyben csatlakozó nyomtató + leírásánál, akkor az + LPD csak abban az esetben + fogad el távoli + felhasználóktól munkát, + ha a munkát küldõ + felhasználónak ugyanazon a néven + van a helyi gépen is + hozzáférése. + Máskülönben az + LPD vissza fogja + utasítani a kérést. + + Ez a tulajdonság különösen + fontos olyan környezetben, ahol + (például) több szervezeti + egység használ egyetlen közös + hálózatot és bizonyos + felhasználók képesek + átlépni szervezeti egységük + határait, mivel ha a + hozzáférést adunk neki a + rendszereinkhez, akkor képesek a saját + helyükrõl használni ezeket. Ha + ehelyett csupán a + nyomtatóinkat és a + számítógépünk + összes erõforrását akarjuk + megosztani, akkor létrehozhatunk a + számukra olyan token + hozzáféréseket is, amikhez nem + tartozik sem felhasználói + könyvtár, sem pedig + parancsértelmezõ (pontosabban a + /usr/bin/false). + + + + + + + + + A nyomtató használatának + nyilvántartása + + + nyilvántartás + nyomtató + + + Tehát szükségünk lenne a + nyomtatások költségének + elszámolására. Miért is ne + tennénk ilyet? A papír és a tinta bizony + pénzbe kerül, amihez még + hozzájárulnak más egyéb + karbantartási költségek is — a + nyomtatók dugig vannak mindenféle mozgó + alkatrésszel, amelyek elõbb-utóbbi el is + romlanak. Tegyük fel, hogy a nyomtatóink + kapacitása, kihasználtsága és + karbantartási költsége alapján + már megállapítottunk egy + elszámolási egységet (oldalanként, + méterenként, akárminként). De + hogyan lássunk hozzá a nyomtatások + költségének tényleges + nyilvántartásához? + + Van egy rossz hírünk: az + LPD nyomtatási rendszer + önmaga nem tud segíteni ebben a feladatban. A + nyilvántartás nagyban függ a használt + nyomtatóktól, a nyomtatott + formátumoktól és nyomtató + általunk kiszabott + költségeitõl. + + A nyilvántartás + létrehozásához át kell írnunk + a nyomtatóhoz tartozó szûrõt (a nyers + szövegek költségének + felszámításához) és + konverziós szûrõket (a + különféle formátumok + költségei miatt), amikkel aztán + számolhatjuk vagy lekérdezhetjük a + kinyomtatott lapokat. Egyetlen kimeneti szûrõ + használatával szinte semmire se megyünk, + mivel az nem képes nyilvántartás + vezetésére. Errõl bõvebb + útmutatást a Szûrõk + szakaszban találhatunk. + + Általánosságban véve két + módon vezethetünk + nyilvántartást: + + + + Az idõszakos + elszámolás a gyakoribb, mivel ez az + egyszerûbb. Amikor valaki kinyomtat egy munkát, + a szûrõ a nyilvántartást + tároló állományba feljegyzi a + felhasználó azonosítóját, + a gépének nevét és a + kinyomtatott oldalakat. Ezután minden + hónapban, félévben, évben vagy + akár tetszõleges + idõközönként + összegyûjtjük a nyomtatók + nyilvántartásait és külön + feljegyezzük az egyes felhasználók + nyomtatásait, majd benyújtjuk róla a + számlát. Töröljük az + összes naplóállományt, és + tiszta lappal kezdjük a következõ + idõszakot. + + + + Az azonnali + elszámolás már nem annyira + népszerû, mivel nehezebb + megvalósítani. Ekkor a + felhasználók már közvetlenül + a nyomtatás után megkapják a + számlát, hasonlóan a + lemezkvótákhoz. Meg tudjuk akadályozni + ezzel azt is, hogy a felhasználók + túlléphessék az elõre kiszabott + nyomtatási kvótájukat, + amit persze menet közben lehet ellenõrizni + és állítgatni. A + felhasználók és kvótájuk + nyomonkövetéséhez viszont + szükségünk lesz egy kis + adatbáziskezelésre is. + + + + Az LPD nyomtatási rendszer + mind a két módszer kivitelezéséhez + tud segítséget nyújtani, hiszen amikor + szûrõket állítunk be (vagyis szinte + mindig), lehetõségünk van a + nyilvántartást végzõ + programrészleteket is beilleszteni. És ami + feltétlenül elõnyös: óriási + mértékû rugalmasságot ajánl fel + a nyilvántartás + megvalósításához. + Például magunk választhatjuk ki, hogy + idõszakos vagy azonnali elszámolást + alkalmazunk. Meg tudjuk adni, milyen + információkat rögzítsünk: + felhasználói neveket, + számítógépek neveit, a munkák + típusát, vagy a kinyomtatott oldalakat, a + felhasznált lapok területét, a + nyomtatások idõbeli igényeit és + így tovább. Ehhez mindössze csak a + szûrõket kell módosítani. + + + Nyilvántartás gyorsan és + egyszerûen + + A &os;-ben egybõl találunk is két + programot, amivel pillanatok alatt ki tudunk alakítani + egy egyszerû idõszakos elszámolási + rendszert. Ezek Az lpf + szövegszûrõ címû szakaszban + ismertetett lpf és a + nyomtatók nyilvántartásait + tartalmazó állományok adatainak + összegyûjtését és + kiértékelését végzõ + &man.pac.8;. + + Ahogy korábban már leírtuk a + szûrõkrõl szóló szakaszban (Szûrõk), + az LPD a szöveg- és + konverziós szûrõket parancssorból a + nyilvántartást tároló + állomány nevével indítja el. Ezt + a paramétert a szûrõk aztán fel + tudják használni a nyilvántartások + feljegyzéséhez. Az állomány + nevét az /etc/printcap + állományban szereplõ af + tulajdonsággal tudjuk megadni, vagy teljes + elérési úttal, vagy pedig a + nyomtatási könyvtárhoz + viszonyítva. + + Az LPD az + lpf szûrõt a lap + szélességének és hosszának + megadásával indítja el (ezeket az + értékeket a pw és + pl tulajdonságokból + származtatja). Az lpf ezek + felhasználásával meg tudja mondani, + mennyi papírt használtunk el. Miután + kiküldte az állományt a nyomtatóra, + nyilvántartásba is veszi. Ezek a + típusú bejegyzések valahogy így + néznek ki: + + 2.00 rose:andy +3.00 rose:kelly +3.00 orchid:mary +5.00 orchid:mary +2.00 orchid:zhang + + Minden nyomtatóhoz érdemes külön + nyilvántartást vezetni, mivel az + lpf nem tartalmaz semmilyen + beépített zárolási + megoldást, ezért két + lpf párhuzamos futtatása + könnyen összezagyválhatja a közösen + használt nyilvántartások + tartalmát. Az /etc/printcap + állományban az af=acct + tulajdonság megadásával könnyen + létre tudunk hozni minden nyomtatóhoz + külön nyilvántartást. Ilyenkor minden + nyomtató könyvtárában megjelenik egy + acct nevû + állomány. + + Amikor elérkezünk a nyomtatások + kiszámlázásához, futtassuk le a + &man.pac.8; programot. Ehhez mindössze annyit kell + tennünk, hogy átlépünk az + elszámolni kívánt nyomtató + könyvtárába és + begépeljük a pac parancsot. + Ekkor kapunk egy ehhez hasonló, dollár + alapú kimutatást: + + Login pages/feet runs price +orchid:kelly 5.00 1 $ 0.10 +orchid:mary 31.00 3 $ 0.62 +orchid:zhang 9.00 1 $ 0.18 +rose:andy 2.00 1 $ 0.04 +rose:kelly 177.00 104 $ 3.54 +rose:mary 87.00 32 $ 1.74 +rose:root 26.00 12 $ 0.52 + +total 337.00 154 $ 6.74 + + A &man.pac.8; a következõ paramétereket + várja: + + + + + + Az kiértékelendõ + nyomtató neve. Ez a + paraméter csak akkor használható, + ha az /etc/printcap + állományban az af + tulajdonságnak teljes elérési utat + adtunk meg. + + + + + + + A felhasználók nevei helyett a + fizetendõ összeg szerint rendezze a + listát. + + + + + + + Hagyja figyelmen kívül a + nyilvántartásban szereplõ + gépek hálózati neveit. Ennek + hatására az alpha + géprõl nyomtató + smith meg fog egyezni a + gamma géprõl + nyomtatóval. A beállítás + nélkül ez a két + felhasználó el fog térni. + + + + + + + A paraméterként megadott + ár dollár + értékkel számol oldalanként + vagy lábanként az + /etc/printcap + állományban megadott pc + tulajdonság értéke helyett (ami + alapból két cent). Az + ár lebegõpontos + (valós) számként is + megadható. + + + + + + + A rendezési sorrend + megfordítása. + + + + + + + Hozzon létre egy elszámolást, + majd törölje a hozzá + kapcsolódó nyilvántartási + adatokat. + + + + + név + + + Csak az adott nevû + felhasználók adatait + értékelje ki. + + + + + A &man.pac.8; által alapértelmezés + szerint generált kimutatásban láthatjuk + az egyes gépekrõl származó egyes + felhasználók kinyomtatott oldalait. Ha + nekünk viszont nem számít, hogy honnan + küldték a kéréseket (mivel + bárhonnan lehet küldeni), akkor a pac + -m paranccsal az alábbi + táblázatot készítetthetjük + el: + + Login pages/feet runs price +andy 2.00 1 $ 0.04 +kelly 182.00 105 $ 3.64 +mary 118.00 35 $ 2.36 +root 26.00 12 $ 0.52 +zhang 9.00 1 $ 0.18 + +total 337.00 154 $ 6.74 + + Itt megtaláljuk a ténylegesen + kifizetendõ összegeket is, amik + kiszámításához a &man.pac.8; az + /etc/printcap állomány + pc tulajdonságát + használja (ez alapból 200, avagy 2 cent + oldalanként). Ezzel a tulajdonsággal + tehát egy cent századrészében + mérve tudjuk megadni az oldalakénti vagy + lábankénti árakat. Ezt a + beállítást természetesen a + &man.pac.8; opciójával + felül tudjuk bírálni. Arra azonban + vigyázzunk, hogy a után + dollárban kell megadnunk az árat. Emiatt + tehát a + + &prompt.root; pac -p1.50 + + parancs szerint minden egyes oldal másfél + dollárba fog kerülni. Ezzel az opcióval + aztán alaposan megdönthetjük az + árakat. + + Végezetül megemlítjük, hogy a + pac -s parancs az általa + létrehozott elszámolást egy + külön állományba menti, amelynek a + neve nagyjából megegyezik a + nyilvántartást végzõével, de + _sum-ra (mint summary, azaz + elszámolás) végzõdik. Ezután + nullázza a nyilvántartást. Amikor a + &man.pac.8; programot újra lefuttatjuk, + újból beolvassa a korábban elmentett + elszámolásokat, majd hozzászámolja + a többit a hagyományos + nyilvántartási adatokból. + + + + + Hogyan tudjuk számolni a kinyomtatott + lapokat? + + A nyilvántartás pontos + vezetéséhez még távolról is + valamilyen módon meg kell tudnunk mondani, hogy mennyi + lapot használt egy nyomtatási munka + végrehajtása. Ez a nyomtatás + nyilvántartásának egyik alapvetõ + problémája. + + A nyers szövegek esetében ez nem is annyira + bonyolult: egyszerûen számoljuk össze, hogy a + munkában mennyi sor kinyomtatására lesz + szükség és vessük össze ezt a + nyomtató által lapoként kinyomtatott + sorok számálva. Ne felejtsük el + számításba venni a szövegben + felbukkanó törlések hatását, + vagy az olyan hosszú sorokat, amelyek a + valóságban több sorban fognak + megjelenni. + + Viszont (Az lpf + szövegszûrõ címû szakaszban + bemutatott) lpf program ezeket mind + lekezeli a nyilvántartások + készítése során. Ezért ha + szintén egy nyilvántartást vezetni + képes szövegszûrõt akarunk írni, + akkor mindenképpen érdemes + megnéznünk az lpf + forráskódját. + + De hogyan bánjunk el a többi + formátummal? + + Nos, a DVI-Laserjet és DVI-&postscript; közti + átalakítások esetén a kinyomtatott + lapok számának + megállapításához meg kell + tanítanunk a szûrõnket értelmezni a + dvilj vagy dvips + parancsok kimenetét. Ugyanezt meg tudjuk tenni + más formátumok és más + konverziós programok használata során + is. + + Azonban ezek a módszerek nem veszik + számításba, hogy a nyomtató + egyáltalán ki is nyomtatta-e az összes + elküldött oldalt. Sok minden történhet + még addig, például beragadhat a + papír, kifogyhat a tinta vagy akár felrobbanhat + a nyomtató — a felhasználónak + ettõl függetlenül még fizetnie + kell. + + Mit lehet ilyenkor tenni? + + A precíz + nyilvántartásnak csak egyetlen + biztos módja létezik. + Olyan nyomtatót szerezzünk be, amely képes + megmondani, mennyi lapot használt el a nyomtatás + során, majd egy ilyet csatlakoztassunk soros porton + vagy hálózaton keresztül. Szinte majdnem + az összes &postscript; nyomtató támogatja + ezt a lehetõséget, ahogy sok más + gyártmány és típus is + (például a hálózati Imagen + lézernyomtatók). A nyomtatóhoz + tartozó szûrõt ehhez úgy kell + módosítani, hogy lekérdezzük a + kinyomtatott lapok számát a nyomtatás + után és + kizárólag erre az + értékre alapozva készítünk + nyilvántartást. Itt nincs szükség + sem a sorok számolására, sem pedig az + állományok (könnyen + elhibázható) + átvizsgálására. + + Természetesen lehetünk nagylelkûek + és ne számítsunk fel semmit a + nyomtatásért. + + + + + + + A nyomtatók használata + + + nyomtató + használat + + + Ebbõl a szakaszból megtudhatjuk, hogyan + használjuk a &os;-n beállított + nyomtatónkat. Röviden most itt foglaljuk össze + az ide tartozó felhasználói + parancsokat: + + + + &man.lpr.1; + + Munkákat nyomtat ki. + + + + + &man.lpq.1; + + Ellenõrzi a nyomtatási sorokat. + + + + + &man.lprm.1; + + Munkákat vesz ki a nyomtatási + sorokból. + + + + + Ezek mellett létezik még a nyomtatók + és a hozzájuk tartozó sorok + irányítására alkalmas parancs is, az + &man.lpc.8;, amelyre a A + nyomtatók vezérlése címû + szakaszban fogunk részleteiben kitérni. + + A nyomtatók/sorok /etc/printcap + állományban szereplõ nevük szerinti + megadásához az &man.lpr.1;, &man.lprm.1; és + &man.lpq.1; parancsok közül mindegyik elfogadja a + + paramétert. Ennek köszönhetõen + képesek vagyunk munkákat küldeni, + eltávolítani vagy felügyelni az egyes + nyomtatók soraiban. Ha nem használjuk a + kapcsolót, akkor az érintett + nyomtató a PRINTER környezeti + változó által meghatározott lesz. + Végül, ha a PRINTER nevû + környezeti változót sem + állítottuk be, akkor a parancsok + alapértelmezett módon az lp + nevû nyomtatót fogják használni. + + A továbbiakban az alapértelmezett + nyomtató kifejezés a + PRINTER környezeti változó + által megnevezett nyomtatóra fog utalni, illetve ha + ezt nem definiáltuk, akkor az lp + nevû nyomtatóra. + + + Munkák nyomtatása + + Az állományok kinyomtatásához + írjuk be: + + &prompt.user; lpr állománynév ... + + nyomtatás + + Ezzel kinyomtatjuk az összes felsorolt + állományt az alapértelmezett + nyomtatón. Ha nem adunk meg állományokat, + akkor az &man.lpr.1; parancs a szabványos bemenetrõl + várja a nyomtatandó adatokat. + Például ezzel a paranccsal néhány + igen fontos rendszerállományt tudunk + kinyomtatni: + + &prompt.user; lpr /etc/host.conf /etc/hosts.equiv + + A nyomtató megválasztásához + így adjuk ki a parancsot: + + &prompt.user; lpr -P nyomtatónév állománynév ... + + Ez a példa kinyomtatja az aktuális + könyvtár részletes listáját a + rattan nevû nyomtatón: + + &prompt.user; ls -l | lpr -P rattan + + Mivel egyetlen állományt sem adtunk meg az + &man.lpr.1; programnak, az lpr parancs a + nyomtatandó adatokat a szabványos bemenetrõl + várja, ami jelen esetünkben a ls + -l parancs kimenete. + + Az &man.lpr.1; ezeken felül még képes + értelmezni rengeteg formázásra, + konverzióra, másolatok + készítésére stb. + utasító kapcsolót is. Errõl + bõvebben a Nyomtatási + beállítások címû + szakaszban lesz szó. + + + + + Munkák felügyelete + + nyomtatási + munkák + + Amikor az &man.lpr.1; programmal nyomtatunk, az összes + nyomtatandónk egy nyomtatási + munkának nevezett csomagba kerül, ami pedig + az LPD nyomtatási + rendszerébe. Minden nyomtatóhoz tartozik egy + nyomtatási sor, ahol részünkrõl + és mások által eddig kiadott + munkákat találhatjuk. A nyomtató + ezután ezeket a munkákat érkezési + sorrend szerint dolgozza fel. + + Az alapértelmezett nyomtatóhoz tartozó + sor állapotát az &man.lpq.1; programmal tudjuk + megnézni. Ha egy adott nyomtatóra vagyunk + kíváncsiak, akkor használjuk a + kapcsolót. Például a + + &prompt.user; lpq -P bamboo + + parancs a bamboo nevû + nyomtató sorát fogja megmutatni. + Példaképpen lássuk is ilyen esetben az + lpq parancs eredményét: + + bamboo is ready and printing +Rank Owner Job Files Total Size +active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes +2nd kelly 10 (standard input) 1635 bytes +3rd mary 11 ... 78519 bytes + + Itt három munkát láthatunk a + bamboo nyomtatási sorában. Az + elsõ munka, amit a kelly nevû + felhasználó küldött, a 9-es + munkaszámot kapta. A nyomtatóhoz + tartozó összes munka kap egy ilyen egyedi + számot. Többnyire nyugodtan figyelmen + kívül hagyhatjuk, azonban + szükségünk lehet rá, ha éppen + törölni kívánjuk a + hozzátartozó munkát. Ezzel majd a Munkák + eltávolítása címû + szakaszban foglalkozunk. + + A kilences számú munka két + állományt tartalmaz: ha a parancssorban több + állományt adunk meg az &man.lpr.1; programnak, + akkor az egy munkának számít. Ez egyben a + pillanatnyilag aktív munka (ezt a Rank + oszlopban szereplõ active + érték jelzi), tehát a nyomtató + éppen ezzel foglalatoskodik. A második munka + közvetlenül az &man.lpr.1; szabványos + bemenetére érkezett. A harmadik a + mary nevû + felhasználótól jött, és ez egy + nagyobbacska munka. A nyomtatandó állomány + elérési útvonala túlságosan + hosszú ahhoz, hogy ki lehessen írni, ezért + az &man.lpr.1; csak három pontot jelez ki + helyette. + + Az &man.lpq.1; kimenetének elsõ sorai is nagyon + hasznos információt tartalmaz: megtudhatjuk, mit + csinál éppen (legalább is az + LPD szerint) a + nyomtató. + + A kapcsolóval az &man.lpq.1; + parancstól kérhetünk sokkal + részletesebb listázást is. + Például így nézhet ki a lpq + -l parancs eredménye: + + waiting for bamboo to become ready (offline ?) +kelly: 1st [job 009rose] + /etc/host.conf 73 bytes + /etc/hosts.equiv 15 bytes + +kelly: 2nd [job 010rose] + (standard input) 1635 bytes + +mary: 3rd [job 011rose] + /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes + + + + + Munkák eltávolítása + + Ha meggondoltuk volna magunkat egy munka + kinyomtatásáról, az &man.lprm.1; paranccsal + még törölni tudjuk a sorból. Az + &man.lprm.1; gyakran még a nyomtatás alatt + álló munkát is képes + eltávolítani, azonban elõfordulhat, hogy a + munka egy része már nyomtatásra + került. + + Az alapértelmezett nyomtató + sorából csak úgy tudunk munkákat + törölni, ha elõször az &man.lpq.1; + segítségével megkeressük a + számukat. Ha ez megvan, írjuk be: + + &prompt.user; lprm munkaszám + + Adott nyomtatóról a + kapcsoló segítségével tudunk + munkákat törölni. A most következõ + parancs a bamboo nevû + nyomtatóról törli a 10-es számú + munkát: + + &prompt.user; lprm -P bamboo 10 + + Az &man.lprm.1; parancs esetén még + használhatóak az alábbi + rövidítések is: + + + + lprm - + + Eltávolítja a hozzánk + tartozó az összes munkát (az + alapértelmezett nyomtatón). + + + + + lprm felhasználó + + Eltávolítja az adott + felhasználóhoz + tartozó összes munkát (az + alapértelmezett nyomtatón). + Kizárólag a rendszergazdák + képesek erre, a rendes felhasználók + csak a saját munkáikat + törölhetik. + + + + + lprm + + A munka száma, a felhasználói + név vagy a megadása + nélkül az &man.lprm.1; törli az + alapértelmezett nyomtatón éppen + aktív munkát, amennyiben az a miénk. + Csak a rendszergazdák képesek + bármilyen aktív munkát + törölni. + + + + + Ha kiegészítjük az imént + említett rövidítéséket a + paraméter megadásával, + akkor az alapértelmezett nyomtató helyett + bármelyik másikat is használhatjuk. + Például ez a parancs eltávolítja az + aktuális felhasználó összes + munkáját a rattan nevû + nyomtatón: + + &prompt.user; lprm -P rattan - + + + Hálózati környezetben az &man.lprm.1; + csak arról a géprõl engedi + törölni a munkákat, amelyrõl + küldték ezeket, még abban az esetben is, + amikor ugyanaz a nyomtató más + számítógépekrõl is + elérhetõ. A következõ parancssorozat + ezt igyekszik szemléltetni: + + &prompt.user; lpr -P rattan myfile +&prompt.user; rlogin orchid +&prompt.user; lpq -P rattan +Rank Owner Job Files Total Size +active seeyan 12 ... 49123 bytes +2nd kelly 13 myfile 12 bytes +&prompt.user; lprm -P rattan 13 +rose: Permission denied +&prompt.user; logout +&prompt.user; lprm -P rattan 13 +dfA013rose dequeued +cfA013rose dequeued + + + + + + + Túl a nyers szövegen: nyomtatási + beállítások + + Az &man.lpr.1; parancs számos olyan + beállítást enged, amelyekkel a + szövegek formázását, grafikák + átalakítását illetve más + állományformátumok + használatát, másolatok + készítését, munkák + irányítását és még sok + minden mást el tudunk végezni. Ebben a szakaszban + pontosan ezekrõl a kapcsolókról lesz + szó. + + + Formázási és konverziós + beállítások + + Az &man.lpr.1; most következõ opciói a + munkákban található + állományok formázását + vezérlik. Akkor használjuk ezeket a + beállításokat, ha a munka nem tartalmaz + nyers szöveget, vagy ha nyers szöveget akarunk + formázni az &man.pr.1; segédprogrammal. + + &tex; + + Például az alábbi parancs kinyomtat + egy + halászati-jelentés.dvi + nevû (a &tex; betûszedû rendszerbõl + már jól ismert) DVI állományt a + bamboo nevû nyomtatón: + + &prompt.user; lpr -P bamboo -d halászati-jelentés.dvi + + Ezek a beállítások a munkában + szereplõ minden egyes állományra + vonatkoznak, ezért nem keverhetjük + (például) a DVI és ditroff + formátumú állományokat egy + munkán belül. Ehelyett külön + munkákban kell elküldenünk az + eltérõ formátumú + állományokat, és mindegyik + munkához külön konverziós + beállításokat kell megadnunk. + + + A és + kapcsolók kivételével az itt felsorolt + összes beállításnak a + kiválasztott nyomtatóhoz szüksége + van a megfelelõ konverziós szûrõre. + Például a opció + használatához kell egy konverziós + szûrõ a DVI formátumhoz. A Konverziós + szûrõk címû szakasz errõl + ad bõvebb tájékoztatást. + + + + + + + Cifplot állományok + nyomtatása. + + + + + + + DVI állományok + nyomtatása. + + + + + + + FORTRAN forrás nyomtatása. + + + + + + + Plot formátumú adatok + nyomtatása. + + + + + + + A kinyomtatott szöveg + behúzásának növelése a + szám + értékével. Ha nem adjuk meg a + számot, akkor ennek + értéke 8 lesz. Ez a + beállítás csak bizonyos + konverziós szûrõkkel + mûködik. + + + Ne hagyjunk helyet az + és a szám között. + + + + + + + + A szöveg formázás + nélküli nyomtatása, + vezérlõkarakterekkel együtt. + + + + + + + Ditroff (eszközfüggetlen troff) adat + nyomtatása. + + + + + -p + + Nyomtatás elõtt a szöveg + formázása a &man.pr.1; programmal. + Lásd &man.pr.1;. + + + + + + + Az állomány neve helyett a + fejlécben a címet + jeleníti meg a &man.pr.1;. Ennek a + beállításnak csak a + opcióval együtt van + hatása. + + + + + + + Troff adat nyomtatása. + + + + + + + Raszteres adatok nyomtatása. + + + + + Vegyünk az iméntiekre egy + példát. A következõ parancs az + &man.ls.1; szépen megformázott man + oldalát nyomtatja ki az alapértelmezett + nyomtatón: + + &prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t + + A &man.zcat.1; kitömöríti az &man.ls.1; + man oldalának forrását és + átadja a &man.troff.1; parancsnak, ami ebbõl + létrehoz a GNU troff formátumának + megfelelõ kimenetet és továbbadja az + &man.lpr.1; parancsnak, ami végül elküldi a + munkát az LPD + nyomtatási rendszernek. Mivel az &man.lpr.1; + parancsnak megadtuk az kapcsolót, a + nyomtatási rendszer a GNU troff formátumban + érkezõ adatokat magától át + fogja alakítani olyan formátumra, amit a + nyomtató is képes lesz megérteni. + + + + + Munkák kezelése + + Az &man.lpr.1; most felsorolandó + beállításaival az + LPD rendszert arra tudjuk + utasítani, hogy a munkát különleges + módon kezelje: + + + + -# + példányszám + + Egyetlen példány helyett hozzon + létre + példányszám + számú példányt a + munkában található összes + állományból. A rendszergazda a + nyomtató kímélése + érdekében ezt a lehetõséget + letilthatja, amivel inkább a + fénymásoló + használatára ösztönzi a + felhasználókat. Lásd A + másolatok számának + szabályozása szakasz. + + A beállítás + illusztrálásaként most az + alapértelmezett nyomtatón + elõször nyomtassuk ki három + példányt a + parser.c, + majd ezután a + parser.h + állományokból: + + &prompt.user; lpr -#3 parser.c parser.h + + + + + -m + + A rendszer küldjön levelet a munka + teljesítése után. Ekkor az + LPD a munka + elvégzése után levelet küld a + helyi postafiókunkba. A levélben kifejti, + hogy sikeres volt-e a nyomtatás, vagy esetleg + valamilyen hiba keletkezett, és ha hiba + történt, akkor pontosan mi is volt + az. + + + + + -s + + Ne másolja közvetlenül az + állományokat a nyomtatási + könyvtárba, hanem készítsen + hozzájuk szimbolikus linkeket. + + Egy nagyobb munka nyomtatása esetén + javasolt használni ezt a kapcsolót. Ezzel + a megoldással helyet tudunk spórolni a + nyomtatási könyvtárban (amikor a + munkánk könnyen megtelítheti a + nyomtatási könyvtárat + tároló állományrendszert). + Emellett idõt is takarítunk meg, mivel az + LPD-nek nem kell a munka + minden egyes bitjét átmásolni a + nyomtatási könyvtárba. + + Van azonban egy hátránya: mivel az + LPD ekkor + közvetlenül az eredeti + állományra fog hivatkozni, ezért a + nyomtatás befejezéséig azt nem + módosíthatjuk vagy + törölhetjük. + + + Ha egy távoli nyomtatónak + küldjük a munkát, akkor az + LPD a helyi és a + távoli számítógép + között mégis kénytelen lesz + átmásolni a munkát, így a + kapcsoló egyedül csak + a helyi nyomtatási könyvtárban fog + helyet spórolni. Ettõl eltekintve + még ilyenkor is hasznunkra + válhat. + + + + + + -r + + Törölje a munkában szereplõ + állományokat, miután + átmásolta ezeket a nyomtatási + könyvtárba, vagy miután a + kapcsoló + használatával kinyomtatta ezeket. Nagy + körültekintéssel + használjuk! + + + + + + + A fejléclapok + beállításai + + Az &man.lpr.1; most következõ + beállításai a munkák + fejlécében megjelenõ szövegekre vannak + hatással. Így ha letiltottuk a + fejléclapok használatát, akkor ezek a + kapcsolók lényegében semmit sem + állítanak. A Fejléclapok + címû szakaszból tudhatunk meg többet + ezek beállításáról. + + + + -C szöveg + + A fejléclapon megjelenõ + hálózati név helyett a + szöveg fog szerepelni. + A hálózati név + általában annak a gépnek a neve, + ahonnan a munkát küldték. + + + + + -J szöveg + + A fejléclapon megjelenõ munka neve + helyett a szöveg fog + megjelenni. A munka neve általában a + benne szereplõ elsõ állomány + nevével egyezik meg, ha a szabványos + bemenetrõl nyomtatunk, akkor egyszerûen csak + stdin. + + + + + -h + + Ne nyomtasson fejléclapot. + + + Bizonyos helyeken elõfordulhat, hogy ennek a + kapcsolónak nincs semmilyen hatása a + fejléclapok létrehozásának + módszerébõl fakadóan. A + részleteket lásd a + Fejléclapok szakaszban. + + + + + + + + + + A nyomtatók vezérlése + + A nyomtatóink rendszergazdájaként + nekünk kell telepítenük, üzembe + helyeznünk és kipróbálnunk ezeket. Az + &man.lpc.8; parancs használatával még + jobban képesek vagyunk kapcsolatba lépni + velük. Az &man.lpc.8; paranccsal: + + + + el tudjuk indítani és le tudjuk + állítani a nyomtatókat; + + + + be- és ki tudjuk kapcsolni a nyomtatási + soraikat; + + + + át tudjuk rendezni az egyes sorokban + található munkákat. + + + + Elõször is essen pár a fogalmakról: + ha a nyomtató leállt, akkor + semmit sem fog kinyomtatni a sorából. A + felhasználók továbbra is képesek + munkákat küldeni, amik azonban egészen addig + fognak várakozni, amíg a nyomtatót + el nem indítjuk vagy a sorát + ki nem ürítjük. + + Ha egy sort kikapcsolunk, akkor (a + root kivételével) egyetlen + felhasználó sem képes munkákat + küldeni a nyomtatónak. A + bekapcsolt sorok képesek csak + munkát fogadni. A nyomtató + elindítható kikapcsolt sorral + is, ilyenkor egészen addig folytatja a munkák + kinyomtatását, amíg a sor ki nem + ürül. + + Általánosan elmondható, hogy az + &man.lpc.8; parancs használatához a + root felhasználó + jogosultságaira van szükségünk. Az + &man.lpc.8; parancsot minden más esetben csak a + nyomtató állapotának + ellenõrzésére vagy a megakadt nyomtató + újraindítására + használhatjuk. + + Foglaljuk röviden össze az &man.lpc.8; parancsait. + A legtöbb parancs kiadásához még + szükséges egy + nyomtatónév + paraméter megadása is, amivel megnevezzük az + utasítani kívánt nyomtatót. + Helyette használható az all + szó is, amivel az /etc/printcap + állományban szereplõ összes + nyomtatót egyszerre utasíthatjuk. + + + + abort + nyomtatónév + + Az aktuális munka megszakítása + és a nyomtató + leállítása. Ha a nyomtatási + sort még nem kapcsoltuk ki, a + felhasználók küldhetnek további + munkákat. + + + + + clean + nyomtatónév + + A nyomtató + könyvtárából + töröljük a régi + állományokat. Esetenként + adódhat, hogy bizonyos munkák + állományait nem takarította el az + LPD, különösen + abban az esetben, amikor a nyomtatás vagy az + adminisztrálás során keletkezett + valamilyen hiba. Ez a parancs segít + megtalálni a nyomtatási + könyvtárból már kikopott + állományokat és törli + ezeket. + + + + + disable + nyomtatónév + + Az újonnan érkezõ munkák + besorolásának kikapcsolása. Ha a + nyomtató még mûködik, akkor + folytatni fogja a sorban még bennmaradt + munkák nyomtatását. A rendszergazda + (a root) még a kikapcsolt + sorok esetén is küldhet + munkákat. + + Ez a parancs valójában akkor hasznos, ha + egy új nyomtató vagy egy új + szûrõ mûködését + próbálgatjuk: ilyenkor érdemes + kikapcsolni a nyomtatási sort és + root + felhasználóként munkákat + küldeni. A többi felhasználó a + tesztelés befejezéséig nem tud majd + munkákat küldeni, vagyis egészen addig, + amíg a nyomtatási sort vissza nem kapcsoljuk + az enable paranccsal. + + + + + down + nyomtatónév + üzenet + + A nyomtató üzemen kívül + helyezése. Lényegében megegyezik egy + disable és utána egy + stop parancs kiadásával. + Az üzenet akkor jelenik + meg, amikor a valaki megpróbálja + lekérdezni a nyomtató + állapotát az lpc status + paranccsal, vagy amikor megnézi a nyomtatási + sorát az &man.lpq.1; paranccsal. + + + + + enable + nyomtatónév + + A nyomtatóhoz tartozó nyomtatási + sor bekapcsolása. A felhasználók + ezután már képesek lesznek a + nyomtatónak munkákat küldeni, azonban + egészen addig nem nyomtatódik ki semmi, + amíg a nyomtató el nem + indítjuk. + + + + + help + parancsnév + + Megmutatja a + parancsnév parancshoz + tartozó súgót. A + parancsnév + megadása nélkül a rendelkezésre + álló parancsok listáját kapjuk + meg. + + + + + restart + nyomtatónév + + Elindítja a nyomtatót. A + felhasználók ezt a parancsot tudják + használni abban az esetben, amikor valamilyen + megmagyarázhatatlan okból az + LPD mûködése + megáll, viszont ezzel nem tudják + elindítani a stop vagy + down parancsokkal + leállított nyomtatót. A + restart parancs megegyezik az + abort és a + start egymás utáni + kiadásával. + + + + + start + nyomtatónév + + Elindítja a nyomtatót, és a + nyomtató nekilát kinyomtatni a + sorában levõ munkákat. + + + + + stop + nyomtatónév + + Leállítja a nyomtatót, és + a nyomtató az aktuális munka + befejezése után már nem kezd neki + újabbnak. Ettõl függetlenül a + felhasználók még továbbra is + képesek munkákat küldeni a + nyomtatási sorába. + + + + + topq + nyomtatónév + munka-vagy-felhasználónév + + Átrendezi a + nyomtatónév + nevû nyomtató sorát úgy, hogy a + megadott azonosítójú + munkát vagy a megadott + felhasználónévhez + tartozó munkákat a sor elejére teszi. + Ennél a parancsnál + nyomtatónévnek + nem adhatjuk meg az all + értéket. + + + + + up + nyomtatónév + + Üzembe helyezi a nyomtatót, + tulajdonképpen a down parancs + ellentéte. Megegyezik egy egymás + után kiadott start és + enable paranccsal. + + + + + Az &man.lpc.8; a fenti parancsokat a parancssorból + fogadja el. Ha itt nem adunk meg neki semmilyen parancsot, + akkor az &man.lpc.8; interaktív módba vált, + ahol ugyanezeket a parancsokat adhatjuk ki, egészen az + exit, quit parancsok vagy + az állományvége jelzés + begépeléséig. + + + + + + Más nyomtatási rendszerek + + Ha derekasan végigolvastuk eddig ezt a fejezetet, akkor + mostanra már valószínûleg mindent tudunk + a &os;-ben található LPD + nyomtatási rendszerrõl. Ezzel együtt + tisztában vagyunk a hiányosságaival is, + aminek kapcsán természetes módon + felmerülhet bennünk a kérdés: + Milyen más (&os;-vel is mûködni + képes) nyomtatási rendszerek léteznek + még? + + + + LPRng + LPRng + + Az LPRng, aminek + jelentése LPR Next Generation (Az LPR + következõ generációja), a PLP + teljesen újraírt változata. Patrick + Powell és Justin Mason (a PLP eredeti + karbantartója) együttes munkájának + gyümölcse az LPRng. Az + LPRng honlapja: . + + + + CUPS + CUPS + + A CUPS, vagy más + néven a Common UNIX Printing System + (Közös &unix;-os nyomtatási rendszer), egy + hordozható nyomtatási réteg + nyújt a &unix;-alapú operációs + rendszerek számára. Az Easy Software Products + fejlesztése és szinte az összes &unix; + gyártó és felhasználó + szemében elfogadott szabványos + nyomtatási rendszer. + + A CUPS a nyomtatási + munkák és sorok kezelését az + internetes nyomtatási protokollon (Internet Printing + Protocol, IPP) + használatával oldja meg. Csökkentett + képességekkel ugyan, de a sornyomtató + démon (Line Printer Daemon, LPD), + szerverüzenet-blokk (Server Message Block, + SMB), és AppSocket (más + néven JetDirect) protokollokat is ismeri. A CUPS a + komolyabb &unix;-os nyomtatási feladatokhoz ezeken + felül még a hálózati + nyomtatók közti választást + és PostScript nyomtatók + leírásán (PostScript Printer + Description, PPD) alapuló + nyomtatási beállításokat is + támogatja. + + A CUPS honlapja: . + + + + + + + + Hibakeresés + + Miután az &man.lptest.1; programmal + elvégeztünk néhány egyszerû + próbát, a várt helyett a következõk + egyikét kaphatuk eredményül: + + + + Egy kis idõ után minden remekül + mûködött, vagy nem dobta ki az egész + lapot. + + A nyomtató nyomtatott egy keveset, aztán + egy ideig csendben maradt és nem csinált + semmit. Ilyenkor a nyomtatnivalók + megjelenéséhez minden bizonnyal meg kell + nyomnunk a nyomtatón levõ PRINT + REMAINING vagy FORM FEED + feliratú gombokat. + + Ebben az esetben a nyomtató + valószínûleg még arra várt, + hogy még a nyomtatás megkezdése + elõtt érkezik valamilyen további adat. + Ettõl a gondtól úgy szabadulhatunk meg, + ha beállítunk egy szövegszûrõt, + amely minden (szükséges) esetben küld egy + FORM FEED (lapdobás) jelzést is + a nyomtatónak. Ez kell általában + ahhoz, hogy a szöveg a nyomtató belsõ + pufferében megmaradt része azonnal + kinyomtatódjon. Akkor is a javunkra válhat + ez, ha minden egyes munkát külön lapon + akarunk kezdeni, mivel így a következõ + munka sosem közvetlenül ott kezdõdik, ahol az + elõzõ munka befejezte a nyomtatást. + + A /usr/local/libexec/if-simple + szûrõ helyett a következõ szkript + használhatával tudunk minden munka után + elküldeni egy lapdobást: + + #!/bin/sh +# +# if-simple - Egyszerû lpd szövegszûrõ +# Helye: /usr/local/libexec/if-simple +# +# Egyszerûen átmásolja a szabvány bemenetet a szabvány kimenetre, +# és figyelmen kívül hagyja az összes többi paramétert. +# Minden nyomtatási munka után küld egy lapdobást (\f). + +/bin/cat && printf "\f" && exit 0 +exit 2 + + + + + Lépcsõsen jelentek meg a + sorok. + + Ekkor a következõt látjuk a + lapon: + + !"#$%&'()*+,-./01234 + "#$%&'()*+,-./012345 + #$%&'()*+,-./0123456 + + MS-DOS + OS/2 + ASCII + + Az ún. + lépcsõhatás + áldozatává váltunk, amelyet a + sortörést jelzõ karakter eltérõ + értelmezései okoznak. A &unix; + stílusú operációs rendszerek + erre mindössze egyetlen karaktert használnak: ez + a 10-es kódú ASCII karakter (sordobás, + Line Feed, LF). Az &ms-dos;, &os2; és mások + pedig két karakterrel oldják meg ezt a + feladatot: a 10-es és 13-as + kódú (kocsivissza, Carriage Return, CR) ASCII + karakterekkel. A sortöréseknél sok + nyomtató az &ms-dos; szokásait + követi. + + Amikor a &os;-vel nyomtatunk, akkor csak egyetlen + karaktert használunk sortörésre. Ennek + láttán a nyomtató lépteti a + sort, azonban a fej vízszintes + pozícióját nem változtatja meg a + következõ sor nyomtatásának + megkezdésekor. Erre lenne a kocsivissza karakter, + vagyis ennek hatására fogja a nyomtató + a papír bal oldalára + visszaállítani a következõ + nyomtatandó karakter + pozícióját. + + A &os; így szeretné utasítani a + nyomtatót: + + + + + + A nyomtató kocsivisszát + kap + A nyomtató visszalépteti a + pozíciót + + + + A nyomtató sordobást kap + A nyomtató új sort kezd + + + + + + Néhány módszer ennek + kiváltására: + + + + A nyomtatón található + kapcsolók vagy vezérlõpanel + segítségével + próbáljuk meg + átállítani a + vezérlõkarakterek nyomtató szerinti + értelmezését. Keressük meg a + nyomtató kézikönyvében, hogyan + tudjuk ezt megcsinálni. + + + Ha a &os; mellett más + operációs rendszerekkel is + használni akarjuk a nyomtatót, akkor + azok indítása elõtt mindig + át kell + állítani a nyomtatót a + megfelelõ értelmezés + alkalmazására. Ilyenkor + valószínûleg a lentebb + szereplõ megoldásokat + részesítjük majd inkább + elõnyben. + + + + + Állítsuk be úgy a &os; soros + vonali meghajtóját, hogy + magától alakítsa át az LF + karaktereket CR+LF párokká. + Természetesen ez a megoldás + csak a soros portra + csatlakozó nyomtatók esetében + mûködhet. Ehhez az + /etc/printcap + állományban a nyomtató + leírásánál az + ms# tulajdonságnál + adjuk meg az onlcr + módot. + + + + Küldjünk olyan + kódot a nyomtatónak, + amelynek hatására ideiglenesen + máshogy fogja kezelni az LF karaktereket. + Nézzük meg a nyomtatóhoz + mellékelt útmutatóban, hogy milyen + kódokat tudunk ilyen célra + használni. Ha találtunk ilyen + kódot, akkor írjuk át úgy a + hozzátartozó szövegszûrõt, + hogy a munkák elõtt mindig + elküldjük azt. + + PCL + + Most bemutatjuk egy olyan szövegszûrõ + kódját, amely a Hewlett-Packard PCL + kódjait ismerõ nyomtatókhoz + készült. Ebben a szûrõben + elõször kiadjuk, hogy az LF karaktereket LF + és CR karakterek + kombinációjának tekintse a + nyomtató, majd elküldjük magát a + munkát, és a munka utolsó lapja + után pedig elküldünk egy + lapdobást. Szinte az összes Hewlett Packard + nyomtatóval mûködnie kell. + + #!/bin/sh +# +# hpif - Egyszerû lpd bemeneti szûrõ a HP-PCL alapú nyomtatókhoz +# Helye: /usr/local/libexec/hpif +# +# Egyszerûen átmásolja a szabvány kimenetet a szabvány bemenetre, és +# figyelmen kívül hagyja a paramétereket. Elküldi a nyomtatónak, hogy +# az LF karaktereket CR+LF-ként kezelje, majd a feladat befejeztével +# lapot dobat. + +printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 +exit 2 + + Példaként megadjuk még az + orchid nevû + számítógép + /etc/printcap + állományát is. Ebben egyetlen + nyomtató csatlakozik a párhuzamos portra, + amelynek a típusa LaserJet 3Si és a neve + teak. Az elõbb bemutatott + szövegszûrõt használja: + + # +# /etc/printcap (orchid) +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif: + + + + + + + Egymásra írja a sorokat. + + A nyomtató nem lépteti a sorokat, + ezért az összes sor egymáson jelenik + meg. + + Ez pontosan a ritka ellentéte a + fentebb leírt lépcsõhatásnak. A + &os; által sortörésre használt LF + karakterek valamiért CR karakterekként + viselkednek, ezért a nyomtató nem sort + vált, hanem a lap bal szélére + állítja a fejet. + + A nyomtatón található + kapcsolókkal vagy vezérlõpanellel + így állítsuk be az sordobás + és kocsivissza karakterek + értelmezését: + + + + + + Amit a nyomtató kap + Arra a nyomtató nyomtat + + + + + + CR + CR + + + + LF + CR + LF + + + + + + + + + A nyomtató elhagy karaktereket. + + Miközben nyomtatunk, a nyomtató bizonyos + karaktereket nem hajlandó megjeleníteni. A + probléma ennél nagyobb, ha a nyomtató + mûködése közben egyre több + és több karaktert hagy ki. + + Itt az a gond, hogy a nyomtató nem képes + tartani az iramot a számítógép + által a soros vonalon átküldött + adatok sebességével (ez a probléma nem + jelentkezhet a párhuzamos nyomtatók + esetén). Két módon kerekedhetünk + felül ezen: + + + + Ha a nyomtató ismeri a XON/XOFF + típusú + forgalomirányítást, akkor az + ms# tulajdonságnál + adjuk meg a &os; számára az + ixon + beállítást. + + + + Ha a nyomtató ismeri a vonali + forgalomirányítást (carrier flow + control), akkor az ms# + tulajdonságnál a + crtscts + beállítást adjuk meg. + Gondoskodjunk róla, hogy a + számítógépet és a + nyomtató összekötõ kábel + meg tudjon majd bírkózni ezzel a + típusú + forgalomirányítással. + + + + + + + Mindenféle szemetet nyomtat. + + A nyomtató nem a nyomtatni kívánt + szöveget hozza létre, hanem össze-vissza + nyomtat. + + Ez a soros nyomtatók helytelen + kommunikációs + beállításának egy másik + jellemzõ tünete. Ellenõrizzük a + br tulajdonságnál megadott + adatátviteli sebességet és az + ms# tulajdonságnál megadott + paritási beállításokat. + Egyeztessük a nyomtató saját és az + /etc/printcap állományban + tárolt beállításait. + + + + + Semmi sem történik. + + + Ha semmi sem történt, akkor a gond + magával a &os;-vel lehet, nem pedig a hardverrel. Az + /etc/printcap állományba + a vizsgálni kívánt nyomtató + leírásához (az lf + tulajdonsággal) illesszünk be + naplózást. Például így + fog kinézni a rattan nevû + nyomtató bejegyzése az lf + tulajdonság megadásával + kibõvítve: + + rattan|line|diablo|lp|Diablo 630 Line Printer:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple:\ + :lf=/var/log/rattan.log + + Miután ezt megcsináltuk, + próbálkozzunk újra. Nézzük + meg a naplóállományban (ami a + példánkban a + /var/log/rattan.log nevén + érhetõ el), hogy látunk-e valamilyen + hibaüzenetet. Az itt tapasztalt hibaüzenetek + nyomán elindulva igyekezzünk megszüntetni a + probléma forrását. + + Ha nem adjuk meg az lf + tulajdonságot, akkor az + LPD erre a célra + alapértelmezés szerint a + /dev/console állományt + használja. + + + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/security/Makefile b/hu_HU.ISO8859-2/books/handbook/security/Makefile new file mode 100644 index 0000000000..bbf01aa7ab --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= security/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml new file mode 100644 index 0000000000..5f8117777e --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml @@ -0,0 +1,6991 @@ + + + + + + + + + Matthew + Dillon + A fejezet legnagyobb részét a security(7) + man oldal alapján írta: + + + + + Biztonság + + biztonság + + + Áttekintés + + Ez a fejezet egy alapvetõ bevezetés a rendszerek + biztonsági fogalmaiba, ad néhány + általános jótanácsot és a + &os;-vel kapcsolatban feldolgoz néhány komolyabb + témát. Az itt megfogalmazott témák + nagy része egyaránt ráhúzható + rendszerünk és általánosságban + véve az internet biztonságára is. A internet + már nem az békés hely, ahol + mindenki a kedves szomszéd szerepét játssza. + A rendszerünk bebiztosítása + elkerülhetetlen az adataink, szellemi tulajdonunk, idõnk + és még sok minden más + megvédésére az internetes banditák + és hasonlók ellen. + + A &os; segédprogramok és mechanizmusok + sorát kínálja fel a rendszerünk + és hálózatunk + sértetlenségének és + biztonságának fenntartására. + + A fejezet elolvasása során + megismerjük: + + + + az alapvetõ rendszerbiztonsági fogalmakat, + különös tekintettel a &os;-re; + + + + milyen olyan különbözõ + titkosítási mechanizmusok érthetõek + el a &os;-ben, mint például a + DES és az + MD5; + + + + hogyan állítsunk be egyszeri jelszavas + azonosítást; + + + + hogyan burkoljunk az inetd + segítségével TCP + kapcsolatokat; + + + + hogyan állítsuk be a + KerberosIV-t a + &os; 5.0-nál korábbi + változatain; + + + + hogyan állítsuk be a + Kerberos5-t a &os;-n; + + + + hogyan állítsuk be az IPsec-et és + hozzunk létre VPN-t &os;/&windows; + gépek között; + + + + hogyan állítsuk be és + használjuk az OpenSSH-t, a + &os; SSH + implementációját; + + + + mik azok az ACL-ek az + állományrendszerben és miként kell + ezeket használni; + + + + hogyan kell használni a + Portaudit segédprogramot a + Portgyûjteménybõl telepített + külsõ szoftvercsomagok + biztonságosságának + ellenõrzésére; + + + + hogyan hasznosítsuk a &os; biztonsági + tanácsait tartalmazó + leírásokat + + + + mit jelent a futó programok + nyilvántartása és hogyan + engedélyezzük azt &os;-n. + + + + A fejezet elolvasásához ajánlott: + + + + az alapvetõ &os; és internetes fogalmak + ismerete. + + + + A könyvben további biztonsági + témákról is szó esik, + például a ben a + Kötelezõ + hozzáférés-vezérlésrõl + (MAC) és a ben pedig az + internetes tûzfalakról. + + + + + Bevezetés + + A biztonság egy olyan funkció, ami a + rendszergazdától indul és nála is + végzõdik. Míg az összes + többfelhasználós BSD &unix; rendszer + önmagában is valamennyire biztonságos, a + felhasználók + fegyelmezéséhez szükség + további biztonsági mechanizmusok + kiépítésére és + karbantartására, ami minden bizonnyal egy + rendszergazda egyik legfontosabb kötelessége. A + számítógépek csak annyira + biztonságosak, mint amennyire beállítjuk, + és a biztonsági megfontolások + állandó versenyben vannak az emberi + kényelemmel. A &unix; rendszerek + általánosságban véve + órási mennyiségû program + párhuzamos futtatására képesek, melyek + többsége kiszolgálóként fut + — ez azt jelenti, hogy hozzájuk + kívülrõl érkezõ egyedek + csatlakozhatnak és társaloghatnak velük. Ahogy + a tegnap kicsi és nagy + számítógépei napjaink asztali + gépeivé váltak és ahogy a + számítógépek egyre többen + csatlakoznak hálózatra és az internetre, a + biztonság fontossága is egyre jobban + növekszik. + + A rendszerek biztonsága a támadások + különbözõ formáival is foglalkozik, + többek közt olyan támadásokkal, amelyek a + rendszer összeomlását vagy + használhatatlanságát célozzák + meg, de nem próbálják meg veszélybe + sodorni a root felhasználó + hozzáférését (feltörni a + gépet). A biztonsággal kapcsolatos + problémák több kategóriára + oszthatóak: + + + + A szolgáltatások + mûködésképtelenné + tételére irányuló (DoS, Denial of + Service) támadások. + + + + A felhasználói fiókok + veszélyeztetése. + + + + Rendszergazdai jogok megszerzése a közeli + szervereken keresztül. + + + + Rendszergazdai jogok megszerzése a + felhasználói fiókokon + keresztül. + + + + Kiskapuk létrehozása a rendszerben. + + + + + DoS támadás + Denial of Service (DoS) + + + biztonság + DoS támadás + Denial of Service (DoS) + + Denial of Service (DoS) + + A szolgáltatások + mûködésképtelenné + tételére irányuló + támadások olyan tevékenységre utalnak, + amelyek képesek megfosztani egy + számítógépet az + erõforrásaitól. A DoS támadások + többnyire nyers erõvel kivitelezett technikák, + melyek vagy a rendszer összeomlasztását vagy + pedig a használhatatlanná tételét + veszik célba úgy, hogy túlterhelik az + általa felkínált + szolgáltatásokat vagy a hálózati + alrendszert. Egyes DoS támadások a + hálózati alrendszerben rejtõzõ + hibákat igyekeznek kihasználni, amivel akár + egyetlen csomaggal is képesek romba dönteni egy + számítógépet. Ez utóbbit csak + úgy lehet orvosolni, ha a hibát kijavítjuk a + rendszermagban. A szerverekre mért csapásokat + gyakran ki lehet védeni a paramétereik ügyes + beállításával, melyek + segítségével korlátozni tudjuk az + ezeket ért terhelést egy kellemetlenebb helyezetben. + A nyers erõt alkalmazó hálózati + támadásokkal a legnehezebb szembenézni. + Például az álcázott + támadadások, melyeket szinte lehetetlen + megállítani, remek eszközök arra, hogy + elvágják gépünket az internettõl. + Ezzel viszont nem csak azt iktatják ki, hanem az + internet-csatlakozásunkat is + eldugítják. + + + biztonság + a hozzáférések + megszerzése + + + A DoS támadásoknál még gyakrabban + elõfordul, hogy feltörik a felhasználók + fiókjait. A rendszergazdák többsége + még mindig futtat telnetd, + rlogin, rshd + és ftpd szervereket a + gépen. Ezek a szerverek alapértelmezés + szerint nem titkosított kapcsolaton keresztül + mûködnek. Ebbõl következik, hogy ha nincs + annyira sok felhasználónk és + közülük néhányan távoli + helyekrõl jelentkeznek be (ami az egyik leggyakoribb + és legkényelmesebb módja ennek), akkor + elõfordulhat, hogy valami megneszeli a jelszavaikat. A + körültekintõ rendszergazdák mindig + ellenõrzik a bejelentkezéseket tartalmazó + naplókat és igyekeznek kiszûrni a gyanús + címeket még abban az esetben is, amikor a + bejelentkezés sikeres volt. + + Mindig arra kell gondolni, hogy ha a támadónak + sikerült megszerezni az egyik felhasználó + hozzáférését, akkor akár + képes lehet a root + felhasználó fiókjának + feltörésére is. Azonban a + valóságban egy jól õrzött és + karbantarott rendszer esetén a felhasználói + hozzáférések megszerzése nem + feltétlenül adja a támadó kezére + a root + hozzáférését. Ebben fontos + különbséget tenni, hiszen a + root felhasználó jogai + nélkül a támadó nem képes + elrejteni a nyomait és legjobb esetben sem tud többet + tenni, mint tönkretenni az adott felhasználó + állományait vagy összeomlasztani a rendszert. + A felhasználói fiókok feltörése + nagyon gyakran megtörténik, mivel a + felhasználók messze nem annyira + elõvigyázatosak, mint egy rendszergazda. + + + biztonság + kiskapuk + + + A rendszergazdáknak mindig észben kell tartani, + hogy egy számítógépen több + módon is meg lehet szerezni a root + felhasználó + hozzáférését. A támadó + megtudhatja a root jelszavát, + hibát fedezhet fel az egyik rendszergazdai + jogosultsággal futó szerverben és + képes feltörni a root + hozzáférést egy hálózati + kapcsolaton keresztül, vagy a támadó olyan + programban talál hibát, aminek + segítségével el tudja érni a + root fiókját egy + felhasználói hozzáférésen + keresztül. Miután a támadó + megtalálta a rendszergazdai jogok + megszerzésének módját, nem + feltétlenül kell kiskapukat elhelyeznie a rendszerben. + Az eddig talált és javított, rendszergazdai + jogok megszerzését lehetõvé tevõ + biztonsági rések egy része esetében + viszont a támadónak akkora mennyiségû + munkát jelentene eltûntetni maga után a + nyomokat, hogy megéri neki egy kiskaput telepíteni. + Ennek segítségével a támadó + ismét könnyedén hozzájuthat a + root felhasználó + hozzáféréséhez a rendszerben, de ezen + keresztül egy okos rendszergazda képes is a + behatolót leleplezni. A kiskapuk lerakásának + megakadályozása valójában káros + a biztonság szempontjából nézve, mert + ezzel nem szüntetjük meg azokat a lyukakat, amin + keresztül a támadó elõször + bejutott. + + A támadások elleni védelmet mindig + több vonalban kell megvalósítani, melyeket + így oszthatunk fel: + + + + A rendszergazda és a személyzet + hozzáférésének + védelme. + + + + A rendszergazdai jogokkal futó szerverek és + a suid/sgid engedélyekkel rendelkezõ programok + védelme. + + + + A felhasználói + hozzáférések védelme. + + + + A jelszavakat tároló állomány + védelme. + + + + A rendszermag belsejének, a nyers + eszközök és az + állományrendszerek védelme. + + + + A rendszert ért szabálytalan + módosítások gyors + észlelése. + + + + Állandó paranoia. + + + + A fejezet most következõ szakaszában az + imént felsorolt elemeket fejtjük ki + részletesebben. + + + + + A &os; védelme + + + biztonság + a &os; védelme + + + + Parancs kontra protokoll + + A dokumentumban a + félkövéren fogjuk + szedni az alkalmazásokat, és + egyenszélességû + betûkkel pedig az adott parancsokra hivatkozunk. A + protokollokat nem különböztetjük meg. Ez a + tipográfiai elkülönítés hasznos + például az ssh egyes vonatkozásainak + esetén, mivel ez egyben egy protokoll és egy + parancs is. + + + A most következõ szakaszok a &os; + védelmének azon módszereit ismertetik, + amelyekrõl a fejezet elõzõ szakaszában + már írtunk. + + + A rendszergazda és a személyzet + hozzáférésének + védelme + + su + + Elõször is: ne törjük magunkat a + személyzeti fiókok biztonságossá + tételével, ha még a rendszergazda + hozzáférését sem tettük + eléggé biztonságossá. A + legtöbb rendszerben a root + hozzáféréshez tartozik egy jelszó. + Elsõként fel kell tennünk, hogy ez a + jelszó mindig megszerezhetõ. + Ez természetesen nem arra utal, hogy el kellene + távolítanunk. A jelszó szinte mindig + szükséges a számítógép + konzolon keresztüli eléréséhez. + Valójában arra szeretnénk + rávilágítani, hogy a konzolon + kívül sehol máshol ne lehessen + használni ezt a jelszót, még a &man.su.1; + paranccsal sem. Például gondoskodjunk + róla, hogy az /etc/ttys + állományban megadott pszeudó + terminálokat insecure (nem + biztonságos) típusúnak + állítottuk be, és így a + telnet vagy az rlogin + parancsokon keresztül nem lehet rendszergazdaként + bejelentkezni. Ha más szolgáltatáson + keresztül jelentkezünk be, például az + sshd + segítségével, akkor ebben az esetben is + gondoskodjunk róla, hogy letiltottuk a közvetlen + rendszergazdai bejelentkezés + lehetõségét. Ezt úgy tudjuk megtenni, + ha megnyitjuk az /etc/ssh/sshd_config + állományt és a + PermitRootLogin paramétert + átállítjuk a NO + értékre. Vegyünk számba minden + lehetséges hozzáférési módot + — az FTP és a hozzá hasonló + módok gyakran átszivárognak a + repedéseken. A rendszergazdának csak a + rendszerkonzolon keresztül szabad tudnia + bejelentkeznie. + + wheel + + Természetesen egy rendszergazdának valahogy el + kell érnie a root + hozzáférést, ezért ezzel felnyitunk + néhány biztonsági rést. De + gondoskodjunk róla, hogy ezek a rések + további jelszavakat igényelnek a + mûködésükhöz. A + root hozzáférés + eléréséhez érdemes felvenni + tetszõleges személyzeti (staff) + hozzáféréseket a + wheel csoportba (az + /etc/group állományban). Ha + a személyzet tagjait a wheel + csoportba rakjuk, akkor innen a su paranccsal + fel tudjuk venni a root + felhasználó jogait. A személyzet tagjait + létrehozásukkor közvetlenül sose + vegyük fel a wheel csoportba! A + személyzet tagjai elõször kerüljenek egy + staff csoportba, és majd csak + ezután az /etc/group + állományon keresztül a + wheel csoportba. A személyzetnek + csak azon tagjait tegyük ténylegesen a + wheel csoportba, akiknek valóban + szükségük van a root + felhasználó + hozzáférésére. Ha + például a Kerberost használjuk + hitelesítésre, akkor megcsinálhatjuk azt + is, hogy a Kerberos .k5login + állományában engedélyezzük a + &man.ksu.1; parancson keresztül a root + hozzáférés elérését a + wheel csoport alkalmazása + nélkül. Ez a megoldás talán + még jobb is, mivel a wheel + használata esetén a behatolónak még + mindig lehetõsége van hozzájutni a + root + hozzáféréséhez olyankor, amikor a + kezében van a jelszavakat tároló + állomány és meg tudja szerezni a + személyzet valamelyik tagjának + hozzáférését. A + wheel csoport által + felkínált megoldás ugyan jobb, mint a + semmi, de kétségtelenül nem a + legbiztonságosabb. + + A hozzáférések teljes körû + letiltásához a &man.pw.8; parancsot érdemes + használni: + + &prompt.root; pw lock személyzet + + Ezzel meg tudjuk akadályozni, hogy a + felhasználó akármilyen módon, + beleértve az &man.ssh.1; használatát is, + hozzá tudjon férni a + rendszerünkhöz. + + A hozzáférések + blokkolásának másik ilyen módszere a + titkosított jelszó átírása + egyetlen * karakterre. Mivel + ez a karakter egyetlen titkosított jelszóra sem + illeszkedik, ezért a felhasználó nem lesz + képes bejelentkezni. Ahogy például a + személyzet alábbi tagja sem: + + izemize:R9DT/Fa1/LV9U:1000:1000::0:0:Ize-Mize:/home/izemize:/usr/local/bin/tcsh + + Erre cseréljük ki: + + izemize:*:1000:1000::0:0:Ize-Mize:/home/izemize:/usr/local/bin/tcsh + + Ezzel megakadályozzuk, hogy az + izemize nevû felhasználó + a hagyományos módszerekkel be tudjon jelentkezni. + Ez a megoldás azonban a + Kerberost alkalmazó rendszerek + esetén nem mûködik, illetve olyan helyezetekben + sem, amikor a felhasználó az &man.ssh.1; + paranccsal már létrehozott magának + kulcsokat. + + Az ilyen védelmi mechanizmusok esetében mindig + egy szigorúbb biztonsági szintû + géprõl jelentkezünk be egy + kevésbé biztonságosabb gépre. + Például, ha a szerverünk mindenféle + szolgáltatásokat futtat, akkor a + munkaállomásunknak egyetlen egyet sem lenne + szabad. A munkaállomásunk + biztonságossá tételéhez a + lehetõ legkevesebb szolgáltatást szabad csak + futtatnunk, de ha lehet, egyet sem, és mindig + jelszóval védett + képernyõvédõt használjuk. + Természetesen ha a támadó képes + fizikailag hozzáférni a + munkaállomásunkhoz, akkor szinte bármilyen + mélységû védelmet képes + áttörni. Ezt mindenképpen + számításba kell vennünk, azonban ne + felejtsük el, hogy a legtöbb betörési + kísérlet távolról, + hálózaton keresztülrõl érkezik + olyan emberektõl, akik fizikailag nem férnek + hozzá a munkaállomásunkhoz vagy a + szervereinkhez. + + KerberosIV + + A Kerberos és a hozzá hasonló + rendszerek használatával egyszerre tudjuk a + személyzet tagjainak jelszavát letiltani vagy + megváltoztatni, ami egybõl + érvényessé válik minden olyan + gépen, ahová az adott felhasználónak + bármilyen hozzáférése is volt. Nem + szabad lebecsülnünk ezt a gyors + jelszóváltási lehetõséget abban + az esetben, ha a személyzet valamelyik tagjának + hozzáférését megszerezték. + Hagyományos jelszavak használatával a + jelszavak megváltoztatása N gépen igazi + káosz. A Kerberosban jelszóváltási + megszorításokat is felállíthatunk: + nem csak a Kerberos által adott jegyek járnak le + idõvel, hanem a Kerberos rendszer meg is követelheti a + felhasználóktól, hogy egy adott idõ + (például egy hónap) után + változtasson jelszót. + + + + + A rendszergazdai jogokkal futó szerverek és + SUID/SGID engedélyekkel rendelkezõ programok + védelme + + ntalk + comsat + finger + járókák + sshd + telnetd + rshd + rlogind + + A bölcs rendszergazda mindig csak akkor futtat + szervereket, amikor szüksége van rá, se + többet, se kevesebbet. Az egyéb + fejlesztõktõl származó szerverekkel + bánjunk különösen óvatosan, mivel + gyakran hajlamosak hibákat tartalmazni. + Például az imapd vagy a + popper használata olyan, + mintha az egész világnak ingyenjegyet + osztogatnánk a rendszerünk root + hozzáféréséhez. Soha ne futtassunk + olyan szervert, amelyet nem vizsgáltunk át + kellõ alapossággal. Sok szervert nem is + feltétlenül kell root + felhasználóként futtatni. + Például az ntalk, + comsat és + finger démonok egy + speciális + járókában (sandbox) + futnak. Ezek a járókák sem teljesen + tökéletesek, hacsak erre külön figyelmet + nem fordítunk. Ilyenkor a többvonalas + védelem eszménye még mindig él: ha + valakinek sikerült betörnie a + járókába, akkor onnan ki is tud törni. + Minél több védelmi vonalat húzunk a + támadó elé, annál jobban + csökken a sikerének + valószínûsége. A + történelem során lényegében + minden root jogokkal futó + szerverben, beleértve az alapvetõ + rendszerszintû szervereket is, találtak már + biztonsági jellegû hibát. Ha a + gépünkre csak az sshd + szolgáltatáson keresztül tudnak + belépni, és soha nem használja senki a + telnetd, + rshd vagy + rlogind + szolgáltatásokat, akkor kapcsoljuk is ki + ezeket! + + A &os; most már alapértelmezés szerint + járókában futtatja az + ntalkd, + comsat és + finger + szolgáltatásokat. Másik ilyen program, + amely szintén esélyes lehet erre, az a + &man.named.8;. Az /etc/defaults/rc.conf + megjegyzésben tartalmazza a + named járókában + futtatásához szükséges + paramétereket. Attól függõen, hogy egy + új rendszert telepítünk vagy + frissítjük a már meglévõ + rendszerünket, a járókákhoz + tartozó speciális felhasználói + hozzáférések nem feltétlenül + jönnek létre. Amikor csak lehetséges, az + elõrelátó rendszergazda + kikísérletez és létrehoz ilyen + járókákat. + + sendmail + + Vannak más olyan szerverek, amelyek tipikusan nem + járókákban futnak. Ilyen többek + közt a sendmail, + popper, + imapd, + ftpd és még sokan + mások. Léteznek rájuk + alternatívák, de a telepítésük + valószínûleg több munkát + igényel, mint amennyit megérné + számunkra veszõdni velük (és itt megint + lesújt a kényelmi tényezõ). Ezeket a + szervereket többnyire root + felhasználóként kell futtatnunk és a + rajtuk keresztül érkezõ betörési + kísérleteket más módokra + támaszkodva kell észlelnünk. + + A root felhasználó + keltette biztonsági rések másik nagy + csoportja azok a végrehajtható + állományok a rendszerben, amelyek a suid és + sgid engedélyekkel rendelkeznek, futtatásuk + rendszergazdai jogokkal történik. Az ilyen + binárisok többsége, mint + például az rlogin, a + /bin és /sbin, + /usr/bin vagy + /usr/sbin könyvtárakban + található meg. Habár semmi sem + biztonságos 100%-ig, a rendszerben + alapértelmezetten suid és sgid engedéllyel + rendelkezõ binárisok ebbõl a szempontból + meglehetõsen megbízhatónak tekinhetõek. + Alkalmanként azonban találnak a + root felhasználót + veszélyeztetõ lyukakat az ilyen binárisokban + is. Például 1998-ban az + Xlib-ben volt egy olyan rendszergazdai + szintû hiba, amellyel az xterm + (ez általában suid engedéllyel rendelkezik) + sebezhetõvé vált. Mivel jobb félni, + mint megijedni, ezért az elõretekintõ + rendszergazda mindig igyekszik úgy csökkenteni az + ilyen engedélyekkel rendelkezõ binárisok + körét, hogy csak a személyzet tagjai legyenek + képesek ezeket futtatni. Ezt egy olyan speciális + csoport létrehozásával oldhatjuk meg, + amelyhez csak a személyzet tagjai férhetnek + hozzá. Az olyan suid binárisoktól pedig, + amelyeket senki sem használ, igyekszik teljesen + megszabadulni (chmod 000). A monitorral nem + rendelkezõ szervereknek általában nincs + szükségük az xterm + mûködtetésére. Az sgid + engedéllyel rendelkezõ binárisok is + legalább ugyanennyire veszélyesek. Ha a + behatoló képes feltörni egy + kmem csoporthoz tartozó sgid + binárist, akkor képes lesz olvasni a + /dev/kmem állomány + tartalmát, ezáltal hozzájut a + titkosított jelszavakhoz és így + megszerezheti magának akármelyik + hozzáférést. Sõt, a + kmem csoportot megszerzõ + behatolók figyelni tudják a pszeudó + terminálokon keresztül érkezõ + billentyûleütéseket, még abban az + esetben is, amikor a felhasználók + egyébként biztonságos módszereket + használnak. A tty csoportot + bezsebelõ támadók szinte bármelyik + felhasználó termináljára + képesek írni. Ha a felhasználó + valamilyen terminál programot vagy terminál + emulátort használ a billentyûzet + szimulációjával, akkor a behatoló + tud olyan adatokat generálni, amivel a + felhasználó nevében adhat ki + parancsokat. + + + + + A felhasználói + hozzáférések védelme + + A felhasználók + hozzáféréseit szinte a legnehezebb + megvédeni. Míg a személyzet tagjaival + szemben lehetünk kíméletlenül + szigorúak és ki is csillagozhatjuk + a jelszavukat, addig a felhasználók + hozzáféréseivel + általánosságban véve ezt nem + tehetjük meg. Ha a kezünkben van a megfelelõ + mértékû irányítás, akkor + még gyõzhetünk és kényelmesen + biztonságba helyezethetjük a + felhasználók + hozzáférését. Ha nincs, akkor nem + tehetünk mást, mint állandóan + õrködünk a hozzáférések + felett. Az ssh és Kerberos használata a + felhasználók esetén sokkalta + problematikusabb, mivel ilyenkor jóval több + adminisztrációra és mûszaki + segítségnyújtásra van + szükség, de még mindig jobb megoldás a + titkosított jelszavakhoz képest. + + + + + A jelszavakat tároló állomány + védelme + + Az a legbiztosabb, ha minél több jelszót + kicsillagozunk és a hozzáférések + hitelesítésére ssh-t vagy Kerberost + használunk. Igaz, a titkosított jelszavakat + tároló állományt + (/etc/spwd.db) csak a + root képes olvasni, de a + támadó meg tudja szerezni ezt a jogot még + olyankor is, ha root + felhasználóként nem feltétlenül + tud írni. + + A rendszerünkben futó biztonsági + szkripteknek a jelszavakat tároló + állomány változását + folyamatosan tudnia kell figyelnie és jelentie + (lásd lentebb a Az + állományok sértetlenségének + ellenõrzése címû + fejezetet). + + + + + A rendszermag belsejének, a nyers eszközök + és az állományrendszerek + védelme + + Ha a támadó megszerzi a + root + hozzáférését, akkor szinte + bármit képes megtenni, de vannak bizonyos + elõnyei. Például a mostanság + fejlesztett legtöbb rendszermag tartalmaz valamilyen + beépített csomaglehallgatót, amit &os; + alatt a bpf eszköz + valósít meg. A támadók szinte + mindig megpróbálnak valamilyen + csomaglehallgatót használni a feltört + gépen. A legtöbb rendszeren azonban nem kell + feltétlenül megadnunk ezt az örömet, + ezért nem is kell beépítenünk a + rendszermagba a bpf + eszközt. + + sysctl + + De ha még ki is iktatjuk a + bpf eszközt, még + aggódhatunk a /dev/mem és + /dev/kmem miatt. Egyébként + ami azt illeti, a behatoló még így is + képes írni a nyers eszközökre. + Sõt, a rendszermagba képesek vagyunk modulokat is + betölteni a &man.kldload.8; használatával. A + vállalkozó kedvû támadó a + rendszermag moduljaként képes telepíteni + és használni a saját + bpf eszközét vagy + bármilyen más, a csomagok + lehallgatására alkalmas eszközt. Az ilyen + problémák elkerülése + érdekében a rendszermagot a legmagasabb + védelmi szinten kell üzemeltetni, tehát + legalább 1-esen. A védelmi szint + szabályozása a sysctl parancson + keresztül a kern.securelevel + változó értékének + beállításával lehetséges. + Ahogy a védelmi szintet 1-re állítottuk, a + nyers eszközök írása azonnal + letiltódik és az olyan speciális + állományjelzõk, mint például az + schg hatása mûködésbe + lép. Gondoskodnunk kell róla, hogy a rendszer + indítása szempontjából fontos + programok, könyvtárak és szkriptek + rendelkezzenek az schg + állományjelzõvel — minden, ami a + védelmi szint beállításáig + elindult. Ez némileg túlzás, és + ezzel a rendszer frissítése is valamivel + nehezebbé válik egy magasabb védelmi + szinten. Megkockáztathatjuk azt is, hogy a rendszert + magasabb védelmi szinten futtatjuk, de nem + állítunk be minden egyes állományra + és könyvtárra schg + állományjelzõt. Megoldhatjuk úgy is a + problémát, ha egyszerûen + írásvédett módon csatlakoztatjuk a + / és /usr + állományrendszereket. Ehhez viszont + hozzátennénk, hogy az ilyen szigorú + védekezés egyben megakadályozza a + betörések felderítéséhez + szükséges összes információ + összeszedését is. + + + + + Az állományok + sértetlenségének ellenõrzése: + binárisok, konfigurációs + állományok stb. + + Ha arról van szó, csak a legfontosabb + rendszerszintû konfigurációs- és + vezérlõállományokat tudjuk + megvédeni, még mielõtt a korábban + emlegetett kényelmi tényezõ kimutatná + a foga fehérjét. Például, ha a + chflags paranccsal beállítjuk + az schg állományjelzõt a + / és /usr + állományrendszereken található + legtöbb állományra, akkor az minden bizonnyal + csökkenti a hatékonyságunkat, hiszen az + állományok védelmének + növekedésével csökken az + észlelés lehetõsége. A védelmi + vonalaink közül ugyanis az utolsó talán + az egyik legfontosabb — a detektálás. A + felépített biztonsági rendszerünk + legnagyobb része szinte teljesen hasztalan (vagy ami + még rosszabb, a biztonság hamis + érzetét kelti), ha nem vagyunk képesek + észrevenni a betörési + kísérleteket. A védelmi rendszer egyik + részére nem a támadó + megállításához, hanem a + lelassításához van szükség, + hogy így majd munka közben érhessük + tetten. + + A betörés tényét legjobban a + megváltozott, hiányzó vagy éppen + váratlanul felbukkanó állományok + utáni kutatással tudjuk felismerni. A + módosított állományokat + általában egy másik (gyakran + központosított) korlátozott + hozzáférésû rendszerbõl + ellenõrizhetjük a legjobban. Fontos, hogy ha egy + korlátozott hozzáférésû, + kiemelten védett rendszeren írjuk a + védelemért felelõs szkripteket, akkor azok + szinte teljesen láthatlanok lesznek a + támadó számára. A legjobb + kihasználás érdekében a + korlátozott hozzáférésû + gépnek jelentõs mértékû + rálátással kell rendelkeznie az összes + többi gépre, amit írásvédett + NFS exportok vagy ssh kulcspárok + felhasználásával érhetünk el. + A hálózati forgalmat leszámítva az + NFS látszik a legkevésbé — + segítségével lényegében + észrevétlenül tudjuk figyelni az egyes + gépek állományrendszereit. Ha a + megfigyelésre használt szerver a kliensekhez + switchen keresztül csatlakozik, akkor az NFS gyakran jobb + választásnak bizonyul. Ha a szerver hubon vagy + több hálózati elemen keresztül + éri el a megfigyelni kívánt klienseket, + akkor az NFS nem eléggé biztonságos + (és hatékony), ezért ilyen esetekben az ssh + választása lehet a kedvezõ még az ssh + által hagyott nyomokkal együtt is. + + Miután a korlátozott + hozzáférésû gépünk + legalább látja a hozzátartozó + kliensek rendszereit, el kell készítenünk a + tényleges monitorozást végzõ + szkripteket. Ha NFS csatlakozást tételezünk + fel, akkor az olyan egyszerû rendszereszközökkel, + mint például a &man.find.1; és &man.md5.1; + képesek vagyunk összerakni ezeket. A szemmel + tartott kliensek állományait naponta + legalább egyszer érdemes ellenõrizni md5-tel, + valamint még ennél gyakrabban is tesztelni az + /etc és + /usr/local/etc könyvtárakban + található konfigurációs és + vezérlõállományokat. Ha valamilyen + eltérést tapasztal az ellenõrzést + végzõ szerverünk és a rajta levõ + md5 információk is helyesek, akkor + értesítenie kell a rendszergazdát. Egy + jó védelmi szkript képes megkeresni az oda + nem illõ suid binárisokat, valamint az új + vagy törölt állományokat a + / és a /usr + partíciókon. + + A védelmi szkriptek megírása valamivel + nehezebb feladat, ha ssh-t használunk az NFS helyett. A + futtatásukhoz a szkripteket és az általuk + használt eszközöket (például + find) az scp paranccsal + lényegében át kell másolni a + kliensekre, amivel így láthatóvá + válnak. Ne feledjük továbbá, hogy az + ssh kliens már eleve + feltört lehet. Szó, ami szó, ha nem + megbízható + összeköttetésekrõl beszélünk, + akkor az ssh használata elkerülhetetlen, de nem + feltétlenül egyszerû. + + Egy jó védelmi szkript észreveszi a + felhasználók és a személyzet + tagjainak hozzáférését + vezérlõ állományokban, mint + például az .rhosts, + .shosts, + .ssh/authorized_keys és + társaiban keletkezett változásokat is, + amelyek esetleg elkerülhetik egy MD5 + alapú ellenõrzés figyelmét. + + Ha netalán órási mennyiségû + tárterületettel rendelkeznénk, akkor + eltarthat egy ideig, amíg végigsöprünk + az összes partíció összes + állományán. Ebben az esetben + érdemes olyan beállításokat megadni + az állományrendszerek + csatlakoztatásánál, amivel le tudjuk + tiltani a suid engedéllyel rendelkezõ + binárisok futtatását. Ezzel kapcsolatban a + &man.mount.8; parancs nosuid + opcióját nézzük meg. Hetente + legalább egyszer azért mégis érdemes + átnézni az ilyen partíciókat is, + mivel ez a réteg a betörési + kísérletek felderítésével + foglalkozik, függetlenül a + sikerességüktõl. + + A futó programok nyilvántartása + (lásd &man.accton.8;) egy olyan viszonylag kevés + költséggel járó lehetõség + az operációs rendszerben, ami + segítségünkre lehet a betörés + utáni események + kiértékelésében. + Különösen hasznos olyankor, amikor + megpróbáljuk modellezni, miképp is + sikerült a támadónak bejutnia a + rendszerünkbe, természetesen feltételezve, + hogy az ehhez felhasznált feljegyzések a + betörés után is érintetlenek + maradtak. + + Végül a védelmet ellátó + szkripteknek javasolt feldolgozni a + naplóállományokat is, valamint a + naplókat magukat is a lehetõ + legbiztonságosabb formában generálni + — ilyenkor nagyon hasznos lehet, ha egy távoli + gépre naplózunk. A behatoló + megpróbálja majd eltüntetni a nyomait, a + naplóállományok viszont nagyon fontosak a + rendszergazda számára a betörési + kísérletek idejének és + módjának + megállapításában. A naplókat + úgy tudjuk tartósan rögzíteni, ha a + rendszerkonzol üzeneteit soros porton keresztül + gyûjtjük össze a konzolok + felügyeletéért felelõs + biztonságos gépen. + + + + + Állandó paranoia + + Egy kis paranoia sosem árt. Elmondható, hogy + a rendszergazda tetszõleges számú + biztonsági intézkedéssel élhet + egészen addig, amíg az nincs hatással a + kényelmére, és a kényelmet + befolyásoló biztonsági + intézkedéseket pedig megfelelõ + mérlegelés mellett tegye meg. Ami még + ennél is fontosabb, hogy mindig változtassunk + valamit a biztonsági hálónkon — mivel + ha egy az egyben követjük a dokumentumban + leírtakat, akkor ezzel együtt kiadjuk a + bejutás receptjét annak a leendõ + támadónknak, aki szintén elolvasta + ugyanezt. + + + + + A szolgáltatások + mûködésképtelenné + tételét célzó + támadások + + Denial of Service (DoS) + + Ez a szakasz a szolgáltatások + mûködésképtelenségét + elérni kívánó, más + néven Denial of Service + típusú támadásokkal foglalkozik. + Noha nem tudunk túlságosan sokat tenni a + manapság felbukkanó álcázott, a + hálózatunk totális + leterhelését célbavevõ + támadások ellen, akadnak olyan + általános érvényû + eszközök, amelyekkel elejét vehetjük a + szervereink szétbomzásának: + + + + A létjövõ + szerverpéldányok + korlátozása. + + + + Az ugródeszkaszerû támadások + (támadás ICMP-válasszal, + pingszórás stb.) + korlátozása. + + + + A rendszermag útválasztási + gyorsítótárának + túlterhelése. + + + + A DoS támadások egyik jellemzõ + sémája szerint egy sokszorozódni + képes szervert támadnak meg, amelynek igyekeznek + minél több példányát + legyártatni, míg végül az ezt + futtató rendszer ki nem fogy a + memóriából, + állományleíróból + satöbbibõl és megállásra nem + kényszerül. Az inetd + (lásd &man.inetd.8;) számos + lehetõséget kínál fel ennek + megakadályozására. Ezzel kapcsolatban + szeretnénk megjegyezni, hogy bár ezzel el tudjuk + kerülni a gépünk + leállását, semmilyen garanciát nem + ad arra, hogy a szolgáltatás a + támadás során is zavartalanul üzemel + tovább. Alaposan olvassuk el az + inetd man oldalát és + legyünk különös tekintettel a + , és + kapcsolóira. Vigyázzunk, hogy + az inetd + kapcsolóját képesek kijátszani az + álcázott IP-vel érkezõ + támadások, ezért inkább az + elõbbi kapcsolók valamilyen + kombinációja az ajánlott. Egyes + szerverprogramoknál be lehet állítani a + példányainak maximális + számát. + + A Sendmail rendelkezik egy + + beállítással, ami a terhelésben + levõ késleltetése miatt néha mintha + jobban beválna, mint a + Sendmail + terheléskorlátozó paraméterei. A + Sendmail indításakor + tehát a MaxDaemonChildren + paramétert javasolt megadni egy olyan + értékkel, amely elegendõ a + Sendmail számára + betervezett terhelés kiszolgálására, + de még kevés ahhoz, hogy a + Sendmail fûbe harapjon + tõle. Továbbá bölcs dolog a + Sendmailt várakozási + sorral () és + démonként (sendmail -bd), + külön feldolgozási menetekkel + (sendmail -q15m) futtatni. Ha + továbbra is valós idejû + kézbesítést akarunk, akkor a + feldolgozást kisebb idõközökkel is + lefuttathatjuk (például ), de + arra mindig ügyeljünk, hogy a + MaxDaemonChildren + beállítása ne okozzon + kaszkádosítási hibákat a + Sendmail + mûködésében. + + A Syslogd közvetlenül + is támadható, ezért határozattan + javasoljuk a használatát, + amikor csak lehet, minden más esetben pedig a + beállítást. + + Fordítsunk kellõ figyelmet a TCP kapcsolatok + burkolását végzõ TCP + Wrapper reverse-ident + lehetõségére, ami szintén + közvetlenül támadható. Ebbõl az + okból kifolyólag valószínûleg + nem is akarjuk a TCP Wrapper + által felkínált reverse-ident-et + használni. + + Jól járunk el abban az esetben, ha a + belsõ szolgáltatásainkat az + útválasztóink mentén tûzfal + segítségével védjük meg a + külsõ hozzáféréstõl. Ezzel + lényegében a helyi hálózatunkat + kívülrõl fenyegetõ támadások + ellen védekezünk, de ez nem nyújt + elegendõ védelmet a belsõ + szolgáltatásaink esetén a + root hozzáférés + megszerzésére irányuló + kísérletek ellen. Mindig egy exkluzív, + tehát zárt tûzfalat állítsunk + be, vagyis tûzfalazzunk mindent + kivéve az A, B, C, D és M-Z + portokat. Ezen a módon ki tudjuk szûrni az + összes alacsonyabb portot, kivéve bizonyos eseteket, + mint például a named + (ha az adott zónában ez az elsõdleges + gép), ntalkd, + sendmail vagy más interneten + keresztül elérhetõ + szolgáltatásokat. Ha másképpen + állítjuk a tûzfalat — inkluzív, + nyílt avagy megengedõ módon, akkor jó + eséllyel elfelejtünk lezárni + egy csomó szolgáltatást, vagy úgy + adunk hozzá egy új belsõ + szolgáltatást, hogy közben elfelejtjük + frissíteni a tûzfalat. Ennél még azon + is jobb, ha a tûzfalon nyitunk egy magasabb + portszámú tartományt, és ott + valósítjuk meg ezt a megengedõ jellegû + mûködést, az alacsonyabb portok + veszélybe sodrása nélkül. Vegyük + azt is számításba, hogy a &os;-ben a + kiosztott portokat dinamikusan állíthatjuk a + net.inet.ip.portrange sysctl + változókon keresztül (sysctl -a | + fgrep portrange), ami nagyságrendekkel + megkönnyíti a tûzfal + beállítását. Ennek megfelelõen + például meg tudjuk adni, hogy a 4000-tõl + 5000-ig terjedõ porttartomány a 49152-tõl + 65535-ig húzódó tartományba + kerüljön át, majd a 4000 alatti összes + portot blokkoljuk (természetesen az internetrõl + szándékosan hozzáférhetõ portok + kivételével). + + A DoS támadások másik elterjedt + fajtája az ún. ugródeszka + támadás — ilyenkor a szervert + úgy próbálják túlterhelni, + hogy folyamatosan válaszokat kérnek tõle a + helyi hálózatról vagy egy másik + számítógéprõl. Az ilyen + természetû támadások közül + is a legnépszerûbb az ICMP + pingszórásos támadás. A + támadó olyan ping csomagokat küld szét + a helyi hálózaton, amelyek + forrásának azt a gépet jelöli meg, + amelyiket meg akarja támadni. Ha a + hálózatokat elválasztó + útválasztók nem fogják meg a + pingszórást, akkor a helyi + hálózatról összes gépe + nekilát válaszolgatni a meghamisított + forrás címére, amivel így teljesen + leterhelik az áldozatot. Ez különösen + akkor hatásos, amikor a támadó ugyanezt a + trükköt eljátssza egyszerre több tucat + különbözõ hálózatban is. Az + üzenetszórással járó + támadások akár százhúsz + megabitnyi forgalmat is képesek generálni + másodpercenként. A második legelterjedtebb + ugródeszkás támadás az ICMP + hiba-visszajelzési rendszere ellen irányul. + Ilyenkor a támadó ICMP hibaüzeneteket + kiváltó csomagok + készítésével képes + eltömíteni egy szerver bejövõ + hálózati kapcsolatát és az ICMP + válaszokkal pedig a szerver maga dugítja el a + kimenõ hálózati kapcsolatát. Ez a + fajtájú támadás képes + kinyomni az összes memóriát a szerverbõl + és ezzel összeomlasztani, különösen + olyankor, amikor a szerver nem tudja elég gyorsan + elnyelni az általa generált ICMP + válaszokat. A net.inet.icmp.icmplim + sysctl változóval tudunk gátat szabni a + támadások ezen fajtájának. Az + ugródeszkás támadások utolsó + nagyobb osztálya az inetd + olyan szolgáltatásait szemeli ki, mint + például az udp echo. A támadó + ilyenkor egyszerûen küld a helyi + hálózatunkon található A és B + szerverünknek egy olyan UDP csomagot, ahol + forrásként az A szerver echo portját adja + meg, célnak pedig a B szerver echo portját. + Ezután a két szerver elkezdi egymás + között passzolgatni ezt az egyetlen csomagot. A + támadó még több ilyen csomag + befecskendezésével pillanatok alatt képes + leterhelni a két szervert és helyi + hálózatot. Hasonló problémák + vannak a belsõ chargen + portjával is. Egy hozzáértõ + rendszergazda ezért kikapcsolja az összes ilyen + inetd-alapú belsõ tesztelõ + szolgáltatást. + + Az álcázott csomagok + felhasználhatóak a rendszermag + útválasztó + gyorsítótárának + túlterhelésére is. Ezzel kapcsolatban + nézzük meg a + net.inet.ip.rtexpire, + rtminexpire és + rtmaxcache sysctl változókat. + A véletlenszerû IP-címekkel megcímzett + álcázott csomagok hatására a + rendszermag létrehoz mindegyikõjükhöz egy + ideiglenesen pufferelt utat az útválasztó + táblázatában, amelyet a netstat + -rna | fgrep W3 paranccsal tudunk lekérdezni. + Az ilyen útvonalak nagyjából 1600 + másodperc múlva elévülnek. Ha a + rendszermag észleli, hogy a + gyorsítótárazott + útválasztási táblázat + mérete túlságosan megnövekedett, akkor + automatikusan csökkenti az rtexpire + értékét, de soha nem megy a + rtminexpire alá. Ebbõl + két probléma adódik: + + + + A rendszermag nem reagál elég gyorsan + amikor egy alig terhelt szervert hirtelen + megtámadnak. + + + + Az rtminexpire nem elég kicsi + ahhoz, hogy a rendszermag túléljen egy + tartósabb rohamot. + + + + Ha a szervereink az internethez T3 (kb. 45 Mbit/s) vagy + gyorsabb összeköttetésen keresztül + csatlakoznak, akkor határozottan javasolt kézileg + behangolni a &man.sysctl.8; segítségével az + rtexpire és az + rtminexpire értékeket. Soha ne + állítsuk egyiket sem nullára (hacsak nem + akarjuk összeomlasztani a gépünket). Ha + például mind a kettõt 2 másodpercre + állítjuk, akkor az többnyire elegendõ az + útválasztási táblázat + megvédéséhez. + + + + + Hozzáférés Kerberosszal és + SSH-val + + ssh + KerberosIV + + Van néhány dolog, amit a Kerberos és az + ssh esetén ajánlatos tisztázni, + mielõtt használjuk ezeket. A Kerberos 5 egy + kifogástalan hitelesítési protokoll. A + telnet és + rlogin Kerberos által + módosított változatában vannak olyan + hibák, amelyek alkalmatlanná teszik ezeket a + bináris adatfolyamok helyes kezelésére. + Sõt, alapértelmezés szerint a Kerberos nem + titkosítja a kapcsolatot, csak ha megadjuk neki a + kapcsolót. Az + ssh alapértelmezés + szerint mindent titkosít. + + Az ssh minden szempontból nagyon jól + teljesít kivéve, hogy alapértelmezés + szerint átküldi a kulcsokat is. Ez azt jelenti, + hogy ha van egy olyan biztonságos + munkaállomásunk, ahol a rendszer többi + részéhez tartozó kulcsainkat tartjuk + és egy nem biztonságos gépre akarunk vele + ssh-n keresztül belépni, akkor a kulcsaink + használatóvá válnak. A + tényleges kulcsokat ugyan nem látja senki, de a + bejelentkezés során az ssh megnyit egy + közvetítéshez használt portot, amit a + nem biztonságos gépen a támadó egy + feltört root + hozzáférés birtokában ki tud + használni úgy, hogy a kulcsaink + segítségével hozzá tudjon + férni egy másik olyan géphez, amelyet a + kulcsok nyitnak. + + Ha lehetséges, akkor a személyzet + bejelentkeztetéséhez az ssh-t és Kerberost + együttesen használjuk. Az + ssh lefordíható + Kerberos támogatással. Ezzel + csökkentjük a potenciálisan + kiszivárgó ssh kulcsok esélyét, + miközben jelszavainkat a Kerberosszal védjük. + Az ssh kulcsokat csak biztonságos gépekrõl + és csak automatizált feladatok esetén + használjuk (amire a Kerberos lényegében nem + alkalmas). Emellett javasoljuk azt is, hogy az ssh + beállításai között tiltsuk le a + kulcsok átküldését (key forwarding) + vagy használjuk az from=IP/DOMAIN + opciót, amivel az ssh csak a megadott + gépekrõl engedi az + authorized_keys állomány + és a így benne levõ kulcsok + használatát. + + + + + + + + + Bill + Swingle + Egyes részeit újraírta és + aktualizálta: + + + + + DES, Blowfish, MD5 és a Crypt + + + biztonság + crypt + + + crypt + Blowfish + DES + MD5 + + Minden &unix; rendszer használójához + tartozik egy jelszó is a + hozzáféréséhez. Teljesen + nyilvánvalónak tûnik, hogy ezt a jelszót + csak az adott felhasználó és az adott + operációs rendszer ismeri. A jelszavakat a titokban + tartásukhoz ún. csapóajtó + függvényekkel titkosítják, + amelyeket könnyû titkosítani, ám + nehéz visszafejteni. Tehát amit egy perccel + ezelõtt még nyilvalónak tituláltunk, az + mostanra már nem is teljesen igaz: + valójában az + operációs rendszer sem ismeri a jelszót. Az + operációs rendszer csak a jelszó + titkosított változatát + ismeri. A jelszó titkosítatlan + formáját csak nyers erõ + igényebevételével tudjuk megkeresni az + összes lehetséges jelszó + szénakazlában. + + Sajnos, annak idején, amikor a jelszavak + titkosítása bekerült a &unix;-ba, egyedül + a DES, vagy más néven a Data Encryption Standard + (Adattitkosítási szabvány) jött + szóba. Ez alapvetõen nem jelentett + problémát az Egyesült Államok + állampolgárai számára, de mivel a DES + forráskódját nem lehetett kivinni az + Egyesült Államokból, a &os;-nek találnia + kellett valami olyasmit, ami mind megfelel az Egyesült + Államok törvényeinek, mind pedig kompatibilis + marad az összes többi DES-t használó + &unix; variánssal. + + Ezt úgy oldották meg, hogy felosztották a + titkosítással foglalkozó + függvénykönyvtárakat, így az + Egyesült Államokban élõ + felhasználók tudtak DES könyvtárakat + telepíteni és használni, miközben a + többi nemzet felhasználói olyan más + titkosítási módszert tudtak + választani, amit kinn is lehetett alkalmazni. Ennek + tulajdonítható, hogy a &os; + alapértelmezés szerint az MD5 + segítségével titkosít. Az MD5-öt + a DES-nél sokkalta biztonságosabbnak tartják, + ezért a DES telepítésének + lehetõségét leginkább csak + kompatibilitási okokból ajánlották + fel. + + + A titkosítási mechanizmus + azonosítása + + Jelenleg a könyvtár ismeri a DES, MD5 és + Blowfish függvényeit. A &os; a jelszavak + titkosításához alapból az + MD5-öt használja. + + Nagyon könnyen meg tudjuk mondani, hogy a &os; + éppen melyik titkosítási módszert + alkalmazza. Ennek egyik lehetõsége, ha az + /etc/master.passwd állományt + vizsgáljuk meg. Az MD5 függvényével + titkosított jelszavak hosszabbak, mint a DES + függvényével titkosítottak és a + $1$ karakterekkel + kezdõdnek. A $2a$ + karakterekkel kezdõdõ jelszavakat Blowfish-sel + titkosították. A DES + kódolású jelszavaknak nincs semmilyen + különleges ismertetõjelük, de + általánosságban elmondható + róluk, hogy rövidebbek az MD5 jelszavaknál + és olyan 64 karakteres ábécével + kódolják ezeket, amelyek nem tartalmazzák a + $ karaktert, így tehát a + viszonylag rövid, nem dollárjellel kezdõdõ + karakterláncok minden bizonnyal DES + kódolású jelszavak. + + Az új jelszavak kódolásához + használt formátumot az + /etc/login.conf állományban + tárolt passwd_format + bejelentkezési tulajdonság adja meg, amelynek + értékei des, + md5 vagy blf lehetnek. A + &man.login.conf.5; man oldalon + tájékozódhatunk bõvebben a + bejelentkezési tulajdonságokról. + + + + + + Egyszeri jelszavak + + egyszeri jelszavak + + biztonság + egyszeri jelszavak + + + A &os; alapértelmezés szerint támogatja + az OPIE-t (One-time Passwords In Everything, azaz Egyszeri + jelszavak mindenben), ami alapból az MD5 + függvényét használja. + + A jelszavak három fajtáját fogjuk a + továbbiakban tárgyalni. Az elsõ a megszokott + &unix; stílusú avagy Kerberos jelszó. Ezt a + továbbiakban &unix; jelszónak + nevezzük. A második fajtában az OPIE + &man.opiekey.1; nevû segédprogramja által + generált és a bejelentkezésnél a + &man.opiepasswd.1; által elfogadott jelszavak tartoznak. + Ezeket egyszeri jelszavaknak fogjuk nevezni. A + jelszavak utolsó típusa az a titkos jelszó, + amit az opiekey programnak (és + néha a opiepasswd programnak) adunk meg, + ami ebbõl egyszer használatos jelszavakat + állít elõ. Ezt innentõl titkos + jelszónak vagy csak egyszerûen + jelszónak hívjuk. + + A titkos jelszónak semmi köze sincs a &unix; + jelszavunkhoz. Természetesen megegyezhetnek, de ezt nem + ajánljuk. Az OPIE által használt titkos + jelszavaknak nem kell a régi &unix; jelszavakhoz + hasonlóan legfeljebb 8 karakteresnek lenniük + + &os; alatt a bejelentkezéshez használt + szabványos jelszavak akár 128 karakteresek is + lehetnek. + , bármekkorát használhatunk. A + hat vagy hét szóból álló + jelszavak ilyenkor igen gyakoriak. Az OPIE jobbára a + &unix; jelszórendszerétõl teljesen + függetlenül mûködik. + + A jelszavak mellett két másik fajta adat fontos + az OPIE számára. Közülük az egyiket + magnak vagy kulcsnak nevezik, ami + két betûbõl és öt + számjegybõl áll. A másik az + iterációk száma, ami egy 1 + és 100 közötti számot takar. Az OPIE + úgy hozza létre az egyszeri jelszavakat, hogy + egymás után fûzi a magot és a titkos + jelszót, majd az iterációk megadott + számának megfelelõ mennyiségben + kiszámolja rá az MD5 függvény + értékét és az eredményt hat + rövid angol szóba önti. Ez a hat angol + szó lesz a mi egyszeri jelszavunk. A + hitelesítéssel foglalkozó rendszer + (elsõsorban a PAM) figyelemmel kíséri a + legutoljára használt egyszeri jelszavunkat, + és csak akkor engedi a felhasználót + hitelesíteni, ha az általa megadott jelszó + kódolt változata megegyezik az elõzõleg + megadott jelszaváéval. A csapóajtó + függvények használata miatt lehetetlen + legenerálni a következõ egyszeri jelszót, + ha a sikerült megszereznünk az egyiket. Az + iterációk száma minden egyes sikeres + bejelentkezés után csökken eggyel, amivel a + felhasználót és a bejelentkeztetõ + programot szinkronban tartja. Amikor így az + iterációk száma eléri az egyet, az + OPIE-t újra kell inicializálni. + + Az említésre kerülõ rendszerek + mindegyikéhez tartozik néhány program. Az + opiekey bekéri az + iterációk számát, a magot és a + titkos jelszót, majd elõállít egy + egyszer használatos jelszót vagy azok folytonos + listáját. Az opiepasswd az OPIE + inicializálásért, a jelszavak, az + iterációk számának és a mag + megváltoztatásáért felelõs. + Egyaránt elfogad titkos jelmondatot, + iterációs számot vagy magot és egy + egyszeri jelszót. Az opieinfo + megvizsgálja a felhasználókra + vonatkozó adatbázist + (/etc/opiekeys) és kiírja az + adott felhasználó által használt + iterációs számot és magot. + + Négyféle különbözõ + mûveletrõl fogunk most itt beszélni. Az + elsõben egy biztonságos kapcsolaton keresztül + elsõként inicializáljuk az egyszeri + jelszavakat, vagy megváltoztatjuk a jelszót vagy a + magot az opiepasswd + segítségével. A második + mûveletben ugyanarra adjuk ki az + opiepasswd parancsot egy nem biztonságos + kapcsolaton keresztül az opiekey + paranccsal együtt egy biztonságos kapcsolaton + keresztül. A harmadikban az opiekey + használatával nem biztonságos kapcsolaton + keresztül jelentkezünk be. A negyedikben az + opiekey paranccsal létrehozunk egy adott + mennyiségû kulcsot, amelyeket aztán + leírhatunk vagy kinyomtathatunk, hogy magunkkal tudjuk + vinni olyan helyre, ahonnan nem tudnk biztonságos + módon csatlakozni. + + + Inicializálás biztonságos + kapcsolattal + + Az OPIE elsõ inicializálásához + adjuk ki az opiepasswd parancsot: + + &prompt.user; opiepasswd -c +[grimreaper] ~ $ opiepasswd -f -c +Adding unfurl: +Only use this method from the console; NEVER from remote. If you are using +telnet, xterm, or a dial-in, type ^C now or exit with no password. +Then run opiepasswd without the -c parameter. +Using MD5 to compute responses. +Enter new secret pass phrase: +Again new secret pass phrase: +ID unfurl OTP key is 499 to4268 +MOS MALL GOAT ARM AVID COED + + + A figyelmeztetés fordítása: + + Ezt a módszert csak konzolról alkalmazzuk, SOHA ne távoli kapcsolaton +keresztül! Ha telnetet, xtermet vagy betárcsázós kapcsolatot használunk, akkor +azonnal nyomjunk ^C-t vagy ne adjunk meg jelszót. + + Az Enter new secret pass phrase: vagy + Enter secret password: kérdések + után adjunk meg egy jelmondatot, illetve jelszót. + Ne felejtsük el, hogy ez nem bejelentkezéshez + használt jelszó lesz, hanem ebbõl jönnek + majd létre az egyszeri kulcsaink. Az ID + sor adja meg az aktuális példányunk + paramétereit: a bejelentkezéshez használt + nevünket, az iterációk számát + és a magot. Amikor a bejelentkezések során + a rendszer emlékszik a paraméterekre és + megjeleníti ezeket, nem kell megjegyeznünk. Az + utolsó sor adja meg a paramétereinknek és a + titkos jelszavunknak megfelelõ egyszeri jelszót. Ha + most azonnal akarnánk bejelentkezni, akkor ezt az + egyszeri jelszót kellene hozzá + használnunk. + + + + + Inicializálás nem biztonságos + kapcsolattal + + Ha egy nem biztonságos kapcsolaton keresztül + akarjuk inicializálni vagy megváltoztatni a + jelszavunkat, akkor szükségünk lesz valahol egy + megbízható kapcsolatra, ahol le tudjuk futtatni az + opiekey parancsot. Ez lehet egy + számunkra biztonsági szempontból + elfogadható gép parancssora. Emellett ki kell + találnunk egy iterációs számot (erre + a 100 egy jó választás) és adnunk + egy magot vagy használni egy véletlenszerûen + generáltat. Az inicializálás + színtere felé vezetõ nem biztonságos + kapcsolaton keresztül adjuk ki az + opiepasswd parancsot: + + &prompt.user; opiepasswd + +Updating unfurl: +You need the response from an OTP generator. +Old secret pass phrase: + otp-md5 498 to4268 ext + Response: GAME GAG WELT OUT DOWN CHAT +New secret pass phrase: + otp-md5 499 to4269 + Response: LINE PAP MILK NELL BUOY TROY + +ID mark OTP key is 499 gr4269 +LINE PAP MILK NELL BUOY TROY + + + Az alapértelmezett mag elfogadásához + nyomjuk le a Return billentyût. + Mielõtt megadnánk a hozzáférés + jelszavát, menjünk át a biztonságos + kapcsolatra és adjuk meg neki ugyanezeket a + paramétereket: + + &prompt.user; opiekey 498 to4268 +Using the MD5 algorithm to compute response. +Reminder: Don't use opiekey from telnet or dial-in sessions. +Enter secret pass phrase: +GAME GAG WELT OUT DOWN CHAT + + + Most váltsunk vissza a nem biztonságos + kapcsolatra és másoljuk be az így + generált egyszeri jelszót a megfelelõ + programba. + + + + + Egyetlen egyszeri jelszó + létrehozása + + Miután sikeresen inicializáltuk az OPIE-t + és bejelentkezünk, a következõket + láthatjuk: + +&prompt.user; telnet example.com +Trying 10.0.0.1... +Connected to example.com +Escape character is '^]'. + +FreeBSD/i386 (example.com) (ttypa) + +login: felhasználói_név +otp-md5 498 gr4269 ext +Password: + + Mellékesen megjegyezzük, hogy az OPIE + paranccsorának van egy (itt nem látható) + hasznos képessége: ha Return + billentyût nyomunk a jelszó + bekérésekor, akkor a program megmutatja a + begépelt betûket, így láthatjuk + pontosan mit is írunk be. Ez nagyon kényelmes + lehet olyankor, amikor valahonnan, például egy + lapról olvassuk a jelszót. + + MS-DOS + Windows + MacOS + + A bejelentkezéshez ekkor le kell valahogy + generálnunk az egyszeri jelszavunkat. Ezt egy + megbízható rendszeresen tudjuk megtenni az + opiekey lefuttatásával. (Ennek + vannak DOS-os, &windows;-os és &macos;-es + változatai is.) Paraméterként az + iterációs számot és a magot kell + megadnunk. Ezt akár közvetlenül át is + másolhatjuk annak a gépnek a bejelentkezési + képernyõjérõl, ahova be akarunk + jelentkezni. + + A megbízható rendszeren tehát: + + &prompt.user; opiekey 498 to4268 +Using the MD5 algorithm to compute response. +Reminder: Don't use opiekey from telnet or dial-in sessions. +Enter secret pass phrase: +GAME GAG WELT OUT DOWN CHAT + + Most már megvan a bejelentkezéshez + szükséges egyszeri jelszavunk. + + + + + Több egyszeri jelszó + létrehozása + + Néha olyan helyekre kell mennünk, ahol se egy + megbízható gép, sem pedig + biztonságos kapcsolat nem található. Ilyen + esetekben megadhatjuk az opiekey parancsnak, + hogy elõre gyártson le több egyszer + használatos jelszót, amit késõbb + aztán ki tudunk nyomtatni. Például: + + &prompt.user; opiekey -n 5 30 zz99999 +Using the MD5 algorithm to compute response. +Reminder: Don't use opiekey from telnet or dial-in sessions. +Enter secret pass phrase: <secret password> +26: JOAN BORE FOSS DES NAY QUIT +27: LATE BIAS SLAY FOLK MUCH TRIG +28: SALT TIN ANTI LOON NEAL USE +29: RIO ODIN GO BYE FURY TIC +30: GREW JIVE SAN GIRD BOIL PHI + + Az öt kulcsot kér + egymás után, a pedig megadja + az utolsó iterációs számot. + Vegyük észre, hogy a kulcsokat a + felhasználás sorrendjével + ellentétes sorrendben írja ki + a program. Ha igazán paranoiások vagyunk, akkor + írjuk le kézzel a jelszavakat. Ha viszont annyira + nem, akkor egyszerûen küldjük át ezeket az + lpr parancsnak. Megfigyelhetjük, hogy + minden sorban látható az iterációs + szám és a hozzátartozó egyszeri + jelszó. Hasznos lehet a felhasználás + szerinti felírni a jelszavakat. + + + + + A &unix; jelszavak használatának + leszûkítése + + Az OPIE képes a bejelentkezéshez + használt IP-címek alapján + leszûkíteni a &unix; jelszavak + használatát. Ehhez az + /etc/opieaccess használható, + amely alapból megtalálható a + rendszerünkön. Az &man.opieaccess.5; man + oldalán találhatjuk meg a rá + vonatkozó információkat és az + összes vele kapcsolatos biztonsági + megfontolást. + + Íme egy példa az + opieaccess állományra: + + permit 192.168.0.0 255.255.0.0 + + Ezzel a sorral megengedjük a &unix; jelszavak + használatát minden olyan felhasználó + számára, akinek az IP-je illeszkedik a megadott + címre és maszkra (ez viszont + álcázással + kijátszható). + + Ha az opieaccess + állományból egyetlen szabály sem + illeszkedik, akkor alapértelmezés szerint nem + engedélyezettek a nem OPIE típusú + jelszavak. + + + + + + + + + Tom + Rhodes + Írta: + + + + + TCP burkolók + + A TCP kapcsolatok burkolása + + Aki ismeri az &man.inetd.8; programot, az már biztosan + hallott a TCP kapcsolatok + burkolásáról, eredeti nevén a a + TCP wrapperekrõl. Azonban csak kevesek + képesek felfogni ezek valódi hasznát. + Úgy néz ki, mindenki csak tûzfalakon + keresztül akarja megoldani a hálózati + kapcsolatot kezelését. Habár a + tûzfalakat sok mindenre fel lehet ugyan használni, + egyetlen tûzfal nem képes például + szövegesen válaszolni a kapcsolatok + kezdeményezõinek. Ellenben bármelyik + TCP szoftver képes erre, sõt + még többre is. A következõ + néhány szakaszban szemügyre vesszük a + TCP burkolók számos + lehetõségét, és ahol lehetséges, + ott konfigurációs állományokkal is + illusztráljuk ezek használatát. + + A TCP burkoló szoftverek + kiterjesztik az inetd képességeit + minden alatta dolgozó szerverdémon + támogatására. Ezzel a módszerrel meg + lehet oldani a naplózást, üzenetek + küldését a kapcsolatokhoz, a démonok + elérhetõségének + korlátozását stb. Noha ezen + lehetõségek közül néhány + tûzfallal is megvalósítható, ezzel nem + csupán egy további védelmi réteget + húzunk fel a rendszerünk köré, hanem + túllépjük mindazt, amit egy tûzfallal + irányítani lehet. + + A TCP burkolók + használatával hozzáadott + funkcionalitás azonban nem helyettesít egy jó + tûzfalat. A TCP kapcsolatok + burkolását tûzfallal vagy más + egyéb biztonsági megoldással együtt + tudjuk csak eredményesen használni, viszont a + rendszerünk biztonságában egy újabb + remek védelmi vonalat képvisel. + + Mivel lényegében ez az inetd + beállításának + kibõvítése, ezért a szakasz + elolvasásához feltételezzük az inetd + beállításával kapcsolatos + tudnivalók ismeretét. + + + Bár az &man.inetd.8; által indított + programok nem egészen tekinthetõen + démonoknak, hagyományosan + démonnak hívják ezeket. Ezért + rájuk ebben a szakaszban is ezt a kifejezést + használjuk. + + + + Kezdeti beállítások + + &os; alatt a TCP burkolók + használatának egyetlen feltétele + csupán annyi, hogy az inetd parancsot + a paraméterrel indítsuk az + rc.conf állományból. + Az egyébként az + alapbeállítás. Természetesen nem + árt, ha helyesen állítjuk be az + /etc/hosts.allow állományt + is, ellenkezõ esetben a &man.syslogd.8; + egyébként dobálni fogja errõl az + üzeneteket. + + + Eltérõen a TCP + burkolók egyéb + implementációitól, a + hosts.deny állományt itt + már nem használjuk. Minden + beállítást az + /etc/host.allow állományba + kell raknunk. + + + A legegyszerûbb konfiguráció + esetén a démonok + kapcsolódását egyszerûen + engedélyezhetjük vagy letilthatjuk az + /etc/hosts.allow állományban + szereplõ beállításokkal. A &os; + alapértelmezett beállításai szerint + minden inetd által indított + démonhoz lehet kapcsolódni. Ennek + megváltoztatásával az + alapkonfiguráció áttekintése + után foglalkozunk. + + Az alapkonfiguráció általában + démon : cím : cselekvés + alakú. Itt a démon egy olyan + démonra utal, amelyet az inetd + indított el. A cím egy + érvényes hálózati név, + IP-cím vagy szögletes zárójelek + ([ ]) között megadott IPv6 + formátumú cím. A cselekvést + tartalmazó mezõ lehet allow vagy + deny annak megfelelõen, hogy + engedélyezzük vagy tiltjuk a megadott + címrõl a csatlakozást. Nem szabad + elfelejtenünk, hogy az így megadott + beállítások közül mindig az + elsõként illeszkedõ + érvényesül, ami arra utal, hogy a + konfigurációs állományban + szereplõ szabályok egymás után + növekvõ sorrendben értékelõdnek ki. + Ha valamelyikük illeszkedik, akkor a keresés + megáll. + + Rengeteg egyéb opció is megadható + még, de ezekrõl csak a késõbbi + szakaszokban fogunk szólni. Egy egyszerû + konfigurációs állomány már + ennyi információból is + könnyedén összeállítható. + Például, ha engedélyezni szeretnénk + a POP3 kapcsolatokat a mail/qpopper démonon + keresztül, akkor a következõ sorral kell + kiegészítenünk a + hosts.allow állományt: + + # Ez a sor kell a POP3 kapcsolatokhoz: +qpopper : ALL : allow + + Miután hozzáadtuk ezt a sort, az + inetd szervert újra kell + indítanunk. Ezt vagy a &man.kill.1; paranccsal, vagy + pedig az /etc/rc.d/inetd szkript + restart paraméterével + tehetjük meg. + + + + + Komolyabb beállítások + + A TCP kapcsolatok + burkolásánál is meg lehet adni + további opciókat. + Segítségükkel még jobban + irányítani tudjuk a kapcsolatok + kezelésének módját. + Néhány esetben az is hasznos lehet, ha + küldünk valamilyen választ az egyes + gépeknek vagy démonoknak. Máskor + szükségünk lehet a csatlakozások + naplózására vagy e-mailen keresztüli + jelzésére a rendszergazda felé. Teljesen + más helyezetekben csak a helyi + hálózatunkról engedjük meg a + csatlakozást. Ez mind lehetséges a + helyettesítõ jelekként + ismert beállítási opciók, + kiterjesztõ karakterek és külsõ parancsok + végrehajtásának + használatával. A következõ két + szakasz az ilyen és ehhez hasonló + szituációk megoldására + íródott. + + + Külsõ parancsok + + Tegyük fel, hogy olyan helyezetben vagyunk, amikor a + kapcsolatot tiltani akarjuk, de közben azért + szeretnénk errõl értesíteni a + kapcsolatot kezdeményezõ felet is. Hogyan tudjuk + ezt megcsinálni? Ezt a + nevû opcióval tehetjük meg. Amikor + megpróbál valaki csatlakozni, akkor a + hívódik meg és + végrehajt egy megadott parancsot vagy szkriptet. Erre + találunk is egy példát a + hosts.allow + állományban: + + # The rest of the daemons are protected. +ALL : ALL \ + : severity auth.info \ + : twist /bin/echo "You are not welcome to use %d from %h." + + Ez a példa a következõ üzenetet + jeleníti meg: You are not allowd to use + a démon neve from + hálózati név. + (Jelentése: A démon + neve démont nem érheti el a + hálózati név + helyrõl!) Ez minden olyan démon + esetén megjelenik, amirõl nem nyilatkoztunk + korábban az állományban. Ezzel nagyon + könnyen vissza tudunk küldeni egy választ a + kapcsolat kezdményezõje felé, miután + a kapcsolatot eldobtuk. Vegyük észre, hogy a + visszaküldendõ üzenetet " + karakterek közé kell + tennünk, ez alól semmi sem kivétel. + + + DoS támadást lehet elõidézni + azzal, ha egy támadó vagy + támadók egy csoportja csatlakozási + kérelmekkel kezdi el bombázni a + démonainkat. + + + Ilyen esetekben használhatjuk a + opciót is. A + a + opcióhoz hasonlóan implicit módon tiltja + a kapcsolódást és arra + használható, hogy lefuttassunk vele egy + parancsot vagy szkriptet. A azonban a + opciótól + eltérõen nem küld vissza semmilyen + választ a kapcsolatot létrehozni + kívánó egyénnek. Ehhez + példaként vegyük a következõ sort + a konfigurációs + állományban: + + # We do not allow connections from example.com: +ALL : .example.com \ + : spawn (/bin/echo %a from %h attempted to access %d >> \ + /var/log/connections.log) \ + : deny + + Ezzel a *.example.com + címtartományból érkezõ + összes kapcsolódási kísérlet + sikertelen lesz, miközben ezzel egyidõben a + /var/log/connections.log + állományba rögzítjük a + csatlakozni akaró egyén hálózati + nevét, IP-címét + és a démont. + + A korábban már kifejtett + helyettesítõ karakterek túl, mint + például az %a, még léteznek + továbbiak is. Róluk a &man.hosts.access.5; man + oldalon találhatjuk meg a teljes listát. + + + + + Helyettesítõ jelek + + Az eddigi példákban folyamatosan csak az + ALL opciót adtuk meg. Azonban rajta + kívûl léteznek mások is, amivel a + megoldás funkcionalitását még egy + kicsivel tovább növelhetjük. + Például az ALL + használható egy démon, egy + tartomány vagy egy IP-cím + illesztésére. A másik ilyen + helyettesítõ jel a PARANOID, + amelyet olyan gépek + IP-címének + illesztésekor alkalmazhatunk, ami + feltételezhetõen hamis. Más szóval + a PARANOID olyan cselekvések + megadását teszi lehetõvé, amelyek + akkor hajtódnak végre, amikor a kapcsolatot + létrehozó gép + IP-címe eltér a + hálózati nevétõl. A most + következõ példa + valószínûleg segít fényt + deríteni ennek lényegére: + + # Block possibly spoofed requests to sendmail: +sendmail : PARANOID : deny + + A példában minden olyan + kapcsolatkérést elutasítunk, ami a + sendmail felé a + hálózati névtõl eltérõ + IP-címrõl + irányul. + + + Ha rossz DNS + beállításokat használunk, a + PARANOID opcióval súlyosan + mozgásképtelenné tehetjük a + kliensünket vagy szerverünket. Ezért + legyünk óvatosak vele! + + + A helyettesítõ jelekrõl és + hozzájuk tartozó további + lehetõségekrõl a &man.hosts.access.5; man + oldalon tájékozódhatunk. + + A hosts.allow + állományból ki kell venni az elsõ + sort ahhoz, hogy bármilyen egyéb + konfigurációs beállítás + mûködõképes legyen. Ezt + említettük a szakasz elején is. + + + + + + + + + + Mark + Murray + Írta: + + + + + Mark + Dapoz + Eredetileg írta: + + + + + <application>KerberosIV</application> + + A Kerberos egy olyan járulékos + rendszer/protokoll, amellyel a felhasználók egy + biztonságos szerver szolgáltatásain + keresztül tudják hitelesíteni magukat. Ilyen + szolgáltatás többek közt a távoli + bejelentkezés, távoli másolás, a + rendszeren belüli biztonságos másolás + és minden olyan egyéb veszélyes feladat, amit + számottevõen megbízhatóbbá + és irányíthatóbbá + tettek. + + A következõ utasítások a &os;-hez + mellékelt Kerberos + beállításához adnak + útmutatást. A teljes leíráshoz + azonban érdemes fellapoznunk a menet közben + hivatkozott man oldalakat is. + + + A <application>KerberosIV</application> + telepítése + + MIT + + KerberosIV + telepítés + + + A Kerberos a &os; egyik választható + komponense. Legkönnyebben úgy tudjuk + feltelepíteni, ha a &os; telepítése + során a sysinstall programban + kiválasztjuk a krb4 vagy + krb5 terjesztések valamelyikét. + Ezzel felrakhatjuk a Kerberos eBones (KerberosIV) + vagy Heimdal (Kerberos5) elnevezésû + változatait. A &os; azért tartalmazza ezeket az + implementációkat, mert nem az Amerikai + Egyesült Államokban vagy Kanadában + fejlesztették, így az Egyesült Államok + titkosításokkal kapcsolatos kiviteli + korlátozások korában minden olyan rendszer + adminisztrátora el tudta érni, aki nem ezekben az + országokban lakott. + + A Kerberos MIT által fejlesztett + implementációját egyébként a + Portgyûjteménybõl a security/krb5 porton keresztül + érhetjük el. + + + + + A kezdeti adatbázis + létrehozása + + Ezt a lépést csak a Kerberos szerveren kell + elvégezni. Elõször is + gyõzõdjünk meg róla, hogy semmilyen + korábbi Kerberos adatbázis nem + található a gépen. Váltsunk az + /etc/kerberosIV könyvtárra + és ellenõrizzük a következõ + állományok meglétét: + + &prompt.root; cd /etc/kerberosIV +&prompt.root; ls +README krb.conf krb.realms + + Ha rajtuk kívül további + állományok is feltûnnének (mint + például a principal.* vagy + master_key), akkor a + kdb_destroy paranccsal pusztítsuk el a + régi Kerberos adatbázist, vagy ha nem fut + már a Kerberos, akkor egyszerûen csak + törüljük le ezeket. + + Ezután lássunk neki a + krb.conf és + krb.realms állományok + átírásán keresztül a Kerberos + egyes övezeteinek (realm) + létrehozásához. Itt most az + EXAMPLE.COM lesz a létrehozandó + övezet, a hozzátartozó szerver pedig a + grunt.example.com. Így + szerkesszük át vagy készítsünk el + a neki megfelelõ krb.conf + állományt: + + &prompt.root; cat krb.conf +EXAMPLE.COM +EXAMPLE.COM grunt.example.com admin server +CS.BERKELEY.EDU okeeffe.berkeley.edu +ATHENA.MIT.EDU kerberos.mit.edu +ATHENA.MIT.EDU kerberos-1.mit.edu +ATHENA.MIT.EDU kerberos-2.mit.edu +ATHENA.MIT.EDU kerberos-3.mit.edu +LCS.MIT.EDU kerberos.lcs.mit.edu +TELECOM.MIT.EDU bitsy.mit.edu +ARC.NASA.GOV trident.arc.nasa.gov + + A többi övezetnek valójában nem + feltétlenül kell itt lennie. Ezek csupán + azért szerepelnek itt, hogy bemutassák + miként lehet egyetlen géphez hozzárendelni + egyszerre több övezetet is. Az + egyszerûség kedvéért nyugodtan + elhagyhatóak. + + Az elsõ sor nevezi meg a rendszer által + mûködtetett övezeteket. Az utána + következõ sorokban övezeteket és + hálózati neveket láthatunk. Itt az + elsõ elem egy övezetet nevez meg, a második + elem pedig az övezet kulcselosztó + központját (key distribution center). A + hálózati nevet követõ admin + server kulcsszavak arra utalnak, hogy az adott + gép adminisztratív szerepet ellátó + adatbázist is tartalmaz. Ezeket a fogalmakat + részleteiben a Kerberos man oldalain ismerhetjük + meg. + + Ezután hozzá kell adnunk a grunt.example.com nevû gépet az + EXAMPLE.COM övezethez, valamint az + .example.com + tartományban levõ összes géphez + létre kell hoznunk egy bejegyzést az + EXAMPLE.COM övezetben. A + krb.realms állományt ehhez a + következõképpen kellene + módosítanunk: + + &prompt.root; cat krb.realms +grunt.example.com EXAMPLE.COM +.example.com EXAMPLE.COM +.berkeley.edu CS.BERKELEY.EDU +.MIT.EDU ATHENA.MIT.EDU +.mit.edu ATHENA.MIT.EDU + + Ismét hozzátesszük, hogy a többi + övezetnek nem kötelezõ itt szerepelnie. Ezek + csupán azt demonstrálják, hogy + miként kell egy gépet egyszerre több + övezethez is beállítani. Az + átláthatóság kedvéért + minden további nélkül + eltávolíthatjuk ezeket. + + Itt az elsõ sor az adott rendszert + elhelyezi egy nevesített övezetbe. A többi sor + azt mutatja meg, hogyan kell alapértelmezett módon + a meghatározott altartományokba tartozó + gépeket egy nevesített övezethez + hozzárendelni. + + Most már készen állunk az + adatbázis létrehozására. Ehhez + egyedül a Kerberos szerverét (avagy + Kulcselosztó központját) kell + elindítanunk. Adjuk ki a kdb_init + parancsot: + + &prompt.root; kdb_init +Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM +You will be prompted for the database Master Password. +It is important that you NOT FORGET this password. + +Enter Kerberos master key: + + Az üzenet fordítása: + + Most az adatbázis mesterkulcsát kell megadni. Fontos, hogy +NE FELEJTSÜK EL ezt a jelszót. + + Most el kell mentenünk a kulcsot, így a helyi + gépen futó szerverek fel tudják szedni. + Ehhez a kstash parancsra van + szükségünk: + + &prompt.root; kstash + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! + + Az üzenet fordítása: + + A Kerberos mesterkulcsának jelenlegi változata: 1. + +VIGYÁZAT, megadták a mesterkulcsot! + + Ez elmenti a titkosított mesterkulcsot az + /etc/kerberosIV/master_key + állományba. + + + + + Az egész beüzemelése + + + KerberosIV + kezdeti indítása + + + Mindegyik Kerberosszal õrzött + rendszerrel kapcsolatban két ún. szereplõt + (principal) kell még hozzátennünk az + adatbázishoz. A nevük kpasswd + és rcmd. Minden rendszerhez + létre kell hoznunk ezeket a szereplõket, + példányonként (instance) az egyes + rendszerek neveivel. + + A kpasswd és + rcmd démonok teszik + lehetõvé a többi rendszer + számára, hogy megváltoztathassák a + Kerberos jelszavukat, valamint hogy futtathassák az + &man.rcp.1;, &man.rlogin.1; és &man.rsh.1; + parancsokat. + + Vegyük fel ezeket a bejegyzéseket is: + + &prompt.root; kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: passwd +Instance: grunt + +<Not found>, Create [y] ? y + +Principal: passwd, Instance: grunt, kdc_key_ver: 1 +New Password: <---- írjuk be, hogy RANDOM +Verifying password + +New Password: <---- írjuk be, hogy RANDOM + +Random password [y] ? y + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: rcmd +Instance: grunt + +<Not found>, Create [y] ? + +Principal: rcmd, Instance: grunt, kdc_key_ver: 1 +New Password: <---- írjuk be, hogy RANDOM +Verifying password + +New Password: <---- írjuk be, hogy RANDOM + +Random password [y] ? + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- ha nem adunk meg semmit, akkor kilép + + + + A szerver állomány + létrehozása + + Most pedig kivonatolni kell azokat a + példányokat, amelyek szolgáltatást + definiálnak a gépen. Erre az + ext_srvtab parancsot használjuk. + Ennek eredményeképpen keletkezik egy + állományt, amelyet biztonságos + eszközökkel át kell másolni + vagy át kell mozgatni az egyes Kerberos kliensek + /etc könyvtárába. Ennek + az állománynak egyaránt jelent kell lennie + a szerveren és a kliensen is, nélküle a + Kerberos mûködésképtelen. + + &prompt.root; ext_srvtab grunt +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Generating 'grunt-new-srvtab'.... + + Ez a parancs most létrehozott egy ideiglenes + állományt, amit át kell nevezni az + srvtab névre, hogy + megtalálhassák a szerverek. Az eredeti rendszeren + a &man.mv.1; paranccsal tudjuk a helyére rakni: + + &prompt.root; mv grunt-new-srvtab srvtab + + Ha egy kliensnek szánjuk az állományt + és a hálozatunkat nem tekinthetjük + biztonságosnak, akkor a + kliens-new-srvtab + állományt másoljuk egy mozgatható + adathordozóra és megbízható + módon jutassuk el. Ne felejtsük el az + állományt srvtab néven + átrakni a kliens /etc + könyvtárába és az engedélyeit + 600-ra állítani: + + &prompt.root; mv grumble-new-srvtab srvtab +&prompt.root; chmod 600 srvtab + + + + + Az adatbázis feltöltése + + Ezt követõen rögzítenünk kell + néhány felhasználót is + adatbázisban. Elõször is hozzunk létre + egy bejegyzést a janos nevû + felhasználónak. Ezt a kdb_edit + parancs kiadásával tesszük meg: + + &prompt.root; kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: janos +Instance: + +<Not found>, Create [y] ? y + +Principal: janos, Instance: , kdc_key_ver: 1 +New Password: <---- adjunk meg egy biztonságos jelszót +Verifying password + +New Password: <---- itt ismét adjuk meg a jelszót +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- ha nem írunk be semmit, akkor kilép + + + + + Próbáljuk ki + + Elsõként a Kerberos démonait kell + beindítanunk. Ezzel kapcsolatban megjegyeznénk, + hogy ha ehhez megfelelõen átírtuk az + /etc/rc.conf állományunkat, + akkor ez az újraindítással együtt + magától lezajlik. Ezt csak a Kerberos szerveren + kell megcsinálni. A Kerberos kliensei maguktól + összeszedik a mûködésükhöz + szükséges adatokat az + /etc/kerberosIV + könyvtárból. + + &prompt.root; kerberos & +Kerberos server starting +Sleep forever on error +Log file is /var/log/kerberos.log +Current Kerberos master key version is 1. + +Master key entered. BEWARE! + +Current Kerberos master key version is 1 +Local realm: EXAMPLE.COM +&prompt.root; kadmind -n & +KADM Server KADM0.0A initializing +Please do not use 'kill -9' to kill this job, use a +regular kill instead + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! + + A fenti figyelmeztetés + fordítása: + + A program leállítására ne a 'kill -9' parancsot, hanem a +normális kill parancsot használjuk + + Ezután a kinit parancs + használatával próbáljunk meg az + elõbb létrehozott janos + azonosítónak kérni egy jegyet: + + &prompt.user; kinit janos +MIT Project Athena (grunt.example.com) +Kerberos Initialization for "janos" +Password: + + A klist paranccsal most + próbáljuk meg kilistázni a tokeneket + és így ellenõrizni, hogy valóban + rendelkezünk velük: + + &prompt.user; klist +Ticket file: /tmp/tkt245 +Principal: janos@EXAMPLE.COM + + Issued Expires Principal +Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM + + Ezután a &man.passwd.1; használatával + próbáljuk meg megváltoztatni a + jelszavunkat. Ezzel tudjuk ellenõrizni, hogy a + kpasswd démon + hozzáfér a Kerberos + adatbázisához: + + &prompt.user; passwd +realm EXAMPLE.COM +Old password for janos: +New Password for janos: +Verifying password +New Password for janos: +Password changed. + + + + + Adminisztrátori jogosultságok + felvétele + + A Kerberos lehetõvé teszi, hogy + mindegyik olyan + felhasználónak, akinek rendszergazdai jogokra + lenne szüksége, a &man.su.1; + eléréséhez + külön meg tudjunk adni egy + jelszót. Most már tudunk mondani egy olyan + azonosítót is, amely jogosult a &man.su.1; + használatával root jogokat + szerezni. Ezt úgy tudjuk megoldani, ha az adott + szereplõhöz társítunk egy + root példányt. A + kdb_edit használatával + készíteni tudunk egy janos.root + bejegyzést a Kerberos adatbázisában: + + &prompt.root; kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: janos +Instance: root + +<Not found>, Create [y] ? y + +Principal: janos, Instance: root, kdc_key_ver: 1 +New Password: <---- ide csak egy BIZTONSÁGOS jelszót adjuk meg! +Verifying password + +New Password: <---- adjuk meg ismét a jelszót + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- ne állítsuk nagyon hosszúra! +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- ha nem adunk meg semmit, akkor kilép + + Ezt követõen úgy tudunk megbizonyosodni a + mûködésérõl, hogy + megpróbálunk neki tokeneket szerezni: + + &prompt.root; kinit janos.root +MIT Project Athena (grunt.example.com) +Kerberos Initialization for "janos.root" +Password: + + Most rakjuk bele a felhasználót a + root .klogin + állományába: + + &prompt.root; cat /root/.klogin +janos.root@EXAMPLE.COM + + Ezután próbáljunk meg kiadni a + &man.su.1; parancsát: + + &prompt.user; su +Password: + + Nézzük meg milyen tokenjeink is vannak: + + &prompt.root; klist +Ticket file: /tmp/tkt_root_245 +Principal: janos.root@EXAMPLE.COM + + Issued Expires Principal +May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM + + + + + Más parancsok használata + + Az iménti példában létrehoztunk + egy janos nevû szereplõt, amihez a + root egy példányát + rendeltük. Ez egy olyan felhasználón + alapján történt, akinek a neve megegyezik a + hozzátartozó szereplõvel, ami a Kerberosban + alapértelmezés. Amennyiben a + szükséges megjegyzések + megtalálhatóak a root + könyvtárában levõ + .klogin állományban, akkor a + felhasználó.root + formátumú + szereplõ.példány + azonosító megengedi a + felhasználó + számára, hogy végrehajtsa a &man.su.1; + parancsot. + + &prompt.root; cat /root/.klogin +janos.root@EXAMPLE.COM + + Ehhez hasonlóan, ha a felhasználó + saját könyvtárában + megtalálható egy ilyen + állomány: + + &prompt.user; cat ~/.klogin +janos@EXAMPLE.COM +jozsef@EXAMPLE.COM + + Ezzel a konfigurációval bárki, aki + janos felhasználóként + vagy jozsef + felhasználóként (a kinit + parancson keresztül) hitelesítette magát + EXAMPLE.COM övezetbõl, ezen a + rendszeren (grunt) bejelentkezhet a + janos nevû + felhasználóként vagy + hozzáférhet az állományaihoz az + &man.rlogin.1;, &man.rsh.1; vagy &man.rcp.1; + használatával. + + Például janos most egy + másik Kerberost használó rendszerre + jelentkezik be: + + &prompt.user; kinit +MIT Project Athena (grunt.example.com) +Password: +&prompt.user; rlogin grunt +Last login: Mon May 1 21:14:47 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 + + Vagy jozsef jelentkezik be ugyanazon a + gépen janos + hozzáférésével (a + janos nevû + felhasználónak a fentebb bemutatt + .klogin állomány + található a könyvtárában + és a Kerberos üzemeltetéséért + felelõs személy létrehozott egy + jozsef nevû szereplõt egy null + példánnyal): + + &prompt.user; kinit +&prompt.user; rlogin grunt -l janos +MIT Project Athena (grunt.example.com) +Password: +Last login: Mon May 1 21:16:55 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 + + + + + + + + + Tillman + Hodgson + Írta: + + + + + Mark + Murray + Eredetileg írta: + + + + + <application>Kerberos5</application> + + A &os; 5.1 után következõ mindegyik &os; + kiadás már csak a + Kerberos5 támogatást + tartalmaz. Ezért bennük csak a + Kerberos5 található meg, + és a beállítása sok szempontból + hasonlít a KerberosIV + beállításához. A most + következõ információk csak és + kizárólag a &os; 5.0 kiadás után + következõkben található + Kerberos5 változatra + vonatkoznak. A KerberosIV + szolgáltatásait a felhasználók + csomagként, a security/krb4 porton keresztül + érhetik el. + + A Kerberos egy + hálózati kiegészítõ + rendszer/protokoll, amivel a felhasználók egy + biztonságos szerveren keresztül képesek magukat + azonosítani. A távoli bejelentkezések, + távoli másolások, a rendszer belüli + védett másolások valamint egyéb nagyon + kockázatos feladatok, szolgáltatások + biztonsága és felügyelete így + jelentõs mértékben + javítható. + + A Kerberos úgy + írható le, mint az személyazonosságok + ellenõrzésére feljogosított rendszer. + Vagy tekinthetjük egy megbízható + külsõ megfigyelõ által végzett + hitelesítési rendszernek is. A + Kerberos csak egyetlen funkciót + kínál fel — ez a felhasználók + biztonságos hitelesítése a + hálózaton. Viszont nem nyújt semmilyen + felhatalmazási (mit csinálhatnak a + felhasználók) vagy vizsgálati (mit + csináltak végül a felhasználók) + lehetõséget. Miután egy kliens és a + szerver a Kerberos + használatával azonosították + egymást, az egymás közt folyó + kommunikációjuk titkosításával + képesek megõrzi az átáramló + adatok sértetlenségét és + lehallgathatatlanságát. + + Ennek tükrében a + Kerberos használata csak + más olyan biztonsági módszerekkel + együttesen javasolt, amelyek felhatalmazást és + vizsgálati szolgáltatásokkal is + rendelkeznek. + + A most következõ utasítások arra + igyekeznek útmutatást adni, hogy miként + használjuk a &os;-vel együtt terjesztett + Kerberos verziót. Azonban a + teljes leírást csak a témához + tartozó man oldalak átolvasásával + együtt kapjuk meg. + + A Kerberos + telepítésének bemutatásához az + alábbi névtereket fogjuk használni: + + + + A DNS tartomány + (zóna) az example.org lesz. + + + + A Kerberos övezet az + EXAMPLE.ORG lesz. + + + + + Kérjük, hogy még abban az esetben is + valódi tartományneveket adjuk meg, amikor a + Kerberos használatát + csak a belsõ hálózaton tervezzük. Ezzel + elkerülhetjük az egyes + Kerberos övezetek + együttmûködése során + felmerülõ DNS + problémákat. + + + + A <application>Kerberos</application> + története + + + Kerberos5 + története + + + A Kerberost az + MIT hozta létre a + hálózati biztonsággal kapcsolatos + problémák egyik megoldásaként. A + Kerberos erõs + titkosítást használ, ezért a + kliensek képesek egy nem biztonságos + hálózaton is azonosítani magukat a szerver + felé (és fordítva). + + A Kerberos egyaránt utal + egy hálózati protokoll nevére és + azokra programokra, amelyek implementálják + (például Kerberos + telnet). Az 5 a protokoll jelenlegi verziója, amit az + RFC 1510 ír le. + + A protokollnak számos szabad változata + létezik, rengeteg típusú + operációs rendszerre. A Massachusettsi + Mûszaki Intézet (Massachusetts Institute of + Technology, MIT), ahol a + Kerberost eredetileg + kifejlesztették, napjainkban is folytatja a saját + Kerberos csomagjának + fejlesztését. Többnyire az Egyesült + Államokban használják + titkosításra, mivel régebben az amerikai + kiviteli korlátozások voltak rá + érvényesek. Az MIT + Kerberos változata + portként érhetõ el (security/krb5). A Heimdal + Kerberos egy másik 5 + verziójú implementáció, amit a + kiviteli korlátozások elkerülése + érdekében határozottan az Egyesült + Államokon kívül fejlesztettek ki + (ezért gyakran megtalálhatjuk a + különbözõ nem kereskedelmi &unix; + variánsokban). A Heimdal + Kerberos terjesztés + portként elérhetõ (security/heimdal) és kisebb + méretben a &os; alaptelepítésének is + része. + + Mivel ezzel az írással a legtöbb + felhasználót kívánjuk + segíteni, ezért a következõ + utasítások a &os; + telepítésében mellékelt Heimdal + terjesztés használatát + feltételezik. + + + + + A Heimdal kulcselosztójának + telepítése + + + Kerberos5 + kulcselosztó központ + + + A kulcselosztó központ (Key Distribution Center, + avagy KDC) az a centralizált + hitelesítési szolgáltatás, amit a + Kerberos nyújt — + lényegében az a + számítógép, amely + Kerberos-jegyeket bocsájt ki. + A KDC + megbízhatónak tekinthetõ a + Kerberos által + kialakított övezetben levõ többi + számítógép számára, + ezért védelme kiemelten fontos. + + Itt jegyeznénk meg, hogy habár a + Kerberos szerver futtatása + nagyon kevés számítógépes + erõforrást igényel, ennek ellenére + biztonsági szempontból egy külön + számítógépet javasoljunk a + kulcselosztó szerepének + betöltéséhez. + + Mielõtt nekifognánk a KDC + konfigurálásának, ellenõrizzük, + hogy az /etc/rc.conf tartalmazza a + KDC mûködéséhez + szükséges beállításokat (az + elérési utakat természetesen a saját + rendszerünk szerint állítsuk be): + + kerberos5_server_enable="YES" +kadmind5_server_enable="YES" + + A következõ lépésben vegyük + szemügyre a Kerberos + beállításait tartalmazó + /etc/krb5.conf + állományt: + + [libdefaults] + default_realm = EXAMPLE.ORG +[realms] + EXAMPLE.ORG = { + kdc = kerberos.example.org + admin_server = kerberos.example.org + } +[domain_realm] + .example.org = EXAMPLE.ORG + + Vegyük észre, hogy az itt szereplõ + /etc/krb5.conf állomány + szerint a kulcselosztónk teljes hálózati + neve kerberos.example.org. Ha a + kulcselosztónknak nem ez a neve, akkor a + zónákat leíró + állományba vegyünk még fel egy ilyen + CNAME (álnév) bejegyzést. + + + Ha egy nagyobb hálózatban vagyunk, ahol a + DNS szervert is megfelelõen + beállították, akkor az iménti + példa ennyire leszûkíthetõ: + + [libdefaults] + default_realm = EXAMPLE.ORG + + Itt már a következõ sorokat + hozzáadták example.org zónát + leíró állományhoz: + + _kerberos._udp IN SRV 01 00 88 kerberos.example.org. +_kerberos._tcp IN SRV 01 00 88 kerberos.example.org. +_kpasswd._udp IN SRV 01 00 464 kerberos.example.org. +_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. +_kerberos IN TXT EXAMPLE.ORG + + + A kliensek csak akkor lesznek képesek elérni + a Kerberos + szolgáltatásait, ha vagy + kötelezõ jelleggel megadunk egy + teljesen beállított + /etc/krb5.conf állományt, + vagy egy minimális /etc/krb5.conf + állományt és egy + helyesen beállított DNS szervert + használunk. + + + Ezután létrehozzuk a + Kerberos adatbázisát. + Ez az adatbázis tartalmazza az összes szereplõ + kulcsát a mesterkulcssal titkosítva. Erre a + jelszóra nem kell feltétlenül + emlékeznünk, mivel ez egy állományban + tárolódik + (/var/heimdal/m-key). A mesterkulcsot a + kstash parancs kiadásával + és egy jelszó megadásával tudjuk + létrehozni. + + Ahogy a mesterkulcs elkészült, a + kadmin parancs -l (mint + lokális, azaz helyi) + opciójával inicializálni tudjuk az + adatbázist. Ez az opció arra utasítja a + kadmin programot, hogy ne a + kadmind hálózati + szolgáltatást használja, hanem + közvetlenül az adatbázis + állományait módosítsa. Ezzel + oldható meg az adatbázis kezdeti + létrehozásának problémája. + Miután megkaptuk a kadmin + parancssorát, az övezetünkhöz + tartozó adatbázis + inicializálásához adjuk ki az + init parancsot. + + Végül, még mindig a + kadmin parancssorát használva, + az add paranccsal hozzuk létre az + elsõ szereplõnket. Egyelõre érjük be + az alapértelmezett értékekkel, a + modify paranccsal késõbb + úgyis meg tudjuk változtatni ezeket. + Hozzátesszük, hogy itt a ? + parancs segítségével bármikor + lekérhetjük az opciók + ismertetését. + + Példa egy adatbázis + létrehozására: + + &prompt.root; kstash +Master key: xxxxxxxx +Verifying password - Master key: xxxxxxxx + +&prompt.root; kadmin -l +kadmin> init EXAMPLE.ORG +Realm max ticket life [unlimited]: +kadmin> add tillman +Max ticket life [unlimited]: +Max renewable life [unlimited]: +Attributes []: +Password: xxxxxxxx +Verifying password - Password: xxxxxxxx + + Most már ideje elindítani a + KDC szolgáltatásait. Ezeket az + /etc/rc.d/kerberos start és + /etc/rc.d/kadmind start parancsok + kiadásával tudjuk felhozni. Megjegyezzük, + hogy most még semmilyen kerberizált démont + nem kell elindítanunk. Ellenben igyekezzünk + ellenõrizni a KDC + mûködõképességét azzal, hogy + KDC parancssorából + kérünk egy jegyet a frissen hozzáadott + szereplõnknek (felhasználónknak) és + kilistázzuk: + + &prompt.user; kinit tillman +tillman@EXAMPLE.ORG's Password: + +&prompt.user; klist +Credentials cache: FILE:/tmp/krb5cc_500 + Principal: tillman@EXAMPLE.ORG + + Issued Expires Principal +Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG + + Miután végeztünk, nyugodtan + törölhetjük a jegyet: + + &prompt.user; k5destroy + + + + + Szerverek kerberizálása a Heimdal + használatával + + + Kerberos5 + szolgáltatások + kerberizálása + + + Ehhez elõször is szükségünk lesz + a Kerberos + konfigurációs állományának, + az /etc/krb5.conf másolatára. + Ezt úgy tudjuk megtenni, ha egyszerûen + átmásoljuk a kulcselosztóról az + egyik kliensre valamilyen megbízható módon + (vagy az &man.scp.1; programhoz hasonló + hálózati segédprogramok, vagy + például fizikailag egy floppy lemez + használatával). + + Ezután szükségünk lesz egy + /etc/krb5.keytab nevû + állományra. Ez az alapvetõ + különbség a kerberizált démonokat + felkínáló szerver és egy + munkaállomás közt — a szervernek + rendelkeznie kell egy keytab + állománnyal. Ez az állomány + tartalmazza a szerver kulcsát, amivel így a + kulcselosztóval kölcsönösen + azonosítani tudják egymást. Ezt a + szerverre biztonságosan kell eljuttatnunk, mivel ennek + napvilágra kerülésével a szerver + védelme komoly veszélybe kerül. + Tehát, ha egy titkosítás + nélküli csatornán, például + FTP-n keresztül visszük át, + akkor kifejezetten rossz ötlet. + + A szerverre általában a + kadmin program használatával + érdemes átvinni a keytab + állományt. Ez azért is hasznos, mert ehhez + a kadmin segítségével + létre kell hoznunk a befogadó szereplõt is (a + kulcselosztó a krb5.keytab + állomány végén). + + Vegyük észre, hogy már kaptunk egy jegyet + és ezzel a jeggyel jogosultaknak kell lennünk a + kadmind.acl állomány + kadmin felület + használatára. A hozzáférést + vezérlõ listák (ACL-ek) + tervezésével kapcsolatban olvassuk el Heimdal info + oldalán található Remote + administration címû szakaszt (info + heimdal). Amennyiben nem kívánjuk + engedélyezni a kadmin távoli + elérését, egyszerûen csak + csatlakozzunk valamilyen biztonságos módon (helyi + konzolon, &man.ssh.1; vagy egy kerberizált &man.telnet.1; + használatával) a kulcselosztóhoz, és + a kadmin -l paranccsal végezzük + el helyben az adminisztrációt. + + Miután telepítettük az + /etc/krb5.conf állományt, a + Kerberos szerverrõl el tudjuk + érni a kadmin felületét. + Az add --random-key paranccsal most + már hozzáadhatjuk a szerver befogadó + szereplõjét és az ext + paranccsal ki tudjuk vonni a szerver befogadó + szereplõjét a saját keytab + állományából. + Például: + + &prompt.root; kadmin +kadmin> add --random-key host/myserver.example.org +Max ticket life [unlimited]: +Max renewable life [unlimited]: +Attributes []: +kadmin> ext host/myserver.example.org +kadmin> exit + + Itt jegyeznénk meg, hogy az ext + parancs (az extract rövdítése) + a kivont kulcsot alapértelmezés szerint az + /etc/krb5.keytab állományba + menti ki. + + Ha a kulcselosztón nem fut a + kadmind szolgáltatás + (valószínûleg biztonsági + okokból) és ezért távolról + nem tudjuk elérni a kadmin + felületét, akkor így tudjuk + közvetlenül hozzáadni a befogadó + szereplõt (host/myserver.EXAMPLE.ORG), + majd kivonatolni azt egy ideiglenes állományba + (elkerülve az /etc/krb5.keytab + felülírását): + + &prompt.root; kadmin +kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org +kadmin> exit + + Ezután valamilyen biztonságos eszközzel + (például scp vagy floppy + használatával) át tudjuk másolni + keytab állományt a szerverre. A + kulcselosztón levõ keytab + felülírását elkerülendõ, ne + feledkezzünk el egy megfelelõ név + megadásáról sem. + + Ezen a ponton már a szerver képes felvenni a + kapcsolatot a kulcselosztóval (a + krb5.conf állomány miatt) + és bizonyítani a + személyazonosságát (a + krb5.keytab állomány miatt). + Így tehát készen állunk a + szolgáltatások + kerberizálására. Ebben a + példában most a telnet + szolgáltatást vesszük célba + úgy, hogy elõször az + /etc/inetd.conf állományba + berakjuk az alábbi sort, majd újraindítjuk + az &man.inetd.8; szolgáltatást az + /etc/rc.d/inetd restart paranccsal: + + telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user + + Itt az a legfontosabb, hogy az -a (mint + authentication, azaz hitelesítés) + paramétert a user + beállítással adjuk meg. A &man.telnetd.8; + man oldalán olvashatunk ennek pontos + részleteirõl. + + + + + Kliensek kerberizálása a Heimdal + használatával + + + Kerberos5 + kliensek beállítása + + + A kliensek beállítása szinte majdnem + gyerekjáték. A + Kerberos + beállításához egyedül az + /etc/krb5.conf állományra + lesz szükségünk. Valamilyen biztonságos + eszközzel másoljuk át a + kulcselosztóról a kliensre. + + Úgy tudjuk letesztelni klienst, ha + megpróbáljuk róla kiadni a + kinit, klist és + kdestroy parancsokat a fentebb + létrehozott szereplõ jegyének + megszerzéséhez, + lekérdezéséhez és + megsemmisítéséhez. A + Kerberos használatával + megpróbálkozhatunk csatlakozni valamelyik + kerberizált szerverre is, ha viszont ez nem + mûködik még egy jegy megszerzése + után sem, akkor a gond többnyire a szerverrel van, + nem pedig a klienssel vagy a kulcselosztóval. + + Amikor egy telnet vagy egy hozzá + hasonló alkalmazást tesztelünk, egy + csomaglehallgató (mint amilyen például a + &man.tcpdump.1;) elindításával + gyõzödjünk meg róla, hogy a jelszavak + ilyenkor titkosítva mennek át. + Próbáljuk meg titkosítani a teljes + kommunikációt a telnet + paraméterével + (hasonlóan az ssh parancshoz). + + Alapból még számos más + kiegészítõ + Kerberos kliensalkalmazás is + telepítõdik. Ezeken érezhetõ meg + valójában az alaprendszerhez tartozó + Heimdal változat minimalitása: + ebben a telnet az egyedüli + kerberizált szolgáltatás. + + A Heimdal port igyekszik pótolni a + hiányzó klienseket a kerberizált + ftp, rsh, + rcp, rlogin és + néhány kevéséb ismert program + telepítésével. Az MIT + változat portja szintén tartalmazza a + Kerberos kliensek teljes + kelléktárát. + + + + + A felhasználók konfigurációs + állományai: a <filename>.k5login</filename> + és a <filename>.k5users</filename> + + .k5login + .k5users + + Általában az övezetben + található felhasználók + mindegyikéhez tartozik egy + Kerberos-szereplõ (mint + például a + tillman@EXAMPLE.ORG), ami a + felhasználó helyi + hozzáférésére mutat (mint + például a tillman nevû + helyi hozzáférés). A + telnet és a hozzá + hasonló kliensalkalmazások általában + nem igényelnek felhasználót vagy + szereplõt. + + Elõfordulhat azonban, hogy valaki olyan szeretné + elérni egy helyi felhasználó + hozzáférését, aki nem rendelkezik a + hozzátartozó + Kerberos-szereplõvel. + Például a tillman@EXAMPLE.ORG + nevû felhasználó el szeretné + érni a helyi számítógépen + levõ webdevelopers + hozzáférést. Más szereplõk is + elérhetik a helyi + hozzáféréseket. + + A probléma megoldásához a + felhasználók könyvtárában + található .k5login és + a .k5users állományok + használhatóak a .host + és .rhosts állományok + kombinációjához hasonlóan. + Például a .k5login így + néz ki: + + tillman@example.org +jdoe@example.org + + Ezt a webdevelopers nevû helyi + felhasználó könyvtárában kell + elhelyeznünk, így a felsorolt szereplõt + megosztott jelszó használata nélkül + képesek elérni a + hozzáférést. + + Az említett parancsok man oldalának + elolvasása ajánlott. Megjegyezzük, hogy a + ksu man oldal foglalkozik a + .k5users állománnyal. + + + + + Tippek, trükkök a + <application>Kerberos</application> + használatáról és + hibaelhárítás + + + Kerberos5 + hibaelhárítás + + + + + Akár a Kerberos + Heimdal vagy az MIT + változatát használjuk, ne + felejtsük úgy beállítani a + PATH környezeti változóban + felsorolt elérési utakat, hogy a + kliensalkalmazások kerberizált + változatai a rendszerben használatos + verziók elé kerüljenek. + + + + Az övezetben minden + számítógép órája + ugyanúgy jár? Ha nem, akkor a + hitelesítés csõdöt mondhat. A ból tudhatjuk meg hogyan + szinkronizáljunk órákat az + NTP + segítségével. + + + + Az MIT és a Heimdal + verziók a kadmin + kivételével remekül megvannak + egymással, mivel az általa használt + protokollt még nem + szabványosították. + + + + Ha megváltoztatjuk a gépünk + hálózati nevét, akkor a ugyanígy + a host/ szereplõnket is meg kell + változtatni és frissíteni a keytab + állományunkat. Ez olyan speciális + keytab bejegyzésekre is vonatkozik, mint + például az Apache www/mod_auth_kerb + moduljához tartozó www/ + szereplõ. + + + + Az övezetünkben levõ összes + számítógépnek (mind a két + irányba) feloldható DNS + névvel kell rendelkeznie (vagy legalább egy + /etc/hosts állománnyal). + Erre a CNAME rekord megfelelõ, de az A és PTR + rekordoknak mindenképpen rendben kell lenniük. + Az ilyenkor keletkezõ hibaüzenet nem éppen + fogja meg a lényeget: Kerberos5 refuses + authentication because Read req failed: Key table entry not + found. + + + + A kulcselosztó számára + kliensként viselkedõ bizonyos + operációs rendszerek nem + állítják be megfelelõen a + ksu engedélyeit, ezért nem + lehet root jogokkal futtatni. + Ezért a ksu parancs nem fog + mûködni, ami alapvetõen nem egy rossz + ötlet, de idegesítõ. Ez nem a + kulcselosztó hibája. + + + + Ha a Kerberos + MIT változatát + használjuk és a meg akarjuk + hosszabbítani a szereplõknek kiadott jegyek + élettartamát az alapértelmezett + tíz óráról, akkor a + kadmin felületén a + modify_principal paranccsal tudjuk + megváltoztatni mind a kérdéses + szereplõ, mind pedig a krbtgt + jegyeinek élettartamának maximumát. + Ezt követõen a szereplõ a + kinit + opciójával tud egy nagyobb + élettartammal rendelkezõ jegyet + kérni. + + + + + Amikor egy kulcselosztóval kapcsolatos + hibát próbálunk felderíteni a + csomagok lehallgatásával, és a + munkaállomásunkról kiadjuk a + kinit parancsot, akkor arra + lehetünk figyelmesek, hogy a TGT + már egybõl a kinit + indításakor átküldésre + kerül — még mielõtt + egyáltalán megadtuk volna a jelszavunkat! + Ezt azzal lehet magyarázni, hogy a + Kerberos szerver + bármilyen hitelesítetlen + kérésre elküld egy + TGT-t (Jegyadó jegy, azaz Ticket + Granting Ticket). Azonban mindegyik ilyen + TGT a felhasználó + jelszavából származtatott kulccsal + titkosítódik. Ezért amit a + felhasználó jelszóként megad, + nem megy el a kulcselosztónak, hanem vele a + kinit a már megkapott + TGT-t kódolja ki. Amennyiben a + visszakódolás egy érvényes + idõbélyeggel rendelkezõ, + használható jegyet eredményez, akkor + a felhasználó érvényes + Kerberos + hitelesítést szerez. Ez a + hitelesítés magában foglal egy + kulcsot, amellyel a késõbbiekben a + Kerberos szerverekkel tudjuk + felvenni biztonságos módon a kapcsolatot, + és rajta kívül egy újabb + jegyadó jegyet, amelyet a + Kerberos szerver a saját + kulcsával titkosított. A + titkosítás második vonala a + felhasználó számára + ismeretlen, de segítségével a + Kerberos szerer képes + ellenõrizni az egyes jegyadó jegyek + hitelességét. + + + + + Ha a jegyeket hosszabb (például egyhetes) + élettartammal akarjuk használni és a + jegyeket tároló géphez + OpenSSH + segítségével csatlakozunk, akkor + mindenképpen ellenõrizzük, hogy az + sshd_config állományban a + Kerberos + + beállításának + értéke no, + máskülönben a kijelentkezés + után automatikusan törlõdnek a + jegyeink. + + + + Ne hagyjuk figyelmen kívül azt sem, hogy a + befogadó szereplõk is rendelkezhetnek nagyobb + élettartamú jegyekkel. Ha a + felhasználónkhoz tartozó szereplõ + jegye például egy hét alatt + évül el, de a + számítógép, amire + bejelentkezük, csupán kilenc óráig + tartja életben ezeket, akkor a jegyeket + tároló gyorsítótárunkban + hamarabb elévül a hozzátartozó + jegy, ami miatt pedig hibák keletkeznek. + + + + Ha a rossz jelszavak használata ellen + beállítjuk a krb5.dic + állományt (errõl a + kadmind man oldalán + találunk egy rövid leírást), akkor + nem szabad elfelejteni, hogy ez csak olyan szereplõkre + vonatkozik, akiknek a jelszavára is + állítottunk be szabályozásokat. + A krb5.dict állományok + felépítési nem bonyolult: minden sorban + egyetlen karakterlánc szerepel. Érdemes lehet + például létrehozni ezen a néven + egy szimbolikus linket a + /usr/share/dict/words + állományra. + + + + + + + Eltérések az <acronym>MIT</acronym> + porttól + + A Heimdal és az MIT + változatok közti egyik legnagyobb + eltérés a kadmin programmal + kapcsolatban van, ami eltérõ (de + egyébként ekivalens) parancskészlettel + rendelkezik és más protokollt használ. + Ennek komoly következménye, hogy ha az + MIT-féle kulcselosztót + használjuk, akkor azt a Heimdal kadmin + felületével nem tudjuk távolról + adminisztrálni (és vica versa). + + A kliensalkalmazások paraméterezése is + eltérhet ugyanazon feladatoknál. Ezért + velük kapcsolatban az MIT + Kerberos honlapja () a + mérvadó. Vigyázzunk az + elérési utakkal: az MIT port + magát alapértelmezés szerint a + /usr/local könyvtárba + telepíti, ezért az általuk kiváltani + kívánt normális + rendszerprogramokat esetleg hamarabb találja meg a + rendszer, ha nem jól állítottuk be a + PATH környezeti + változónkat. + + + Ha nem értjük, hogy miért + mûködnek olyan furcsán a + telnetd és a + klogind által kezelt + bejelentkezések, akkor olvassuk el a &os; security/krb5 portjával + települõ MIT változat + /usr/local/share/doc/krb5/README.FreeBSD + állományt (angolul). Az a legfontosabb, hogy a + incorrect permissions on cache file + hiba eltüntetéséhez a + login.krb5 binárist kell + használnunk, így a továbbított + jogosultságoknak megfelelõen át tudja + állítani a tulajdonost. + + + Az rc.conf állományt is + módosítani kell a következõ + beállítás + kialakításához: + + kerberos5_server="/usr/local/sbin/krb5kdc" +kadmind5_server="/usr/local/sbin/kadmind" +kerberos5_server_enable="YES" +kadmind5_server_enable="YES" + + Erre azért van szükség, mert a + Kerberos MIT + változata a /usr/local könyvtáron + belülre telepíti fel a hozzátartozó + alkalmazásokat. + + + + + A <application>Kerberos</application>ban talált + korlátozások enyhítése + + + Kerberos5 + hiányosságok és + korlátozások + + + + A <application>Kerberos</application> a <quote>mindent + vagy semmit</quote> megközelítést + követi + + A hálózaton minden + szolgáltatást módosítanunk kell + ahhoz, hogy együtt tudjanak mûködni a + Kerberosszal (vagy valamilyen + más módon védenünk kell ezeket a + támadások ellen), különben a + felhasználók jogait el lehet lopni vagy + újra fel lehet használni. Erre jó + példa lehet az összes távoli parancssoros + elérés (például az + rsh valamint a telnet) + kerberizálása, de a jelszavakat + titkosítatlanul küldõ POP3 + levelezõ szerver kihagyása. + + + + + A <application>Kerberos</application> az + egyfelhasználós munkaállomások + számára készült + + Többfelhasználós környezetben a + Kerberos már nem annyira + biztonságos. Ez azért mondható el, mert + a jegyeket a mindenki által olvasható + /tmp könyvtárban + tárolja. Ha az adott felhasználó + számítógépét egyszerre + több emberrel is megosztja (tehát + többfelhasználós), akkor a + felhasználó jegyeit egy másik + felhasználó bármikor lemásolhatja + (ellophatja). + + Ezt a opció után + megadott állománynévvel vagy + (inkább) a KRB5CCNAME környezeti + változó megfelelõ + beállításával tudjuk + áthidalni, habár ezt ritkán teszik is + meg. Ha a felhasználók + könyvtárában és a megfelelõ + engedélyekkel tároljuk ezeket a jegyeket, akkor + némileg visszaszoríthatjuk a probléma + kockázatát. + + + + + A kulcselosztó a rendszer legsebezhetõbb + pontja + + A rendszer kialakításából + fakadóan a kulcselosztónak legalább + annyira megbízhatónak kell lennie, mint a rajta + levõ központi jelszóadatbázisnak. A + kulcselosztón semmilyen más + szolgáltatás nem futhat és fizikailag is + biztonságba kell helyezni. A kockázat nagy, + mivel a Kerberos az összes + jelszót ugyanazzal a kulcssal (a + mesterkulcssal) titkosítja, amelyet a + kulcselosztó egy állományban + tárol. + + Széljegyzet gyanánt + hozzátesszük, hogy a mesterkulcs elvesztése + nem annyira rossz, mint azt elsõ gondolnánk. A + mesterkulcsot csupán a + véletlenszám-generátor + inicializálásához + használják a Kerberos + adatbázisának titkosításakor. + Amíg a kulcselosztóhoz nem tudnak + illetéktelenek hozzáférni, addig nem + tudnak sokat kezdeni a mesterkulccsal. + + Mellesleg ha a kulcselosztó nem + elérhetõ (talán pontosan egy DoS + támadás vagy éppen hálózati + problémák miatt), akkor a + hitelesítés nem végezhetõ el, mivel + így a hozzá szükséges + hálózati szolgáltatások sem + használhatóak. Ez remek eszköz egy DoS + támadáshoz. Ezen több (egy központi + és egy vagy több alárendelt) + kulcselosztó telepítésével, + valamint a másodlagos vagy tartalékként + használt hitelesítési eszközök + (a PAM erre tökéletes) + körültekintõ + megvalósításával + enyhíthetünk. + + + + + A <application>Kerberos</application> + hiányosságai + + A Kerberos révén + a felhasználók, + számítógépek és + szolgáltatások tudják egymást + hitelesíteni. Ellenben semmilyen eszközt nem + kínál fel a kulcselosztó + hitelességének ellenõrzésére. + Így tehát (például) egy + eltérített kinit képes + ellopni az összes felhasználói nevet + és jelszót. Az ilyen incidensek + elkerülésére a security/tripwire és a + hozzá hasonló segédprogramok + segítségével lehet megõrizni a + rendszer sértelenségét. + + + + + + Erõforrások és további + információk + + + Kerberos5 + külsõ források + + + + + + A Kerberos GYIK + (angolul) + + + + Egy + hitelesítési rendszer kidolgozása: + párbeszéd négy színben + (angolul) + + + + RFC + 1510: A Kerberos + hálózati hitelesítési + szolgáltatás (V5) (angolul) + + + + Az + MIT Kerberos + holnapja (angolul) + + + + A Heimdal + Kerberos honlapja + (angolul) + + + + + + + + + + + Tom + Rhodes + Írta: + + + + + OpenSSL + + + biztonság + OpenSSL + + + A &os;-hez adott OpenSSL az egyik + olyan tényezõ, amit a legtöbb + felhasználó figyelmen kívül hagy. Az + OpenSSL egy titkosítási + réteget nyújt a hagyományos + kommunikációs csatorna felett, így rengeteg + hálózati alkalmazásba és + szolgáltatásba bele lehet szõni. + + Az OpenSSL + felhasználható többek közt a levelezõ + kliensek titkosított hitelesítésére, + hitelkártyás fizetések weben keresztüli + lebonyolítására alkalmas, és + még sok minden másra. Sok port, köztük a + www/apache13-ssl és a + mail/sylpheed-claws is + felajánlja az OpenSSL + felhasználását. + + + A legtöbb esetben a Portgyûjtemény + megpróbálja lefordítani a security/openssl portot, hacsak a + WITH_OPENSSL_BASE változót + határozottan a yes értékre + nem állítjuk. + + + A &os;-hez mellékelt OpenSSL + ismeri a Secure Sockets Layer v2/v3 (SSLv2/SSLv3) és + Transport Layer Security v1 (TLSv1) + hálózatbiztonsági protokollokat, és + általános célú + titkosítási könyvtárként is + alkalmazható. + + + Noha az OpenSSL ismeri az + IDEA algoritmusát is, az Egyesült + Államokban érvényben levõ szabadalmak + miatt alapértelmezés szerint nem + engedélyezett. A használatához el kell + olvasni a hozzátartozó licencet, és ha + elfogadjuk a benne foglaltakat, akkor állítsuk be + a MAKE_IDEA változót a + make.conf állományban. + + + Az OpenSSL-t leginkább a + szoftverek tanúsítványainak + elkészítéséhez + használják. Ilyen + tanúsítvánnyokkal lehet szavatolni, hogy az + érte felelõs cég vagy egyén + valóban megbízható és nem + szélhámos. Amennyiben a kérdéses + tanúsítványt nem vizsgálta be + valamelyik tanúsítványok + hitelesítésével foglalkozó + hatóság (Certificate Authority, vagy CA), + akkor errõl általában kap egy + figyelmeztetést a felhasználó. A + tanúsítványokat hitelesítõ + cégek, mint például a VeriSign, + írják alá ezeket a + tanúsítványokat és ezzel + érvényesítik az egyes cégek vagy + egyének megbízhatóságát. Ez + ugyan pénzbe kerül, de használatuk + egyáltalán nem is kötelezõ. Azonban az + átlagosnál paranoidabb felhasználók + számára megnyugvást jelenthet. + + + Tanúsítványok + elõállítása + + + OpenSSL + tanúsítványok + elõállítása + + + A tanúsítványok + létrehozására a következõ parancs + áll rendelkezésre: + + &prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem +Generating a 1024 bit RSA private key +................++++++ +.......................................++++++ +writing new private key to 'cert.pem' +----- +You are about to be asked to enter information that will be incorporated +into your certificate request. +What you are about to enter is what is called a Distinguished Name or a DN. +There are quite a few fields but you can leave some blank +For some fields there will be a default value, +If you enter enter '.', the field will be left blank. +----- +Country Name (2 letter code) [AU]:országnév (kétbetûs kóddal) +State or Province Name (full name) [Some-State]:állam vagy tartomány teljes neve +Locality Name (eg, city) []:település neve +Organization Name (eg, company) [Internet Widgits Pty Ltd]:szervezet neve +Organizational Unit Name (eg, section) []:szervezeti egység neve +Common Name (eg, YOUR name) []:általános név (hálózati név!) +Email Address []:e-mail cím + +Please enter the following 'extra' attributes +to be sent with your certificate request +A challenge password []:VALAMILYEN JELSZÓ +An optional company name []:egy másik szervezet neve + + Az adatok bekérésére elõtt + megjelenõ figyelmeztetõ üzenet + fordítása: + + +Itt a tanúsítvány igénylésével kapcsolatos információkat kell +megadnunk. Itt egy ún. ismertetõnevet (Distinguished +Name, DN) kell megadnunk. Ezen kívül van még néhány más mezõ is, de +ezeket akár üresen is hagyhatjuk. Néhány mezõnek van alapértelmezett +értéke, de ha oda egy pontot írunk, akkor kitöröljük. + + + A Common Name mezõnél + ellenõrzési okokból egy + hálózati nevet, tehát a szerverünk + nevét kell megadnunk. Ha nem így járunk + el, akkor lényegében egy használhatatlan + tanúsítványt kapunk. További + opciók is elérhetõek, mint + például a lejárati idõ (expire time) + megadása, a titkosítási algoritmus + megváltoztatása stb. Ezek teljes listája + megtalálható az &man.openssl.1; man + oldalon. + + Az elõbbi parancs kiadása után két + állománynak kell létrejönnie az + aktuális könyvtárban. A + tanúsítványkérést, vagyis az + req.pem állományt kell + eljuttatnunk a tanúsítványok + hitelesítésével foglakozó szervhez, + aki majd érvényesíti az imént + megadott adatainkat. A második, + cert.pem nevû állomány a + tanúsítványhoz tartozó privát + kulcs, amit semmilyen körülmények + között sem szabad kiadnunk. Ha ez mások + kezébe kerül, akkor el tudnak játszani + bennünket (vagy a szerverünket). + + Amikor a hitelesítõ szerv + aláírása nem feltétlenül + szükséges, akkor készíthetünk egy + saját magunk által aláírt + tanúsítványt is. Ehhez elõször + is generálnunk kell egy + RSA-kulcsot: + + &prompt.root; openssl dsaparam -rand -genkey -out saját_RSA.kulcs 1024 + + Most pedig készítsünk el a + hitelesítõ szerv kulcsát is: + + &prompt.root; openssl gendsa -des3 -out hitelesítõ.kulcs saját_RSA.kulcs + + Ezzel a kulccsal most gyártsunk le egy + tanúsítványt: + + &prompt.root; openssl req -new -x509 -days 365 -key hitelesítõ.kulcs -out új.tanúsítvány + + Ekkor két új állomány keletkezik + a könyvtárunkban: a hitelesítõ szerv + aláírása, a + hitelesítõ.kulcs + és maga a tanúsítvány, az + új.tanúsítvány + állomány. Ezeket tegyük az /etc könyvtáron + belül egy olyan könyvtárba, amelyet csak a + root tud olvasni. A + chmod paranccsal állítsunk be + rá 0700-as kódú engedélyeket. + + + + + Példa a tanúsítványok + használatára + + Mire is jók ezek az állományok? + Például kitûnõen alkalmazhatóak a + Sendmail levelezõ szerverhez + beérkezõ kapcsolatot + titkosítására. Így + lényegében felszámoljuk minden olyan + felhasználó titkosítatlan módon + zajló hitelesítését, aki a helyi + levelezõ szerveren keresztül küldi a + leveleit. + + + Ez általában nem a legjobb megoldás, + mivel egyes levelezõ kliensek hibát jeleneznek a + felhasználónak, ha nem rendelkezik a + tanúsítvánnyal. A + tanúsítványok + telepítésével kapcsolatban olvassuk el a + szoftverhez adott leírást. + + + A helyi .mc állományba + ezeket a sorokat kell beletenni: + + dnl SSL Options +define(`confCACERT_PATH',`/etc/certs')dnl +define(`confCACERT',`/etc/certs/új.tanúsítvány')dnl +define(`confSERVER_CERT',`/etc/certs/új.tanúsítvány')dnl +define(`confSERVER_KEY',`/etc/certs/hitelesítõ.kulcs')dnl +define(`confTLS_SRV_OPTIONS', `V')dnl + + Itt a /etc/certs/ az + a könyvtár, amit tanúsítványok + és kulcsok helyi tárolására + használunk. Végezetül még újra + kell generálnunk a helyi .cf + állományokat. Ezt a /etc/mail könyvtárban a + make install parancs + kiadásával könnyen elvégezhetjük. + Miután ez megtörtént, akkor + Sendmailhoz tartozó + démont a make + restart + paraméterével indíthatjuk + újra. + + Ha minden jól ment, akkor a + /var/log/maillog állományban + nem találunk egyetlen hibaüzenetet sem, és a + Sendmail is megjelenik a futó + programok között. + + A &man.telnet.1; segédprogrammal így + probálhatjuk ki a levelezõ szervert: + + &prompt.root; telnet example.com 25 +Trying 192.0.34.166... +Connected to example.com. +Escape character is '^]'. +220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) +ehlo example.com +250-example.com Hello example.com [192.0.34.166], pleased to meet you +250-ENHANCEDSTATUSCODES +250-PIPELINING +250-8BITMIME +250-SIZE +250-DSN +250-ETRN +250-AUTH LOGIN PLAIN +250-STARTTLS +250-DELIVERBY +250 HELP +quit +221 2.0.0 example.com closing connection +Connection closed by foreign host. + + Ha itt megjelenik a STARTTLS sor, akkor + mindent sikerült beállítanunk. + + + + + + + + + Nik + Clayton + +
nik@FreeBSD.org
+
+ Írta: +
+
+
+ + IPsec + + VPN IPsec felett + + VPN létrehozása &os; + átjárók használatával + két olyan hálózat között, amelyeket + egymástól az internet választ el. + + + + + + Hiten M. + Pandya + +
hmp@FreeBSD.org
+
+ Írta: +
+
+
+ + Az IPsec bemutatása + + Ebben a szakaszban az IPsec + beállításának folyamatát + vázoljuk fel, és &os; valamint + µsoft.windows; 2000/XP + számítógépekbõl + álló környezetben alkalmazzuk egy + biztonságos kommunikációs csatorna + kiépítéséhez. Az IPsec + beállításához elengedhetetlen, hogy + tisztában legyünk egy saját rendszermag + fordításának alapjaival (lásd ). + + Az IPsec egy olyan protokoll, amely az + Internet Protocol (IP) rétegére épül. + Segítségével két vagy több + számítógép képes + biztonságos módon tartani egymással a + kapcsolatot (innen ered a neve). A &os; IPsec + hálózati protokollkészlete a + KAME + implementációjára épül, mely + egyaránt támogatja az IPv4 és IPv6 + protokollcsaládokat. + + + A &os;-ben Fast IPsec néven + találunk egy hardvergyorsítással + támogatott IPsec protokollkészletet is, + amelyet még az OpenBSD-bõl vettek át. Ez + (amikor lehetséges) a &man.crypto.4; alrendszeren + keresztül egy kriptográfiai célhardver + bevonásával igyekszik növelni az IPsec + teljesítményét. Ez az alrendszer + még új, és még nem is ismeri az + IPsec KAME változata által + felkínált összes lehetõséget. + A hardvergyorsítással kisegített IPsec + engedélyezéséhez a következõ + opciót kell hozzátennünk a rendszermag + beállításait tartalmazó + állományhoz: + + + a rendszermag + beállításai + FAST_IPSEC + + + +options FAST_IPSEC # az új IPsec (nem megy az IPSEC-kel együtt) + + + Vegyük észre, hogy jelen pillanatban a + Fast IPsec alrendszer nem + használható az IPsec KAME változata + helyett. Ennek részleteirõl a &man.fast.ipsec.4; + man oldalon tájékozódhatunk. + + + + A rendszermag beállításai + között az + opcióra is szükségünk lesz ahhoz, hogy + a tûzfalak megfelelõ módon követni + tudják a &man.gif.4; tunnelek + állapotát. + + +options IPSEC_FILTERGIF # a tunnelekbõl érkezõ IPsec csomagok szûrése + + + + + IPsec + ESP + + + + IPsec + AH + + + Az IPsec két alprotokollból tevõdik + össze: + + + + A hasznos adat biztonságos + becsomagolása (Encapsulated Security Payload, + ESP) során egy szimmetrikus + kriptográfiai algoritmussal (mint + például Blowfish, 3DES) titkosítjuk az + IP-csomagok tartalmát, ezáltal + megvédjük ezeket az + illetéktelenektõl. + + + A Hitelesítési fejléc + (Authentication Header, AH) + használatával megakadályozzuk, hogy az + illetéktelenek meghamisítsák az IP + csomagok fejlécét. Ezt úgy + érjük el, hogy kiszámolunk egy + kriptográfiai ellenõrzõ összeget + és az IP-csomagok fejlécének + mezõire egy biztonságos függvénnyel + generálunk valamilyen ujjlenyomatot. Az ez + után következõ + kiegészítõ fejléc tartalmazza ezt + az ujjlenyomatot, amellyel a csomag + hitelesíthetõ. + + + + Az ESP és az AH + az alkalmazástól függõen + használható együtt vagy + külön-külön. + + VPN + + + virtuális + magánhálózat + VPN + + + Az IPsec akár közvetlenül is + használható két + számítógép forgalmának + titkosítására (ezt + Szállítási módnak + (Transport Mode) nevezik), vagy két + alhálózat között + építhetünk ki vele virtuális + tunneleket, ami remekül alkalmas két + vállalati hálózat + kommunikációjának + bebiztosítására (ez a Tunnel + mód (Tunnel Mode)). Ez utóbbit + egyszerûen csak Virtuális + magánhálózatként (Virtual Private + Network, VPN) emlegetik. A &os; IPsec + alrendszerérõl az &man.ipsec.4; man oldalon + találhatunk további + információkat. + + A rendszermag IPsec támogatásának + aktiválásához a következõ + paramétereket kell beletennünk a + konfigurációs állományba: + + + a rendszermag + beállításai + IPSEC + + + + a rendszermag + beállításai + IPSEC_ESP + + + +options IPSEC # IP biztonság +options IPSEC_ESP # IP biztonság (titkosítás, az IPSEC-kel együtt) + + + + a rendszermag + beállításai + IPSEC_DEBUG + + + Ha szükségünk van a IPsec + nyomkövetésére, a következõ + beállítást is + hozzátehetjük: + + +options IPSEC_DEBUG # az IP biztonság nyomkövetése + + +
+ + + A probléma + + Semmilyen szabvány nem fogalmazza meg mi is + számít VPN-nek. A virtuális + magánhálózatok tucatnyi + különbözõ technológiával + valósíthatóak meg, de mindegyiknek megvan a + maga erõssége és gyengesége. Ebben a + szakaszban körvonalazunk egy ilyen helyzetet, valamint a + benne felépített VPN + megvalósításához alkalmazott + stratégiákat. + + + + + A forgatókönyv: két, interneten + keresztül összekötött hálózat, + melyeket egyként akarunk használni + + + VPN + létrehozása + + + Elõfeltételezéseink a + következõek: + + + + legalább két hálózatunk + van; + + + magán belül mind a két + hálózat IP-t használ; + + + mind a két hálózat egy &os; + átjárón keresztül csatlakozik az + internethez; + + + a hálózatok átjárói + legalább egy publikus IP-címmel + rendelkeznek; + + + a hálózatok belsõ címei + lehetnek publikus vagy privát IP-címek, nem + számít. Az átjárón + igény szerint végezhetünk + címfordítást (NAT) is; + + + a két hálózat belsõ + IP-címei nem fedik át + egymást. Habár elméletben + lehetséges a VPN és NAT + technológiák elegyítése, ezt a + típusú felállást itt most nem + preferáljuk. + + + + Ha belül mind a két hálózat + ugyanolyan tartományú IP-címeket + használ (például 192.168.1.x), akkor az egyiküket + át kell számozni. + + A hálózat felépítése + tehát valahogy így nézhet ki: + + + + + + + + 1. hálózat [ Belsõ gépek ] Privát hálózat: 192.168.1.2-254 + [ Win9x/NT/2K ] + [ UNIX ] + | + | + .---[fxp1]---. Privát IP: 192.168.1.1 + | FreeBSD | + `---[fxp0]---' Publikus IP: A.B.C.D + | + | + -=-=- Internet -=-=- + | + | + .---[fxp0]---. Publikus IP: W.X.Y.Z + | FreeBSD | + `---[fxp1]---' Privát IP: 192.168.2.1 + | + | +2. hálózat [ Belsõ gépek ] + [ Win9x/NT/2K ] Privát hálózat: 192.168.2.2-254 + [ UNIX ] + + + + Figyeljük meg a két publikus IP-címet. A + leírás további részében + betûkkel hivatkozunk rájuk, tehát ahol ezek + szerepelnek, oda kell behelyettesíteni a saját + publikus címeinket. A két + átjáró címében .1 az + utolsó szám, és hogy két + hálózat privát IP-címei + eltérnek (192.168.1.x + és 192.168.2.x). A + privát hálózatokon belül minden + számítógépet úgy + állítottunk be, hogy alapértelmezés + szerint a .1 számú + gépet használják + átjárónak. + + Hálózati szemszögbõl ez azért + fontos, mert így az egyes hálózatok + úgy látják egymás gépeit, + mintha közvetlenül ugyanahhoz az + útválasztóhoz csatlakoznának — + jóllehet ez egy kicsit lassúcska + útválasztó, ami idõnként + hajlamos eldobni a csomagokat. + + Ez tehát azt jelenti (például), hogy a + 192.168.1.20 címû + számítógépnek gond + nélküli megy a + + ping 192.168.2.34 + + parancs. Ugyanígy a &windows;-os gépek is + képesek látni a másik + hálózaton levõ + számítógépeket, belépni + egymás megosztásaiba és így + tovább, pontosan úgy, mint a helyi + hálózaton levõ gépek + esetében. + + Ne feledjük, hogy mindennek egyszerre + biztonságosnak is kell lennie. Vagyis a két + hálózat közti forgalmat titkosítanunk + kell. + + A VPN létrehozása a két + hálózat között egy + többlépcsõs folyamat. Ezek a + lépcsõk az alábbiak: + + + + Az interneten keresztül hozzunk létre egy + virtuális hálózati + összeköttetést a két + hálózat között. A &man.ping.8; + és hasonló segédprogramok + segítségével gyõzõdjünk + meg a + mûködõképességérõl. + + + + A hálózatok között zajló + forgalom akadálymentes + titkosításához szükség + esetén alkalmazzuk valamilyen biztonsági + házirendet. A &man.tcpdump.1; és + hasonló segédprogramok + használatával ellenõrizzük a + hálózati forgalom + titkosítását. + + + + A &os; átjárókon + állítsunk be olyan szoftvereket, amelyekkel a + &windows;-os számítógépek is + képesek látni egymást a + virtuális magánhálózaton + keresztül. + + + + + Az elsõ lépés: a + <quote>virtuális</quote> hálózati + összeköttetés kialakítása + és kipróbálása + + Tegyük fel, hogy a bejelentkeztünk az elsõ + hálózat átjárójára + (amelynek a publikus IP-címe A.B.C.D, a privát IP-címe + 192.168.1.1), és + kiadtunk a W.X.Y.Z + címû gép privát + IP-címére egy ping + 192.168.2.1 parancsot. Hogyan is + valósítható meg ez? + + + + Az átjárónak el kell tudnia + érnie valahogy a 192.168.2.1 címet. Vagy + úgy is mondhatjuk, hogy a 192.168.2.1 felé ismeri az + utat. + + + A privát IP-címek tartományainak, + amilyen például a 192.168.x, nem szabadna + megjelenniük az interneten. Ehelyett minden olyan + csomagot, amelyet a 192.168.2.1 címre + küldünk, be kell csomagolnunk egy másik + csomagba. Ezt a csomagot úgy kell + beállítani, mintha az A.B.C.D címrõl + küldtük volna a W.X.Y.Z címre. Ennek + folyamatát hívják + becsomagolásnak + (encapsulation). + + + Amikor ez a csomag megérkezik a W.X.Y.Z címre, ki + kell bontani és kézbesíteni a + 192.168.2.1 + címre. + + + + Erre úgy is gondolhatunk, mint egy + járatra a két + hálózat között. A járat + két szája lesz az A.B.C.D és W.X.Y.Z cím, és a + járatnak ismernie kell azokat a privát + IP-címeket, amiket átereszthet. Ezen a + járaton keresztül fog mozogni a privát + IP-címek között az adat az interneten. + + Ezt a járatot egy általános + felület (generic interface, avagy a + gif eszközök) + használatával hozzuk létre a &os;-k + között. Ahogy számíthattunk is + rá, az egyes átjárókon levõ + gif felületekhez négy + IP-címet kell beállítani: kettõt a + publikus címeknek, kettõt pedig a privát + címeknek. + + A gif eszköz támogatását be kell + építeni mind a két &os; gép + rendszermagjába. Ehhez mind a két gépen + a következõ sort kell hozzáadnunk a + rendszermag beállításait + tartalmazó állományhoz: + + device gif + + Ezután a megszokott menetben fordítani, + telepíteni és újraindítani a + rendszereiket. + + A járat beállítása két + lépésbõl áll. Elõször is + az &man.ifconfig.8; használatával a tunnelnek + meg kell mondanunk, hogy mik a külsõ (avagy + publikus) IP-címek. Ezután adjuk meg + ugyanígy a privát IP-címeket. + + Az elsõ hálózat + átjáróján az alábbi + parancsokat kell kiadni a tunnel + beállításához. + + &prompt.root; ifconfig gif0 create +&prompt.root; ifconfig gif0 tunnel A.B.C.D W.X.Y.Z +&prompt.root; ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff + + + A másik átjárón is futtassuk + le ugyanezeket a parancsokat, de az IP-címek + sorrendjét ezúttal cseréljük + fel. + + &prompt.root; ifconfig gif0 create +&prompt.root; ifconfig gif0 tunnel W.X.Y.Z A.B.C.D +&prompt.root; ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff + + + Ezután már jöhet ez a parancs: + + ifconfig gif0 + + Ezzel elénk tárulnak az iménti + beállításaink. Például az + elsõ hálózat + átjáróján nagyjából + ezt fogjuk látni: + + &prompt.root; ifconfig gif0 +gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 + tunnel inet A.B.C.D --> W.X.Y.Z + inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff + + + Remekül látszik, hogy létrejött + egy tunnel az A.B.C.D és + W.X.Y.Z fizikai címek + között, illetve hogy ezen a járaton + keresztül a 192.168.1.1 + és 192.168.2.1 + címek között engedélyezett a + kommunikáció. + + Ezzel együtt ki kell egészítenünk + mind a két gép útválasztási + táblázatát, amit a netstat + -rn paranccsal meg is tudunk vizsgálni. Most + az elsõ hálózat + átjáróján vagyunk. + + &prompt.root; netstat -rn +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +... +192.168.2.1 192.168.1.1 UH 0 0 gif0 +... + + + Ahogy a Flags oszlop értéke + is mutatja, ez egy módosítható + útvonal (host route), ami arra utal, hogy az + átjárók el tudják érni + egymást, de semmit sem tudnak a hozzájuk + tartozó hálózatokról. Ezt a + gondot hamarosan orvosoljuk. + + Valószínûleg használunk + tûzfalat mind a két gépen, így a VPN + forgalmát valahogy át kell tudnunk küldeni + rajta. Vagy engedélyezzük a két + hálózat közti forgalmazást, vagy + olyan szabályokat veszük fel a tûzfalba, ami + a VPN mind a két végét megvédi + egymástól. + + Nagyban egyszerûsíti a tesztelést, ha + úgy állítjuk be a tûzfalat, hogy + engedjen át minden forgalmat a VPN-en keresztül. + Ezt késõbb még úgy is lesz + lehetõségünk szigorítani. Ha az + átjárókon az &man.ipfw.8; tûzfalat + használjuk, akkor erre a parancsra lesz + szükségünk: + + ipfw add 1 allow ip from any to any via gif0 + + Engedélyezzük a VPN két pontja + közti forgalmat anélkül, hogy az + hatással lenne a tûzfal többi + szabályára. Értelemszerûen mind a + két átjárón ki kell ugyanezt a + parancsot. + + Ez már elegendõ ahhoz, hogy a két + átjáró képes legyen pingelni + egymást. A 192.168.1.1 + gépen így tehát mûködnie kell a + következõnek: + + ping 192.168.2.1 + + Erre kapunk egy választ, és + természetesen ugyanezt a másik gépen (a + címzetten) is meg tudjuk tenni + visszafelé. + + Azonban ilyenkor még nem tudjuk elérni egyik + hálózaton sem a belsõ gépeket. Ez + az utak beállítása miatt van — + habár az átjárók már el + tudják érni egymást, de a + mögöttük levõ hálózatot + még nem. + + A probléma megoldásához fel kell + vennünk egy-egy statikus utat az egyes + átjárókon. Az elsõ + átjárón ezt a következõ + módon tudjuk elvégezni: + + route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 + + Jelentése: A 192.168.2.0 hálózatban + levõ számítógépek + eléréséhez küldjük + keresztül a csomagokat a 192.168.2.1 címen. A + másik átjárón egy ehhez + hasonló parancsot kell kiadnunk, ahol viszont 192.168.1.x címeket kell + használnunk. + + Ennek köszönhetõen az egyik + hálózatból érkezõ IP forgalom + most már el tudja érni a másik + hálózatot. + + Ezzel nagyjából létrehoztuk a + két hálózat közti virtuális + magánhálózat kétharmadát, + így már virtuális + és hálózat is. Viszont + most még nem magán-. Ezt a + &man.ping.8; és a &man.tcpdump.1; + segítségével ellenõrizhetjük. + Jelentkezzünk be az egyik átjáróra + és futtassuk le: + + tcpdump dst host 192.168.2.1 + + Jelentkezzünk be megint ugyanazon a gépen + és futtassuk le ezt is: + + ping 192.168.2.1 + + A kimenete valamilyen ilyesmi lesz: + + +16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request +16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply +16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request +16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply +16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request +16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply + + + Jól megfigyelhetõ, hogy az ICMP üzenetek + csak úgy titkosítás nélkül + járkálnak ide-oda. Sõt, ha a + &man.tcpdump.1; parancsnak megadjuk a + paramétert, akkor még a csomagok + tartalmába is belenézhetünk. + + Ezt természetesen nem fogadhatjuk el. A + következõ szakaszban ezért arról + fogunk beszélni, hogy miként kell + levédeni a két hálózat közt + felépített összeköttetést + és ezáltal automatikusan titkosítani az + összes forgalmat. + + + Foglaljuk össze az eddigieket: + + + Állítsuk be mind a két + átjárón rendszermagjában a + device gif paramétert. + + + Az elsõ hálózat + /etc/rc.conf + állományába illesszük be a + következõ sorokat (miután + kicseréltük bennük a megfelelõ + értékeket). + + gif_interfaces="gif0" +gifconfig_gif0="A.B.C.D W.X.Y.Z" +ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff" +static_routes="vpn" +route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00" + + + + + Szerkesszük át úgy a tûzfalunk + szkriptjét (/etc/rc.firewall + vagy más hasonló) mind a két + átjárón, és vegyük + hozzá a következõ sort: + + ipfw add 1 allow ip from any to any via gif0 + + + Ugyanezeket a módosításokat + ejtsük meg a második hálózat + /etc/rc.conf + állományában is, természetesen + az IP-címek felcserelésével. + + + + + + A második lépés: az + összeköttetés védelme + + Az imént létrehozott kapcsolatot az IPsec + használatával biztosítjuk. Az IPsec + segít megegyezni az átjáróknak a + titkosítás kulcsában és ezen kulcs + felhasználásával titkosítja a + két gép közt vándorló + adatokat. + + Az ehhez szükséges + beállítások két területre + oszlanak. + + + + A két gépnek valahogy meg kell tudnia + egyeznie a titkosításra közösen + használt kulcsban. Miután ez sikeresen + megtörtént, azt mondjuk, hogy + biztonsági összerendelés + van köztük. + + + Valahogy meg kell adnunk melyik forgalmat kell + titkosítani. Nyilvánvalóan nem + akarunk minden kimenõ forgalmat lekódolni + — csupán annyit, ami a VPN-hez tartozik. A + titkosítandó forgalom + meghatározásához megadott + szabályokat biztonsági + házirendnek nevezzük. + + + + A biztonsági összerendeléseket + és biztonsági házirendeket egyaránt + a rendszermag tartja karban, valamint ezeket a + felhasználói programok + módosíthatják. Azonban mielõtt ezt + megtehetnénk, úgy kell + beállítanunk a rendszermagunkat, hogy + támogassa az IPsec és az ESP protokoll + használatát. Ezt a következõ sorokkal + kell megadni a rendszermag beállításait + tároló állományban: + + + a rendszermag + beállításai + IPSEC + + + options IPSEC +options IPSEC_ESP + + + Fordítsuk újra, telepítsünk + és indítsuk újra a rendszert. + Természetesen az elõbbiekhez hasonlóan ezt + a mûveletsort el kell végeznünk mind a + két átjárón. + + IKE + + A biztonsági összerendelések + felállításakor két + választási lehetõségünk + adódik. A két gép között + beállíthatjuk kézzel, aminek során + kiválasztjuk a titkosításhoz + használt algoritmust, a titkosítás + kulcsát és így tovább, vagy az + internetes kulcscserélõ protokollt (Internet Key + Exchange, IKE) megvalósító + démonokat is használjuk erre a + célra. + + Az utóbbit javasoljuk, mivel egyrészt + könnyebb beállítani. + + + IPsec + biztonsági házirend + + + setkey + + A biztonsági házirendet a &man.setkey.8; + paranccsal tudjuk lekérni és + módosítani. A setkey olyan a + rendszermag biztonsági házirendeket + tároló táblázatainak, mint a + &man.route.8; az útválasztási + táblázatoknak. A setkey + ezenkívül még + láthatóvá tudja tenni a pillanatnyilag + aktív biztonsági összerendeléseket + is, és hogy továbbvigyük az iménti + hasonlatot, ez pedig a netstat -r + parancsnak felelne meg. + + A &os;-ben számos démont találunk a + biztonsági összerendelések + kezelésére. Ezek közül itt most a + racoont fogjuk ismertetni — + security/ipsec-tools + néven találjuk meg a &os; + Portgyûjteményében. + + racoon + + A racoont mind a két + átjáróra telepítenünk kell. + Az egyes számítógépeken a VPN + másik végén levõ IP-címet + kell megadnunk valamint a titkos kulcsot (ezt mi + választjuk meg és minden + átjárón egyeznie kell). + + A két démon ezután felveszi + egymással a kapcsolatot, megerõsítik, hogy + valóban azok, akinek állítják + magukat (az általunk megadott titkos kulcs + használatával). A démonok ezután + létrehoznak egy új titkos kulcsot, amivel a + VPN-en áthaladó forgalmat fogják + titkosítani. Ezt adott + idõközönként cserélik, így + a támadók még azzal sem érnek + túlságosan sokat, ha véletlenül + sikerül feltörniük a titkosítást + (ez elméletileg még így is szinte + lehetetlen) — tehát mire feltörnék a + kulcsot, addigra a két démon már egy + teljesen másikat használ. + + A racoon + beállításait a + ${PREFIX}/etc/racoon + állományban találjuk. Az alapból + itt található konfigurációt + különösebben nem szükséges + bolygatnunk. A racoon + beállításának másik + elemét kell valójában + megváltoztatnunk, ami az ún. ismert + kulcs (pre-shared key, psk) lesz. + + A racoon + alapértelmezés szerint ezt + ${PREFIX}/etc/racoon/psk.txt néven + keresi. Szeretnénk leszögezni, hogy az ismert + kulcs nem az kulcs, amivel a VPN + összeköttetés forgalmát fogjuk + titkosítani, hanem egy egyszerûen csak olyan + titkos jel, amirõl a démonok meg tudják + ismerni egymást. + + A psk.txt állományban + mindegyik távoli géphez tartozik egy sor. Mivel + ebben a példában csak két + géprõl van szó, ezért a rajtuk + található psk.txt + állományok csak egyetlen sort fognak tartalmazni + (mivel a VPN végein mindig csak a másik + végével kell foglalkoznunk). + + Az elsõ átjárón ez a sor + így néz ki: + + W.X.Y.Z titkos_jel + + Tehát itt szerepel a távoli végpont + publikus IP-címe, amitõl + láthatatlan karakterekkel választjuk a titkos + jelet szimbolizáló szöveget. Itt persze ne + a titkos_jel jelet használjuk — + ide inkább valami jelszószerûséget + képzeljünk el. + + A második átjárón ez a sor + szerepel: + + A.B.C.D titkos_jel + + Ez a másik távoli végpont publikus + IP-címe és ugyanaz a titkos jel. A + racoon futtatása elõtt + a psk.txt állománynak a + 0600 kódú engedélyeket + állítsuk be (vagyis csak a + root legyen képes írni + és olvasni). + + A racoonnak mind a két + átjárón futnia kell. Az IKE + akadálytalan közlekedéséhez a + tûzfalaikba is fel kell vennünk néhány + szabályt, ami általában UDP-n és + az internetes biztonsági összerendelések + kulcskezelõ protokolljának (Internet Security + Association Key Management Protocol, ISAKMP) portján + üzemel. Ezt rakjuk minél elõbbre a + tûzfalunkban. + + ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp +ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp + + + Miután mûködik a + racoon, próbáljuk meg + az egyik átjáróról pingelni a + másikat. A kapcsolat még mindig nem + titkosított, de a racoon + már felállítja a két gép + közti biztonsági összerendelést + — ez eltarthat egy ideig, amit a pingekre + érkezõ válaszok apró + késlekedésébõl észre is + vehetünk. + + Ahogy a biztonsági összerendelés + létrejött, a &man.setkey.8; paranccsal meg is + nézhetjük. Ehhez futtassuk a következõ + parancsot valamelyik gépen: + + setkey -D + + Ez a probléma egyik fele. A másik fele + pedig a biztonsági házirend + felállítása. + + Egy értelmes biztonsági házirend + kialakításához elõször + tekintsük át mit is állítottunk be + eddig. Ez az összefoglalás az + összeköttetés mindkét + végére vonatkozik. + + Mindegyik elküldött IP-csomagnak fejléce + van, ami adatokat tartalmaz a csomagról. A + fejléc tartalmazza a forrás és a + cél IP-címét. Korábbról + pedig már tudjuk, hogy a privát IP-címek, + mint mondjuk a 192.168.x.y, az + interneten nem jelenhet meg. Ehhez elõször be kell + csomagolnunk egy másik csomagba. Ennek a csomagnak a + privát címek helyett a publikus forrás + és cél IP-címét kell + tartalmaznia. + + Tehát a kimenõ csomagunk valahogy így + néz ki: + + + + + + + + + .----------------------. + | Forrás : 192.168.1.1 | + | Cél : 192.168.2.1 | + | <a fejléc többi része> | + +----------------------+ + | <a csomag adatai> | + `----------------------' + + + + Amelyet ezután egy ehhez hasonló csomagba + fogunk becsomagolni: + + + + + + + + + .--------------------------. + | Forrás : A.B.C.D | + | Cél : W.X.Y.Z | + | <a fejléc többi része> | + +--------------------------+ + | .----------------------. | + | | Forrás : 192.168.1.1 | | + | | Cél : 192.168.2.1 | | + | | <a fejléc többi része> | | + | +----------------------+ | + | | <a csomag adatai> | | + | `----------------------' | + `--------------------------' + + + + Az imént felvázolt csomagolást a + gif eszköz fogja végezni. + Most már láthatjuk azt is, hogy a csomag + kifelé valós IP-címmel rendelkezik, + miközben az eredeti csomag adatként becsomagoltuk + és feladtunk az interneten keresztül. + + Értelemszerûen a VPN teljes forgalmát + titkosítani akarjuk. Részletesebben + kifejtve: + + Amikor egy csomag elhagyja az A.B.C.D gépet a W.X.Y.Z gép felé, akkor a + szükséges biztonsági + összerendelések + felhasználásával + kódoljuk. + + Amikor az A.B.C.D + címrõl megérkezik egy csomag a W.X.Y.Z címre, akkor a + szükséges biztonsági + összerendelési + felhasználásával + kikódoljuk. + + Ez már majdnem jó, de nem teljesen pontos. + Ha csak ennyit csinálnánk, akkor a W.X.Y.Z címrõl + érkezõ forgalmat olyankor is + titkosítanánk, amikor az nem része a + VPN-nek. Mi viszont nem erre gondoltunk. Ezért a + megfelelõ házirend az alábbi: + + Amikor egy csomag elhagyja az A.B.C.D címet a W.X.Y.Z cím felé, + és ez a csomag egy másik csomagot tartalmaz, + akkor a szükséges biztonsági + összerendelések + felhasználásával + kódoljuk. + + Amikor az A.B.C.D + címrõl megérkezik egy csomag a W.X.Y.Z címre, és ez a + csomag egy másik csomagot tartalmaz, akkor a + szükséges biztonsági + összerendelések + felhasználásával + kikódoljuk. + + Finom de lényeges + különbség. + + A biztonsági házirendet a &man.setkey.8; + segítségével egy adott + konfigurációs nyelven leírva is be tudjuk + állítani. Ilyenkor vagy közvetlenül a + szabványos bemenetrõl adjunk + utasításokat vagy az + opció használatával megadjuk azt az + állományt, amely tartalmazza a + konfigurációs utasításokat. + + Az elsõ átjárón (amelynek a + publikus IP-címe A.B.C.D) így tudjuk az + összes W.X.Y.Z felé + haladó forgalom titkosítását + kikényszeríteni: + + +spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; + + + Tegyük ezt a parancsot egy állományba + (például /etc/ipsec.conf) + és adjuk ki a következõ parancsot: + + &prompt.root; setkey -f /etc/ipsec.conf + + Az arra utasítja a + &man.setkey.8; programot, hogy egy szabályt akarunk + felvenni a biztonsági házirendeket + tároló adatbázisba. A sor többi + része a rendelkezésnek megfelelõ csomagokat + írja le. A A.B.C.D/32 + és W.X.Y.Z/32 + adják meg azokat az IP-címeket és + hálózati maszkokat, amelyekre az adott + rendelkezés vonatkozik. Ebben az esetben mi most a + két gép közti forgalomra vonatkoztatunk. + Az azt árulja el a + rendszermagnak, hogy ezt a rendelkezést csak a csomagok + tartalmazó csomagokra kell alkalmazni. A szerint pedig ez a rendelkezés csak a + kimenõ csomagokra értendõ, valamint az + miatt védeni kell az ilyen + csomagokat. + + Ezt követõen a csomag + titkosításáról nyilatkozunk. Erre + az protokollt használjuk, + miközben a jelzi, hogy a csomagot + beraktuk egy IPsec csomagba. A A.B.C.D és W.X.Y.Z címeket azért + adtuk meg ismét, mert ezzel azonosítjuk be a + használni kívánt biztonsági + összerendelést. Végezetül a + szabályozza, hogy a + feltételeknek megfelelõ csomagot + titkosítani kell. + + Ez a szabály csak a kimenõ csomagokra + illeszkedik. Egy hasonlóra van szükség a + bejövõ csomagok esetén is. + + spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; + + Itt leginkább arra figyeljünk, hogy ebben az + utasításban szerepel az + helyett, és az IP-címeket + pedig felcseréltük. + + A másik átjárón (amely a + W.X.Y.Z publikus IP-címmel + rendelkezik) hasonló szabályokra lesz + szükségünk. + + spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; +spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; + + Végsõ lépésként a + tûzfalakban oda-vissza engedélyeznünk kell az + ESP és IPENCAP csomagokat. Ezeket a szabályokat + is fel kell vennünk mind a két + átjáró esetén. + + ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z +ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D +ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z +ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D + + + Mivel a szabályok szimmetrikusak, ezért mind + a két helyen használhatjuk ezeket. + + A kimenõ csomagok ennek megfelelõen így + fognak kinézni: + + + + + + + + + .------------------------------. --------------------------. + | Forrás : A.B.C.D | | + | Cél : W.X.Y.Z | | + | <a fejléc többi része> | | A titkosított + +------------------------------+ | csomag. A + | .--------------------------. | -------------. | tartalmát + | | Forrás : A.B.C.D | | | | teljesen + | | Cél : W.X.Y.Z | | | | levédtük az + | | <a fejléc többi része> | | | |- avatatlan + | +--------------------------+ | | A csoma- | szemek elõl. + | | .----------------------. | | -. | golt cso- | + | | | Forrás : 192.168.1.1 | | | | Eredeti |- mag, va- | + | | | Cél : 192.168.2.1 | | | | csomag, | lódi IP | + | | |<a fejléc többi része>| | | |- privát | | + | | +----------------------+ | | | IP | | + | | | <a csomag adatai> | | | | | | + | | `----------------------' | | -' | | + | `--------------------------' | -------------' | + `------------------------------' --------------------------' + + + + + Amikor a csomag megkérkezik a VPN másik + végére, akkor elõször feloldjuk a + titkosítását (a + racoon által + felállított biztonsági + összerendelésen használatával). + Ezután továbbhalad a + gif felületére, amely + kibontja a második réteget, ahonnan + távozik a legbelsõ csomag a belsõ + hálózat felé. + + A &man.ping.8; használatával a + korábban már bemutatott módon tudjuk + tesztelni a hálózat + biztonságosságát. Ehhez + elõször is jelentkezzünk be a A.B.C.D átjáróra + és gépeljük be: + + tcpdump dst host 192.168.2.1 + + Ugyanazon a gépen egy másik + parancsértelmezõbõl pedig futtassuk ezt + is: + + ping 192.168.2.1 + + Ezúttal a következõt kell + tapasztalnunk: + + ide kell még a tcpdump kimenete + + Most már &man.tcpdump.1; ESP csomagokat mutat. Ha + a opcióval megpróbálunk + nekiesni a csomagoknak, akkor a titkosítás miatt + (nyilvánvalóan) csak zagyvaságokat + kapunk. + + Gratulálunk! Sikerült VPN kapcsolatot + felépíteni két távoli + hálózat között. + + + Összefoglalás + + + Állítsuk be mind a két + rendszermag esetén: + + options IPSEC +options IPSEC_ESP + + + + Telepítsük a security/ipsec-tools portot. + Írjuk át a + ${PREFIX}/etc/racoon/psk.txt + állományt mind a két gépen + úgy, hogy kölcsönöesen + felvesszük bennüka távoli + számítógépek IP-címeit + és a közös titkos jelzésüket. + Ne felejtsük el az engedélyeit 0600-ra + állítani. + + + A gépek /etc/rc.conf + állományaihoz adjuk hozzá a + következõ sort: + + ipsec_enable="YES" +ipsec_file="/etc/ipsec.conf" + + + + Mindegyik gépen hozzunk létre egy + /etc/ipsec.conf nevû + állományt, amelybe másoljuk be a + beüzemeléshez szükséges + spdadd sorokat. Az elsõ + hálózat + átjáróján ez így + néz ki: + + +spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec + esp/tunnel/A.B.C.D-W.X.Y.Z/require; +spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec + esp/tunnel/W.X.Y.Z-A.B.C.D/require; + + + A második hálózat + átjáróján pedig + így: + + +spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec + esp/tunnel/W.X.Y.Z-A.B.C.D/require; +spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec + esp/tunnel/A.B.C.D-W.X.Y.Z/require; + + + + Bõvítsük ki a tûzfal + gépek közti szabályait az IKE, ESP + és IPENCAP protokollok + engedélyezésével: + + +ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp +ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp +ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z +ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D +ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z +ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D + + + + + Ez a két lépés már + elegendõ egy VPN összerakásához + és mûködtetéséhez. Az egyes + hálózatokon levõ gépek most + már képesek IP-címekkel egymásra + hivatkozni, és a köztük levõ + összeköttetésen átfolyó + összes adat autmatikusan és biztonságosan + titkosításra kerül. + + + +
+ + + + + + Chern + Lee + Írta: + + + + + OpenSSH + + OpenSSH + + biztonság + OpenSSH + + + Az OpenSSH olyan + hálózati kapcsolódási + eszközök összessége, amivel + biztonságos módon érhetünk el + távoli számítógépeket. Az + rlogin, rsh, + rcp és a telnet + direkt kiváltására használható. + Emellett SSH-n keresztül TCP/IP kapcsolatok is + biztonságosan bújtathatóak vagy + küldhetõek tovább. + + Az OpenSSH-t az OpenBSD projekt + tartja karban, és az SSH 1.2.12 verziójára + épül hibajavításokkal és + frissítésekkel egyetemben. Az SSH 1 és 2 + protokollokkal egyaránt kompatibilis. + + + Az <application>OpenSSH</application> + használatának elõnyei + + A hétköznapi esetben, vagyis amikor a + &man.telnet.1; vagy &man.rlogin.1; alkalmazásokat + használjuk, az adatok titkosítatlan + formában közlekednek a hálózaton. A + szerver és a kliens közé bárhova + becsatlakozó hálózati + kíváncsiskodók így + könnyedén el tudják lopni a + felhasználói nevünket és jelszavunkat, + vagy lényegében bármilyen adatot, ami az + adott munkamenetben megfordul. Az + OpenSSH ennek + kivédésére kínál fel + különféle hitelesítési és + titkosítási eszközöket. + + + + + Az sshd engedélyezése + + + OpenSSH + engedélyezés + + + Az sshd a &os; + telepítésekor jelentkezõ + Standard lehetõségek egyike. Az + sshd + engedélyezését úgy tudjuk + kideríteni, ha az rc.conf + állományban megkeressük a következõ + sort: + + sshd_enable="YES" + + Ez tölti be a rendszer indításakor az + &man.sshd.8;-t, az OpenSSH + démonát. Vagy az + /etc/rc.d/sshd &man.rc.8; szkript + segítségével is elindíthatjuk az + OpenSSH-t: + + /etc/rc.d/sshd start + + + + + Az SSH kliens + + + OpenSSH + kliens + + + Az &man.ssh.1; segédprogram az &man.rlogin.1; + programhoz hasonlóan mûködik. + + &prompt.root; ssh felhasználó@gép.hu +Host key not found from the list of known hosts. Are you sure you +want to continue connecting (yes/no)? yes Host +'gép.hu' added to the list of known hosts. +felhasználó@gép.hu's password: +******* + + Az üzenetek fordítása: + + Nem találtam meg a gépet az ismert gépek között. Biztosan csatlakozni +akarunk hozzá (igen/nem)? igen A 'gép.hu' +felkerült az ismert gépek közé. +Adja meg a felhasználó@gép.hu jelszavát: + + Bejelentkezés után minden ugyanolyan, mintha + az rlogin vagy a telnet + programokat használtuk volna. Az SSH egy kulcs + segítségével próbálja + azonosítani a számítógépeket, + ezzel ellenõrzi a szerver hitelességét a + kliensek csatlakozásakor. A felhasználónak + ilyenkor elõször mindig yes + választ kell adnia. A késõbbi + bejelentkezési kísérletek pedig majd mindig + az így kapott kulccsal történnek. Ha + eltérne a kulcs, akkor az SSH kliens erre figyelmeztetni + fog minket. A kulcsok a ~/.ssh/known_hosts + vagy az SSH v2 protokoll esetén a + ~/.ssh/known_hosts2 + állományba kerülnek elmentésre. + + Alapértelmezés szerint az + OpenSSH szerverek csak SSH v2 + kapcsolatokat fogadnak el. Lehetõség szerint a + kliens is ezt a változatot fogja használni, de ha + nem sikerül, akkor megpróbálkozik a v1-el. A + kliensnek a vagy + opciók segítségével elõ is + lehet írni, hogy az elsõ vagy a második + változatot használja. A kliensben az elsõ + változat támogatását csupán a + régebbi verziók kompatibilitása miatt + tartják karban. + + + + + Biztonságos másolás + + + OpenSSH + biztonságos másolás + + scp + + Az &man.scp.1; parancs az &man.rcp.1; parancshoz + hasonlóan mûködik: egyik géprõl + másol a másikra, biztonságosan. + + &prompt.root; scp felhasználó@gép.hu:/COPYRIGHT COPYRIGHT +felhasználó@gép.hu's password: ******* +COPYRIGHT 100% |*****************************| 4735 +00:00 +&prompt.root; + + Mivel a kulcsot már ismerjük ehhez a + távoli géphez (az elõbbi + példából), ezért az &man.scp.1; + használatakor már ezzel + hitelesítünk. + + Az &man.scp.1; paraméterei hasonlóak a + &man.cp.1; parancséhoz: elsõ helyen az + állomány vagy állományok neveit + adjuk meg, a másodikon pedig a célt. Mivel az + állományokat a hálózaton SSH-n + keresztül küldik át, ezért az + állományok neveit + + formában kell megadni. + + + + + Beállítások + + + OpenSSH + beállítások + + + Az OpenSSH démon és + kliens rendszerszintû konfigurációs + állományai az /etc/ssh + könyvtárban találhatóak. + + Az ssh_config tartalmazza a kliens + beállításait, miközben az + sshd_config tartalmazza a + démonét. + + Emellett az rc.conf + állományban megadható + (ez alapból a + /usr/sbin/sshd) és + opciókkal további + beállítási szinteket + nyújtanak. + + + + + ssh-keygen + + Jelszavak helyett az &man.ssh-keygen.1; programmal a + felhasználók azonosítására + DSA- vagy RSA-kulcsokat tudunk készíteni: + + &prompt.user; ssh-keygen -t dsa +Generating public/private dsa key pair. +Enter file in which to save the key (/home/felhasználó/.ssh/id_dsa): +Created directory '/home/felhasználó/.ssh'. +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/felhasználó/.ssh/id_dsa. +Your public key has been saved in /home/felhasználó/.ssh/id_dsa.pub. +The key fingerprint is: +bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 felhasználó@gép.hu + + + Az &man.ssh-keygen.1; ekkor a hitelesítésre + létrehoz egy publikus és egy privát + kulcsból álló párt. A privát + kulcs a ~/.ssh/id_dsa vagy + ~/.ssh/id_rsa állományba + kerül, miközben a publikus kulcs a + ~/.ssh/id_dsa.pub vagy + ~/.ssh/id_rsa.pub lesz attól + függõen, hogy DSA vagy + RSA a kulcs típusa. A módszer + mûködéséhez a publikus + DSA- vagy RSA-kulcsot a + távoli számítógép + ~/.ssh/authorized_keys + állományába kell bemásolni. + + Így tehát a távoli + számítógépre jelszavak + alkalmazása helyett SSH-kulccsal tudunk + belépni. + + Ha az &man.ssh-keygen.1; parancsnak megadunk egy jelmondatot + is, akkor a felhasználó a privát + kulcsát csak ennek megadásával tudja + használni. A hosszú jelmondatok + állandó beirogatásától a + szakaszban hamarosan + bemutatásra került &man.ssh-agent.1; igyekszik + megkímélni minket. + + + A különbözõ opciók és + állományok eltérhetnek a + számítógépünkre + telepített OpenSSH + verziójától függõen. Ilyen + esetben javasolt felkeresni az &man.ssh-keygen.1; man + oldalát. + + + + + + Az ssh-agent és az ssh-add + + Az &man.ssh-agent.1; és &man.ssh-add.1; + segédprogramokkal be tudjuk tölteni az + SSH-kulcsokat a + memóriába, amivel elkerülhetjük a + jelmondat állandó + begépelését. + + A hitelesítést az &man.ssh-agent.1; program + kezeli a betöltött privát kulcsok + alapján. Az &man.ssh-agent.1; + használatával egy másik programot is + elindhatunk, egy parancsértelmezõtõl kezdve egy + ablakkezelõig szinte bármit. + + Az &man.ssh-agent.1; programot úgy tudjuk egy + parancsértelmezõben használni, hogy + elõször is elindítjuk vele az adott + parancsértelmezõt. Ezután az &man.ssh-add.1; + lefuttatásával hozzá kell adnunk egy + identitást, annak jelmondatának + megadásával. Miután ezeket megtettük, + a felhasználó bármelyik olyan távoli + gépre be tud jelentkezni, ahol a publikus kulcsát + ismerik. Például: + + &prompt.user; ssh-agent csh +&prompt.user; ssh-add +Enter passphrase for /home/felhasználó/.ssh/id_dsa: +Identity added: /home/felhasználó/.ssh/id_dsa (/home/felhasználó/.ssh/id_dsa) +&prompt.user; + + Az &man.ssh-agent.1; programot X11-el úgy tudjuk + használni, ha az ~/.xinitrc + állományba tesszük bele. Ezzel az + &man.ssh-agent.1; az összes X11-ben indított program + számára rendelkezésre áll. + Példának vegyük ezt az + ~/.xinitrc állományt: + + exec ssh-agent startxfce4 + + Így az X11 indulásakor mindig elindul az + &man.ssh-agent.1;, amely pedig elindítja az + XFCE alkalmazást. + Miután átírtuk a saját + állományunkat, a rendszer + életbeléptetéséhez indítsuk + újra az X11-et, az &man.ssh-add.1; + futtatásával pedig töltsük be az + összes SSH-kulcsunkat. + + + + + Tunnelezés SSH-val + + + OpenSSH + tunnelezés + + + Az OpenSSH-val létre + tudunk hozni egy tunnelt, amellyel egy másik protokoll + adatait tudjuk titkosított módon + becsomagolni. + + Az alábbi parancs arra utasítja az &man.ssh.1; + programot, hogy hozzon létre egy tunnelt a + telnet + használatához: + + &prompt.user; ssh -2 -N -f -L 5023:localhost:23 felhasználó@izé.mizé.hu +&prompt.user; + + Az ssh parancsnak a következõ + kapcsolókat adtuk meg: + + + + + + + Az ssh parancs a protokoll + második változatát használja. + (Ne adjuk meg, ha régi SSH szerverekkel + dolgozunk.) + + + + + + + + Tunnel létrehozása. Ha nem adjuk meg, + akkor az ssh egy hagyományos + munkamenet felépítését kezdi + meg. + + + + + + + + Az ssh a háttérben + fusson. + + + + + + + + Egy helyi tunnel a + helyiport:távoligép:távoliport + felírásban. + + + + + + + + A távoli SSH szerver. + + + + + Az SSH által létrehozott járatok + úgy mûködnek, hogy létrehozunk egy + csatlakozást a localhost (a helyi + gép) megadott portján. Ezután minden olyan + kapcsolatot, ami a helyi gép adott portjára + érkezik, SSH-n keresztül + átirányítunk a távoli gép + portjára. + + Ebben a példában a helyi gép + 5023 portját + átirányítjuk a helyi gép + 23 portjára. Mivel a + 23 a + telnet portja, ezért az + így definiált SSH járattal egy + biztonságos telnet + munkamenetet hozunk létre. + + Ezen a módon tetszõleges nem biztonságos + TCP protokollt, például SMTP-t, POP3-at, FTP-t + stb. be tudunk csomagolni. + + + Biztonságos tunnel létrehozása + SSH-val SMTP-hez + + &prompt.user; ssh -2 -N -f -L 5025:localhost:25 felhasználó@levelezõ.szerver.hu +felhasználó@levelezõ.szerver.hu's password: ***** +&prompt.user; telnet localhost 5025 +Trying 127.0.0.1... +Connected to localhost. +Escape character is '^]'. +220 levelezõ.szerver.hu ESMTP + + Az &man.ssh-keygen.1; és további + felhasználói hozzáférések + alkalmazásával ezen a módon ki tudunk + alakítani egy minden további + problémától és zûrtõl + mentes SSH tunnelezési környezetet. A jelszavak + helyett kulcsokat használunk és minden tunnel + külön felhasználóként is + futtatható. + + + + Gyakorlati példák a tunnelek + használatára + + + Egy POP3 szerver biztonságos + elérése + + Tegyük fel, hogy a munkahelyünkön van egy + SSH szerver, amire kívülrõl lehet + csatlakozni, illetve vele egy hálózatban van + egy POP3 levelezõ szerver is. A munkahelyünk + és az otthonunk között levõ + hálózati útvonalat részben vagy + teljesen nem tartjuk megbízhatónak. + Ezért az e-mailjeinket valamilyen biztonságos + módon szeretnénk elérni. Ezt + úgy tudjuk megvalósítani, ha + otthonról csatlakozunk a munkahelyen levõ SSH + szerverre és ezen keresztül érjük a + levelezõ szervert. + + &prompt.user; ssh -2 -N -f -L 2110:levél.gép.hu:110 felhasználó@ssh-szerver.gép.hu +felhasználó@ssh-szerver.gép.hu's password: ****** + + Miután a tunnel létrejött és + mûködõképes, állítsuk be + a levelezõ kliensünkben, hogy a POP3 + kéréseket a localhost 2110 + portjára küldje. Innen pedig biztonságos + módon megy tovább a + levél.gép.hu + címre. + + + + + Egy szigorú tûzfal + megkerülése + + Egyes hálózati adminisztrátorok + túlságosan szigorú szabályokat + adnak meg a tûzfalban, és nem csak a + bejövõ kapcsolatokat szûrik, hanem a + kimenõket is. A távoli gépekhez csak a + 22 (SSH) és 80 (böngészés) + portjaikon tudunk csatlakozni. + + Mi viszont szeretnénk más (nem + egészen a munkánkkal kapcsolatos) + szolgáltatásokat is elérni, + például egy Ogg Vorbis szerverrõl + zenét hallgatni. Ehhez a szerverhez viszont csak + akkor tudnánk csatlakozni, ha a 22 vagy 80 portokon + üzemelne. + + Ezt a problémát úgy oldhatjuk meg, + ha felépítünk egy SSH kapcsolatot a + hálózatunk tûzfalán + kívül levõ + számítógéppel és + segítségével átbújunk az + Ogg Vorbis szerverhez. + + &prompt.user; ssh -2 -N -f -L 8888:zene.gép.hu:8000 felhasználó@tûzfalazatlan-rendszer.gép.org +felhasználó@tûzfalazatlan-rendszer.gép.org's password: ******* + + A zenelejátszó kliensüknek adjuk meg + a localhost 8888 portját, amely + pedig a tûzfal sikeres + kijátszásával + továbbítódik a + zene.gép.hu 8000-res + portjára. + + + + + + + Az <varname>AllowUsers</varname> felhasználói + beállítás + + Gyakran nem árt korlátozni a + felhasználók bejelentkezését. Az + AllowUsers erre tökéletesen + megfelel. Például, ha csak 192.168.1.32 címrõl + engedjük bejelentkezni a root + felhasználót, akkor ehhez valami ilyesmit kell + beírnunk az /etc/ssh/sshd_config + állományba: + + AllowUsers root@192.168.1.32 + + Ezzel pedig csupán nevének + megadásával engedélyezzük az + admin felhasználó + bejelentkezését (bárhonnan): + + AllowUsers admin + + Egy sorban több felhasználó is + megadható, mint például: + + AllowUsers root@192.168.1.32 admin + + + Ilyenkor ne felejtsük el megadni az összes + bejelentkezésre (valamilyen formában) jogosult + felhasználót megadni, + máskülönben kizárjuk ezeket. + + + Miután elvégeztük a szükséges + változtatásokat az + /etc/ssh/sshd_config + állományban, utasítsuk az &man.sshd.8; + démont a konfigurációs + állományok + újraolvasására: + + &prompt.root; /etc/rc.d/sshd reload + + + + + Ajánlott olvasnivalók (angolul) + + OpenSSH + + &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; + &man.ssh-add.1; &man.ssh.config.5; + + &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; + + + + + + + + + Tom + Rhodes + Írta: + + + + + ACL + + Az állományrendszerek + hozzáféréseit vezérlõ + listák + + A &os; 5.0 és késõbbi + változatai különbözõ + fejlesztéseket hoztak az + állományrendszerekben, például a + pillanatképek készítése vagy a + hozzáférés-vezérlési + listák (Access Control List, ACL-ek) + támogatása. + + A hozzáférés-vezérlési + listák a szabványos &unix;-os engedély + modellt bõvítik ki egy igen kompatibilis (&posix;.1e) + módon. Használatával a rendszergazdák + egy sokkal kifinomultabb biztonsági modellt tudhatnak a + kezük ügyében. + + Az UFS állományrendszerek + ACL támogatását úgy + tudjuk engedélyezni, ha a rendszermagot az + + options UFS_ACL + + paraméterrel fordítjuk le. Amennyiben ezt nem + fordítottuk bele, akkor az ACL + támogatással rendelkezõ + állományrendszerek csatlakoztatása + során egy figyelmeztetést kapunk. Ez az + opció a GENERIC rendszermag + része. Az ACL az + állományrendszeren engedélyezett + kiterjesztett tulajdonságokra támaszkodik. Ezeket a + kiterjesztett tulajdonságokat a következõ + generációs &unix; állományrendszer, az + UFS2 már alapból ismeri. + + + UFS1 típusú + állományrendszereken sokkal nagyobb a + kiterjesztett tulajdonságok kezelésének + költsége, mint az UFS2 + esetében. Az UFS2 jóval + nagyobb teljesítménnyel képes dolgozni a + kiterjesztett tulajdonságokkal. Emiatt a + hozzáférés-vezérlési + listák használatához az + UFS2 sokkal inkább ajánlott, + mint az UFS1. + + + Az ACL használatát a + csatlakoztatáskor megadott + beállítással engedélyezhetjük, + amelyet érdemes felvennünk az + /etc/fstab állományba. Ha a + &man.tunefs.8; segédprogrammal az + állományrendszer fejlécében levõ + szuperblokk ACL kapcsolóját + átírjuk, akkor ez a beállítás + automatikussá tehetõ. A szuperblokk használata + több okból is ajánlatos: + + + + A csatlakoztatáskor megadott ACL + beállítás nem változtatható + egy egyszerû újracsatlakoztatással + (&man.mount.8; ), csak egy teljes + leválasztással (&man.umount.8;) és egy + friss csatlakoztatással (&man.mount.8;). Ennek + értelmében az ACL-ek a + rendszerindító állományrendszeren + a rendszer indulása után nem + engedélyezhetõek. Ám ez azt is jelenti, + hogy egy már használatban levõ + állományrendszer + beállításai sem + változtathatóak meg. + + + + Ha a kapcsolót a szuperblokkban + állítjuk be, akkor az + állományrendszert még akkor is + ACL támogatással + csatlakoztatja a rendszer, ha azt nem adtuk meg az + fstab állományban vagy az + eszközeink átrendezõdtek. Így az + állományrendszereket még + véletlenül sem tudjuk ACL + használata nélkül csatlakoztatni, ami + egyébként így komoly biztonsági + problémákat okozhatna. + + + + + Beállíthatjuk úgy is + ACL kezelését, hogy egy friss + csatlakoztatás nélkül is bekapcsolható + legyen, azonban az ilyen állományrendszerek + ACL nélküli + csatlakoztatását nem ajánljuk senkinek, + mivel ha egyszer már engedélyeztük a + használatukat, majd kikapcsoljuk ezeket és + végül a kiterjesztett tulajdonságok + törlése nélkül újra + engedélyezzük, akkor nagyon könnyen + pórul járhatunk. Ha elkezdtük + használni az ACL-eket egy + állományrendszeren, akkor ne tiltsuk le ezeket, + mert az így keletkezõ + állományvédelem nem feltétlenül + lesz kompatibilis a felhasználók által + beállítottakkal, és az + ACL újraengedélyezése a + változásaik elõtti korábbi + ACL engedélyeket fogja + visszaállítani az állományokra, + aminek hatása kiszámíthatatlan. + + + A hozzáférés-vezérlési + listákat használó + állományrendszerek esetén egy + + (plusz) jellel + ábrázolják a kiterjesztett + engedélyeket. Például: + + drwx------ 2 robert robert 512 Dec 27 11:54 private +drwxrwx---+ 2 robert robert 512 Dec 23 10:57 könyvtár1 +drwxrwx---+ 2 robert robert 512 Dec 22 10:20 könyvtár2 +drwxrwx---+ 2 robert robert 512 Dec 27 11:57 könyvtár3 +drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html + + Láthatjuk, hogy a + könyvtár1, + könyvtár2 és + könyvtár3 + könyvtárakhoz tartoznak ACL + típusú engedélyek, míg a + public_html könyvtárhoz + nem. + + + Az <acronym>ACL</acronym>-ek használata + + Az állományrendszerben található + ACL engedélyeket a &man.getfacl.1; + segédprogrammal nézhetjük meg. + Például a + próba + állomány ACL engedélyeit + a következõ paranccsal tudjuk megnézni: + + &prompt.user; getfacl próba + #file:próba + #owner:1001 + #group:1001 + user::rw- + group::r-- + other::r-- + + Egy állomány ACL + engedélyeit a &man.setfacl.1; segédprogrammal + tudjuk megváltoztatni. Figyeljük meg: + + &prompt.user; setfacl -k próba + + A opció törli az összes + ACL alapú engedélyt egy + állományról vagy + állományrendszerrõl. Ennél viszont + sokkal hasznosabb a opció + használata, mivel az meghagyja az ACL + mûködéséhez szükséges + alapvetõ mezõket. + + &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- próba + + Ebben a fenti parancsban a opciót + pedig arra használtuk, hogy módosítsuk az + alapértelmezett ACL + bejegyzéseket. Mivel az ezt megelõzõ + parancsban teljesen töröltük még az + elõredefiniált bejegyzéseket is, ez a parancs + a megadott paraméterekkel kiegészítve + ezeket vissza fogja állítani. Ügyeljünk + arra, hogy ha olyan felhasználót vagy csoportot + adunk meg, ami nem létezik a rendszerben, akkor a + szabvány kimenetre egy Invalid + argument hibaüzenetet kapunk. + + + + + + + + + Tom + Rhodes + Írta: + + + + + Portaudit + + A külsõ programok biztonsági + problémáinak figyelése + + Az utóbbi években a biztonsági + kérdésekkel foglalkozó világban + számos fejlesztésre került sor a + sebezhetõségi figyelmeztetések + feldolgozásában. Manapság + tulajdonképpen bármilyen operációs + rendszer fokozott veszélynek teszik ki magát a + külsõ programok telepítésével + és használatával. + + A sebezhetõségekrõl beszámoló + értesítések a biztonság egyik + alapköve, azonban a &os; projekt nem tud ilyen + jelentéseket kiadni a &os; alaprendszerén + kívül minden egyes külsõ + alkalmazáshoz. Azonban lehetõségünk van + enyhíteni a külsõ csomagok + sebezhetõségén és figyelmeztetni a + rendszergazdákat az ismert biztonsági + problémákra. A &os;-nek van egy + Portaudit nevû + segédprogramja, amit kizárólag erre a + célra hoztak létre. + + A ports-mgmt/portaudit port + egy adatbázist használ, ahol a &os; + biztonsági csapata és a portok fejlesztõi + tartják karban az ismert biztonsági + problémákat. + + A Portaudit + használatának megkezdéséhez + telepítsük a + Portgyûjteménybõl: + + &prompt.root; cd /usr/ports/ports-mgmt/portaudit && make install clean + + A telepítési folyamat során a + &man.periodic.8; konfigurációs + állományai is frissítõdnek, így a + Portaudit is lefut a napi + biztonsági ellenõrzések folyamán. + Gondoskodjunk róla, hogy a root + felhasználónak levélben elküldött a + napi biztonsági értesítéseket rendesen + elolvassuk. Nincs szükségünk további + beállításokra. + + A telepítés után a rendszergazda a + következõ paranccsal tudja frissíteni a + saját adatbázispéldányát + és megnézni a pillanatnyilag telepített + csomagok ismert sebezhetõségeit: + + &prompt.root; portaudit -Fda + + + Ez az adatbázis a &man.periodic.8; minden egy + futásakor magától frissül, + ezért ez a parancs lényegében + elhagyható. Egyedül a soronkövetkezõ + példákhoz kell kiadni. + + + A Portgyûjteménybõl telepített + külsõ alkalmazások + megbízhatóságának + ellenõrzését az alábbi parancs + kiadásával bármikor + elvégezhetjük: + + &prompt.root; portaudit -a + + A Portaudit ennek + hatására valahogy így fogja + megjeleníteni a sebezhetõ csomagokat: + + Affected package: cups-base-1.1.22.0_1 +Type of problem: cups-base -- HPGL buffer overflow vulnerability. +Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> + +1 problem(s) in your installed packages found. + +You are advised to update or deinstall the affected package(s) immediately. + + Fordítása: + + Érintett csomag: cups-base-1.1.22.0_1 +A probléma jellege: cups-base -- HPGL puffer túlcsordulási sebezhetõség. +Link: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> + +A telepített csomagokkal kapcsolatban 1 problemát találtam. + +Javasoljuk, hogy az érintett csomagokat azonnal frissítse vagy távolítsa el. + + Ha a böngészõnket az itt megadott + címre irányítjuk, akkor megismerhetjük a + kérdéses sebezhetõség pontosabb + részleteit. Ezen az oldalon megtalálhatjuk a hiba + által érintett verziókat a &os; portok + verziója szerint, illetve más olyan honlapokat, ahol + biztonsági figyelmeztetéseket + találhatunk. + + Röviden összefoglalva, a + Portaudit egy komoly + segédeszköz és hitetlenül hasznos + kiegészítõje a + Portupgrade portnak. + + + + + + + + Tom + Rhodes + Írta: + + + + + a FreeBSD biztonsági + figyelmeztetései + + A &os; biztonsági figyelmeztetései + + A &os; több más kereskedelmi + minõségû operációs rendszerhez + hasonlóan Biztonsági + figyelmeztéseket (Security Advisory) ad ki. Ezek a + figyelmeztetések általában megjelennek a + biztonsággal foglalkozó levelezési + listákon és a hivatkozott hibák + kijavítása után a megfelelõ + kiadások hibajegyzékében is. Ebben a + szakaszban megismerjük és értelmezzük + ezeket a figyelmeztetéseket, valamint megtudhatjuk, milyen + lépéseket kell megtennünk a rendszerünk + kijavításához. + + + Hogyan épül fel egy + figyelmeztetés? + + A &os; biztonsági figyelmeztetései az + alább látható formában jelennek meg, + amit mi most a &a.security-notifications.name; levelezési + listáról kölcsönöztünk. + + ============================================================================= +&os;-SA-XX:XX.UTIL Security Advisory + The &os; Project + +Topic: denial of service due to some problem + +Category: core +Module: sys +Announced: 2003-09-23 +Credits: Person@EMAIL-ADDRESS +Affects: All releases of &os; + &os; 4-STABLE prior to the correction date +Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) + 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) + 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) + 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) + 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) + 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) + 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) + 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) + 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) +CVE Name: CVE-XXXX-XXXX + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit +http://www.FreeBSD.org/security/. + +I. Background + + +II. Problem Description + + +III. Impact + + +IV. Workaround + + +V. Solution + + +VI. Correction details + + +VII. References + + + + + A Topic mezõben olvashatjuk + pontosan mi is maga a probléma. Alapvetõen + bemutatja az érintett biztonsági + figyelmeztetést és megemlíti a + sebezhetõ segédprogramot. + + + + A Category mezõ hivatkozik a + rendszer azon részére, amelyre a hiba + kihatással lehet. Értéke lehet + core, contrib vagy + ports. A core + kategória azt jelzi, hogy a sebezhetõség + a &os; legfontosabb komponenseit érinti. A + contrib kategória a &os; projekt + számára felajánlott szoftverek, mint + például a sendmail + sebezhetõségére utal. + Végezetül a ports + kategória jelzi, hogy a sebezhetõség + valamelyik, a Portgyûjteményben szereplõ + szoftverre érvényes. + + + + A Module mezõ a sebezhetõ + komponens helyét nevezi meg, például + sys. Ebben a példában azt + láthatjuk, hogy a sys modul a + hibás. Ezért a sebezhetõség egy + rendszermagban használt komponenst + érint. + + + + Az Announced mezõ a + biztonsági figyelmeztetés + kiadásának vagy széleskörû + kihirdetésének dátumát + rögzíti. Ez azt jelenti, hogy a + biztonsági csapat meggyõzõdött a + probléma létezésérõl + és a hibát orvosoló + javítás már felkerült a &os; + forráskódjába. + + + + A Credits mezõ azokat az + egyéneket vagy szervezeteket említi meg, akik + észlelték a sebezhetõséget + és jelentették. + + + + Az Affects mezõben + megadják, hogy a &os; melyik kiadásaira van + hatással a sebezhetõség. Ha a + rendszermag esetén lefuttatjuk az + ident parancsot az érintett + állományokra, akkor megtudhatjuk a pontos + revíziójukat. A portoknál a + verziószám a port neve után szerepel a + /var/db/pkg könyvtárban. + Ha a rendszerünket nem frissítettük + CVS-rõl és fordítottuk + újra, akkor nagy a + valószínûsége, hogy a + sebezhetõség minket is érint. + + + + A Corrected mezõ tartalmazza a a + kijavítás dátumát, + idejét, idõzónáját + és az ezt tartalmazó kiadást. + + + + Az ismert sebezhetõségek + adatbázisában (Common Vulnerabilities + Database, CVD) használt azonosítási + információk alapján végzett + keresések számára fenntartott. + + + + A Background mezõ adja meg + részleteiben a sebezhetõ programmal kapcsolatos + tudnivalókat. Az esetek + többségében itt írják le, + hogy miért jött létre az adott + eszköz a &os;-ben, mire használják + és hogyan keletkezett. + + + + A Problem Description mezõ a + biztonsági rést részletezi. Ebben a + részben szerepelhet a hibás + kódrészlet vagy akár még az is, + hogy miként kell vele elõidézni a + hibát. + + + + Az Impact mezõ a probléma + lehetséges hatásait írja + körül a rendszerben. Ez például + lehet egy DoS támadás, speciális + engedélyek ellopása vagy akár a + rendszeradminisztrátori jogok + megszerzése. + + + + A Workaround mezõ igyekszik + elfogadható megoldást nyújtani a + rendszerük frissítésére + képtelen rendszergazdák számára. + Ennek oka lehet az idõ rövidsége, a + hálózati elérhetõség vagy + más okokból fakadó + elcsúszás. Ennek ellenére a + biztonsági kérdéseket sosem szabad + félvállról venni, ezért a + sebezhetõ rendszereket vagy ki kell javítani + vagy valamilyen módon meg kell kerülni a + biztonsági rés + kialakulását. + + + + A Solution mezõ + utasításokkal segít a rendszer + kijavítását. Ez egy + lépésrõl lépésre tesztelt + és ellenõrzött módszer, amellyel a + rendszerünket megfelelõen ki tudjuk + javítani és biztonságossá + tenni. + + + + A Correction Details mezõ + mutatja a CVS-ág vagy + kiadás nevét, amelyben a pontokat + aláhúzásra cserélték. + Ezenkívül még az egyes ágakban az + érintett állományok + revízióját is mutatja. + + + + A References mezõ + általában a témával kapcsolatos + további forrásokat kínálja fel + URL, könyv, levelezési lista + vagy hírcsoport formájában. + + + + + + + + + + + Tom + Rhodes + Írta: + + + + + + a futó programok + nyilvántartása + + + A futó programok nyilvántartása + + A futó programok nyilvántartása olyan + biztonsági módszer, ahol a rendszergazda figyelemmel + kíséri a rendszer használatban levõ + erõforrásait, a felhasználók közti + megoszlását, gondoskodik a rendszer + felügyeletérõl és valamennyire nyomon + követi a felhasználók parancsait. + + Ennek a módszernek egyaránt megvannak a maga + elõnyei és hátrányai. Az egyik + elõnye, hogy a használatával a behatolás + egészen a betörés pontjáig + visszakövethetõ. Hátranya viszont, hogy a + futó programok nyilvántartása rengeteg + mennyiségû naplót generál és + ehhez sok lemezterületre lesz szükségünk. + Ebben a szakaszban végigjárjuk a programok + nyilvántartásának alapjait. + + + A futó programok + nyilvántartásának + engedélyezése és használata + + A futó programok nyilvántartását + elõször engedélyeznünk kell. Ehhez a + következõ parancsokat kell kiadnunk: + + &prompt.root; touch /var/account/acct + +&prompt.root; accton /var/account/acct + +&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf + + Miután aktiváltuk, a + nyilvántartást elkezdi számbavenni a + processzor kihasználtságát, a parancsokat + stb. A nyilvántartás emberek + számára nem olvasható formátumban + készül, ezért csak az &man.sa.8; + segédprogrammal tudjuk megnézni. Ha nem adunk meg + neki semmilyen opciót, akkor az sa + kilistázza a felhasználónkénti + hívásokat, az összes eltelt idõt + percben, a teljes processzor- és + felhasználói idõt percben, az I/O + mûveletek átlagos számát stb. + + A kiadott parancsokról a &man.lastcomm.1; programmal + tudunk tájékozódni. A + lastcomm segítségével ki + tudjuk íratni a felhasználók adott + terminálon kiadott parancsait is, mint + például: + + &prompt.root; lastcomm ls + trhodes ttyp1 + + Ezzel megjelenik a trhodes nevû + felhasználó ttyp1 + terminálon kiadott összes ismert + ls parancsa. + + Számos hasznos beállítást + és hozzájuk tartozó leírást + találhatunk még a &man.lastcomm.1;, &man.acct.5; + és &man.sa.8; man oldalakon. + + + +
+ + diff --git a/hu_HU.ISO8859-2/books/handbook/security/ipsec-crypt-pkt.pic b/hu_HU.ISO8859-2/books/handbook/security/ipsec-crypt-pkt.pic new file mode 100644 index 0000000000..af031b0bb7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/ipsec-crypt-pkt.pic @@ -0,0 +1,51 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +A: box wid 2.7 ht 0.55 "Forrás: A.B.C.D" "Cél: W.X.Y.Z" \ + ""; + down; + +B: box wid 2.7 ht 2.15 with .n at A.s; + +C: box wid 2.1 ht 0.55 "Forrás: A.B.C.D" "Cél: W.X.Y.Z" \ + "" with .n at A.s - (0,0.2); + down; + +D: box wid 2.1 ht 1.25 with .n at C.s; + +E: box wid 1.5 ht 0.55 "Forrás: 192.168.1.1" "Cél: 192.168.2.1" \ + "" with .n at C.s - (0,0.2); + +F: box wid 1.5 ht 0.3 "" with .n at E.s; + +G: line from E.ne + (1,0) to E.ne + (1.1,-0.0625); + line down (((E.ne.y - F.se.y) - 0.125) / 2) - 0.03125; + line down 0.03125 right 0.03125; + box "Az eredeti csomag" "privát IP címmel" with .w at \ + last line.end+(0.15,0) invis; + line from last line.end left 0.03125 down 0.03125; + line to F.se + (1.1,0.0625); + line from last line.end to F.se + (1,0); + +H: line from C.ne + (1.8,0) to C.ne + (1.9,-0.0625); + line down (((C.ne.y - D.se.y) - 0.125) / 2) - 0.03125; + line down 0.03125 right 0.03125; + box "A becsomagolt" "csomag" "valódi IP címmel" with .w at \ + last line.end+(0.15,0) invis; + line from last line.end left 0.03125 down 0.03125; + line to D.se + (1.9,0.0625); + line from last line.end to D.se + (1.8,0); + +I: line from A.ne + (2.6,0) to A.ne + (2.7,-0.0625); + line down (((A.ne.y - B.se.y) - 0.125) / 2) - 0.03125; + line down 0.03125 right 0.03125; + box "Titkosított csomag:" "a tartalma" "teljesen védett" \ + "bármilyen külsõ" "lehallgatás ellen" with .w at \ + last line.end+(0.15,0) invis; + line from last line.end left 0.03125 down 0.03125; + line to B.se + (2.7,0.0625); + line from last line.end to B.se + (2.6,0); +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/security/ipsec-encap-pkt.pic b/hu_HU.ISO8859-2/books/handbook/security/ipsec-encap-pkt.pic new file mode 100644 index 0000000000..db39a1f1a7 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/ipsec-encap-pkt.pic @@ -0,0 +1,18 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +A: box wid 2.1 ht 0.55 "Forrás: A.B.C.D" "Cél: W.X.Y.Z" \ + ""; + down; + +B: box wid 2.1 ht 1.25 with .n at A.s; + +C: box wid 1.5 ht 0.55 "Forrás: 192.168.1.1" "Cél: 192.168.2.1" \ + "" with .n at A.s - (0,0.2); + +D: box wid 1.5 ht 0.3 "" with .n at C.s; + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/security/ipsec-network.pic b/hu_HU.ISO8859-2/books/handbook/security/ipsec-network.pic new file mode 100644 index 0000000000..a705c19939 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/ipsec-network.pic @@ -0,0 +1,38 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +N1: "1. hálózat"; + move; + +A: box wid 1 ht 0.55 "Belsõ gépek:" "Win9x/NT/2K" "Unix" dashed; + " privát hálózat: 192.168.1.2-254" at A.e+(0.15,0) ljust; + line down at A.s; + +B: box "FreeBSD"; + " fxp1 privát IP: 192.168.1.1" at B.n above ljust; + " fxp0 publikus IP: A.B.C.D" at B.s below ljust; + circle rad 0.02 fill 1 at B.n; + circle rad 0.02 fill 1 at B.s; + line; + +C: box rad 0.10 wid 1 ht 0.55 "internet" dashed; + line; + +D: box "FreeBSD"; + " fxp0 publikus IP: W.X.Y.Z" at D.n above ljust; + " fxp1 privát IP: 192.168.2.1" at D.s below ljust; + circle rad 0.02 fill 1 at D.n; + circle rad 0.02 fill 1 at D.s; + line; + +E: box wid 1 ht 0.55 "Belsõ gépek:" "Win9x/NT/2K" "Unix" dashed; + " privát hálózat: 192.168.2.2-254" at E.e+(0.15,0) ljust; + +N2: left; + move at E.w; + "2. hálózat"; + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/security/ipsec-out-pkt.pic b/hu_HU.ISO8859-2/books/handbook/security/ipsec-out-pkt.pic new file mode 100644 index 0000000000..8e3b804b39 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/security/ipsec-out-pkt.pic @@ -0,0 +1,12 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS + +A: box wid 1.5 ht 0.55 "Forrás: 192.168.1.1" "Cél: 192.168.2.1" \ + ""; + +B: box wid 1.5 ht 0.3 "" with .n at A.s; + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/serialcomms/Makefile b/hu_HU.ISO8859-2/books/handbook/serialcomms/Makefile new file mode 100644 index 0000000000..b83d9a27bb --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/serialcomms/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= serialcomms/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml new file mode 100644 index 0000000000..b972903893 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml @@ -0,0 +1,4037 @@ + + + + + + Soros vonali kommunikáció + + + Áttekintés + + soros + kommunikáció + + A &unix; mindig is támogatta a soros vonali + kommunikációt. Tulajdonképpen az elsõ + &unix;-os gépek is soros vonalon kapták a + felhasználóktól a bemenetet és + ugyanígy küldték vissza a kimenetet. Az + idõk azóta már sokat változtak, hogy egy + átlagos terminál mindössze egy + 10 karakter per másodperc sebességû soros + nyomtatóból és egy billentyûzetbõl + állt. Ebben a fejezetben ismertetünk + néhány olyan megoldást, amellyel a &os; + képes soros vonalon keresztül + kommunikálni. + + A fejezet elolvasása során + megismerjük: + + + + hogyan kapcsoljunk terminálokat a &os; + rendszerünkre; + + + hogyan tárcsázzunk modem + segítségével távoli + számítógépeket; + + + hogyan tegyük lehetõvé + gépünkre a bejelentkezést távoli + felhasználók számára; + + + hogyan indítsuk a rendszerünket soros + konzolról. + + + + A fejezet elolvasásához ajánlott: + + + + egy új rendszermag + beállításának és + telepítésének ismerete (); + + + a &unix;-os engedélyek és a &unix; alatt + futtatott programok mûködtetésének + megértése (); + + annak a soros vonali hardvernek (modemnek vagy + többportos kártyának a) + kézikönyve, amelyet a &os;-vel használni + szeretnénk + + + + + + + Bevezetés + + + Alapfogalmak + + + bit per + másodperc + + + bps + + Bit per másodperc — az adatátvitel + sebessége + + + + + DTE + DTE + + Adatterminál eszköz (Data Terminal + Equipment) — ez például a + számítógépünk + + + + + DCE + DCE + + Adatkommunikációs eszköz (Data + Communications Equipment) — ez a modem + + + + + RS-232 + RS-232C kábel + + a hardveres soros vonali kommunikációhoz + szükséges EIA szabványú + kábel + + + + + Amikor ebben a fejezetben az adatátvitel + sebességérõl beszélünk, akkor + szándékosan nem használjuk a + baud fogalmát. A baud ugyanis a + kommunikációs eszközben adott idõ alatt + lezajló jelváltások + mennyiségét jelöli, miközben itt a + bps (bit per másodperc) kifejezés + használata a helyes (vagy + legalább is a szõrszálhasogatók + egyelõre megnyugodhatnak). + + + + + Kábelek és portok + + Ha a &os; rendszerünkhöz egy modemet vagy egy + terminált akarunk csatlakoztatni, akkor ahhoz a + számítógépünkben + szükség lesz egy szabad soros portra és egy + megfelelõ típusú kábelre. Ha + már tisztában vagyunk a rendelkezésre + álló hardverrel és a + hozzátartozó kábellel, akkor nyugodtan + átléphetjük ezt a részt. + + + A kábelek fajtái + + A soros kábeleknek több + különbözõ típusa van. + Közülük a céljainknak leginkább + megfelelõ két legismertebb változatuk az + ún. null-modem és a szabványos + (egyenes) RS-232-es soros kábelek. A + hardverhez tartozó dokumentációban + megtaláljuk, hogy pontosan melyik típus tartozik + hozzá. + + + A null-modem kábelek + + null-modem + kábel + + Egy null-modem kábel bizonyos jeleket, + többek közt a földet (Signal + Ground, SG), egyenesen küldi, másokat viszont + felcserélten. Például az + átküldött adat (Transmitted + Data, TD) jelzésû tû a kábel + másik végén a fogadott + adat (Received Data, RD) tûhöz fut + be. + + A terminálokhoz akár saját magunk + is le tudunk gyártani egy null-modem kábelt + (például ha a boltiakkal nem lennénk + megelégedve). A következõ + táblázatban az RS-232C jeleit és + érintkezõinek számozását + láthatjuk egy DB-25-ös csatlakozó + esetében. A szabvány a kábel + két 1-es tûjét összekapcsoló + vonalat védõföldnek + (Protective Ground, PD) nevezi, de ezt gyakran el is + hagyják. Némely terminál remekül + mûködik mindössze a 2-es, 3-as és 7-es + tûk használatával, miközben + mások az iménti példától + eltérõ kiosztást + igényelnek. + + + A DB-25 DB-25 közti null-modem + kábel + + + + + Jel + + + + Jel + + + + + + SG + 7 + párja: + 7 + SG + + + + TD + 2 + párja: + 3 + RD + + + + RD + 3 + párja: + 2 + TD + + + + RTS + 4 + párja: + 5 + CTS + + + + CTS + 5 + párja: + 4 + RTS + + + + DTR + 20 + párja: + 6 + DSR + + + + DTR + 20 + párja: + 8 + DCD + + + + DSR + 6 + párja: + 20 + DTR + + + + DCD + 8 + párja: + 20 + DTR + + + +
+ + Íme a mostanság elterjedt másik + két séma. + + + A DB-9 DB-9 közti null-modem + kábel + + + + + Jel + + + + Jel + + + + + + RD + 2 + párja: + 3 + TD + + + + TD + 3 + párja: + 2 + RD + + + + DTR + 4 + párja: + 6 + DSR + + + + DTR + 4 + párja: + 1 + DCD + + + + SG + 5 + párja: + 5 + SG + + + + DSR + 6 + párja: + 4 + DTR + + + + DCD + 1 + párja: + 4 + DTR + + + + RTS + 7 + párja: + 8 + CTS + + + + CTS + 8 + párja: + 7 + RTS + + + +
+ + DB-9 DB-25 közti + null-modem kábel + + + + + Jel + + + + Jel + + + + + + RD + 2 + párja: + 2 + TD + + + + TD + 3 + párja: + 3 + RD + + + + DTR + 4 + párja: + 6 + DSR + + + + DTR + 4 + párja: + 8 + DCD + + + + SG + 5 + párja: + 7 + SG + + + + DSR + 6 + párja: + 20 + DTR + + + + DCD + 1 + párja: + 20 + DTR + + + + RTS + 7 + párja: + 5 + CTS + + + + CTS + 8 + párja: + 4 + RTS + + + +
+ + + Amikor egy tû az átellenes oldalon + két másik tûhöz csatlakozik, akkor + azt általában úgy + valósítják meg, hogy a két + tût a saját oldalukon összekötik, + majd ezt kapcsolják hozzá a harmadik + tûhöz. + + + Ezek a megoldások a legnépszerûbbek. + Természetesen a tûk + összekötésének több más + variációja is létezik (ezekrõl az + RS-232 Made Easy c. könyvben + olvashatunk bõvebben), ahol az SG párja az SG, a + TD párja az RD, az RTS és a CTS párja + az DCD, a DTR párja a DSR és ugyanezek + fordítva. + +
+ + + Szabványos RS-232C kábelek + + RS-232C kábel + + A szabványos soros kábel az összes + RS-232C jelet közvetlenül átküldi. + Vagyis a kábel egyik végén levõ + átküldött adat tû a + másik végén is az + átküldött adat + tûhöz csatlakozik. Az ilyen típusú + kábeleket többnyire a + számítógépek és a modemek + között alkalmazzák, de egyes + termináltípusok esetében is + szükségünk lehet rá. + + +
+ + + A portok + + A soros port olyan eszköz, amelyen keresztül a + &os;-s gép és a terminál között + adatokat tudunk közvetíteni. Ebben a szakaszban + az ilyen portok különféle típusait + és ezek használatát ismertetjük &os; + alatt. + + + A portok típusai + + A soros portoknak több típusa + létezik. Mielõtt + vásárolnánk egy + készítenénk egy soros kábelt, + mindenképpen gyõzödjünk meg + róla, hogy csatlakoztatni tudjuk majd a &os;-s + rendszerünkhöz és a terminálhoz + egyaránt. + + A legtöbb terminálon DB-25-ös portot + találunk. A személyi + számítógépek, köztük + azok, amelyeken &os; fut, DB-25-ös és DB-9es + portokkal rendelkeznek. Ha a gépünkben egy + többportos soros kártya van, akkor ezeken + kívül még RJ-12-es és + RJ-45-ös portjaink is lehetnek. + + A hardverhez tartozó + dokumentációból tudjuk + kideríteni az adott port konkrét + fajtáját, de gyakran a port vizuális + vizsgálata is segíthet eldönteni a + kérdést. + + + + + A portok nevei + + &os; alatt az egyes soros portokat a + /dev könyvtárban + található eszközleírókon + keresztül tudjuk elérni. Ezeknek két + típusa van: + + + + A behíváshoz használt portok + nevei + /dev/ttydN + alakúak, ahol az N a + port sorszáma, ami nullától indul. + A behívó portok alapvetõen a + terminál esetében használatosak. A + behívó portok használatához + a soros vonalon az vonal + észlelése (Data Carrier Detect, + DCD) jelnek kell megbízhatóan + mûködnie. + + + + A híváshoz használt portok + nevei + /dev/cuadN + alakúak. A hívó portokat + terminálok esetében ritkán + alkalmazzák, helyettük inkább csak + modemekhez használják. A + hívó portokat akkor érdemes + használni, ha a soros kábel vagy a + terminál nem ismeri a DCD jelet. + + + A &os; 5.X és korábbi + változataiban a hívó portok neve + /dev/cuaaN + formátumú. + + + + + Ha a terminált az elsõ soros portra (ami + &ms-dos;-ban a COM1) + csatlakoztattuk, akkor a /dev/ttyd0 + segítségével fogunk rá + hivatkozni. Ha viszont a második soros porton + (más néven COM2) + található, akkor a + /dev/ttyd1 eszközt + használjuk, és így + tovább. + + + +
+ + + A rendszermag beállítása + + A &os; alapból négy soros portot + támogat. Az &ms-dos; világban ezeket rendre + COM1, COM2, + COM3 és + COM4 portoknak nevezik. A &os; jelen + pillanatban ismeri még a butább + többportos soros csatolókártyákat is, + például a BocaBoard 1008 és 2016 + típusokat, valamint több intelligensebb + többportos kártyát, például a + Digiboard és a Stallion Technologies + gyártmányait. Az alap rendszermag azonban csak a + szabványos COM portokat keresi. + + Ha ellenõrizni akarjuk, hogy a rendszermag rendben + megtalálta a soros portokat, akkor figyelmesen olvassuk + el a rendszerindítás során megjelenõ + üzeneteket, vagy az /sbin/dmesg parancs + kiadásával kérdezzük vissza a + rendszermag üzeneteit. Különösen a + sio kezdetû sorokra kell + figyelnünk. + + + Az alábbi paranccsal tudjuk leszûrni a + sio szövegrészt + tartalmazó sorokat: + + &prompt.root; /sbin/dmesg | grep 'sio' + + + Például, ha négy soros port + található a rendszerünkben, akkor a + rájuk vonatkozó rendszerüzenetek a + következõk lesznek: + + sio0 at 0x3f8-0x3ff irq 4 on isa +sio0: type 16550A +sio1 at 0x2f8-0x2ff irq 3 on isa +sio1: type 16550A +sio2 at 0x3e8-0x3ef irq 5 on isa +sio2: type 16550A +sio3 at 0x2e8-0x2ef irq 9 on isa +sio3: type 16550A + + Ha a rendszermagunk nem ismerte volna fel az összes + soros portot, akkor valószínûleg a + /boot/device.hints állományt + kell módosítanunk. Tegyük + megjegyzésbe vagy akár teljesen + távolítsuk is el azokat az eszközöket, + amelyekkel nem rendelkezünk. + + A soros portok és a többportos + kártyák beállításával + kapcsolatban a &man.sio.4; man oldalát olvassuk el. + Óvatosan bánjunk a &os; megelõzõ + változataiból származó + konfigurációs állományokkal, mert az + eszközök vonatkozó + beállításokat és azok + formátuma megváltozhatott azóta. + + + Az port IO_COM1 a port + 0x3f8, az IO_COM2 a + 0x2f8, az IO_COM3 a + 0x3e8 és az + IO_COM4 a 0x2e8 + beállítást helyettesíti. Ezek az + adott porthoz tartozó gyakori címeket + képviselik. A 4-es, 3-as, 5-ös és 9 + megszakítások is igen általánosak + ezeknél. A hagyományos soros portok viszont az + ISA buszos PC-k esetében nem + képesek a megszakításokon + osztozni. (A többportos kártyák azonban + lehetõvé teszik az 16550A számára, + hogy mindössze egy vagy két + megszakítást használjon.) + + + + + + Speciális + eszközállományok + + A rendszermagban található legtöbb + eszköz az ún. speciális + eszközállományokon keresztül + érhetõ el, melyek a /dev + könyvtárban találhatóak. A + sio eszközök a + /dev/ttydN + (behívó portok) és + /dev/cuadN + (hívó portok) állományok + használatával érhetõek el. A &os; + ezenkívül még külön + eszközállományokat biztosít az + inicializációhoz + (/dev/ttydN.init + és + /dev/cuadN.init + a &os; 6.X változata alatt, + /dev/ttyidN + és + /dev/cuaiaN a + &os; 5.X változata esetén) és a + zároláshoz + (/dev/ttydN.lock + és + /dev/cuadN.lock + &os; 6.X alatt, + /dev/ttyldN + és + /dev/cualaN + &os; 5.X alatt) Az inicializációs + állományok a port megnyitásakor + használhatóak a hozzátartozó + paraméterek beállítására, + például így tudjuk elküldeni a + crtscts utasítást az olyan + modemeknek, amelyek a forgalom + irányítását + RTS/CTS jelzéseken keresztül + valósítják meg. A zároló + állományokkal a portokra vonatkozó + zárolásokat állíthatjuk be, + így a felhasználók vagy a programok nem + lesznek képesek bizonyos paramétereket + megváltoztatni. A &man.termios.4;, &man.sio.4; és + &man.stty.1; man oldalakon olvashatunk részletesebben a + terminálok beállításairól, + valamint az eszközök + zárolásáról és + inicializálásáról. + + + + + A soros port beállítása + + ttyd + cuad + + A ttydN + (vagy cuadN) + lesz az az eszköz, amit majd az + alkalmazásainkból el akarunk érni. Amikor + egy futó program megnyit egy ilyen eszközt, mindig + tartoznak hozzá alapértelmezett terminál + I/O beállítások. Ezeket a + következõ paranccsal tudjuk lekérdezni: + + &prompt.root; stty -a -f /dev/ttyd1 + + Ha megváltoztatjuk az eszköz + beállításait, akkor azok egészen + addig érvényben is maradnak, amíg le nem + zárjuk. Ha tehát ezután újra + megnyitjuk, akkor minden visszaáll az + alapértelmezett állapotra. Az + alapértelmezett beállítások + megváltoztatásához a kezdeti + állapotot szimbolizáló eszközt + kell megnyitnunk és átállítanunk. + Például, ha alapból engedélyezni + akarjuk a módot, a 8 bites + kommunikációt és a + típusú + forgalomirányítást a + ttyd5 eszközön, akkor a + következõt gépeljük be: + + &prompt.root; stty -f /dev/ttyd5.init clocal cs8 ixon ixoff + + + rc állományok + rc.serial + + + A soros eszközök rendszerszintû + inicializálását az + /etc/rc.d/serial állomány + vezérli. Lényegében ez határozza + meg az összes soros eszköz alapértelmezett + beállítását. + + Ha bizonyos beállítások + megváltoztatását tiltani szeretnénk + az alkalmazások felé, akkor azt a + zárolt állapotot tartalmazó + eszközben kell rögzítenünk. + Például, ha a ttyd5 + eszköz sebességét fixen 57600 bps-ra + akarjuk beállítani, akkor írjuk be + ezt: + + &prompt.root; stty -f /dev/ttyd5.lock 57600 + + Ezután ha egy alkalmazás megnyitja a + ttyd5 eszközt és + megpróbálja a port sebességét + átállítani, akkor az továbbra is + 57600 bps marad. + + A kezdeti és a zárolt állapotot + képezõ eszközöket általában + csak a root felhasználó + számára szabad írhatóvá + tenni. + + +
+ + + + + + Sean + Kelly + Készítette: + + + + + Terminálok + + terminálok + + A terminálok olyankor kínálnak + kényelmes és költséghatékony + hozzáférést a &os; rendszerünkhöz, + amikor sem a gép konzolját, sem pedig a + hozzátartozó hálózatot nem + érjük el. Ebben a szakaszban olvashatjuk, + miként kell terminálokat használni &os; + alatt. + + + A terminálok alkalmazásai és + típusai + + Az eredeti &unix; rendszereknek nem voltak konzoljaik. + Ehelyett az emberek a soros portokra csatlakoztatott + terminálokon keresztül jelentkeztek be és + így futtattak rajtuk programokat. Ez nagyon + hasonlít ahhoz, mint amikor egy modem és egy + terminálprogram felhasználásával + betárcsázunk egy távoli gépre + és vele szöveges módban dolgozunk. + + Napjaink személyi + számítógépein azonban + találhatunk már akár nagy + felbontású megjelenítéssel + megáldott konzolokat is, habár a soros porton + keresztüli bejelentkezés lehetõsége + még mind a mai napig elérhetõ a legtöbb + &unix;-alapú rendszerben. Ez alól a &os; sem + kivétel. Ha rákötünk egy + terminált a gépünk egyik üres soros + portjára, akkor a megszokott módon képesek + vagyunk bejelentkezni a rendszerbe és futtatni + bármilyen szöveges programot, hasonlóan + ahhoz, ahogy azt a konzolban vagy az X Window Systemben egy + xterm ablakban megtehetjük. + + Ha egy irodában vagyunk, akkor egy &os; rendszerre + több terminált is kapcsolhatunk, melyek az + alkalmazottak asztalain foglalnak helyet. Otthoni + használat esetén egy kiöregedett + számítógép, például + egy régi IBM PC vagy egy &macintosh; is + ráköthetõ egy gyorsabb &os; rendszerre. Ennek + segítségével az egyébként + egyfelhasználós + számítógépünket egy + valódi többfelhasználós + rendszerré alakíthatjuk. + + A &os; esetén háromféle + terminálról beszélhetünk: + + + + A buta (dumb) + terminálok + + + + A terminálként + funkcionáló személyi + számítógépek + + + + Az X + terminálok + + + + A most következõ alszakaszokban ezeket + fejtjük ki részletesebben. + + + A buta terminálok + + A buta terminál alatt olyan + speciálizált eszközt értünk, + amellyel soros vonalon keresztül csatlakozunk + számítógépekhez. Azért + nevezik ezeket butának, mert + csupán annyi számítási + teljesítményt zsúfoltak + beléjük, hogy szöveget legyenek + képesek küldeni, fogadni és + megjeleníteni. Semmilyen program nem képes + rajtuk futni. Helyette az a + számítógép fogja a + szövegszerkesztõt, fordítóprogramot, + levelezõ klienst, játékot és a + többit futtatni, amelyre vele + kapcsolódtunk. + + A buta termináloknak többszáz, + különbözõ gyártmányú + fajtája létezik. Ilyenek például + a Digital Equipment VT-100 vagy a Wyse WY-75 + típusú termináljai. A &os; szinte + mindegyiküket ismeri. Egyes drágább + terminálok még grafikus + megjelenítésre is képesek, de ezeket a + lehetõségeket csak bizonyos szoftverek + tudják ténylegesen kihasználni. + + A buta terminálok leginkább olyan + munkahelyeken terjedtek el, ahol az alkalmazottaknak nincs + szükségük grafikus alkalmazások, + tehát például az X Window System + használatára. + + + + + Személyi számítógépek + mint terminálok + + Ha egy buta + terminál csupán szöveg + küldésére, fogadására + és megjelenítésére képes, + akkor bármelyik személyi + számítógép utána tudja + mindezt csinálni. Ehhez mindössze egy + megfelelõ kábelre és az adott gépen + futó terminál + emulációs szoftverre van + szükségünk. + + Az ilyen fajta megoldás nagyon elterjedt az otthoni + használat esetén. Például, ha + valamelyik családtagunk éppen szorgalmasan + dolgozik a &os; rendszerkonzolján, akkor a + rákapcsolt terminálon keresztül még + mi magunk is el tudunk végezni valamennyi szöveges + felületet igénylõ munkát. + + Az alap &os; rendszerben legalább két + segédprogram használható a soros vonali + kapcsolaton keresztüli munkára: a &man.cu.1; + és a &man.tip.1;. + + Egy &os; rendszerû kliensrõl így tudunk + csatlakozni egy másik rendszerre: + + &prompt.root; cu -l soros-vonali-eszköz + + Ahol a soros-vonali-eszköz a + rendszerünkben a soros portot jelölõ + speciális eszköz neve. A &os; 6.0 + elõtti változataiban ezek neve + /dev/cuaaN, + illetve a &os; 6.0 utáni változataiban + pedig + /dev/cuadN. + + Az eszköz nevében az N-es + rész a soros port sorszámát adja + meg. + + + A &os;-ben az eszközök + sorszámozása nullától + kezdõdik, nem pedig egytõl (ellentétben + tehát azzal, ahogy azt az &ms-dos; rendszerekben + és leszármazottaikban már + megszokhattuk). Ez azt jelenti, hogy amit az &ms-dos; + alapú rendszerekben COM1-nek + hívnak, az a &os;-ben általában a + /dev/cuad0. + + + + Egyes emberek más, többnyire a + Portgyûjteménybõl is elérhetõ + programokat szeretnek inkább használni. A + portok között találhatunk elég sok + olyan szoftvert, amely a &man.cu.1; és a &man.tip.1; + programokhoz hasonlóan mûködik. Ilyen + például a comms/minicom. + + + + + + Az X terminálok + + Az X terminálok a terminálok közül + a legfejlettebbek. Általában nem is soros + porton, hanem hálózaton, például + Etherneten keresztül csatlakoznak. Természetesen + nem csak szöveges alkalmazásokat, hanem + lényegében bármilyen X alkalmazást + képesek megjeleníteni. + + Az X terminálokról itt most csak a + teljesség kedvéért szólunk, de + ebben a fejezetben nem + szándékozunk tárgyalni az X + terminálok csatlakoztatását, + beállítását és + használatát. + + + + + + Beállítás + + Ebben a fejezetben ismertetjük mindazt, ami ahhoz kell, + hogy a &os; rendszerünkön engedélyezni tudjuk a + terminálon keresztüli bejelentkezéseket. + Feltételezzük, hogy a rendszermagunk + támogatja a terminálok által + használt soros portokat, illetve, hogy ezeket már + csatlakoztattuk is. + + Ha visszagondolunk a re, akkor + eszünkbe juthat, hogy a rendszer indításakor + az init nevû program felelõs az + összes futó program + irányításáért és + inicializálódásáért. Az + init egyik feladata, hogy beolvassa az + /etc/ttys állományt és + neki megfelelõen az elérhetõ + terminálokon elindítsa a getty + programot. A getty felelõs a + bejelentkezéshez szükséges + azonosító beolvasásáért + és a login program + elindításáért. + + Ennek megfelelõen tehát, ha a &os; + rendszerünkön terminálokat akarunk + beállítani, akkor ehhez a következõ + lépéseket kell megtennünk + root + felhasználóként: + + + + Az /etc/ttys + állományba vegyünk fel egy + bejegyzést a soros porthoz tartozó + /dev könyvtárbeli + eszközhöz, ha még nem szerepelne + benne. + + + + A porthoz adjuk meg a + /usr/libexec/getty programot, majd + hozzá az /etc/gettytab + állományból válasszuk ki a + megfelelõ getty + típust. + + + + Adjuk meg a terminál alapértelmezett + típusát. + + + + Állítsuk a portot on + (bekapcsolt) állapotúra. + + + + Adjuk meg, hogy a port secure + (biztonságos) legyen-e. + + + + Mondjuk meg az init programnak, hogy + olvassa újra az /etc/ttys + állományt. + + + + A másik lépés + kiegészítõ lépéseként az + /etc/gettytab állományban mi + magunk is létrehozhatunk egy saját + getty típust. A fejezetben + ehhez ugyan nem adunk segítséget, de ha + érdekel minket a téma, akkor ezzel kapcsolatban a + &man.gettytab.5; és &man.getty.8; man oldalakat + érdemes elolvasni. + + + Egy bejegyzés felvétele az + <filename>/etc/ttys</filename> + állományba + + Az /etc/ttys + állományban találhatjuk meg az + összes portot, ahonnan a &os; rendszerünk + engedélyezi a bejelentkezést. + Például a ttyv0, az + elsõ virtuális konzol is szerepel benne. Ezen a + bejegyzésen keresztül tudunk bejelentkezni a + konzolra. Ebben az állományban találjuk + meg még a többi virtuális konzol, soros + port és pszeudoterminál bejegyzéseit is. + A rögzített terminálok esetén + egyszerûen csak adjuk meg a soros porthoz tartozó + /dev könyvtárbeli + eszközt a /dev elõtag + nélkül (így például a + /dev/ttyv0 ttyv0 + néven fog megjelenni). + + Az alap &os; telepítésben egy olyan + /etc/ttys állomány + található, amely tartalmazza az elsõ + négy soros portot, a ttyd0 + eszköztõl kezdve a ttyd3 + eszközig. Ha tehát ezekre a portokra + csatlakoztatnunk egy terminált, akkor már nem + kell egy újabb bejegyzést felvennünk + hozzájuk. + + + Terminálok felvétele az + <filename>/etc/ttys</filename> + állományba + + Tegyük fel, hogy két eszközt + szeretnénk a rendszerünkhöz csatlakoztatni: + egy Wyse-50-es terminált és egy régi + 286-os IBM PC-t, amelyen a + Procomm + terminálszoftverrel emulálunk egy VT-100-as + terminált. A Wyse terminált a második + soros portunkra kötjük, míg a 286-ost a + hatodik soros portra (például egy + többportos soros vonali kártyán). A + nekik megfelelõ /etc/ttys + állománybeli bejegyzések így + fognak kinézni: + + ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure +ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure + + + + + Az elsõ mezõben általában a + terminálhoz tartozó eszközt + nevezzük meg, amely a /dev + könyvtárban található. + + + + A második mezõ a vonalhoz tartozó + végrehajtandó parancs, ami + általában a &man.getty.8;. A + getty mûködésbe + helyezi és megnyitja a vonalat, + beállítja a sebességét, + bekéri a felhasználó nevét, + majd elindítja a &man.login.1; programot. + + A getty program egy + (opcionális) paramétert fogad el a + parancssorában, ami a + getty típusa. Egy + ilyen getty típus + szabja meg a terminálhoz tartozó vonal + jellemzõit, például az + adatátviteli sebességet és a + paritást. A getty ezeket a + jellemzõket az /etc/gettytab + állományból olvassa be. + + A /etc/gettytab egyaránt + tartalmaz bejegyzéseket a régi és + új típusú terminálokhoz. Az + std szöveggel kezdõdõ + bejegyzések szinte majdnem minden esetben + mûködnek a hardveres terminálokkal. Az + ilyen bejegyzések figyelmen kívül + hagyják a paritást. 110 és + 115 200 bps között minden + adatátviteli sebességhez tartozik egy-egy + std bejegyzés. + Természetesen ebbe az állományba + akár a saját bejegyzéseinket is + elkészíthetjük. A &man.gettytab.5; + man oldal nyújt ehhez átfogó + segítséget. + + Amikor az/etc/ttys + állományban megadjuk a + getty típusát, + akkor ellenõrizzük, hogy a + beállításai megfelelnek a + terminálénak. + + A példánknál maradva: a Wyse-50 + nem használ paritást és + 38 400 bps-en üzemel. A 286-os + gép szintén nem dolgozik paritással + és 19200 bps-sel kapcsolódik. + + + + A harmadik mezõben adjuk meg + általában a vonalra csatlakozó + terminál típusát. Ez a + betárcsázós portok esetében + többnyire az unknown vagy a + dialup, mivel ezeken keresztül a + felhasználók gyakorlatilag szinte + bármilyen típusú terminállal + vagy szoftverrel be tudnak jelentkezni. A hardveres + termináloknál a terminál + típusa azonban nem változik, ezért + a &man.termcap.5; adatbázisban keressük ki a + nekik megfelelõt és adjuk meg ebben a + mezõben. + + A példánkban a Wyse-50 egy + valós termináltípust + használ, miközben a 286-oson futó + Procomm egy VT-100-as + típusú terminált + emulál. + + + + A negyedik mezõ azt mondja meg, hogy a port + engedélyezett-e vagy sem. Ha itt a + on értéket adjuk meg, + akkor az init elindítja a + második mezõben szereplõ + getty programot. Ha viszont itt az + off szerepel, akkor a + getty nem fog elindulni, így + ezen a porton be sem fogunk tudni jelentkezni. + + + + Az utolsó mezõben a port + megbízhatóságát kell + megjelölnünk. Ha biztonságosnak + (secure) állítjuk be a + portot, akkor rajta keresztül a + root (vagy bármelyik + nullás felhasználói + azonosítóval rendelkezõ) + felhasználó be tud jelentkezni. Amikor + viszont nem biztonságos + (insecure), akkor elõször + egy normál felhasználóval kell + bejelentkeznünk, majd a &man.su.1; programmal vagy + egy hozzá hasonló megoldással kell + rendszeradminisztrátorrá + válnunk. + + Leginkább az insecure + beállítást javasoljuk, még + hét lakat alatt õrzött + terminálok esetében is. + Valójában sokkal egyszerûbb + bejelentkezni, majd kiadni egy su + parancsot, ha netalán + rendszeradminisztrátori jogosultságokra + lenne szükségünk. + + + + + + + + A <command>init</command> utasítása az + <filename>/etc/ttys</filename> + újraolvasására + + Miután az /etc/ttys + állományban elvégeztük a + megfelelõ módosításokat, a + konfigurációs állomány + újraolvasásához küldjünk egy + SIGHUP (bontás) jelzést az + init programnak. Mint + például: + + &prompt.root; kill -HUP 1 + + + Mivel mindig az init indul el + elsõként a rendszerben, ezért a + hozzátartozó azonosító az 1 + lesz. + + + Ha mindent jól állítottunk be, a + kábelek is a helyükön vannak és a + terminálokat is bekapcsoltuk, akkor minden + terminálhoz elindul egy getty + program, és mindegyikõjükön megjelenik a + bejelentkezõ képernyõ. + + + + + + A terminálokkal kapcsolatos + hibajelenségek + + Olykor hiába igyekszünk a lehetõ + legaprólékosabban ügyelni minden apró + részletre, könnyen elõfordulhat, hogy + valamiért a terminál mégsem + mûködik rendesen. Következzen most egy lista + néhány ismert tünetrõl és azok + javasolt gyógymódjairól. + + + Nem jelenik meg a bejelentkezõ + képernyõ + + Ellenõrizzük, hogy a terminált rendesen + csatlakoztattuk és áram alá + helyeztük. Amikor egy személyi + számítógépet használunk + terminálnak, akkor nézzük meg, hogy a + terminál emulációs program a + megfelelõ soros porton fut. + + Vizsgáljuk meg, hogy a kábel mind a + két vége pontosan illeszkedik a portokba. + Gyõzõdjünk meg róla, hogy valóban + a megfelelõ típusú kábelt + használjuk. + + Nézzük meg, hogy a terminál és a + &os; is ugyanazon az adatátviteli sebességen + és paritási beállítással + megy. Ha képernyõvel rendelkezõ + terminálunk van, akkor a kontrasztot és + fényerõsséget is ellenõrizzük. + Ha nyomtatós terminálunk van, akkor + vizsgáljuk meg a papír és a tinta + állapotát. + + Gyõzõdjünk meg róla, hogy a + getty valóban fut és rendesen + kiszolgálja a terminált. Például + a ps paranccsal listázzuk ki az + összes jelenleg futó programot és + keressük meg köztük a getty + programot: + + &prompt.root; ps -axww|grep getty + + Ekkor látnunk kell a terminálhoz + tartozó bejegyzést. Például, ha a + getty második soros portot + jelképezõ ttyd1 + eszközön fut, és az + /etc/gettytab + állományból az + std.38400 nevû bejegyzést + használja, akkor ez jelenik meg: + + 22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 + + Amennyiben semmilyen getty nem fut, + akkor ellenõrizzük, hogy valóban + engedélyeztük-e a portot az + /etc/ttys állományban. A + ttys állomány + átírása után ne felejtsük el + kiadni a kill -HUP 1 parancsot sem. + + Ha a getty fut, de a terminálon + továbbra sem látjuk a bejelentkezõ + képernyõt, vagy megjelenik, de nem tudunk + gépelni, akkor elõfordulhat, hogy a + terminál vagy kábel nem támogatja a + hardveres kézfogást (handshaking). + Próbáljuk meg az /etc/ttys + állományban levõ + std.38400 bejegyzést az + 3wire.38400 bejegyzésre + kicserélni (de utána ne felejtsük el kiadni + a kill -HUP 1 parancsot). A + 3wire nagyon hasonlít az + std bejegyzéshez, de elhagyja a + hardveres kézfogást. A 3wire + alkalmazásakor viszont a puffer + telítõdésének megelõzése + érdekében próbálkozzunk az + adatátviteli sebesség + csökkentésével vagy + engedélyezzük a szoftveres + forgalomirányítást. + + + + + Amikor mindenféle szemét jelenik meg a + képernyõn + + Ellenõrizzük, hogy a &os; és a + terminál ugyanazt az adatátviteli + sebességet és paritási + beállítást használja. + Nézzük meg a futó getty + programokat, és hogy a megfelelõ + getty típussal mennek-e. Ha + nem, módosítsuk az + /etc/ttys állományt + és adjuk ki a kill -HUP 1 + parancsot. + + + + + A karakterek duplán jelennek meg, a jelszó + begépelésekor látható + + Állítsuk át a terminált (vagy + a terminál emulációs szofvert) + half duplex vagy local echo + módról full duplex + módra. + + + + + + + + + + Guy + Helmer + Készítette: + + + + + Sean + Kelly + Kiegészítette: + + + + + Betárcsázós + szolgáltatások + + betárcsázós + szolgáltatás + + Amikor egy &os; rendszert akarunk + betárcsázós szolgáltatásokhoz + beállítani, akkor az nagyon hasonlít a + terminálok csatlakoztatásához, azzal a + eltéréssel, hogy ilyenkor a terminálok + helyett modemekkel kell dolgoznunk. + + + Külsõ kontra belsõ modemek + + A külsõ modemek sokkal kényelmesebbnek + tûnnek betárcsázás + szempontjából, mivel az ilyenek gyakran a + statikus memóriájukban tárolt + paraméterek révén tulajdonképpen + félig elõre be vannak állítva + és sok esetben a fontosabb RS-232 jeleket + külön lámpácskákkal + mutatják. A villogó lámpák + könnyen elkápráztatják a laikusokat, + de emellett igen fontosak a modem + mûködõképességének + megállapításában is. + + Ezzel szemben a belsõ modemeken nem + található statikus memória, ezért + a paramétereik csak DIP kapcsolókkal + módosíthatóak. Még ha egy + belsõ modemem látunk is lámpákat, + akkor sem könnyû figyelni rájuk, mert a + gépünk burkolata úgyis eltakarja + ezeket. + + + Modemek és kábelek + + modem + + Ha külsõ modemet használunk, akkor + mindenképpen szükségünk lesz + hozzá még egy megfelelõ kábelre is. + Egy szabványos RS-232-es soros kábel erre + tökéletesen megfelel egészen addig, + amíg a normál jeleket így + kötötték be rajta: + + + A jelek neve + + + + + Rövidítés + Elnevezés + + + + + + RD + Received Data (fogadott adat) + + + + TD + Transmitted Data (küldött + adat) + + + + DTR + Data Terminal Ready (adatterminál + kész) + + + + DSR + Data Set Ready + (adatbeállítás + kész) + + + + DCD + Data Carrier Detect (vonal + észlése — az RS-232 + fogadást érzékelõ + vonala) + + + + SG + Signal Ground (föld) + + + + RTS + Request to Send (küldés + kérése) + + + + CTS + Clear to Send (küldés + engedélyezése) + + + +
+ + A &os;-nek 2400 bps felett a forgalom + irányításához az + RTS és CTS + jelekre van szüksége. A CD + jellel állapítja meg, hogy a hívás + létrejött vagy a bontották a vonalat, + és a DTR jel hozza + alapállapotba a modemet a munkamenet befejezése + után. Egyes kábelekben nem mindegyik jelet + vezették át, így ha például + gondjaink akadnak a bejelentkezõ képernyõvel + amikor a vonalat bontjuk, akkor érdemes + átnéznünk a kábelt. + + A többi &unix;-szerû operációs + rendszerhez hasonlóan a &os; is hardveres jelek + segítségével igyekszik kideríteni, + hogy a hívás megvalósult vagy + bontották a vonalat, valamint a hívás + befejezése után így bontja a vonalat + és állítja vissza a modemet. A &os; + igyekszik elkerülni a parancsok + küldését a modem felé, vagy a modem + állapotának folyamatos + ellenõrzését. Ha már van + némi tapasztalatunk a PC-alapú BBS-ek modemes + elérését illetõen, akkor + valószínûleg értjük ezek + okait. + +
+
+ + + A soros vonali felülettel kapcsolatos + megfontolások + + A &os; ismeri az NS8250-, NS16450-, NS16550- és + NS16550A alapú EIA RS-232C (CCITT V.24) + szabványú kommunikációs + felületeket. A 8250-es és a 16450-es + eszközök egykarakteres pufferrel rendelkeznek. A + 16550-es eszközök 16 karakteres puffert tartalmaznak, + amellyel jobb teljesítmény érhetõ el. + (A sima 16550-esben levõ hibák miatt azonban ez a 16 + karakteres puffer nem használható ki rendesen, + ezért lehetõleg a 16550A verziót + használjuk). Mivel az operációs rendszer + részérõl az egykarakteres eszközök + jóval több törõdést + igényelnek, mint a 16 karakteres eszközök, + ezért inkább a 16550A alapú soros + felületi kártyákat ajánljuk. Amikor a + rendszer egyszerre több soros portot is kezel, vagy + erõs terhelés alatt áll, akkor a 16550A + alapú kártyákról + általában az is elmondható, hogy kisebb + hibával dolgoznak. + + + + + Egy gyors áttekintés + + getty + + Ahogy arról már a terminálok + esetében szó esett, az init az + összes betárcsázós kapcsolathoz + tartozó soros porthoz elindít egy + getty programot. Például, ha a + modemet a /dev/ttyd0 eszközre + kapcsoltuk, akkor a ps ax parancs + kimenetében ezt láthatjuk: + + 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 + + Amikor egy felhasználó felhívja a + modemet és az kapcsolódik, akkor a modem egy + CD (Carrier Detect) jelet küld. A + rendszermag ekkor tudomásul veszi a vonal + észlelését és a + getty segítségével + megindítja a kommunikációt. A + getty egy login: + szöveget küld át a vonalhoz megadott + sebességgel. A getty elkezdi + figyelni, hogy a értelmes karakterek érkeznek-e + vissza, és egy átlagos + konfigurációban, ha ezt szemétnek + találja (mert például a modem nem a + getty számára + beállított sebességgel csatlakozott), akkor + megpróbálja egészen addig hangolni a vonal + sebességét, amíg feldolgozásra + alkalmas karaktereket nem kap. + + /usr/bin/login + + Miután a felhasználó megadta a + felhasználói nevét, a + getty elindítja a + /usr/bin/login programot, amely befejezi a + beléptetést a felhasználó + jelszavának bekérésével és + annak elfogadása esetén a + hozzátartozó parancsértelmezõ + elindításával. + + + + + A konfigurációs + állományok + + &os; rendszerünkben a betárcsázós + kapcsolatok engedélyezéséhez az + /etc könyvtárban három + állomány módosítására + lesz szükségünk. Közülük az + elsõ, az /etc/gettytab a + /usr/libexec/getty démon + beállításait tartalmazza. A + második, az /etc/ttys az + /sbin/init számára mondja + meg, hogy melyik tty + eszközökhöz tartozik getty. + Végezetül a portok + inicializálásához kötõdõ + beállításokat az + /etc/rc.d/serial szkriptben kell + megadnunk. + + Két iskola jött létre + aszerint, hogy &unix; alatt hogyan használják a + betárcsázós modemeket. Az egyik csoport + úgy szereti beállítani a modemeit és + rendszerit, hogy a távoli felhasználó + által választott sebességtõl + függetlenül a számítógép + és a modem közti RS-232 felület egy fix + sebességen fut. Ennek a + beállításnak megvan az az elõnye, hogy + a távoli felhasználó ilyenkor szinte + azonnal megkapja a bejelentkezõ képernyõt. A + hátránya viszont, hogy ebben az esetben a rendszer + nem ismeri a felhasználó valódi + adatátviteli sebességét, ezért az + olyan teljes képernyõs alkalmazások, mint + például az Emacs, nem + lesznek képesek a lassabb kapcsolatokhoz szabni a + megjelenítésüket. + + A másik csoport a modemek RS-232-es + felületét a távoli felhasználó + kapcsolódási sebessége szerint + állítja be. Így például egy + V.32bis (14,4 Kbps) kapcsolat esetén a modemhez + tartozó RS-232 felület 19,2 Kbps-on fog menni, + miközben a 2400 bps sebességû + kapcsolatokhoz egy vele azonos sebességû RS-232-es + felület fog tartozni. Mivel a getty nem + képes kommunikálni a modemek által + lejelentett csatlakozási sebességen, ezért + úgy próbálja azt + megállapítani, hogy elküldi a + login: szöveget az alap + sebességgel, majd figyeli a válaszul + érkezõ karaktereket. Ha a felhasználó + ilyenkor szemetet lát, akkor feltételezik, hogy + addig fogja nyomkodni az Enter billentyût, + amíg valami értelmes szöveget meg nem + lát. Amikor az adatátviteli sebesség + eltér, akkor a getty ebbõl + csupán csak annyit vesz észre, hogy a + felhasználó szemetet küld, + ezért egy újabb sebességgel + megpróbálja megint elküldeni a + login: szöveget. Hivatalosan ez a + folyamat ismétlõdik orrvérzésig, de + általában csak egy-két billentyût kell + leütni a megfelelõ + beállításokhoz. Nyilvánvaló, + hogy ilyenkor a bejelentkezés messze nem olyan + zavartalan, mint a rögzített + sebességû esetben, de így a lassabb + kapcsolattal rendelkezõ felhasználók is jobb + használatóságot kapnak a teljes + képernyõs programokkal. + + Ebben a szakaszban egy valamennyire kiegyensúlyozott + beállítást igyekszünk bemutatni, de + részben elfogunk hajlani abban az irányba, amikor + a modem a kapcsolat sebességét követi. + + + <filename>/etc/gettytab</filename> + + /etc/gettytab + + A /etc/gettytab egy + &man.termcap.5;-szerû állomány, amely a + &man.getty.8; beállításait tartalmazza. + A &man.gettytab.5; man oldalon olvashatunk az + állomány pontos + felépítésérõl és benne + felsorolt beállításokról. + + + A rögzített sebességû + beállítás + + Ha a modem kommunikációs + sebességét rögzíteni akarjuk, + akkor ehhez többnyire semmit sem kell + megváltoztatnunk az + /etc/gettytab + állományban. + + + + + Az alkalmazkodó sebességû + beállítás + + Az /etc/gettytab + állományban létre kell hoznunk egy + olyan bejegyzést, amelyen keresztül a + getty tudni fogja, hogy milyen + sebességeken akarjuk használni a modemet. Ha + egy 2400 bps sebességû modemünk van, + akkor hozzá a már meglevõ + D2400-as bejegyzést kell + használnunk. + + # +# A gyors betárcsázós terminálokhoz íme egy 2400/1200/300-as váltás +# (bárhonnan kezdõdhet): +# +D2400|d2400|Fast-Dial-2400:\ + :nx=D1200:tc=2400-baud: +3|D1200|Fast-Dial-1200:\ + :nx=D300:tc=1200-baud: +5|D300|Fast-Dial-300:\ + :nx=D2400:tc=300-baud: + + Ha ennél gyorsabb modemünk van, akkor + már mindenképpen fel kell vennünk + hozzá egy új bejegyzést az + /etc/gettytab állományba. + Ezzel a beállítással egy 14,4 Kbps + sebességû modemet tudunk legfeljebb + 19,2 Kbps-en használni: + + # +# Kiegészítések egy V.32bis modemhez: +# +um|V300|High Speed Modem at 300,8-bit:\ + :nx=V19200:tc=std.300: +un|V1200|High Speed Modem at 1200,8-bit:\ + :nx=V300:tc=std.1200: +uo|V2400|High Speed Modem at 2400,8-bit:\ + :nx=V1200:tc=std.2400: +up|V9600|High Speed Modem at 9600,8-bit:\ + :nx=V2400:tc=std.9600: +uq|V19200|High Speed Modem at 19200,8-bit:\ + :nx=V9600:tc=std.19200: + + Ennek eredménye egy 8 bites, + paritásmentes kapcsolat lesz. + + A fenti példában a + kommunikációt 19,2 Kbps-en (V.32bis + kapcsolaton) kezdjük, majd utána haladunk + végig a 9600 bps (V.32), 2400 , + 1200 bps és 300 bps sebességû + kapcsolatokon, majd vissza ismét a 19,2 Kbps-re. + Az adatátviteli sebesség ilyen + típusú váltogatását az + nx= (next table, azaz + következõ táblázat) + tulajdonság segítségével + valósítják meg. Minden sorban + látható még egy tc= + (table continuation, vagyis a + táblázat folytatása) + bejegyzés is, amivel az adott adatátviteli + sebesség szabványos + beállításait adjuk meg. + + Ha egy 28,8 Kbps sebességû + modemünk van és/vagy egy 14,4 Kbps + sebességû modemen akarunk + tömörítést használni, akkor a + 19,2 Kbps-nél nagyobb + kommunikációs sebességet kell + használnunk. Íme egy olyan + gettytab. ami 57,6 Kbps-rõl + indít: + + # +# A V.32bis vagy V.34 modemekhez kiegészítés, +# 57,6 Kbps-rõl indulunk: +# +vm|VH300|Very High Speed Modem at 300,8-bit:\ + :nx=VH57600:tc=std.300: +vn|VH1200|Very High Speed Modem at 1200,8-bit:\ + :nx=VH300:tc=std.1200: +vo|VH2400|Very High Speed Modem at 2400,8-bit:\ + :nx=VH1200:tc=std.2400: +vp|VH9600|Very High Speed Modem at 9600,8-bit:\ + :nx=VH2400:tc=std.9600: +vq|VH57600|Very High Speed Modem at 57600,8-bit:\ + :nx=VH9600:tc=std.57600: + + Ha lassú a processzorunk, vagy a rendszerünk + túlságosan terhelt és nincs 16550A + típusú soros portunk, akkor 57,6 Kbps-en + sio silo hibák + keletkezhetnek. + + + + + + <filename>/etc/ttys</filename> + + /etc/ttys + + Az /etc/ttys állomány + beállításáról már a + adott képet. Ez a modemek + esetében sem tér el különösebben, + habár a getty programnak más + termináltípust és + -beállításokat kell átadnunk. + Akár rögzített, akár + alkalmazkodó sebességet akarunk + beállítani, ennek általános alakja + az alábbi: + + ttyd0 "/usr/libexec/getty xxx" dialup on + + A sorban látható elsõ elem a + megfelelõ speciális eszköz neve — jelen + esetben ez a ttyd0, amely a + /dev/ttyd0 eszközre vonatkozik + és ezt fogja a getty figyelni. A + második elem, vagyis a "/usr/libexec/getty + xxx" (ahol a + xxx helyére kell + beírni a megfelelõ gettytab + állománybeli bejegyzést nevét) + lesz az a parancs, amelyet az init + meghív. A harmadik elem, a dialup a + terminálok alapértelmezett típusa. A + negyedik paraméter, az on jelzi az + init programnak, hogy aktiválja a + vonalat. A sorban megjelenhetne továbbá + még egy ötödik paraméter is, a + secure, de ezt csak olyan terminálok + esetében érdemes megadni, amelyek fizikailag + megbízhatóak (például a + rendszerkonzol). + + Az alapértelmezett termináltípus + (vagyis a fenti példában a + dialup) a helyi + beállításoktól függ. A + betárcsázós vonalak esetében + hagyományosan a dialup a + terminál alapértelmezett típusa, amit + aztán a felhasználók a + bejelentkezéskor lefutó szkriptjeiken + keresztül a automatikusan át tudnak + állítani a nekik megfelelõ + terminálra. A szerzõ saját + rendszerében azonban inkább a + vt102 termináltípust volt + érdemes megadni alapértelmezettként, + mivel ott a felhasználók csak ilyen + típusú terminálokat + használnak. + + Miután az /etc/ttys + állományban elvégeztük a + szükséges módosításokat, egy + HUP jelzéssel figyelmeztessük + az init programot az újbóli + beolvasására. Ehhez a következõ + parancs ajánlott: + + &prompt.root; kill -HUP 1 + + Ha még csak állítjuk be + elõször a rendszerünket, akkor az + init figyelmeztetése elõtt + legyünk türelmesek, és várjuk meg, + amíg a modemek befejezik az + inicializálást és kapcsolódnak a + vonalakra. + + + A rögzített sebességû + beállítás + + A rögzített sebesség + beállításánál a + ttys állományban a + getty paramétereként egy + szintén rögzített sebességû + bejegyzést kell megadnunk. Például az + olyan modemeknél, ahol a sebességet + 19,2 Kbps-re rögzítjük, a + ttys így fog + kinézni: + + ttyd0 "/usr/libexec/getty std.19200" dialup on + + Amennyiben a modemünk nem ezen a sebességen + üzemelne, akkor az + std.sebesség + paramétert használjuk az + std.19200 helyett. Elõtte azonban + ne felejtsük el ellenõrizni, hogy a megadott + típus szerepel-e az + /etc/gettytab + állományban. + + + + + Az alkalmazkodó sebességû + beállítás + + Az alkalmazkodó sebességû + beállításnál a + ttys állományban az + /etc/gettytab + állományból a megfelelõ + auto-baud (sic) kell megadnunk. + Például, ha modemünk + kezdõsebessége 19,2 Kbps (és a + gettytab ehhez tartalmaz egy + V19200 nevû bejegyzést), + akkor a ttys így fog + kinézni: + + ttyd0 "/usr/libexec/getty V19200" dialup on + + + + + + <filename>/etc/rc.d/serial</filename> + + + rc állományok + rc.serial + + + A gyorsabb, mint például a V.32, V.32bis + és V.34 modemeknél meg kell adnunk a hardveres + forgalomirányítás + (RTS/CTS) használatát is. Az + /etc/rc.d/serial + állományban tudjuk megadni a &os; rendszermagban + a vonal használatához szükséges + vezérlési beállításokra + vonatkozó stty parancsokat. + + Például állítsuk be az 1-es + sorszámú (vagyis a + COM2) soros porton a + crtscts termios + beállítást a behíváshoz + és a híváshoz használt + eszközök inicializálásakor. Ehhez a + következõ sorokat kell felvennünk az + /etc/rc.d/serial + állományba: + + # A soros portok kezdeti beállításai: +stty -f /dev/ttyd1.init crtscts +stty -f /dev/cuad1.init crtscts + + + + + + A modemek beállításai + + Ha olyan modemeink vannak, amelyek paramétereit egy + statikus memóriában tárolták le, + akkor ezek beállításához egy + terminálprogramot kell használnunk (amilyen + például &ms-dos; alatt a + Telix vagy &os; alatt a + tip). A modemet a getty + programnak megadott kezdeti sebességen csatlakoztassuk + és az alábbi elvárások + alapján állítsuk be a + paramétereit: + + + + Kapcsolódáskor CD + jelzése. + + + + Mûködéskor DTR + jelzése. A DTR küldésekor bontsa a + vonalat és hozza alapállapotba a + modemet. + + + + CTS vezérlésû + kimenõ adatforgalom. + + + + A XON/XOFF + forgalomvezérlés tiltása. + + + + RTS vezérlésû + bejövõ adatforgalom. + + + + Csendes mód (ne adjon + értesítést az + eredményekrõl). + + + + A parancsokat ne írja vissza. + + + + A modemhez tartozó dokumentációban kell + utánajárnunk, hogy milyen parancsok és/vagy + DIP kapcsolók + átállításával lehet + mindezeket elérni. + + Például, ha a fenti paramétereket egy + &usrobotics; &sportster; 14400-as külsõ modem + esetében a következõ neki kiküldött + paranccsal lehet beállítani: + + ATZ +AT&C1&D2&H1&I0&R2&W + + Ilyenkor még akár más egyéb + paramétereket is beállíthatunk, + például a V.42bis és/vagy az MNP5 + tömörítést. + + Az &usrobotics; &sportster; 14400 külsõ modemen + ezenkívül még találunk + néhány DIP kapcsolót is. Az ilyen modemek + esetében például ezeket a + beállításokat tudjuk + használni: + + + + 1. kapcsoló: FEL — normális + DTR + + + + 2. kapcsoló: N/A (verbális/numerikus + eredményjelzõ kódok) + + + + 3. kapcsoló: FEL — az + eredményjelzõ kódok + küldésének tiltása + + + + 4. kapcsoló: LE — nem küldi vissza a + parancsokat + + + + 5. kapcsoló: FEL — automatikus + válasz + + + + 6. kapcsoló: FEL — normális Carrier + Detect + + + + 7. kapcsoló: FEL — a + memóriában tárolt + alapértelmezések betöltése + + + + 8. kapcsoló: N/A (intelligens/buta + mód) + + + + A modemeknél az eredményjelzõ + kódok kikapcsolása/letiltása ezért + fontos, mert így el tudunk kerülni az olyan + problémákat, hogy a getty + tévesen egy login: promptot küld a + parancs módban levõ modemnek, amikor az + visszaküldi a parancsot és az eredmény + kódját. Ennek eredménye egy + hosszúra nyúló, zavaros + társalgás lesz a getty + és a modem között. + + + A rögzített sebességû + beállítás + + A rögzített sebességû + konfiguráció használata esetén + úgy kell beállítanunk a modemet, hogy a + konkrét adatátviteli sebsségtõl + függetlenül is egy állandó + sebességû kapcsolat álljon fenn a + számítógép és a modem + között. A &usrobotics; &sportster; 14400-as + külsõ modem esetében a most + következõ parancsokkal tudjuk rögzíteni + a kapcsolat sebességét: + + ATZ +AT&B1&W + + + + + Az alkalmazkodó sebességû + beállítás + + Amikor változó sebességû + konfigurációval dolgozunk, akkor a modemet + úgy kell beállítani, hogy a + bejövõ hívásnak megfelelõ + adatátviteli sebességre váltson a soros + portján. A &usrobotics; &sportster; 14400-as + külsõ modem esetében az alábbi + parancsokkal rögzítjük a modemnek + küldött hibamentesített parancsok + sebességét, miközben + engedélyezzük, hogy a soros port sebessége + változhasson a nem hibamentesített + kapcsolatoknál: + + ATZ +AT&B2&W + + + + + A modem beállításainak + ellenõrzése + + A legtöbb nagysebességû modem + biztosít valamilyen lehetõséget arra, hogy + emberi formában is le tudjuk kérdezni a + belsõ mûködésének + paramétereit. A &usrobotics; &sportster; 14400-as + külsõ modem esetében az + ATI5 parancs a statikus + memóriában tárolt + beállításokat mutatja meg. A modem + valós mûködési paramétereit + (amit ugyebár befolyásolnak a DIP + kapcsolók állásai is) viszont az + ATZ majd ATI4 parancsok + küldésével tudjuk lekérni. + + Ha azonban másmilyen márkájú + modemünk lenne, akkor a modem + leírásában próbáljunk + tájékozódni arról, miként + tudjuk a modem beállításait + ellenõrizni. + + + + + + Hibaelhárítás + + Ebben a szakaszban bemutatunk néhány + lépést, amelyeken keresztül + ellenõrizhetjük a rendszerünkhöz + csatlakoztatott modemet. + + + A &os; rendszer ellenõrzése + + Csatlakoztassuk a modemet a &os; rendszerre, + indítsuk be a gépet, majd ezután + figyeljük a modemünk állapotát + jelzõ lámpákat, hogy közülük + a DTR világít-e, amikor a + login: felirat megjelenik a rendszerkonzolon. + Amennyiben erre a válasz igen, akkor az arra utal, hogy + a &os; a hozzátartozó + kommunikációs porton elindította a + megfelelõ getty programot és a + modem várja a hívásokat. + + Amikor viszont a DTR lámpa nem + világít, a konzolon keresztül + jelentkezzünk be a &os; rendszerbe és adjuk ki egy + ps ax parancsot, amivel így + ellenõrizni tudjuk, hogy a porthoz tartozó + getty elindult. A futó programok + között tehát valami ilyesmit kell majd + látnunk: + + 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 + 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 + + Ha viszont például ezt látjuk: + + 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 + + és modem még nem fogadott + hívást, akkor ez azt jelenit, hogy a + getty megnyitotta a + kommunikációs csatornát. Ez utalhat + egyaránt egy hibás kábelre vagy a modem + helytelen beállítására, mivel a + getty egészen addig nem lesz + képes megnyitni az adott portot, amíg a modem + vissza nem küld neki egy CD (Carrier + Detect) jelet. + + Ha a listában az adott + ttydN + eszközhöz semmilyen getty + programot nem találunk, akkor újra + nézzük át az /etc/ttys + állományban szereplõ bejegyzéseket, + mert elõfordulhat, hogy azokban vétettünk + valamilyen hibát. Emellett még a + /var/log/messages naplóban is + érdemes utánanézni, hátha az + init vagy a getty + küldött valamilyen hibáról + értesítést. Ha még ezek + után sem találunk semmit, akkor megint + kezdjük el keresni hibákat, hiányzó + bejegyzéseket vagy eszközöket az + /etc/ttys, + /etc/gettytab és a megfelelõ + /dev/ttydN + állományokban. + + + + + A betárcsázás + kipróbálása + + Próbáljunk meg bejutni a rendszerünkbe. + Ehhez a távoli rendszeren ne felejtsük el + beállítani a 8 bites adatátvitelt + és az 1 stopbitet, illetve a paritást + kikapcsolni. Ha erre közvetlenül nem kapunk egy + bejelentkezési képernyõt vagy csak + szemét jelenik meg, akkor kb. + másodpercenként egyszer nyomjuk le az + Enter billentyût. Ha még + ezután sem látjuk a bejelentkezési + képernyõt felbukkani, akkor + próbáljunk kiküldeni egy + BREAK parancsot. Ha a + híváshoz nagysebességû modemet + használunk, akkor próbáljuk meg a modem + sebességét rögzíteni és + úgy tárcsázni (ezt például + a &usrobotics; &sportster; modemnél az + AT&B1 paranccsal tudjuk + elérni): + + Ha viszont még ezek után sem kapjuk meg a + bejelentkezõ képernyõt, akkor a + /etc/gettytab állományban + megint nézzük át az összes + beállítást: + + + + Az /etc/ttys + állományban megadott alaptulajdonság + neve egyezik az /etc/gettytab + állományban + találhatóval. + + + + Mindegyik nx= bejegyzés + után egy másik gettytab + tulajdonság neve jön. + + + + Mindegyik tc= bejegyzés + után egy másik gettytab + tulajdonság neve következik. + + + + Ha hívunk, de a &os; rendszerünkre kapcsolt + modem továbbra sem veszi fel, akkor a modem + beállításai között + ellenõrizzük, hogy a DTR jel + küldésekor a modem fogadja-e a + hívást. Ha úgy tûnik, hogy a modem + minden ezzel kapcsolatos beállítása + stimmel, akkor nézzük meg, hogy a modem + lámpái közül a DTR + világít-e (már ha van ilyen). + + Ha mindent többször is + végignéztünk és még mindig + nem leljük a megoldást, akkor tartsunk egy kis + szünetet és térjünk vissza a + problémához késõbb. Ha még + ezután sem tudjuk mûködésre + bírni, akkor küldjünk egy levelet a + &a.questions; címére, amelyben leírjuk a + modemünket és a vele kapcsolatos + problémát, és a lista tagjai majd + megpróbálnak nekünk segíteni. + + + + +
+ + + A betárcsázós + szolgáltatások használata + + betárcsázós + szolgáltatások + használata + + A következõkben arra vonatkozóan + igyekszünk tanácsokat adni, amikor mi magunk akarunk + modemmel csatlakozni valamilyen + számítógéphez. Ezek tehát + olyan esetekben hasznosak, amikor egy távoli géppel + akarunk terminálkapcsolatot + létesíteni. + + A BBS-ek használatára is + érvényes. + + Ez ilyen típusú kapcsolatok kifejezetten + hasznosak tudnak lenni olyan esetekben, amikor az interneten el + akarunk érni egy állományt, de gondjaink + akadtak a PPP használatával. Ha + például egy állományt akarunk + letölteni, de a PPP valamiért nem mûködik, + akkor ezt a terminál alapú kapcsolaton + keresztül is meg tudjuk tenni. Ilyenkor egy zmodem + segítségével tudjuk áttölteni a + számítógépünkre. + + + A gyári Hayes-modem erre nem alkalmas, mihez tudunk + vele kezdeni? + + A tip man oldala valójában + már nem is teljesen aktuális, ugyanis tartalmaz + egy beépített + Hayes-tárcsázót. Úgy tudjuk + engedélyezni, ha az /etc/remote + állományban megadjuk az + at=hayes + beállítást. + + A Hayes-eszközök meghajtója nem elég + ügyes ahhoz, hogy felismerje az újabb modemek + által felkínált fejlettebb + lehetõségeket — például a + BUSY, NO DIALTONE vagy a + CONNECT 115200 üzenetek csak + megzavarják. Ezért a tip + használata során kapcsoljuk ki ezeket az + üzeneteket (az ATXO&W + paranccsal). + + Emellett még érdemes tudni, hogy a + tip a híváskor 60 + másodpercig vár. A modemünkön + ennél kisebb idõt kell beállítanunk, + máskülönben a tip azt hiszi, + hogy valamilyen kommunikációs probléma + merült fel. Ehhez próbálkozzunk az + ATS7=45&W paranccsal. + + + Az alaprendszerben levõ tip nem + teljesen támogatja a Hayes-modemeket. Ezt úgy + orvosolhatjuk, ha a + /usr/src/usr.bin/tip/tip + könyvtárban található + tipconf.h állományt + némileg módosítjuk. A mûvelet + elvégzéséhez természetesen + szükségünk lesz a rendszer forrásaira + is. + + A #define HAYES 0 sor írjuk + át a #define HAYES 1 sorra. Ezt + követõen adjuk ki a make majd a + make install parancsot. Innentõl + kezdve már minden remekül + mûködik. + + + + + + Hogyan adjuk meg ezeket az AT parancsokat? + + /etc/remote + + Az /etc/remote + állományban hozzunk létre egy + direct bejegyzést. Például, + ha a modemünk az elsõ soros porton, vagyis a + /dev/cuad0 eszközön + tanyázik, akkor a következõ sort kell + beleírnunk: + + cuad0:dv=/dev/cuad0:br#19200:pa=none + + A br tulajdonságnál a modem + által ismert legnagyobb adatátviteli + sebességet adjuk meg. Ezután gépeljük + be a tip cuad0 parancsot és már + kapcsolódunk is a modemhez. + + Vagy root + felhasználóként a cu + parancsot is használhatjuk: + + &prompt.root; cu -lvonal -ssebesség + + Itt a vonal a soros port + (például /dev/cuad0) + és a sebesség annak + sebessége (például + 57600) lesz. Miután befejeztük + az AT parancsok kiadását, az ~. + begépelésével tudunk kilépni. + + + + + A pn tulajdonságnál a <literal>@</literal> + jel nem használható! + + A pn (phone number) tulajdonság + értékében szereplõ + @ jel segítségével az + /etc/phones állományban + tudunk hivatkozni egy telefonszámra. A + @ a tulajdonságokat + tároló állományok azonban, + így például az + /etc/remote állomány + esetén is megkülönböztetett + jelentéssel bírnak. Ezért itt csak egy + visszaper jellel tudjuk beírni: + + pn=\@ + + + + + Hogyan hívjunk fel egy számot + parancssorból? + + Tegyünk egy általános + bejegyzést az /etc/remote + állományunkba. Például egy + ilyet: + + tip115200|Dial any phone number at 115200 bps:\ + :dv=/dev/cuad0:br#115200:at=hayes:pa=none:du: +tip57600|Dial any phone number at 57600 bps:\ + :dv=/dev/cuad0:br#57600:at=hayes:pa=none:du: + + Ezután már ilyet is tudni fogunk: + + &prompt.root; tip -115200 5551234 + + Ha viszont a tip helyett inkább a + cu programot használnánk + szívesen, akkor ehhez készítsünk egy + általános bejegyzést: + + cu115200|Use cu to dial any number at 115200bps:\ + :dv=/dev/cuad1:br#57600:at=hayes:pa=none:du: + + Majd gépeljük be ezt: + + &prompt.root; cu 5551234 -s 115200 + + + + + Ehhez minden adandó alkalommal meg kell adnom a + sebességet is? + + Hozzunk létre egy tip1200 vagy + cu1200 nevû bejegyzést, de a + br tulajdonságnál adjuk meg a + használni kívánt sebességet. Mivel + a tip szerint az 1200 bps egy + megfelelõ alapértelmezés, ezért + alapból a tip1200 bejegyzést + fogja keresni. Ez természetesen nem jelenti azt, hogy + ilyen sebsséggel is akarunk dolgozni. + + + + + A terminálszerveren keresztül több + más gépet is elérek + + Ahelyett, hogy minden alkalommal megvárnánk a + kapcsolódás befejezést és + begépelnénk a CONNECT + gép parancsot, + használjuk a cm + tulajdonságát. Például + nézzük meg ilyen bejegyzést az + /etc/remote + állományban: + + pain|pain.deep13.com|Forrester's machine:\ + :cm=CONNECT pain\n:tc=deep13: +muffin|muffin.deep13.com|Frank's machine:\ + :cm=CONNECT muffin\n:tc=deep13: +deep13:Gizmonics Institute terminal server:\ + :dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234: + + Ennek hatására elég csak annyit + megadnunk, hogy tip pain vagy tip + muffin, és már kapcsolódunk is a + pain vagy muffin + gépekhez. A tip deep13 paranccsal + pedig egyenesen a terminálszerverhez jutunk el. + + + + + Több vonalon is lehet egy géphez + csatlakozni? + + Ez gyakran okoz gondot olyan esetekben, amikor egy + egyetemnek több betárcsázó vonala van, + és azokon keresztül többezer hallgató + próbál meg dolgozni. + + Vegyük fel az egyetemet az + /etc/remote állományba + és használjuk a pn + tulajdonság megadásánál a + @ jelet: + + nagy-egyetem:\ + :pn=\@:tc=dialout +dialout:\ + :dv=/dev/cuad3:br#9600:at=courier:du:pa=none: + + Ezután adjuk hozzá az + /etc/phones állományhoz az + egyetem telefonszámait: + + nagy-egyetem 5551111 +nagy-egyetem 5551112 +nagy-egyetem 5551113 +nagy-egyetem 5551114 + + A tip mindegyik telefonszámot az + adott sorrendben próbálja tárcsázni + és végén feladja a + próbálkozást. Ha folyamatosan akarjuk + ezeket a számokat hívni, akkor + tip parancsot tegyük egy + ciklusba. + + + + + Miért kell kétszer lenyomni a + <keycombo action="simul"> + <keycap>Ctrl</keycap> + <keycap>P</keycap> + </keycombo> + gombokat, hogy egyszer elküldje a + <keycombo action="simul"> + <keycap>Ctrl</keycap> + <keycap>P</keycap> + </keycombo> + kombinációt? + + A CtrlP + billentyûkombináció + alapértelmezés szerint a + kikényszerítést jelenti, + amivel a tip programnak tudunk szólni, + hogy a következõ adat szó szerint + értendõ. A ~s + szekvenciával bármelyik másik karakternek + át tudjuk adni ezt a szerepet, ami egy + változó beállítását + jelenti (set a variable). + + Gépeljük be, hogy + ~sforce=egyetlen-karakter + és zárjuk le egy újsorral. Az + egyetlen-karakter helyére + tetszõleges, egykarakteres szimbólumot megadhatunk. + Ha itt nem adunk meg semmit, akkor a + kikényszerítõ karakter a + nul lesz, amit a + + Ctrl2 + + vagy a + + CtrlSzóköz + + lenyomásával tudunk elõhozni. Az + egyetlen-karakter szerepére + például tökéletes a + + Shift + Ctrl + 6 + , amit csak nagyon kevés + terminálszerver alkalmaz. + + A kikényszerítést végzõ + karaktert az $HOME/.tiprc + állományban tetszõleges karakterre át + tudjuk állítani: + + force=egyetlen-karakter + + + + + Miért lett hirtelen minden begépelt betû + nagybetûs?? + + Valószínûleg sikerült lenyomnunk a + + Ctrl + A + gombkombinációt, ami a + tip betûmód + váltás funkciójának felel + meg. Ezt olyanok számára dolgozták ki, + akiknél nem mûködik a Caps + Lock billentyû. Az elõbb bemutatott + ~s használatával + állítsuk át a raisechar + változót valami másra. + Tulajdonképpen akár ugyanarra is + állíthatjuk, mint a + kikényszerítõ karaktert, ha nem áll + szándékunkban használni. + + Ebben a példában egy olyan + .tiprc állomány szerepel, amely + tökéletesen megfelel azon + Emacs felhasználók + számára, akik sokat használják a + + Ctrl2 + + és + + CtrlA + + kombinációkat: + + force=^^ +raisechar=^^ + + A ^^ a + + ShiftCtrl6 + + billentyûkombinációt jelenti. + + + + + Hogyan mozgassunk állományokat a + <command>tip</command> használatával? + + Amikor más &unix; rendszerekkel vesszük fel a + kapcsolatot, akkor állományokat a + ~p (mint put, vagyis adni) és + ~t (mint take, vagyis venni) + használatával tudunk mozgatni. Ezek a parancsok a + távoli rendszeren a cat és az + echo felhasználásával + fogadnak és küldenek állományokat. + Alakjuk a következõ: + + + ~p + helyi-állomány + távoli-állomány + + + + ~t + távoli-állomány + helyi-állomány + + + Ilyenkor nincs hibaellenõrzés, ezért + inkább egy másik protokollt, például + zmodemet érdemes használnunk. + + + + + Hogyan lehet zmodemet használni a + <command>tip</command> programban? + + Állományokat úgy tudunk fogadni, ha + elõtte a kapcsolat távolabbi végén + elindítjuk a küldést végzõ + programot. Ezután a ~C rz parancs + kiadásával kezdhetjük meg helyben a + fogadását. + + Állományokat úgy tudunk küldeni, + ha elõtte a kapcsolat másik végén + elindítjuk a fogadó programot. Ezután a + ~C sz + állományok + parancs kiadásával tudjuk megkezdeni a + küldést. + + + + + + + + + Kazutaka + YOKOTA + Készítette: + + + + + Bill + Paul + Az alapján szolgáló + írást készítette: + + + + + A soros vonali konzol beállítása + + soros konzol + + + Bevezetés + + A &os; képes úgy is elindulni, ha + konzolként mindössze egy buta terminált + kapcsolunk rá soros porton keresztül. Az ilyen + típusú konfigurációs alapvetõen + két típus számára bizonyul + hasznosnak: azon rendszergazdák számára, + akik billentyûzettel és monitorral nem + rendelkezõ gépekre akarnak &os;-t telepíteni, + és olyan fejlesztõk számára, akik a + rendszermag vagy különbözõ + eszközmeghajtók mûködését + akarják nyomon követni. + + Ahogy arról már a ben is + szó esett, a &os; három indítási + fokozattal rendelkezik. Az elsõ két fokozat a + rendszerindító blokk kódjában foglal + helyet, amely pedig a lemezen található &os; slice + elején. A rendszer indulásakor ez a blokk + betöltõdik és lefuttatja a harmadik fokozatot + képviselõ rendszertöltõt (a + /boot/loader + állományt). + + Ha soros vonali konzol + beállításához tehát be kell + állítanunk a rendszerindító blokkot, + a rendszertöltõt és a rendszermagot. + + + + + A soros konzol beállítása, + rövidített változat + + Ebben a szakaszban azt feltételezzük, hogy az + alap beállításokkal dolgozunk és + csupán egy gyors áttekintésre van + szükségünk a soros vonali + konzolról. + + + + Csatlakoztassunk egy soros kábelt a + COM1 portra és a + terminálra. + + + + Rendszeradminisztrátorként a + következõ parancs kell kiadnunk ahhoz, hogy a + soros konzolon láthassuk az összes + rendszerindításhoz tartozó + üzenetet: + + &prompt.root; echo 'console="comconsole"' >> /boot/loader.conf + + + + Nyissuk meg az /etc/ttys + állományt, és a + ttyd0 eszközhöz + tartozó sorban írjuk át az + off paramétert az + on értékre és a + dialup paramétert a + vt100 értékre. Ha nem + ezeket állítjuk be, akkor a soros konzol + keresztül jelszó megadása + nélkül is be tudunk jelentkezni, ami viszont egy + biztonsági rés veszélyével + fenyeget. + + + + A változtatások + érvényesítéséhez + indítsuk újra a rendszerünket. + + + + Ha ettõl eltérõ + beállításokra lenne + szükségünk, akkor a folyamat egyes + lépéseibe a ban kaphatunk mélyebb + betekintést. + + + + + A soros vonali konzol + beállítása + + + + Készítsük elõ a soros + kábelt. + + null-modem + kábel + + Vagy a null-modem kábelre vagy pedig egy + szabványos soros kábelre és egy + null-modem átalakítóra lesz + szükségünk. A soros kábelekkel + kapcsolatosan a t + érdemes elolvasni. + + + + Húzzuk ki a billentyûzetet. + + A legtöbb személyi + számítógép az + indítása (vagyis a Power-On Self-Test, POST) + során hibát jelez, ha nem + érzékel billentyûzetet. Egyes + gépek hangosan panaszolják a billentyûzet + hiányát, és nem is hajlandóak + egészen addig elindulni, amíg nem + csatlakoztatunk egyet. + + Ha a számítógépünk + hibát küld, de ennek ellenére + mégis elindul, akkor semmit nem kell + csinálnunk. (Némelyik Phonix BIOS-os + gépen ilyenkor megjelenik a Keyboard + failed hibaüzenet, de ettõl még + rendesen elindul a gép.) + + Amennyiben a + számítógépünk nem + hajlandó billentyûzet nélkül + elindulni, állítsuk be a BIOS-ban a + hiba figyelmen kívül + hagyását (már ha ez lehetséges). + Az alaplap leírásában + találhatjuk meg ennek pontos részleit. + + + A BIOS paraméterei között a + billentyûzetet állítsuk Not + installed állapotúra. Ilyenkor + még továbbra is használható a + billentyûzet, ezzel mindössze csak a BIOS + számára tiltjuk le az + indításkori ellenõrzést, + ezért nem fog panaszkodni a hiánya miatt. + Tehát a billentyûzetet még a Not + installed beállítása + esetén is nyugodtan csatlakoztatjuk, mert + mûködni fog. + + + + Ha a rendszerünkön &ps2;-es egér is + található, akkor jó eséllyel a + billentyûzettel együtt az egeret is ki tudjuk + húzni. Mivel a &ps2;-es egér osztozik a + billentyûzettel bizonyos hardvereken, ezért ha + nem húzzuk ki az egeret is, akkor az alaplap + még továbbra is képes azt gondolni, + hogy a billentyûzet ott van. Például + az AMI BIOS-os Gateway 2000-as 90 MHz-es Pentium + rendszer pontosan így mûködik. + Általában véve azonban ez nem szokott + gondot okozni, mivel az egér billentyûzet + nélkül úgy sem ér + túlságosan sokat. + + + + + Csatlakoztassunk egy buta terminált a + COM1 + (sio0) portra. + + Ha nem rendelkezünk buta terminállal, akkor + erre célra ugyanúgy alkalmas egy régi + XT-s PC valamilyen modemprogrammal vagy egy soros porton + csatlakozó másik &unix;-os gép. Ha + nincs COM1 + (sio0) portunk, akkor + szerezzünk egyet. Jelen pillanatban a + rendszerindító blokk + újrafordítása nélkül a + COM1 porton kívül nem + tudunk másikat választani. Ha a + COM1 portra már raktunk + valamilyen másik eszközt, akkor azt ideiglenesen + húzzuk le, majd a &os; telepítése + és elindítása után tegyünk + fel egy másik rendszerindító blokkot. + (Egyébként feltételezzük, hogy a + COM1 elérhetõ egy + állomány/számító/terminálszerveren + — ha valóban valamilyen másik + célra szükségünk lenne a + COM1 portra (és + semmiképpen sem tudjuk átrakni a + COM2 + (sio1) portra), akkor + valószínûleg nem is ezzel kellene + elsõként foglalkoznunk.) + + + + Gondoskodjunk róla, hogy a rendszermag + beállításait tartalmazó + állományban a COM1 + (sio0) eszközhöz megadtuk + a megfelelõ paramétereket. + + Ezek az alábbiak: + + + + 0x10 + + + A konzolos mûködési mód + engedélyezése az adott egységhez. + Ha megadjuk ezt a paramétert, akkor a + többit a rendszer figyelmen kívül + hagyja. Pillanatnyilag legfeljebb egy egység + birtokolhatja ezt a beállítást. + Ha több ilyet adtunk volna meg, akkor (a + felírás sorrendje szerint) az elsõ + kap ilyen szerepet. Ez a + beállítás önmagában + még nem teszi a soros portot konzollá. + Ehhez még szükségünk van a + következõ beállításra, + vagy a megadására + is. + + + + + 0x20 + + + Az egység konzollá + nyilvánítása (hacsak nincs egy + tõle nagyobb prioritású konzol), + függetlenül a lentebb ismertetendõ + opciótól. A + 0x20 értéket a + értékkel + együtt kell megadni. + + + + + 0x40 + + + (A 0x10 értékkel + együtt) az egységet kivonja a + normális elérés alól. Ezt + a beállítást ne + használjuk, ha soros vonali konzolt akarunk + üzemeltetni az adott porton. Ezzel az + egységet csak a rendszermag távoli + nyomkövetéséhez tudjuk + használni. A távoli + nyomkövetésrõl a + fejlesztõk + kézikönyvében olvastunk + bõvebben. + + + + + Példa: + + device sio0 at isa? port IO_COM1 flags 0x10 irq 4 + + A további részletekrõl a &man.sio.4; + man oldal tud felvilágosítást + nyújtani. + + Ha nem állítottuk be a megfelelõ + paramétereket, akkor (egy másik konzolon) + futtassuk a UserConfig programot vagy fordítsuk + újra a rendszermagot. + + + + Hozzunk létre egy + boot.config állományt a + rendszer indításához használt + meghajtó a + partíciójának + gyökerében. + + Ez az állomány mondja meg a + rendszerindító blokkban + található kódnak, hogy miként + akarjuk indítani a rendszerünket. A soros + vonali konzol életrekeltéséhez a most + következõ opciók közül kell + megadnunk egyet vagy többet — amennyiben + többet akarunk megadni, akkor mindegyiket egyetlen + sorban szerepeltessük: + + + + + + + A belsõ és a soros vonali konzolok + közti átkapcsolás. Ezzel tudunk a + konzolos eszközök között + váltani. Például, ha egy + belsõ (video) konzolról indítjuk a + rendszert, akkor a rendszertöltõnek + és a rendszermagnak átadott + paraméterrel arra tudjuk + ezeket utasítani, hogy konzolként a + soros portot használják. Vagy ha soros + porton keresztül indítjuk a rendszert, + akkor megadásával + megkérhetjük a rendszertöltõt + és a rendszermagot, hogy ezután + már a videokártyát + használja konzolként. + + + + + + + + Az egy- és kétkonzolos + beállítások közti + váltás. Az egykonzolos + konfigurációban a konzol lehet + belsõ (video) vagy soros vonali, attól + függõen, hogy miként + használtuk a fenti + opciót. A kétkonzolos + konfigurációban azonban a + videokártyán és a soros vonalon + keresztül is egyszerre megjelenik a konzol, + függetlenül a + hatásától. Ilyenkor viszont + vegyük figyelembe, hogy ez a kétkonzolos + konfiguráció csak a + rendszerindító blokk futása alatt + él. Amint a rendszerindító + megkapja a vezérlést, a + által megadott konzol + válik az egyedülivé. + + + + + + + + A rendszerindító blokk + megpróbálja megkeresni a + billentyûzetet. Ha nem találja, akkor + magától beállítja a + és + opciókat. + + + Tárbeli korlátozások miatt + a rendszerindító blokk jelenlegi + változata a + paraméterrel csak a kiterjesztett + billentyûzeteket képes kezelni. A 101 + gombnál kevesebbel (tehát F11 + és F12 gombokkal nem) rendelkezõ + billentyûzeteket ezért nem + feltétlenül fogja észlelni. + Ugyanezen korlátozás miatt egyes + laptopokon sem minden esetben sikerül + érzékelni a billentyûzetet. Ha + ez a rendszerünkön + problémához vezetne, akkor + egyszerûbb lesz elhagyni a + használatát. Sajnos, jelenleg + semmilyen megoldás nincs erre. + + + + + + Vagy a opcióval + állítassuk be automatikusan a konzolt, vagy + pedig a opcióval + engedélyezzük a soros vonali konzolt. + + Természetesen itt a &man.boot.8; man oldalon + szereplõ összes többi paramétert is + megadhatjuk. + + A kivételével az + összes opció a rendszertöltõnek + (/boot/loader) kerül + átadásra. A rendszertöltõ + egyedül a + állapotából dönti el, hogy mely + belsõ videoeszközön vagy soros porton legyen + a konzol. Ez azt jelenti, hogy a + /boot.config állományban + ha megadjuk a opciót, de mellette + nem szerepel a , akkor a soros vonali + konzolt csak a rendszerindító blokk + futása alatt tudjuk elérni — a + rendszertöltõ ugyanis alapból a + videokártyát használja + konzolként. + + + + Kapcsoljuk be a + számítógépünket. + + Amikor elindítjuk a &os;-s gépünket, + a rendszerindító blokk kiírja a + /boot.config tartalmát a + konzolra. Például így: + + /boot.config: -P +Keyboard: no + + A második sor csak olyankor jelenik meg, ha a + /boot.config állományban + a beállítás is + szerepel, és a billentyûzet + jelenlétét (yes) vagy hiányát + (no) jelzi. A /boot.config + tartalmától függõen ezek az + üzenetek vagy a soros vonali vagy a belsõ konzolon + jelennek meg, esetleg mind a kettõn. + + + + + + Beállítás + Ahol megjelenik + + + + + + nincs + belsõ konzol + + + + + soros vonali konzol + + + + + soros vonali és belsõ + konzol + + + + + soros vonali és belsõ + konzol + + + + , van + billentyûzet + belsõ konzol + + + + , nincs + billentyûzet + soros vonali konzol + + + + + + Az iménti üzenetek felbukkanása + után a további konzolos üzenetek + küldésében egy rövid szünet + következik, amíg a rendszerindító + blokk a rendszertöltõ + betöltésével folytatja a rendszer + indítását. Normális + körülmények között ezt a + folyamatot nem kell megszakítanunk, de esetleg + olyankor mégis érdemes lehet, ha le akarjuk + ellenõrizni a + beállításainkat. + + A rendszerindítási folyamat + félbeszakításához az + Enter billentyûn kívül + nyomjuk le valamelyik másikat. Ekkor a + rendszerindító blokk megáll és + várja a további parancsokat. Ekkor valami + ilyesmit láthatunk: + + >> FreeBSD/i386 BOOT +Default: 0:ad(0,a)/boot/loader +boot: + + Nézzük meg, hogy + /boot.config + beállításainak megfelelõen a fenti + üzenet a soros vonali konzolon vagy a belsõ + konzolon, illetve mind a kettõn megjelenik-e. Ha az + üzenet a megfelelõ konzolon megjelenik, akkor az + Enter lenyomásával + folytathatjuk a rendszer + indítását. + + Ha nekünk a soros vonali konzolra lenne + szükségünk, de semmi nem jelenik meg a + soros terminálon, akkor valamit + valószínûleg nem jól + állítottunk be. A + rendszerindító blokktól kapott + parancssorban a + begépelésével és az + Enter vagy Return + lenyomásával (ha lehetséges) + jelezzük neki (és így a + rendszertöltõnek és a rendszermagnak is) a + soros vonali konzol kiválasztását. + Miután befejezõdött a rendszer + indítása, menjünk vissza és + ellenõrizzük a megfelelõ + paramétereket. + + + + Ahogy sikerült elindítani a + rendszertöltõt és a + rendszerindítás harmadik fokozatába + léptünk, a rendszertöltõ megfelelõ + környezeti változóin keresztül + még mindig van lehetõségünk + váltani a soros vonali és a belsõ konzol + között, lásd . + + + + + Összefoglalás + + Itt most röviden összefoglaljuk az eddig + tárgyalt különbözõ + beállításokat és ténylegesen + kiválasztott konzolt. + + + 1. eset: a <devicename>sio0</devicename> + eszköznél a 0x10 beállítást + adjuk meg + + device sio0 at isa? port IO_COM1 flags 0x10 irq 4 + + + + + + A /boot.config + beállításai + Konzol a + rendszerindító blokk alatt + Konzol a rendszertöltõ + alatt + Konzol a rendszermagban + + + + + + nincsenek + belsõ + belsõ + belsõ + + + + + soros vonali + soros vonali + soros vonali + + + + + soros vonali és belsõ + belsõ + belsõ + + + + + soros vonali és belsõ + soros vonali + soros vonali + + + + , van + billentyûzet + belsõ + belsõ + belsõ + + + + , nincs + billentyûzet + soros vonali és belsõ + soros vonali + soros vonali + + + + + + + + 2. eset: a <devicename>sio0</devicename> + eszköznél 0x30 + beállítása + + device sio0 at isa? port IO_COM1 flags 0x30 irq 4 + + + + + + A /boot.config + beállításai + Konzol a + rendszerindító blokk alatt + Konzol a rendszertöltõ + alatt + Konzol a rendszermagban + + + + + + nincsenek + belsõ + belsõ + soros vonali + + + + + soros vonali + soros vonali + soros vonali + + + + + soros vonali és belsõ + belsõ + soros vonali + + + + + soros vonali és belsõ + soros vonali + soros vonali + + + + , van + billentyûzet + belsõ + belsõ + soros vonali + + + + , nincs + billentyûzet + soros vonali és belsõ + soros vonali + soros vonali + + + + + + + + + + Tanácsok a soros vonali konzol + használatához + + + Nagyobb soros vonali sebesség + beállítása + + A soros port alapértelmezései a + következõk: 9600 baud, 8 bites + átvitel, paritás nincs és 1 stopbit. Ha + a konzol alapsebességét meg akarjuk + változtatni, akkor ahhoz a következõket kell + tennünk: + + + + Fordítsuk újra a + rendszerindító blokkokat úgy, hogy a + BOOT_COMCONSOLE_SPEED + változóban a konzolnak egy másik + sebességet adunk meg. Az új + rendszerindító blokkok + fordításáról és + telepítésérõl a ban kapunk részletes + leírást. + + Ha a soros vonali konzolt nem a + opcióval állítottuk be, vagy ha a + rendszermag a rendszerindító + blokkoktól eltérõ módon + éri el a soros vonali konzolt, akkor a rendszermag + beállításai közé + még az alábbit is fel kell vennünk, + majd újra kell fordítanunk: + + options CONSPEED=19200 + + + + A rendszermagnak adjuk át a + rendszerindítási paramétert. A + parancssori opció a + /boot.config + állományban is megadható. A + &man.boot.8; man oldalon tudhatjuk meg, hogy a + /boot.config + beállításai közé hogyan + tudjuk felvenni és ott milyen további + lehetõségeink vannak még. + + + + A /boot/loader.conf + állományban engedélyezzük a + comconsole_speed + beállítást. + + Ez a beállítás a szintén a + /boot/loader.conf + állományban megadható + console, boot_serial + és boot_multicons + változóktól függ. A soros + vonali konzol sebességét tehát + például így tudjuk + megváltoztatni a + comconsole_speed + megadásával: + + boot_multicons="YES" +boot_serial="YES" +comconsole_speed="115200" +console="comconsole,vidconsole" + + + + + A &os; 6.1-RELEASE elõtti változatai + nem ismerik a paramétert vagy a + /boot/loader.conf + állományban megadható + comconsole_speed változót, + ezért ha ilyen verzióval rendelkezünk, + akkor mindenképpen újra kell + fordítanunk a rendszerindító + blokkokat. + + + + + + Soros vonali konzol a <devicename>sio0</devicename> + porton kívül máshol + + Ha valamilyen okból kifolyólag nem a + sio0 porton keresztül akarjuk + használni a konzolt, akkor ahhoz a + rendszerindító blokkok, a + rendszertöltõ és a rendszermag + forrásait újra kell fordítanunk az + alábbiak szerint: + + + + Szerezzük be a rendszermag + forrását. (Lásd ) + + + + Írjuk át a + /etc/make.conf + állományban a + BOOT_COMCONSOLE_PORT + címét az általunk használt + porthoz tartozóéra (0x3F8, 0x2F8, 0x3E8 vagy + 0x2E8). Itt csak a sio0 + és sio3 + (COM1 és + COM4) közti portok + használhatóak — a töbportos soros + kártyák címei nem adhatóak + meg. A megszakításokat nem kell + beállítanunk. + + + + Készítsünk egy saját + rendszermag beállításait + tartalmazó állományt, és + vegyük fel bele a használni + kívánt soros port megfelelõ + paramétereit. Például, ha a + sio1 + (COM2) eszközt akarjuk + konzolként használni: + + device sio1 at isa? port IO_COM2 flags 0x10 irq 3 + + vagy + + device sio1 at isa? port IO_COM2 flags 0x30 irq 3 + + A konzolra vonatkozó + beállításokat a többi soros + portnál ne adjuk meg. + + + + Fordítsuk újra és + telepítsük a rendszerindító + blokkot és a rendszertöltõt: + + &prompt.root; cd /sys/boot +&prompt.root; make clean +&prompt.root; make +&prompt.root; make install + + + + Fordítsuk és telepítsük + újra a rendszermagot. + + + + A &man.bsdlabel.8; segítségével + másoljuk az új rendszerindító + blokkot a rendszer indítását + végzõ lemezre és töltsük be + az új rendszermagot. + + + + + + A DDB elérése a soros + vonalról + + Ha a soros vonali konzolról akarjuk + használni a rendszermagba épített + nyomkövetõt (ami hasznos lehet távoli + vizsgálódáskor, de egyben + veszélyes is, ha a soros porton tévesen + kiküldünk egy BREAK jelzést!), akkor a + rendszermagot a következõ + beállításokkal kell + fordítanunk: + + options BREAK_TO_DEBUGGER +options DDB + + + + + A bejelentkezõ képernyõ + elérése a soros vonali konzolról + + Habár erre nincs feltétlenül + szükségünk, a rendszer üzeneteinek + és a rendszermag nyomkövetõjének + elérése után akár be is + tudunk jelentkezni a soros vonalon keresztül. + Íme! + + Nyissuk meg az /etc/ttys + állományt a kedvenc + szövegszerkesztõnkkel és keressük meg a + következõ sorokat: + + ttyd0 "/usr/libexec/getty std.9600" unknown off secure +ttyd1 "/usr/libexec/getty std.9600" unknown off secure +ttyd2 "/usr/libexec/getty std.9600" unknown off secure +ttyd3 "/usr/libexec/getty std.9600" unknown off secure + + A ttyd0 és + ttyd3 közti sorok pontosan a + COM1 és + COM4 közti portoknak felelnek + meg. A használni kívánt port + sorában szereplõ off + paramétert írjuk át az + on értékre. Ha a soros port + sebességét is megváltoztattuk, minden + bizonnyal a std.9600 helyett is az adott + sebességhez illeszkedõ paramétert kell + megadnunk, például az + std.19200 értékkel. + + Érdemes továbbá még az + unknown helyett megadni az adott + terminál típusát. + + Az állomány + módosítását követõen a + változatások + érvényesítéséhez ki kell + adnunk a kill -HUP 1 parancsot is. + + + + + + A konzol megváltoztatása a + rendszertöltõbõl + + A korábbi szakaszokban arról + beszéltünk, hogy miként + állítsuk be a soros vonali konzolt a + rendszerindító blokk + megpiszkálásával. Ebben a szakaszban + viszont azt mutatjuk meg, hogy különbözõ + parancsokon és környezeti változókon + keresztül miként tudjuk megadni a konzolt a + rendszertöltõben. Mivel a rendszertöltõre a + rendszerindítás harmadik fokozatában + kerül sor, az ott megadott értékekkel + felül tudjuk bírálni a + rendszerindító blokk + beállításait. + + + A soros vonali konzol + beállítása + + A rendszertöltõ és a rendszermag az + /boot/loader.rc állományon + keresztül elég könnyen rávehetõ a + soros vonali konzol használatára: + + set console="comconsole" + + Ez a rendszerindító blokk elõzõ + szakaszban tárgyalt + beállításaitól + függetlenül érvényesül. + + A fenti sort a /boot/loader.rc + állomány elejére érdemes + tennünk, így a soros vonali konzolon már a + lehetõ leghamarabb megjelennek a rendszer + üzenetei. + + Ehhez hasonló módon a belsõ konzolt is + megadhatjuk: + + set console="vidconsole" + + Ha a rendszertöltõben nem adjuk meg a + console környezeti változó + értékét, akkor a rendszertöltõ, + és így a rendszermag is, a + rendszerindító blokkban a + opció által meghatározott konzolt fogja + használni. + + A 3.2 és az azt követõ + változatokban a konzol + beállításait nem kötelezõ + közvetlenül az /boot/loader.rc + állományban megadni, hanem a + /boot/loader.conf.local vagy + /boot/loader.conf + állományokban is megadhatjuk. Ilyenkor a + /boot/loader.rc így fog + kinézni: + + include /boot/loader.4th +start + + Ezután hozzuk létre az + /boot/loader.conf.local + állományt és tegyük bele a + következõket: + + console=comconsole + + vagy + + console=vidconsole + + A részletekkel kapcsolatban lásd a + &man.loader.conf.5; man oldalt. + + + Jelen pillanatban a rendszertöltõnek nincs a + paraméterrel ekvivalens + értékû beállítása, + ezért a billentyûzet jelenléte + alapján nem képes magától + választani a belsõ és a soros vonali + konzol között. + + + + + + Soros vonali konzol a <devicename>sio0</devicename> + porton kívül máshol + + A rendszertöltõt ne a + sio0 eszközzel fordítsuk + újra a soros vonali konzolhoz. Ehhez + kövessük a ban + leírt eljárás + lépéseit. + + + + + + Figyelmeztetések + + A szakaszban szereplõ ötletek alapján sokan + így most már könnyen be tudnak + állítani egy billentyûzet és grafikus + hardver nélküli dedikált szervert. Sajnos + azonban a legtöbb rendszer nem engedi a billentyûzet + nélküli indítást, és akad + néhány olyan is, amely pedig a grafikus + kártya hiányában nem is indul el. Az AMI + BIOS-os gépeknél a grafikus kártya + nélküli indításhoz elegendõ + csupán a beállítások + között a grafikus kártyát + (graphics adapter) Not installed + (nem telepített) állapotúra + állítani. + + Ennek ellenére elõfordulhat azonban, hogy egyes + gépeken egyáltalán nem találunk + ilyen lehetõséget és videokártya + nélkül nem indulnak el. Ezekben az esetekben + tegyünk a gépbe valamilyen kártyát + (ehhez elég egy egyszerû típus is), de + monitort már ne kössünk rá. Esetleg + megpróbálkozhatunk még AMI BIOS + telepítésével is. + + + +
+ + + diff --git a/hu_HU.ISO8859-2/books/handbook/txtfiles.ent b/hu_HU.ISO8859-2/books/handbook/txtfiles.ent new file mode 100644 index 0000000000..fe9f4e2acc --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/txtfiles.ent @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/users/Makefile b/hu_HU.ISO8859-2/books/handbook/users/Makefile new file mode 100644 index 0000000000..dfa2918b7b --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/users/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= users/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/users/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/users/chapter.sgml new file mode 100644 index 0000000000..e2fab39849 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/users/chapter.sgml @@ -0,0 +1,1478 @@ + + + + + + + + Neil + Blakey-Milner + Írta: + + + + + Felhasználók és + hozzáférések alapvetõ + kezelése + + + Áttekintés + + A &os; lehetõvé teszi, hogy egyazon idõben + egyszerre több felhasználó is dolgozhasson a + számítógépen. Közülük + nyilvánvalóan csak egy képes elõtte + ülni + + Hacsak nem kapcsolunk hozzá több + terminált. De ennek a leírását a + re tartogatjuk. + , de rajta kívül még sok más + felhasználó is be tud jelentkezni a + munkájához hálózaton keresztül. + A rendszer használatához minden egyes + felhasználónak hozzáféréssel + kell rendelkeznie. + + A fejezet elolvasása során + megismerjük: + + + + a &os; rendszerben megtalálható + különféle felhasználói + hozzáférések közti + különbségeket; + + + + hogyan készítsünk új + felhasználói + hozzáféréseket; + + + + hogyan töröljünk felhasználói + hozzáféréseket; + + + + hogyan változtassuk meg a + hozzáférés adatait, mint + például a felhasználók teljes + nevét vagy a választott + parancsértelmezõjét; + + + + hogyan korlátozzuk az egyes + hozzáféréseket vagy + hozzáférések egy csoportját az + olyan erõforrások, mint például a + memória vagy a processzoridõ + védelmében; + + + + hogyan használjuk csoportokat a + hozzáférések + karbantartásának + megkönnyítésére. + + + + A fejezet elolvasásához ajánlott: + + + + a &unix; és a &os; alapjainak ismerete (). + + + + + + + Bevezetés + + A rendszert bármilyen fajta módon csak + hozzáféréseken keresztül tudjuk + elérni, minden programot felhasználók + futtatnak, ezért a felhasználók és + hozzáférések kezelése a &os; + rendszerek szerves része. + + A &os; rendszerben minden hozzáférés + rendelkezik bizonyos információkkal az + azonosításhoz. + + + + Felhasználó neve + + + A felhasználónevet a + login: felirat megjelenésekor kell + megadni. A felhasználók neveinek egyedinek + kell lenni a számítógépen, + tehát két felhasználó nem + használhatja ugyanazt a nevet. A &man.passwd.5; man + oldalon megtalálhatjuk azokat a szabályokat, + amik az érvényes + felhasználónevek + létrehozására vonatkoznak. + Általánosságban elmondható, hogy + a felhasználóneveknek kisbetûsek kell + lenniük és legfeljebb nyolc karakterbõl + állhatnak. + + + + + Jelszó + + + Minden hozzáféréshez tartozik egy + jelszó is. Ez a jelszó lehet akár + üres is, ebben az esetben nincs szükség + jelszóra a hozzáféréshez. Ez + viszont többnyire egy nagyon rossz ötlet: minden + hozzáférést erõsen ajánlott + jelszóval védeni. + + + + + Felhasználó azonosítója (User + ID, UID) + + + Az UID egy szám, amely hagyományosan + 0-tól 65535-ig terjed + + Lehetséges akár 4294967295-ig is + számozni az UID/GID értékét, + de az ekkora nagyságú + azonosítók komoly gondokat okozhatnak az + olyan szoftvereknek, melyek bizonyos + feltételezésekkel élnek az + értékeikkel kapcsolatban. + , és a felhasználó + rendszeren belüli egyedi + azonosítására használatos. A + &os; az UID-ot a felhasználók + beazonosítására használja + — bármelyik parancs, amely lehetõvé + teszi felhasználónevek + megadását, át fogja alakítani + UID-dé, mielõtt ténylegesen dolgozni + kezdene vele. Ez tehát azt jelenti, hogy több + hozzáférésünk is lehet több + különbözõ + felhasználónévvel, de ugyanazzal az + UID-del. Legalább is a &os; ezeket egyetlen + felhasználónak tekinti, de nem is + valószínû, hogy ilyenre valaha + szükségünk is lenne. + + + + + Csoportazonosító (Group ID, GID) + + + A csoportazonosító (Group ID, GID) egy + szám, amely általában 0-tól + 65535-ig terjed , + és azt az elsõdleges csoportot azonosítja + be egyedileg, amihez a felhasználó tartozik. + A csoportok segítségével az + erõforrások hozzáférésnek + vezérlését tudjuk megoldani a + felhasználók GID-jével az UID-dek + helyett. Ezzel jelentõs mértékben + csökkenthetõ egyes konfigurációs + állományok mérete. Egy + felhasználó egyszerre több csoport tagja + is lehet. + + + + + Bejelentkezési osztály + + + A bejelentkezési osztályok a + csoportszervezés + kibõvítését célozzák + meg, további rugalmasságot nyújtanak, + amikor a rendszert az egyes felhasználók + igényeihez szabjuk. + + + + + Jelszóváltási idõ + + + Alapértelmezés szerint a &os; nem + kényszeríti rá a + felhasználókat, hogy rendszeresen + megváltoztassák a jelszavukat. Ezt + felhasználónként + kikényszeríthetjük, és így + az egyes, vagy akár az összes + felhasználót kötelezhetjük az adott + idõközönként + jelszóváltásra. + + + + + A hozzáférés lejárati + ideje + + + A &os;-ben alapértelmezés szerint nem + évülnek el a hozzáférések. + Ha azonban olyan hozzáféréseket kell + létrehoznunk, melyeknek korlátoznunk kell az + élettartamukat, mint például egy + iskolában a diákok számára, + akkor ilyenkor meg tudjuk adni a lejáratuk + idejét. Ezen dátum után a + hozzáféréssel már nem lehet + bejelentkezni a rendszerbe, viszont a + hozzátartozó könyvtárban + tárolt állományok továbbra is + megmaradnak. + + + + + Felhasználó teljes neve + + + Míg a felhasználónév + tökéletesen azonosítja a &os; + számára a hozzáférést, + nem feltétlenül tükrözi a + felhasználó valódi nevét. Ezt + az információt is meg lehet adni a + hozzáféréshez. + + + + + Felhasználói könyvtár + + + A felhasználói könyvtár a + rendszerben található azon + könyvtár teljes elérési + útvonala, ahová a felhasználó a + bejelentkezést követõen kerül. + Elterjedt megszokás, hogy az összes + felhasználó könyvtárát a + /home/felhasználónév + vagy a + /usr/home/felhasználónév + könyvtárba teszik. A felhasználók + ezekben a könyvtárakban tárolják a + személyes állományaikat, és + tetszõleges könyvtárakat + létrehozhatnak benne. + + + + + Felhasználói + parancsértelmezõ + + + A parancsértelmezõ biztosítja azt az + alapértelmezett környezetet, amiben a + felhasználó kapcsolatba tud lépni a + rendszerrel. Többféle + parancsértelmezõ is akad, és a + tapasztaltabb felhasználók ragaszkodnak is + némelyikükhöz, amely gyakran + látható is a + hozzáférésük + beállításaiban. + + + + + Három fõ típusa van a + hozzáféréseknek: az adminisztrátori, a rendszer- és a felhasználói + hozzáférések. Az adminisztátori + hozzáférés, amelyre gyakran + rootként hivatkoznak, + használatos a rendszer karbantartására, + és semmilyen korlátozás nem + érvényes rá. A + rendszerhozzáférések + szolgáltatásokat futtatnak. Végezetül a + felhasználói hozzáféréseket + használják a valódi emberek, akik + bejelentkeznek, leveleket olvasnak és így + tovább. + + + + + Az adminisztrátori + hozzáférés + + + hozzáférések + adminisztrátor (root) + + + Az adminisztátori hozzáférés, + amelyet általában csak rootnak + nevezünk, a rendszeradminisztrációs feladatok + elvégzéséhez van igazítva, és + nem ajánlott az olyan hétköznapi + tevékenységek elvégzéséhez, + mint például a levelek olvasása és + írása, a rendszer bejárása vagy a + programozás. + + Ezért az adminisztrátor, eltérõen az + átlagos felhasználói + hozzáférésektõl, képes + mindenféle határok nélkül + tevékenykedni, és az adminisztrátori + hozzáférés helytelen használata + látványos katasztrófákat + idézhet elõ. A felhasználói + hozzáférések képtelenek merõ + véletlenségbõl tönkretenni a rendszert, + ezért általánosságban véve az a + legjobb, ha egyszerû felhasználói + hozzáféréseket használunk, amint + módunk van rá, hacsak nincs + szükségünk kifejezetten különleges + jogosultságokra. + + Minden esetben érdemes alaposan megfontolni az + adminisztrátorként kiadott parancsokat, mivel + egyetlen hiányzó szóköz vagy más + egyéb karakter helyrehozhatatlan károkat okozhat a + rendszerben. + + Ezért, ha még nem tettük volna meg + korábban, legyen az elsõ dolgunk a fejezet + elolvasása után, hogy létrehozunk egy kiemelt + jogosultságokkal nem rendelkezõ + felhasználót saját magunk + számára a hétköznapi feladatok + lebonyolítására. Ez ugyanúgy + vonatkozik a többfelhasználós és az + egyfelhasználós módban futó + rendszerekre is. A fejezet egy késõbbi + részében leírjuk, hogyan lehet további + hozzáféréseket létrehozni és + hogyan kell váltani egy mezei felhasználó + és az adminisztrátor + hozzáférése között. + + + + + Rendszerhozzáférések + + + hozzáférések + rendszer + + + A rendszer által hozzáférések + azok, amelyek olyan szolgáltatások + futtatásáért felelõsek, mint + például a DNS, levelezés, webszerverek + és így tovább. Ennek oka a biztonság: + ha minden szolgáltatást + adminisztrátorként futtatnánk, bármit + meg tudnának tenni a rendszerben. + + + hozzáférések + daemon + + + hozzáférések + operator + + + Ilyen rendszerfelhasználók a + daemon, operator, + bind (a névfeloldáshoz), + news, és a + www. + + + hozzáférések + nobody + + + A nobody (senki) egy + általános jogosultságok nélküli + rendszerfelhasználó. Mindazonáltal nem + szabad elfelejtenünk, hogy minél több + szolgáltatást bízunk a + nobody-ra, annál több + állomány és program kerül vele + kapcsolatba és ennélfogva annál + erõsebbé válik a rendszer számára + ez a felhasználó. + + + + + Felhasználói + hozzáférések + + + hozzáférések + felhasználó + + + A felhasználói hozzáférések + a valós felhasználók elsõdleges + eszközei a rendszer felé, és ezek a + hozzáférések szigetelik el a + felhasználókat és a környezeteket, + megakadályozva, hogy a felhasználók + kárt okozzanak akár a rendszerben, akár + egymásnak, valamint lehetõvé teszik a + felhasználók számára a + környezeteik testreszabását + anélkül, hogy többiekét + módosítani kellene. + + Minden olyan személynek, aki hozzá akar + férni a rendszerünkhöz, rendelkeznie kell + felhasználói azonosítóval. + Ezáltal meg tudjuk állapítani ki mivel + foglalkozik éppen a rendszerben, és meg tudjuk + akadályozni, hogy a felhasználók + elérjék egymás + beállításait, olvassák egymás + leveleit és így tovább. + + Minden felhasználó alakítani tudja a + saját környezetét, és ezzel mintegy + berendezkedik a rendszerünkben, különféle + parancsértelmezõk, szövegszerkesztõk, + billentyû-hozzárendelések és nyelvek + használatával. + + + + + A hozzáférések + módosítása + + + hozzáférések + módosítás + + + Egy &unix;-os környezetben több + különbözõ parancs közül + választhatunk a felhasználói + hozzáférések + módosításakor. A + legáltalánosabb parancsokat az alábbiakban + foglaljuk össze, amelyet ezután a használatukat + részletesebben bemutató példák + követnek. + + + + + + + + + Parancs + Leírás + + + + + &man.adduser.8; + az új felhasználók + felvételére ajánlott parancssoros + alkalmazás + + + &man.rmuser.8; + a felhasználók + eltávolítására ajánlott + parancssoros alkalmazás + + + &man.chpass.1; + rugalmas eszköz a felhasználói + adatbázis információinak + megváltoztatására + + + &man.passwd.1; + egy egyszerû parancssoros segédprogram a + elhasználói jelszavak + megváltoztatásához + + + &man.pw.8; + egy erõteljes és rugalmas + segédeszköz a felhasználói + hozzáférések teljeskörû + módosításához + + + + + + + <command>adduser</command> + + + hozzáférések + hozzáadás + + adduser + /usr/share/skel + vázkönyvtár + + A &man.adduser.8; a felhasználók + hozzáadására használható + egyszerû program. Bejegyzéseket hoz létre a + rendszer passwd és + group állományaiban. Ezen + kívül még létrehozza az új + felhasználó könyvtárát is, + odamásolja az alapértelmezett + konfigurációs állományokat a + /usr/share/skel + könyvtárból (ezek a + felhasználóknál ponttal kezdõdõen + jelennek meg, de az említett könyvtárban + dot elõtaggal szerepelnek), és + opcionálisan küld egy üdvözlõlevelet + az újdonsült felhasználónak. + + + Felhasználó hozzáadása a + &os;-ben + + &prompt.root; adduser +Username: jantyik +Full name: Jantyik Zsolt +Uid (Leave empty for default): +Login group [jantyik]: +Login group is jantyik. Invite jantyik into other groups? []: wheel +Login class [default]: +Shell (sh csh tcsh zsh nologin) [sh]: zsh +Home directory [/home/jantyik]: +Use password-based authentication? [yes]: +Use an empty password? (yes/no) [no]: +Use a random password? (yes/no) [no]: +Enter password: +Enter password again: +Lock out the account after creation? [no]: +Username : jantyik +Password : **** +Full Name : Jantyik Zsolt +Uid : 1001 +Class : +Groups : jantyik wheel +Home : /home/jantyik +Shell : /usr/local/bin/zsh +Locked : no +OK? (yes/no): yes +adduser: INFO: Successfully added (jantyik) to the user database. +Add another user? (yes/no): no +Goodbye! +&prompt.root; + + + + A jelszó a beírás során + egyáltalán nem jelenik meg, még + csillagokat sem láthatunk a karakterek helyén. + Ezért vigyázzunk, nehogy elgépeljük + véletlenül a jelszót! + + + + + + <command>rmuser</command> + + rmuser + + hozzáférések + eltávolítás + + + Az &man.rmuser.8; használható a + felhasználók teljes + eltávolítására a rendszerbõl. + Az &man.rmuser.8; az alábbi lépeseket hajtja + végre: + + + + Eltávolítja a felhasználó + &man.crontab.1; bejegyzéseit (amennyiben + léteznek). + + + Eltávolítja az &man.at.1; + felhasználóhoz tartozó + munkáit. + + + Leállítja a felhasználó + által birtokolt összes futó + programot. + + + Eltávolítja a felhasználót a + rendszer helyi jelszó + állományából. + + + Eltávolítja a felhasználó + könyvtárát (amennyiben az a + felhasználó birtokában van). + + + Eltávolítja a felhasználóhoz + tartozó beérkezõ leveleket + tartalmazó állományt a + /var/mail + könyvtárból. + + + Eltávolítja a felhasználó + tulajdonában levõ összes + állományt az olyan ideiglenes + tárhelyekrõl, mint például a + /tmp könyvtár. + + + Végezetül eltávolítja a + felhasználó nevét az összes olyan + csoportból, amihez az /etc/group + szerint tartozik. + + + Ha menetközben egy csoport üressé + válik, és a csoport neve megegyezik a + felhasználó nevével, a csoportot is + eltávolításra kerül. Ez + kiegészíti a &man.adduser.8; + eszközzel létrehozott + felhasználónkénti egyedi + csoportokat. + + + + + A &man.rmuser.8; nem használható + adminisztrátori hozzáférések + törlésére, mivel az szinte majdnem mindig a + teljes összeomlást vonja maga után. + + Alapértelmezés szerint interaktív + módban mûködik, melynek során + megpróbál megbizonyosodni róla, hogy + tényleg a megfelelõ dolgot cselekedjük. + + + <command>rmuser</command> + Hozzáférések interaktív + eltávolítása + + &prompt.root; rmuser jantyik +Matching password entry: +jantyik:*:1001:1001::0:0:Jantyik Zsolt:/home/jantyik:/usr/local/bin/zsh +Is this the entry you wish to remove? y +Remove user's home directory (/home/jantyik)? y +Updating password file, updating databases, done. +Updating group file: trusted (removing group jantyik -- personal group is empty) done. +Removing user's incoming mail file /var/mail/jantyik: done. +Removing files belonging to jantyik from /tmp: done. +Removing files belonging to jantyik from /var/tmp: done. +Removing files belonging to jantyik from /var/tmp/vi.recover: done. +&prompt.root; + + + + + + <command>chpass</command> + + chpass + + A &man.chpass.1; segítségével meg + tudjuk változtatni a felhasználói + adatbázisban található + információkat, mint például a + jelszavakat, parancsértelmezõket és a + személyes adatokat. + + Csak a rendszeradminisztrátoroknak, mint + például magának az adminisztrátornak, + szabad megváltoztatnia a felhasználók + adatait a &man.chpass.1; programmal. + + Amikor az opcionálisan megadható + felhasználói névtõl eltekintve nem + adunk át neki paramétereket, a &man.chpass.1; egy + szövegszerkesztõben megnyitja az érintett + felhasználó adatait. Miután + kiléptünk belõle, a felhasználói + adatbázist a megváltoztatott adatokatnak + megfelelõen frissíti. + + + Ha nem adminisztrátorként hívjuk meg, + akkor a rendszer kérni fogja a jelszavunkat, + miután kiléptünk a + szövegszerkesztõbõl. + + + + A <command>chpass</command> interaktív + használata adminisztrátorként + + # A jantyik nevû felhasználó adatainak módosítása. +Login: jantyik +Password: * +Uid [#]: 1001 +Gid [# or name]: 1001 +Change [month day year]: +Expire [month day year]: +Class: +Home directory: /home/jantyik +Shell: /usr/local/bin/zsh +Full Name: Jantyik Zsolt +Office Location: +Office Phone: +Home Phone: +Other information: + + + Egy átlagos felhasználó a bemutatott + adatoknak csak igen kis részét képes + módosítani, és azokat is csak saját + maga számára. + + + A <command>chpass</command> interaktív + használata normál + felhasználóként + + # A jantyik nevû felhasználó adatainak megváltoztatása. +Shell: /usr/local/bin/zsh +Full Name: Jantyik Zsolt +Office Location: +Office Phone: +Home Phone: +Other information: + + + + A &man.chfn.1; és &man.chsh.1; parancsok + csupán linkek a &man.chpass.1; parancsra, + akárcsak a &man.ypchpass.1;, &man.ypchfn.1; és + az &man.ypchsh.1;. A NIS támogatása teljesen + magától mûködik, ezért az + yp elõtag használata nem + kötelezõ. Ha ez nem érthetõ, nem kell + megijedni, a NIS-t majd a ben + bemutatjuk. + + + + + + <command>passwd</command> + + passwd + + hozzáférések + jelszóváltoztatás + + + Felhasználóként a saját + jelszavunkat, adminisztrátorként pedig + bármelyik felhasználó jelszavát a + &man.passwd.1; segítségével + váloztathatjuk meg a megszokott módon. + + + A véletlen balesetek és az + illetéktelen változtatások ellen + védelmet nyújt, hogy az eredeti jelszót + is meg kell adnunk az új jelszó + beállításához. + + + + A jelszavunk megváltoztatása + + &prompt.user; passwd +Changing local password for jantyik. +Old password: +New password: +Retype new password: +passwd: updating the database... +passwd: done + + + + Egy másik felhasználó + jelszavának megváltoztatása + adminisztrátorként + + &prompt.root; passwd jantyik +Changing local password for jantyik. +New password: +Retype new password: +passwd: updating the database... +passwd: done + + + + Ahogy a &man.chpass.1;, az &man.yppasswd.1; is csak egy + link a &man.passwd.1; parancsra, így a NIS mind a + két megadási módban + mûködik. + + + + + + <command>pw</command> + + pw + + A &man.pw.8; egy olyan parancssori segédprogram, + amellyel felhasználókat és csoportokat + tudunk létrehozni, törölni, + módosítani és megjeleníteni. Ez + tulajdonképpen a rendszer felhasználókat + és csoportokat tároló + állományainak egyfajta kezelõfelülete. + A &man.pw.8; kiválóan paraméterezhetõ, + aminek köszönhetõen remekül + kiaknázható tudása a + különféle parancsértelmezõk + szkriptjeiben, habár a kezdõ + felhasználók nehézkesebbnek + érezhetik a kezelését a korábban + mutatott parancsokhoz képest. + + + + + + A felhasználók + korlátozása + + felhasználók + korlátozása + + hozzáférések + korlátozás + + + Ha már vannak felhasználóink, gyakran + szóba kerülhet esetükben a rendszer + használatának korlátozása. A &os; + rengeteg módon engedi korlátozni a + rendszergazdának az egyénenként + használható erõforrások + mennyiségét a rendszerben. Ezeket a korlátok + két részre oszthatóak: a + lemezkvótákra és egyéb + erõforráskorlátokra. + + kvóták + + felhasználók + korlátozása + kvóták + + lemezkvóták + + A lemezkvóták a felhasználók + lemezhasználatát korlátozzák, + és lehetõvé teszik, hogy állandó + újraszámolás nélkül, gyorsan + ellenõrizni tudjuk ennek mértékét. A + kvótákat a ban + részletezzük. + + A többi erõforrás korlátozása + magában foglalja a processzoridõ, memória + és minden olyan erõforrás + behatárolását, amihez a + felhasználó csak hozzá tud férni. + Ezeket bejelentkezési osztályokon keresztül + határozzuk meg, ezekrõl esik itt most + szó. + + /etc/login.conf + + A bejelentkezési osztályokat a + /etc/login.conf állományban + adhatjuk meg. Ennek pontos ismertetése nem tárgya + ennek a szakasznak, de ezt megtalálhatjuk a + &man.login.conf.5; man oldalon. Elegendõ csak annyit + mondanunk, hogy minden felhasználóhoz tartozik egy + bejelentkezési osztály (alapértelmezés + szerint a default nevû), és minden + egyes bejelentkezési osztályhoz tulajdonságok + egy halmaza társul. Ezek a bejelentkezési + tulajdonságok + név=érték + párosokból állnak, ahol + név egy jól ismert + azonosító, illetve az + érték egy + tetszõleges sztring, melyet a nevétõl + függõ módon dolgozunk fel. A + bejelentkezési osztályok és + tulajdonságok beállítása + eléggé magától + értetõdõ, és &man.login.conf.5; man oldal + is jól leírja. + + + A rendszer általában nem magát az + /etc/login.conf állományban + található beállításokat + olvassa be, hanem az /etc/login.conf.db + állományt, amiben gyorsabban lehet keresni. Az + /etc/login.conf + állományból az + /etc/login.conf.db állományt + az alábbi paranccsal tudjuk legyártani: + + + &prompt.root; cap_mkdb /etc/login.conf + + + Az erõforrások korlátozása + két irányban is eltér a sima + hétköznapi bejelentkezési + tulajdonságoktól. Elõször is minden + korláthoz létezik egy gyenge (aktuális) + és egy erõs korlát. A gyenge korlátok a + felhasználók vagy az alkalmazások + részérõl még + finomíthatóak, de az erõs korláton + túl már nem. Ez utóbbit mindig tudja + csökkenteni a felhasználó, de sose tudja + növelni. Másodsorban a legtöbb + erõforráskorlát az adott + felhasználó által futtatott programokra + egyenként vonatkozik, nem pedig az összesre + együttesen. Megjegyezzük, hogy azonban ezeket az + eltéréseket a korlátok különleges + kezelése indokolja, nem pedig a bejelentkezési + tulajdonságok rendszerének + megvalósítása (tehát a korlátok + valójában nem ezen + tulajdonságok speciális esetei.) + + Így aztán, minden további + magyarázkodás nélkül, felsoroljunk alant + a leggyakrabban alkalmazott erõforráskorlátokat + (a többi, más egyéb bejelentkezési + tulajdonságokkal együtt, megtalálható a + &man.login.conf.5; man oldalon). + + + + coredumpsize + + + coredumpsize + + felhasználók + korlátozása + coredumpsize + + + A program által létrehozott + memóriakivonat maximális méretét + határolja be ez a korlát, + értelemszerûen a többi lemezterületre + vonatkozó korlátnak (például a + filesize vagy a + lemezkvóták) alárendelt módon. + Mindazonáltal ezt gyakran használjuk egyfajta + enyhébb lemezfoglalási + korlátként. Mivel nem maguk a + felhasználók hozzák létre ezeket + az állományokat és sokszor nem is + törlik le ezeket, ez a beállítás + azonban megmentheti ezeket a nagyobb programok (mint + például az emacs) + összeomlása során keletkezõ + memóriakivonatok felesleges + helyfoglalásától. + + + + + + cputime + + + cputime + + felhasználók + korlátozása + cputime + + + Az a maximális processzoridõ, amit a + felhasználó által futtatott programok + egyenként fogyaszthatnak. A vétkezõ + programok futását a rendszermag + leállítja. + + + Ez a korlát a + processzoridõre vonatkozik, + nem pedig a processzor + kihasználtságának + százalékára, ahogy a &man.top.1; + és a &man.ps.1; szokta megjeleníteni. Ez + utóbbi alapján korlátozni ugyanis, + még ezen leírás + készítésének pillanataiban + nem lehetséges, és meglehetõsen + hasztalan is lenne: egy fordítóprogram + — ami minden bizonnyal egy szabályosan + futó program — könnyen fel tudja + emészteni majdnem az egész processzort egy + idõre. + + + + + + filesize + + + filesize + + felhasználók + korlátozása + filesize + + + A felhasználó által + birtokolható állományok + maximális mérete. Eltérõen a + lemezkvótáktól, + ez a korlát az egyes állományokra + vonatkozik, nem pedig a felhasználó + összes állományára + együttesen. + + + + + + maxproc + + + maxproc + + felhasználók + korlátozása + maxproc + + + A felhasználó által egyidõben, + az elõtérben és a háttérben + futtatható programok maximális száma. + Érthetõ okokból ez az érték + nem lehet nagyobb, mint a rendszerben a &man.sysctl.8; + által definiált + kern.maxproc (a rendszermag által + maximálisan futtatható programok + számának) értéke. + Érdemes még továbbá megjegyezni, + hogy ez a beállítás gátolhatja a + felhasználó munkáját: gyakran + hasznos lehet egyszerre több példányban + is bejelentkezni a rendszerbe vagy csövekkel + összekapcsolt programokat futtatni. Bizonyos + feladatok, mint például egy nagyobb program + lefordítása, több program + futására is szétterjedhetnek + (például a &man.make.1;, &man.cc.1; és + egyéb köztes feldolgozókra). + + + + + memorylocked + + + memorylocked + + felhasználók + korlátozása + memorylocked + + + Ezzel korlátozhatjuk az egyes futó + programok által zárolható + memóriaterület méretét a + központi memóriában (lásd + &man.mlock.2;). Egyes rendszerkritikus programok, mint + például az &man.amd.8;, zárolják + magukat a központi memóriában, és + ezért soha nem lapozódnak ki onnan. Ennek + köszönhetõen nem érinti ezeket a + rendszer lapozásból eredõ esetleges + lelassulása. + + + + + memoryuse + + + memoryuse + + felhasználók + korlátozása + memoryuse + + + Ez az a maximális memóriamennyiség, + amelyet egy futó program egyszerre használhat. + Ebbe együttesen beleértendõ a központi + memóriában és a + lapozóállományban elfoglalt hely. Ez + ugyan nem minden szempontból korlátozza egy + program memóriahasználatát, de + indulásnak megfelelõ. + + + + + openfiles + + + openfiles + + felhasználók + korlátozása + openfiles + + + A felhasználó egyes futtatott programjai + által egy idõben megnyitható + állományok maximális száma. + &os;-ben az állományok közé a + foglalatok és az IPC-csatornák is + beszámítanak. Ezért vigyázzunk, + nehogy véletlenül túlságosan + alacsonyra állítsuk ezt az + értéket. Ezt rendszerszinten a + kern.maxfiles &man.sysctl.8; + érték határozza meg. + + + + + sbsize + + + sbsize + + felhasználók + korlátozása + sbsize + + + A korlátozás a felhasználó + által egyszerre maximálisan + elérhetõ hálózati memória + és így a rendszermag puffereire vonatkozik. + Eredetileg a régebbi, sok csatlakozást + felemésztõ DoS (Denial of Service) + támadások ellen nyújtana + védelmet, de általánosságban + alkalmazható a hálózati + kommunikáció + korlátozására is. + + + + + stacksize + + + stacksize + + felhasználók + korlátozása + stacksize + + + Ez a felhasználó által + mûködtetett egyes programok vermeinek + maximális mérete. Önmagában nem + elegendõ a programok által használt + memóriamennyiség + lekorlátozására, így emiatt + inkább a többi korláttal együtt + érdemes alkalmazni. + + + + + Van néhány tényezõ, amire + érdemes odafigyelni az erõforrások + korlátainak beállítása során. + Most következik pár tipp, javaslat és + egyéb megjegyzés a témához. + + + + A rendszerindítás során az + /etc/rc által indított + programok a daemon bejelentkezési + osztályba tartoznak. + + + + Habár a rendszerrel érkezõ + /etc/login.conf állományban + remekül be van állítva a legtöbb + korlát, de nekünk, mint rendszergazdáknak, + kell ismernünk a saját rendszerünk + korlátait. Ezen korlátok túlzott + tágításával a rendszerünk + könnyen leterhelhetõvé válik, + míg a túlzott + szûkítésével akadályozhatjuk + a hatékony használatát. + + + + A X Window System (X11) felhasználóinak a + többi felhasználónál + valószínûleg jóval több + erõforráshoz kell tudniuk + hozzáférni. Az X11 már + önmagában sok erõforrást eszik, de + egyben bátorítja is a + felhasználókat több program + párhuzamos futtatására. + + + + Ne felejtsük el, hogy sok korlát az egyes + különállóan futó programokra + vonatkozik, nem pedig a felhasználó összes + futtatott programjára. Például ha + beállítjuk 50-re az openfiles + értékét, a felhasználó + által elindított programok mindegyike legfeljebb + 50 állományt tud majd megnyitni. Emiatt a + felhasználó által egyszerre + ténylegesen megnyitható állományok + száma az openfiles és a + maxproc aktuális + értékeinek szorzatából + adódik. Ugyanez igaz a + memóriahasználatra is. + + + + Az erõforrások + korlátozásáról, a + bejelentkezési osztályokról és + tulajdonságaikról a hozzájuk tartozó + man oldalakon olvashatunk: &man.cap.mkdb.1;, &man.getrlimit.2; + és &man.login.conf.5;. + + + + + Csoportok + + csoportok + /etc/groups + + hozzáférések + csoportok + + + Egy csoport nem több felhasználók + összeségénél. A csoportokat a + nevük és az azonosítójuk (Group ID, GID) + azonosítja be. A &os;-ben (és a legtöbb + &unix;-szerû rendszerben) a rendszermag két + tényezõ alapján dönt arról, mit + szabad tennie egy futó programnak: ezek közül az + egyik a tulajdonosának azonosítója (UID), a + másik azon csoportok listája, melyeknek tagja a + tulajdonos. Eltérõen a UID-tõl, egy futó + programhoz csoportok listája tartozik. Amikor egy + felhasználó vagy egy futó program + csoportazonosítójára + hivatkoznak, általában csak a lista elsõ + elemére gondolnak. + + A csoportok nevei és azonosítói + közti megfeleltetéseket az + /etc/group állományban + találjuk. Ez lényegében egy szimpla + szöveges állomány, négy + kettõsponttal elválasztott mezõt tartalmaz. Ezek + közül az elsõ a csoport neve, a második a + titkosított jelszó, a harmadik a csoport + azonosítója, a negyedik pedig a tagok vesszõvel + tagolt felsorolása. Akár kézzel is nyugodtan + szerkeszthetõ (feltételezve persze, hogy nem + vétünk benne szintaktikai hibát!). A szintaxis + teljes leírását a &man.group.5; man oldalon + találhatjuk meg. + + Ha nem akarjuk magunk szerkeszteni az + /etc/group állományt, + használhatjuk a &man.pw.8; parancsot is csoportok + létrehozására és + törlésére. Például hozzuk + létre a pg_csoport nevû + csoportot és vizsgáljuk meg, valóban + létrejött-e: + + + A csoportok tagjainak beállítása a + &man.pw.8; használatával + + &prompt.root; pw groupadd pg_csoport +&prompt.root; pw groupshow pg_csoport +pg_csoport:*:1100: + + + A fent szereplõ 1100-as + érték a pg_csoport + csoportazonosítója. Ebben a pillanatban a + pg_csoportnak még egyetlen tagja + sincs, ami miatt lényegében haszontalan. Így + hát hívjuk meg pg_csoportba a + korábban létrehozott jantyik + nevû felhasználót. + + + A csoport tagjainak beállítása a + &man.pw.8; használatával + + &prompt.root; pw groupmod pg_csoport -M jantyik +&prompt.root; pw groupshow pg_csoport +pg_csoport:*:1100:jantyik + + + Az kapcsoló paramétere a + csoportba sorolandó felhasználók neveinek + vesszõkkel tagolt listája. A korábbi szakaszok + alapján már tudjuk, hogy a jelszavakat + tároló állomány egyben azokat a + csoportokat is tartalmazza, ahova az egyes + felhasználók tartoznak. Az utóbbiakat (a + felhasználókat) automatikusan beleteszi a rendszer a + csoportlistába, de az érintett + felhasználó nem fog megjelenni tagként a + &man.pw.8; parancs + utasításával, azonban az &man.id.1; és + a hozzá hasonló eszközökkel már + látható lesz. Más szavakkal élve, a + &man.pw.8; csak az /etc/group + állományt módosítja, és soha + nem próbál meg további adatokat kiolvasni a + /etc/passwd + állományból. + + + Egy új tag felvétele a csoportba a &man.pw.8; + használatával + + &prompt.root; pw groupmod pg_csoport -m kisati +&prompt.root; pw groupshow pg_csoport +pg_csoport:*:1100:jantyik,kisati + + + Az kapcsoló paramétere azon + felhasználók vesszõvel tagolt listája, + akiket fel akarunk venni a csoportba. Tehát + eltérõen az elõzõ + példától, ezeket a + felhasználókat felvesszük a csoportba, nem + pedig átírjuk velük a csoport jelenlegi + tagjainak listáját. + + + A &man.id.1; használata a csoporttagság + megállapítására + + &prompt.user; id jantyik +uid=1001(jantyik) gid=1001(jantyik) groups=1001(jantyik), 1100(pg_csoport) + + + Ahogy láthatjuk is, a jantyik + nevû felhasználó tagja a + jantyik nevû csoportnak és a + pg_csoportnak is. + + A &man.pw.8; mûködésérõl a + saját man oldalán, az + /etc/group formátumáról + pedig a &man.group.5; man oldalon találhatunk több + információt. + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/Makefile b/hu_HU.ISO8859-2/books/handbook/vinum/Makefile new file mode 100644 index 0000000000..eca585a9aa --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= vinum/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml new file mode 100644 index 0000000000..435576c312 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml @@ -0,0 +1,1964 @@ + + + + + + + + Greg + Lehey + Az eredeti változatot írta: + + + + + A Vinum kötetkezelõ + + + Áttekintés + + Nem számít, milyen lemezeink is vannak, ugyanis + mindig adódnak velük kapcsolatban gondjaink: + + + + Kicsik. + + + + Lassúk. + + + + Nem elég megbízhatóak. + + + + Ezekre a problémákra javasoltak és meg is + valósítottak számos megoldást. A + felhasználók egy része + általában úgy védekezik ellenük, + hogy több, gyakran redundánsan tároló + lemezt használ. A különféle + kártyák és hardveres + RAID-vezérlõk támogatása mellett a &os; + alaprendszerében megtalálható egy blokkos + eszközmeghajtóként a Vinum + kötetkezelõ is, amellyel virtuális + lemezmeghajtókat lehet létrehozni. Tehát a + Vinum egy olyan ún. + kötetkezelõ, vagyis + virtuális lemezkezelõ, ami az említett + három problémára próbál + megoldást adni. A Vinum a hagyományos lemezes + tárolásnál jóval nagyobb + rugalmasságot, teljesítményt és + megbízhatóságot biztosít, valamint + ismeri a RAID-0, RAID-1 és RAID-5 modelleket + külön-külön és kombinálva + is. + + Ebben a fejezetben összefoglaljuk a hagyományos + lemezes tárolás jellegzetes problémáit + és bemutatjuk a Vinum kötetkezelõt. + + + A &os; 5-ös verziójától kezdve a + Vinumot újraírták a GEOM-nak + megfelelõen (), megtartva az eredeti + elgondolásokat, elnevezéseket és a lemezen + tárolt metaadatok formátumát. Ezt az + újraírt változatot nevezik + gvinumnak (GEOM + vinum). A szövegben a + Vinumra kizárólag csak + általánosságban hivatkozunk, + függetlenül az + implementációjától. Most már + az összes parancsot a gvinum + használatával kell kiadni, illetve a + hozzátartozó modul neve + vinum.ko-ról + geom_vinum.ko-ra változott és + a megfelelõ eszközleírók a + /dev/vinum könyvtár helyett a + /dev/gvinum könyvtárban + találhatóak. A &os; 6. + verziójától pedig a régi Vinum + implementáció többé már nem is + része az alaprendszernek. + + + + + + Kicsik a lemezeink + + Vinum + + RAID + szoftver + + + A lemezek kapacitása ugyan növekszik, de + velük együtt a tárigények is. + Ezért gyakran érezzük úgy, hogy a + rendelkezésünkre álló lemezek + tárkapacitását meghaladó + állományrendszerre lenne + szükségünk. Kétségtelen, hogy ez a + probléma messze nem akkora jelentõségû, + mint például tíz évvel ezelõtt, + de még mindig fennáll. Egyes rendszerek ezt + úgy hidalták át, hogy létrehoztak egy + olyan absztrakt eszközt, amely az adatokat több lemezen + tárolja el. + + + + + A hozzáférési idõk szûk + keresztmetszetei + + Napjaink rendszerei szinte állandóan egyszerre + több adathoz is hozzá akarnak férni. + Például egy nagy forgalmú FTP vagy HTTP + szerver több 100 Mbit/s sebességû + kapcsolattal is csatlakozhat a világhálóhoz, + amelyeken keresztül párhuzamosan többezernyi + tranzakciót is folytathat, ami jelentõsen meghaladja a + legtöbb lemez átlagos átviteli + sebességét. + + A jelenleg kapható lemezek soros adatátviteli + sebessége egészen 70 MB/s-ig is terjedhet, de + ennek az értéknek kevés a + jelentõsége olyan környezetekben, ahol több, + egymástól függetlenül futó program + próbál egyszerre hozzáférni, hiszen + ilyen esetekben csak a töredékét képesek + elérni. Ilyenkor sokkal érdekesebb a lemezt + kezelõ alrendszer szempontjából nézni a + problémát: így az egyes adatátviteli + kérések terhelése lesz a + meghatározó paraméter, vagyis az az idõ, + amit a kérés teljesítésében + érintett meghajtók eltöltenek a + feldolgozással. + + Bármelyik kérést is vesszük, a + kiszolgáláshoz a meghajtónak + elõször a megfelelõ helyre kell mozgatnia az + író/olvasó fejeket, meg kell várni a + fej alatt elhaladó elsõ szektort, majd + végrehajtani a megfelelõ mûveletet. Ezek a + mûveletek szétválaszthatatlanok: semmi + értelme nincs megszakítani ezeket. + + Tekintsünk egy + átlagosnak mondható, nagyjából + 10 kB méretû adatátvitelt: a + legújabb nagyteljesítményû lemezek + átlagosan 3,5 ms alatt képesek + pozicionálni a fejeket. A leggyorsabb lemezek + 15 000  fordulatot tesznek meg percenként (RPM), + így az átlagos forgási + késleltetés (egy fél fordulat ideje) + 2 ms. 70 MB/s-os sebesség mellett az + átvitel maga megközelítõleg + 150 μs, ami szinte elhanyagolható a + pozicionálás idejéhez képest. Ilyen + esetekben a tényleges adatátviteli sebesség + 1 MB/s-nél alig valamivel többre esik vissza, + és tisztán látszik, hogy erõsen + függ az átvitt adat + mennyiségétõl. + + A hagyományos és kézenfekvõ + megoldása ennek a problémának + még több cséve + használata: egyetlen nagy lemez helyett alkalmazzunk + több kisebb, de azonos tárkapacitású + lemezt. Mindegyik lemez képes egymástól + függetlenül mozgatni a fejeiket és az adatokat, + aminek köszönhetõen a tényleges + adatátvitel mértéke nagyjából a + lemezek számával arányosan + növekszik. + + Az adatátvitelben bekövetkezõ javulás + pontos aránya természetesen kisebb, mint a lemezek + száma: habár az egyes meghajtók + képesek párhuzamosan mozgatni az adatokat, semmilyen + módon garantálhatjuk, hogy a kérések + egyenletesen oszlanak el köztük. Emiatt szinte + elkerülhetetlen, hogy az egyik meghajtót nagyobb + terhelés érje, mint a másikat. + + lemezek + összefûzése + + Vinum + összefûzés + + + A lemezekre esõ terhelés egyenletessége + erõsen függ attól, hogyan osztjuk el az adatokat + a meghajtók között. Az itt használt + példában a lemezen tárolt adatokat egy + könyv oldalaiként érdemes elképzelni, + vagyis rengeteg szám szerint címezhetõ + adatszektorként. A virtuális lemezt ennek + megfelelõen a legegyszerûbben úgy tudjuk + felosztani az egymás után következõ + független fizikai lemezek mérete szerint és + így használni, mintha egy nagy könyvet kisebb + részekre téptünk volna. Ezt a módszert + nevezik összefûzésnek, + és elõnye, hogy a résztvevõ lemezeknek nem + kell azonos méretûeknek lenniük. Ez a + megoldás remekül mûködik abban az esetben, + amikor a virtuális lemez hozzáférései + egyenletesen oszlanak el annak teljes területén. + Amikor viszont az elérés csak egy kisebb + területre korlátozódik, kevesebb javulás + tapasztalható. A mutatja be + lemezek egy ilyen összefûzött + konfigurációját. + + +
+ Az összefûzött szervezési + mód + +
+
+ + lemezcsíkozás + + Vinum + csíkozás + + RAID + + Feloszthatjuk a virtuális lemezünket kisebb azonos + méretû darabokra is, melyeket + különbözõ eszközökön sorosan + tárolunk el. Például az elsõ 256 szektort + eltároljuk az elsõ lemezen, majd a következõ + 256 szektort a következõ lemezen és így + tovább. Az utolsó lemez kitöltése + után az egész folyamat ismétlõdik, + egészen az összes lemez megtöltéséig. + Ezt a leképezést + csíkozásnak + (striping) vagy RAID-0-nak + nevezzük + + A RAID jelentése: Olcsó + lemezek hibatûrõ tömbje (Redundant Array of + Inexpensive Disks). Különféle + típusú hibatûrési megoldásokat + vonultat fel, habár az eredeti elnevezés + félrevezetõ lehet, mivel redundanciát nem + tartalmaz. + . + A csíkozás használata során valamivel + bonyolultabbá válik az adatok + megtalálása és többletmunkát is + jelenthet olyan esetekben, amikor az adatátvitel több + lemezt is érint, de ezzel egyidõben sokkal jobban + szétosztja a terhelést a lemezek között. A + mutatja be a lemezek csíkozott + szervezését. + + +
+ A csíkozott szervezési mód + +
+
+ +
+ + + Adatintegritás + + A modern lemezhajtók utolsó fontos + problémája, hogy nem eléggé + megbízhatóak. Annak ellenére, hogy a lemezek + ezen a téren meglehetõsen sokat fejlõdtek az + utóbbi pár évben, egy szervernek még + mindig ezek azok a központi részei, amelyek a + leginkább hajlamosak a meghibásodásra. + Amikor ez bekövetkezik, a hatása akár egy + katasztrófával is felérhet: a + sérült lemezmeghajtók cseréje és + az adatok visszaállítása napokat is + igénybe vehet. + + lemeztükrözés + + Vinum + tükrözés + + RAID-1 + + Ennek a problémának a hagyományos + megközelítése lenne a + tükrözés + (mirroring), vagyis amikor ugyanarról az + adatról tartunk két példányt + két eltérõ fizikai hardveren. A + RAID-szintek beköszöntével ezt + a technikát RAID level 1-nak vagy + RAID-1-nek is nevezik. Amikor írunk a + kötetre, mindenhova írunk, az olvasás pedig + bármelyik eszközrõl elvégezhetõ. + Így ha az egyik meghajtó tönkremenne, egy + másikon még mindig megtalálható az + összes adat. + + A tükrözés két problémát + vet fel: + + + + Ár. Legalább kétszer annyiba + kerül, mint a nem redundánsan + tároló megoldások. + + + + Teljesítménycsökkenés. Mivel + az írást minden meghajtón végre + kell hajtani, legalább kétszer annyi + sávszélességet is felémeszt, + mint a nem tükrözött kötetek + esetén. Az olvasás viszont nem veszít + a sebességébõl: sõt, még + gyorsabbnak is tûnhet. + + + + lemezparitás + + Vinum + paritás + + RAID-5 + + Az adatintegritás megõrzésére egy + másik megoldás a paritás + használata, melyet a 2, 3, 4 és 5 + RAID-szintek valósítanak meg. + Ezek közül talán a RAID-5 a + legérdekesebb. A Vinumban egy olyan csíkozott + szervezési módként + valósították meg, ahol minden + csíkból egy blokk az összes többi + paritási információját tartalmazza. A + RAID-5 által megvalósított + szervezés hasonlít a csíkozáshoz, + azonban a RAID-5-ben mindegyik csík + tartalmaz egy paritási információt is. + Tehát a Vinumban, ahogy azt RAID-5 a + megköveteli, a paritást tároló blokkok + helye az egyik csíkról a másikra + változik. Az adatblokkokban található + számok relatív blokkszámokat + jelölnek. + + +
+ A RAID-5 szervezési mód + +
+
+ + A RAID-5-nek a tükrözéshez + képest megvan az az elõnye, hogy jelentõsen + kevesebb tárhelyet igényel. Az olvasás + hasonló a csíkozott szervezésekéhez, + azonban az írás jóval lassabb, közel + 25%-a az olvasás sebességének. Az egyik + meghajtó meghibásodása esetén a + tömb csökkentett módban még képes + folytatni a mûködést: a fennmaradó + meghajtókról továbbra is a megszokott + módon lehet olvasni, viszont a sérült + meghajtóról olvasott adatokat folyamatosan + javítani kell a többirõl származó + segédinformációk szerint. + +
+ + + A Vinum objektumai + + A tárgyalt problémák + orvoslására a Vinumban egy négyszintû + objektumhierarchiát alakítottak ki: + + + + A legjobban észlelhetõ objektum a + virtuális lemez, amelyet + kötetnek (volume) nevezünk. Ez + a kötet lényegében ugyanazokkal a + tulajdonságokkal rendelkezik, mint egy &unix;-os + lemezmeghajtó, habár akadnak finomabb + különbségek. Mérete korlátlan + lehet. + + + + A kötetek erekbõl (plex) + állnak, melyek a kötet teljes + területét képviselik. Ennélfogva a + hierarchia ezen szintje nyújtja a redundanciát. + Az ereket legegyszerûbben a tükrözött + tömbben helyet foglaló lemezekként tudjuk + elképzelni, melyek ugyanazt az adatot + tartalmazzák. + + + + Mivel a Vinum a &unix; lemezes tárolást + megvalósító alrendszerében + helyezkedik el, a többlemezes erek + felépítéséhez + használhatnánk a &unix;-os + partíciókat, azonban ehhez a feladathoz nem + eléggé rugalmasak, mivel a &unix;-os lemezek + csak korlátozott számú + partíciót tartalmazhatnak. A Vinum ehelyett + allemeznek (subdisk) nevezett folytonos + területekre osztja fel az egyes &unix;-os + partíciókat (a + meghajtókat), melyeket + aztán az erek létrehozására + használ fel. + + + + A Vinum által létrehozott + meghajtókon (drive) levõ + allemezek lesznek valódi &unix;-os + partíciók. A Vinum-meghajtók + tetszõleges számú allemezt tartalmazhatnak. + Eltekintve a meghajtó elején + található apró területtõl, + melyen a beállításokra és az + állapotra vonatkozó információk + tárolódnak, az egész meghajtó + felhasználható adatok + tárolására. + + + + A most következõ szakaszokban ismertetjük, hogy + ezek az objektumok milyen módon szolgáltatják + a Vinum részérõl elvárt + funkciókat. + + + A kötetek mérete + + Az erek képesek a Vinum + konfigurációjában található + több különbözõ meghajtón + elhelyezkedõ allemezeket is nyalábba kötni. + Ennek következményeképpen az egyes + meghajtók mérete nem korlátozza az erek + méretét, emiatt a kötetét sem. + + + + + Redundáns adattárolás + + A Vinum a tükrözést több ér + egyetlen kötetté olvasztásával hozza + létre. Az erek mindegyike a köteten + található adatokat képviseli. Egy + kötet legalább egy, legfeljebb nyolc eret + tartalmazhat. + + Habár egy ér egy kötet teljes + adatát ábrázolja, elõfordulhat olyan + eset, hogy bizonyos részei hiányoznak fizikai, + kialakítási (nem társítottunk + allemezeket hozzájuk) okokból + adódóan vagy véletlenül (a + hozzátartozó lemezterületek + sérültek). Amíg legalább egy + ér képes a kötet teljes tartalmát + szolgáltatni, addig a kötet teljesen épnek + tekinthetõ. + + + + + Teljesítmény + + A Vinum az összefûzést és a + csíkozást is egyaránt + megvalósítja az erek szintjén: + + + + Az összefûzött + ér allemezek területeibõl + építkezik. + + + + A csíkozott ér + felosztja az adatokat az allemezek között. Az + allemezek mindegyikének ugyanakkorának kell + lennie, és legalább két allemeznek + lennie kell, hogy eltérjen az + összefûzött értõl. + + + + + + + Hogyan szervezzük az ereket? + + A &os; &rel.current; verziójában két + fajta erezési megoldást találhatunk: + + + + Az összefûzött erek a legrugalmasabbak: + tetszõleges számú allemezt + tartalmazhatnak, az allemezek mérete pedig + eltérhet. Az ér újabb allemezek + hozzáadásával tovább + bõvíthetõ. Kevesebb processzoridõt + igényel, mint egy csíkozott ér, + habár a kettõ többletköltsége + közti eltérés nem mérhetõ. + Másrészrõl azonban nagyon + érzékenyek a forgalmasabb pontokra, vagyis + amikor az egyik lemez folyamatosan használatban van, + miközben a többi üresen jár. + + + + A csíkozott (RAID-0) erek + legnagyobb elõnye, hogy csökkentik a forgalmasabb + pontok kialakulását: a megfelelõ + méretû csíkszélesség (ami + kb. 256 kB) választásával el + tudjuk egyengetni a tömbben dolgozó + meghajtók terhelését. Ennek a + megközelítésnek a hátránya + (részben) a sokkal összetettebb kód, + valamint az allemezekre vonatkozó + megszorítás, amely szerint meg kell + egyezniük a méretüknek, illetve az + érhez annyira bonyolult újabb allemezeket + kapcsolni, hogy a Vinum jelenleg nem is képes + rá. Ezeken kívü a Vinum még + támaszt egy triviális igényt is: a + csíkozott érben legalább két + allemeznek lennie kell, mivel másképp nem + tér el egy összefûzött + értõl. + + + + A foglalja össze az + egyes erezések elõnyeit és + hátrányait. + + + Vinum erezések + + + + Erezés típusa + Legkevesebb allemez + Bõvíthetõ + Megegyezõ méret + Alkalmazás + + + + + + összefûzött + 1 + igen + nem + Sok adat tárolása, ahol a + hangsúly a rugalmasságon és a + mérsékelt teljesítményen + van. + + + + csíkozott + 2 + nem + igen + Nagy teljesítmény, nagy + mennyiségû egyidejû + hozzáférés mellett + + + +
+ +
+
+ + + Példák + + A Vinum a rendszerben ismert objektumokkal kapcsolatos + információkat egy + konfigurációs + adatbázisban tartja fenn. Kezdetben a + felhasználó egy vagy több + konfigurációs állomány + segítségével hozza létre ezt az + adatbázist a &man.gvinum.8; segédprogrammal. A + Vinum ezt a konfigurációs adatbázist + bemásolja mindegyik irányítása alatt + álló slice-ba (melyek a Vinum + eszköznek hív). Az + adatbázis minden egyes állapotváltás + folyamán frissül, így egy + újraindítás után minden egyes + Vinum-objektum állapota pontosan + helyreállítódik. + + + A konfigurációs + állomány + + A konfigurációs állomány + írja le az egyes objektumokat. Egy egyszerûbb + kötet definíciója így nézhet + ki: + + + drive a device /dev/da3h + volume myvol + plex org concat + sd length 512m drive a + + Ez az állomány négy Vinum-objektumot + definiál: + + + + A drive kezdetû sor adja meg a + lemez partícióját + (meghajtóját) és a + hardveren levõ elhelyezkedését. Az + a szimbolikus nevet kapta. A + szimbolikus és a konkrét eszköznevek + szétválasztásával + lehetõvé válik, hogy a lemezek + félreértések nélkül + átkerülhessek egyik helyrõl a + másikra. + + + + A volume kezdetû sor adja meg + a kötetet. Itt az egyetlen szükséges + jellemzõ a név, ami ebben az esetben a + myvol. + + + + A plex kezdetû sor adja meg az + eret. Itt az egyetlen szükséges + paraméter a szervezési mód, ami ebben + az esetben a concat + (összefûzött). Nevet nem kell megadnunk, + mivel a rendszer automatikusan létrehoz egy nevet a + kötet nevébõl a + .px utótag + hozzáadásával, ahol az + x az ér száma lesz a + köteten belül. Emiatt a most definiált + ér neve myvol.p0 lesz. + + + + Az sd kezdetû sor adja meg az + allemezt. Itt legalább meg kell adnunk a + meghajtónak a nevét, ahol tárolni + akarjuk, ill. a méretét. Ahogy már + említettük az ereknél is, nevet nem + kötelezõ megadnunk, mivel a rendszer + magától rendel hozzá nevet, amit a + hozzátartozó ér nevébõl + származtat, hozzáadja a + .sx + utótagot, ahol az x az allemez + éren belüli sorszáma lesz. Ennek + következtében a Vinum ennek az allemeznek a + myvol.p0.s0 nevet adja. + + + + Miután a &man.gvinum.8; feldolgozta ezt az + állományt, az alábbi kimenetet fogja + adni: + + + &prompt.root; gvinum -> create config1 + Configuration summary + Drives: 1 (4 configured) + Volumes: 1 (4 configured) + Plexes: 1 (8 configured) + Subdisks: 1 (16 configured) + + D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) + + V myvol State: up Plexes: 1 Size: 512 MB + + P myvol.p0 C State: up Subdisks: 1 Size: 512 MB + + S myvol.p0.s0 State: up PO: 0 B Size: 512 MB + + Ez a kimenet a &man.gvinum.8; egyszerû + listázási formátumát mutatja. + Grafikusan a mutatja + be. + + +
+ Egyszerû Vinum-kötet + +
+
+ + Ezen és az ezt követõ ábrán + egy kötetet láthatunk, amely ereket tartalmaz, + amelyek pedig allemezeket. Ebben az alapvetõ + példában a kötet egyetlen eret tartalmaz, + amiben pedig egyetlen allemez van. + + Az itt bemutatott kötetnek nincs semmilyen elõnye + a hagyományos lemezpartícionáláshoz + képest. Egyetlen eret tartalmaz, tehát nem is + redundáns. Az ér egyetlen allemezt tartalmaz, + tehát nem tér el a megszokott + lemezpartíciók + helyfoglalásától sem. A + következõ szakaszokban sokkal érdekesebb + konfigurációs módszereket is + illusztrálunk. + +
+ + + Megnövelt rugalmasság: + tükrözés + + A kötetek rugalmassága + tükrözéssel növelhetõ. Egy + tükrözött kötet kiosztása + során feltétlenül gondoskodnunk kell + arról, hogy az egyes erekhez tartozó allemezek + eltérõ meghajtókon találhatóak, + így az esetleges meghibásodások nem + károsítják mind a két eret. Az + alábbi konfigurációban egy kötetet + tükrözünk: + + + drive b device /dev/da4h + volume mirror + plex org concat + sd length 512m drive a + plex org concat + sd length 512m drive b + + Ebben a példában már nem kellett + újra megadnunk az a + meghajtót, mivel a Vinum figyelemmel kíséri + az összes objektumot a saját + konfigurációs adatbázisában. A + definíció feldolgozása után a + konfiguráció így fog kinézni: + + + Drives: 2 (4 configured) + Volumes: 2 (4 configured) + Plexes: 3 (8 configured) + Subdisks: 3 (16 configured) + + D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) + D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) + + V myvol State: up Plexes: 1 Size: 512 MB + V mirror State: up Plexes: 2 Size: 512 MB + + P myvol.p0 C State: up Subdisks: 1 Size: 512 MB + P mirror.p0 C State: up Subdisks: 1 Size: 512 MB + P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB + + S myvol.p0.s0 State: up PO: 0 B Size: 512 MB + S mirror.p0.s0 State: up PO: 0 B Size: 512 MB + S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB + + A ugyanezt a szerkezetet + grafikusan is. + + +
+ Tükrözött Vinum-kötet + +
+
+ + Ebben a példában minden ér tartalmazza + a teljes 512 MB-os területet. Ahogy a korábbi + példa esetén, itt is mindegyik ér csak + egyetlen allemezt tartalmaz. + +
+ + + A teljesítmény javítása + + Az elõbbi példában szereplõ + tükrözött kötet egy tükrözetlen + kötetnél már jobban ellenáll a + hibáknak, azonban a teljesítménye is + kisebb. A köteten minden egyes írás mind a + két meghajtóra érvényesül, + ezáltal a lemezek teljes + sávszélességét nagyobb + arányban használja. A + teljesítményre vonatkozó + megfontolásaink egy másik + megközelítést kívánnak meg: a + tükrözés helyett inkább csíkozzuk + szét az adatot a lehetõ legtöbb lemezen. Az + alábbi konfiguráció egy olyan kötetet + mutat be, ahol egy eret négy lemezmeghajtóan + keresztül csíkozunk: + + + drive c device /dev/da5h + drive d device /dev/da6h + volume stripe + plex org striped 512k + sd length 128m drive a + sd length 128m drive b + sd length 128m drive c + sd length 128m drive d + + Mint ahogy azt már korábban is + említettük, nem szükséges még + egyszer megadni azokat a meghajtókat, amiket a Vinum + már ismer. A definíció feldolgozása + után a konfigurációnk + nagyjából így néz ki: + + + Drives: 4 (4 configured) + Volumes: 3 (4 configured) + Plexes: 4 (8 configured) + Subdisks: 7 (16 configured) + + D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) + D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) + D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) + D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) + + V myvol State: up Plexes: 1 Size: 512 MB + V mirror State: up Plexes: 2 Size: 512 MB + V striped State: up Plexes: 1 Size: 512 MB + + P myvol.p0 C State: up Subdisks: 1 Size: 512 MB + P mirror.p0 C State: up Subdisks: 1 Size: 512 MB + P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB + P striped.p1 State: up Subdisks: 1 Size: 512 MB + + S myvol.p0.s0 State: up PO: 0 B Size: 512 MB + S mirror.p0.s0 State: up PO: 0 B Size: 512 MB + S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB + S striped.p0.s0 State: up PO: 0 B Size: 128 MB + S striped.p0.s1 State: up PO: 512 kB Size: 128 MB + S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB + S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB + + +
+ Csíkozott Vinum-kötet + +
+
+ + Ez a kötet a ban + látható. A csíkok + sötétedése jelzi a helyüket az ér + területében: a világosabbak elöl, a + sötétebbek hátul szerepelnek. + +
+ + + Rugalmasság és + teljesítmény + + Megfelelõ hardver + birtokában lehet olyan köteteket is + építeni, amelyek mind megnövelt + rugalmasságot, mind pedig megnövelt + teljesítményt mutatnak a szabványos + &unix;-os partíciókhoz képest. Ennek a + konfigurációs állománya így + nézne ki: + + + volume raid10 + plex org striped 512k + sd length 102480k drive a + sd length 102480k drive b + sd length 102480k drive c + sd length 102480k drive d + sd length 102480k drive e + plex org striped 512k + sd length 102480k drive c + sd length 102480k drive d + sd length 102480k drive e + sd length 102480k drive a + sd length 102480k drive b + + A második ér allemezei el vannak tolva az + elsõ ér allemezeitõl két + meghajtónyival. Ez segít megelõzni, hogy az + írási mûveletek ne ugyanarra az allemezre + vonatkozznak, még akkor is, ha az adatátvitel + két meghajtón is keresztülível. + + A illusztrálja + ennek a kötetnek a szerkezetét. + + +
+ Tükrözött, csíkozott + Vinum-kötet + +
+
+ +
+
+ + + Az objektumok elnevezése + + Korábban már megismerhettük, hogy a Vinum + alapértelmezett neveket társít az erekhez + és az allemezekhez, habár ezek a nevek + felülbírálhatóak. Ez viszont + egyáltalán nem ajánlott, mivel már a + VERITAS kötetkezelõ, ahol tetszõleges neveket + rendelhetünk az objektumokhoz, használata során + kiderült, hogy akkora mértékû + rugalmasságot nem kínál fel, mint amennyi + zavart képes okozni. + + A nevek tartalmazhatnak bármilyen nem üres + karaktert, azonban érdemes inkább csak betûket, + számjegyeket és az aláhúzást + használni. A kötetek, erek és allemezek nevei + akár 64 karakteresek is lehetnek, a meghajtók nevei + pedig 32 karakteresek. + + A Vinum objektumai a /dev/gvinum + könyvtáron belüli hierarchiában + helyezkednek el eszközleírókként. Az + imént említett + példakonfiguráció hatására a + következõ eszközleírók jönnek + létre: + + + + + Ez a rész csak a Vinum korábbi, elavult + implementációjára vonatkozik. + + + A /dev/vinum/control és + /dev/vinum/controld nevû + vezérlõeszközök, melyeket a + &man.gvinum.8; és a Vinum démon + használ. + + + + Mindegyik kötethez egy eszközleíró + tartozik. Ezek a Vinum számára a központi + eszközök, ezért az elõbbi + konfiguráció révén megjelennek a + /dev/gvinum/myvol, + /dev/gvinum/mirror, + /dev/gvinum/striped, + /dev/gvinum/raid5 és + /dev/gvinum/raid10 + eszközök. + + + + + Ez a rész csak a Vinum korábbi, elavult + implementációjára vonatkozik. + + + Az egyes meghajtókhoz tartozó + leírók a /dev/vinum/drive + könyvtárban találhatóak. Ezek + valójában szimbolikus linkek a megfelelõ + lemezes eszközökre. + + + + Minden kötethez közvetlen leírók + tartoznak /dev/gvinum/ + könyvtárban. + + + + Az egyes erek és allemezek + eszközleírói a + /dev/gvinum/plex és + /dev/gvinum/sd könyvtárakban + jelennek meg. + + + + Például tekintsük most az alábbi + konfigurációs állományt: + + + drive drive1 device /dev/sd1h + drive drive2 device /dev/sd2h + drive drive3 device /dev/sd3h + drive drive4 device /dev/sd4h + volume s64 setupstate + plex org striped 64k + sd length 100m drive drive1 + sd length 100m drive drive2 + sd length 100m drive drive3 + sd length 100m drive drive4 + + Az állomány feldolgozása után az + eszközleírókat a &man.gvinum.8; az + alábbi módon szervezi a + /dev/gvinum könyvtárban: + + + drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex + crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 + drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd + + /dev/vinum/plex: + total 0 + crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 + + /dev/vinum/sd: + total 0 + crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 + crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 + crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 + crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3 + + Jóllehet, az ereket és allemezeket nem + ajánlott külön-külön elnevezni, a Vinum + meghajtóknak nevet kell adni. Ezzel + megoldhatóvá válik, hogy az egyes + meghajtók automatikusan felismerhetõek legyenek abban + az esetben is, amikor fizikailag áthelyezzük ezeket. + A meghajtók nevei legfeljebb 32 karakteresek + lehetnek. + + + Állományrendszerek + létrehozása + + A kötetek egyetlen kivétellel teljesen azonosak + a lemezekkel a rendszer számára. Ugyanis a + &unix;-os meghajtóktól eltérõen a + Vinum nem particionálja a köteteket, és + ezért nem is tárolnak partíciós + táblát. Ez megkövetelte néhány + lemezkezelõ segédprogram, leginkább a + &man.newfs.8; módosítását, mivel + azok korábban megpróbálták a + Vinum-kötetek nevének utolsó betûit egy + partíció azonosítójaként + értelmezni. Például egy lemezes + meghajtó neve /dev/ad0a vagy + /dev/da2h alakú. Az elõbbi az + elsõ (0) IDE lemez elsõ (a) + partícióját, míg az utóbbi a + harmadik (2) SCSI lemez nyolcadik (h) + partícióját jelöli. Ezzel szemben + azonban a Vinum-kötetek neve + /dev/gvinum/concat alakú lesz, ahol + a név semmilyen kapcsolatban nem áll a + partíció nevével. + + Hétköznapi esetben a &man.newfs.8; + megpróbálja a lemez nevét + értelmezni, és panaszkodik, ha nem sikerül. + Például: + + &prompt.root; newfs /dev/gvinum/concat +newfs: /dev/gvinum/concat: can't figure out file system partition + + A köteten a &man.newfs.8; parancs + kiadásával tudunk állományrendszert + létrehozni: + + &prompt.root; newfs /dev/gvinum/concat + + + A &os; 5.0 elõtt verzióiban a &man.newfs.8; + parancsnak a régi elnevezési séma + használata mellett még át kell adni egy + -v kapcsolót is: + + + &prompt.root; newfs -v /dev/vinum/concat + + + + + + A Vinum beállítása + + A GENERIC rendszermag nem tartalmazza a + Vinumot. Habár készíteni lehet olyan + rendszermagot, amelyik támogatja a Vinumot, mégsem + ajánlott. A Vinumot a szabványos módon + modulként (kld) indíthatjuk el. + Még a &man.kldload.8; használatára sincs + szükség, mivel a &man.gvinum.8; indulása + során ellenõrzi a modul jelenlétét + és betölti, ha még nem lenne jelen. + + + Indítás + + A Vinum alapvetõen ugyanúgy tárolja a + konfigurációkat a slice-okban, mint maguk a + konfigurációs állományok. A + konfigurációs adatbázis beolvasása + során a Vinum felismeri azokat a kulcsszavakat, + amelyeknek nem szabad elõfordulniuk az + állományokban. Például a lemezek + beállítása tartalmazhatja a + következõ szöveget: + + volume myvol state up +volume bigraid state down +plex name myvol.p0 state up org concat vol myvol +plex name myvol.p1 state up org concat vol myvol +plex name myvol.p2 state init org striped 512b vol myvol +plex name bigraid.p0 state initializing org raid5 512b vol bigraid +sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b +sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b +sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b +sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b +sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b +sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b +sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b +sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b +sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b +sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b +sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b +sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b +sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b + + Az elõbbiektõl nyilvánvalóan + eltér abban, hogy itt már megjelennek a + konkrét pozíciókra és + elnevezésekre vonatkozó információk + (melyeket a felhasználó is megadhat, azonban ezt + nem tanácsoljuk), valamint az állapotok (ezeket + nem láthatja a felhasználó). A Vinum a + konfigurációban nem tárolja a + meghajtókat, helyette a beállított lemezes + meghajtók partícióin fog + Vinum-címkéket keresni. Ennek + köszönhetõen a Vinum még akkor is + képes pontosan megtalálni a meghajtókat, + amikor megváltoznak a hozzátartozó + &unix;-os meghajtók azonosítói. + + + Automatikus indítás + + + Ez a rész csak a Vinum elavult + implementációjára vonatkozik. A + Gvinum mindig automatikusan elindul a + hozzátartozó modul + betöltésével együtt. + + + Az alábbi sort mindenképpen hozzá + kell adnunk az /etc/rc.conf + állományhoz, hogy a Vinum a + rendszerindítás során automatikusan + elinduljon: + + start_vinum="YES" # állítsuk YES-re az indításhoz + + Hozzuk létre és írjuk bele, ha nem + lenne /etc/rc.conf nevû + állományunk. Ennek hatására a + rendszer az indulás során betölti a Vinum + kld modult, és a + konfigurációban szereplõ objektumokat + elindítja. Ez még az + állományrendszerek csatlakoztatása + elõtt történik meg, aminek + révén a Vinum-köteteken + található állományrendszereket a + rendszer automatikusan át tudja vizsgálni az + &man.fsck.8; segítségével, majd + csatlakoztatja ezeket. + + Amikor a Vinumot a vinum start + paranccsal indítjuk el, a Vinum beolvassa a + konfigurációs adatbázist a + Vinum-meghajtók egyikérõl. Normál + körülmények között mindegyik + meghajtón megtalálható a + konfigurációs adatbázis egy + példánya, ezért szinte teljesen mindegy, + melyik meghajtót is olvassa. Egy + rendszer-összeomlás után azonban a Vinumnak + meg kell tudnia állapítania, melyik + meghajtón található meg az + adatbázis legfrissebb példánya, és + ezt kell beolvasnia. Ezután a lemaradt + meghajtókon található + adatbázispéldányokat + szinkronizálja ehhez a változathoz. + + + + + + + Rendszerindítás + Vinum-kötetrõl + + Olyan számítógépeknél, ahol + a teljesen tükrözött Vinum-alapú + állományrendszereket használunk, + kívánatos lehet magát a + rendszerindításhoz használt + állományrendszert is tükrözni. Egy ilyen + konfiguráció összeállítása + már messze nem annyira egyszerû, mint egy + tetszõleges állományrendszer esetén, + mivel: + + + + Az indításhoz használt + állományrendszernek már a folyamat nagyon + korai szakaszában rendelkezésre kell + állnia, ezért a Vinumnak már itt + elérhetõnek kell lennie. + + + A rendszerindító + állományrendszert tartalmazó köteten + még ott kell lennie a rendszerindító + kódnak és a rendszermagnak is, melyeket a + rendszer saját eszközein (például + ilyen a BIOS a PC-knél) keresztül kell tudnunk + beolvasni, amiket viszont nem tudunk + felkészíteni a Vinumra. + + + + A soronkövetkezõ szakaszokban + rendszerindító kötetként + (root volume) fogunk általánosságban + véve hivatkozni a rendszerindításhoz + használt állományrendszert tartalmazó + Vinum-kötetre. Ennek megfelelõen + valószínûleg jó ötlet a + "root" névvel azonosítani ezt a + kötetet, habár technikai szempontból ezt semmi + nem követeli meg. Az itt felsorakozó + példákban azonban ezt a nevet fogjuk + használni. + + + A Vinum kellõen korai indítása + + Ennek kiváltásához számos + lépést kell megtennünk: + + + + A rendszermagnak már el kell érnie a + Vinumot a rendszerindítás során. + Emiatt a ban leírt + automatikus indítási módszer nem + alkalmazható erre a feladatra, és a + start_vinum paramétert + nem is szabad használni a most + ismertetendõ konfigurációban. A Vinumot + statikusan bele is építhetjük a + rendszermagba és így állandóan + elérhetõ, de ez általában nem + kielégítõ megoldás. Megoldhatjuk + úgy is, ha a /boot/loader-re + () bízzuk a vinum modul + betöltését, még a rendszermag + elõtt. Ezt az alábbi sorral válthatjuk + ki a /boot/loader.conf + állományban: + + geom_vinum_load="YES" + + + + + A Gvinum használata + során az összes többi + beállítás automatikusan + végrehajtódik, amint a modul + betöltõdik, ezért ilyenkor csak a fentebb + leírt eljárásra van + szükség. Az itt felsoroltak csak az elavult + Vinum implementációra vonatkoznak, + csupán a régebbi típusú + rendszerek kedvéért említjük + meg. + + + A Vinumot nagyon korán életre kell + keltenünk, hiszen a rendszerindításhoz + használt állományrendszert + tartalmazó kötetet kell + élesítenünk. + Alapértelmezés szerint a Vinum rendszerszinten + futó része nem keres addig semmilyen + Vinum-kötetinformációval rendelkezõ + meghajtót, amíg a rendszergazda (vagy + valamelyik rendszerindító szkript) ki nem adja + a vinum start parancsot. + + + A most következõ bekezdés a &os; 5.X + és az azutáni rendszerek esetén + mutatja be a szükséges + lépéseket. A &os; 4.X verziója + esetén máshogy kell elvégezni a + beállításokat, amit a mutat be. + + + Ha hozzáadjuk a következõ sort a + /boot/loader.conf + állományhoz, akkor azzal utasíthatjuk a + Vinumot, hogy a rendszermag indítása + során vizsgálja át az összes + meghajtót: + + vinum.autostart="YES" + + Nem szükséges megmondani a rendszermagnak, + merre keresse a rendszerindításhoz + használt állományrendszert. A + /boot/loader megkeresi a + hozzátartozó eszközt a + /etc/fstab állományban + és átadja ezt az információt a + rendszermagnak. Amikor a csatlakoztatására + kerül sor, a rendszermag az eszköz + nevébõl meg tudja állapítani, + melyik eszközmeghajtót kérje meg a + belsõ (fõ- és + al)eszközazonosító + leképzéséhez. + + + + + + + A Vinum-alapú rendszerindító + kötet elérése a rendszertöltés + során + + Mivel a jelenlegi &os; rendszertöltõ csak 7,5 KB + méretû és egyébként is csak az + UFS állományrendszerrõl tud + állományokat beolvasni (mint például + a /boot/loadert), teljesen lehetetlen + még a Vinum belsõ szerkezetére is + megtanítani, tehát a + Vinum-konfigurációk + értelmezésére és magának a + rendszerindító kötet elemeinek + kielemzésére. Ezért be kell vetnünk + néhány trükköt ahhoz, hogy a + rendszerindító kód számára a + rendszerindításhoz használható + szabványos "a" partíció + képzetét keltsük. + + Mindez csak akkor válik + elérhetõvé, ha az alábbi + követelményeket teljesíti a + rendszerindító kötet: + + + + Nem lehet csíkozott vagy RAID-5 + típusú. + + + + Erenként nem tartalmazhat egynél több + összefûzött allemezt. + + + + Láthatjuk, hogy hasznos és lehetséges + is több eret használni, melyek mindegyike a + rendszerindító állományrendszer + egy-egy másolatát tartalmazza. Az indulás + folyamán azonban ezen példányok + közül csak az egyiken fogja keresni a rendszer a + rendszertöltõt és a többi + állományt egészen addig, amíg a + rendszermag magát az állományrendszert nem + csatlakoztatja. A látszat kedvéért az + ereken belül található allemezek + mindegyikének lennie kell egy saját + "a" partíciójának, + amivel lényegében alkalmassá válik a + rendszerindításra. Ezeknek a hamis + "a" partícióknak nem kell + feltétlenül a többiekkel megegyezõ + pozíciókon elhelyezkedniük, azonban a + tévedések elkerülése + érdekében valószínûleg hasznos + olyan Vinum-köteteket létrehozni, ahol a + keletkezõ tükrözött eszközök + szimmetrikusak. + + A rendszerindító kötet egyes + eszközökön található + "a" partícióit az + alábbiak segítségével + állíthatjuk be: + + + + A rendszerindító kötet + részeként megjelenõ eszközön + található allemez helyét (az + eszköz elejétõl számított + eltolását) és méretét + ellenõrizni kell az alábbi parancs + segítségével: + + &prompt.root; gvinum l -rv root + + Ne felejtsük el, hogy a Vinum az eltolásokat + és méreteket byte-okban méri. + Ezekbõl tehát úgy nyerünk a + bsdlabel használatához + szükséges blokkszámokat, ha ezeket + elosztjuk 512-vel. + + + + Futassuk le a + + &prompt.root; bsdlabel -e eszköznév + + parancsot minden olyan eszközön, amelyik + részt vesz a rendszerindító kötet + kialakításában. Az + eszköznév legyen a + slice (fdisk)-táblát nem tartalmazó + lemezek esetén a lemez neve (mint + például da0), vagy + ellenkezõ esetben a slice neve (például + ad0s1). + + Ha már lenne egy "a" + partíció az eszközön + (valószínûleg egy Vinum elõtti + rendszeríndító + állományrendszert tartalmaz), nevezzük + át valami másra és így + továbbra is elérhetõ marad (biztos, ami + biztos), viszont többé már nem lesz a + rendszer számára alapértelmezett + rendszerindító eszköz. Az aktív + partíciók (mint például az + éppen csatlakoztatott rendszerindító + állományrendszer) nem nevezhetõek + át, ezért ezt a lépést csak + akkor tudjuk megtenni, ha a rendszerünket egy + Fixit (Helyreállító) + eszközrõl indítjuk, vagy egy olyan + kétlépéses folyamat során, ahol + (tükrözés esetén) a lemezrõl + még nem indítottuk el a rendszert. + + Ezt követõen az eszközön + található Vinum-partíciót + (amennyiben létezik) az eszközön levõ + allemez eltolásához kell helyezni. Ennek + eredménye lesz az új "a" + partíció "offset" + értéke. A partíció + "size" (méret) + értéke szó szerint + átemelhetõ a fenti + számításból. Az + "fstype" legyen + 4.2BSD. Az "fsize", + "bsize" és + "cpg" értékeket a jelenlegi + állományrendszerhez mérten + ajánlott megválasztani, azonban itt most + egyáltalán nem bírnak + jelentõséggel. + + Ezzel a módszerrel + létesítettünk egy olyan új + "a" partíciót, amely lefedi + az eszközön található + Vinum-partíciót. Jegyezzük meg, hogy a + bsdlabel kizárolag csak abban az + esetben fogja megengedi ezt az átfedést, ha a + Vinum-partíciónk "vinum" + típussal van megjelölve. + + + + Készen is vagyunk! Most már van minden + eszközön egy hamisított + "a" partíciónk, amelyeken + megtalálható a rendszerindító + kötet egy-egy másolata. Határozottan + ajánlott még egyszer ellenõrizni a + munkánkat az alábbi parancs + kiadásával: + + &prompt.root; fsck -n /dev/eszköznéva + + + + Figyeljünk arra, hogy az összes + vezérlési információt + tartalmazó állománynak a Vinum-köteten + található rendszerindító + állományrendszerre kell vonatkoznia, ami viszont + egy új Vinum rendszerindító kötet + beállítása után nem + feltétlenül egyezik meg a jelenlegi aktív + állományrendszerrel. Különösen az + /etc/fstab és + /boot/loader.conf + állományokat kell ilyen szempontból + ellenõriznünk. + + A következõ indítás során a + rendszertöltõ már az új + Vinum-alapú rendszerindító + állományrendszerrõl fogja összeszedni a + mûködéséhez szükséges + adatokat és ezeknek megfelelõen cselekedni. + Végül, a rendszermag inicializálója + után, mikor az összes eszközt felismerte, egy + ehhez hasonló feltûnõ üzenet fogja jelezni + a beállítás + sikerességét: + + Mounting root from ufs:/dev/gvinum/root + + + + + Egy Vinum-alapú rendszerindító + állományrendszer példája + + Miután sikeresen konfiguráltuk a + rendszerindító Vinum-kötetet, a + gvinum l -rv root kimenete + nagyjából így fog kinézni: + + +... +Subdisk root.p0.s0: + Size: 125829120 bytes (120 MB) + State: up + Plex root.p0 at offset 0 (0 B) + Drive disk0 (/dev/da0h) at offset 135680 (132 kB) + +Subdisk root.p1.s0: + Size: 125829120 bytes (120 MB) + State: up + Plex root.p1 at offset 0 (0 B) + Drive disk1 (/dev/da1h) at offset 135680 (132 kB) + + + Itt (a /dev/da0h + partícióhoz képesti) + 135680-as eltoltás + értékekre kell figyelnünk. Ez + képzõdik le a bsdlabel fogalmi + rendszerében aztán 265 darab 512 byte-os + blokkra a lemezen. Ehhez hasonlóan a + rendszerindító kötet mérete + 245 760 darab 512 byte-os blokk lesz. A + rendszerindító kötet + másodpéldányát tartalmazó + /dev/da1h ugyanilyen + beállításokkal rendelkezik. + + Az említett eszközök valahogy így + jelennek meg a bsdlabel szerint: + + +... +8 partitions: +# size offset fstype [fsize bsize bps/cpg] + a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*) + c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*) + h: 71771672 16 vinum # (Cyl. 0*- 4467*) + + + Megfigyelhetõ, hogy a hamis "a" + partíció "size" + paraméter értéke megegyezik a fentebb + becsült értékkel, miközben az + "offset" paraméter + értéke egyenlõ lesz a "h" + Vinum-partíción belüli eltolás + és az eszközön (vagy slice-on) belüli + eltolás összegével. Ez jellemzõen egy + olyan beállítás, amivel + szükségszerûen el tudjuk kerülni a ban leírt + hibajelenséget. Látható + továbbá az is, hogy az egész + "a" partíció végig az + eszköz összes Vinum adatát tartalmazó + "h" partíciójában foglal + helyet. + + A példával kapcsolatban megjegyezzük, + hogy itt az egész eszközt a Vinum felügyelete + alá bocsátottuk, tehát nem marad + hátra semmilyen Vinum elõtt használt + rendszerindító partíció, hiszen ez + egy olyan lemez, amelyet eleve egy + Vinum-konfigurációba szántunk. + + + + + Hibakeresés + + Fontos tudunk, hogy probléma esetén hogyan + tudjuk helyreállítani a rendszerünket. A + következõ felsorolásban bemutatunk + néhány ismert buktatót és a + megoldásaikat. + + + A rendszertöltõ elindul, de a rendszer viszont + már nem + + Ha valamilyen okból a rendszer nem indulna el, a 10 + másodpercig tartó + visszaszámlálás során a + rendszertöltõt még meg tudjuk + állítani a szóköz + lenyomásával. Ekkor a betöltõ + által használt változók (mint + például a vinum.autostart) a + show segítségével + megvizsgálhatóak és a + set vagy unset + parancsokkal módosíthatóak. + + Ha mindössze az volt a probléma, hogy a Vinum + modulja nem szerepelt az automatikusan betöltendõ + modulok között, a load geom_vinum + parancs kiadásával betölthetjük + azt. + + Miután végeztünk, a + rendszerindítás folyamata a boot + -as paranccsal folytatható. A + kapcsolók jelzik a rendszermag + számára, hogy kérdezzen rá a + rendszerindító állományrendszerre + a csatlakoztatása elõtt () + és csak egyfelhasználós módban + indítsa a rendszert (), ahol a + rendszerindító állományrendszer + írásvédett. Így, ha csak egyetlen + eret csatlakoztattunk egy többeres kötetbõl, az + erek még véletlenül sem tudnak + egymásnak ellentmondó állapotba + kerülni. + + Amikor megjelenik a csatlakoztatandó + rendszerindító állományrendszert + bekérése, bármelyik + érvényes rendszerindításra + alkalmas állományrendszer megadható. + Amennyiben az /etc/fstab + állományt jól beállítottuk, + az alapértelmezett érték egy + ufs:/dev/gvinum/root értékhez + hasonló alakú lesz. Itt általában + egy ufs:da0d formátumú + értéket láthatunk, amely feltehetõen + egy Vinum használata elõtti + rendszerindító állományrendszert + tartalmazó partíció. Legyünk + óvatosak, ha itt egy olyan "a" + partíciót adunk meg, amely + valójában egy rendszerindító + Vinum-eszköz allemezeire hivatkozik, mivel egy + tükrözött konfiguráció + esetén csak az eszköz egyik részét + fogjuk csatlakoztatni. Ha a késõbbiekben ezt az + állományrendszert már nem csak + írásvédett módban csatlakoztatjuk, + mindenképpen el kell távolítanunk a + rendszerindító Vinum-kötetbõl a + többi eret, mivel máskülönben nagy + valószínûséggel eltérõ + adatokat fognak tartalmazni. + + + + + Csak az elsõdleges rendszertöltõ indul + el + + Amikor az elsõdleges rendszertöltõ + még elindul, viszont a + /boot/loader már nem tud + betöltõdni (ezt rendszerindítás + megkezdése után bal oldalt rögtön + megjelenõ forgó vonalból vehetjük + észre), a szóköz + lenyomásával itt még tehetünk egy + kísérletet a betöltés + megszakítására. Ennek + hatására a rendszertöltés + megáll a második fázisban, lásd + . Itt a + rendszerindításhoz megpróbálhatunk + megadni egy másik partíciót, + például egy olyat, amely a korábbi + rendszerindító állományrendszert + tartalmazza és amelyet az elõbb + átneveztünk az + "a"-ról. + + + + + Semmi sem indul, a rendszertöltõ hibákat + ír + + Ez a helyzet akkor állhat elõ, ha a Vinum + telepítése során tönkretettük + volna a rendszertöltõt. Sajnos a Vinum minden + esetben 4 KB helyet hagy szabadon a + partíció elején, a saját + fejléc információjának + rögzítése elõtt. Az ide + kerülõ elsõ és második + fázisú rendszertöltõk, illetve a + bsdlabel adatai azonban jelenleg 8 KB helyet + kívánnak meg. Így ha a + Vinum-partíció egy + rendszerindításra szánt slice vagy lemez + 0. eltolásánál kezdõdik, a Vinum + beállításai felül fogják + írni a rendszertöltõt. + + A rendszertöltõ is ugyanígy + felülírja a Vinum fejlécét és + akkor a Vinum nem találja a lemezeit, ha a fenti + problémát orvosolva, például egy + Fixit (Helyreállító) lemez + segítségével, + újratelepítjük a rendszertöltõt a + ban bemutatott bsdlabel + -B parancs segítségével. Noha + a Vinum egyetlen konkrét konfigurációs + beállítása vagy a kötetekben + tárolt adat sem sérül meg és vissza + tudjuk állítani az összes elveszett + információt ugyannak a + Vinum-konfigurációnak az újbóli + megadásával, a helyzetet magát + nehéz megoldani. A Vinum-fejléc és a + rendszertöltõ ütközésének + megszüntetéséhez ugyanis legalább + 4 KB-tal arrébb kell mozgatnunk az egész + Vinum-partíciót. + + + + + + Eltérések a &os; 4.X + verziójában + + A lemezek automatikus felderítéséhez a + Vinumnak szüksége van bizonyos belsõ + funkciókra, amelyek a &os; 4.X + verziójából még hiányoznak, + valamint a rendszerindító eszköz belsõ + azonosítóját + feltérképezõ kód sem elég + intelligens ahhoz, hogy magától + megbírkózzon a + /dev/vinum/root alakú nevekkel. + Ennélfogva a folyamat kicsit különbözik + ebben az esetben. + + A /boot/loader.conf + állományban a Vinumnak explicit módon meg + kell mondani, melyik lemezeket nézze át: + + vinum.drives="/dev/da0 /dev/da1" + + Fontos megemlíteni, hogy az itt megemlített + meghajtók mindegyike tartalmazhat Vinummal kapcsolatos + adatokat. Tehát probléma nélkül + megadhatunk több meghajtót is, + illetve nem kötelezõ rendre megadni az egyes + slice-okat és/vagy partíciókat, mivel a + Vinum a megnevezett meghajtók összes slice-án + és partícióján keresni fogja az + érvényes Vinum-fejléceket. + + Mivel az rendszerindító + állományrendszer nevének + elemzését és ebbõl a (fõ- + és al-) eszközazonosító + megállapítását végzõ + rutinok csupán a klasszikus + eszköznevek, mint például a + /dev/ad0s1a, esetére lettek + felkészítve, nem képesek a + /dev/vinum/root alakú + rendszerindító kötetek neveit + megérteni. Emiatt a Vinumnak kell az indulása + során beállítania a + rendszerindító eszköz + azonosítóját tartalmazó + paramétert a rendszermagon belül. Ezért a + rendszerbetöltõ vinum.root + nevû változójában át kell + adnunk neki a rendszerindító kötet + nevét. Tehát a + /boot/loader.conf állományban + a hozzátartozó bejegyzés így + nézhet ki: + + vinum.root="root" + + Mikor a rendszermag megpróbálja + megállapítani a rendszerindításhoz + használható eszközt, megnézi, hogy + valamelyik modul beállította-e már ennek az + értékét. Amennyiben ez történt + és az eszköz szerint a + rendszerindító eszköz megfelel az + átadott rendszerindító eszköz + nevébõl megállapított + eszközmeghajtó fõszámának (jelen + esetünkben ez a "vinum"), nem fogja + tovább keresni, hanem az elõre megadott + eszközazonosítót használja. Ezen a + módon egy automatikus indítás során + egy Vinum-kötetrõl is csatlakoztathatóvá + válik a rendszerindító + állományrendszer. + + Amikor azonban a boot -a parancsot + használjuk a rendszerindító eszköz + nevének manuális megadásához, nem + szabad elfelejteni, hogy ez a rutin továbbra sem + képes értelmezni az itt bevitt Vinum-kötetek + nevét. Ha a megadott eszköznév nem egy + Vinum-eszközhöz tartozik, az itt + érvényes paraméter által + tárolt eszközazonosítók és + névbõl kikövetkeztetett + eszközmeghajtó nem illik egymáshoz és + a rutin behívja a rendes értelmezõjét, + így egy ufs:da0d alakú sztring + begépelése esetén az elvártaknak + megfelelõen cselekszik. Vegyük azonban figyelembe, ha + ez nem válik be, nincs lehetõségünk + másodjára megadni egy + ufs:vinum/root alakú sztringet, mivel + ezután a rendszer már nem tudja értelmezni. + Itt egyedül csak egy újraindítás, majd + a mûvelet újrakezdése segíthet. (A + bekérésnél (askroot prompt) + a /dev/ elõtag bármikor + elhagyható.) + + + +
+ + diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-concat.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-concat.pic new file mode 100644 index 0000000000..f9717fd0e9 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-concat.pic @@ -0,0 +1,81 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +h = .3i +dh = .02i +dw = .8i +down +[ + [ + boxht = h; boxwid = dw +.\" +.\" ORIG: box invis "\f(CW0\fP" +.\" box invis "\f(CW1\fP" +.\" box invis "\f(CW2\fP" +.\" box invis "\f(CW3\fP" +.\" box invis "\f(CW4\fP" +.\" box invis "\f(CW5\fP" + +.\" A: box dotted at ORIG.e+(.4,0) ht h "\f(CW0\fP" +move right 1i; down + A: box dotted ht h "\f(CW0\fP" + B: box dotted ht h "\f(CW1\fP" + C: box dotted ht h "\f(CW2\fP" + D: box dotted ht h "\f(CW3\fP" + E: box dotted ht h "\f(CW4\fP" + F: box dotted ht h "\f(CW5\fP" + box ht h * 6 at C.s + + A1: box dotted at A+(dw*1.6,0) ht h "\f(CW6\fP" + B1: box dotted ht h "\f(CW7\fP" + C1: box dotted ht h "\f(CW8\fP" + D1: box dotted ht h "\f(CW9\fP" + box ht h * 4 at C1.n + + A2: box dotted at A1+(dw*1.6,0) "\f(CW10\fP" + F2: box dotted ht h "\f(CW11\fP" + box ht h * 2 at A2.s + + A3: box dotted at A2+(dw*1.6,0) ht h "\f(CW12\fP" + B3: box dotted ht h "\f(CW13\fP" + C3: box dotted ht h "\f(CW14\fP" + D3: box dotted ht h "\f(CW15\fP" + E3: box dotted ht h "\f(CW16\fP" + F3: box dotted ht h "\f(CW17\fP" + box ht h * 6 at C3.s + +.\" "Offset" at ORIG.n+(0,.2i) +"1. lemez" at A.n+(0,.2i) +"2. lemez" at A1.n+(0,.2i) +"3. lemez" at A2.n+(0,.2i) +"4. lemez" at A3.n+(0,.2i) + + +.\" arrow from A.e+(-.07,-.04) to B.e+(-.07,.02) +.\" arrow from B.e+(-.07,-.04) to C.e+(-.07,.02) +.\" arrow from C.e+(-.07,-.04) to D.e+(-.07,.02) +.\" arrow from D.e+(-.07,-.04) to E.e+(-.07,.02) +.\" arrow from E.e+(-.07,-.04) to F.e+(-.07,.02) + +.\" line from F.e right .1i; arc radius .1i; line to A1.w-(.3i,.1i); arc cw radius .1i; arrow to A1.w + +.\" arrow from A1.e+(-.07,-.04) to B1.e+(-.07,.02) +.\" arrow from B1.e+(-.07,-.04) to C1.e+(-.07,.02) +.\" arrow from C1.e+(-.07,-.04) to D1.e+(-.07,.02) + +.\" line from D1.e right .1i; arc radius .1i; line to A2.w-(.3i,.1i); arc cw radius .1i; arrow to A2.w + +.\" arrow from A2.e+(-.07,-.04) to F2.e+(-.07,.02) + +.\" line from F2.e right .1i; arc radius .1i; line to A3.w-(.3i,.1i); arc cw radius .1i; arrow to A3.w + +.\" arrow from A3.e+(-.07,-.04) to B3.e+(-.07,.02) +.\" arrow from B3.e+(-.07,-.04) to C3.e+(-.07,.02) +.\" arrow from C3.e+(-.07,-.04) to D3.e+(-.07,.02) +.\" arrow from D3.e+(-.07,-.04) to E3.e+(-.07,.02) +.\" arrow from E3.e+(-.07,-.04) to F3.e+(-.07,.02) + ] +] +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-mirrored-vol.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-mirrored-vol.pic new file mode 100644 index 0000000000..35c61f1c22 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-mirrored-vol.pic @@ -0,0 +1,28 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +move right 1i +T: ellipse ht .3i wid 4i + line from T.e down 4i + line from T.w down 4i +B: arc rad 10i to T.e+(0,-4) + +P1: S1: box ht 3i wid 1i "1. allemez" above "\s-2\f(CWmirror.p0.s0\fP\s0" below with .c at T.c+(-1,-2) + "1. ér" at S1.s+(0,-.3) + move down .17i; "\s-2\f(CWmirror.p0\fP\s0" +P2: S3: box ht 3i wid 1i "2. allemez" above "\s-2\f(CWmirror.p1.s0\fP\s0" below with .c at T.c+(1,-2) + "2. ér" at S3.s+(0,-.3) + move down .17i; "\s-2\f(CWmirror.p1\fP\s0" + +"\s-2\&0 MB\s0" at S1.ne+(.5,0) +"\s-2\&512 MB\s0" at S1.se+(.5,0) + +A: arrow from S1.ne+(.1,0) to S1.se+(.1,0) + arrow from S1.se+(.1,0) to S1.ne+(.1,0) + + "\s-2" ljust at A.n+(.1,-.63) + "a kötet" ljust at A.n+(.1,-.8) + "címtere\s0" ljust at A.n+(.1,-.97) +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid10-vol.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid10-vol.pic new file mode 100644 index 0000000000..9f2830a390 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid10-vol.pic @@ -0,0 +1,111 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +move right 1i +T: ellipse ht .3i wid 4i + line from T.e down 4i + line from T.w down 4i +B: arc rad 10i to T.e+(0,-4) + +P1: S1: box ht .6i wid 1i with .c at T.w+(1.3,-0.825) + S2: box ht .6i wid 1i + S3: box ht .6i wid 1i + S4: box ht .6i wid 1i + S5: box ht .6i wid 1i + "1. ér" at S5.s+(0,-.3) + move down .17i; "\s-2\f(CWstriped.p0\fP\s0" + +P1: S11: box ht .6i wid 1i with .c at T.w+(3.3,-0.825) + S12: box ht .6i wid 1i + S13: box ht .6i wid 1i + S14: box ht .6i wid 1i + S15: box ht .6i wid 1i + "2. ér" at S15.s+(0,-.3) + move down .17i; "\s-2\f(CWstriped.p1\fP\s0" + + "\f(CW\s-2.p0.s0\fP\s0" at S1.w-(.2,0) rjust + "\f(CW\s-2.p0.s1\fP\s0" at S2.w-(.2,0) rjust + "\f(CW\s-2.p0.s2\fP\s0" at S3.w-(.2,0) rjust + "\f(CW\s-2.p0.s3\fP\s0" at S4.w-(.2,0) rjust + "\f(CW\s-2.p0.s4\fP\s0" at S5.w-(.2,0) rjust + + "\f(CW\s-2.p1.s0\fP\s0" at S11.w-(.2,0) rjust + "\f(CW\s-2.p1.s1\fP\s0" at S12.w-(.2,0) rjust + "\f(CW\s-2.p1.s2\fP\s0" at S13.w-(.2,0) rjust + "\f(CW\s-2.p1.s3\fP\s0" at S14.w-(.2,0) rjust + "\f(CW\s-2.p1.s4\fP\s0" at S15.w-(.2,0) rjust + +.\" Stripes + box filled .1 wid 1i ht .1i at S1.n+(0, -.05) + box filled .2 wid 1i ht .1i at S1.n+(0, -.15) + box filled .3 wid 1i ht .1i at S1.n+(0, -.25) + box filled .4 wid 1i ht .1i at S1.n+(0, -.35) + box filled .5 wid 1i ht .1i at S1.n+(0, -.45) + box filled .6 wid 1i ht .1i at S1.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S2.n+(0, -.05) + box filled .2 wid 1i ht .1i at S2.n+(0, -.15) + box filled .3 wid 1i ht .1i at S2.n+(0, -.25) + box filled .4 wid 1i ht .1i at S2.n+(0, -.35) + box filled .5 wid 1i ht .1i at S2.n+(0, -.45) + box filled .6 wid 1i ht .1i at S2.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S3.n+(0, -.05) + box filled .2 wid 1i ht .1i at S3.n+(0, -.15) + box filled .3 wid 1i ht .1i at S3.n+(0, -.25) + box filled .4 wid 1i ht .1i at S3.n+(0, -.35) + box filled .5 wid 1i ht .1i at S3.n+(0, -.45) + box filled .6 wid 1i ht .1i at S3.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S4.n+(0, -.05) + box filled .2 wid 1i ht .1i at S4.n+(0, -.15) + box filled .3 wid 1i ht .1i at S4.n+(0, -.25) + box filled .4 wid 1i ht .1i at S4.n+(0, -.35) + box filled .5 wid 1i ht .1i at S4.n+(0, -.45) + box filled .6 wid 1i ht .1i at S4.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S5.n+(0, -.05) + box filled .2 wid 1i ht .1i at S5.n+(0, -.15) + box filled .3 wid 1i ht .1i at S5.n+(0, -.25) + box filled .4 wid 1i ht .1i at S5.n+(0, -.35) + box filled .5 wid 1i ht .1i at S5.n+(0, -.45) + box filled .6 wid 1i ht .1i at S5.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S11.n+(0, -.05) + box filled .2 wid 1i ht .1i at S11.n+(0, -.15) + box filled .3 wid 1i ht .1i at S11.n+(0, -.25) + box filled .4 wid 1i ht .1i at S11.n+(0, -.35) + box filled .5 wid 1i ht .1i at S11.n+(0, -.45) + box filled .6 wid 1i ht .1i at S11.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S12.n+(0, -.05) + box filled .2 wid 1i ht .1i at S12.n+(0, -.15) + box filled .3 wid 1i ht .1i at S12.n+(0, -.25) + box filled .4 wid 1i ht .1i at S12.n+(0, -.35) + box filled .5 wid 1i ht .1i at S12.n+(0, -.45) + box filled .6 wid 1i ht .1i at S12.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S13.n+(0, -.05) + box filled .2 wid 1i ht .1i at S13.n+(0, -.15) + box filled .3 wid 1i ht .1i at S13.n+(0, -.25) + box filled .4 wid 1i ht .1i at S13.n+(0, -.35) + box filled .5 wid 1i ht .1i at S13.n+(0, -.45) + box filled .6 wid 1i ht .1i at S13.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S14.n+(0, -.05) + box filled .2 wid 1i ht .1i at S14.n+(0, -.15) + box filled .3 wid 1i ht .1i at S14.n+(0, -.25) + box filled .4 wid 1i ht .1i at S14.n+(0, -.35) + box filled .5 wid 1i ht .1i at S14.n+(0, -.45) + box filled .6 wid 1i ht .1i at S14.n+(0, -.55) + + box filled .1 wid 1i ht .1i at S15.n+(0, -.05) + box filled .2 wid 1i ht .1i at S15.n+(0, -.15) + box filled .3 wid 1i ht .1i at S15.n+(0, -.25) + box filled .4 wid 1i ht .1i at S15.n+(0, -.35) + box filled .5 wid 1i ht .1i at S15.n+(0, -.45) + box filled .6 wid 1i ht .1i at S15.n+(0, -.55) + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid5-org.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid5-org.pic new file mode 100644 index 0000000000..acb2f3cfff --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-raid5-org.pic @@ -0,0 +1,87 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +h = .3i +dh = .02i +dw = .8i +down +[ + [ + boxht = h; boxwid = dw + +.\" ORIG: box invis "\f(CW0\fP" +.\" box invis "\f(CW1\fP" +.\" box invis "\f(CW2\fP" +.\" box invis "\f(CW3\fP" +.\" box invis "\f(CW4\fP" +.\" box invis "\f(CW5\fP" +.\" +.\" +move right 1i; down + A: box ht h "\f(CW0\fP" + B: box ht h "\f(CW3\fP" + C: box ht h "\f(CW6\fP" + D: box ht h "paritás" filled 0.2 + E: box ht h "\f(CW12\fP" + F: box ht h "\f(CW15\fP" + + A1: box at A+(dw*1.6,0) ht h "\f(CW1\fP" + B1: box ht h "\f(CW4\fP" + C1: box ht h "paritás" filled 0.2 + D1: box ht h "\f(CW9\fP" + E1: box ht h "\f(CW13\fP" + F1: box ht h "\f(CW16\fP" + + A2: box at A1+(dw*1.6,0) ht h "\f(CW2\fP" + B2: box ht h "paritás" filled 0.2 + C2: box ht h "\f(CW7\fP" + D2: box ht h "\f(CW10\fP" + E2: box ht h "\f(CW14\fP" + F2: box ht h "paritás" filled 0.2 + + A3: box at A2+(dw*1.6,0) ht h "paritás" filled 0.2 + B3: box ht h "\f(CW5\fP" + C3: box ht h "\f(CW8\fP" + D3: box ht h "\f(CW11\fP" + E3: box ht h "paritás" filled 0.2 + F3: box ht h "\f(CW17\fP" + +.\" "Offset" at ORIG.n+(0,.2i) +"1. lemez" at A.n+(0,.2i) +"2. lemez" at A1.n+(0,.2i) +"3. lemez" at A2.n+(0,.2i) +"4. lemez" at A3.n+(0,.2i) + +.\" arrow from A.e to A1.w +.\" arrow from B.e to B1.w +.\" arrow from C.e to C1.w +.\" arrow from D.e to D1.w +.\" arrow from E.e to E1.w +.\" arrow from F.e to F1.w +.\" +.\" arrow from A1.e to A2.w +.\" arrow from B1.e to B2.w +.\" arrow from C1.e to C2.w +.\" arrow from D1.e to D2.w +.\" arrow from E1.e to E2.w +.\" arrow from F1.e to F2.w +.\" +.\" arrow from A2.e to A3.w +.\" arrow from B2.e to B3.w +.\" arrow from C2.e to C3.w +.\" arrow from D2.e to D3.w +.\" arrow from E2.e to E3.w +.\" arrow from F2.e to F3.w +.\" +.\" arrow right .2i from A3.e +.\" arrow right .2i from B3.e +.\" arrow right .2i from C3.e +.\" arrow right .2i from D3.e +.\" arrow right .2i from E3.e +.\" arrow right .2i from F3.e + ] +] +.PE +.Figure-heading "RAID-5 organization" diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-simple-vol.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-simple-vol.pic new file mode 100644 index 0000000000..b224526db5 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-simple-vol.pic @@ -0,0 +1,24 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +move right 1i +T: ellipse ht .3i wid 4i + line from T.e down 4i + line from T.w down 4i +B: arc rad 10i to T.e+(0,-4) + +P1: S1: box ht 3i wid 1i "Allemez" above "\s-2\f(CWmyvol.p0.s0\fP\s0" below with .c at T.w+(2,-1.95) + "1. ér" at S1.s+(0,-.3) + move down .17i; "\s-2\f(CWmyvol.p0\fP\s0" + +"\s-2\&0 MB\s0" at S1.ne+(.5,0) +"\s-2\&512 MB\s0" at S1.se+(.5,0) + +A: arrow from S1.ne+(.1,0) to S1.se+(.1,0) + + "\s-2" ljust at A.n+(.1,-.63) + "a kötet" ljust at A.n+(.1,-.8) + "címtere\s0" ljust at A.n+(.1,-.97) +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped-vol.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped-vol.pic new file mode 100644 index 0000000000..51852cbb74 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped-vol.pic @@ -0,0 +1,65 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +move right 1i +T: ellipse ht .3i wid 4i + line from T.e down 4i + line from T.w down 4i +B: arc rad 10i to T.e+(0,-4) + +P1: S1: box ht .7i wid 1i with .c at T.w+(2,-0.825) + S2: box ht .7i wid 1i + S3: box ht .7i wid 1i + S4: box ht .7i wid 1i + "1. ér" at S4.s+(0,-.3) + move down .17i; "\s-2\f(CWstriped.p0\fP\s0" + +"\s-2\&0 MB\s0" at S1.ne+(.5,0) +"\s-2\&512 MB\s0" at S4.se+(.5,0) + +A: arrow from S1.ne+(.1,0) to S4.se+(.1,0) + + "\s-2" ljust at A.n+(.1,-.63) + "a kötet" ljust at A.n+(.1,-.8) + "címtere\s0" ljust at A.n+(.1,-.97) + "\f(CW\s-2striped.p0.s0\fP\s0" at S1.w-(.2,0) rjust + "\f(CW\s-2striped.p0.s1\fP\s0" at S2.w-(.2,0) rjust + "\f(CW\s-2striped.p0.s2\fP\s0" at S3.w-(.2,0) rjust + "\f(CW\s-2striped.p0.s3\fP\s0" at S4.w-(.2,0) rjust + +.\" Stripes + box filled .1 wid 1i ht .1i at S1.n+(0, -.05) + box filled .2 wid 1i ht .1i at S1.n+(0, -.15) + box filled .3 wid 1i ht .1i at S1.n+(0, -.25) + box filled .4 wid 1i ht .1i at S1.n+(0, -.35) + box filled .5 wid 1i ht .1i at S1.n+(0, -.45) + box filled .6 wid 1i ht .1i at S1.n+(0, -.55) + box filled .7 wid 1i ht .1i at S1.n+(0, -.65) + + box filled .1 wid 1i ht .1i at S2.n+(0, -.05) + box filled .2 wid 1i ht .1i at S2.n+(0, -.15) + box filled .3 wid 1i ht .1i at S2.n+(0, -.25) + box filled .4 wid 1i ht .1i at S2.n+(0, -.35) + box filled .5 wid 1i ht .1i at S2.n+(0, -.45) + box filled .6 wid 1i ht .1i at S2.n+(0, -.55) + box filled .7 wid 1i ht .1i at S2.n+(0, -.65) + + box filled .1 wid 1i ht .1i at S3.n+(0, -.05) + box filled .2 wid 1i ht .1i at S3.n+(0, -.15) + box filled .3 wid 1i ht .1i at S3.n+(0, -.25) + box filled .4 wid 1i ht .1i at S3.n+(0, -.35) + box filled .5 wid 1i ht .1i at S3.n+(0, -.45) + box filled .6 wid 1i ht .1i at S3.n+(0, -.55) + box filled .7 wid 1i ht .1i at S3.n+(0, -.65) + + box filled .1 wid 1i ht .1i at S4.n+(0, -.05) + box filled .2 wid 1i ht .1i at S4.n+(0, -.15) + box filled .3 wid 1i ht .1i at S4.n+(0, -.25) + box filled .4 wid 1i ht .1i at S4.n+(0, -.35) + box filled .5 wid 1i ht .1i at S4.n+(0, -.45) + box filled .6 wid 1i ht .1i at S4.n+(0, -.55) + box filled .7 wid 1i ht .1i at S4.n+(0, -.65) + +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped.pic b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped.pic new file mode 100644 index 0000000000..d6e845554c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/vinum/vinum-striped.pic @@ -0,0 +1,87 @@ +.\" $FreeBSD$ +.\" The FreeBSD Hungarian Documentation Project +.\" Translated by: PALI, Gabor +.\" Original Revision: 1.1 +.PS +h = .3i +dh = .02i +dw = .8i +down +[ + [ + boxht = h; boxwid = dw + +.\" ORIG: box invis "\f(CW0\fP" +.\" box invis "\f(CW1\fP" +.\" box invis "\f(CW2\fP" +.\" box invis "\f(CW3\fP" +.\" box invis "\f(CW4\fP" +.\" box invis "\f(CW5\fP" +.\" +.\" A: box at ORIG.e+(.4,0) ht h "\f(CW0\fP" +move right 1i; down + A: box ht h "\f(CW0\fP" + B: box ht h "\f(CW4\fP" + C: box ht h "\f(CW8\fP" + D: box ht h "\f(CW12\fP" + E: box ht h "\f(CW16\fP" + F: box ht h "\f(CW20\fP" + + A1: box at A+(dw*1.6,0) ht h "\f(CW1\fP" + B1: box ht h "\f(CW5\fP" + C1: box ht h "\f(CW9\fP" + D1: box ht h "\f(CW13\fP" + E1: box ht h "\f(CW17\fP" + F1: box ht h "\f(CW21\fP" + + A2: box at A1+(dw*1.6,0) ht h "\f(CW2\fP" + B2: box ht h "\f(CW6\fP" + C2: box ht h "\f(CW10\fP" + D2: box ht h "\f(CW14\fP" + E2: box ht h "\f(CW18\fP" + F2: box ht h "\f(CW22\fP" + + A3: box at A2+(dw*1.6,0) ht h "\f(CW3\fP" + B3: box ht h "\f(CW7\fP" + C3: box ht h "\f(CW11\fP" + D3: box ht h "\f(CW15\fP" + E3: box ht h "\f(CW19\fP" + F3: box ht h "\f(CW23\fP" + +.\" "Offset" at ORIG.n+(0,.2i) +"1. lemez" at A.n+(0,.2i) +"2. lemez" at A1.n+(0,.2i) +"3. lemez" at A2.n+(0,.2i) +"4. lemez" at A3.n+(0,.2i) + +.\" +.\" arrow from A.e to A1.w +.\" arrow from B.e to B1.w +.\" arrow from C.e to C1.w +.\" arrow from D.e to D1.w +.\" arrow from E.e to E1.w +.\" arrow from F.e to F1.w +.\" +.\" arrow from A1.e to A2.w +.\" arrow from B1.e to B2.w +.\" arrow from C1.e to C2.w +.\" arrow from D1.e to D2.w +.\" arrow from E1.e to E2.w +.\" arrow from F1.e to F2.w +.\" +.\" arrow from A2.e to A3.w +.\" arrow from B2.e to B3.w +.\" arrow from C2.e to C3.w +.\" arrow from D2.e to D3.w +.\" arrow from E2.e to E3.w +.\" arrow from F2.e to F3.w +.\" +.\" arrow right .2i from A3.e +.\" arrow right .2i from B3.e +.\" arrow right .2i from C3.e +.\" arrow right .2i from D3.e +.\" arrow right .2i from E3.e +.\" arrow right .2i from F3.e + ] +] +.PE diff --git a/hu_HU.ISO8859-2/books/handbook/virtualization/Makefile b/hu_HU.ISO8859-2/books/handbook/virtualization/Makefile new file mode 100644 index 0000000000..4c89488e9c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/virtualization/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= virtualization/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml new file mode 100644 index 0000000000..22b0b4d074 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml @@ -0,0 +1,1238 @@ + + + + + + + + Murray + Stokely + Írta: + + + + + Virtualizáció + + + Áttekintés + + A virtualizációs szoftverek lehetõvé + teszik, hogy ugyanazon a számítógépen + egyszerre több operációs rendszert is + futassunk. Ezeknek a programcsomagoknak gyakorta + részük egy gazda operációs rendszer is, + amely a virtualizációs szoftvert futattja és + ismer bizonyos vendég operációs rendszereket. + + A fejezet elolvasása során + megismerjük: + + + + a gazda- és a vendég operációs + rendszerek közti különbségeket; + + + + hogyan telepítsünk &os;-t egy + &intel;-alapú &apple; &macintosh; + számítógépre; + + + + hogyan telepítsünk a + &xen; használatával + &os;-t &linux;-ra; + + + + hogyan telepítsünk a Virtual + PC használatával &os;-t + µsoft.windows;-ra; + + + + hogyan hozzuk ki a legtöbbet &os; + rendszerünkbõl virtualizáció + alatt. + + + + + A fejezet elolvasásához ajánlott: + + + + alapvetõ &unix;-os és &os;-s ismeretek (); + + + + a &os; telepítésének ismerete (); + + + + a hálózati kapcsolatok + beállításának ismerete (); + + + + külsõs alkalmazások + telepítésének ismerete (). + + + + + + + A &os; mint vendég + + + Parallelsszel &macos;-en + + A Parallels Desktop a + &macos; 10.4.6, vagy afeletti verzióját + futattó, &intel;-alapú &apple; &mac; + személyi számítógépekre + fejlesztett kereskedelmi alkalmazás. A &os;-t teljes + mértékben támogatja + vendégként. Miután + telepítettük a + Parallels-t a &macos; X-re, be + kell állítanunk egy virtuális gépet, + majd erre felraknunk a kívánt vendég + operációs rendszert. + + + A &os; telepítése + &macos; X/Parallelsre + + A &os; + &macos; X/Parallels + párosra telepítéséhez elsõ + lépésként + készítenünk kell egy új + virtuális számítógépet. + A létrehozás során válasszuk a + Guest OS Type-nak (a vendég + operációs rendszer típusának) a + &os;-t: + + + + + + + + Ezután adjunk meg egy nagyjából + elfogadható méretet a virtuális + merevlemezünknek, valamint annyi + memóriát, amennyire + szükségünk lehet a virtuális &os;-nk + használata során. Egy 4 GB-os lemez + és 512 MB rendszermemória a legtöbb + esetben jó választásnak bizonyulhat a + &os; Parallels alatti + használata során: + + + + + + + + + + + + + + + + + + + + + + + + + + Válasszuk ki a + hálózatkezelés típusát + és a hálózati csatolót. + + + + + + + + + + + + + + Mentsük el és fejezzük be a + konfigurálást. + + + + + + + + + + + + + + Miután a &os;-s virtuális + gépünk elkészült, + telepítenünk kell rá magát az + operációs rendszert is. Ezt a + legegyszerûbben a hivatalosan &os; telepítõ + CD-rõl, vagy a hivatalos FTP oldalról + letölthetõ CD-képpel tehetjük meg. Ha + lemásoltuk a megfelelõ CD-képet a &mac; + helyi állományrendszerére, vagy + behelyeztük a telepítõ CD-t a + CD-meghajtóba, kattintsunk a &os;-s + Parallels ablakunk jobb + alsó sarkában található lemez + ikonjára. Ekkor feljön egy + párbeszédablak, ahol + összerendelhetjük a virtuális + gépünk CD-meghajtóját egy lemezen + található képpel, vagy éppen a + valódi CD-meghajtónkkal. + + + + + + + + Ahogy megtettük az imént említett + összerendelést, indítsuk is újra a + &os;-s virtuális gépünket a megszokott + módon, az újraindítás + ikonjára kattintva. + + + + + + + + Ekkor a rendszer megtalálja a &os; + telepítõlemezt és a + sysinstall + segítségével megkezdi a + telepítést a ben + leírtak szerint. Ha szükségünk van + rá, telepíthetjük az X11-et is, de + egyelõre még ne próbáljuk + beállítani. + + + + + + + + A telepítés befejezését + követõen indítsuk újra a frissen + telepített &os;-s virtuális + gépünket. + + + + + + + + + + A &os; beállítása + &macos; X/Parallelsen + + Miután telepítettük a &os;-t + &macos; X/Parallels-re, még vár + ránk néhány konfigurációs + lépés a rendszer virtuálizált + mûködésének + optimalizálása érdekében. + + + + A rendszerbetöltõ + változóinak + beállítása + + A legfontosabb lépés a + változó + értékének csökkentése, + amivel így a &os; + processzor-kihasználtságát is + csökkentjük a + Parallels alatt. Ezt a + következõ sor hozzadásával + tehetjük meg a + /boot/loader.conf + állományban: + + kern.hz=100 + + Enélkül egy üresjáratban + levõ &os; + Parallels-vendég az + &imac; egy processzorának durván + 15%-át foglalja le. A változtatás + életbe léptetése után + azonban ez megközelítõen 5%-ra + redukálható. + + + + Egy új konfigurációs + állomány létrehozása a + rendszermaghoz + + Nyugodtan eltávolíthatjuk az + összes SCSI, FireWire és USB + eszközmeghajtót. A + Parallels által + felkínált virtuális + hálózati csatolót az &man.ed.4; + meghajtón keresztül tudjuk elérni, + ezért az &man.ed.4; és &man.miibus.4; + meghajtókon kívül az összes + többi elhagyható. + + + + + A hálózati kapcsolat + beállítása + + Az alapvetõ hálózati + beállítás a virtuális + gépünkön a DHCP + aktiválása, aminek + segítségével csatlakozni tudunk + arra a helyi hálózatra, amelyen maga a + gazda &mac; is megtalálható. Ezt az + alábbi sor felvételével tudjuk + megoldani az /etc/rc.conf + állományba: + ifconfig_ed0="DHCP". Bõvebb + információkért járuljunk a + fejezethez. + + + + + + + + + + + Fukang + Chen (Loader) + Írta: + + + + + &xen;nel &linux;-on + + A &xen; hipervisor egy + nyílt forráskódú, + paravirtualizációt nyújtó + termék, amely mögött mostanra már a + XenSource kereskedelmi cég áll. Itt a + vendég operációs rendszereket a domU + tartományként azonosítják, + míg a gazda operációs rendszer a dom0. A + &os; &linux; alatti virtuális futattásához + elsõként telepítenünk kell a + &xen;-t egy dom0-ás + Linuxra. A leírásban a gazda + operációs rendszer a Slackware &linux; + disztribúció lesz. + + + A &xen; 3 beállítása egy &linux; + dom0-án + + + + Töltsük le a &xen; 3.0-át a + XenSource-tól + + Töltsük le a xen-3.0.4_1-src.tgz + állományt a XenSource + oldaláról. + + + + + Bontsuk ki a csomagot + + &prompt.root; cd xen-3.0.4_1-src +&prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world +&prompt.root; make install + + + A rendszermagot így tudjuk dom0 + módban újrafordítani: + + &prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0 +&prompt.root; make menuconfig +&prompt.root; make +&prompt.root; make install + + A &xen; régebbi + verzióinál elképzelhetõ, + hogy így kell megadni: make ARCH=xen + menuconfig. + + + + + Vegyük fel a megfelelõ pontot a GRUB + menüjébe + + Nyissuk meg a + /boot/grub/menu.lst + állományt és írjuk be a + következõ sort: + + title Xen-3.0.4 +root (hd0,0) +kernel /boot/xen-3.0.4-1.gz dom0_mem=262144 +module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro + + + + Indítsuk újra a gépet + és aktiváljuk a &xen;t + + Elõször nyissuk meg az + /etc/xen/xend-config.sxp + állományt, majd adjuk hozzá a + következõ sort: + + (network-script 'network-bridge netdev=eth0') + + Ezután el is indíthatjuk a + &xen;t: + + &prompt.root; /etc/init.d/xend start +&prompt.root; /etc/init.d/xendomains start + + Láthatjuk, hogy a dom0 tartomány most + már aktív: + + &prompt.root; xm list +Name ID Mem VCPUs State Time(s) +Domain-0 0 256 1 r----- 54452.9 + + + + + + A &os; 7-CURRENT mint domU + + Töltsük le a &os; + &xen; 3.0-ás domU + rendszermagját és a hozzátartozó + lemezképet a http://www.fsmware.com/ + címrõl: + + + + kernel-current + + + + mdroot-7.0.bz2 + + + + xmexample1.bsd + + + + Tegyük a xmexample1.bsd + konfigurációs állományt a + /etc/xen/ könyvtárba és + írjuk át a releváns bejegyzéseket a + rendszermag és a lemezkép elérési + útjának megfelelõen. Valahogy így + kellene kinézni az eredménynek: + + kernel = "/opt/kernel-current" +memory = 256 +name = "freebsd" +vif = [ '' ] +disk = [ 'file:/opt/mdroot-7.0,hda1,w' ] +#on_crash = 'preserve' +extra = "boot_verbose" +extra += ",boot_single" +extra += ",kern.hz=100" +extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a" + + Az mdroot-7.0.bz2 + állományt ki kell + tömöríteni! + + Ezután a kernel-current + állományban található __xen_guest + részt át kell írni úgy, hogy + hozzáadjuk a &xen; 3.0.3 + számára fontos VIRT_BASE + értéket: + + &prompt.root; objcopy kernel-current -R __xen_guest +&prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp +&prompt.root; objcopy kernel-current --add-section __xen_guest=tmp + + &prompt.root; objdump -j __xen_guest -s kernel-current + +kernel-current: file format elf32-i386 + +Contents of section __xen_guest: + 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G + 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd, + 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE + 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS + 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA + 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. + + Most már készen állunk a domU + létrehozására és + beindítására: + + &prompt.root; xm create /etc/xen/xmexample1.bsd -c +Using config file "/etc/xen/xmexample1.bsd". +Started domain freebsd +WARNING: loader(8) metadata is missing! +Copyright (c) 1992-2006 The FreeBSD Project. +Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. All rights reserved. +FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 + kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF +WARNING: DIAGNOSTIC option enabled, expect reduced performance. +Xen reported: 1796.927 MHz processor. +Timecounter "ixen" frequency 1796927000 Hz quality 0 +CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU) + Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 + Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, + DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> + Features2=0x4400<CNTX-ID,<b14>> +real memory = 265244672 (252 MB) +avail memory = 255963136 (244 MB) +xc0: <Xen Console> on motherboard +cpu0 on motherboard +Timecounters tick every 10.000 msec +[XEN] Initialising virtual ethernet driver. +xn0: Ethernet address: 00:16:3e:6b:de:3a +[XEN] +Trying to mount root from ufs:/dev/xbd769a +WARNING: / was not properly dismounted +Loading configuration files. +No suitable dump device was found. +Entropy harvesting: interrupts ethernet point_to_point kickstart. +Starting file system checks: +/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation) +Setting hostname: demo.freebsd.org. +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet6 ::1 prefixlen 128 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 + inet 127.0.0.1 netmask 0xff000000 +Additional routing options:. +Mounting NFS file systems:. +Starting syslogd. +/etc/rc: WARNING: Dump device does not exist. Savecore not run. +ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib +a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout +Starting usbd. +usb: Kernel module not available: No such file or directory +Starting local daemons:. +Updating motd. +Starting sshd. +Initial i386 initialization:. +Additional ABI support: linux. +Starting cron. +Local package initialization:. +Additional TCP options:. +Starting background file system checks in 60 seconds. + +Sun Apr 1 02:11:43 UTC 2007 + +FreeBSD/i386 (demo.freebsd.org) (xc0) + +login: + + A domU-ban a &os; 7.0-CURRENT rendszermagnak kell + futnia: + + &prompt.root; uname -a +FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 +kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386 + + Miután errõl megbizonyosodtunk, be tudjuk + állítani a hálózatot is domU-ban. A + domU &os; egy xn0 nevû + speciális eszközt használ erre a + célra: + + &prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0 +&prompt.root; ifconfig +xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500 + inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255 + ether 00:16:3e:6b:de:3a +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet6 ::1 prefixlen 128 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 + inet 127.0.0.1 netmask 0xff000000 + + Eközben a dom0 Slackware-en néhány + &xen;-függõ + hálózati csatolónak is meg kell + jelennie: + + &prompt.root; ifconfig +eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2 + inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0 + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:815 errors:0 dropped:0 overruns:0 frame:0 + TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB) + +lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + UP LOOPBACK RUNNING MTU:16436 Metric:1 + RX packets:99 errors:0 dropped:0 overruns:0 frame:0 + TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB) + +peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0 + TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB) + Base address:0xc000 Memory:ef020000-ef040000 + +vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:1400 errors:0 dropped:0 overruns:0 frame:0 + TX packets:815 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB) + +vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:3 errors:0 dropped:0 overruns:0 frame:0 + TX packets:2 errors:0 dropped:157 overruns:0 carrier:0 + collisions:0 txqueuelen:1 + RX bytes:140 (140.0 b) TX bytes:158 (158.0 b) + +xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:4 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:112 (112.0 b) TX bytes:0 (0.0 b) + + &prompt.root; brctl show +bridge name bridge id STP enabled interfaces +xenbr1 8000.feffffffffff no vif0.1 + peth0 + vif1.0 + + + + + Virtual PC-vel &windows;-on + + A &windows;-ra fejlesztett Virtual + PC a µsoft; egyik szabadon + letölthetõ szoftverterméke. A + rendszerkövetelményeit bõvebben lásd a + + linken. Miután telepítettük a + µsoft.windows;-ra a Virtual PC + alkalmazást, be kell állítanunk egy + virtuális gépet, majd telepítenünk + kell rá a kívánt vendég + operációs rendszert. + + + A &os; telepítése Virtual + PC/µsoft.windows;-ra + + Amikor a &os;-t a µsoft.windows; és + Virtual PC párosra akarjuk + telepíteni, akkor kezdjünk egy egy új + virtuális gép + létrehozásával. Ehhez válasszuk + ki a menübõl a Create a virtual + machine (Virtuális gép + létrehozása) pontot. + + + + + + + + + + + + + + Majd válasszuk az Operating + system (Operációs rendszer) + beállításánál az + Other (Egyéb) + opciót. + + + + + + + + Ezután válasszuk ki a + szándékainknak megfelelõen a + telepítendõ &os; példányhoz + mért memória és lemezterület + mennyiségét. Ahhoz, hogy a &os; fusson + Virtual PC alatt, 4 GB-nyi + lemezterület és 512 MB RAM + beállítása a legtöbb esetben + kiválóan megfelelõ. + + + + + + + + + + + + + + Mentsük el és fejezzük be a + konfigurációt. + + + + + + + + Válasszuk ki a &os;-s virtuális + gépünket, majd kattintsunk a + Settings + (Beállítások) menüre és + állítsuk be hálózati + csatoló és hálózatkezelés + típusát. + + + + + + + + + + + + + + A &os;-nek otthont adó virtuális + gépünk létrehozása után + telepítenünk is kell rá a rendszert. Ez + legegyszerûbben a hivatalos &os; telepítõ + CD-vel vagy a hivatalos FTP oldalról + letölthetõ CD-képpel tehetjük meg. + Amikor letöltöttük a megfelelõ + CD-képet a helyi &windows;-os + állományrendszerünkre vagy + behelyeztük a telepítéshez + használható CD-t a CD-meghajtónkba, a + &os;-s virtuális gépünk + elindításához kattintsunk rá + duplán. Ezt követõen a + Virtual PC ablakában + kattintsunk a CD menüre és + válasszuk ki belõle a Capture ISO + Image... (Lemezkép használata...) + pontot. Ennek hatására megjelenik egy ablak, + amiben a virtuális gépünk + CD-meghajtóihoz tudunk csatlakoztatni + lemezképeket vagy akár létezõ + CD-meghajtókat. + + + + + + + + + + + + + + Miután sikeresen beállítottuk a + telepítõ CD forrását, + indítsuk újra a virtuális gépet + az Action (Mûvelet) menün + belül a Reset + (Újraindítás) pont + kiválasztásával. Így a + Virtual PC + újraindítja a virtuális rendszert egy + olyan speciális BIOS használatával, + amely a normális BIOS-hoz hasonlóan + elõször megkeresi az elérhetõ + CD-meghajtókat. + + + + + + + + Ebben az esetben a &os; + telepítõeszközét fogja + megtalálni és megkezdi a ben ismertetett szokásos, + sysinstall programra + alapuló telepítési + eljárást. Ennek során az X11-et is + feltelepíthetjük, habár egyelõre + még ne állítsuk be. + + + + + + + + Ne felejtsük el kivenni a meghajtóból + a telepítéshez használt CD-t vagy + elengedni a megfelelõ lemezképet, amikor + befejezõdõtt a telepítés. + Végezetül indítsuk ismét + újra a frissen telepített &os;-s + virtuális gépünket. + + + + + + + + + + A &os; beállítása a + µsoft.windows;/Virtual PC-n + + Miután a &os;-t minden gond nélkül + telepítettük a µsoft.windows;-on + futó Virtual PC-re, + még további beállítási + lépéseket is meg kell tennünk a rendszer + virtualizált mûködésének + finomhangolásához. + + + + A rendszertöltõ változóinak + beállítása + + A legfontosabb teendõnk csökkenteni a + konfigurációs + beállítás értéket, + aminek köszönhetõen vissza tudjuk fogni a + Virtual PC alatt futó + &os; processzorhasználatát. Ezt + úgy tudjuk megtenni, ha a + /boot/loader.conf + állományba felvesszük a + következõ sort: + + kern.hz=100 + + Enélkül a Virtual + PC alatt üresjáratban + futó &os; vendég operációs + rendszer egy egyprocesszoros + számítógép idejének + durván 40%-át foglalja le. A + változtatás után azonban ez az + érték pusztán közel 3%-ra + csökken le. + + + + Új konfigurációs + állomány létrehozása a + rendszermaghoz + + Nyugodtan eltávolíthatjuk a SCSI, + FireWire és USB eszközmeghajtókat. A + Virtual PC által + felajánlott virtuális + hálózati csatolót a &man.de.4; + meghajtón keresztül tudjuk használni, + ezért a &man.de.4; és &man.miibus.4; + eszközön kívül az összes + többi hálózati eszköz + támogatása kiszedhetõ a + rendszermagból. + + + + A hálózati kapcsolat + beállítása + + A legalapvetõbb hálózati + beállítás csupán + annyiból áll, hogy DHCP-n keresztül + csatlakoztatjuk a virtuális gépünket + ugyanahhoz a helyi hálózathoz, amiben a + gazda µsoft.windows;-os gépünk is + megtalálható. Ezt úgy tudjuk + elérni, ha a /etc/rc.conf + állományba megadjuk a + ifconfig_de0="DHCP" sort. A + komolyabb hálózati + beállításokat a ben + találhatjuk. + + + + + + + + VMware-rel MacOS-en + + A &mac;-ek számára fejlesztett + VMWare Fusion egy olyan kereskedelmi + termék, amit az &intel; alapú &apple; &mac; + gépekre tudunk telepíteni a &macos; 10.4.9 + és késõbbi változatain. A &os; itt + egy teljesen támogatott vendég + operációs rendszer. Miután a + VMWare Fusion felkerült a + &macos; X rendszerünkre, be kell + állítanunk a virtuális gépet + és telepítenünk rá a vendég + operációs rendszert. + + + A &os; telepítése a + &macos; X/VMWare-re + + Elõször indítsuk el a VMWare Fusion-t, + aminek eredményeképpen betöltõdik a + Virtual Machine Library. Egy új virtuális + gépre létrehozásához kattintsunk a + "New" gombra: + + + + + + + + Ekkor bejön az új gép + összeállítását + segítõ New Virtual Machine Assistant, ahol a + továbblépéshez kattintsunk a Continue + gombra: + + + + + + + + Az operációs rendszerek + (Operating System) közül + válasszuk az egyéb + (Other) kategóriát, + majd a Version fülön a + FreeBSD vagy a FreeBSD + 64-bit változatot attól + függõen, hogy 32 bites vagy 64 bites + támogatásra van + szükségünk: + + + + + + + + Adjuk meg a virtuális gép + képének nevét és a + könyvtárat, ahova el akarjuk menteni: + + + + + + + + Válasszuk meg a virtuális géphez + tartozó virtuális merevlemez + méretét is: + + + + + + + + Mondjuk meg, hogy milyen módon szeretnénk + telepíteni a virtuális gépre, ISO + formátumú lemezképrõl vagy + CD-rõl: + + + + + + + + Ahogy a Finish feliratú gombra kattintunk, a + virtuális gép máris elindul: + + + + + + + + Telepítsük fel a &os;-t a megszokott + módon vagy a + utasításai mentén: + + + + + + + + Miután befejezõdött a + telepítés, módosítsuk a + virtuális gép beállításait, + például a memória + mennyiségét: + + + A virtuális gép hardveres + beállításai a futása alatt nem + változtathatóak meg. + + + + + + + + + A virtuális gép által + használható processzorok + számát: + + + + + + + + A CD-meghajtó állapotát. + Általában lehetõségünk van a + virtuális gépet leválasztani a + CD-meghajtóról vagy ISO lemezképrõl, + ha már nem használjuk. + + + + + + + + A hálózati csatlakozás a + virtuális géppel kapcsolatban + utolsóként beállítandó + tényezõ. Ha a befogadó gépen + kívül még más gépeket is el + akarunk érni a virtuális géprõl, + akkor ehhez mindenképpen a Connect + directly to the physical network (Bridged) + opciót válasszuk. Minden más esetben a + Share the host's internet connection + (NAT) az ajánlott, mivel így a + virtuális gép eléri az internetet, de a + hálózatról nem lehet azt + elérni. + + + + + + + + Miután befejeztük a + beállítások + finomhangolását, indítsuk is el a frissen + telepített &os;-s virtuális + gépünket. + + + + + A &os; beállítása a + &macos; X/VMWare-en + + Ahogy a &os;-t sikeresen telepítettük a + &macos; X alatt futó + VMWare-re, néhány + konfigurációs lépést még + meg kell tennünk a virtualizált rendszer + teljesítmények optimalizálása + érdekében. + + + + A rendszertöltõ változóinak + beállítása + + A legfontosabb lépés talán a + változó + értékének csökkentése, + amivel a VMWare alatt + futó &os; processzorhasználatát + szoríthatjuk vissza. Ezt a következõ sor + hozzáadásával érhetjük el + a /boot/loader.conf + állományban: + + kern.hz=100 + + Enélkül az üresjáratban + zakatoló &os;-s VMWare + vendég nagyjából az &imac; egyik + processzorának 15%-át emészti fel. + Ezzel a módosítással azonban ez + lenyomható közel 5%-ra. + + + + Új konfigurációs + állomány létrehozása a + rendszermaghoz + + Nyugodtan törölhetjük az összes + FireWire és USB eszköz + meghajtóját. A + VMWare egy &man.em.4; + meghajtón keresztül elérhetõ + virtuális hálózati + kártyát biztosít, így az + &man.em.4; kivételével az összes + hálózati eszköz + meghajtóját kivehetjük a + rendszermagból. + + + + A hálózat + beállítása + + A legegyszerûbb hálózati + beállítás mindösszesen a DHCP + használatát igényli, aminek + révén a virtuális gépünk + a befogadó &mac;-kel egy helyi + hálózatra kerül. Ezt úgy tudjuk + engedélyezni, ha az + /etc/rc.conf állományba + felvesszük az ifconfig_em0="DHCP" + sort. Ha ennél komolyabb hálózati + beállítások is érdekelnek + minket, akkor olvassuk el a et. + + + + + + + + + A &os; mint gazda + + Jelenleg a &os;-t hivatalosan egyik + virtualizációs programcsomag sem támogatja + gazda operációs rendszerként, de sokan + használják a VMware + régebbi verzióit ilyen megfontolásból. + Emellett már dolgoznak azon, hogy a + &xen; rendszert + felkészítsék a &os; alatti + mûködésre. + + + + + + diff --git a/hu_HU.ISO8859-2/books/handbook/x11/Makefile b/hu_HU.ISO8859-2/books/handbook/x11/Makefile new file mode 100644 index 0000000000..06b452cd33 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/x11/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= x11/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml new file mode 100644 index 0000000000..d04df3b87c --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml @@ -0,0 +1,2316 @@ + + + + + + + + + Ken + Tom + Az X.Org X11 szerveréhez igazította: + + + + Marc + Fonvieille + + + + + Az X Window System + + + Áttekintés + + A &os; az X11-en keresztül nyújt a + felhasználók számára hatékony + grafikus felhasználói felületet. Az X11 az X + Window System szabadon elérhetõ változata, + melyet az &xorg; és az + &xfree86; egyaránt + implementál (valamint más egyéb + programcsomagok is, amelyeket itt viszont nem tárgyalunk). + A &os; verziói a &os; 5.2.1-RELEASE kiadással + bezárólag a The &xfree86; Project, Inc. + által kiadott X11 szervert, az + &xfree86;-ot tartalmazzák + alapértelmezés szerint. A &os; 5.3-RELEASE + kiadástól kezdve az X11 alapértelmezett + és hivatalos változata az + &xorg;, melyet az X.Org + alapítvány a &os;-éhez nagyon hasonló + licenc alatt fejleszt. A &os;-hez kereskedelmi X szerverek is + elérhetõek. + + Ebben a fejezetben az X11 telepítését + és beállítását járjuk + végig, miközben a hangsúlyt az + &xorg; &xorg.version; + kiadására helyezzük. Az + &xfree86; (vagyis a &os; olyan + régebbi változata, ahol az + &xfree86; az alapértelmezett X11 + rendszer) vagy az &xorg; korábbi + kiadásainak beállításával + kapcsolatban mindig találhatunk információkat + a &os; kézikönyv címen + található archivált + változataiban. + + Az X11 által támogatott + megjelenítõkrõl bõvebben az &xorg; honlapján + olvashatunk. + + A fejezet elolvasása során + megismerjük: + + + + az X Window System különbözõ + alkotóelemeit, és hogy ezek miként + mûködnek együtt; + + + + hogyan telepítsük és + állítsuk be az X11-et; + + + + hogyan telepítsük és használjuk + a különféle ablakkezelõket; + + + + hogyan használjunk &truetype; + betûtípusokat az X11-ben; + + + + hogyan állítsuk be rendszerünkön a + grafikus bejelentkezést + (XDM). + + + + A fejezet elolvasásához ajánlott: + + + + külsõ programok + telepítésének ismerete (). + + + + + + + Az X áttekintése + + Az X használata elsõre megdöbbentõ lehet + azok számára, akik olyan más grafikus + környezetekben járatosak, mint például a + µsoft.windows; vagy a &macos;. + + Míg az X minden komponensének részleteit + és azok kapcsolatát nem szükséges + megérteni a használatukhoz, néhány + alapvetõ ismeret velük kapcsolatban + elõsegíti kiaknázni az X + erõsségeit. + + + Miért X? + + Az X ugyan nem az elsõ &unix;-ra íródott + ablakozó rendszer, de fajtáját tekintve a + legnépszerûbb. Az X eredeti fejlesztõcsapata + az X elõtt egy másik ablakozó rendszeren + dolgozott, aminek a neve W (mint + Window, azaz ablak) volt. Az X pedig az arab + ábécében pontosan ezt a betût + követi. + + Az X-et hívhatjuk X-nek, X + Window System-nek, és még sok más + néven. Elõfordulhat azonban, hogy az X + Windows elnevezés sértõ lehet egyes + emberek számára. Errõl többet a + &man.X.7; man oldalon tudhatunk meg többet. + + + + + Az X kliens-szerver modellje + + Az X-et már az elejétõl kezdve + hálózatközpontúnak tervezték, + és ezért az ún. + kliens-szerver modellt használja. + + Az X modelljében az X szerver egy + olyan számítógépen fut, amelyhez + billentyûzetet, monitort és egeret csatlakoztattunk. + A szerver feladatai között találjuk a + megjelenítés + irányítását az egérrõl + és a billentyûzetrõl, valamint a többi + bemeneti és kimeneti eszközrõl + érkezõ adatok felfeldolgozását + és így tovább (például a + digitális táblák is + használhatóak beviteli eszközként, + illetve egy projektor is lehet megjelenítõ). + Mindegyik X alkalmazás (mint például az + XTerm vagy a + &netscape;) egy kliens. A kliens + üzeneteket küld a szervernek, például + Kérlek, rajzolj egy ablakot ezekre a + koordinátákra, és a szerver pedig + olyan üzeneteket küld, mint például + A felhasználó az OK gombra + kattintott. + + Az otthoni vagy a kisebb irodai környezetben az X + szerver és az X kliensek általában + ugyanazon a számítógépen futnak. + Emellett azonban nagyon is lehetséges, hogy az X szerver + egy kevésbé erõs gépen fusson, + miközben az X alkalmazások (a kliensek) az + irodát kiszolgáló erõsebb és + drágább gépen fussanak. Egy ilyen + konfigurációban az X kliensei és szerverei + közti kommunikáció a hálózaton + keresztül zajlik. + + Jegyezzük meg, hogy az X szerver az a + számítógép, ahol a monitor és + a billentyûzet található, az X kliensek pedig + azok a programok, amelyek az ablakokat jelenítik + meg. + + A protokollban semmi sem várja el, hogy a kliens + és a szerver ugyanazon az operációs + rendszeren vagy éppen ugyanolyan típusú + számítógépen fusson. Ezért + akár µsoft.windows;-on vagy &apple; &macos;-en is + indíthatunk X szervert, és számos + különbözõ szabad valamint kereskedelmi + alkalmazás képes pontosan erre. + + + + + Az ablakkezelõ + + Az X kialakításának + filozófiája leginkább a &unix; + kialakításának + filozófiájához hasonlítható, + vagyis eszközöket, ne + szabályokat. Ez tehát azt jelenti, hogy + az X nem köti meg miként oldjuk meg vele a + feladatokat. Helyette különféle + eszközeket ad a felhasználó kezébe, + és onnantól a saját felelõssége + eldönteni, hogyan használja ki ezeket. + + Ez a filozófia az X-ben egészen addig terjed, + hogy nem rögzíti, hogyan nézzenek ki a + képernyõn megjelenõ ablakok, miként kell + ezeket mozgatni az egérrel, milyen billentyûk + lenyomásával közlekedhetünk az ablakok + között (ami a µsoft.windows; esetén az + + AltTab), hogyan + nézzen ki az ablakok címsora, a + bezárás funkciónak legyen-e rajtuk gombja + és így tovább. + + Ehelyett az X az összes ezzel járó + felelõsséget átadja az + ablakkezelõ (window manager) + részére. Tucatnyi ilyen ablakkezelõt + találhatunk az X-hez: + AfterStep, + Blackbox, + ctwm, + Enlightement, + fvwm, + Sawfish, + twm, Window + Maker és még sok más. Ezen + ablakkezelõk mindegyike más és más + kinézetet és hangulatot kínál fel: + némelyikük támogatja a + virtuális munkaasztalok (virtual desktop) + létrehozását; néhányuk pedig + megengedi, hogy mi magunk állítsuk be az asztal + irányításához használt + gombkombinációkat; köztük + találhatunk olyat is, amelynek van Start + gombja vagy ehhez hasonló eszköze; némelyek + közülük ismerik a + témákat, aminek révén + a kinézetük és hangulatuk teljesen + megváltoztatható. Az említett + ablakkezelõk és társaik a + Portgyûjtemény x11-wm + kategóriájában érhetõek + el. + + Ráadásul a KDE + és a GNOME + munkakörnyezetek mindegyikének van saját + integrált ablakkezelõje. + + Az egyes ablakkezelõk mellesleg eltérõ + beállítási módszerrel rendelkeznek. + Némelyikük kézzel + összeállított konfigurációs + állományt vár, mások pedig + külön grafikus eszközöket tartalmaznak erre + a feladatra is. Az egyikük (a + Sawfish) konfigurációs + állományát például a Lisp + programozási nyelv egyik dialektuásban kell + megírni. + + + Az irányítás + átadása + + Az ablakkezelõ másik fontos feladata + lekezelni, hogy az egérrel miként tudjuk + átadni az ablakok között az + irányítást, vagyis a fókuszt + (focus policy). Minden ablakkezelõ rendszerben el kell + tudnunk valahogy dönteni, hogy a beérkezõ + billentyûleütések melyik ablakhoz + vándoroljanak, valamint az ilyen értelemben + aktív ablakot valamilyen módon jeleznünk is + kell. + + Ennek egyik ismert módszere a fókusz + kattintásra megoldás, amely modellt a + µsoft.windows; rendszerekben találhatjuk meg. Itt + az ablakok akkor válnak aktívvá, amikor + rájuk kattintunk az egérrel. + + Az X viszont nem kötelezi el magát egyik + vezérlésátadási módszer + mellett sem, helyette az ablakkezelõ fogja majd + eldönteni, melyik ablak birtokolja a fókuszt az + adott pillanatban. A különbözõ + ablakkezelõk különbözõ + fókuszvezérlési technikákat + ismernek. Mindegyikük ismeri a kattintásos + fókuszt, azonban a többségük emellett + még sok más megoldást is + felkínál. + + A legnépszerûbb + fókuszvezérlési elvek: + + + + A fókusz az egeret követi + (focus-follows-mouse) + + + Az egérmutató alatt + található ablak kapja meg fókuszt. + Az érintett ablaknak nem kell + feltétlenül az összes többi felett + elhelyezkednie. Ilyenkor a fókuszt + egyszerûen úgy vihetjük át egy + másik ablakra, ha rámutatunk az + egérrel, amihez még kattintanunk sem + kell. + + + + + Hanyag fókusz (sloppy-focus) + + + Ez az elv az elõbbi apró + kibõvítése. Amikor a fókusz + az egérmutatót követi, és az + egeret a leghátsó ablakra (vagy a + háttérre) visszük, akkor + valójában egyik ablak sem birtokolja az + irányítást, ezért a + leütött billentyûk elvesznek. A hanyag + fókusz használatával azonban az + irányítás csak abban az esetben + kerül át máshová, amikor egy + másik ablakba lépünk be, nem pedig + akkor, amikor a jelenlegibõl lépünk + ki. + + + + + Fókusz kattintásra + (click-to-focus) + + + Az aktív ablakot egy + egérkattintással választjuk ki. + Ilyenkor a kiválasztott ablak + felemelkedhet és a többi + elõtt jelenhet meg. Ezt követõen az + összes irányítás ebbe az + ablakba vándorol, még abban az esetben is, + amikor egy másik ablakra visszük az + egérmutatót. + + + + + Sok ablakkezelõ ismer ezekbõl + különbözõ variációikat, + valamint rajtuk kívül más egyéb + vezérlési elvet is. Ezzel kapcsolatban az adott + ablakkezelõ dokumentációjából + deríthetünk ki a legtöbbet. + + + + + + Widgetek + + Az X megközelítése, vagyis az + eszközök és nem a szabályok + felsorakoztatása, kiterjed az egyes + alkalmazásokban látható + különféle widgetekre is. + + A widget (window gadget, vagyis widget, de + magyarul sok helyen a mütyürke) + elnevezést azokra a felhasználói + felületen megjelenõ elemekre használjuk, + amelyekkel valamilyen módon kapcsolatba + léphetünk: kattinthatunk rájuk, + piszkálhatjuk ezeket. Ilyenek többek + közt a gombok, jelölõnégyzetek, + rádiógombok, ikonok, listák és a + többi. A µsoft.windows; nyelvén ezeket + vezérlõknek (control) + nevezzük. + + A µsoft.windows; és az &apple; &macos; ezen a + téren nagyon merev. Az alkalmazások + fejlesztõinek gondoskodniuk kell róla, hogy a + programjaik az elterjedt kinézetet és + kialakítást kövessék. Az X viszont + nem várja az egységes + vezérlõeszközök vagy grafikai + stílus használatát. + + Ennek eredményeképpen az X cseppet sem + kívánja meg az alkalmazásoktól, hogy + közös kinézetben vagy viselkedésben + osztozzanak. Természetesen léteznek + népszerû eszközrendszerek és azoknak + számos variációja is kialakult, + beleértve az MIT Athenaját, a + &motif;ot (amirõl a + µsoft.windows; eszközeit is mintázták, + az összes ferde élet és a három + szürkeárnyalatot), az + OpenLookot és + társaikat. + + Napjaink X alkalmazásai a + KDE fejlesztéséhez + használt Qt, esetleg a + GNOME-hoz használt GTK+ + könyvtárból származó, + korszerû kinézetû widgeteket tartalmaznak. + Ebbõl a szempontból megfigyelhetõ egyfajta + tendencia a grafikus &unix;-alkalmazások + felépítésében, ami minden bizonnyal + megkönnyíti a kezdõ felhasználók + tájékozódását. + + + + + + Az X11 telepítése + + Az X11 &os;-n alapértelmezett + implementációja az + &xorg;. Az + &xorg; az X.Org + alapítvány által kiadott, az X Window + Systemet megvalósító nyílt + forráskódú X szerver. Az + &xorg; az + &xfree86; 4.4RC2 és X11R6.6 + kódja alapján készült. A &os; + Portgyûjteményében jelenleg az + &xorg; &xorg.version; változata + érhetõ el. + + Az &xorg;-ot a + Portgyûjteménybõl így tudjuk + lefordítani, majd telepíteni: + + &prompt.root; cd /usr/ports/x11/xorg +&prompt.root; make install clean + + + Az egész &xorg; + lefordításához legalább 4 GB + szabad helyre van szükségünk. + + + Az X11-et természetesen telepíthetjük + közvetlenül csomagok segítségével + is. A &man.pkg.add.1; használatával + telepíthetõ bináris csomagok is + elérhetõek az X11-hez. Amikor a &man.pkg.add.1; + programra bízzuk a csomag letöltését, ne + adjunk meg verziószámot, a &man.pkg.add.1; ugyanis + mindig automatikusan az alkalmazás legfrissebb + verzióját tölti le. + + Az &xorg; csomagjának + letöltéséhez és + telepítéséhez egyszerûen csak ennyit + írjunk be: + + &prompt.root; pkg_add -r xorg + + + A fentebb megadott példák a teljes X11 + rendszert telepíteni fogják, beleértve a + szervereket, klienseket, betûtípusokat stb. Az X11 + egyes részeihez külön találhatunk + csomagokat és portokat. + + + A fejezet további részében szót + ejtünk az X11, valamint egy irodai használatra + alkalmas munkakörnyezet + beállításáról. + + + + + + + + Christopher + Shunway + Írta: + + + + + Az X11 beállítása + + &xorg; + X11 + + + Mielõtt nekilátnánk + + Az X11 beállítása elõtt a + célrendszer következõ adataira lesz + szükségünk: + + + A monitor jellemzõi + A videokártya + chipkészlete + A videokártya + memóriájának mérete + + + függõleges frissítési + frekvencia + vízszintes frissítési + frekvencia + + Az X11 a monitor jellemzõibõl + állapítja meg, hogy milyen felbontásban + és frissítési frekvenciával + mûködtesse azt. Ezek általában a + monitorhoz tartozó dokumentációból + vagy a gyártó honlapjáról + deríthetõek ki. Igazából két + értékre van szükségünk: a + függõleges és a vízszintes + frissítési frekvenciára. + + A videokártya chipkészlete határozza + meg, hogy az X11 melyik meghajtóján keresztül + kommunikál a grafikus hardverrel. Ez a legtöbb + chipkészlet esetén magától + megállapítható, de ennek ellenére + mégis jó tisztában lenni ezzel arra az + esetre, ha az automatikus felismerés mégsem + mûködne. + + A grafikus kártya memóriájának + mérete határozza meg a rendszer által + kihasználható felbontást és + színmélységet. Ezt fontos tudunk ahhoz, + hogy ismerjük a rendszerünk korlátait. + + + + + Az X11 beállítása + + Az &xorg; 7.3-as + változatában gyakran mindenféle + konfigurációs állomány + használata nélkül egyszerûen csak adjuk + ki a következõ parancsot: + + &prompt.user; startx + + Amennyiben ez nem mûködne, vagy az + alapértelmezések nem felelnek meg + számunkra, az X11 kézzel is + beállítható. Az X11 + beállítása egy többlépcsõs + folyamat. Elsõ lépésünk egy alap + konfigurációs állomány + összeállítása lesz. + Rendszeradminisztrátorként adjuk ki az + alábbi parancsot: + + &prompt.root; Xorg -configure + + Ennek segítségével az X11 + xorg.conf.new néven + létrehozza a konfigurációs + állomány vázát a + /root könyvtárban (akár + a &man.su.1; parancsot használjuk, akár + közvetlenül így jelentkezünk be, az + így örökölt rendszeradminisztrátori + szerepkör maga után vonja a $HOME + könyvtár + átállítását is). Az X11 + megpróbálja megkeresni a célrendszerben + elérhetõ grafikus eszközöket, és + létrehozni egy olyan konfigurációs + állományt, amely az észlelt + eszközökhöz tartozó meghajtókat + tölti be. + + A következõ lépésünk legyen az + imént létrehozott beállítás + kipróbálása, amin keresztül + ellenõrizhetjük, hogy az + &xorg; tényleg képes + mûködni a célrendszer grafikus + eszközén. Ehhez a következõt kell + begépelnünk: + + &prompt.root; Xorg -config xorg.conf.new + + Ha ezután a képernyõn egy + fekete-fehér rácsot látunk egy X alakú + egérmutatóval a közepén, akkor + jó a beállítás. A + próbát a + CtrlAltBackspace + billentyûk együttes lenyomásával + szakíthatjuk meg. + + + Ha az egér még nem mûködne, + mindenképpen be kell állítanunk a + továbblépés elõtt. Ezzel + kapcsolatban a &os; telepítésérõl + szóló fejezetben levõ t ajánljuk elolvasásra. + + + Az X11 + finomhangolása + + Ezután az ízlésünknek + megfelelõen hangoljuk be az + xorg.conf.new állományt, + nyissuk meg egy szövegszerkesztõben, + például az &man.emacs.1;-ben vagy az + &man.ee.1;-ben. Elsõként adjuk meg a + célrendszerhez csatlakoztatott monitor + frekvenciájára vonatkozó adatokat. Ezek + általában a függõleges és a + vízszintes frissítés értékei, + melyeket az xorg.conf.new + állomány "Monitor" + szakaszában (Section) kell feltüntetni: + + Section "Monitor" + Identifier "Monitor0" + VendorName "A monitor gyártója" + ModelName "A monitor típusa" + HorizSync 30-107 + VertRefresh 48-120 +EndSection + + A konfigurációs + állományból valószínûleg + csak a HorizSync és + VertRefresh kulcsszavak fognak + hiányozni. Amennyiben ez tényleg így + lenne, a megfelelõ vízszintes + frissítés értékét a + HorizSync kulcsszó után, a + hozzátartozó függõleges + frissítés értékét pedig a + VertRefresh kulcsszó után kell + hozzátennünk a szakaszhoz. Az iménti + példában már megadtuk a célrendszer + monitorának frissítési + értékeit. + + Az X megengedi, hogy DPMS (Energy Star) + energiagazdálkodási szabványt ismerõ + monitorok lehetõséget is kihasználjuk. A + &man.xset.1; program vezérli a monitorok ki- és + bekapcsolását, és + segítségével készenléti vagy + energiatakarékos üzemmódba tudjuk helyezni + azokat. Ha engedélyezni kívánjuk a + monitorunk DPMS lehetõségeit, egyszerûen csak + tegyük hozzá az alábbi sort a monitorunkat + leíró szakaszhoz: + + + Option "DPMS" + + xorg.conf + + Ha már a xorg.conf.new + konfigurációs állomány + szerkesztésével vagyunk elfoglalva, + válasszuk ki számunkra kedvezõ + alapértelmezett felbontást és + színmélységet is. Ezt a + "Screen" (Képernyõ) nevû + szakaszban tehetjük meg: + + Section "Screen" + Identifier "Screen0" + Device "Card0" + Monitor "Monitor0" + DefaultDepth 24 + SubSection "Display" + Viewport 0 0 + Depth 24 + Modes "1024x768" + EndSubSection +EndSection + + A DefaultDepth kulcsszó + után adjuk meg a rendszer alapértelmezett + színmélységét. Ezt + késõbb az &man.Xorg.1; + paraméterével bírálhatjuk felül + a parancssorból. A Modes + kulcsszó után jelennek meg azok a + felbontások, amelyekben az adott + színmélység elérhetõ. Itt csak + olyan VESA szabványú módok jelenhetnek meg, + amelyet a célrendszer grafikus eszköze is + támogat. A fenti példában az + alapértelmezett színmélység + képpontonként huszonnégy bit, és + ebben a színmélységben az elfogadott + felbontás 1024-szer 768 pixel. + + Végezetül mentsük el a szerkesztett + konfigurációs állományt és + próbáljuk ki a korábban leírt + módszer szerint. + + + A hibakeresés során maguk az X11 + naplóállományai is hasznos eszköznek + bizonyulhatnak, mivel ezek minden olyan eszközrõl + tartalmaznak információt, amelyekhez az X11 + szervernek sikerült csatlakoznia. Az + &xorg; naplóit a + /var/log/Xorg.0.log elnevezést + követõ állományokban találjuk + meg. A konkrét naplók nevei + Xorg.0.log-tól + Xorg.8.log-ig és így + tovább terjedhetnek. + + + Ha minden a legnagyobb rendben haladt eddig, a + konfigurációs állományt el kell + tennünk egy olyan központi helyre, ahol az + &man.Xorg.1; képes lesz majd megtalálni. Ez a + hely általában az + /etc/X11/xorg.conf vagy a + /usr/local/etc/X11/xorg.conf. + + &prompt.root; cp xorg.conf.new /etc/X11/xorg.conf + + Az X11 beállítását ezzel + befejeztük. Az &xorg; + innentõl elindítható a &man.startx.1; + segédprogram vagy az &man.xdm.1; + használatával. + + + Létezik egy grafikus + beállítást lehetõvé tevõ + eszköz is, az &man.xorgcfg.1;, amely az X11 rendszer + része. Használata során a megfelelõ + meghajtók és beállítások + kiválasztásával interaktívan + megadhatjuk a rendszerünk jellemzõit. Ezt a + programot az xorg -textmode parancs + kiadásával hívhatjuk meg a + konzolról. Bõvebb információkat a + &man.xorgcfg.1; man oldalán találunk. + + Emellett találhatunk még egy + &man.xorgconfig.1; nevezetû segédprogramot is. Ez + egy szöveges felületû, kevésbé + felhasználóbarát program, azonban olyan + esetekben is mûködhet, amikor más programok + már nem. + + + + + + Témák idõsebbeknek és + haladóknak + + + Az i810 grafikus chipkészlet + beállítása + + Intel i810 grafikus + chipkészlet + + Az &intel; i810 integrált + chipkészletének meghajtásához + szükségünk lesz az + agpart nevû AGP + programozási felületre az X11-ben. Errõl az + &man.agp.4; meghajtó man oldalán olvashatuk + többet. + + Ennek segítségével ezt a hardvert is + a többi grafikus kártyához hasonlóan + állíthatjuk be. Vegyük figyelmbe azonban, + hogy az &man.agp.4; meghajtót beépítve + nem tartalmazó rendszermaggal futó rendszerekben + a &man.kldload.8; paranccsal utólag már nem + tudjuk betölteni! Ezt a meghajtót már a + rendszerindítás során be kell tudnunk + tölteni: vagy a rendszermagba fordítjuk, vagy + pedig a /boot/loader.conf + állományban hivatkozunk rá. + + + + + Widescreen Flat Panel monitorok használata + + widescreen flat panel + beállítása + + Ebben a részben feltételezünk + némi tapasztalatot a beállítások + terén. Amennyiben a szabványos + konfigurációs eszközök + csõdöt mondtak a beállítás + során, magukból a + naplóállományokból is + kinyerhetünk elegendõ információt + ahhoz, hogy mûködésre bírjuk + rendszerünket. Ehhez mindenképpen legyen + kéznél egy szövegszerkesztõ! + + A jelenlegi szélesvásznú (WSXGA, + WSXGA+, WUXGA, WXGA, WXGA+ és társai) + formátumok a 16:10-es és 10:9-es + képarányokat ismerik, amik néha gondot + okozhatnak. Például a 16:10-es + képarány felbontásai: + + + 2560x1600 + 1920x1200 + 1680x1050 + 1440x900 + 1280x800 + + + Bizonyos szempontból egyszerûen csak a fenti + felbontások valamelyikét kell felvenni a + "Screen" szakasz Mode + sorába, valahogy így: + + Section "Screen" +Identifier "Screen0" +Device "Card0" +Monitor "Monitor0" +DefaultDepth 24 +SubSection "Display" + Viewport 0 0 + Depth 24 + Modes "1680x1050" +EndSubSection +EndSection + + Az &xorg; elég + intelligens ahhoz, hogy a szélesvásznú + megjelenítéssel kapcsolatos + információkat lekérje a monitor I2C/DDC + adatai közül, ezért meg tudja + állapítani, hogy az eszköz milyen + frissítési frekvenciákat és + felbontásokat bír el. + + Ha az alábbi ModeLine + értékek nem szerepelnének a + meghajtókban, akkor velük kapcsolatban egy kicsit + súgnunk kell az &xorg;-nak. + A /var/log/Xorg.0.log + átrágásával elegendõ + információt tudunk gyûjteni ahhoz, hogy + manuálisan vegyünk fel használható + ModeLine értékeket. Nem kell + mást tennünk, mint ehhez hasonló sorokat + keresnünk: + + (II) MGA(0): Supported additional Video Mode: +(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm +(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 +(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 +(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz + + Ezeket nevezik EDID-adatoknak (Extended display + identification data, vagyis bõvített + megjelenítési azonosító + adatoknak). Belõlük a megfelelõ + ModeLine sor létrehozása + csupán annyiból áll, hogy a + számértékeket a megfelelõ sorrendbe + tesszük: + + ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings> + + Ezáltal a példában látott + "Monitor" szakasz + ModeLine sora így fog + kinézni: + + Section "Monitor" +Identifier "Monitor1" +VendorName "Bigname" +ModelName "BestModel" +ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089 +Option "DPMS" +EndSection + + Miután végrehajtottuk ezeket az + egyszerû beállítási + lépéseket, az X most már + valószínûleg el fog indulni az új + szélesvásznú monitorunkon. + + + + + + + + + + Murray + Stokely + Írta: + + + + + Betûtípusok használata az X11-ben + + + Type1 betûtípusok + + Az X11-hez tartozó alap betûtípusok nem + mondhatóak kifejezetten ideálisnak + például egy átlagos asztali + kiadványszerkesztõ alkalmazás + számára. A nagyobb méretû + bemutatókon a betûi szögletesen és + idétlenül néznek ki, a + &netscape;ben megjelenõ kisebb + betûk pedig szinte teljességgel olvashatatlanok. + Viszont manapság már rengeteg szabad, nagyon + jó minõségû és könnyen + használható Type1 (&postscript;) + betûtípus érhetõ el az X11-hez. + Például az URW + betûtípus-gyûjtemény (x11-fonts/urwfonts) a + szabványos Type1 betûtípusok (Times Roman, Helvetice, Palatino és még sok + más) jó minõségû + változatait tartalmazza. A Freefonts nevû + gyûjtemény (x11-fonts/freefonts) is tartalmaz sok + más betûtípust, de a legtöbbjüket + inkább csak a Gimpben + és a hozzá hasonló grafikai + alkalmazásokban tudjuk használni, illetve + nincsenek is még kellõ mértékben + befejezve a hétköznapi munkákhoz. Ezeken + felül az X11 minimális ügyeskedéssel + beállítható a &truetype; + betûtípusok használatára is. + Errõl részleteket a &man.X.7; man oldalon, illetve a + &truetype; + betûtípusokról szóló + szakaszban olvashatunk. + + A Portgyûjteménybõl az imént + említett Type1 betûtípusokat az alábbi + parancsok segítségével + telepíthetjük: + + &prompt.root; cd /usr/ports/x11-fonts/urwfonts +&prompt.root; make install clean + + Ugyanígy járjunk el a freefont és a + többi gyûjtemény esetén is. Az X + szerver akkor fogja észlelni ezeket a + betûtípusokat, ha hozzáadjuk a + következõ sort a konfigurációs + állományához + (/etc/X11/xorg.conf): + + FontPath "/usr/local/lib/X11/fonts/URW/" + + Vagy megtehetjük mindezt az X futtatása + során is: + + &prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW +&prompt.user; xset fp rehash + + Ez utóbbi beállítás viszont el + fog veszni az X leállításával, + hacsak nem vesszük hozzá a + indítószkriptjéhez (ez az + ~/.xinitrc a startx + használata esetén, illetve az + ~/.xsession, amikor egy + XDM-szerû grafikus + bejelentkezést használunk). Ezek mellett + használhatjuk a + /usr/local/etc/fonts/local.conf + állományt is: errõl az élsimítással + foglalkozó szakaszban szólunk + részletesebben. + + + + + &truetype; betûtípusok + + TrueType + betûtípusok + + betûtípusok + TrueType + + + Az &xorg; beépített + támogatást tartalmaz a &truetype; + betûtípusok rendereléséhez. + Két különbözõ modul + valósítja meg ezt a feladatot. Ebben + példában a freetype nevû modult + használjuk, mivel sokkal jobban illeszkedik a többi + betûrenderelõhöz. A freetype modul + használatához mindössze az + /etc/X11/xorg.conf állomány + "Module" szakaszába kell + beírnunk a következõ sort: + + Load "freetype" + + Most pedig hozzunk létre egy könyvtárat a + &truetype; betûtípusok számára (ez + legyen például a + /usr/local/lib/X11/fonts/TrueType), majd + másoljuk az összes &truetype; + betûtípusunkat ide. Vigyázzunk rá, + hogy &macintosh;-ról &truetype; betûtípusok + közvetlenül nem hozhatóak át, az X11 + számára &unix;/&ms-dos;/&windows; + formátumban kell lenniük. Miután + sikerült átmásolnunk az + állományokat ebbe a könyvtárba, + használjuk a ttmkfdir + parancsot a fonts.dir + állomány létrehozására, + aminek révén az X betûrenderelõje tudnia + fogja, hogy új állományokat + telepítettünk. A ttmkfdir + x11-fonts/ttmkfdir + néven elérhetõ a &os; + Portgyûjteményébõl. + + &prompt.root; cd /usr/local/lib/X11/fonts/TrueType +&prompt.root; ttmkfdir -o fonts.dir + + Ezután adjuk hozzá a &truetype; + könyvtárat a betûtípusok + könyvtáraihoz. Itt is a Type1 betûtípusoknál + leírtak szerint kell eljárnunk, vagyis + használjunk a + + &prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType +&prompt.user; xset fp rehash + + parancsot, vagy adjunk hozzá a + xorg.conf állományhoz egy + további FontPath sort. + + Ezzel végeztünk is. Innentõl kezdve a + &netscape;, + Gimp, a + &staroffice; és mindegyik X + alkalmazás fel fogja ismerni a frissen telepített + &truetype; betûtípusokat. A nagyon kicsi betûk + (egy honlap megtekintése során, + nagyfelbontásban) és a nagyon nagy betûk (a + &staroffice; használatakor) + most már sokkal jobban fognak mutatni. + + + + + + + + Joe Marcus + Clarke + Frissítette: + + + + + A betûk élsimítása + + élsimított + betûk + + betûk + élsimított + + + Az X11-ben az &xfree86; 4.0.2-es + változata óta érhetõ el az + élsimítás, azonban az + &xfree86; 4.3.0-at + megelõzõen a betûk + beállítása meglehetõsen + körülményes volt. Az + &xfree86; 4.3.0-as + verziójával kezdõdõen az X11 + által használt, a + /usr/local/lib/X11/fonts/ és a + ~/.fonts/ könyvtárakban + található összes betûtípus + élsimítása automatikusan + elérhetõ az Xft-re felkészített + alkalmazások számára. Nem mindegyik + alkalmazás használja ki az Xft-t, de sokan kaptak + hozzá támogatást. Ilyen + Xft-alkalmazások a (KDE + fejlesztéséhez használt) Qt 2.3 és + késõbbi változatai, a + (GNOME fejlesztéséhez + használt) GTK+ 2.0 és késõbbi + változatai, valamint a Mozilla + 1.2 és késõbbi változatai. + + A betûtípusok + élsimításának be- és + kikapcsolásához, valamint + élsimítási jellemzõinek + beállításához hozzuk létre + (vagy ha már létezne, módosítsuk) a + /usr/local/etc/fonts/local.conf + állományt. Az Xft betûrendszer számos + kifinomult lehetõsége hangolható ezzel az + állománnyal, amelyekbõl ebben a szakaszban + csupán rövidke ízelítõt fogunk + adni. A pontosabb részletekrõl a &man.fonts-conf.5; + man oldalon tájékozódhatunk. + + XML + + Az állománynak XML formátumúnak + kell lennie. Különösen ügyeljünk a + kis- és nagybetûkre, illetve + gyõzödjünk meg mindig róla, hogy + lezártuk-e az összes taget. Az + állomány a szokásos XML-fejléccel + kezdõdik, amelyet egy DOCTYPE definíció + követ, majd a <fontconfig> + tag: + + + <?xml version="1.0"?> + <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> + <fontconfig> + + + Ahogy azt már korábban is + említettük, a + /usr/local/lib/X11/fonts és a + ~/.fonts/ könyvtárakban + található összes betûtípus + élsimítása elérhetõ az Xft-re + felkészített alkalmazások + számára. Amennyiben ezeken túl még + további könyvtárakat is fel + kívánunk venni, írjuk bele a + /usr/local/etc/fonts/local.conf + állományba, nagyjából ilyen + alakban: + + <dir>/az/en/betu/tipusaim</dir> + + Az új betûtípusok, de + legfõképpen az új betûtípusokat + tartalmazó könyvtárak + hozzáadása után a betûkkel kapcsolatos + gyorsítótárak + frissítéséhez mindenképpen javasolt + lefuttatni az alábbi parancsot: + + &prompt.root; fc-cache -f + + Az élsimítás hatására a + betûk kontúrjai egy kissé elmosódnak, + aminek köszönhetõen a nagyon kis + méretû szövegek sokkal + olvashatóbbá válnak és eltûnnek + a nagy méretû betûkrõl a + lépcsõk, azonban a normál + méretû betûknél megfájdulhat + tõle a szemünk. A 14 pontnál kisebb + méretû betûk esetén az alábbi + sorok hozzáadásával tudjuk kikapcsolni az + élsimítást: + + <match target="font"> + <test name="size" compare="less"> + <double>14</double> + </test> + <edit name="antialias" mode="assign"> + <bool>false</bool> + </edit> + </match> + <match target="font"> + <test name="pixelsize" compare="less" qual="any"> + <double>14</double> + </test> + <edit mode="assign" name="antialias"> + <bool>false</bool> + </edit> + </match> + + + betûk + térköz + + + Bizonyos egyenszélességû (monospaced) + betûtípusok élsimítása + esetén a betûk távolsága nem + megfelelõ. Ez leginkább a + KDE használata esetén + merül fel. Ezt a problémát úgy is + orvosolhatjuk, ha az ilyen betûtípusok + térközét kézzel 100-ra + állítjuk. Ehhez írjuk be a + következõ sorokat: + + <match target="pattern" name="family"> + <test qual="any" name="family"> + <string>fixed</string> + </test> + <edit name="family" mode="assign"> + <string>mono</string> + </edit> + </match> + <match target="pattern" name="family"> + <test qual="any" name="family"> + <string>console</string> + </test> + <edit name="family" mode="assign"> + <string>mono</string> + </edit> + </match> + + (ezzel lefedjük összes rögzített + méretû (fixed) betûtípust + "mono"-ként), majd vegyük + hozzá ezt is: + + <match target="pattern" name="family"> + <test qual="any" name="family"> + <string>mono</string> + </test> + <edit name="spacing" mode="assign"> + <int>100</int> + </edit> + </match> + + Egyes betûtípusoknál, mint + például a Helveticánál, gondok + akadhatnak az élsimítással. Ez + általában egy függõlegesen + kettévágottnak látszó betû + képében jelenik meg. De ami a legrosszabb, hogy + emiatt némely alkalmazás, mint + például a Mozilla + képes összeomlani. Ennek + elkerülésére tegyük hozzá + még az alábbi sorokat a + local.conf + állományhoz: + + <match target="pattern" name="family"> + <test qual="any" name="family"> + <string>Helvetica</string> + </test> + <edit name="family" mode="assign"> + <string>sans-serif</string> + </edit> + </match> + + Miután befejeztük a + local.conf szerkesztését, + ellenõrizzük, hogy szerepel-e az + állomány végén a + </fontconfig> tag. Ha ugyanis nem + zárjuk le rendesen, akkor a változtatásaink + érvénytelenné válnak. + + Az X11-hez tartozó alap betûtípus nem + éppen mutatós élsimított + alakjában. Erre a célra sokkal jobb alap + betûtípusok is találhatóak a x11-fonts/bitstream-vera portban. Ha + még nem létezne + /usr/local/etc/fonts/local.conf + állományunk, akkor ezt a port létrehozza. + Ellenkezõ esetben a port készít egy + /usr/local/etc/fonts/local.conf-vera + nevû állományt. Fésüljük + össze ennek az állománynak a tartalmát + a /usr/local/etc/fonts/local.conf + tartalmával, és a Bitstream + betûtípusok maguktól felváltják + az X11 alapértelmezett talpas (serif), talpatlan (sans + serif) és egyenszélességû (monospaced) + betûtípusait. + + Végezetül a felhasználók is + megadhatják a saját + beállításaikat a saját + .fonts.conf állományuk + segítségével. Ehhez nem kell mást + tenni, mindössze létrehozni egy + ~/.fonts.conf + XML-állományt. + + LCD képernyõ + + betûk + LCD képernyõ + + + Még egy utolsó ötlet: LCD + képernyõk esetén szükségünk + lehet az ún. sub-pixel sampling + (részképpont mintavételezési) + technikára. Ezzel lényegében a + (vízszintesen elválasztott) vörös, + zöld és kék összetevõket + külön-külön kezeljük a + horizontális felbontás + javítására. Bámulatos + eredményeket lehet elérni a + segítségével! A + bekapcsolásához a következõ sorokat kell + beszúrnunk valahova a local.conf + állományba: + + + <match target="font"> + <test qual="all" name="rgba"> + <const>unknown</const> + </test> + <edit name="rgba" mode="assign"> + <const>rgb</const> + </edit> + </match> + + + + A megjelenítõ fajtájától + függõen lehet, hogy az rgb + értéket bgr-re, + vrgb-re vagy vbgr-re + kell cserélnünk. Próbálgassuk + és kiderül, hogy melyikkel mûködik + jobban. + + + + Mozilla + az élsimítás + kikapcsolása + + + Az élsimítás hatása az X + következõ indításakor fog + látszódni. Azonban a programoknak tudniuk is kell + élni az általa felkínált + elõnyökkel. A Qt pillanatnyilag képes erre, + ezért az összes KDE-elem + ki tudja használni a betûtípusok + élsimítását. A GTK+ és a + GNOME is használja az + élsimítást a Font cappleten + keresztül (errõl bõvebben ld. a t). A + Mozilla 1.2 és + késõbbi változatai már + alapértelmezés szerint használják az + élsimítást. Ennek + kikapcsolásához a + Mozillat a + -DWITHOUT_XFT kapcsolóval + fordítsuk újra. + + + + + + + + + Seth + Kingsley + Írta: + + + + + Az X bejelentkeztetõ képernyõje + + + Összefoglalás + + X Display Manager + + Az X bejelentkeztetõ képernyõje (az X + Display Manager vagy röviden csak + XDM) az X Window System egyik + kiegészítõ eleme, melyet a + bejelentkezések lebonyolítására + használunk. Számtalan helyzetben hasznosnak + bizonyulhat, beleértve a legkisebb X + terminálokat és a legnagyobb + hálózati szervereket is. Mivel az X Window System + független hálózattól és + protokolltól, a hálózaton + összekapcsolt, X klienseket és szervereket + futtató különbözõ + számítógépek széles + kombinációja elõfordulhat. Az + XDM egy grafikus felületen + keresztül segít választani az + elérhetõ szerverek között, valamint a + felhasználók, például + felhasználónév és jelszón + keresztüli, hitelesítésében. + + Az XDM tulajdonképpen a + felhasználó számára ugyanazokat a + funkciókat nyújtja, mint a &man.getty.8; program + (errõl bõvebben lásd ). Tehát: belépteti a + felhasználót a szerverre, ahova csatlakozott, + illetve elindítja helyette a hozzátartozó + munkamenet kezelõjét (ami általában + egy X-es ablakkezelõ). Az XDM + megvárja ennek a programnak a + befejezõdését, ami egyben jelzi + számára, hogy a felhasználó + elvégezte a dolgát, és kilépteti a + szerverrõl. Ezután az + XDM újra várakozni kezd + a következõ felhasználóra, miközben + a bejelentkezéshez és a szerver + kiválasztásához szükséges + képernyõket jeleníti meg. + + + + + Az XDM használata + + Az XDM-hez tartozó + démon a /usr/local/bin/xdm + állomány. Ezt programot root + felhasználóként bármikor tudjuk + futtatni, és ez veszi kezelésbe a helyi + gépen futó X szervert. Amennyiben az + XDM-et a + számítógép minden egyes + indulása során el akarjuk indítani, + egyszerûen csak adjuk hozzá a megfelelõ + bejegyzést az /etc/ttys + állományhoz. Ennek a formai + szabályairól és + használatáról bõvebben lásd + . Az + /etc/ttys alapértelmezett + változatában az XDM + démont ebben a formában találjuk meg a + virtuális terminálok között: + + ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure + + Ez a bejegyzés alapból nem aktív. Az + engedélyezéséhez írjuk át az + ötödik mezõben szereplõ + off (kikapcsolva) értéket + on (bekapcsolvá)-ra, majd + indítsuk újra az &man.init.8; programot a ban leírtak szerint. Az elsõ + mezõben találhatjuk a program által kezelt + terminált, ez jelen esetünkben a + ttyv8. Ennek megfelelõen az + XDM a 9. virtuális + terminálon kezdi meg a futását. + + + + + Az XDM beállítása + + Az XDM + beállításait tartalmazó + könyvtár a + /usr/local/lib/X11/xdm. Itt + találhatjuk meg azokat az állományokat, + amelyek megváltoztatásával + befolyásolhatjuk az XDM + megjelenését és viselkedését. + Általában a következõ + állományok bukkannak fel ezen a helyen: + + + + + + Állomány + Leírás + + + + + + Xaccess + A kliens hitelesítésének + szabályrendszere. + + + + Xresources + Az X erõforrásainak + alapértelmezett értékei. + + + + Xservers + Az ismert távoli és helyi X + szerverek listája. + + + + Xsession + A bejelentkezések során + lefutó alapértelmezett szkript. + + + + Xsetup_* + A bejelentkezõ felület + indítása elõtt + indítandó alkalmazásokkal + kapcsolatos szkript. + + + + xdm-config + A gépen futó összes X szerver + globális + beállításai. + + + + xdm-errors + A szerver által jelentett + hibák. + + + + xdm-pid + A jelenleg futó XDM-hez tartozó + azonosító. + + + + + + Ebben a könyvtárban találunk még + néhány olyan programot és szkriptet, + amelyekkel be tudjuk állítani a munkaasztalunkat + az XDM futása alatt. Ezen + állományok céljait egyenként + ismertetni fogjuk. A + felépítésükrõl és + használatukról az &man.xdm.1; man oldala + árul el többet. + + Az alapértelmezett beállítás egy + téglalap alakú bejelentkezõ ablak, aminek + tetején nagy betûkkel a gép neve + olvasható, valamint alatta a Login: + (felhasználói név) és + Password: (jelszó) mezõk + várnak kitöltésre. Ez egy remek + kiindulási alap az + XDM-képernyõ + kinézetének + megváltoztatásához. + + + Xaccess + + Az XDM-mel szabályozott + X szerverek által használt protokoll az X + Display Manager Connection Protocol (XDMCP). Ez az + állomány tartalmazza a távoli + számítógépekrõl + érkezõ XDMCP-kapcsolatok + vezérlésére vonatkozó + szabályokat. Ezt a rendszer általában + figyelmen kívül hagyja, hacsak az + xdm-config állományban be + nem állítottuk a távoli + számítógépek + csatlakoztathatóságát. + Alapértelmezés szerint viszont semmilyen klienst + nem enged csatlakozni. + + + + + Xresources + + Ez tartalmazza a szerverválasztó és + bejelentkezõ képernyõ + alapértelmezéseit. + Segítségével a bejelentkeztetést + végzõ program kinézetét + változtathatjuk meg. Formátuma hasonló + az X11 dokumentációjában leírt + app-defaults állományhoz. + + + + + Xservers + + A szerverválasztó által + felkínálandó távoli X szerverek + felsorolását tartalmazza. + + + + + Xsession + + A felhasználó bejelentkezése + után ez az XDM-szkript fog + lefutni. Általában minden + felhasználóhoz tartozik egy saját + ~/.xsession szkript, ami ezt + felülbírálja. + + + + + Xsetup_* + + Ezek fognak automatikusan lefutni a + szerverválasztó vagy bejelentkeztetõ + felületek megjelenése elõtt. Minden + általunk használt X szerverhez tartozik egy + ilyen szkript, amelyek neve Xsetup_-al + kezdõdik és a helyi X szerver + sorszámával folytatódik + (például Xsetup_0). Ezek a + szkriptek általában egy-két programot, + mint például az xconsole, + indítanak el a háttérben. + + + + + xdm-config + + Az app-defaults nevû + állományéhoz hasonló alakban + tartalmaz beállításokat a program + által kezelt minden egyes X szerverhez. + + + + + xdm-errors + + Ebben található meg az + XDM által futtatni + próbált X szerverek kimenete. Itt + érdemes hibaüzenetek után kutatni, ha az + XDM által indított X + szerver valamiért megállna. Ezek az + üzenetek egyébként a + felhasználó + ~/.xsession-errors + állományába is + beíródnak. + + + + + + Hálózati X szerver futtatása + + Az X szerverünkhöz csak akkor tudnak + kívülrõl más felhasználók + is kapcsolódni, ha átírjuk a + hozzáférésre vonatkozó + szabályokat és engedélyezzük rajta a + kapcsolódást. Az alapértelmezett + szabályok nagyon óvatosak. Ha tehát + engedélyezni akarjuk a kívülrõl + érkezõ kapcsolódásokat, akkor ahhoz + elõször az xdm-config + állományból vegyük ki az alábbi + sort: + + ! SECURITY: do not listen for XDMCP or Chooser requests +! Comment out this line if you want to manage X terminals with xdm +DisplayManager.requestPort: 0 + + Ezután indítsuk újra az + XDM-et. Ne felejtsük el, hogy + az app-defaults állományokban a + megjegyzések ! + (felkiáltó)jellel kezdõdnek, nem pedig a + megszokott # (kettõskereszt)tel. A + fentieknél természetesen szigorúbb + hozzáférési szabályok is + szükségesek lehetnek — ezzel kapcsolatban + nézzük meg Xaccess + állományban szereplõ példákat, + illetve lapozzuk fel az &man.xdm.1; man oldalt. + + + + + Az XDM helyett + + Az alapértelmezett XDM + feladatát számos más program is + képes ellátni. Ezek közül az egyik a + kdm (a KDE + része), amire ebben a fejezetben még vissza fogunk + térni. A kdm + különféle vizuális effekteket és + egyéb kozmetikázást ígér, + valamint lehetõvé teszi a felhasználók + számára, hogy a bejelentkezés elõtt + kiválaszthassák a használni + kívánt ablakkezelõt. + + + + + + + + + Valentino + Vaschetto + Írta: + + + + + Munkakörnyezetek + + Ebben a szakaszban a &os;-n futó X-hez + elérhetõ különbözõ + munkakörnyezetekrõl (desktop environment) lesz + szó. Maga a munkakörnyezet + elnevezés sok mindenre utalhat egy mezei + ablakkezelõtõl kezdve az asztali alkalmazások + teljes garmadájáig, ahogy igaz ez a + KDE vagy a + GNOME esetében is. + + + A GNOME + + + Röviden a GNOME-ról + + GNOME + + A GNOME egy + felhasználóbarát munkakörnyezet, + aminek segítségével a + felhasználók számára + gyerekjáték a + számítógép használata + és beállítása. A + GNOME-ban találhatunk egy + panelt (az alkalmazások indítására + és különféle állapotjelzõk + megjelenítéséhez), egy asztalt (ahova az + alkalmazások és az adatok kerülnek), + szabványos asztali eszközöket és + alkalmazásokat, valamint számos + konvenciót, aminek mentén az alkalmazások + könnyen együtt tudnak mûködni és + tartani egymással az összhangot. Más + operációs rendszerek vagy környezetek + ismerõi otthon érezhetik magukat ebben a + GNOME által nyújtott + vizuális környezetben. A &os; és a + GNOME kapcsolatáról + bõvebb információkat a &os; GNOME Projekt + honlapján találhatunk. Ezen az oldalon a + GNOME + telepítésérõl, + beállításáról és + karbantartásáról egy meglehetõsen + átfogó leírást olvashatunk. + + + + + A GNOME telepítése + + A programot könnyen fel tudjuk telepíteni + csomagból vagy a Portgyûjtemény + segítségével: + + A hálózatról a + GNOME csomagját + mindössze ennek a sornak a + beírásával fel tudjuk + telepíteni: + + &prompt.root; pkg_add -r gnome2 + + A portfa felhasználásával pedig a + GNOME-ot így tudjuk + forrásból telepíteni: + + &prompt.root; cd /usr/ports/x11/gnome2 +&prompt.root; make install clean + + Miután a GNOME-ot + sikerült feltelepítenünk, meg kell mondanunk + az X szervernek, hogy az alapértelmezett + ablakkezelõ helyett a GNOME-ot + indítsa el. + + A GNOME-ot legkönnyebben a + GDM, vagyis a GNOME Display Manager + használatával indíthatjuk el. A + GDM a + GNOME részeként + települ (habár alapból nincs bekapcsolva), + és úgy tudjuk aktiválni, ha + /etc/rc.conf állományba + beírjuk a gdm_enable="YES" sort. + Újraindítás után a + GNOME automatikusan elindul + bejelentkezéskor — nincs szükség + további beállításra. + + A GNOME-ot parancssorból + is elindíthatjuk, ha hozzá megfelelõen + beállítjuk az .xinitrc + nevû állományt. Ha már van egy + saját .xinitrc + állományunk, akkor nincs más + teendõnk, mint átírni az aktuális + ablakkezelõnket hívó sort a + /usr/local/bin/gnome-session sorra. + Ha nem csináltunk elõtte semmilyen + különleges dolgot az említett + konfigurációs állománnyal, akkor + elegendõ csak ennyit beírnunk: + + &prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrc + + Ezt követõen írjuk be a + startx parancsot, és a + GNOME munkakörnyezete fog + elindulni. + + + Ha az XDM-hoz hasonló + régebbi bejelentkeztetõ képernyõt + használunk, ez a módszer nem fog + mûködni. Helyette hozzunk létre egy + .xsession nevû futtatható + állományt, amely ezt a parancsot tartalmazza. + Ehhez nyissuk meg és cseréljük ki benne a + korábbi ablakkezelõnk + hívását a + /usr/local/bin/gnome-session + utasításra: + + + &prompt.user; echo "#!/bin/sh" > ~/.xsession +&prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession +&prompt.user; chmod +x ~/.xsession + + Megcsinálhatjuk azt is, hogy a + bejelentkezéskor választható legyen az + ablakkezelõ. A + KDE-rõl bõvebben címû szakaszban + látni fogjuk, hogyan tudjuk ezt a a + KDE bejelentkeztetõ + képernyõje, a kdm + esetén beállítani. + + + + + Élsimított betûtípusok a + GNOME-mal + + + GNOME + élsimított betûk + + + Az X11 a RENDER + kiterjesztésén keresztül ismeri az + élsimítást. A + (GNOME által + használt) GTK+ 2.0 és késõbbi + változatai is képesek ezt a + lehetõséget kihasználni. Az + élsimítás beállítása + a ban olvasható. Így + tehát a GNOME legfrissebb + verzióiban már használhatjuk az + élsimítást. Ehhez menjünk az + Applications + Desktop Preferences + Font (a magyar + változatban ez az + Alkalmazások A + munkaasztal beállításai + Betûk ) + menübe, majd válasszuk vagy a Best + shapes (A legszebb + betûforma), Best + contrast (A legjobb + kontraszt) vagy a Subpixel smoothing + (LCDs) (Simítás a + képponton belül (LCD)) + menüpontot. A GTK+-ot használó, de + közvetlenül a GNOME-hoz + nem tartozó alkalmazások esetén pedig + állítsuk be a GDK_USE_XFT + környezeti változót 1 a + program indítása elõtt. + + + + + + A KDE + + KDE + + + Röviden a KDE-rõl + + A KDE egy könnyen + használható modern munkakörnyezet. + Ízelítõül a + KDE felhasználók + számára felkínált + lehetõségei közül: + + + + Gyönyörû, korszerû + munkafelület + + + + Az asztal hálózaton keresztüli + transzparens kezelése + + + + A KDE asztal és + alkalmazásainak használatában egy + beépített súgórendszer + segíti a kényelmes és + összefüggõ közlekedést + + + + A KDE + alkalmazásainak összehangolt kinézete + és hangulata + + + + Szabványosított menük és + eszköztárak, + billentyû-hozzárendelések, + színsémák stb. + + + + Honosítás: a + KDE több, mint 40 nyelven + elérhetõ + + + + Központosított, összehangolt, + párbeszédablak alapú + asztalbeállítás + + + + Számos hasznos + KDE-alkalmazás + + + + A KDE-hez egy + Konqueror nevû + böngészõ is tartozik, mely a többi + &unix;-os böngészõ komoly ellenfelének + bizonyul. A KDE-rõl többet + a KDE honlapján + olvashatunk. A KDE &os;-re + vonatkozó tudnivalóiról és a + hozzátartozó anyagokról a &os; KDE csapat + honlapján találhatunk + információkat. + + + + + A KDE telepítése + + Ahogy a GNOME és a + többi más munkakörnyezet esetében is, + maga a program könnyen telepíthetõ + csomagból vagy a Portgyûjtemény + segítségével is: + + A KDE csomagját + hálózaton keresztül így tudjuk + telepíteni: + + &prompt.root; pkg_add -r kde + + A &man.pkg.add.1; magától letölti az + alkalmazás legfrissebb verzióját. + + Ha a KDE-t + forrásból akarjuk telepíteni, + használjuk a portfát: + + &prompt.root; cd /usr/ports/x11/kde3 +&prompt.root; make install clean + + Miután a KDE-t sikeresen + telepítettük, tudatnunk kell az X szerverrel, hogy + az alapértelmezett ablakkezelõ helyett ezt + indítsa el. Ezt az .xinitrc + állomány + módosításával érhetjük + el: + + &prompt.user; echo "exec startkde" > ~/.xinitrc + + Mostantól pedig mindig + KDE lesz az asztalunk, amikor az X + Window Systemet elindítjuk a startx + paranccsal. + + Ha az XDM-et használjuk + bejelentkeztetõ képernyõként, a + beállítást némileg + máshogyan kell elvégeznünk. Ekkor az + iménti helyett az .xsession + állományt kell szerkesztenünk. A + kdm-re vonatkozó + utasítások a fejezet késõbbi + részében találhatóak meg. + + + + + + A KDE-rõl bõvebben + + Most, miután telepítettük a + KDE-t a rendszerünkre, a dolgok + többsége felfedezhetõ a + különféle súgók + segítségével vagy egyszerûen a + menükre történõ kattintással. A + &windows;-hoz vagy &mac;-hez szokott felhasználók + itt most már egészen otthonosan érezhetik + magukat. + + A KDE-hez a legtöbb + segítséget a saját internetes + dokumentációjából nyerhetjük. + A KDE a saját + böngészõjét, a + Konquerort tartalmazza, valamint + tucatnyi ügyes alkalmazást és temérdek + mennyiségû dokumentációt. A szakasz + további részeiben ezért inkább olyan + problémákkal foglalkozunk, amelyek + megoldásai céltalan kóborlással + már nem fedezhetõek fel olyan + egyszerûen. + + + A KDE bejelentkeztetõ képernyõje + + + KDE + bejelentkeztetõ + képernyõ + + + Egy többfelhasználós rendszer + karbantartója minden bizonnyal szeretné + üdvözölni rendszere felhasználóit + egy grafikus bejelentkezõ képernyõn + keresztül. A korábbiakban erre a célra az + XDM-et javasoltuk. Azonban a + KDE erre ajánl egy + alternatívát, a + kdm-et, amely jóval + látványosabb és sokoldalúbb. Ez + különösen abban merül ki, hogy a + felhasználók (egy menün keresztül) ki + tudják választani a bejelentkezés + után használni kívánt + munkakörnyezetet (legyen az + KDE, + GNOME vagy bármi + más). + + A kdm + használatához az /etc/ttys + állományban található + ttyv8 bejegyzést kell némileg + átalakítanunk. Valahogy így: + + ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure + + + + + + Az XFce + + + Röviden az XFce-rõl + + Az XFce a + GNOME által használt + GTK+-ra épülõ munkakörnyezet, amely + azonban sokkal könnyedebb és azoknak + készült, akik egy szimpla, hatékony, + mindazonáltal könnyen használható + és beállítható munkafelületre + vágynak. Látvány + szempontjából leginkább a kereskedelmi + rendszereken megtalálható + CDE-hez hasonlítható. + Íme az XFce + néhány jellemzõje: + + + + Egyszerû, könnyen kezelhetõ + munkaasztal + + + + Tökéletesen konfigurálható + egérrel, drag-and-droppal + (vonszolás) stb. + + + + A menükkel, kisalkalmazásokkal és + alkalmazásindítókkal tarkított + fõpanelje hasonló a + CDE paneljéhez + + + + Beépített ablak-, + állomány- és hangkezelõvel, + GNOME kompatibilitási + modullal és még sok minden mással + rendelkezik + + + + Használhatunk témákat (mivel + GTK+-ra épül) + + + + Gyors, könnyû és hatékony: + ideális régebbi vagy lassabb, esetleg + kevés memóriával rendelkezõ + számítógépekhez + + + + Az XFce-rõl + részletesebben az XFce + honlapján olvashatunk. + + + + + Az XFce telepítése + + Az XFce-hez tartozik + bináris csomag (legalább is az + leírás készítésének + pillanatában). Ezt a következõ módon + tudjuk telepíteni: + + &prompt.root; pkg_add -r xfce4 + + Vagy a portgyûjtemény + használatával forrásból is + felrakhatjuk: + + &prompt.root; cd /usr/ports/x11-wm/xfce4 +&prompt.root; make install clean + + Ezután világosítsuk fel az X + szervert, hogy a következõ indulása + során mi már az + XFce-t kívánjuk + használni. Ehhez csak ennyit kell tennünk: + + &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc + + Így az X következõ + indításakor már az + XFce lesz a + munkakörnyezetünk. Ahogy azt már + korábban is jeleztük, az + XDM használata során + a GNOMEban leírtak + szerint létre kell hoznunk az + .xsession állományt, + azonban ezúttal a + /usr/local/bin/startxfce4 parancs + használatával. Vagy a kdm-rõl + szóló szakaszban tárgyaltak mentén + beállíthatjuk úgy a bejelentkeztetõ + képernyõt, hogy a bejelentkezés elõtt + válasszuk ki a munkakörnyezetet. + + + + + + + + -- cgit v1.2.3