Linux Config

download Linux Config

of 121

Transcript of Linux Config

Version originale et plus jour : http://troumad.org/Linux/Linux.odt ou http://troumad.info/Linux/Linux.odt

Table des matiresI ) INTRODUCTION.........................................5 A ) Mon cours................................................................. 5 B ) Unix.......................................................................... 5 C ) GNU : GNU's Not Unix ........................................... 5 D ) Linux......................................................................... 5 E ) Les interfaces graphiques........................................ 5 F ) Les distributions....................................................... 6 G ) Les listes de discussions aides en ligne................7 II ) Disques et partitions et systme de fichiers..............................................................8 A ) Structure de disques dur.......................................... 8 B ) Disques et partitions................................................ 8 C ) Systme de fichiers................................................... 8 D ) L'arborescence Linux............................................... 8 E ) Remarques............................................................... 9 III ) Fichiers, Rpertoires et Liens................10 A ) Rpertoires/Fichiers.............................................. 10 B ) Les liens.................................................................. 10 1)prsentation...........................................................10 2)Les droits...............................................................10 C ) Premiers outils pour manipuler les fichiers..........10 1)Ligne de commande...............................................10 2)Les scripts..............................................................13 3)Interface graphique................................................17 D ) Rsum des commandes du shell (BASH).............17 IV ) Installation de Mandriva LINUX...........20 A ) Prsentation........................................................... 20 B ) Prparation de l'installation................................. 20 C ) Cahier des charges de l'installation...................... 20 D ) Installation............................................................ 20 E ) Configuration......................................................... 21 V ) Manipulation...........................................22 A ) Cration de comptes et de groupes....................... 22 1)Prsentation...........................................................225178907274d4c7106595d8.odt Page 1 sur 121 2)ligne de commande...............................................22 3)interface graphique...............................................23 B ) Systme de droits sur les fichiers.......................... 24 1)Propritaire, groupe propritaire et autres...........24 2)Les droits sur les fichiers.......................................24 3)Avec les rpertoires...............................................24 4)Les ACL.................................................................24 C ) Grer les processus................................................. 25 1)ps, top, kill et killall................................................25 2)excution d'une commande..................................25 D ) Arrt et lancement des dmons............................. 27 1)C'est quoi un dmon?.............................................27 2)En ligne de commande..........................................27 3)Avec une interface graphique................................27 E ) Ajouter/Enlever un programme........................... 27 1)Avec les rpm ou deb...............................................27 2)Sans les rpm..........................................................30 F ) Configuration des serveurs................................... 30 G ) Mettre le serveur l'heure.................................... 30 H ) Plantages?............................................................. 30 1)En sortir.................................................................30 2)Pourquoi ?..............................................................31

VI ) Le rseau................................................32 A ) Les adresses rseau................................................ 32 B ) Attribuer une adresse la carte ethernet.............32 C ) Les fichiers............................................................. 32 1)Sous Mandriva.......................................................32 2)Sous debian...........................................................33 D ) Un nom d hte....................................................... 33 1)Sous Mandriva.......................................................33 2)Sous debian...........................................................34 E ) Les adresses des PC du rseau............................... 34 F ) Changer la mac adresse......................................... 35 VII ) ftp..........................................................36 A ) La configuration du serveur................................. 36 B ) Certificat SSL.......................................................... 3704/02/11

C ) gproftpd.................................................................. 37

VIII ) ssh.......................................................38 A ) Prsentation........................................................... 38 B ) Installation............................................................. 38 C ) Utilisation............................................................... 38 D ) Ouverture de sessions graphiques........................ 39 E ) Gnration des paires de clef prive/publique.....39 F ) Utilisation de scp................................................... 40 G ) Se loguer par SSH sans taper de mot de passe....40 1)Le principe.............................................................40 2)La pratique............................................................40 3)Automatisation en mode graphique.....................40 4)Automatisation en mode texte..............................41 H ) Quelques commutateurs ....................................... 41 I ) Tunnel ssh (redirection de ports)............................ 41 J ) Intgration de KDE................................................ 42 1)kdessh....................................................................42 2)Konqueror.............................................................42 K ) sftp.......................................................................... 42 L ) Se connecter sur une session graphique en ssh sur un autre ordinateur..................................................... 42 M ) Astuces................................................................... 43 IX ) samba.....................................................44 A ) Exemple de serveur................................................ 44 B ) Client Samba.......................................................... 45 C ) essayer................................................................ 45 X ) httpd........................................................46 A ) Prsentation........................................................... 46 1)Petite protection en lecture...................................46 2)Rpertoire personnel.............................................46 3)Virtualhost.............................................................47 4)Rpertoires des sites web sur votre PC.................47 5)Ajuster la charge....................................................47 6)Protection intranet-extranet.................................48 7)Les log....................................................................48 B ) php.......................................................................... 48 1)Mandriva...............................................................48 2)debian....................................................................48 3)Gnral..................................................................48 C ) WebDAV................................................................. 49 1)Prsentation...........................................................49 2)Installation/configuration....................................49 3)Utilisation d'un serveur DAV................................49 D ) HTTPS.................................................................... 50 E ) Apache sans internet............................................. 50 XI ) MySQL....................................................52 A ) Installation............................................................. 52 1)Les paquetages.......................................................52 2)Rpertoire des donnes.........................................52 3)Plus de scurit......................................................52 B ) Cration d'une base pour un utilisateur...............52 C ) phpMyAdmin......................................................... 53 D ) Bonus...................................................................... 54 E ) Accessibilit de l'extrieur...................................... 54 F ) ODBC...................................................................... 54 XII ) Partage de donnes / nfs......................565178907274d4c7106595d8.odt Page 2 sur 121

A ) Prsentation........................................................... 56 B ) Serveur nfs............................................................. 56 1)Installation.............................................................56 2)Avec un fire-wall....................................................56 3)Protection avec hosts.deny et hosts.allow.............57 4)derrire un routeur...............................................58 C ) Client nfs................................................................. 58 1)Logiciels installer................................................58 2)/etc/fstab...............................................................58 3)rcuprer le partage..............................................59 4)Fermer le partage..................................................59 D ) NFSv4..................................................................... 59 1)Prsence de NFSv4................................................59 2)Configuration de kerberos.....................................59 E ) shfs.......................................................................... 60 F ) LUFS....................................................................... 60 G ) SSHFS.................................................................... 60 H ) Autres ( regarder)................................................ 61

XIII ) Fire-wall..............................................62 A ) Shorewall............................................................... 62 1)Prsentations.........................................................62 2)Configurer le fichier "zones" ................................62 3)Configurer le fichier "interfaces"..........................62 4)Configurer le fichier "masq" .................................63 5)Configurer le fichier "policy" ................................63 6)Configurer le fichier "rules" .................................64 7)Configurer le fichier "tunnels" .............................66 8)Configurer le fichier "hosts" .................................66 9)Prendre en compte la configuration.....................66 B ) Notions Iptables..................................................... 66 1)On vrifie qu'iptables est disponible.....................66 2)Iptables..................................................................67 3)Fichier de configuration........................................67 4)Mise en place..........................................................71 5)Autres astuces........................................................71 C ) Tests........................................................................ 72 XIV ) Serveur DNS.........................................73 A ) Prsentation........................................................... 73 B ) Liens........................................................................ 73 C ) Exemple.................................................................. 73 1)named.conf............................................................73 2)Fichier named.local...............................................75 D ) MyDNS-Admin...................................................... 76 E ) Tests........................................................................ 77 F ) resolv.conf............................................................... 77 XV ) Proxy.....................................................78 A ) Prsentation........................................................... 78 B ) Fichier de configuration........................................ 78 C ) Francisation........................................................... 79 D ) Squid ne trouve plus votre site prfr.................79 XVI ) Dansguardian..................................... 80 XVII ) Serveur DHCP.....................................81 A ) Prsentation........................................................... 81 B ) Exemple.................................................................. 81 C ) remarques............................................................... 81 1)Interdire une personne..........................................81 2)Plusieurs cartes rseaux........................................8204/02/11

3)Rcuprer les mac adresses des PC du rseau......82

XVIII ) Terminal serveur X...........................83 XIX ) Gestion d'un serveur de Courriel (Mail) ......................................................................84 A ) Installation............................................................. 84 B ) Les aliases.............................................................. 84 1)Utilisation normale................................................84 2)Cration d'adresse de groupe (nom revoir).......84 C ) Premier test : messagerie locale........................... 84 D ) Second test : vers l'extrieur................................. 85 1)Sans nom de domaine valide.................................85 2)Avec un nom de domaine valide...........................86 E ) Troisime test : lire le courriel de l'extrieur........86 F ) Quatrime test : recevoir le courriel de l'extrieur ...................................................................................... 87 G ) Cinquime test : envoyer le courriel depuis l'extrieur.............................................................................. 87 H ) Exemple de fichiers de configuration...................87 1)/etc/postfix/main.cf..............................................87 2)/etc/postfix/access................................................89 I ) Petit plus.................................................................. 89 J ) Test open relais ................................................. 89 K ) SpamAssassin........................................................ 89 L ) Amliorations possibles......................................... 89 XX ) Serveur NIS...........................................90 A ) Prsentation........................................................... 90 B ) Le serveur............................................................... 90 C ) Les clients................................................................ 91 D ) Changement de mot de passe / ajout d'utilisateurs ...................................................................................... 91 XXI ) Configurer un serveur d'impression ...92 A ) Une imprimante / plusieurs ordinateurs.............92 B ) Cups........................................................................ 92 1)Serveur...................................................................92 2)Client.....................................................................92 XXII ) Partage de scanner ............................ 93 A ) serveur.................................................................... 93 B ) Client....................................................................... 93 XXIII ) Configurer un serveur de temps avec ntp.................................................................94 A ) Introduction........................................................... 94 B ) Le principe dans ses grandes lignes...................... 94 C ) L'installation concrte........................................... 95 1)Configuration de ntp..............................................95 2)Synchroniser un poste LINUX sur votre serveur de temps local................................................................97 3)Synchroniser un poste windows ..........................98 4)Synchroniser un poste MACINTOSH SYSTEME 8 OU 9..........................................................................98 5)Systme MacOSX..................................................98 XXIV ) LDAP.................................................99 A ) Prsentation........................................................... 99 B ) Installation............................................................. 99 1)Les rpm..................................................................99 2)Le fichier de configuration....................................995178907274d4c7106595d8.odt Page 3 sur 121

