diff --git a/hu_HU.ISO8859-2/articles/linux-users/article.sgml b/hu_HU.ISO8859-2/articles/linux-users/article.sgml index dea32735a1..ac8e228eab 100644 --- a/hu_HU.ISO8859-2/articles/linux-users/article.sgml +++ b/hu_HU.ISO8859-2/articles/linux-users/article.sgml @@ -1,843 +1,831 @@ %articles.ent; ]>
&os; gyorstalpaló &linux; felhasználók számára John Ferrell 2008 A FreeBSD Dokumentációs Projekt $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.linux; &tm-attrib.intel; &tm-attrib.redhat; &tm-attrib.unix; &tm-attrib.general; Ez a cikk azért íródott, hogy röviden megismertesse a &os; alapjait a középhaladó-haladó &linux; felhasználókkal. Fordította: &a.hu.pgj; Bevezetés Ebben a leírásban a &os; és a &linux; közti alapvetõ eltéréseket igyekszünk szemléltetni, aminek révén a középhaladó és haladó &linux; felhasználók pillanatok alatt bepillantást nyerhetnek a &os; alapjaiba. Ez egyszerûen csak egy szakmai jellegû bevezetés, és nem foglalkozik a két rendszer felépítése közti filozófiai különbségekkel. A leírás feltételezi, hogy korábban már telepítettük a &os; rendszert. Amennyiben ezt még nem tettük volna meg, vagy segítségre lenne szükségünk a telepítésben, akkor olvassuk el a &os; kézikönyv A &os; telepítése + url="&url.base;/doc/hu/books/handbook/install.html">A &os; telepítése címû fejezetét. Parancsértelmezõk: hova tûnt a Bash? A Linuxról áttérõ felhasználók gyakran meglepõdnek azon, hogy a &os;-ben nem a Bash az alapértelmezett parancsértelmezõ. Sõt, a Bash még az alaprendszerben sem található meg. Helyette a &man.tcsh.1; az alapértelmezett parancsértelmezõ a &os;-ben. Természetesen a Bash, a többi szintén közkedvelt parancsértelmezõhöz hasonlóan megtalálható a &os; Csomag- és Portgyûjteményében. Ha más parancsértelmezõket is telepítettünk, akkor a &man.chsh.1; parancs segítségével tudjuk megváltoztatni az alapértelmezett parancsértelmezõnket. A root felhasználó alapértelmezett parancsértelmezõjének megváltoztatását azonban nem javasoljuk. Ennek oka, hogy azok a parancsértelmezõk, amelyek nem részei az alaprendszernek, általában a /usr/local/bin vagy a /usr/bin könyvtárakban találhatóak, és bizonyos - vészhelyzetekben elõfordulhat, hogy az ezeket az + vészhelyzetekben elõfordulhat, hogy ezeket az állományrendszereket nem tudjuk csatlakoztatni. Ilyen esetekben a root sem lesz képes elérni a saját alapértelmezett parancsértelmezõjét, amivel lényegében megakadályozzuk, hogy be tudjon jelentkezni. Erre a célra a root felhasználó egy alternatíváját, a toor felhasználót hozták létre, amelyet az alaprendszeren kívül található parancsértelmezõkkel is használhatunk. A toor hozzáférésérõl a GYIK biztonsági kérdésekkel foglalkozó részében tudhatunk meg többet (angolul). Csomagok és portok: szoftverek telepítése &os; alatt A szoftverek telepítésének hagyományos &unix;-os megoldásain (a forrás letöltésén, kitömörítésén, a forráskód módosításán és lefordításán) túl az alkalmazások telepítésének további két módját is felkínálja a &os;: ezek a csomagok és a portok. A rendszerhez elérhetõ összes port és csomag teljes listáját ezen a címen érhetjük el. Csomagok A csomagok lényegében elõre lefordított alkalmazások, amelyek megfelelnek a Debian/Ubuntu rendszerekben megtalálható .deb, vagy a Red Hat/Fedora rendszerekben megtalálható .rpm állományoknak. A csomagok a &man.pkg.add.1; segítségével telepíthetõek. Például az alábbi parancs az Apache 2.2 alkalmazást rakja fel: &prompt.root; pkg_add /tmp/apache-2.2.6_2.tbz Az kapcsolóval arra utasítjuk a &man.pkg.add.1; programot, hogy magától töltse le és telepítse a csomagot, valamint annak függõségeit: &prompt.root; pkg_add -r apache22 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done. [nyissz] To run apache www server from startup, add apache22_enable="YES" in your /etc/rc.conf. Extra options can be found in startup script. Ha a &os; valamelyik kiadását használjuk (6.2, 6.3, 7.0 stb., tehát CD-rõl telepítettük), akkor a pkg_add -r az adott kiadáshoz tartozó csomagokat fogja letölteni. Ezek a csomagok azonban nem feltétlenül az alkalmazás legújabb verziójához tartoznak. Ezt az alapértelmezett viselkedést felül tudjuk bírálni, ha a PACKAGESITE - környezeti változót a értékre állítjuk, és így például a 6.X sorozathoz készült legfrissebb csomagokat tölthetjük le. A &os; különbözõ változatairól a Válasszuk ki a nekünk igazán megfelelõ &os; verziót! + url="&url.base;/doc/hu/articles/version-guide/">Válasszuk ki a nekünk igazán megfelelõ &os; verziót! címû cikkben olvashatunk bõvebben. A csomagok használatával kapcsolatban a &os; kézikönyvében kaphatunk részletesebb felvilágosítást, lásd A csomagrendszer használata. - + url="&url.base;/doc/hu/books/handbook/packages-using.html">A csomagrendszer használata. Portok A &os;-ben az alkalmazások telepítésének másik módja a Portgyûjtemény használata. A Portgyûjtemény lényegében Makefile állományok és javítások gyûjteménye, amelyek a különféle alkalmazások forráskódját készítik fel arra, hogy a &os;-n is használhatóak legyenek. Amikor telepítünk egy portot, akkor a rendszer elõször letölti az alkalmazás forráskódját, elvégzi a szükséges módosításokat, lefordítja a forrást és végül telepíti az alkalmazást (valamint mindezt megteszi az összes függõsége esetében). A Portgyûjtemény, vagy gyakran egyszerûen csak a portfa, a /usr/ports könyvtárban található. Itt nyilván feltételezzük, hogy a Portgyûjteményt is kiválasztottuk a &os; telepítése során. Amennyiben a Portgyûjteményt még nem telepítettük volna, a &man.sysinstall.8; segítségével feltehetjük a telepítõlemezrõl, vagy esetleg a &man.csup.1;, illetve &man.portsnap.8; használatával letölthetjük a &os; Projekt valamelyik szerverérõl. A Portgyûjtemény telepítésének részletes bemutatása megtalálható a kézikönyv 4.5.1. szakaszában. + url="&url.base;/doc/hu/books/handbook/ports-using.html">4.5.1. szakaszában. A telepítéshez (általában) csak be kell lépnünk az adott port könyvtárába és el kell indítanunk a fordítást. A következõ példában az Apache 2.2 alkalmazást telepítjük a Portgyûjteménybõl: &prompt.root; cd /usr/ports/www/apache22 &prompt.root; make install clean A portok alkalmazásának egyik legnagyobb elõnye, hogy a szoftverek telepítése során testre tudjuk szabni azok beállításait. Például amikor az Apache 2.2 alkalmazást portként telepítjük, a WITH_LDAP &man.make.1; változó megadásával engedélyezhetjük a mod_ldap használatát: &prompt.root; cd /usr/ports/www/apache22 &prompt.root; make WITH_LDAP="YES" install clean A Portgyûjteménnyel kapcsolatos további információk tekintetében olvassuk el a &os; kézikönyv A Portgyûjtemény használata + url="&url.base;/doc/hu/books/handbook/ports-using.html">A Portgyûjtemény használata címû szakaszát. - Portok vagy csomagok, mégis melyiket használjam? A csomagok tulajdonképpen elõre lefordított portok, ezért igazából csak abban van köztük különbség, hogy forrásból (portok) vagy binárisan telepítjük-e az alkalmazásokat. Mindegyik módszernek megvannak a maga elõnyei: Csomagok (bináris) Gyorsabb telepítés (a nagyobb alkalmazások lefordítása viszont nagyon sokáig is eltarthat). Nem szükséges megértenünk a szoftverek lefordításának mikéntjét. Nem kell fordítóprogramokat telepítenünk a rendszerünkre. Portok (forrás) A telepítés beállításait tetszõlegesen szabályozhatjuk. (A csomagok általában szabványos beállításokkal készülnek. A portok esetében azonban lehetõségünk van ezeket kedvünk szerint megváltoztatni, mint például további modulok fordítását - kérni vagy átállítani a + kérni, vagy átállítani a telepítés alapértelmezett helyét.) Ha késztetést érzünk, akkor akár a saját javításainkat is beletehetjük a forráskódba. Ha nincsenek különös igényeink, akkor a csomagok minden bizonnyal tökéletesen megfelelnek számunkra. Amikor viszont valamit külön be szeretnénk állítani, akkor ahhoz a portokat érdemes választanunk. (Ne felejtsük el azonban, hogy ha elsõsorban a csomagokhoz ragaszkodunk, de mégis módosítanunk kell valamit bennük, akkor a make package parancs kiadásával a portokból is tudunk csomagot készíteni, majd átmásolni azokat más szerverekre.) - A rendszer indítása: hova lettek a futási szintek? A &linux; a SysV rendszerindítási sémáját alkalmazza, miközben a &os; a hagyományos BSD típusú &man.init.8; megoldást. A BSD típusú &man.init.8; esetén nincsenek futási szintek és nem létezik /etc/inittab állomány. Helyette az &man.rc.8; vezérli a rendszer indítását. Az /etc/rc szkript beolvassa az /etc/defaults/rc.conf és /etc/rc.conf állományokat, - amibõl megállapítja, hogy milyen + amelyekbõl megállapítja, hogy milyen szolgáltatásokat indítson el. A megadott szolgáltatásokat ezután az /etc/rc.d és a /usr/local/etc/rc.d könyvtárakban található megfelelõ indítószkriptek segítségével indítja el. Ezek a szkriptek hasonlóak a &linux; rendszereken az /etc/init.d könyvtárban található szkriptekhez. A szolgáltatások indításáért felelõs szkriptek miért két különbözõ helyen találhatóak? Az /etc/rc.d könyvtárban található szkriptek az alaprendszer részei (mint például a &man.cron.8;, &man.sshd.8;, &man.syslog.3; és a többi). A /usr/local/etc/rc.d könyvtárban pedig a felhasználó által telepíthetõ alkalmazások, például az Apache, Squid stb. szkriptjei találhatóak. Mi a különbség az alaprendszerben található és a felhasználó által telepített alkalmazások között? A &os;-t egy összefüggõ operációs rendszerként fejlesztik. Ezt másképpen úgy lehetne fogalmazni, hogy a rendszermagot, a rendszerszintû függvénykönyvtárakat és a hozzájuk tartozó programokat (mint például a &man.ls.1;, &man.cat.1;, &man.cp.1; stb.) együtt fejlesztik és adják ki. Ezt nevezzük az alaprendszernek. A felhasználó által telepíthetõ alkalmazások lényegében azok, amelyek nem részei ennek az alaprendszernek, például az Apache, X11, Mozilla Firefox stb. Ezek általában a &os; Csomag- és Portgyûjteményébõl telepíthetõek. Mivel a felhasználók által telepített alkalmazásokat igyekszünk elkülöníteni az alaprendszertõl, ezért ezek a /usr/local/ könyvtárba kerülnek. Ennek következtében a felhasználók által telepített binárisok a /usr/local/bin könyvtárban, míg a hozzájuk tartozó konfigurációs állományok a /usr/local/etc könyvtárban találhatóak, és így tovább. A szolgáltatásokat az /etc/rc.conf állományban (lásd &man.rc.conf.5;) tudjuk engedélyezni a SzolgáltatásNév_enable="YES" sor megadásával. A rendszer alapértelmezett beállításait az /etc/defaults/rc.conf - állományban találhatjuk meg, amelyeket az + állományban találhatjuk meg, ezeket az /etc/rc.conf állományban tudjuk felülbírálni. Az alkalmazásokhoz tartozó szolgáltatások engedélyezésének lépéseihez pedig a telepítésük után ne felejtsük el átolvasni a hozzájuk tartozó dokumentációt. Az /etc/rc.conf állományból származó most következõ rövid kódrészlet az &man.sshd.8; és Apache 2.2 szolgáltatásokat engedélyezi, valamint az Apache számára beállítja az SSL használatát. # az SSHD engedélyezése sshd_enable="YES" # az Apache és benne az SSL támogatásának engedélyezése apache22_enable="YES" apache22_flags="-DSSL" Miután az /etc/rc.conf állományban engedélyeztük a - szolgáltatásokat, a paranccsorból el is + szolgáltatásokat, a parancssorból el is tudjuk indítani ezeket (a rendszer újraindítása nélkül): &prompt.root; /etc/rc.d/sshd start Ha egy szolgáltatást nem engedélyeztünk, akkor a parancssorból a paraméter megadásával tudjuk elindítani: &prompt.root; /etc/rc.d/sshd forcestart - A hálózat beállítása Hálózati interfészek A hálózati csatolófelületekre a Linux esetén alkalmazott általános ethX alakú azonosítók helyett a &os; az adott hálózati kártya meghajtójának nevével és utána egy sorszámmal hivatkozik. Az &man.ifconfig.8; itt látható kimenetében két &intel; Pro 1000 hálózati kártya jelenik meg (em0 és em1): &prompt.user; ifconfig em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=b<RXCSUM,TXCSUM,VLAN_MTU> inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255 ether 00:50:56:a7:70:b2 media: Ethernet autoselect (1000baseTX <full-duplex>) status: active em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=b<RXCSUM,TXCSUM,VLAN_MTU> inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255 ether 00:50:56:a7:03:2b media: Ethernet autoselect (1000baseTX <full-duplex>) status: active - Az IP-cím beállítása Az interfészekhez az &man.ifconfig.8; paranccsal tudunk IP-címet rendelni. Az IP-címek beállítása azonban csak akkor marad meg az újraindítást követõen is, ha felvesszük az /etc/rc.conf állományba. A most következõ példában megadunk egy hálózati nevet, IP-címet és egy alapértelmezett átjárót: hostname="szerver1.minta.com" ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0" defaultrouter="10.10.10.1" DHCP esetén használjuk a következõt: hostname="szerver1.minta.com" ifconfig_em0="DHCP" Tûzfalak Hasonlóan a Linuxban található IPTABLES megoldáshoz, a &os; is kínál fel rendszermagszintû tûzfalazást. A &os; jelen pillanatban három tûzfalat támogat: - IPFIREWALL - IPFILTER - PF + IPFIREWALL + IPFILTER + PF - Az IPFIREWALL avagy + Az IPFIREWALL, avagy IPFW (az IPFW szabályrendszereit az &man.ipfw.8; paranccsal tudjuk kezelni) a &os; fejlesztõi által készített és karbantartott tûzfal. A forgalomszabályozás megvalósításához és különbözõ típusú hálózati kapcsolatok szimulációjához az IPFW kiegészíthetõ a &man.dummynet.4; használatával. Ez az IPFW szabály engedélyezi a beérkezõ SSH-kapcsolatokat: ipfw add allow tcp from any to me 22 in via $ext_if Az IPFILTER tûzfalat Darren Reed dolgozta ki. Nem csak &os; alatt találkozhatunk vele, több operációs rendszerre is portolták, többek közt NetBSD-re, OpenBSD-re, SunOS-re, HP/UX-ra és Solarisra. Ez az IPFILTER parancs engedélyezi a beérkezõ SSH-kapcsolatokat: pass in on $ext_if proto tcp from any to any port = 22 Az utolsó tûzfal, a PF, - az OpenBSD Projekt fejlesztése. Az + az OpenBSD Projekt fejlesztése. A PF eredetileg az IPFILTER - leváltására készült. Emiatt az + leváltására készült. Emiatt a PF szabályainak megadási módja nagyon hasonlít az IPFILTER esetében megismertekhez. A minõségalapú (QoS) forgalomszabályozás létrehozásához a PF az &man.altq.4; megoldásával egészíthetõ ki. Ez a PF parancs engedélyezi a beérkezõ SSH-kapcsolatokat: pass in on $ext_if inet proto tcp from any to ($ext_if) port 22 - A &os; frissítése A &os; rendszer háromféleképpen frissíthetõ: forráskódból, binárisan és telepítõlemezek használatával. A forráskódon keresztüli frissítés ugyan a legbonyolultabb ezek közül, azonban ez kínálja fel egyben a legnagyobb rugalmasságot is. Ennek során szinkronizálnunk kell a &os; forráskódjának nálunk levõ (helyi) másolatát a &os; CVS (Concurrent Versioning System) - szervereivel. Miután ezt megtörtént, le tudjuk - fordítani a rendszermagot és a - hozzá tartozó programokat. A források - frissítésével kapcsolatban olvassuk el + szervereivel. Miután ez megtörtént, le tudjuk + fordítani a rendszermagot és a hozzá + tartozó programokat. A források + frissítésével kapcsolatban olvassuk el a &os; kézikönyv frissítésrõl + url="&url.base;/doc/hu/books/handbook/updating-upgrading.html">frissítésrõl szóló fejezetét. A bináris frissítés a &linux; típusú rendszereken elérhetõ yum vagy apt-get parancsok esetén megszokottakhoz hasonló. A &man.freebsd-update.8; parancs letölti a frissítéseket és telepíti ezeket. Ez a frissítési folyamat a &man.cron.8; használatával ütemezhetõ. Amikor a &man.cron.8; segítségével ütemezzük a frissítéseket, a &man.crontab.1; állományban lehetõség szerint a freebsd-update cron parancsot használjuk, ezáltal igyekezzünk csökkenteni annak valószínûségét, hogy egyszerre több számítógép is ugyanakkor terhelje a szervert. 0 3 * * * root /usr/sbin/freebsd-update cron Az utolsó frissítési módszer, a telepítõlemezek használata lényegében egy egyértelmû folyamat. Indítsuk el számítógépünket a - telepítõlemezrõl és a + telepítõlemezrõl, és a telepítõben válasszuk a frissítés (upgrade) opciót. - procfs: eltûnt, de nem nyomtalanul A &linux; alatt a /proc/sys/net/ipv4/ip_forward használatával tudjuk megmondani, hogy az IP-csomagok továbbítása engedélyezett-e rendszerünkben. Mivel a &man.procfs.5; a &os; jelenlegi verzióiban már elavultnak számít, ezért ezt a &man.sysctl.8; paranccsal nézhetjük meg a rendszer egyéb beállításai mellett. (A sysctl viszont &linux; alatt is egyaránt megtalálható.) Ha az IP-csomagok továbbításáról szóló példánál maradunk, akkor - ezt az alábbi módon kérdezhetjük le, + az alábbi módon kérdezhetjük le, hogy engedélyezett-e a &os; rendszerünkön: &prompt.user; sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 0 Az paraméter megadásával a rendszer összes jelenlegi beállítását le tudjuk kérdezni: &prompt.user; sysctl -a kern.ostype: FreeBSD kern.osrelease: 6.2-RELEASE-p9 kern.osrevision: 199506 kern.version: FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:07:33 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC kern.maxvnodes: 17517 kern.maxproc: 1988 kern.maxfiles: 3976 kern.argmax: 262144 kern.securelevel: -1 kern.hostname: server1 kern.hostid: 0 kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 } kern.posix1version: 200112 ... Bizonyos sysctl-értékek írásvédettek. Adódhatnak olyan alkalmak, amikor mégis szükségünk lehet a procfs használatára, mint például régi szoftverek futtatása, a rendszerhívások nyomkövetése a &man.truss.1; segítségével, vagy a bináris Linux kompatibilitás + url="&url.base;/doc/hu/books/handbook/linuxemu.html">bináris Linux kompatibilitás használata. (Noha a bináris Linux kompatibilitás egy saját procfs állományrendszert, egy &man.linprocfs.5; rendszert használ.) A procfs típusú állományrendszerek csatlakoztatásához a következõt kell megadnunk az /etc/fstab állományban: proc /proc procfs rw,noauto 0 0 A beállítás megadásával megakadályozzuk, hogy a /proc a rendszerindítás során magától csatlakoztatódjon. A procfs típusú állományrendszereket így lehet - csaltkoztatni: + csatlakoztatni: &prompt.root; mount /proc - Gyakori parancsok A csomagok kezelése Linuxos parancs (Red Hat/Debian) A &os;-s megfelelõje Leírás yum install csomag / apt-get install csomag pkg_add -r csomag A csomag telepítése egy távoli számítógéprõl rpm -ivh csomag / dpkg -i csomag pkg_add -v csomag Csomag telepítése rpm -qa / dpkg -l pkg_info A telepített csomagok megjelenítése - A rendszer kezelése Linuxos parancs A &os;-s megfelelõje Leírás lspci pciconf A PCI-os eszközök megjelenítése lsmod kldstat A betöltött rendszermagmodulok felsorolása modprobe kldload / kldunload Modulok betöltése és eltávolítása strace truss A rendszerhívások nyomkövetése - Lezárás Bízunk benne, hogy ez a leírás eleget mutatott be ahhoz, hogy elkezdjünk ismerkedni a &os;-vel. Ha az érintett témák még jobban - érdekelnek minket vagy olyanról szeretnénk + érdekelnek minket, vagy olyanról szeretnénk többet megtudni, ami itt nem szerepelt, akkor mindenképpen olvassunk bele a &os; kézikönyvbe. - + url="&url.base;/doc/hu/books/handbook/index.html">&os; kézikönyvbe. -