Cours d'administration Unix Cours d'administration Unix 1 Prsentation d'Unix 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A2 1 Prsentation d'Unix HIstorIque (AT&T, 8SD, ... CNUJLInux) UnIx proprIetaIre J UnIx LIbre UnIx en 2005 : The Open Croup Concept de IogIcIeI IIbre CNU et FSF Open Source CNUJLInux Les dIstrIbutIons de CNUJLInux AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A3 1971 1975 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1998 1999 UTS VersIon 6 (8eII Labs) UTS VersIon 7 (8eII Labs) en C UnIx 32 V 4.28SD SYSTEM V 1969 Ken Thompson : UNCS, assembIeur sur PDP7 18SD 38SD 4.38SD UTS : UnIx TImeSharIng (8eII Labs) SoIarIs2 UnIxWare 1.0 4.38SD Reno Net8SD 0.8 Free8SD 1.0 3868SD 8SD NetJ2 SUN OS 4.1.4 XENX 3.0 XENX 5.1 SCO XENX 5.3 SCO SYSTEM V R3 4.18SD SYSTEM (ATT) XENX 2.2 SUN OS 1 SUN OS 3.2 4.4 8SDLIte LInux 0.0.1 SYSTEM SVR4 (USL) Net8SD 1.0 Open8SD 2.3 Open8SD 2.0 Free8SD 2.0 Net8SD 1.1 Free8SD 3.0 Net8SD 1.3 LInux 1.2 LInux 2.2 SoIarIs7 MacOS X Historique AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A4 1 Prsentation d'Unix : UnIx proprIetaIreJIIbre The Open Group Possede Ia marque deposee UNIX PubIIe Ia norme SIngIe UNX SpecIIIcatIon (Integre Ies normes precedentes : XJOpen Company's XPC4, EEE's POSX Standards et SO C) http:JJwww.unIx.org 8M AX HP HPUX Tru64 UNX SCO UnIxWare SC RX SUN SOLARS Les prinipaux Unix propritaires Open8SD Free8SD Net8SD MacOS X Ies CNUJLInux Les prinipaux Unix Li!res AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A5 "ihard #ta$$man (chercheur au MT, auteur de gcc, Emacs ...) enonce cIaIrement Ie concept de $o%iie$ $i!re (Iree) ... un savoIr scIentIIIque doIt etre partage en Ie dIstrIbuant, ... Ies codes source doIvent etre IIbres d'acces ... Demarre Ie projet GNU (1984). 8ut : recreer un systeme d'expIoItatIon compIet (UnIxIIke), compose unIquement de IogIcIeIs IIbres. Cree Ia &#& (Free SoItware FundatIon, 1985) pour gerer Ie projet CNU. Remarque : Free dans Ia cuIture hacker sIgnIIIe IIbre, pas necessaIrement gratuIt ou non commercIaI 1 Prsentation d'Unix : Concept de LogIcIeI LIbre Ori%ines du Lo%iie$ Li!re ' RIchard StaIIman AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A6 PrIncIpe de base : Ie IIbre acces au code source acceIere Ie progres en matIere d'InIormatIque car I'InnovatIon depend de Ia dIIIusIon du code source La IIberte au sens CNU est deIInIe seIon quatre prIncIpes : IIberte d'executer Ie programme, pour tous Ies usages IIberte d'etudIer Ie IonctIonnement du programme, de I'adapter a ses besoIns IIberte de redIstrIbuer des copIes IIberte d'ameIIorer Ie programme et de pubIIer ses ameIIoratIons, pour en IaIre proIIter toute Ia communaute 1 Prsentation d'Unix : Ie projet CNU Le projet GNU www.gnu.org AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A7 AutorIse I'utIIIsateur a copIer et dIstrIbuer a voIonte Ie IogIcIeI qu'eIIe protege, pourvu qu'II n'InterdIse pas a ses paIrs de Ie IaIre aussI RequIert aussI que tout derIve d'un travaII pIace sous sa protectIon soIt IuI aussI protege par eIIe Quand Ia CPL evoque Ies IogIcIeIs IIbre, eIIe traIte de IIberte et non de gratuIte (un IogIcIeI CPL peut etre vendu) Remarque : en angIaIs Iree meIange gratuIte et IIberte (R. StaIIman precIse bIen : "Free as In speech, not as In beer") 1 Prsentation d'Unix : Ia IIcence CPL La IIcence GPL (CeneraI PubIIc IIcence) www.gnu.orgcopyIeItJgpI.htmI AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A8 Cree par StaIIman en 1984 CarantIt Ies 4 IIbertes IondamentaIes pour tous Ies utIIIsateurs (artIste, InIormatIcIen, ou quIconque produIt un travaII soumIs au droIt d'auteur) vIte de mettre Ies IogIcIeIs CNU dans Ie domaIne pubIIc (pas de protectIon) SpecIIIe que quIconque redIstrIbue Ie IogIcIeI, avec ou sans modIIIcatIons, doIt aussI transmettre Ia IIberte de Ies copIer et de Ies modIIIer Encourage et aIde Ies programmeurs (entreprIses, unIversItes) quI veuIent ajouter etJou contrIbuer a des ameIIoratIons des IogIcIeIs IIbres. Un IogIcIeI copyIeIt est d'abord decIare sous copyrIght, puIs on ajoute Ies condItIons de dIstrIbutIon et Ies IIbertes IegaIement IndIssocIabIes. 1 Prsentation d'Unix : Ie copyIeIt CPL Le op($e)t de Ia IIcence CPL www.gnu.orgJcopyIeIt AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A9 En 1997, ErIc Raymond (consuIutant), TIm O'ReIIIy et Larry AugustIn (presIdent de VA Research), Ieaders de Ia communaute du IogIcIeI IIbre, IntroduIsent Open #oure, pour IabeIIser Ies IogIcIeIs au code source ouvert Open #oure est moIns contraIgnant que Ia GPL Open #oure *e)inition est un descendant dIrect du *e!ian #oia$ Contrat Open #oure permet surtout une pIus grande promIscuIte Iors d'un meIange de code proprIetaIre avec du code open source 1 Prsentation d'Unix : I'Open Source L' Open #oure Initiati+e OS www.opensource.org AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A10 GNU,Linux ' 1 Prsentation d'Unix : CNUJLInux ntegre : Ie noyau Linux (cIone du systeme UnIx ecrIt par LInus TorvaIds et toute une equIpe de deveIoppeurs sur nterNet) des composants IogIcIeIs IIbres Issus du projet CNU (gcc, ...) DIsponIbIe pour toutes Ies pIateIormes (PC, statIon,cIuster, maInIrame, ...) La pIupart des edIteurs de soIutIons UNIX proprIetaIres Integrent GNU,Linux en rempIacement (8M, HP, SIIIconCraphIcs ...) L'admInIstratIon LInux est caIquee sur UNX System V (AT&T) C'est un Unix a part entIere Les sources du noyau LInux sont dIsponIbIes sur http',,---./erne$.or%, conIorme a Ia norme SIngIe UNX C'est un IogIcIeI IIbre dIstrIbue sous IIcence CPL AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A11 1 Prsentation d'Unix : dIstrIbutIons de LInux www.redhat.Ir socIete amerIcaIne Iondee en 1994. ceIebre pour avoIr IntroduIt Ie systeme Red hat Package Manager (RPM), de gestIon de paquets IogIcIeIs Iedora.redhat.com versIon grand pubIIque gratuIte de RedHat utIIIse Ie systeme de gestIon de paquets RPM AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A12 1 Prsentation d'Unix : dIstrIbutIons de LInux www.mandrIva.com LA dIstrIbutIon IranaIse par exceIIence Tres repandue dans Ie mIIIeu educatII, et en PMEJPM utIIIse Ie systeme de gestIon de paquets RPM www.noveII.comJIInuxJsuse socIete aIIemande Iondee a Nuremberg en 1993 rachetee en 2003 par I'edIteur de IogIcIeIs amerIcaIn NoveII utIIIse Ie systeme de gestIon de paquets RPM AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A13 1 Prsentation d'Unix : dIstrIbutIons de LInux www.debIan.org dIstrIbutIon Issue d'un eIIort communautaIre, Ie projet DebIan , et non d'une entreprIse dIstrIbutIon tres soIgnee et IngenIeuse austere a InstaIIer et a admInIstrer (deconseIIIee aux debutants Z) UtIIIse Ie systeme de gestIon de paquets de!ian www.ubuntuIr.org DIstrIbutIon popuIaIre a base debIan Iancee en 2004. Son nom provIent d'un ancIen mot bantou (Iangue d'AIrIque), ubuntu, sIgnIIIant HumanIte aux autres, ou encore ]e suIs ce que je suIs grce a ce que nous sommes tous AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A14 1 Prsentation d'Unix : dIstrIbutIons de LInux www.turboIInux.com La dIstrIbutIon de LInux majeure pour Ies pays d'AsIe(partIcuIIerement repandue en ChIne) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A15 1 PresentatIon d'UnIx 0 Prinipes de )ontionnement d'UNIX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A16 8oot et Iancement du noyau Processus init Services et dmons Les runlevels ScrIpts de Iancement des servIces ExempIe d'outII graphIque (MandrIva) 0 Prinipes de )ontionnement d'UNIX AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A17 Au boot Ie 1IO# execute Ie 21" (Master 8oot Reccord) sItue sur Ie premIer secteur (512 octets) du support bootabIe choIsI (dIsque, CD, cIeI US8, ...) 0 Prinipes de )ontionnement d'UNIX : Iancement du noyau Lanement du s(st3me ' !oot et har%ement du no(au Le 21" : scanne Ie dIsque pour trouver LA partItIon bootabIe (IIag) Iance Ie boot loader (chargeur de demarrage) du secteur de boot (premIer secteur) de Ia partItIon bootabIe Le bootloader : charge Ie noyau en memoIre et I'execute charge Ie ramdisk initrd.img en memoIre 2 bootIoader possIbIes: Li$o (LInux Loader) Gru! (Crand UnIIIed 8ootIoader) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A18 Une IoIs Ie noyau charge en memoIre, II Iance Ie premIer processus : Jbin/init init est Ie pere de tous Ies autres processus quI seront crees par I'appeI system fork() init IIt Ie IIchIer /etc/inittab pour savoIr : queI est Ie IIchIer a executer pour contInuer Ie chargement du systeme queI est Ie runlevel (nIveau d'executIon) par deIauIt comment Iancer Ies servIces pour un runlevel donne ... 0 Prinipes de )ontionnement d'UNIX : processus InIt Lanement du s(st3me ' !oot 45 init AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A19 0 Prinipes de )ontionnement d'UNIX : processus InIt ExpIe de IIchIer /etc/inittab Iormat des IIgnes id:runlevels:action:process Le nIveau d'executIon par deIaut Les nIveaux d'executIon possIbIes ActIon a IaIre sur I'evenement CTRLALTDEL Pour Ies nIveaux 2 a 5, actIver pIusIeurs consoIes en mode caractere # # inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Default runlevel. The runlevels used by Mandrakelinux are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now ... ... # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 ... ... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A20 0 Prinipes de )ontionnement d'UNIX : processus InIt ExpIe de IIchIer /etc/inittab Iormat des IIgnes id:runlevels:action:process Le nIveau d'executIon par deIaut Les nIveaux d'executIon possIbIes ActIon a IaIre sur I'evenement CTRLALTDEL Pour Ies nIveaux 2 et 3, actIver pIusIeurs consoIes en mode caractere # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt, 1 is single-user, 2-5 are multi-user, 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 ... ... l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 ... ... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A21 respa-n Le processus est redemarre a chaque IoIs qu'II se termIne -ait Le processus n'est demarre qu'une seuI IoIs !oot Le processus est execute pendant Ie demarrage du systeme initde)au$t IndIque Ie mode de demarrage une IoIs Ie systeme operatIonneI. SI aucun n'exIste, InIt demandera un runIeveI sur Ia consoIe s(sinit Le processus est execute pendant Ie demarrage du systeme. I est execute avant Ies entrees !oot ou !oot-ait tr$a$tde$ Le processus est execute Iorsque init reoIt Ie sIgnaI SCNT. (appuI sImuItane des touches CTRL+ALT+DEL) 0 Prinipes de )ontionnement d'UNIX : processus InIt ExempIes d'ations courantes pour Ie IIchIer inittab : AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A22 Apres Ie chargement du noyau, Ie scrIpt correspondant a s(sinit dans IIchIer inittab est charge : Mandrake : /etc/rc.d/rc.sysinit (1 scrIpt ~ 1300 IIgnes !!) DebIan : /etc/rc.d/rcS Iance Ies scrIpts /etc/rcS.d/S??* Ce scrIpt d'InItIaIIsatIon est charge de 2 tches IondamentaIes : charger Ies modu$es dans Ie noyau (gestIon des perIpherIques) demarrer Ies ser+ies en executant Ies processus DeIerred AuxIIIary ExecutIve MonItor (daemons) correspondant, en IranaIs : dmons 0 Prinipes de )ontionnement d'UNIX : servIces et demons Lanement du s(st3me ' !oot 45 init 45 modu$es,ser+ies AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A23 /s-apd swap memoIre <> dIsque /)$usd ecrIture physIque des donnees n)sd serveur IIchIers reseaux (NFS) portmap mIse en correspondance numero de ports TCPJP <> numero de processus RPC xinetd superserveur de gestIon des servIces reseau )tpd serveur de transIert de IIchIers (FTP) httpd serveur HTTP 0 Prinipes de )ontionnement d'UNIX : servIces et demons ExempIe de dmons : Les demons peuvent ImpIementer : un servIce noyau (/s-apd, ...) un servIce reseau (httpd, ...) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A24 Le mecanIsme de demarrage des ser+ies est caracterIstIque d'une dIstrIbutIon ( : IncompatIbIIItes entre dIstrIbutIons) : MandrIva, DebIan, RedHat, ... mecanIsme derIve d'UnIx System V SIackware, Free8SD, Net8SD, ... mecanIsme derIvee d'UnIx 8SD Ie repertoIre /etc/init.d contIent tous Ies scrIpts de gestIon des servIces InstaIIes (1 servIce <> 1 ou pIusIeurs dmon(s)) Ies IIgnes /etc/rc.d/rc x du IIchIer /etc/inittab determInent Ie Iancement des scrIpts pour Ie runIeveI x Le runlevel de I'actIon initdefault est Iance par Ie IIgne correspondante 0 Prinipes de )ontionnement d'UNIX : Ies runIeveIs Lanement du s(st3me ' !oot 45 init 45 ser+ies AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A25 Le runlevel (numero de 0 a 6) IIxe Ie repertoIre de demarrage des servIces : Mandrake > repertoIres /etc/rc.d/rc[0-6].d DebIan > repertoIres /etc/rc[0-6].d rcX.d : contIent des IIens symboIIques vers Ies scrIpts de gestIons des servIces quI sont dans Ie repertoIre : /etc/rc.d/init.d (Mandrake, + IIen symboIIque vers /etc/init.d) /etc/init.d (DebIan) Les IIens sont Iormes seIon Ia syntaxe : [S|K]XX<nom_du_script> # Iance Ie scrIpt avec I'argument start (demarrage du servIce) 6 Iance Ie scrIpt avec I'argument stop (arret du servIce) XX est un rang quI IIxe I'ordre dans IequeI Ies scrIpts sont Iances 0 Prinipes de )ontionnement d'UNIX : Ies runIeveIs Lanement du s(st3me ' !oot 45 init 45 ser+ies AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A26 #! /bin/sh ... ... # Now find out what the current and what the previous runlevel are. Argv1="$1" ... ... # Get first argument. Set new runlevel to this argument. [ -n "$argv1" ] && runlevel="$argv1" ... ... # First, run the KILL scripts. for i in /etc/rc$runlevel.d/K* ; do ... ... done # Now run the START scripts. for i in /etc/rc$runlevel.d/S* ; do check_runlevel "$i" || continue # Check if the subsystem is already up. subsys=${i#/etc/rc$runlevel.d/S??} [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] && continue # If we're in confirmation mode, get user confirmation if [ -f /var/run/confirm ]; then if [ "$subsys" = dm ]; then CONFIRM_DM=1 continue fi confirm $subsys case $? in 1) continue;; 2) rm -f /var/run/confirm;; esac fi ... ... ExtraIt du IIchIer /etc/rc.d/rc 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A27 ... ... # Get first argument. Set new runlevel to this argument. [ "$1" != "" ] && runlevel=$1 ... ... # First, run the KILL scripts. ... ... for i in /etc/rc$runlevel.d/K[0-9][0-9]* do # Check if the script is there. [ ! -f $i ] && continue # Stop the service. startup $i stop done fi # Now run the START scripts for this runlevel. for i in /etc/rc$runlevel.d/S* do [ ! -f $i ] && continue ... ... suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]} stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix # case "$runlevel" in 0|6) startup $i stop ;; *) startup $i start ;; esac done fi # eof /etc/init.d/rc ExtraIt du IIchIer /etc/init.d/rc 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A28 ExempIe de contenu du repertoIre /etc/rc5.d : 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement Demarrage du reseau Demarrage du servIce Son Demarrage de Ia bannIere de connexIon en mode graphIque (dIspIay manager) Demarrage du servIce antI spam Pour IInIr, Lancement du scrIpt de conIIguratIon IocaIe lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59dund -> ../init.d/dund* lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59hidd -> ../init.d/hidd* lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59pand -> ../init.d/pand* lrwxrwxrwx 1 root root 14 Jul 20 21:43 S01udev -> ../init.d/udev* lrwxrwxrwx 1 root root 19 Jul 20 21:46 S05harddrake -> ../init.d/harddrake* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S10network -> ../init.d/network* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S11portmap -> ../init.d/portmap* lrwxrwxrwx 1 root root 16 Jul 20 22:02 S12syslog -> ../init.d/syslog* lrwxrwxrwx 1 root root 17 Jul 20 21:43 S13partmon -> ../init.d/partmon* lrwxrwxrwx 1 root root 17 Jul 20 21:46 S14nfslock -> ../init.d/nfslock* lrwxrwxrwx 1 root root 14 Jul 20 21:42 S17alsa -> ../init.d/alsa* lrwxrwxrwx 1 root root 16 Jul 20 22:03 S17ypbind -> ../init.d/ypbind* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S18sound -> ../init.d/sound* lrwxrwxrwx 1 root root 13 Jul 20 21:44 S20xfs -> ../init.d/xfs* lrwxrwxrwx 1 root root 20 Jul 20 21:43 S24messagebus -> ../init.d/messagebus* lrwxrwxrwx 1 root root 19 Jul 20 21:46 S25bluetooth -> ../init.d/bluetooth* lrwxrwxrwx 1 root root 19 Jul 20 21:44 S25haldaemon -> ../init.d/haldaemon* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S25netfs -> ../init.d/netfs* lrwxrwxrwx 1 root root 17 Jul 20 21:47 S29numlock -> ../init.d/numlock* lrwxrwxrwx 1 root root 12 Jul 20 21:43 S30dm -> ../init.d/dm* lrwxrwxrwx 1 root root 14 Jul 20 21:44 S33nifd -> ../init.d/nifd* ... lrwxrwxrwx 1 root root 13 Jul 20 21:46 S40atd -> ../init.d/atd* lrwxrwxrwx 1 root root 14 Jul 20 21:47 S55sshd -> ../init.d/sshd* lrwxrwxrwx 1 root root 20 Jul 20 22:02 S56rawdevices -> ../init.d/rawdevices* lrwxrwxrwx 1 root root 18 Jul 20 22:02 S75keytable -> ../init.d/keytable* lrwxrwxrwx 1 root root 15 Jul 20 17:52 S80spamd -> ../init.d/spamd* lrwxrwxrwx 1 root root 17 Jul 20 21:50 S85proftpd -> ../init.d/proftpd* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S90crond -> ../init.d/crond* lrwxrwxrwx 1 root root 14 Jul 20 21:44 S92lisa -> ../init.d/lisa* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S95kheader -> ../init.d/kheader* lrwxrwxrwx 1 root root 11 Jul 20 21:43 S99local -> ../rc.local* AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A29 ExempIe de contenu du repertoIre /etc/rc5.d : 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement Demarrage du reseau Demarrage du servIce d'ImpressIon Demarrage du serveur ssh Demarrage de Ia bannIere de connexIon en mode graphIque ( %nome dIspIay manager) lrwxrwxrwx 1 root root 18 2005-09-18 20:04 S10sysklogd -> ../init.d/sysklogd lrwxrwxrwx 1 root root 15 2005-09-18 20:04 S11klogd -> ../init.d/klogd lrwxrwxrwx 1 root root 13 2005-09-18 20:03 S14ppp -> ../init.d/ppp lrwxrwxrwx 1 root root 17 2005-09-18 19:10 S18portmap -> ../init.d/portmap lrwxrwxrwx 1 root root 14 2005-09-19 09:42 S20apmd -> ../init.d/apmd lrwxrwxrwx 1 root root 16 2005-09-18 19:11 S20dbus-1 -> ../init.d/dbus-1 lrwxrwxrwx 1 root root 17 2005-09-18 19:11 S20dirmngr -> ../init.d/dirmngr lrwxrwxrwx 1 root root 15 2005-09-18 20:03 S20exim4 -> ../init.d/exim4 lrwxrwxrwx 1 root root 15 2005-09-18 20:03 S20inetd -> ../init.d/inetd lrwxrwxrwx 1 root root 13 2005-09-18 19:10 S20lpd -> ../init.d/lpd lrwxrwxrwx 1 root root 17 2005-09-18 20:02 S20makedev -> ../init.d/makedev lrwxrwxrwx 1 root root 16 2005-09-18 20:05 S20pcmcia -> ../init.d/pcmcia lrwxrwxrwx 1 root root 15 2005-09-18 15:16 S20rsync -> ../init.d/rsync lrwxrwxrwx 1 root root 13 2005-09-18 19:11 S20ssh -> ../init.d/ssh lrwxrwxrwx 1 root root 13 2005-09-18 14:57 S20vdr -> ../init.d/vdr lrwxrwxrwx 1 root root 16 2005-09-18 22:01 S20webmin -> ../init.d/webmin ... lrwxrwxrwx 1 root root 13 2005-09-18 21:00 S20xfs -> ../init.d/xfs lrwxrwxrwx 1 root root 16 2005-09-18 21:00 S20xinetd -> ../init.d/xinetd lrwxrwxrwx 1 root root 15 2005-09-18 21:07 S21aumix -> ../init.d/aumix lrwxrwxrwx 1 root root 13 2005-09-18 19:12 S21fam -> ../init.d/fam lrwxrwxrwx 1 root root 20 2005-09-18 19:10 S21nfs-common -> ../init.d/nfs-common lrwxrwxrwx 1 root root 13 2005-09-18 20:04 S89atd -> ../init.d/atd lrwxrwxrwx 1 root root 14 2005-09-18 20:03 S89cron -> ../init.d/cron lrwxrwxrwx 1 root root 13 2005-09-18 19:17 S99gdm -> ../init.d/gdm lrwxrwxrwx 1 root root 19 2005-09-18 20:02 S99rmnologin -> ../init.d/rmnologin lrwxrwxrwx 1 root root 23 2005-09-18 20:02 S99stop-bootlogd -> ../init.d/stop- bootlogd AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A30 UtIIItaIres en mode consoIe : DebIan : update-rc.d Mandrake : chkconfig, service 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement Lanement du s(st3me ' !oot 45 init 45 ser+ies Ie scrIpt /etc/rc.local peut contenIr des personnaIIsatIons IocaIes quI seront Iancees a Ia IIn du processus init Pour demarrer un servIce sous mandrake, on peut taper : service <nom_du_service> start ou encore : /etc/rc.d/init.d/<cript_correspondant_au_service> action ation : starp | stop | restart | status | ... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A31 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement Lanement du s(st3me ' !oot 45 init 45 ser+ies OutII graphIque de gestIon des servIces : AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A32 0 Prinipes de )ontionnement d'UNIX : ScrIpts de Iancement Lanement du s(st3me ' !oot 45 init 45 ser+ies OutII graphIque de gestIon des servIces : AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A33 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 7 8$ments d'administration UNIX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A34 Les 2 modes d'admInIstratIon NotIon de )ihier spia$ Nomma%e des perIpherIques de boot Partitionnement des dIsques &ormata%e dIsque et filesystem Le monta%e des perIpherIques Les %estionnaires de paquets (rpm et de!ian) ConIIguratIon du bootloader (LIIo) Context > archItecture PC 7 8$ments d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A35 7 8$ments d'administration Unix : 2 modes d'admInIstratIon UnIx supporte 2 modes d'admInIstratIon : : $a main : dItIon (manueIIe) des IIchIers de conIIguratIon UtIIIsatIon (manueIIe) des commandes d'admInIstratIon UtIIIsatIon (manueIIe) des gestIonnaIres de paquets RPM ou DE8AN dItIon de scrIpts de commande (Iangage : sheII, perI, awk, ...) Avec des $o%iie$s d'admInIstratIon (graphIque ou mode caractere) : QuI manIpuIent Ies IIchIers de conIIguratIon QuI utIIIsent des commandes d'admInIstratIon standard ou specIIIques Souvent IncontournabIes, avec des UnIx proprIetaIres (HP : SAM) LInux : $inuxon), -e!min, *ra/Con), .... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A36 Principe : sous Unix, tout est fichier => tous les priphriques - disques, - clavier, souris, - carte son, - ports d'E/S - sockets rseau, - mmoire ... sont reprsents par un fichier spcial dans le rpertoire /dev 7 8$ments d'administration Unix : notIon de IIchIer SpecIaI Lect. DVD Lect. CD Carte son DIsque dur AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A37 7 8$ments d'administration Unix : notIon de IIchIer SpecIaI AttrIbuts des IIchIers specIaux : Mode d'acces : !Ioc , ou haracter ProprIetaIre, groupe DroIts d'acces cIassIque unIx : rwxrwxrwx Au IIeu de Ia taIIIe en octet (ZZZ) : 2a;eur (entIer) : permet au noyau d'actIver Ie drIver du perIopherIque (> Indexe dans une tabIe de poInteurs de IonctIons) 2ineur (entIer) : argument passe au drIver b}c majeur, mIneur AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A38 7 8$ments d'administration Unix : Nommage des perIpherIques Nommage des perIpherIques : DE 1 Master SIave DE 0 Master SIave JdevJhda JdevJhdb JdevJhdc JdevJhdd PerIpherIques DE P<T< AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A39 Nommage des perIpherIques : LInux <=2.4 JdevJhda IInux >= 2.6 JdevJsda SATA DE #<T< FLOPPY JdevJId0 disquette SCS JdevJsda JdevJsdb JdevJsdc d : 0 d : 1 d : 2 ... PerIpherIques #C#I U#1 : AssImIIe SCS JdevJsdb US8 JdevJsda JdevJsdc 7 8$ments d'administration Unix : Nommage des perIpherIques AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A40 7 8$ments d'administration Unix : PartItIonnement des dIsques La pIupart des systemes d'expIoItatIon (IIxes) correctement InstaIIes utIIIsent un dIsque pIusIeurs partItIons: partItIon systeme (IIchIers systemes, IIchIers de conIIguratIon ...) partItIon utIIIsateurs (donnees des utIIIsateurs) ... expIoItatIon pIus securIsee on peut Iormater une partItIon Independamment des autres on peut utIIIser une partItIon en Iecture seuIe ... partItIonnement statIque => pIanIIIer Ie partItIonnement on ne peut pas modIIIer sImpIement un partItIonnement statIque partItIonner est une operatIon Iow IeveI, rIsquee !! ... Pour beneIIcIer des avantage du partItIonnement dynamIque II Iaut passer a des soIutIons de type "<I* ("edondant <rray oI Independant *Isks) ou L=2 (LogIcaI =oIume 2anager) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A41 7 8$ments d'administration Unix : PartItIonnement des dIsques DIsque dur entIer (JdevJhda) 4 partItIons prImaIres max PartItIonnement dIsque : 3 partItIons prImaIres max + 1 etendue PartItIon prImaIre 1 JdevJhda1 Systeme WIndows !oota!$e M 8 R PartItIon prImaIre 0 JdevJhda2 Data utIIIsateur PartItIon prImaIre 7 JdevJhda3 AppIIcatIons PartItIon prImaIre > JdevJhda4 ArchIves PartItIon etendue 3 JdevJhda3 M 8 R JdevJhda5 LInux Syst. JdevJhda6 Data user JdevJhda7 Swapp JdevJhda8 AppIIcatIons PartItIon prImaIre 1 JdevJhda1 Systeme WIndows !oota!$e PartItIon prImaIre 0 JdevJhda2 Data utIIIsateur 2 1 " Rq: correspondance WIndows : C: <=> JdevJhda1 D: <=> JdevJhda2 ... PartItIon 1 8S PartItIon 2 !oota!$e 8S PartItIon 3 8S 21" TP 8L 21" : Master 8oot Reccord TP : TabIe PartItIon 1L : 1oot Loader 1# : 1oot #ector AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A42 7 8$ments d'administration Unix : PartItIonnementJFIIesystem PartItIonnement et Iormatage du dIsque dur : Formatage bas nIveau (physIque, en usIne) PartItIonnement (a I'InstaIIatIon de I'OS) fips, fdisk, PartitionMagic (DOS) fdisk, parted (IInux) a l'installation de LInux (menu caractere, menu graphIque) Formatage haut nIveau (IogIque, depends de I'OS et du FIIeSystem cIbIe) format (WIndows : cree un IIIesystem FAT ou NTFS) mkfs (UnIx : cree un IIIesystem Ext2, Ext3, FAT, ...) expIe : mkfs -t ext2 /dev/hda1 mkfs -t vfat /dev/fd0 Systeme de IIchIers journaIIses : pIus robuste aux pannes secteurs AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A43 FPS 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A44 PartItIonMagIc 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A45 )dis/ 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A46 )dis/ 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A47 )dis/ 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A48 )dis/ 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A49 nstaIIatIon MandrIva J outII DrakConI 7 8$ments d'administration Unix : PartItIonnementJFIIesystem AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A50 7 8$ments d'administration Unix : FIIesystem #(st3me d'exp$oitation T(pes de s(st3me de )ihiers supports Dos FAT16 WIndows 95 FAT16 WIndows 95 OSR2 FAT16, FAT32 WIndows 98 FAT16, FAT32 WIndows NT4 FAT, NTFS (versIon 4) WIndows 2000JXP FAT, FAT16, FAT32, NTFS (versIons 4 et 5) LInux Ext2, Ext3, ReIserFS, LInux Swap, (FAT, NTFS, ...) MacOS HFS, MFS SC RX XFS Free8SD, Open8SD UFS (UnIx FIIe System) Sun SoIarIs UFS (UnIx FIIe System) 8M AX ]FS (]ournaIed FIIe System) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A51 7 8$ments d'administration Unix : Montage des perIpherIques L'operatIon de monta%e des perIpherIques : DOS et WIndows utIIIsent Ia notIon d'unit $o%ique pour IournIr un acces aux ressources de stockage ( A: > IIoppy, C: > dIsque dur, ... E: > Iecteur CD) Tous Ies UnIx utIIIsent Ia notIon de monta%e : un perIpherIque est assocIe a un poInt de montage (repertoIre) par une operatIon de montage (commande mount) Ia commande mount peut etre utIIIsee a Ia maIn expIe : mount /dev/hda1 / mount /dev/sda1 /mnt/removable tous Ies perIpherIques montes beneIIcIent du cache dIsque AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A52 7 8$ments d'administration Unix : Montage des perIpherIques avant d'extraIre un perIpherIque amovIbIe (dIsquette, cIeI US8, ...), on DOT Ie demonter (umount), pour synchronIser Ies ecrItures (vIdage du cache dIsk) tous Ies montages permanents sont IndIques dans Ie IIchIer /etc/fstab La commande d) aIIIche Ia IIste des perIpherIques montes + proprIetes : AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A53 7 8$ments d'administration Unix : conIIguratIon de IIIo $i$o (Linux Loader) permet d'InstaIIer un !oot$oader muItIsystemes FIchIer de conIIguratIon : /etc/lilo.conf Apres toute modIIIcatIon de lilo.conf, II Iaut reInstaIIer Ie bootIoader modIIIe en tapant Ia commande $i$o nstaIIatIon en M8R PartItIon racIne Noyau a booter FIchIer ramdIsque OptIons du noyau AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A54 7 8$ments d'administration Unix : CestIonnaIres de paquets CNUJLInux et Ies appIIcatIons tournant sous ce systeme peuvent etre IIvres (source ou bInaIres) sous 3 Iormats prIncIpaux : Le )ormat "ead Hat ?"P2 : ReadHat Package Manager) : IIchIers *.rpm Le )ormat *@1I<N (*P6G : DebIan PacKaCe) : IIchIers *.deb Le )ormat tar (archIve) : IIchIers *.tar : archIve creee par Ia commande UnIx tar IIchIers *.tar.gz : archIve tar comprImee par %Aip IIchIers *.tar.bz2 : archIve tar comprImee par !Aip AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A55 7 8$ments d'administration Unix : CestIonnaIres de paquets HIstorIquement, avec Ies premIeres versIon d'UnIx, tout etaIt IaIt : Avec Ia commande tar Avec des utIIItaIres dedIes (UnIx proprIetaIres) Aujourd'huI, Ie Iormat tar n'est pIus utIIIse que : pour des InstaIIatIons partIcuIIeres (code maIson, archIvage, ...) Pour depIacer une arborescence de IIchIers (copIe vers une autre repertoIres, une autre machIne, document attache maII, ...) >L'utIIIsatIon de Ia commande tar comme utIIItaIre d'archIvage sera vue Iors des seances de TP. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A56 7 8$ments d'administration Unix : CestIonnaIres de paquets Les systemes de gestIons de paquets Read Hat ou DebIan permettent une gestIon tres puIssante des appIIcatIons InstaIIees sous CNUJLInux : Cration des paquets (compIIatIon et creatIon du paquet source ou du paquet bInaIre) Insta$$ation des paquets (gestIon des composants necessaIres) mise B ;our des paquets (gestIons des dependances, des conIIIts, ...) #uppression des paquets (gestIon des dependances, et de tout ce quI a ete InstaIIe) Interro%ation : IIste des paquets, IIchIers contenus dans un paquet donne, queI paquet contIent un IIchIer donne, ... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A57 7 8$ments d'administration Unix : CestIonnaIres de paquets 2andri+a (comme *e!ian) propose 2 nIveaux de commandes : Ni+eau du paquet : rpm (DebIan : dp/%) Ia gestIon des dependances est purement InIormatIve, sans resoIutIon automatIque => II Iaut InstaIIer tous Ies paquets a Ia maIn Ni+eau %$o!a$ : urpmCiq)eD (DebIan : apt (advanced paquet tooI)) Ia gestIon des dependances est totaIe : Ies paquets requIs sont automatIquement rajoutes a Ia IIste des paquets a InstaIIer I exIste des InterIace graphIque pour Ie nIveau gIobaI : MandrIva : dra/rpm DebIan : s(napti, aptitude >L'utIIIsatIon detaIIIee des commandes rpm, urpmq, urpmi, ... sera vue en TP. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A58 7 8$ments d'administration Unix : CestIonnaIre RPM Commande rpm : InIos sur Ies paquets insta$$s (optIons de conIort : v > verbose ; h > barre d'avancement tracee avec des #) Insta$$ation (instaII) : rpm Ivh nomdupaquet ExpIe : rpm -ivh acpid-1.0.4-4mdk.rpm mise B ;our (update) : rpm Uvh nomdupaquet ExpIe : rpm -Uvh acpid-1.0.4-4mdk.rpm #uppression (erase) : rpm e nomdupaquet ExpIe : rpm -e acpid Interro%ation (query) : nIormatIons sur un paquet : rpm q nompaquetcourt ExpIe : rpm -q emacs (rponse : emacs-21.3-20mdk) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A59 7 8$ments d'administration Unix : CestIonnaIre RPM Interro%ation (query) suIte : InIormatIons sur un paquet : rpm qI paquet IIste des IIchIers d'un paquet InstaIIe : rpm qI paquetInstaIIe , ou rpm qI p IIchIerrpm ExpIe : rpm -ql cups IIste de tous Ies paquets InstaIIes : rpm qa rechercher sI un paquet est InstaIIe : rpm qa } grep paquet recherche des paquets InstaIIes contenant un IIchIer : rpm qI nomdeIIchIerabsoIu ExpIe : rpm -qf /usr/sbin/cupsd AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A60 7 8$ments d'administration Unix : CestIonnaIre URPM Commande urpmi (InstaIIer un paquet) : urpmi gere Ies InstaIIatIons a partIr de dIvers medIas : Itp, http, voIumes nIs et Iocaux, medIas amovIbIes (CD, DVD, ...) La conIIguratIon des sources (orIgInes) de I'InstaIIatIon est donnee par Ie IIchIer /etc/urpmi/urpmi.cfg On peut modIIIer Ies sources de Ia dIstrIbutIon : urpmi.remo+emedia : permet de supprImer des entrees urpmi.addmedia : permet d'ajouter de nouveIIs entrees Syntaxe de urpmI est tres sImpIe : urpmi nomdupaquet SI necessaIre, urpmi demande d'Inserer Ie medIum necessaIre >Des exempIes d'utIIIsatIon de Ia commande urpmi seront vus en TP. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A61 7 8$ments d'administration Unix : CestIonnaIre URPM Commande urpmq : InIos sur Ies paquets Einsta$$a!$esF urpmq [option] nom_paquet|fichier_rpm permet d'Interroger Ia 8ase de Donnees (8D) urpmI (cI man urpmI); ExempIe d'optIons utIIes : Iuzzy : (ou y) recherche Ies paquets *nompaquet* IIste : IIste de tous Ies paquets connus de Ia 8D urpmI IIstemedIa : aIIIche Ies medIa de Ia dIstrIbutIon (CD, reseau, ...) IIsteurI : Idem, avec en pIus Ies URL d'acces dumpconIIg : IournIt Ia totaIIte des InIormatIons sur Ies medIa de Ia dIstrIb, Ies URL d'acces et Ies IIchIers d'InIo utIIIses I paquet : IIste Ies IIchIers du paquets de Ia dIstrIbutIon ExpIes : urpmq cups urpmq --fuzzy cups AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A62 7 8$ments d'administration Unix : CestIonnaIre URPM Commande urpm) : urpm) [option] fichier trouve Ie paquet RPM de Ia dIstrIbutIon contenant Ie IIchIer mentIonne SI fichier est un nom absoIu, II est cherche exactement, SI fichier est un extraIt de path absoIu, II est cherche sous Ia Iorme *fichier* ExpIes : urpmf /usr/sbin/cupsd urpmq bin/cupsd AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A63 7 8$ments d'administration Unix : CestIonnaIre DE8AN Commande dp/% : gestIon d'un paquet IsoIe, pas de gestIon automatIque des dependances dp/% [option] [fichier.deb ...] ; PrIncIpaIes optIons : I : InstaIIe Ie(s) paquets contenus dans Ies IIchIers(s) r : desInstaIIe Ie paquet sans supprImer ses IIchIers de conIIguratIon purge : desInstaIIatIon compIete (paquet + IIchIers conIIg) reconIIgure paquet : rejouer Ia conIIguratIon du paquet I : IIste de tous Ies paquets L : aIIIche Ia IIste de tous Ies IIchIers contenus dans Ie paquet S fichier : recherche de tous Ies paquets contenant fichier ExpIes : dpkg -i cups dpkg -S /usr/bin/cupsd AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A64 7 8$ments d'administration Unix : CestIonnaIre DE8AN Le systeme <PT : <dvanced Package TooI Resoud automatIquement Ies probIemes de dependances entre paquets TIent a jour Ies IIstes des InstaIIes et des paquets dIsponIbIes Cere Ia IIste des sources d'InstaIIatIon (IIchIer /etc/apt/sources.list) apt4%et insta$$ fichier.deb ... : InstaIIer des paquets DebIan apt4%et remo+e [--purge] fichier.deb ... : desInstaIIer des paquets apt4%et update : recupere Ia IIste des paquets dIsponIbIes en utIIIsant Ies sources mentIonnees dans Ie IIchIer sources.list apt4%et up%rade : mIse a jour des paquets apt4%et $ean : supprIme Ies IIchIers presents dans /var/cache/apt/archives AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A65 7 8$ments d'administration Unix : CestIonnaIre DE8AN RecapItuIatII IncompIet et approxImatII des equIvaIences RPMJDE8AN !!! rpm qI paquet dpkg L paquet rpm qa dpkg I dpkg -getseIectIon rpm I paquet dpkg I paquet rpm e paquet dpkg purge paquet Z dpkg r paquet Z dpkg reconIIgure paquet rpm qI IIchIer dpkg S urpmI paquet aptget InstaII paquet urpme paquet aptget remove paquet AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A66 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX > Insta$$ation de Linux ?TPG 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A67 =oir $e texte du TP1 ObjectIIs : nstaIIer un PC serveur CNUJLInux (InstaIIatIon reseau FTP ou HTTP n'utIIIsant que Ie premIer CD). > Insta$$ation de GNU,Linux ' TP1 AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A68 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) H Les )ihiers de on)i%uration ?TPG 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A69 =oir $e texte du TP1 ObjectIIs : nstaIIer un PC serveur CNUJLInux (InstaIIatIon reseau FTP ou HTTP n'utIIIsant que Ie premIer CD). VIsIter Ies prIncIpaux IIchIers de conIIguratIon utIIes a I'admInIstratIon d'un serveur LInux. H Les )ihiers de on)i%uration ' TP1 AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A70 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) I Gestion des uti$isateursJ des %roupes ?TPG 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A71 =oir $e texte du TP1 ObjectIIs : nstaIIer un PC serveur CNUJLInux (InstaIIatIon reseau FTP ou HTTP n'utIIIsant que Ie premIer CD). VIsIter Ies prIncIpaux IIchIers de conIIguratIon utIIes a I'admInIstratIon d'un serveur LInux. ReaIIser des operatIons eIementaIres d'admInIstratIon a Ia maIn : utIIIser des commandes de base d'admInIstratIon (mount, mkfs, df , ...) gerer Ies comptes utIIIsateurs, ... InstaIIer des serveurs usueIs (ssh, ftp). UtIIIser Ie sheII (commandes, redIrectIons, IIItres) en InteractII, et comme Iangage de programmatIon (scrIpts d'admInIstratIon). I Gestion des uti$isateursJ des %roupes ' TP1 AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A72 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) K Con)i%uration de NI# ?TPG 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A73 K NI# ' Prsentation NI# : une base de donnees repartIe PrIncIpes nstaIIatIon Commandes utIIes ConIIguratIon Lancement TP AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A74 K NI# ' Prsentation NI# (Network InIormatIon Center, http:JJwww.IInuxnIs.org ) : ProtocoIe datant des annees 1985 OrIgIne : Ies YeIIow Pages (YP) de SUN ConstItue une base de donnees repartIe pour Ies IIchIers de conIIguratIon UnIx Permet de centraIIser Ies IIchIers de conIIguratIon sur un serveur NI# pour evIter de duppIIquer tous ces IIchIers en autant d'exempIaIres que d'ordInateurs a gerer sur un reseau vIte Ies copIes muItIpIes ! vIte Ies copIes pas a jour !! Permet de n'avoIr a maIntenIr Ies IIchIers que sur une seuIe machIne (serveur) NI# et N&# permettent de construIre des systemes InIormatIques repartIs assurant un partage des IIchIers et des donnees coherent et transparent. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A75 K NI# ' Prsentation ServIcesJdemons utIIIses par Ie servIce NI# : portmap mIse en correspondance numero de ports TCPJP <> numero de processus RPC (voIr /etc/rpc pour Ies numeros reserves) cte serveur : (pser+ ImpIemente Ie serveur NS (ppass-d permet de changer un mot de passe sur Ie serveur NS depuIs un cIIent NS (demon rpc.yppasswd) (px)rd acceIere Ies transIerts entre serveur matre et escIave (demon rpc.ypxIrd) Cte cIIent: (p!ind ImpIemente Ie cIIent NS AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A76 FIchIers de conIIguratIon serveur make Cartes bInaIres (maps) *omaine NI# *omaine NI# CIIent NS Requete acces IIchIer de conIIguratIon FIchIers Iocaux Le cIIent voIt Ies cartes du serveur comme sI c'etaIent des IIchIers Iocaux AttentIon : Ie nom de domaIne NI# et Ie nom de domaIne *N# sont 2 concepts dIIIerents. Serveur NS Matre rseau *omaine NI# JetcJnsswItch.conI : ordre des choIx 1 0 NIS K NI# ' Prinipe Serveur NS escIave Cartes bInaIres Domaine NIS yprxId AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A77 FIchIers bInaIres (commande ou demon)
# rpm -ql ypbind /etc/rc.d/init.d/ypbind /etc/yp.conf /sbin/ypbind /usr/share/doc/ypbind... /usr/share/man/man5/... /usr/share/man/man8/... /var/yp/binding Paquets cIIent : (p!ind et (p4too$s Installation : portmap et rseau pr-requis, client -> urpmi ypbind tp-tools AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A79 K NI# ' Commandes uti$es Commandes uti$es nisdomainname domainname ypdomainname aIIIcher Ie nom de domaIne NS rpcinfo -p aIIIcher Ies servIces portmap #er+eur /usr/lib/yp/ypinit -m InItIaIIser Ie serveur matre cd /var/yp; make reIaIre Ies cartes du serveur matre, et Ies propager vers Ies serveurs escIaves /usr/lib/yp/ypinit -s InItIaIIser un serveur escIave C$ient ypwhich aIIIcher Ie nom du serveur NS yppasswd changer son mot de passe sur Ie serveur NS ypcat passwd aIIIcher Ie IIchIer passwd du serveur ypcat group aIIIcher Ie IIchIer group du serveur ypcat ... aIIIcher Ie IIchIer ... du serveur AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A80 ordre dans IequeI utIIIser Ies dIIIerents mode d'acces possIbIes (IIchIer, nIs, dns) pour resoudre Ies correspondances adresse P <=> FQDN I est preIerabIe d'utIIIser Ie DNS pIutt que NS : ... order hosts,bind ... MaIs sI aucun serveur DNS n'est accessIbIe, on pourraIt ecrIre : ... order hosts,nis ... /etc/host.conf ordre dans IequeI utIIIser Ies dIIIerents mode d'acces possIbIes (IIchIer, nIs, dns) pour acceder au contenu des IIchIers de conIIguratIon ... passwd: files nis nisplus shadow: files nis nisplus group: files nis nisplus ... /etc/nsswitch.conf Network ServIce SwItch FIchIers Iocaux NS+ = NS versIon 3 (securIse) K NI# ' Con)i%uration ommune $ient L ser+eur ' on)i% rseau AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A81 K NI# ' Con)i%uration ser+eur ' on)i% rseau Un ser+eur a une adresse IP )ixe => on doit precIser Ie nom du domaine NI# dans un IIchIer de conIIguratIon HOSTNAME=hostaaa.domainebbb.fr NETWORKING=yes GATEWAY=192.168.74.1 NISDOMAIN=tp /etc/sysconfig/network Tous Ies IIchIers de conIIguratIon des servIces specIIIques aux dIstrIbutIons derIvees de RedHat (Fedora, MandrIva, ...) sont dans Ie repertoIre : JetcJsysconIIg tp /etc/defaultdomain FIchIer de conIIguratIon reseau : /etc/network/interfaces FIchIer de conIIguratIon domaIne NS : /etc/defaultdomaine AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A82 K NI# ' Con)i%uration ser+eur fIchIer ASC quI contenant 2 types de IIgne : des optIons pour Ie demon ypserv : option: [yes|no] ExempIes : dns yes Ie serveur Interrogera Ie DNS pour trouver ses cIIents quI n'apparaIssent pas dans Ies maps hosts. xfr_check_port yes : pour IaIre tourner Ie serveur sur un port InIerIeur a 1024 (yes par deIaut) des regIes d'acces au serveur NS ( > quI peut voIr quoI ...) au Iormat : host:domain:map:security security : none > acces autorIse port > acces autorIse seuIement sI port cIIent < 1024 deny > pas d'acces /etc/ypserv.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A83 /etc/ypserv.conf K NI# ' Con)i%uration ser+eur ExempIe de IIchIer : ... # Should we do DNS lookups for hosts not found in the hosts table ? # This option is ignored in the moment. dns: no # xfr requests are only allowed from ports < 1024 xfr_check_port: yes # Not everybody should see the shadow passwords, not secure, since # under MSDOG everbody is root and can access ports < 1024 !!! *:*:shadow.byname:port ... /var/yp/Makefile ContIent Ies optIons Importantes comme Ie choIx des cartes du serveur quI seront exportes par NS. A personnaIIser apres toutes InstaIIatIon d'un paquet ypserv. /etc/nsswitch.conf /etc/host.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A84 K NI# ' Initia$isationJ $anement de NI# sur un ser+eur Apres I'InstaIIatIon du paquet serveur NI# : #er+eur maMtre 1 ConIIgurer Ie nom de domaIne NS 2 dIter sI besoIn Ie IIchIer /etc/hosts pour decIarer tous Ies serveurs (matre ou escIaves) utIIIses par NS 3 dIter sI besoIn Ie IIchIer /var/yp/Makefile 4 dIter sI besoIn Ie IIchIer /etc/host.conf : choIx de I'ordre des methodes de resoIutIon FQDN<>adresse P (IocaI, dns, nIs Z) 5 dIter sI besoIn Ie IIchIer JetcJnsswItch.conI : choIx de I'ordre des methodes d'acces aux IIchIers seIectIonnee en 2 6 dIter Ie IIchIer /etc/ypserv.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A85 K NI# ' Initia$isationJ $anement de NI# sur un ser+eur 7 VerIIIer Ia presence des scrIpts de demarrage /etc/rc.d/init.d/yppasswdd, ypserv, ypxfrd 8 Lancer Ies servIces ypserv,ypserv et yppasswdd 9 InItIaIIser Ie serveur matre :/usr/lib/yp/ypinit -m #er+eur es$a+e 1 nstaIIer Ia machIne comme un cIIent NS 2 nstaIIer Ia machIne comme un serveur matre (etapes 1 a 8 ) 3 InItIaIIser Ie serveur escIave : /usr/lib/yp/ypinit -s server_maitre 4 sur Ie serveur matre : mettre Ia IIste des serveurs secondaIres dans Ie IIchIer /var/yp/ypserv edIter Ie IIchIer /var/yp/Makefile, mettre Ia varIabIe NOPUSH a false aIIer dans Ie repertoIre /var/yp et taper make AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A86 K NI# ' Con)i%uration $ient ' rseau HOSTNAME=hostaaa.domainebbb.fr NETWORKING=yes GATEWAY=192.168.74.1 NISDOMAIN=tp /etc/sysconfig/network C$ient )ixe => on doit precIser Ie nom du domaine NI# C$ient nomade ?porta!$eG on peut precIser Ie nom du domaIne NS dans Ie IIchIer network, maIs P8 quand on change de reseau I est pIus Interessant d'utIIIser Ia conIIguratIon dynamIque *HCP pour recuperer Ies InIormatIons nom de domaIne NS et serveur NS ... request subnet-mask, broadcast-address, time-offset,routers, domain-name, domain-name-servers, host-name, nis-domain; ... /etc/dhclient-eth0.conf /etc/dhclient.conf tp /etc/defaultdomain AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A87 /etc/nsswitch.conf /etc/host.conf LIste des serveurs pour Ie domaIne nIs du cIIent : domain nom_domaine_nis server adresseIP|FQDN /etc/yp.conf (Permet d'evIter Ia recherche du serveur NS par broadcast) K NI# ' Con)i%uration $ient AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A88 K NI# ' Lanement du ser+ie NI# Nt $ient Apres I'InstaIIatIon du paquet cIIent NI# : 1 ConIIgurer Ie nom de domaIne NS 2 dIter sI besoIn Ie IIchIer /etc/host.conf : choIx de I'ordre des methodes de resoIutIon FQDN<>adresse P (IocaI, dns, nIs Z) 3 dIter sI besoIn Ie IIchIer /etc/nsswitch.conf : choIx de I'ordre des methodes d'acces aux IIchIers seIectIonnee en 2 4 dIter Ie IIchIer /etc/yp.conf pour desIgner Ie(s) serveur(s) NS (utIIIser des adresses P pIutt que des FQDN ...) 5 ReIancer Ie servIce network (prIse en compte du nom de domaIne NS) 6 Lancer Ie servIce ypbind. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A89 NS n'est pas un protocoIe tres securIse. PreIerer I'utIIIsatIon de NS en rseau $oa$ (192.168.x.y) accedant a Internet par une passereIIe securIse (IIrewaII) UtIIIser Ies IIchIers /etc/ypserv.conf et /var/yp/securenet pour IImIter Ies acces non autorIses a NS K NI# ' surit AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A90 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) O Con)i%uration de N&# ?TPG 9 ConIIguratIon de DNS (TP) 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A91 O N&# ' Prsentation N&# : un systeme de IIchIers reseau PrIncIpes nstaIIatIon ConIIguratIon Lancement TP AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A92 N&# (Network FIIe System) http:JJnIs.sourceIorge.netJ : FournIt un acces reseau transparent aux IIchIers d'un serveur (systeme de IIchIer reseau) Serveur sans etat ProtocoIe IntroduIt par SUN en 1984, prIs en maIn par I'ETF (nternet EngIneerIng Task Force) depuIs 1988 ProtocoIe ouvert, portabIe sur de nombreux envIronnements pIateIormesJ reseaux, utIIIse Ies "PC (Remote Procedure CaIIs) de SUN ServeurJCIIent NFS present sur tous Ies UnIx CIIents N&# dIsponIbIes pour tous Ies systemes d'expIoItatIon (Ws,Ux,Mc) VersIon actueIIe : 3 (RFC 1813), versIon 4 en cours (RFC 3530) O N&# ' Prsentation AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A93 O N&# ' Prsentation ServIcesJdemons utIIIses par Ie servIce NFS : portmap mIse en correspondance numero de ports TCPJP <> numero de processus RPC (voIr JetcJrpc pour Ies numeros reserves) cte serveur : rp.n)sd ImpIemente Ia partIe utIIIsateur du protocoIe rp.statd prIse en compte du redemarrage des serveurs, pour une gestIon correcte des verrous (ImpIemente Ie protocoIe "PC N#2 (Network Status MonItor)) rp.$o/d gestIon du verouIIIage des IIchIers (ImpIemente Ie protocoIe NL2 (Network Lock Manager)) rp.mountd ImpIemente Ia partIe serveur du protocoIe, a I'ecoute des demandes de montage cte cIIent : rp.statd rp.$o/d AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A94 Serveur NFS reseau Ressources de stockage exportees sous NFS N&# O N&# ' Prinipe Le cIIent accede a Ia ressource de Iaon transparente mount -t nfs serveur:path_distant path_local CIIent NFS Ressources IocaIes AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A95 FIchIers bInaIres (commande ou demon)
O N&# ' Insta$$ation P ser+eur et $ient Insta$$ation : portmap et rseau prerequIs, serveur ou client -> urpmi nfs-utils-client Paquet cIIent : n)s4uti$s4$ient FIchIers bInaIres (commande ou demon) FIchIers de conIIguratIon
FIchIers de Iancement #rpm -ql nfs-utils-clients /etc/rc.d/init.d/nfslock /sbin/rpc.lockd /sbin/rpc.statd /usr/sbin/showmount /usr/share/doc/... /usr/share/man/... /var/lib/nfs /var/lib/nfs/statd /var/lib/nfs/state AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A97 (voIr man pour Ies detaIIs) Serveur showmount -a IIste des cIIentsJrepertoIre utIIIse -d IIste des repertoIres montes par des cIIents -e IIste des repertoIres exportes exportfs -a reIIt Ie IIchIer /etc/exportfs -ra remet a jour Ia IIste des repertoIres exportes rpcinfo -p aIIIcher Ies servIces portmap Client rpcinfo -p [host] aIIIcher Ies servIces portmap showmount -e host IIste des repertoIres exportes par Ie serveur host O N&# ' Commandes uti$es AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A98 IIste des repertoIres exportes par Ie serveur, et des optIons (droIts d'acces, ...) Syntaxe : directory1 host1(option,...) host2(option,...) .... directory2 host1(option,...) host2(option,...) .... ... ExempIe : /opt 192.168.1.0/255.255.255.0(rw,no_root_squash) /home 192.168.1.0/255.255.255.0(rw) /mnt/disk 192.168.1.45(rw) pc1(ro) /usr/local *(ro) O N&# ' Con)i%uration ser+eur optIons de Iancement du serveur NFS /etc/sysconfig/nfs Tous Ies IIchIers de conIIguratIon des servIces specIIIques aux dIstrIbutIons derIvees de RedHat (Fedora, MandrIva, ...) sont dans Ie repertoIre : /etc/sysconfig /etc/exports AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A99 PrIncIpaIes optIons du IIchIer exports (serveur) : ro read-onl& !acc's en lecture seule au rpertoire e(port" r- readwrIte : Ie cIIent accede au repertoIre en IectureJecrIture rootQsquash transIorme Ies acces UD root en UD nobody noQrootQsquash Ies acces root sur Ie cIIent restent root sur Ie serveur ! a$$Qsquash ConvertIt tous Ies UDJCD en utIIIsateurs anonymes. UtIIe pour exporter avec NFS des repertoIres pubIIcs. PrIncIpaIes optIons du IIchIer fstab (cIIent) : hard montage avec ecrIture bIoquante (> attente) )%J !% montage en )or%round, back%ound intr montage InterruptIbIe (utIIe avec hard en cas de bIocage) so)t montage sans ecrIture bIoquante (> pas d'attente) AttentIon : Ies optIons doIvent etre separees par des vIrguIes, SANS ESPACE. O N&# ' Con)i%uration ser+eur AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A100 Le Iancement des servIces se IaIt cIassIquement : VerIIIer Ia presence des scrIpts de demarrage /etc/init.d/nfs et /etc/init.d/nfslock Iancement automatIque par IIen symboIIque (preIIxe par Sxx) dans /etc/rc3.d ou /etc/rc5.d Iancement manueI : /etc/init.d/nfs start, ou service nfs start (Mandriva) On peut verIIIer Ie IonctIonnement en Interrogeant portmaper On peut vIsuaIIser queIIe machIne cIIente monte queIIe ressource : showmount -a cat /proc/fs/nfs/exports O N&# ' Lanement de N&# sur $e ser+eur AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A101 Cote cIIent, II suIIIt d'eIIectuer Ie montage de Ia ressource exportee par un serveur NFS :Le Iancement des servIces se IaIt cIassIquement : A Ia maIn : mount -t nfs serveur:path_distant point_de_montage - path_distant : est Ie nom du repertoIre exporte par Ie serveur - point_de_montage : est Ie nom du repertoIre IocaI a partIr duqueI seront utIIIsabIe Ies IIchIers du serveur NFS Pour automatIser Ie montage des ressources NFS sur un poste cIIent, on utIIIser IIchIer JetcJIstab. VoIr man mount pour Ies optIons de montage supportees par NFS O N&# ' Lanement de N&# sur un $ient ... serveur:/home/users /home/users nfs rsize=8192,wsize=8192,soft 0 0 ... /etc/fstab AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A102 NFS n'est pas un protocoIe tres securIse (No File Security !!!) : Par deIaut I'UD root d'une machIne cIIente est mappee en I'UD nobody pour tous Ies acces NFS L'authentIIIcatIon des cIIents repose unIquement sur Ie nom de domaIne ou I'adresse P => spooIIng possIbIe L'IdentIIIcatIon des utIIIsateurs repose sur Ie user Id sur Ie poste cIIents => usurpatIon possIbIe TransactIons non cryptees UtIIIsatIon recommandee en Intranet IsoIe protege de I'nterNet par un FIrewaII (> on IaIt conIIance aux utIIIsateurs Iocaux !!!) O N&# ' #urit AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A103 NFS peut utIIIser Ies mecanIsmes de contrIe d'acces oIIert par tpd, base sur Ies IIchIers /etc/hosts.deny et /etc/hosts.allow # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # portmap: ALL lockd: ALL mountd: ALL rquotad: ALL statd: ALL # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # portmap: 192.168.0.0/255.255.255.0 lockd: 192.168.0.0/255.255.255.0 mountd: 192.168.0.0/255.255.255.0 rquotad: 192.168.0.0/255.255.255.0 statd: 192.168.0.0/255.255.255.0 O N&# ' #urit AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A104 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) R Con)i%uration de *N# ?TPG 10 ConIIguratIon de SAM8A (TP) 11 ConIIguratIon de LDAP (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A105 R *N# ' Prsentation *N# : Systeme de Nommage par base de donnees repartIe PrIncIpes nstaIIatIon ConIIguratIon Lancement TP AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A106 *N# (DomaIn Name System) gere Ies correspondances entre Ies noms d'htes et Ies adresse P : Par expIe : www.Iree.Ir correspond a I'adresse P 213.228.0.42 A I'orIgIne (annees 70) Ia tabIe des correspondances nom d'hte <> adresse P etaIt ecrIte dans un IIchIer unIque HOSTS.TXT, gere par Ie Network nIormatIon Center (NC) sur une machIne sItuee au StandIord Research nstItute (SR) en CaIIIornIe. Ies probIemes de taIIIe du IIchIer HOSTS.TXT, de conIIIt de noms, de charge du reseau et du processeur Iors de Ia dIIIusIon du IIchIer ... ont montre que Ie mecanIsme base sur HOSTS.TXT ne pouvaIt pas suIvre I'expansIon du reseau En 1984 Ies premIeres RFC decrIvant Ie Systeme de noms de domaIne (DNS) sont pubIIees. R *N# ' Prsentation AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A107 R *N# ' Prinipe Ies donnees de chaque noeud sont accessIbIes de partout (mecanIsme de cIIentserveur) dupIIcatIon (serveurs secondaIres) et cache memoIre regIent Ies aspect de robustesse et perIormance a chaque noeud sont assocIes des serveurs de noms Ies cIIents sont des resolvers (IIbraIrIe C)
R *N# ' Prinipe Ie prIncIpe arborescent des noms de domaIne garantIt I'unIcIte des noms nom absoIu : www.Iree.Ir. equIvaIent a www.Iree.Ir (on parIe aussI de &S*N : &uIIy SuaIIIIed *omaIn Name) un domaIne est un sousarbre de I'espace de nommage un mecanIsme de deIegatIon permet a un domaIne de creer autant de sous domaInes qu'II veut ... et aInsI de suIte .... II ya deIegatIon d'autorIte d'un domaIne vers chacun de ses sous domaInes ... et aInsI de suIte ... Ia resoIutIon Inverse (obtenIr un nom d'hte d'apres une adresse P) met en oeuvre une branche partIcuIIere de I'espace de nommage construIte seIon : d.c.b.a.in4addr.arpa pour une machIne d'adresse P a.b.c.d Par exempIe Ia consuItatIon de I'hte correspondant a 42.0.228.213.In addr.arpa donne www1.Iree.Ir AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A109 R *N# ' Prinipe I'ImpIementatIon LInux est derIvee de 1IN* (8erkeIey nternet Name DomaIn), ecrIt a I'orIgIne pour UnIx 8SD 4.3 8ND est aujourd'huI maIntenu par SC (nternet SoItware ConsortIum) http:JJwww.Isc.orgJbInd.htmI ServIcesJdemons utIIIses par Ie servIce DNS : named ImpIementatIon du serveur DNS AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A110 FIchIers bInaIres (commande ou demon)
R *N# ' Insta$$ation uti$itaires P ?ser+eur ou $ientG Paquet cIIent : bIndutIIs9.3.1 Insta$$ation : rseau prerequIs, urpmi bind-utils /usr/bin/dig /usr/bin/host /usr/bin/ldap2zone /usr/bin/nslookup /usr/bin/nsupdate /usr/bin/zonetoldap /usr/share/man/man1/... /usr/share/man/man5/... /usr/share/man/man8/... /usr/share/doc/bind-utils-9.3.1/... AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A112 R *N# ' Commandes uti$es Commandes uti$es C$ient Un cIIent resolver peut etre mIs en oeuvre avec Ies commandes dig, host. ExempIe de syntaxe pour demander au serveur DNS serv Ies InIos de type typ sur Ie domaIne dom : dig [@serv] dom [typ] host [-a] [-t type] dom [serv] dnsdomainname retourne Ie nom de domaIne de I'hte #er+eur On peut agIr sur Ie demon named en cours de IonctIonnement grce a Ia commande rndc rndc aIIIche Ies optIons possIbIe rndc flush vIde Ies caches du serveur de nom rndc status aIIIche I'etat du serveur de noms (voIr man pour Ies detaIIs) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A113 ordre dans IequeI utIIIser Ies dIIIerents mode d'acces possIbIes (IIchIer, nIs, dns ...) pour resoudre Ies correspondances adresse P <=> FQDN I est preIerabIe d'utIIIser Ie DNS pIutt que NS : ... order hosts,bind ...
/etc/host.conf ordre dans IequeI utIIIser Ies dIIIerents mode d'acces possIbIes (IIchIer, nIs, dns ...) pour acceder au contenu des IIchIers de conIIguratIon ... passwd: files nis nisplus shadow: files nis nisplus group: files nis nisplus ... hosts: files dns nis ... /etc/nsswitch.conf Network ServIce SwItch FIchIers Iocaux DNS R *N# ' Con)i%uration ommune $ient L ser+eur ' on)i% rseau AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A114 R *N# ' Con)i%uration ser+eur ' on)i% rseau on peut precIser Ie nom du domaine *N# dans un IIchIer de conIIguratIon HOSTNAME=hostaaa.mydomaine.fr NETWORKING=yes GATEWAY=192.168.74.1 /etc/sysconfig/network Tous Ies IIchIers de conIIguratIon des servIces specIIIques aux dIstrIbutIons derIvees de RedHat (Fedora, MandrIva, ...) sont dans Ie repertoIre : JetcJsysconIIg Le IaIt d'utIIIser un nom &S*N pour HO#TN<2@ permet de IIxer Ie domaine *N# de Ia machIne /etc/nsswitch.conf /etc/host.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A115 /etc/named.conf R *N# ' Con)i%uration ser+eur maMtre ' $e )ihier named.on) ,et,named.on) : IIxe Ies optIons prIncIpaIes du serveur DNS et Ies domaInes sur IesqueIs Ie serveur a autorIte. ExempIe de IIchIer d'un serveur DNS prImaIre ayant autorIte sur Ie domaIne mydomaine.fr : key "key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3Bmb3I...YnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { "key"; }; }; options { pid-file "/var/run/named/named.pid"; directory "/var/named"; }; ... meme cIeI que ceIIe deIInIe pour rnd dans JetcJrndc.conI serveur DNS matre AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A116 /etc/named.conf serveur DNS matre : suIte deIInIt Ia zone Inverse 192.168.74 de type master a partIr d'un IIchIer zone zone "." { type hint; file "named.cache"; }; zone "mydomaine.fr"{ type master; file "named.mydomaine"; }; zone "74.168.192.in-addr.arpa"{ type master; file "named.74.168.192"; }; zone "0.0.127.in-addr.arpa"{ type master; file "named.0.0.127"; }; deIInIt Ia racIne de type hint a partIr d'un IIchIer zone deIInIt Ia zone mydomaIne.Ir de type master a partIr d'un IIchIer zone R *N# ' Con)i%uration ser+eur maMtre ' )ihier named.on) deIInIt Ia correspondance : 127.0.0.1<>IocaIhost AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A117 PrIncIpaux types d'enregIstrement d'un IIchIer zone DNS #O< start oI authorIty : deIInIt Ie serveur DNS IournIssant I'InIormatIon IaIsant autorIte sur un domaIne nternet N# name server : deIInIt Ies serveurs DNS de ce domaIne 2X maII exchange : deIInIt Ies serveurs maII pour ce domaIne < address : assocIe une adresse Pv4 a un nom d'hte <<<< Pv6 address : assocIe une adresse Pv6 a un nom d'hte PT" poInter : assocIe un nom de domaIne a une adresse P CN<2@ canonIcaI name : decIare un nom aIIas d'un autre #"= generaIIse Ia notIon de MX record, standardIse dans Ia RFC 2782. R *N# ' Con)i%uration ser+eur ' struture d'un )ihier de Aone AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A118 @ IN SOA serv1.mydomain.fr. jl.mydomain.fr. ( 2005112501 ; numro srie (annee mois jour xy) 21600 ; rafraichissement aprs 6h 3600 ; nouvel essai aprs 1h 604800 ; expiration aprs 7 jours 86400 ) ; TimeToLive (TTL) de 1 jour ; serveurs (primaire et secondaires ...) IN NS serv1.mydomaine.fr. IN NS serv2.mydomaine.fr. ; changeur de courier SMTP IN MX 0 mail.mydomaine.fr. ; machines du domaine localhost IN A 127.0.0.1 serv1 IN A 192.168.74.1 serv2 IN A 192.168.74.2 mail IN A 192.168.74.10 asterix IN A 192.168.74.100 ... ; alias de machines ftp IN CNAME serv2 R *N# ' Con)i%uration ser+eur ' struture )ihier Aone ATTENTON : tous Ies noms d'htes DOVENT etre termInes par un . AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A119 R *N# ' Con)i%uration ser+eur ' struture )ihier Aone Ie symboIe IndIque Ie domaIne auqueI s'appIIque Ie IIchIer (IcI mydomaIne.Ir). => Ies noms partIeIIement quaIIIIes sont reIatIIs a ce domaIne Structure du debut d'autorIte #O< : rappeI du nom du serveurmatre (serveur1.mydomaIne.Ir) adresse maII responsabIe du serveur (caractere rempIace par. expIe : jImydomaIne.Ir > jI.mydomaIne.Ir) parenthese ouvrante ( numero de serIe IntervaIIe entre 2 tentatIves des serveurs secondaIres de se resynchronIser sur Ie serveur prImaIre attente avant une nouveIIe tentatIve Iorsque Ia resynchronIsatIon d'un serveur secondaIre a echoue deIaI au bout duqueI Ies donnees expIres sur Ies serveurs secondaIres duree de vIe sur Ies serveurs autres que Ies serveurs secondaIres parenthese Iermante ) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A120 @ IN SOA serv1.mydomain.fr. jl.mydomain.fr. ( 2005112501 ; numro srie (annee mois jour xy) 21600 ; rafraichissement aprs 6h 3600 ; nouvel essai aprs 1h 604800 ; expiration aprs 7 jours 86400 ) ; TimeToLive (TTL) de 1 jour ; IN NS serv1.mydomaine.fr. IN NS serv2.mydomaine.fr. 1 IN PTR serv1.mydomaine.fr. 2 IN PTR serv2.mydomaine.fr. 10 IN PTR mail.mydomaine.fr. ... 100 IN PTR asterix.mydomaine.fr. ... R *N# ' Con)i%uration ser+eur ' struture )ihier Aone in+erse La zone Inverse K>.1IO.1R0.in4addr.arpa decrIt Ies machInes du reseau 192.168.74.0: AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A121 @ IN SOA localhost. root.localhost. ( 2005112501 ; numro srie (annee mois jour xy) 21600 ; rafraichissement aprs 6h 3600 ; nouvel essai aprs 1h 604800 ; expiration aprs 7 jours 86400 ) ; TimeToLive (TTL) de 1 jour ; IN NS localhost. ; rsolution inverse 127.0.0.1 -> localhost 1 IN PTR localhost. R *N# ' Con)i%uration ser+eur ' struture )ihier Aone in+erse La zone Inverse T.T.10K.in4addr.arpa decrIt Ies machInes du reseau 127.0.0.0: AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A122 ; <<>> DiG 9.3.0 <<>> @a.root-servers.net ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42818 ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: 518400 IN NS A.ROOT-SERVERS.NET. 518400 IN NS H.ROOT-SERVERS.NET. ... 518400 IN NS E.ROOT-SERVERS.NET. 518400 IN NS D.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 ... D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 ... R *N# ' Con)i%uration ser+eur ' )ihier de Aone raine On cree ce IIchIer par Ia commande : dig @a.root-servers.net > named.cache AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A123 options { default-server localhost; default-key "key"; }; server localhost { key "key"; }; key "key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3VnaCB...nV0GUgZm9yIGEgd29tYW4K"; }; R *N# ' Con)i%uration ser+eur ' $e )ihier rnd.on) /etc/rndc.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A124 R *N# ' Initia$isationJ $anement du ser+eur Apres I'InstaIIatIon du paquet serveur *N# : 1 ConIIgurer Ie nom de domaIne DNS 2 dIter sI besoIn Ie IIchIer /etc/host.conf : choIx de I'ordre des methodes de resoIutIon FQDN<>adresse P (IocaI, dns, nIs Z) 5 dIter sI besoIn Ie IIchIer /etc/nsswitch.conf : choIx de I'ordre des methodes d'acces aux IIchIers 6 dIter Ie IIchIer /etc/named.conf : conIIgurer au besoIn 7 Creer Ie IIchIer de zone racIne 8 dIter Ies IIchIers de zone 9 Lancer Ie serveur. 10 - Tester avec Ies commandes host ou dig AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A125 R *N# ' Con)i%uration $ient ' rseau HOSTNAME=hostaaa.mydomaine.fr NETWORKING=yes GATEWAY=192.168.74.1 NISDOMAIN=tpAL /etc/sysconfig/network C$ient )ixe => on peut precIser Ie nom du domaine *N# C$ient nomade ?porta!$eG on peut precIser Ie nom du domaIne DNS dans Ie IIchIer network, maIs P8 quand on change de reseau ! I est pIus Interessant d'utIIIser Ia conIIguratIon dynamIque *HCP pour recuperer Ies InIormatIons nom de domaIne DNS et serveur DNS ... request subnet-mask, broadcast-address, time-offset,routers, domain-name, domain-name-servers, host-name, nis-domain; ... /etc/dhclient-eth0.conf /etc/dhclient.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A126 /etc/nsswitch.conf /etc/host.conf ContIent Ies InIormatIons Iues par Ies routInes de Ia bIbIIotheque resoIver :
namesever adresse P d'un serveur DNS accessIbIe search nom du domaIne quI sera rajoute par deIaut aux noms de domaIne partIeIIement quaIIIIes /etc/resolv.conf R *N# ' Con)i%uration $ient ?reso$+erG search mydomaine.fr nameserver 192.168.74.1 Exemple /etc/resolv.conf AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A127 /etc/named.conf R *N# ' Con)i%uration ser+eur es$a+e ' $e )ihier named.on) I est pIus que conseIIIe de conIIgurer un ou pIusIeurs serveur DNS escIave par zone. Le serveur DNS escIave reoIt Ia copIe des IIchIers zones envoyes par Ie serveur DNS matre. key "key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3Bmb3I...YnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { inet 127.0.0.1 allow { any; } keys { "key"; }; }; options { pid-file "/var/run/named/named.pid"; directory "/var/named"; }; ... Le debut du IIchIer named.conI est IdentIque a ceIuI du serveur matre serveur DNS ecIave AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A128 /etc/named.conf serveur DNS escIave : suIte deIInIt Ia zone Inverse 192.168.74 de type s$a+e zone "." { type hint; file "named.cache"; }; zone "mydomaine.fr"{ type slave; masters { 192.168.74.1; } file "named.mydomaine"; }; zone "74.168.192.in-addr.arpa"{ type slave; masters { 192.168.74.1; } file "named.74.168.192"; }; zone "0.0.127.in-addr.arpa"{ type master; file "named.0.0.127"; }; deIInIt Ia racIne de type hint a partIr d'un IIchIer zone deIInIt Ia zone mydomaIne.Ir de type s$a+e R *N# ' Con)i%uration ser+eur es$a+e ' )ihier named.on) deIInIt Ia correspondance : 127.0.0.1<>IocaIhost AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A129 1 PresentatIon d'UnIx 2 PrIncIpes de IonctIonnement d'UNX 3 Iements d'admInIstratIon UNX 4 nstaIIatIon de LInux (TP) 5 Les IIchIers de conIIguratIon (TP) 6 CestIon des utIIIsateurs, des groupes (TP) 7 ConIIguratIon de NS (TP) 8 ConIIguratIon de NFS (TP) 9 ConIIguratIon de DNS (TP) 1T Con)i%uration de L*<P ?TPG 11 ConIIguratIon de SAM8A (TP) Cours d'administration Unix Cours d'administration Unix AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A130 R L*<P ' Prsentation L*<P : un annuaIre centraIIse PresentatIon nstaIIatIon ConIIguratIon Lancement TP AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A131 R L*<P ' Prsentation L*<P (LIghtweIght DIrectory Access ProtocoIe ; http:JJwww.openIdap.org) ProtocoIe ouvert d'acces a un <nnuaire (1993), resuItant de I'adaptatIon de Ia norme X.500 a TCPJP Les <nnuaires sont des 8ases de Donnees partIcuIIeres specIaIIsees dans Ia recherche de I'InIormatIon, pas dans Ie traItement L'organIsatIon d'un annuaIre LDAP est hIerachIque et dynamIque (structure et contenu) voIutIvIte : on peut IacIIement ajouter des InIormatIons a un objet d'un annuaIre (structure et contenu) La dernIere versIon L*<P+7 propose chIIIrement (SSL, ...) et authentIIIcatIon (SASL) pour securIser I'acces aux InIormatIons OpenL*<P est un annuaIre derIve de LDAP de I'UnIversIte du MIchIgan AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A132 Un annuaIre permet de stocker des donnees typees, organIsees seIon des cIasses partIcuIIeres presentees dans un arbre. L'exempIe Ie pIus commun est I'annuaIre de personnes MaIs on peut stocker bIen d'autres choses: comptes UnIx, donnees personneIIes (carnet d'adresses, photos, etc.), donnees d'IdentIIIcatIon, certIIIcats ... ... pIus generaIement tout ce quI peut etre nomme et a quI on peut attacher des InIormatIons. R L*<P ' Prsentation AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A133 Un cIIent ouvre une sessIon LDAP sur Ie port TCP 389 du serveur. Le cIIent envoIe des requetes au serveur quI envoIe des reponses en retour. Une IoIs Ia connexIon au serveur etabIIe, Ies operatIons cIassIques sont : 1ind : IndIque Ia versIon du protocoIe utIIIsee, et authentIIIe I'utIIIsateur. #tart TL# : utIIIsatIon Transport Layer SecurIty pour securIser Ia connexIon o #earh : recherche dans I'annuaIre et rapatrIement des donnees ; o Compare : test sI une entree contIent un attrIbut avec une vaIeur donnee o <dd : ajout d'une nouveIIe entree ; o *e$ete : suppressIon d'une entree ; o 2odi)( : modIIIcatIon d'une entree ; o 2odi)( *N : depIacement ou renommage d'une entree ; o <!andon : annuIatIon d'une requete precedente ; o @xtended : permet de deIInIr d'autres operatIons ; Un!ind : cIture Ia connexIon. R L*<P ' Prsentation 4 Prinipe d'une session AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A134 Serveurs LDAP Apache DIrectory Server Fedora DIrectory Server Red Hat DIrectory Server OpenLDAP NoveII eDIrectory Sun DIrectory Server EnterprIse EdItIon 8M SecureWay DIrectory 8M TIvoII DIrectory Server (IormerIy 8M DIrectory Server) 8M Lotus DomIno WIndows Server 2003 ActIve DIrectory OracIe nternet DIrectory ... R L*<P ' Prsentation @xemp$es de ser+eurs L*<P ' AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A135 R L*<P ' Prsentation 4 L'ar!oresene d'in)ormations ?*ITG Les InIormatIons d'un annuaIre sont organIsees seIon une arborescence hIerarchIque (Ie *IT : DIrectory nIormatIon Tree) Ies InIormatIons sont des entrees (*#@ : DIrectory ServIce Entry) Au seIn du *IT, I`IdentIIIcatIon d`une entree se IaIt a I`aIde d`un nom,Ie *istin%uish Name (DN). "e$ati+e *istin%uished Name (RDN) ExempIe : mail=Audrey.Tautou@inpg.fr, uid=tautoua, etc. *istin%uished Name (DN) RDN + chemIn dans I'arborescence en remontant attrIbut du RDN a choIsIr pour que tout DN soIt unIque ExempIe : uid=tautoua,ou=people,ou=inpg,dc=agalan,dc=org AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A136 R L*<P ' Prsentation 4 L'ar!oresene d'in)ormations ?*ITG Les entres de I'annuaIre sont des o!;ets (correspond a un objet abstraIt ou reeI ), appartIennent a des $asses, deIInIssant des attrIbuts Ies attrIbuts, Ies syntaxes et Ies cIasses d`objets sont IdentIIIes a I`aIde d`un numro unique, OI* (Object dentIIIer). L`ensembIe des attrIbuts, de Ieur syntaxe, des regIes de comparaIson et des cIasses d`objets, constItue Ie shma de I`annuaIre. AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A137 est constItuees d'attrIbuts obIIgatoIres (MUST) ou optIonneIs (MAY) est de type structureIIe, auxIIIaIre ou abstraIte s'InscrIt dans un arbre d'herItage de cIasses (SUP : cIasse mere) LDAP deIInIt des cIasses d'apres X.500 On peut en IabrIquer de nouveIIes ! R L*<P ' Prsentation P Les C$asses Une $asse inetorgPerson ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' SUP organizationalPerson STRUCTURAL MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $... x500uniqueIdentifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) ) @xemp$e de $asse AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A138 R *N# ' Insta$$ation 4 ser+eur FIchIers bInaIres (commande ou demon)
FIchIers de conIIguratIon
FIchIers de Iancement
/etc/logrotate.d/ldap /etc/openldap /etc/openldap/DB_CONFIG.example /etc/openldap/schema /etc/openldap/schema/local.schema /etc/openldap/slapd.access.conf /etc/openldap/slapd.conf /etc/rc.d/init.d/ldap /etc/ssl/openldap /etc/sysconfig/ldap /usr/lib/openldap /usr/lib/openldap/accesslog-2.3.so.0... /usr/sbin/slapacl /usr/sbin/... /usr/sbin/slapd... /usr/sbin/slappasswd... /usr/share/doc/openldap-servers-2.3.6 ... /usr/share/man/man5/slapd-bdb.5.bz2 ... /usr/share/openldap/schema... /usr/share/openldap/schema/autofs.schema ... Paquet serveur : open$dap-servers-2.3.6 Insta$$ation : rseau prerequIs, serveur -> urpmi openldap-servers-2.3.6 nom du bInaIre Idap (StandaIone LDAP Daemon) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A139 R *N# ' Insta$$ation 4 ser+eur <utres paquets B insta$$er ' open$dap4$ients IournIt Ies commandes : Idapadd, IdapdeIete, IdapmodIIy, Idapsearch, ... nssQ$dap IournIt I'InterIaage entre L*<P et le Name Service Switch (fichier /etc/nsswitch) pamQ$dap IournIt I'InterIaage entre L*<P et Ie Linux4P<2 (ModuIe d'authentIIIcatIon pour LInux) AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A140 IIchIer ASC contenant dIIIerents types de IIgne : des IncIude de schemas preetabIIes : include /usr/share/openldap/schema/nis.schema des deIInItIons d'ACL (Access ControI LIst) compIementaIres include /etc/openldap/slapd.access.conf des deIInItIons de base : database bdb suffix "dc=world-company,dc=com" PreconIsatIons de I'ETF : > du nom de domaIne DNS comme suIIIxe de son annuaIre > I'utIIIsatIon de I`attrIbut DomaIn Component (dc) : dc=worIdcompany, dc=com /etc/openldap/slapd.conf R L*<P ' Con)i%uration 4 ser+eur ConIIguratIon du serveur $dap stand4a$one AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A141 /etc/openldap/slapd.conf R L*<P ' Con)i%uration 4 ser+eur suIte Ie repertoIre ou seront stockes Ies IIchIers de donnees Idpap : directory /var/lib/ldap Le nom du superutIIIsateur pour cette base : rootdn "cn=admin,dc=example,dc=com" et son mot de passe : rootpw {SSHA}/egZlrlv21XhkwRsU2cjzZ6F0Upd31ar Le mot de passe crypte peut etre genere par Ia commande slappasswd : [root@mars ~]# slappasswd -h '{SSHA}' -s secret -v [root@mars ~]# {SSHA}/egZlrlv21XhkwRsU2cjzZ6F0Upd31ar AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A142 L*<P *ata Interhan%e &ormat (LDF) est Ie standard de representatIon des entrees sous Iorme texte. UtIIIse pour aIIIcherJmodIIIer Ies donnees de Ia base suIvant deux modes : IaIre des ImportsJexports de base, IaIre des modIIIcatIons sur des entrees. Le Iormat utIIIse est I`ASC. Toute vaIeur d`attrIbut ou tout DN quI n`est pas ASC, est code en base 64. Des exempIes de IIchIers LDF seront vus en TP. R L*<P ' $e $an%a%e textue$ L*I& AdmInIstratIon UnIx v1.2 jeanIuc CharIesJ 01J02J2007 page A143 CRU (ComIte Reseau des UnIversItes): http:JJwww.cru.IrJIdapJ