3)Premiers essais....................................................100 4)Structure des donnes.........................................102 C ) Un peu de vocabulaire......................................... 103 1)Le schma............................................................103 2)Les attributs.........................................................103 3)Les classes d'objets..............................................104 4)Le Distinguish Name...........................................104 5)LDIF.....................................................................104 D ) phpldapadmin..................................................... 104 E ) Utiliser OpenLDAP pour l'authentification........104 1)Manipulation sur le serveur.................................105 2)Installation du client...........................................106 F ) Utiliser OpenLDap pour Samba.......................... 107

XXV ) Sauvegarde systme.........................109 XXVI ) Configurer et compiler le noyau......111 A ) Premier test........................................................... 111 B ) Tests suivants........................................................ 111 C ) Faire le mnage..................................................... 112 XXVII ) Scurit...........................................113 A ) Les utilisateurs...................................................... 113 B ) l'utilisateur root.................................................... 113 C ) Configurer lilo....................................................... 113 D ) Configurer le noyau............................................. 113 E ) Les dmons et versions de logiciels...................... 113 F ) Un bon fire-wall.................................................... 114 G ) Visualiser vos ports ouverts................................. 114 H ) votre scurit rseau........................................... 114 I ) Consultez rgulirement vos fichiers de log.........114 1)log.........................................................................114 2)ulog.......................................................................115 3)fail2ban.................................................................115 J ) La sauvegarde des donnes.................................. 115 1)Le script................................................................115 2)Les besoins...........................................................115 3)Version plus simple..............................................116 4)Encore plus simple...............................................116 K ) Les vers et autres.................................................. 117 XXVIII ) ranger !...................................... 118 A ) Installation de Grub............................................. 118 1)Prsentation.........................................................118 2)Installation...........................................................118 3)menu.lst................................................................119 4)Scuriser Grub.....................................................120 B ) Quota.................................................................... 120 C ) forkbomb............................................................... 121 D ) Passerelle Linux avec du Wifi.............................. 121 E ) Mise jour Mandriva.......................................... 123 F ) Onduleurs (UPS en anglais)................................. 123 G ) La mmoire........................................................... 125 H ) Scurit avec un changement de port.................125 I ) Annexes...................................................126 A ) Remerciements et bibliographie..........................126 Index Lexical.............................................................. 127 Petit lexique................................................................ 128 Petit lexique................................................................ 12904/02/11

I ) INTRODUCTION

A ) Mon coursLe but de ce cours est de montrer que LINUX existe et qu'on peut monter pleins de serveurs diffrents partir des CD d'installation. Le public vis est une classe de licence professionnelle, le temps d'enseignement est de 4 heures de TD et 9 de TP. Ce cours dborde donc largement du peu de temps disponible. Dans ce document je ne fais que relater mon exprience et je me sers aussi de ce cours pour monter mes propres serveurs. Ceci me permet de le modifier chaque utilisation. Je n'aborde pas l'installation de tous les serveurs, chaque serveur abord mriterait lui seul un livre entier et je ne peux lui consacrer que quelques pages qui sont donc incompltes. Je serais heureux de recevoir des remarques constructives mon adresse : [email protected] afin d'amliorer ce document qui a comme mission aussi bien d'aider les utilisateurs de LINUX monter leurs serveurs sur leur PC que de faire dcouvrir LINUX des personnes qui s'intressent l'installation de serveurs. Je peux aussi rajouter des chapitres sur d'autres serveurs si vous me les passez.

B ) UnixiInformations disponibles sur : http://www.linux-france.org/article/jdanield/V2.0/ http://fr.wikipedia.org/wiki/UNIX#.C3.80_l.27heure_actuelle Unix est un systme d'exploitation multi-utilisateur et multi-tche n en 1969. Depuis 1973, Unix est crit en C. Une des forces d'UNIX est d'tre disponible sur plusieurs architectures avec des normes suffisamment strictes qui permettent d'avoir seulement recompiler un programme pour passer d'une architecture l'autre. Depuis 1987, UNIX est mme disponible sur PC , le nom de cette premire version est Minix. L'interface utilisateur d'Unix est constitue : - D'un ensemble de programmes excutables : les commandes - Du shell, interprteur de commande mais aussi, plus que dans n'importe quel autre systme d'exploitation, langage de commande permettant d'crire des programmes, scripts, d'une grande complexit. Travailler en ligne de com mande, c'est utiliser la puissance du shell sur une console texte sans interface graphique.

C ) GNU : GNU's Not Unix(http://www.gnu.org/) Le 27 septembre 1983, le projet GNUii nat dans la tte de Richard Stallman : A dater de ce Thanksgiving, je vais crire un systme d'exploitation complet compatible Unix appel GNU (pour Gnu N'est_pas Unix) et le donner gratuitement toute personne qui peut l'utiliser. Des contributions en temps, argent, programmes sont grandement ncessaires . Pourquoi Je Dois crire GNU Je considre que la rgle d'or exige que si j'aime un programme je dois le partager avec les autres personnes qui l'aiment. Je ne peux pas, en bonne conscience signer un accord de non divulgation ou de licence sur un logiciel. GNU est l'origine des licences GPL (General Public licence) et donc des logiciels libres. Parmi les logiciels libres, on trouve, entre autre, Linux et une grande partie des logiciels tournant sous Linux.

D ) LinuxAu cours de l'anne 1991, un tudiant finlandais, Linus Torvalds, trouvant Minix trop limit, dcide d'crire un noyau Unix pour PC. Il ralise quelques modules (juste de quoi faire fonctionner un lecteur de disquettes) et poste le tout sur le site Internet de son universit. Depuis Linus Torvalds est rest propritaire du noyau et en assure la maintenance. Son initiative allait dchaner l'enthousiasme de milliers de programmeurs, et le nom du noyau, Linux devait bientt, dans l'esprit du public, supplanter celui de GNU ou de FSF. Pourtant, en nombre d'octets, la contribution de GNU est bien plus importante que celle de Linux. Attention, Linux est le noyau. Il ne faut pas le confondre avec les interfaces graphiques qui sont disponibles sous Linux (voir chapitre suivant). Voir le site : http://cern91.tuxfamily.org/linux/menu.php4?page=gnulinux Linux est donc un Unix parmi d'autres.

E ) Les interfaces graphiquesUne interface graphique n'est qu'une interface permettant d'accder des commandes qui sont souvent si puissantes, que l'on ne peut vraiment les exploiter fond seulement en ligne de commande. Prenez l'exemple des logiciels gra veurs : 4 ou 5 (et plus) interfaces et au fond, 2, 3 commandes derrire qui sont les mmes (c'est un peu raccourci, mais c'est quand mme l'ide). Linux dispose de plusieurs interfaces graphiques (windows manager ou WM) connues comme KDE, Gnome, ICEwm... Certaines sont plus puissante (KDE) que d'autres qui demandent moins de ressource (ICEwm). Ceci permet de pouvoir installer la version souhaite en fonction du matriel disponible et des besoins. Sur un petit PC qui peut servir de serveur (http, ftp, samba...), nous pouvons mettre les dernires versions (avec les dernires corrections des derniers bug

5178907274d4c7106595d8.odt

Page 4 sur 121

04/02/11

trouvs) du serveur avec un WM peu gourmand. On peut mme se passer de WM car la ligne de commande suffit confi gurer notre ordinateur. Lorsque qu'on travaille avec un WM, nous avons la possibilit d'ouvrir des shell ou console pour travailler en ligne de commande ou lancer des programmes graphiques. Certains programmes graphiques, comme ceux de configurations, ne sont que des interfaces (GUI : Graphical User Interface) conviviales pour faire des manipulations faisables en ligne de commande. Personnellement, je trouve la ligne de commande plus puissante, certes elle demande un investissement au dpart, mais il est vite rentabilis! Les interfaces graphiques sont gres par un serveur X, iii, programme qui fournit des services graphiques. Il prend en charge la gestion des priphriques d'entre et de sortie clavier, souris, cran). Ce serveur a d'normes possibilits que nous ne traiterons pas ici. Par exemple, le serveur peut tourner sur un ordinateur et l'affichage se faire sur un autre. Une petite force des interfaces graphiques, tester avec modration (risque de saturation de RAM ou du proces seur) avec le x de la fin suprieur 0 :startx startx startx startx startx startx startx startx /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession /etc/X11/xdm/Xsession Gnome -- :X WindowMaker -- :X Enlightenment -- :X BlackBox -- :X IceWM -- :X Sawfish -- :X XFce -- :X KDE -- :X

Vous ouvrez ainsi un terminal, le 7+X avec l'interface choisie (F(7+X) pour y accder). startx /etc/X11/xdm/Xsession fluxbox -- :1 & xrandr -s 640x480 -d :1X -query adresse-IP-de-la-machine :1

Cette dernire ligne impose en plus la rsolution.

Vous tes en Ctrl-Alt-F8 avec une session X ouverte sur un PC distant indiqu par adresse-IP-de-la-machine . Remarque : il est FORT DCONSEILL d'ouvrir une interface graphique en tant qu'administrateur. Il faut le faire en tant qu'utilisateur normal et aprs prendre le contrle en tant qu'administrateur dans un shell en faisant su ou su - .

F ) Les distributionsLinux et tous les programmes qui vont avec sont avant tout livrs sous forme de source compiler. Il est tout fait faisable de rcuprer les sources (voir de les modifier) puis de les compiler. Ceci est particulirement fastidieux car il y a souvent une foule de paramtres rgler (il faut connatre parfaitement son systme ! ) et c'est vraiment long : plusieurs journes (semaines ?) juste pour la compilation. Pour viter cela, Linux est bien plus souvent diffus sous forme d'une distribution. Une distribution est un ensemble de programmes (noyaux, commandes, applications...) qui assure une installa tion d'un systme complet. Voici une liste de distributions : Knoppix (http://knoppixfr.tuxfamily.org/) la distribution Linux bootable sur un CD. Elle est installe sur un CD pour tous les ordinateurs! On appelle de telles distributions des distributions lives. Mandriva / Mandrake (http://www.mandrivalinux.com/fr/) : c'est la distribution franaise qui s'est surtout oriente grand public avec un effort sur les outils d'installation et de configuration. Mandriva (anciennement Mandrake) distri bue gratuitement une version complte et dveloppe aussi une solution serveur payante. Nous utiliserons la version gra tuite de Mandriva. Redhat (http://www.fr.redhat.com/), comme Mandriva, RedHat est une entreprise. Fedora : la redhat gratuite pour test. Debian (http://www.fr.debian.org/) est la seule distribution relevant d'un projet GNU, elle est surtout prvu pour les serveurs ou les prof. Ubuntu (http://www.ubuntulinux.org/), un version dmocratise de la debian. Slackware (http://www.slackware.org/) soit disant la plus Unix des distributions. SuSE (http://www.suse.de/fr/) est une distribution qu'on peut trouver gratuitement depuis 2004 (rachat de SuSE par novell). OpenSuse : (http://www.opensuse.org/Welcome_to_openSUSE.org), la Suse gratuite. Gentoo (http://www.gentoo.org/) fournit un systme de paquetage sources qui sont recompils au moment de l'installation. SME (autrefois appele e-smith Server and Gateway) : (http://smeserver.fr/index.php) orient serveur. LFS (http://www.fr.linuxfromscratch.org/) : un systme o on doit tout installer la main partir de la compilation du noyau. Rescuecd (http://rescuecd.sourceforge.net) qui permet en cas de gros soucis de rparer son systme (Linux ou Windows), elle est base sur Debian. Elles n'ont pas d'interfaces graphiques, mais elle est trs efficace, et en plus elle est personnalisable trs facilement et avec n'importe distribution. System rescue (http://www.sysresccd.org/index.fr.php) est une autre distribution qui permet rparer un systme. La page http://www.linux-france.org/article/choix-distri/choix-distri.html vous fait un meilleur descriptif. Le site http://ikarios.com/ vous permet d'acqurir les distributions gratuites prix rduits si vous n'avez pas de connexion rapide internet.

5178907274d4c7106595d8.odt

Page 5 sur 121

04/02/11

nb : les distributions lives deviennent de plus en plus frquentes, Elles se rvlent trs pratiques pour intervenir sur des PC qui ont des problmes de disques dur afin de pouvoir esprer sauver des donnes avant la rinstallation d'un nou veau systme,

G ) Les listes de discussions aides en ligneSouvent les distributions offrent aussi des listes/forums de discussions gratuites o on peut soumettre nos pro blmes et essayer de rsoudre ceux des autres. Ces listes sont parfois plus ractives que les hot line et aident pour rsoudre les problmes. Elles ont souvent agrables frquenter car l'esprit du libre est le partage et les utilisateurs de LINUX sont souvent des amoureux de leur Os prfr. A ce propos, on comprend la tte sympathique de leur (notre) mascotte TUX (http://dmoz.org/Computers/Software/Operating_Systems/Linux/Tux/). Profitons en pour donner la dfinition de tux d'aprs http://www.linux-france.org/prj/jargonf/ : TUX = Petit nom du manchot, souvent confondu avec un pingouin, qui est la mascotte de Linux. Rien voir avec Tuxedo, mme si on peut se douter que Tux est une abrviation du smoking que portent certains volatiles... La petite histoire dit que le nom a t choisi lors du concours Let's Name The Penguin While Linus Is Away Contest ( Donnons un nom au pingouin pendant que Linus a le dos tourn ). Parmi ces listes, voici l'adresse d'inscription de celles de Mandriva : http://www.mandrivalinux.com/fr/flists.php3 . Il existe des listes de discutions pour des logiciels libres comme OpenOffice.org (http://fr.openoffice.org/contact-forums.html) le logiciel avec lequel je fais mes cours. Il existe aussi des forums d'aide comme http://www.developpez.net/forums/viewforum.php?f=5 qui fournissent des aides compltes (avec une introduction spciale dbutant) comme : http://nepomiachty.developpez.com/configlinux/index.php . Et surtout, on trouve normment d'aide sur internet. Tout au long de ce document, je m'en inspire en sitant mes source. Voici par exemple un tutoriel fait par un dbutant pendant son apprentissage : http://numarrou.free.fr/index.html.

5178907274d4c7106595d8.odt

Page 6 sur 121

04/02/11

II ) Disques et partichiers

tions et systme de fiSecteur

A ) Structure

de

disques durPistes / cylindres il y a plusieurs plateaux. Donc s'il y aDessin 1 : plateau de disque dur cylindres (pistes) et secteurs, ttes, = une piste. Voil a quoi ressemble

Un disque dur est compos de plateaux. On parle de cylindre quand qu'un seul plateau alors un cylindre un disque dur une fois format.

B ) Disques et parti-

tions

Un disque dur peut tre divis en plusieurs partitions,donc le diviser en plusieurs parties comme si on avait plu sieurs disques dur indpendants. Avant l'installation de tout OS, il faut prparer le disque dur, c'est dire crer des partitions et ensuite crer un systme de fichiers. En gnral sous windows vous avez une partition, avec un systme de fichiers (fat16, fat32, NTFS, suivant les versions). Un disque bien prpar devrait possder au moins deux partitions, une pour le systme et l'autre pour les donnes. Pour installer Linux il faut au minimum 2 partitions, mais je conseille minimum 3. La partition de swap, la partition systme, et la partition des donnes. La partition swap, sert de mmoire virtuelle, la mmoire virtuelle permet d'augmenter la mmoire, mais elle est trs lente car elle est sur le disque et que le disque a des temps d'accs plus lent La partition systme s'appelle / et elle peut tre divis en plusieurs partitions. La partition contenant les donnes s'appelle /home , et elle contient les donnes de tous les utilisateurs. Il existe plusieurs types de disques dur, il y a le type IDE et le type SCSI, je dtaille ces deux types car Linux les nomment diffremment. Avec le noyau 2.4, le nom du priphrique contient 3 lettres + un nombre. Les 2 premires lettres nous donne le type priphrique, la deuxime le n du disque dur, et le chiffre le n de partition. /dev/fd0 reprsente le premier (0) lecteur de disquette (fd) /dev/hda1 reprsente la premire (1) partition du premier (a) disque dur IDE (hd) /dev/sdb3 reprsente la troisime (3) partition du deuxime (b) disque dur SCSI (sd) Avec l'apparition du noyau 2.6, le grand mnage du rpertoire /dev a fait changer ses noms en crant des sous rpertoires : /dev/floppy/0 pour le premier lecteur de disquette (le second sera /dev/floppy/1 /dev/ pour les disques durs

C ) Systme de fichiersAprs avoir partitionn le disque il faut formater la partition, le formatage cre le systme de fichiers qui va recevoir les donnes et le systme d'exploitation. Linux reconnat beaucoup de systme de fichiers. Celui utilis par Linux est ext2 ou ext3 pour le standard, le premier est non journalis tandis que le deuxime est journalis. Mais il en existe d'autres que l'on peut utiliser comme reiserfs ou xfs. Les nouvelles distributions utilisent un systme de fichiers journalis, qui a l'avantage de pouvoir de se rparer plus facilement.

D ) L'arborescence LinuxLe rpertoire racine est / , il est cr par dfaut, il contient tous les autres sous-rpertoires. Chaque rpertoire a une signification bien prcise, au moins pour les rpertoires systme. Donc c'est un systme bien organis comme vous al lez le voir. /usr : Ce rpertoire contient toutes les ressources du systme, son nom signifie Unix System Ressources . /usr/bin : Contient les utilitaires installs sur le systme /usr/lib : Contient les bibliothques associes aux excutables de /usr/bin. /usr/include : Contient les fichiers d'entte, qui sont prsent que si on installe les versions de dveloppement. Ne sert que si on veut installer les versions sources des programmes. /usr/X11R6 : Concerne tous ce qui concerne Xfree86 ou xorg (l'interface graphique). /usr/share : Contient les ressources partages par tous les logiciels prsents dans /usr/bin /usr/local : Il reproduit l'arborescence de /usr, et il contient les programmes installs partir de sources. /usr/src : contient les sources des programmes. /boot : Il contient le noyau et tous ce qui permet Linux de booter, Il est prfrable de mettre cette partition sur les 1024 premiers cylindres, surtout pour les anciennes distributions, car sinon le bootloader ne pourra pas trouver ces fichiers. Il contient aussi le fichier de configuration de lilo (gestion de dmarrage multiboot) /boot/grub : fichiers de configurations de grub (concurent de lilo) /root : C'est le rpertoire du super utilisateur. /lib : Contient les librairies et les modules du noyau. /etc : Contient les fichiers de configuration. /home : Contient les donnes des utilisateurs. Chaque utilisateur a son propre rpertoire. /var : Il contient les courriers (si vous avez un serveur de mail), les files d'impressions et les journaux (logs), ces derniers ce trouve dans /var/logs. Par exemple si quelque chose ne va pas, on pourra trouver la raison dans ces fichiers. L'ori gine de var est variable. 5178907274d4c7106595d8.odt Page 7 sur 121 04/02/11

/dev : contient tous les fichiers grant les priphriques, son contenu est surtout gnr lors du boot. /proc : contient l'tat du systme, la diffrence des autres rpertoires, /proc est stock en memoire et non sur le disque dur. /mnt : sert monter par exemple des disques amovibles ou disques rseaux... mnt vient de mount. /media : remplace parfois /mnt pour monter des mdias comme les lecteurs de CDROM, DVD ,disquettes... /tmp : c'est un rpertoire temporaire. /opt : sert mettre des excutables en phase de test.

E ) Remarques1) Il existe un visualiseur graphique pour analyser l'encombrement des diffrents rpertoires de votre arborescence : filelight. Vous pouvez l'installer avec urpmi filelight ou apt-get install filelight pour Mandriva ou Debian. 2) Il faut savoir que sur Linux tout est fichiers. Pour vous convaincre : less /home par exemple. 3) Il arrive (surtout quand comme moi on fait sans arrt des tests sur tout et n'importe quoi) qu'on pense avoir tu la table des partitions. Pour ceci il existe plusieurs programmes qui peuvent vous sauver la vie : - sfdisk : donne des informations ce qu'il croit tre avec sfdisk -l /dev/sda - gpart : un peu plus bavard avec gpart -l /dev/sda - estdisk : pour rparer un boot perdu, monter une partition, copier les fichiers mme sans boot (il m'a dj sauv) - photorec : pour rcuprer des fichiers sur une partition endommage et mme reformate

5178907274d4c7106595d8.odt

Page 8 sur 121

04/02/11

III ) Fichiers, Rpertoires et LiensAvant de rentrer dans le systme, il faut savoir comment sont ranges les informations.

A ) Rpertoires/FichiersLes donnes sont stockes de manire hirarchise arborescente sur les disquettes, disques durs, CD-ROM.... Les informations sont dans des cases nommes rpertoires, dans ces rpertoires on trouve soit des fichiers (qui contiennent les donnes) soit d'autres rpertoires. L'ensemble des rpertoires forment l'arborescence de votre systme de donnes. Sur Unix (Linux donc aussi), la rpartition physique des donnes n'est pas visible de l'utilisateur final si l'adminis trateur fait bien son travail. On ne parle pas de disque C, du D...(comme dans DOS/Windows) tout est comme si on a un seul disque, mme pour les donnes partages qui viennent d'un autre ordinateur ( voir IX) B) 1) /etc/fstab). Ceci permet l'utilisateur final de passer d'un ordinateur l'autre sur un rseau sans changer d'environnement, les donnes de travail tant toujours stockes dans le mme rpertoire au mme endroit dans l'arborescence. Dire que la structure matrielle est compltement transparente, c'est un peu exagr car il faut bien savoir o est le CD, la disquette ou les autres priphriques amovibles! Rgulirement, c'est dans le rpertoire /mnt. Le premier est habituellement dans /mnt/floppy et le second dans mnt/cdrom. C'est aussi dans ce rpertoire que Linux installe (monte) automatiquement les partitions autres comme les partitions windows. Mais Linux tant entirement libre, on peut faire ce qu'on veut. Ceci peut tre modifi lors de l'installation.

B ) Les liens1) prsentationCeci n'est pas toujours vident, vous aurez par la suite une srie d'essais pour mieux comprendre (liens )! voir III) C) 1) f)

On peut, au lieu de dupliquer un fichier, mettre un lien vers ce fichier. Si on modifie le fichier partir du lien, on modifie le fichier, en revanche, si on l'efface une fois il reste pour l'autre. On peut aussi mettre un mme fichier dans plu sieurs rpertoires afin que diffrentes personnes puissent y accder avec diffrents droits. La diffrence entre un lien physique et symbolique se voit bien quand on efface le fichier original (voir plus loin). Un lien symbolique peut permettre par exemple d'avoir un lien vers une application qui pourra tre change lors d'une mise jour et notre lien lui, inchang, indiquera la nouvelle version. Un lien physique sur un fichier ne peut se faire que si le fichier est sur le mme systme de fichiers (mme partition). Il peut tre une protection en cas d'effacement intempestif car pour effacer rellement un fichier, il faut effacer tous les liens physiques qui pointent vers lui. On peut aussi mettre un lien symbolique vers un rpertoire pour faciliter la navigation dans l'arborescence. En fait tout est lien sous Linux. Dans un rpertoire, on a des liens vers d'autres rpertoires, d'autres fichiers : une information pour savoir o ils sont stocks.

2) Les droitsL'important pour pouvoir supprimer le lien symbolique est le propritaire et le groupe du lien. chown -h permet de changer les droits du lien symbolique et non de l'objet point. Un chmod change les droits du fichier cible. Il faut savoir que changer les droits d'un lien symbolique ne sert rien, et ce pour la simple raison qu'ils ne sont ja mais pris en compte. La cration/suppression d'un fichier dans un rpertoire, dpend uniquement des droits de l'utilisateur dans ce rpertoire. Concernant la lecture/criture du fichier en question, seul compte les droits du fichier point. Un cas particulier tout de mme : lorsque que le sticky bit est activ sur le rpertoire qui contient le lien, le propri taire du lien est pris en compte. Mais c'est ma connaissance le seul cas.

C ) Premiers outils pour manipuler les fichiers1) Ligne de commandePour ceux qui ont connu le DOS, c'est fort semblable. La ligne de commande est trs puissante, trs rapide et importante connatre car parfois, distance par exemple, c'est la seule mthode disponible. Cette mthode semble certes fasti dieuse, mais elle se rvle rapidement bien plus efficace et plus prcise que les mthodes graphiques. Ds que vous vous posez une question quant une commande ayez le bon rflexe : man la_commande , il y a aussi la possibilit de faire la_commande --help mais l'explication est plus restreinte. Pour plus d'explication sur la commande man, fates man man :-). Lorsque le man devient long, dans une interface graphique avec Konqueror par exemple, vous pouvez faire mettre le chemin man:/la_commande comme man:/man .

5178907274d4c7106595d8.odt

Page 9 sur 121

04/02/11

a) Affichage du contenu d'un rpertoire

Illustration 1: Arborescence visualise avec une interface graphique (Konqueror sous KDE) La commande de base pour afficher le contenu d'un rpertoire est ls pour LiSt. Cette commande possde des options qu'on peut voir en faisant man ls . Les plus utilises sont ls -l et ls -a qui ont rgulirement des raccourcis : ll et la (on peut en faire d'autres ou les enlever : voir plus tard les alias). ls ne donne que la liste des fichiers, rpertoires,liens et autres contenu dans le rpertoire. Souvent, il dot d'un affichage color pour informer sur la nature du fichier/rpertoire : bleu fonc : un rpertoire, bleu clair un lien, blanc : un fichier quelconque, vert un excutable... Mme sans couleurs, ces informations sont visibles : un / la fin du nom pour un rpertoire, un @ pour un lien et un * pour un excutable. ll lui affiche dans l'ordre, les permissions (ou droits : voir plus loin IV) B) Systme de droits), le nombre de liens physiques , le propritaire du fichier et le groupe propritaire, la taille en octets, l'horodatage ( par dfaut l'horodatage prsent est celui de la dernire modification du fichier), et finalement le nom du rpertoire/fichier/... la affiche tous les fichiers des rpertoires, y compris les fichiers commenant par un . . Une autre information importante est de savoir o on est sur l'arborescence. Cette information est donne par la commande pwd . Vous remarquerez que l'arborescence est indique de la manire suivante : /premier_rpertoire/second/... . Le sparateur entre rpertoire est le sparateur Unix / (normal, LINUX est un UNIX), pas le sparateur microsoft \ . b) bouger dans l'arboscence La commande de base est cd (Change working Directory). Pour aller la racine on fait cd / . Une fois sur la racine pour aller au rpertoire home on fait cd home . Ensuite, pour aller dans le rpertoire home/root (rpertoire de dpart de la flche verte du l'illustration 1), on fait cd root . A partir de la racine, on aurait pu faire cd home/root , en revanche si on est n'importe o, le plus simple est de faire cd /home/root . Pour faire le parcours de la flche verte sans passer par la racine, on fait : cd ../mclaires/projets , c'est un dplacement en mode relatif. On aurait pu faire ce dplacement en se rfrant la racine cd /home/mclaires/projets , cette fois, on a fait un dplacement en mode absolu : on se rfre la racine. La touche tabulation tant trs utile : elle fait la compltion, nous allons la tester de suite : taper cd /ho + tabulation vous aurez alors cd /home/ qui va s'afficher. En effet, elle complte l'affichage jusqu'o elle peut. Si au bout d'un certain avancement il y a plusieurs choix, elle affiche les choix possibles (ou demande s'il est utile de les afficher s'il y en a trop!). Remarque 1 : un cd seul renvoie l'utilisateur sur son rpertoire personnel et cd ~/un_chemin donne un chemin absolu partir du rpertoire personnel de l'utilisateur. Remarque 2 : le rpertoire personnel de root (administrateur systme) est /root. Comme les nouvelles versions de Mandriva ne permettent pas de le mettre dans une partition spare de la racine, je copie donc des donnes importantes de root dans un rpertoire que j'attribue root dans la partition /home afin de sauvegarder des donnes importantes de root en cas de formatage de la racine si on veux changer de version de Linux. Le passage d'une version la suivante d'une mme distribution se fait sans reformatage, mais si on fait un changement de distribution, rien n'est assur!

5178907274d4c7106595d8.odt

Page 10 sur 121

04/02/11

c) Crer et effacer des rpertoires La commande pour crer un rpertoire est mkdir pour MaKe DIRectory (un raccourci -alias- existe souvent : md). Pour crer un rpertoire bidon dans /home, on peut faire md /home/bidon (on peut le faire aussi bien en relatif qu'en absolu). md bidon crera un rpertoire bidon l'endroit o nous sommes en ce moment, cette commande fera ce qu'on souhaite si on tait dans /home. Maintenant, on veut crer un rpertoire vide dans le rpertore bidon, on peut faire md /home/bidon/vide . Cette commande tape sans avoir auparavant cr le rpertoire /home/bidon aurait donn une erreur : mkdir: Ne peut crer le rpertoire `/home/bidon/vide': No such file or directory . La commande pour effacer un rpertoire est rmdir pour ReMove DRIectory (un alias existe souvent : rd). Maintenant, on veut effacer le rpertoire /home/bidon et ce qu'il contient. Pour pouvoir effacer avec rd un rpertoire, il faut qu'il soit vide, c'est dire que si on fait rd /home/bidon , on obtient le message suivant : rmdir: `/home/bidon': Directory not empty . Il nous faudra donc faire avant rd /home/bidon/vide . Il y a une mthode risque pour viter a qu'on verra plus tard. Encore la touche tabulation : taper rmd + tabulation. Vous allez avoir rmdir qui s'affiche car c'est la seule commande qui commence par rmd. d) copier et bouger les fichiers Pour copier (dupliquer) un fichier la commande de base est cp pour CoPy. cp fichier_origine fichier_arrive. Revenons dans le rpertoire /home/root. Si nous voulons copier le fichier bashrc dans le fichier .bashrc (cach car il a un point devant) on fait cp bashrc .bashrc . Si on avait voulu copier directement ce fichier dans le rpertoire /home/mclaires, on aurait pu faire directement cp bashrc ../mclaires/.bashrc en relatif ou cp bashrc /home/mclaires/.bashrc en absolu. On peut faire la mme chose sans mettre de nom, mais juste un chemin vers un autre rpertoire. Ceci duplique le fichier dans le rpertoire cible sans changer le nom : cp bashrc ../bs copie le fichier dans le rpertoire /home/bs sans changer son nom. Cette fois, allons dans le rpertoire /home/mclaires/projets cd ../mclaires/projets . D'ici rapatrions le fichier XF86Config-4.s_travail qui se trouve dans le rpertoire /home/root. Nous pouvons faire soit cp ../../root/XF86Config-4.s_travail . ou cp /home/root/XF86Config-4.s_travail . Vous avez remarqu, j'espre la prsence du . la fin des commandes, celui-ci indique le rpertoire courant. Unix dispose d'une commande quivalente pour dplacer un fichier (MoVe), c'est mv . Elle marche comme cp, mais l'original sera effac et il n'existera plus que la copie. Cette fois, on peut aussi bouger une arborescence complte : mv /home/bs1 /home/root crera le rpertoire bs1 dans /home/root et y mettra toutes les donnes du rpertoire /home/bs1. Je peux profiter de ces commandes pour vous parler de caractres jokers : * : Caractre gnrique qui est quivalent n'importe quelle chane de caractre (y compris les points (" . ") et aucun caractre. ? lui est quivalent a n'importe quel caractre (unique) [ ] signifie n'importe quel caractre compris entre les crochets ( [aeiouy] sera valable pour tout mot comportant au moins une voyelle) Par exemple, cp * destination copie tous les fichiers vers la destination et cp deb* destination copie tous les fichiers qui commence par deb vers le rpertoire destination. Une astuce : pour vrifier ce qui sera copi, vous auriez pu taper tabulation avant de taper le * , ceci vous affichera tous les fichiers qui seront bougs. * est compris par presque toutes les commandes. e) diter, modifier et effacer les fichier i) Effacer Pour effacer un fichier, la commande est rm . On efface un fichier avec rm nom_du_fichier . Cette commande est souvent modifie par un alias qui oblige la demande de confirmation pour chaque effacement ( alias rm='rm -i'). Pour viter cela, on peut utiliser rm -f , mais c'est dangereux. Encore plus dangereux, il y a rm -f -r * qui efface tout partir de l'emplacement actuel en parcourant les sous rpertoires. Ceci aurait pu nous tre utile pour effacer le rpertoire bidon quand il avait encore le rpertoire vide : rm -r -f /home/bidon . Ceci est d'autant plus dangereux que si on fait rm -f -r * sur la racine avec les droits administrateur, on efface toutes les donnes! Peut-tre pas celle qui sont sur d'autres ordinateurs suivant comment ont t dfinis les partages car l'administrateur de notre ordinateur n'est pas administrateur sur les autres ordinateurs a priori ! ii) Lire Revenons dans notre rpertoire /home/root. Si nous voulons visualiser le fichier bashrc, nous pouvons faire cat bashrc . Mais si ce fichier est trop long, il est utile d'utiliser la commande less bashrc ou more bashrc . Dans ce dernier cas, on parcourt le fichier avec les touches flche vers le haut/vers le bas (comme les touches j et k) et/ou page sui vante/page prcdente. On dispose de la touche h pour faire afficher une aide et on sort avec la touche q. iii) Modifier Parfois il est aussi utile de modifier en ligne de commande un fichier. Les deux diteurs principaux en ligne de commande sont vi et emacs . Les frus d'Unix qui ont appris utiliser ces diteurs avant l'existence des modes gra phiques vous diront qu'ils sont plus puissants que n'importe quel diteur graphique. Je pense qu'ils ont raison, mais je ne les matrise pas assez pour en profiter! Je vous indiquerais donc les commandes utiles de vi (le seul que je suis arriv utiliser). En mode graphique, vous avez par exemple kwrite. Nous allons donc chercher modifier le fichier bashrc : vi bashrc . Pour se dplacer dans le fichier, vous avez soit les touches h,j,k et l (trs utile avant l'apparition des claviers avec pav numrique : les flches et les chiffres), soit les 5178907274d4c7106595d8.odt Page 11 sur 121 04/02/11

flches. Pour avoir une aide tapez :h pour en sortir :q . Pour insrer du texte, allez o vous voulez insrer le texte, puis, tapez i (ou a pour aller aprs), aprs tapez chappe (touche escape, ESC ou Echap en haut gauche). Pour effacer le texte, en mode insertion avec les nouvelles versions, vous pouvez utiliser les touches supprime et backup de votre clavier. En revanche si vous n'tes pas en mode insertion, vous pouvez commencer goutter la force de vi : 10 x effacera 10 caractres partir du curseur et s'arrtera la fin de la ligne. 5 dd effacera 5 lignes. x seul effacera une lettre et dd une ligne. u (undo) annulera les prcdentes commandes. Pour sauver taper :w . vi refusera de se fermer avec :q si les dernires modifications n'ont pas t sauves : :q! pour sortir sans sauver et :wq pour sauvegarder et quitter. Ceci est une 'sous-utilisation' de vi, mais suffisante pour de petites utilisations. f) faire des liens Les liens se font avec la commande ln . Allons encore une fois sur notre rpertoire /home/root et crons un rpertoire liens. Nous allons pouvoir tester les diffrents liens avec les trois fichiers dont nous disposons dans ce rpertoire : bashrc, .bashrc et XF86Config-4.s_travail. Commenons par crer un lien matriel : ln .bashrc surprise . Si on regarde le rpertoire, ll , on voit nos 4 fichiers sans distinction entre les 4, si ce n'est que le chiffre de la seconde colonne est 2 pour .bashrc surprise, alors que pour les autres il n'est que de 1 : le nombre de liens physiques. Modifions avec vi le fichier surprise. On rajoute une premire ligne par exemple. Regardons ensuite le fichier .bashrc less .bashrc : nous y voyons notre modification. Ensuite, on efface .bashrc rm .bashrc et on regarde le contenu du rpertoire ls . Nous avons quatre fichiers bashrc, surprise, surprise~ et XF86Config-4.s_travail. surprise~ est la sauvegarde fate par vi de notre fichier avant la dernire sauvegarde, on l'efface rm surprise~ Il est possible de vrifier notre fichier surprise. Pour finir avec les liens physiques, essayons partir du rpertoire /home/root de faire un lien physique vers un fichier se trouvant /root. ln /root/.bashrc baba et le systme rpond : ln: cration d'un lien direct `baba' vers `/root/.bashrc': Invalid cross-device link . Ceci est normal car /root est dans une autre partition! Continuons par un lien physique ln -s surprise .bashrc et regardons le contenu de notre rpertoire ls . Nous voyons que .bashrc s'affiche diffremment : il a au moins un @ dernire le nom. Si on modifie .bashrc avec vi la modification apparat aussi sur le fichier surprise. Maintenant on efface surprise et on liste le rpertoire ll . L'affichage de .bashrc a chang : maintenant il clignote car il est reli un fichier inexistant! Essayons de rsoudre le problme en faisant cp bashrc surprise et ll : tout est revenu dans l'ordre. Pour aller plus loin vous pouvez tester un lien (les 2 sortes) sur un lien symbolique et comprendre ce qui se passe. Il est mme possible de crer un lien vers un rpertoire, mais uniquement un lien symbolique. g) Conclusion Je conclurai que ces commandes sont trs pratiques et rapide. La ligne de commande est un peu austre mais trs rapide. Vous pouvez regarder par exemple la page http://www.tuxbihan.org/article.php3?id_article=6. Un expert de script bash m'a dit que tout tait dans man bash ... je conseillerais aussi d'viter les noms avec des espaces trs facilement faisable en mode graphique car en ligne de commande l'espace devient '\' + espace. Au lieu de mettre un espace dans un nom essayer de mettre un _ (soulign) .

2) Les scriptshttp://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-programmation.html http://abs.traduc.org/index.html a) Votre premier script Voici un exemple trs simple de script bash placer dans un fichier :#!/bin/bash echo -n "password: " read pass echo "Votre pass est $pass" La premire ligne #!/bin/bash sert indiquer le type de shell utiliser avec le script. La deuxime ligne echo -n "password: " sert afficher l'ecran le texte entre guillemet. L'option -n vite un re-

tour la ligne automatique. La troisime ligne read pass va lire ce que l'utilisateur tape au clavier et le sauver dans la variable $pass. Du fait de l'option -n, ce que tape l'utilisateur apparaitra la suite du mot password. La dernire ligne affiche l'cran la phrase Votre pass est ainsi que le contenu de la variable $pass. Un fois ces lignes sauvegardes dans un fichier monscript.sh par exemple, vous pouvez le rendre excutable en tapant: chmod a+x monscript.sh puis en tapant uniquement le nom de votre fichier dans le shell prcd de ./: ./monscript.sh Le ./ permet d'indiquer que le fichier monscript.sh se trouve dans le rpertoire courant. Voir man chmod et man chown pour apprendre plus de ces deux fonctions trs utiles. Il est galement possible de taper ce script en ligne de commande en sparant chaque fonction par un point virgule :echo -n "password: " ; read pass ; echo "Votre pass est $pass"

b) Les calculs Il est possible d'utiliser le bash comme une calculatrice. En ligne de commande, voil ce que cela donne:echo $[ 4 * 2 ] 8

5178907274d4c7106595d8.odt

Page 12 sur 121

04/02/11

echo $[ 10 + 5 ] 15

ou parfoisecho $(( 10 + 5 )) 15

c) les tests et comparaisons Voici un exemple de comparaison utilisant les tests conditionnels if #!/bin/bash echo read echo read -n "entrez un nom: " var1 -n "entrez un autre nom: " var2

if [ "$var1" = "$var2" ]; then echo "Les noms sont les mmes" else echo "Les noms sont diffrents" fi exit 0 "fi" est la fermeture de if, tout comme "}" est la fermeture de "{", exit 0 termine le script proprement et vous ramne au

prompt. A la place de '=' vous pouvez utiliser '-eq' pour tester si deux expressions sont quivalentes, ou '-eg' pour vrifier si deux entiers sont gaux. A noter qu'une variable '$var' peut tre crite ${var}.if test -f $1 then file $1 else echo "Le fichier \"$1\" n'existe pas" fi

Dans le script suivant, $1 renvoie le premier argument entr aprs le programme ou la fonction l'excution. -f renvoie vrai si le fichier (stock dans $1) existe. Voici quelques fonctions de test utiles : Expression -r -w -x -f -d -s c1 = c2 c1 != c2 c1 e1 -eq e2 e1 -ne e2 e1 -gt e2 e1 -lt e2 ! expr expr1 -a expr2 expr1 -o expr2 Signification fichier vrai si le fichier existe et est accessible en lecture (r) fichier vrai si le fichier existe et est accessible en criture (w) fichier vrai si le fichier existe et est excutable (x) fichier vrai si le fichier existe et est un fichier "rgulier" (file) fichier vrai si le "fichier" existe et est un rpertoire (directory) fichier vrai si le fichier existe et a une taille non nulle (size) vrai si les deux expressions sont gales (des chanes, en sh) vrai si les deux expressions sont diffrentes (des chanes, en sh) vrai si c1 n'est pas la chane nulle (vide) vrai si les deux entiers e1 et e2 sont algbriquement gaux (equal) vrai si les deux entiers e1 et e2 sont algbriquement diffrents (not equal) vrai si l'entier e1 est plus grand que l'entier e2 (greater than) vrai si l'entier e1 est plus petit que e2 (lower than) ngation de l'expression boolenne expr et logique entre les deux expressions boolennes expr1 et expr2 (and) ou logique entre les deux expressions boolennes expr1 et expr2 (or)

Sparateurs/contrles en shell: | || |= pipe prendra la premire commande en argument de la seconde. OR si la premire commande est fausse, il prendra la seconde. OR IS (surtout utilise dans les tests conditionnels "if"). 5178907274d4c7106595d8.odt Page 13 sur 121 04/02/11

&& AND si la premire commande est vraie, il excutera la seconde. ! NOT (surtout utilise dans les tests et tests conditionnels "if"), mais utilis en commande shell, il ouvre un shell pour lancer une commande (ex. `! echo foo`). != NOT IS (surtout utilise pour les tests conditionnels). !$ dernires commandes, dernier argument. !! rpte la dernire commande. = IS (surtout utilis pour les tests conditionnels). ; sparera 2 commandes comme si elles taient crites sur 2 lignes. ;; fin d'une fonction `case` (voir `case` plus loin). $ prfixe d'une variable comme "$myvar". $! PID du dernier processus enfant. $$ PID du process courant (PID == Process ID). $0 Montre les programmes possesseurs du processus courant. $1 Premier argument entr aprs le programme ou la fonction l'excution. $2 Second agument entr aprs le programme ou la fonction ($3 etc.). $# Affiche le nombre d'arguments. $? N'importe quel argument (bon utiliser dans les tests conditionnels). $- flags de l'option courante (Je n'ai jamais eu m'en servir). $_ Dernier(re) argument (commande). $* Tous les arguments. $@ Tous les arguments. # ligne de commentaire, tout ce qui suit sur la ligne n'est pas interprt. { accolade ouvrante (dbut de fonction). } accolade fermante (fin de fonction). [ crochet ouvrant (pour des arguments multiples). ] crochet fermant (pour des arguments multiples). @ $@ est quivalent "$1" "$2" etc. (tous les arguments). * wildcard (* remplace un nombre indtermin de caractres). ? wildcard (? remplace un unique caractre). " quote ' quote prcis (inclura mme des " dans le quote). ` quote de commande (variable=`ls -la` affichera le contenu du rpertoire en utilisant $variable). . le point lira et excutera des commandes partir de fichiers (. .bashrc). & and. utilis en suffixe, il excute une tche en background (./program &). 0< stdin stream director (Je ne l'ai vu dans aucun script). 1> stdout stream director (standard output) 2> stderr stream director (standard error output) % caractre des tches, %1 = fg job 1, %2 = fg job 2, etc. >> stream director (inclusion dans un fichier). file stream director qui commencera au tout dbut du fichier (dans les tests conditionnels "if" < et > seront utiliss en comparateurs mathmatiques par exemple: if [ "$1" >= "2" ]) \ back-slash, retire le meta-caractre de n'importe quelle chane. Ainsi, \$var ne sera pas trait comme une variable. (et une nouvelle ligne ne sera pas traite comme une nouvelle ligne) De plus, un \ avant une commande, retire tous les aliases appliqus cette commande: \rm >& stream director to stream director, ie. echo "a" 1>/dev/null 2>&1 dirigera 2> au mme endroit que 1> d) fonction case Case, tout comme if, se termine par la commande inverse esac.#!/bin/bash case "$1" in --help) echo "Aide..." ;; --version) echo "Version 1.0" ;;

esac Dans cet exemple, si l'argument $1 est '--help', Aide... est affich, si $1 est gale '--version' etc... Chaque condition se termine par ;; 5178907274d4c7106595d8.odt Page 14 sur 121 04/02/11

e) fonction sed Sed est utilis pour formater/modifier du texte. Par exemple, si vous possdez un fichier tmp contenant des urls et que vous dsiriez changer tous les www par ftp, tapez:sed 's/www/ftp/g' tmp et sed 's/www/ftp/g' tmp > tmp2 si vous dsirez enregistrer les modifications dans un fichier tmp2. sed -n 3 p tmp2 permet d'afficher la 3me ligne du fichier tmp2.

f) La fonction more La fonction more (comme la fonction less) peut tre utilise pour lire des fichiersmore -8 fichier1

affiche le contenu du fichier fichier1 8 lignes par 8 lignes (barre d'espace pour les 8 suivantes , return pour une ligne suivante, q pour quitter). g) Les Init et system scripts Le 'system V init', qui est l'init le plus utilis pour Linux. Les startup scripts permettent de lancer/stopper les services tels que serveur http, ftp, base de donnes postgresql etc. et sont crits en bash ! Ils sont stocks dans :/etc/rc.d/rc0.d/ /etc/rc.d/rc1.d/ /etc/rc.d/rc2.d/ /etc/rc.d/rc3.d/ /etc/rc.d/rc4.d/ /etc/rc.d/rc5.d/ /etc/rc.d/rc6.d/ /etc/rc.d/init.d/

Voici un script permettant de dmarrer un dmon nomm daemon :#!/bin/sh # example # # Version: # # Author: # Exemple de script qui lancerait 'daemon' @(#) /etc/rc.d/inet.d/example 0.01 19-Feb-2001 Billy (Alien),

. /etc/rc.d/init.d/functions function status() { ps aux | grep daemon && echo "Daemon is running." || echo "Daemon is not running." } case "$1" in start) # Vrifie si daemon est dans notre path. if `which daemon` > /dev/null; then success || failure; fi echo -n "Starting Daemon" daemon echo ;; stop) # Vrifie encore si daemon est dans notre path. if `which daemon` > /dev/null; then success || failure; fi echo "Stopping Daemon" killall -15 daemon ;; status) echo "Status of Daemon:" status ;; reload) echo "Restarting Daemon." killall -1 daemon ;; restart) if `which echo` > /dev/null; then success || failure; fi $0 stop $0 start ;; *) echo "Usage: $0 start|stop|restart|status" exit 0 esac

5178907274d4c7106595d8.odt

Page 15 sur 121

04/02/11

alors vous de lire les scripts de votre systme et d'essayez de les comprendre ;-)

3) Interface graphiqueCeci est dpendant de l'environnement graphique choisi (WM). Pour trouver votre bonheur, parcourez les menus! Souvent il existe un raccourci du nom de Dossier personnel , il vous ouvrira un gestionnaire de fichiers drag and drop . En cliquant sur un fichier ou un rpertoire, l'action automatiquement configur se passe. Pour faire plus de chose, essayez de cliquer avec le bouton droit et de parcourir les menus... Tout doit tre faisable, mais pas aussi facilement. Certes les manipulations courantes comme copier-coller sont trs simplifies.

D ) Rsum des commandes du shell (BASH)http://www.lea-linux.org/admin/shell.php3 voici les commandes de base sous Linux : quiCommandes valent linux MsDos cd cd quoi a sert Exemples : cd .. - va dans le rpertoire parent du rpertoire courant cd /home/user/.nsmail - va dans le rpertoire dsign ls - affiche le contenu du rpertoire courant ls -l - affiche le contenu du rpertoire courant de manire dtaille ls -a /home/user - affiche le contenu du rpertoire dsign (ainsi que les fichiers cachs) cp toto /tmp - copie le fichier toto dans le rpertoire /tmp cp toto titi - copie le fichier toto sur le fichier titi cp -R /home/user /tmp/bak - copie le rpertoire /home/user ainsi que tout ce qu'il contient dans /tmp/bak rm toto titi - efface les fichiers toto et titi rm -f toto titi - efface les fichiers toto et titi sans demander confirmation rm -rf /tmp/* - efface (sans demander de confirmation) tous les fichiers et rpertoire de /tmp mkdir /home/user/mes documents - cre le rpertoire "mes documents" dans le sous rpertoire /home/user rmdir /home/user/.nsmail - efface le rpertoire .nsmail de /home/user si celui-ci est vide

change le rpertoire courant.

ls

dir

affiche le contenu d'un rpertoire

cp

copy xcopy

copie un ou plusieurs fichiers

rm

del

efface un ou plusieurs fichiers

rm -rf

deltree efface un rpertoire et son contenu

mkdir

md

cre un rpertoire

rmdir

rm

efface un rpertoire s'il est vide

mv

ren move

mv tata titi - renomme tata en titi mv * *.bak dplace ou renomme un ou des fi- ne fonctionne pas !!!! chiers mv * /tmp/bak - dplace tous les fichiers du rpertoire courant vers le rpertoire /tmp/bak trouve un fichier rpondant cer- find Page 16 sur 121 /home -name 04/02/11 "*bash*"

find

dir -s

5178907274d4c7106595d8.odt

tains critres

- trouve tous les fichiers contenant le mot bash dans leur nom se trouvant dans le rpertoire /home locate bash - trouve tous les fichiers contenant le mot bash dans leur nom complet (avec le rpertoire) : la diffrence de find, locate trouve ses informations dans une base de donne cre par updatedb man ls - affiche l'aide (page de manuel) de la commnade ls. On quitte man en appuyant sur la touche 'q'

locate

dir -s

trouve un fichier d'aprs son nom

man

help

affiche l'aide concernant une commande particulire

chmod

attrib

chmod o+r /home/user - autorise les autres (o=other) (ie: ceux qui ne sont ni le propritaire, ni membre du groupe propritaire) lire modifie les permissions d'un fichier (r=read) le rpertoire /home/user chmod a+rw /home/user/unfichier - autorise tout le monde (a=all) lire et crire (w=write) dans le fichier /home/user/unfichier modifie le propritaire d'un fichier chown user unfichier rend user propritaire de unfichier.

chown

pas d'quivalent pas d'quivalent

chgrp

chgrp -R nobody /home/httpd - rend le groupe : nobody (un groupe ayant trs peu de modifie le groupe proprtaire d'un droit sur un systme linux) propritaire de fichier /home/httpd ainsi que tout les fichiers qu'il contient (R) ln -s /dev/fd0 /dev/disquette cre un lien vers /dev/fd0 (le lecteur de disquette) nomm /dev/disquette. La manipulation de /dev/fd0 ou /dev/disquette est quivalente (sauf l'effacement).

ln -s

pas d'quivalent

cre un lien vers un fichier

grep

pas d'quivalent pas d'quivalent type

recherche une chaine dans un fi- grep chaine *.txt chier (en fait recherche une expres- recherche la chaine 'chaine' dans tous les fichier se sion rgulire dans plusieurs fiterminant par .txt. chiers) trouve le rpertoire dans lequel se trouve une commande affiche un fichier l'cran which emacs - retourne le nom du rpertoire dans lequel se trouve la commande emacs. cat ~/.bashrc - affiche le contenu du fichier ~/.bashrc

which

cat

Remarque : Pour en savoir plus sur toutes ces commandes, je vous conseille de consulter leur page de man ! Voir aussi : http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-bash.html http://abs.traduc.org/index.html http://www.shelldorado.com/

5178907274d4c7106595d8.odt

Page 17 sur 121

04/02/11

IV ) Installation de Mandriva LINUX

A ) PrsentationIl existe plusieurs manires d'installer la distribution Mandriva. La plus courante est l'installation partir des CD ou DVD de base. Vous allez dire que 3 7 CD c'est beaucoup alors qu'il n'en faut qu'un pour windows, c'est exact 3>1. Cepen dant sur les 3 CD de la version tlchargeable gratuitement de Mandriva, on a le systme d'exploitation avec plusieurs WM disponibles (le CD de windows avec un choix en plus), plusieurs suites office (les CD de MS Office), des logiciels de dessins, des logiciels de gravages, des jeux... Et les sources de tout a (de moins en moins car il faudrait un quatrime CD maintenant)! Il existe d'autres mthodes d'installation : par rseau/internet, partir du disque dur (la plus rapide et la plus int ressante par la suite si le disque dur est assez grand). Toutes ces autres mthodes demandent une disquette de dmarrage. Pour la liste complte avec explication, voir la page : ftp://fr2.rpmfind.net/linux/Mandrake/current/i586/doc/install/fr/install.htm . Nous allons utiliser une mthode la rapide d'autant plus qu'elle nous permettra d'conomiser le gravage de CDROM. En pratique pour pouvoir utiliser la mthode partir du disque dur, il faut dj avoir un systme install sur un PC avec lequel on pourra formater une partition de 2 Go au moins sur laquelle au pourra transfrer les donnes. Nous allons aussi utiliser une mthode partir d'un serveur distant : toutes les donnes d'installation (les CD ou le DVD) sont sur un serveur nfs local rapide d'accs. Attention, prendre un serveur LOCAL sinon, tous les postes feront simultanment des requtes sur des serveurs externes et le rseau se trouvera rapidement satur ! Ceci arrivera dj assez souvent lors des mises jours... Attention, par la suite, il faudra laisser intactes les donnes d'installation. Si on veut modifier le systme, c'est indispensable. C'est ce moment qu'on verra l'intrt par rapport une installation partir de CD-ROM : on n'a pas besoin d'aller chercher nos CD et d'attendre les messages pour savoir quand il faut mettre quel CD !

B ) Prparation de l'installationNous avons besoin d'une disquette et d'un PC dont le disque dur contient dj les CD de Mandriva. J'ai copi ces CD dans un rpertoire d'une partition qui peux tre au format Linux, Windows ou ReiserFS. Le premier CD est dans la racine du rpertoire, pour les suivants, j'ai copi le contenu du rpertoire Mandriva dans le rpertoire Mandriva cr lors de la copie du premier. Ces donnes sont sur le rpertoire mdk de la partition | ______________|. Cette information est importante car la question sera pose lors de l'installation.

C ) Cahier des charges de l'installationPour le partitionnement, il faut obligatoirement avoir une partition / (racine du systme), une partition swap (que le systme utilise pour stocker des donnes utiles qui encombrent la RAM). Il est conseill d'avoir la partition /home o sont stockes les donnes personnelles (les rpertoires personnels) des utilisateurs, (que rien n'empche de nommer /maison !) afin qu'elles chappent d'ventuels reformatage du systme (rpertoire /). Vous allez laisser intactes les ventuelles partitions windows (ou autres?) dj prsentes. Si vous avez un windows d'install il sera intressant de prvoir une partition FAT32 pour simplifier les changes de donnes d'un systme l'autre. Nous choisirons l'installation en mode expert. Nous allons installer : Les environnements graphiques (tous pour tester). les serveurs suivants : ftp, ssh, httpd, nfs. Les outils de configuration. mozilla ou firefox (butineur internet). OpenOffice.org pour lire l'original de ce document. Pour avoir une telle prcision, il faudra slectionner les paquets la main. Il faudra configurer l'amorage (lilo ou grub) pour bien booter sur la bonne partition. Les fentres de dialogues sont en gnral bien fates.

D ) InstallationNous allons commencer par booter sur une disquette qui est prvue pour installer Mandriva partir de donnes sur le disque dur. Voici les tapes suivre aprs le boot. Tout d'abord Vous avez un menu qui vous demande si vous voulez plus d'options avec ou commencer directement avec . Nous n'avons pas besoin de plus d'options. Vous pouvez toujours regarder les options proposes... Dans le menu suivant vous choisirez du disque dur contenant la copie des CD d'install (Il vous propose les disques durs pr sents). Puis vous devrez choisir la partition sur le disque dur choisi prcdemment. Et en dernier, avant de commencer l'installation graphique, reste le choix du rpertoire. NB :en fait vous devez indiquer le chemin complet du rpertoire contenant la copie des CD d'install En cas d'erreur, il est possible de revenir en arrire. Pour la suite, voir http://doc.mandrivalinux.com/MandrakeLinux/91/fr/Quick_Startup.html/. C'est le document officiel donn par Mandriva. 5178907274d4c7106595d8.odt Page 18 sur 121 04/02/11

E ) ConfigurationSur chaque PC, vous allez crer un seul compte : le compte root (obligatoire) avec comme mot de passe linux. Pour le compte suivant, ne pas rentrer de donnes, et faire directement [Accepter] afin d'tre sr de ne pas le crer. Il vous faudra aussi le rseau : vous vous mettez en DHCP et surtout lors de la configuration rseau, choisissez le mode expert et cocher lors de la configuration de la carte rseau ne pas affecter le nom d'hte partir de l'adresse DHCP, mais donner vous mme le nom du PC. Il faudra aussi configurer l'affichage. Pour le moment, surtout, on ne met pas de fire-wall. Aprs ceci, vous rebootez la machine. Laissez tomber la mise jour, elle peut tre trs longue (on n'aura pas le temps ce moment), elle est pourtant trs importante pour la scurit!

5178907274d4c7106595d8.odt

Page 19 sur 121

04/02/11

V ) ManipulationAvec Mandriva, on peut lancer un excutable : mcc (centre de contrle Mandriva) qui fait beaucoup de choses. Il est mme disponible en dehors de tout environnement graphique, mais sa version graphique est bien plus avantageuse. Il peut configurer presque tout, mais pour avoir plus de prcision, rien ne vaut le travail manuel des fichiers de configuration. Nous allons aussi bien travailler en ligne de commande qu'avec des interfaces graphiques, chaque mode ayant son avantage en fonction du travail effectuer et de notre connaissance de l'OS.

A ) Cration de comptes et de groupes1) Prsentationa) l'utilisateur Pour permettre de nombreux utilisateurs de travailler sur la mme machine, Unix met en oeuvre des mcanismes d'identification des utilisateurs, de protection et de confidentialit de l'information, tout en permettant le partage contrl ncessaire au travail en groupe. Tout utilisateur est identifi par son nom (login) et ne peut utiliser le systme que si son nom (login) a pralablement t dfini par l'administrateur du systme (root ou super-utilisateur) qui lui donnera en mme temps des droits. La dfinition d'un nouvel utilisateur s'appelle aussi crer un compte. root a tous les droits et aucune restriction ne lui est applicable. Travailler en tant qu'administrateur (se loger sous root) est donc dangereux, mais utile pour paramtrer le systme. b) Le compte La premire question se poser c'est que doit avoir chaque compte? Un compte doit avoir des donnes personnelles et un endroit propre pour les laisser. On cre donc un rpertoire personnel chaque utilisateur. Ce rpertoire est rgulirement plac dans /home : /home/repertoire_personnel. Sa cration est normalement automatique. Les fichiers spcifiques sont (source : man useradd ) : - /etc/passwd - information sur les comptes utilisateurs - /etc/shadow - information scurise sur les comptes utilisateurs - /etc/group - information de groupes - /etc/default/useradd - information par dfaut modifie avec useradd -D - /etc/login.defs - rglages globaux du systme - /etc/skel - rpertoire contenant les fichiers qui seront mis par dfaut dans les comptes personnels lors de leur cration. Ce rperoire contient plusieurs fichiers cachs, afin de voir tout son contenu, faire ll -a /etc/skel . Un des fichiers cach est .bashrc qui contient la configuration du bash (ligne de commande) de l'utilisateur. nb : Il se peut que votre .bashrc ne se lance pas en vous loggant sur une console texte. Dans ce cas, il faut rajouter dans ~/.bash_profile les lignes suivantes :if [ -f ~/.bashrc ]; then . ~/.bashrc fi BASH_ENV=~./bashrc export BASH_ENV

Le premier test et lancement permet lors du login d'excuter le .bashrc s'il existe, en effet le bash ne tiens pas compte de la variable BASH_ENV ou moment du login sous X (environnement graphique)(contre toute attente d'ailleurs). La variable BASH_ENV indique a bash de reexcuter .bashrc chaque nouveau shell.

2) ligne de commandea) les terminaux Normalementiv, vous ne pouvez pas vous loger sur un Windows Manager car vous n'avez que root comme utilisateur et que pour des raisons de scurit vidente Mandriva interdit l'utilisation d'un WM sous root car toutes les applications pourraient alors crire n'importe o ce qui ouvrirait la porte tous les virus (il est faisable de lancer des applications win dows sous LINUX...) Vous allez donc utiliser un shell, ceci est toujours faisable et fort utile. On dispose en effet de 7 terminaux, on passe d'un l'autre en faisant Ctrl-Alt-FX (les 3 touches appuyes simultanment) o X est entre 1 et 7. Ctrl-Alt-F7 est le termi nal du windows manager, vous allez donc faire un des 6 autres, Ctrl-Alt-F2 par exemple. Ctrl-Alt-F1 est parfois dcor par Mandriva ce qui diminue la taille de la fentre. b) useradd Vous allez utiliser la commande useradd (ou adduser ). Pour avoir plus d'information, fates man adduser . Nous n'allons pas utiliser toutes les options disponibles! Si nous faisons useradd nom_de_l_utilisateur tout se fait correctement car le fichier /etc/login.defs est configur pour. En plus, cette instruction crera automatiquement un rpertoire personnel dont le contenu sera la copie du rpertoire /etc/skel comme c'est normalement dfini dans le fichier /etc/default/useradd. Crez vous votre compte personnel avec comme id 500+n_de_votre_pc (il faudra ajouter une option la ligne que je vous ai indiqu au chapitre prcdent). Les autres comptes que vous crerez sur votre ordinateur auront un id du style X00+n_de_votre_pc . avec X>5. Les utilisateurs sont stocks dans le fichier /etc/passwd. Ce fichier a une ligne par utilisateur. Chaque ligne contient des champs spars par des : (doubles points). 5178907274d4c7106595d8.odt Page 20 sur 121 04/02/11

Le premier champ contient le nom, le second un x (activer protg), une * (dsactiv)ou rien (compte sans mot de passe : une faille de scurit), le troisime l'identificateur de l'utilisateur (son id : un numro suprieur 500 pour un utilisateur non systme), le suivant l'id de son groupe principal, l'antpnultime un commentaire sur l'utilisateur, l'avant dernier l'emplacement de son rpertoire personnel (qui peut donc tre vraiment quelconque) le dernier le shell qu'on lui attribue (il existe par exemple des shells qui empchent l'utilisateur de se loger , ceci peut permettre un compte de ne pouvoir faire que du ftp). Pour enlever un utilisateur, fates userdel utilisateur . Pour changer les paramtres d'un utilisateur, utilisez usermod . Aprs avoir lu man usermod , dfinissez vous un mot de passe car la commande useradd ne l'a pas fait puisque vous ne lui avez pas demand! c) groupadd - addgroup Ajoutez un groupe essai avec la commande groupadd essai . Les groupes sont stocks dans le fichier / etc/group qui a la mme structure que le fichier /etc/password. Les informations sur chaque ligne sont dans l'ordre : le nom du groupe, un second champ qui peut contenir soit un x, un * ou rien, un troisime d'identification du groupe (son id), le dernier champ est la liste des utilisateurs (nom complet) qui appartiennent ce groupe sans que ce soit leur groupe principal, l'information du groupe principal tant dans le fichier password. Ajoutez manuellement, avec vi, dans le groupe essai votre compte personnel. Aprs avoir cr un compte, fates Ctrl-Alt-F7. Loger vous avec le compte juste cr avec un environnement graphique pris au hasard (dbrouillez-vous pour ne pas avoir le mme que vos voisins). Pour enlever un groupe, utiliser groupdel . Pour un utilisateur dans un group : addgroup Lappartenance au groupe napparait pour la session complte que aprs stre dloggu puis reloggu. On peut utiliser "newgrp" ou "sg" pour viter de se dloguer et rcuprer l'appartenance au bon groupe dans un sous-shell. d) addgroup

3) interface graphiqueComme nous sommes sous Mandriva autant utiliser les outils Mandriva qui sont forts agrables et en franais! Nous avons le programme userdrake auquel nous pouvons accder soit par mcc, soit directement. Je profite de ceci pour vous faire lancer ces programmes partir d'une fentre shell ouverte dans votre environnement graphique, souvent son icne, c'est un cran d'ordinateur avec parfois une coquille (shell) devant . Dans cette fentre taper la commande su . su est la commande qui permet de donner la main dans la fentre shell un autre utilisateur qu'on met en paramtre, s'il n'y a pas de paramtre, ce sera le super-utilisateur (administrateur ou root). Le prompt vous demande alors un mot de passe, donnez le mot de passe root et vous avez un shell en administrateur. su - fait la mme chose, mais en plus on rcupre les paramtres du nouvel utilisateur. Ceci est viter si on fait cette manipulation pour rcuprer un environnement plant. Illustration 2 : partir de ce shell, vous pouvez faire excuter des applications graphiques sous root. Tapez par menus mcc exemple kwrite , vous ouvrez alors un diteur de texte graphique, mais vous n'avez plus la main dans le shell. Pour retrouver la main simplement, vous devez arrter kwrite, soit partir de l'interface graphique, soit en faisant Ctrl-C sur le shell ( voir plus loin au IV) C) 2) a) ). Pour garder la main, il fallait faire kwrite & afin de lancer kwrite en mode arrire plan. Vous allez donc taper mcc & . Parcourez les menus (image gauche) et choisissez UserDrake (icne droite)

Dans cette interface vous devez voir que vous appartenez aussi au groupe essai. Vous pouvez crer, supprimer et diter des comptes. Cette dernire option est bien intressante car elle permet entre autre de modifier les groupes d'appartenance des utilisateurs. Vous pouvez aussi choisir dans option voir les groupes et faire des modifications sur les groupes.

B ) Systme de droits sur les fichiers1) Propritaire, groupe propritaire et autresLes droits sur un fichier/rpertoire sont (dans l'ordre) lecture (r)-criture(w)-excution(x). Ses droits, sont attribus dans l'ordre l'utilisateur propritaire du fichier, au groupe propritaire du fichier et tous. Ceci fait 9 cases remplir, si on permet tout : rwxrwxrwx . Si on permet tous l'utilisateur, la lecture et l'excution au groupe et l'excution tous, ceci donne : rwxr-x--x , le '-' (moins) signifie que le droit n'est pas accord! On fait correspondre des valeurs ces droits : le r vaut 4=22, le w vaut 2=21 et le x vaut 1=20. Ceci donne comme valeur pour le premier 777 (criture en Octal base 8), le second 751. 640 correspond rw-r----- . 5178907274d4c7106595d8.odt Page 21 sur 121 04/02/11

Les droits dpendants tant li au propritaire et au groupe propritaire, il faut donc parfois modifier ces para mtres. Pour modifier le groupe, on fait chgrp groupe f1 o f1 est un fichier ou un rpertoire. Pour modifier le propritaire, il faut faire chown user f1 . Si on veut modifier les deux, il faut faire chown user:groupe f1 ou chown user.groupe f1 . Ces manipulations se font sans problme si on est root. En revanche, quand on est simple utilisateur, il faut que le fichier nous appartienne, on ne peut pas changer le propritaire et on ne peut donner un nouveau groupe que si on fait partie de ce nouveau groupe.

2) Les droits sur les fichiersCes droits se changent avec la fonction chmod : chmod valeur_du_mode fichier . Pour donner les droits rw-rw-r-- au fichier bashrc du rpertoire /home/root, il faut faire chmod 664 /home/root/bashrc . Ceci permettra au propritaire et son groupe (root) de le lire et de le modifier et aux autres de le lire. Il y a aussi la possibilit d'enlever ou de rajouter des droits des fichiers avec chmod [who]op[permission] . who est une combinaison de u(user ou propritaire), g (groupe) ou o (other ou autre). op est soit + pour ajouter le droit, pour l'enlever et = pour ne donner que celui-l (les autres seront mis 0=non). chmod go-w fichier supprime le droit d'criture au groupe et aux autres. chmod u+x fichier rajoute au propritaire le droit d'excution (transforme le fichier en excutable!). chmod ug=r donne un accs en criture uniquement son propritaire et au groupe. Attention : pour effacer un fichier, il suffit d'avoir le droit sur le rpertoire et le droit de lecture sur le fichier... La possibilit intressante de chmod, mais qui peut ouvrir des failles est chmod +s fichier qui fait utiliser l'ID du propritaire ou du groupe propritaire du fichier lors de l'excution. La faille arrive quand le propritaire du fichier est root car lors de l'excution du fichier, on rcupre les droits de root! En plus de ces 9 donnes, Unix dfinit trois autres donnes de permission : SUID*, SGID* et t (voir chapitre suivant ). Ces donnes tant toutes binaires : non ou oui, 0 ou 1, peuvent chacune tre stockes sur un bit. Ceci fait donc 12 bits de permission. On les obtient en faisant chmod 01XXX pour le sticky-bit en octale, chmod 02XXX pour pour SGID et chmod 04XXX pour SUID. Le 0 indique au systme qu'on est en octale. * : trop compliqus pour en parler dans ce document!

3) Avec les rpertoiresa) Prsentation Les droits sont les mmes avec les rpertoires mais les effets sont un peu diffrents. Pour rentrer dans un rpertoire, il faut avoir le droit d'excution dessus. Pour lire les donnes d'un rpertoire, il faut avoir le droit de lecture et pour avoir le droit d'crire dessus, il faut avoir le droit d'criture et de lecture. En combinant ces droits sur un rpertoire, on peut avoir des configurations assez intressantes et surprenantes. Par exemple, une personne qui n'a que le droit d'excution peut aller dans le rpertoire cd rpertoire mais ne peut pas y faire grand chose,. mme pas lire le contenu du rpertoire ls , elle peut visualiser un fichier cat si elle sait qu'il y est. Une personne qui n'a que le droit de lecture ne peut se rendre sur le rpertoire cd rpertoire , mais peut lire le contenu ls rpertoire . Une personne qui n'a que le droit d'criture ne peux rien faire a priori. Afin que le droit d'criture soit utilisable,