Vous êtes sur la page 1sur 137

Administration Unix V 2010 Chapitre 1: Introduction ......................................................................................................... 6 1. Rle d'un administrateur................................................................................................. 6 2. Disponibilit du Systme d'Exploitation ........................................................................ 6 3.

Journal de bord ............................................................................................................... 6 4. Prvention....................................................................................................................... 7 Chapitre 2: La gestion des Utilisateurs et des Groupes ........................................................ 9 1. L'environnement .............................................................................................................. 9 1. Description d'un Utilisateur ............................................................................................ 9 2. Description d'un Groupe................................................................................................. 9 2. Les fichiers de paramtrage .......................................................................................... 10 1. Le fichier : /etc/passwd ................................................................................................ 10 2. Le fichier : /etc/group ................................................................................................... 11 3. Le fichier : /etc/shadow ................................................................................................ 12 4. Vrification des fichiers ............................................................................................... 13 a. La commande : pwck ............................................................................................... 13 b. La commande : grpck ............................................................................................... 14 3. La gestion des Utilisateurs ............................................................................................. 15 1. La commande : useradd ................................................................................................ 15 2. La commande : userdel ................................................................................................ 16 3. La commande : usermod .............................................................................................. 17 4. La commande : passwd ................................................................................................ 18 5. La commande : finger .................................................................................................. 19 4. La gestion des Groupes .................................................................................................. 20 1. La commande : groupadd ............................................................................................. 20 2. La commande : groudel ................................................................................................ 21 3. La commande : groupmod............................................................................................ 21 5. Configuration de lenvironnement utilisateur ............................................................. 22 1. Les variables denvironnement .................................................................................... 22 2. liste des variables ......................................................................................................... 22 3. Modification du contenu dune variable ...................................................................... 23 4. Les principales variables .............................................................................................. 23 a. La variable : HOME ................................................................................................. 23 b. La variable : PATH .................................................................................................. 23 c. La variable : PWD .................................................................................................... 24 d. La variable : PS1 ...................................................................................................... 24 e. La variable : PS2 ...................................................................................................... 25 f. La variable : TMOUT .............................................................................................. 25 g. La variable : TERM.................................................................................................. 26 h. La variable : LOGNAME ......................................................................................... 26 i. Exportation dune variable ....................................................................................... 26 6. Les alias ........................................................................................................................ 27 7. Paramtrer le rappel de commandes ............................................................................. 27 a. Paramtrer le rappel de commandes en ksh ............................................................. 27 b. Paramtrer le rappel de commandes en bash............................................................ 28 8. Les fichiers denvironnement ....................................................................................... 28 a. Lenvironnement texte ............................................................................................. 28 b. Lenvironnement graphique ..................................................................................... 28 c. Fichiers denvironnement lus par le Shell de connexion ......................................... 29

d. Les fichiers complments ......................................................................................... 31 Chapitre 3 : Les Fichiers ....................................................................................................... 35 1. Les Fichiers Ordinaires ................................................................................................. 35 1. Les Types de Fichiers Ordinaires ................................................................................. 35 2. Les Caractristiques dun Fichier ................................................................................. 36 3. Les Fichiers cachs ....................................................................................................... 36 2. Les Fichiers Rpertoires ................................................................................................ 37 1. Dplacement dans le Rpertoire ................................................................................... 37 2. Chemin Absolu et Relatif ............................................................................................. 37 3. Les Rpertoires usuels sous Unix................................................................................. 37 4. Les Droits dAccs un Fichier Unix ........................................................................... 38 1. Gnralits .................................................................................................................... 38 2. Les Droits : r w x .......................................................................................................... 39 a. Les Attributs dun Fichier ........................................................................................ 39 b. Les Changements dattributs .................................................................................... 40 3. La commande : umask .................................................................................................. 41 4. Les Droits dendossement et le Sticky-bit.................................................................... 41 Chapitre 4: Les Systmes de Fichiers ................................................................................... 43 1. Description d'un Systme de Fichiers ........................................................................... 43 2. Structure d'un Systme de Fichiers .............................................................................. 43 1. Bloc de Boot ................................................................................................................. 43 2. Super-Bloc .................................................................................................................... 43 a. La table des inodes ................................................................................................... 43 b. Les Blocs de Donnes .............................................................................................. 44 3. Description d'une inode ................................................................................................. 44 1. Structure interne d'un fichier ........................................................................................ 44 2. Structure interne d'un rpertoire ................................................................................... 44 3. L'arborescence Unix ...................................................................................................... 45 4. Description des principaux rpertoires ........................................................................ 45 5. Les Notions de Montage et de Dmontage ................................................................... 46 1. Notion de Montage ....................................................................................................... 46 a. La commande : mount .............................................................................................. 46 b. Le fichier : /etc/vfstab .............................................................................................. 47 c. Les options de montage ............................................................................................ 48 d. La commande : mountall .......................................................................................... 49 6. Notion de Dmontage ..................................................................................................... 49 1. La commande : umount ................................................................................................ 49 2. Le fichier : /etc/mntab .................................................................................................. 50 7. La cration des Systmes de Fichiers ........................................................................... 51 1. La commande : format ................................................................................................. 51 2. Cration d'un Systme de Fichiers ............................................................................... 52 a. Cration manuelle .................................................................................................... 52 b. Cration semi-automatique....................................................................................... 54 3. Formatage des partitions .............................................................................................. 56 a. La commande : newfs .............................................................................................. 56 b. Recopie du Super-Bloc par fsck ............................................................................... 57 4. Montage des Systmes de Fichiers............................................................................... 58 a. Montage manuel ....................................................................................................... 58 b. Montage automatique ............................................................................................... 58 8. La gestion de la mmoire virtuelle ................................................................................ 59

La commande : swap .................................................................................................... 60 Cration d'une zone de swap ........................................................................................ 61 a. Cration d'une zone de swap fichier ......................................................................... 61 b. La commande : mkfile .............................................................................................. 61 c. Cration d'une zone de swap partition...................................................................... 62 d. Activation des zones dchange lors du dmarrage ................................................. 64 9. Gestion des Systmes de Fichiers .................................................................................. 65 1. La commande : df ......................................................................................................... 65 2. La commande : fsck ..................................................................................................... 66 3. La commande : ncheck ................................................................................................. 67 4. La commande : fuser .................................................................................................... 68 10. La gestion des quotas ................................................................................................. 69 1. Description d'un quota Utilisateur ................................................................................ 69 a. Procdure d'installation d'un quota Utilisateur ......................................................... 70 b. La commande : edquota ........................................................................................... 70 c. La commande : quotaon ........................................................................................... 71 d. La commande : quotaoff .......................................................................................... 71 e. La commande : quota ............................................................................................... 71 f. La commande : repquota .......................................................................................... 71 g. La commande : quotacheck ...................................................................................... 72 2. Cration dun quota utilisateur ..................................................................................... 72 11. Sauvegarde & Restauration des Systmes de Fichiers............................................ 74 1. Nommage des lecteurs de bandes ................................................................................. 75 2. La commande ufsdump ................................................................................................ 75 3. La commande ufsrestore .............................................................................................. 76 4. Chapitre 5: Dmarrage et arrt du Systme ................................................................ 77 1. Dmarrage du Systme .................................................................................................. 77 1. Squence de Dmarrage ............................................................................................... 77 2. Le fichier : /etc/inittab .................................................................................................. 78 3. Les scripts de dmarrage .............................................................................................. 82 2. Arrt du systme............................................................................................................. 87 1. La commande : poweroff ............................................................................................. 87 2. La commande : halt ...................................................................................................... 88 3. La commande : reboot .................................................................................................. 88 4. La commande : shutdown ............................................................................................ 88 5. La commande : init ....................................................................................................... 89 Chapitre 6: Le systme d'impression ................................................................................... 90 1. Dfinition ......................................................................................................................... 90 2. Outils de gestion dimpression ...................................................................................... 90 3. Le modle Client-Serveur .............................................................................................. 90 1. Le serveur dimpression ............................................................................................... 90 2. Le client dimpression .................................................................................................. 90 4. Types de configurations dimpression possibles .......................................................... 91 1. Imprimante locale ......................................................................................................... 91 2. Imprimante rseau ........................................................................................................ 91 3. Imprimante distante ...................................................................................................... 91 5. Principe de fonctionnement d'une file d'impression ................................................... 91 6. Dfinition d'une classe d'imprimantes ......................................................................... 92 7. Dmarrage et arrt du service d'impression ................................................................ 92 1. La commande : lpshut .................................................................................................. 92

a. b.

La commande : lpsched ................................................................................................ 93 La cration dune file dattente ..................................................................................... 93 1. La commande : lpadmin ............................................................................................... 93 2. Le fichier : /etc/printers.conf ........................................................................................ 94 9. Configuration du systme d'impression ....................................................................... 94 1. La commande : accept .................................................................................................. 95 2. La commande : reject ................................................................................................... 95 3. La commande : enable .................................................................................................. 95 4. La commande : disable ................................................................................................. 95 10. Gestion du systme dimpression .............................................................................. 96 1. La commande : lpstat ................................................................................................... 96 2. La commande : cancel .................................................................................................. 97 3. La commande : lpmove ................................................................................................ 98 4. La commande : lp ......................................................................................................... 99 Chapitre 7: Gestion du Systme d'Exploitation ................................................................ 100 1. La comptabilit systme............................................................................................... 100 2. Les fichiers de base de donnes ................................................................................... 100 1. Le fichier : utmpx ....................................................................................................... 100 2. Le fichier : wtmpx ...................................................................................................... 100 3. Contenu des fichiers base de donnes ........................................................................ 100 4. Lancement de la comptabilit .................................................................................... 101 a. La commande : last ................................................................................................ 102 b. La commande : lastcomm ...................................................................................... 104 c. La commande : acctadm ......................................................................................... 105 3. Le lancement de tches ................................................................................................ 106 1. La commande : crontab .............................................................................................. 106 a. Le paramtrage ....................................................................................................... 107 b. Le dmon ................................................................................................................ 108 c. Modification ........................................................................................................... 108 d. Vrification............................................................................................................. 109 2. Les droits .................................................................................................................... 109 a. Le fichier : cron.allow ............................................................................................ 109 b. Le fichier : cron.deny ............................................................................................. 109 Chapitre 8: Installation des Packages et des Modules ...................................................... 111 1. Installation de packages ............................................................................................... 111 1. La commande : pkginfo .............................................................................................. 111 2. La commande : pkgadd .............................................................................................. 112 3. La commande : pkginfo .............................................................................................. 113 2. Les Modules du Noyau ................................................................................................. 115 1. Les fichiers pris en compte......................................................................................... 115 2. La commande : prtconf .............................................................................................. 115 3. La commande : modinfo ............................................................................................ 120 4. La commande : modload ............................................................................................ 121 5. La commande : modunload ........................................................................................ 122 3. Installation des fichiers tar.gz ..................................................................................... 123 1. Rcupration des sources de l'application : Webmin ................................................. 123 2. Installation de l'application : Webmin ........................................................................ 124 Chapitre 9: La gestion du Systme et des priphriques .................................................. 127 1. Informations sur le systme et les priphriques ...................................................... 127 1. La commande : uname ............................................................................................... 127 8.

2.

2. La commande : what .................................................................................................. 128 3. La commande : dmesg................................................................................................ 129 4. Le fichier : /etc/syslog.conf ............................................................................................ 130 a. Structure du fichier ................................................................................................. 130 b. Fonctionnement du fichier ..................................................................................... 131 c. Les priorits et sous-systmes ................................................................................ 131 2. Les fichiers spciaux..................................................................................................... 132 1. Structure d'un fichier spcial ...................................................................................... 132 2. Les fichiers spciaux bloc .......................................................................................... 132 3. Les fichiers spciaux caractres ................................................................................. 133 3. Les disques .................................................................................................................... 133 1. Contrleur direct ........................................................................................................ 133 a. Architecture SPARC .............................................................................................. 133 b. Architecture x86 ..................................................................................................... 134 2. Contrleur indirect ..................................................................................................... 134 a. Architecture SPARC .............................................................................................. 135 b. Architecture x86 ..................................................................................................... 135

Chapitre 1: Introduction
1. Rle d'un administrateur
L'administrateur d'un Systme d'Exploitation Unix doit garantir l'accs toutes les applications demandes par les Utilisateurs en assurant l'intgrit de leurs donnes. Dans tous les cas, l'administrateur aura la charge de maintenir le Systme d'Exploitation dans un tat tel que les Utilisateurs pouvaient travailler en toute confiance et de manire productive. L'administrateur aura les charges suivantes : dmarrage et arrt du Systme d'Exploitation ajouter, modifier, supprimer un compte Unix ajout de priphrique ajout de logiciel planification des sauvegardes des donnes grer les imprimantes maintenir le systme jour etc.

Toutes ces tches ne sont pas exhaustives,

2. Disponibilit du Systme d'Exploitation


La charge la plus contraignante est que l'administrateur doit tout faire pour que le systme soit disponible envers les Utilisateurs. Ceci est de la responsabilit de l'administrateur. Quoiqu'il arrive, panne de disques, arrt de services, etc., l'administrateur doit faire en sorte que ces problmes ne se rpercutent pas sur l'Utilisateur. Ces problmes doivent rester le plus possible transparent. Votre systme est fragile, une application peut ne plus fonctionner correctement et provoquer des erreurs d'exploitation, de telles manires qu'elle ne puisse plus remplir correctement sa tche. En dernier recours, vous devez tre capable de rinstaller votre Systme d'Exploitation tel qu'il tait avant le dysfonctionnement, vous devez donc tre sr que vos sauvegardes (Systmes d'Exploitation et les donnes Utilisateurs) seraient correctement faites.

3. Journal de bord
L'administrateur doit possder un journal de bord pour chaque Serveur Unix, dtaillant pour chacun d'entre eux toutes les caractristiques de la machine : hard, du Systme d'exploitation et des applications 'soft', mais aussi toutes les interventions, procdure, etc. plac de faon chronologique. Ce journal constitue la mmoire de votre Systme, vous devez consigner en annexe les fichiers de configuration. Le complment logique de ce journal est fourni par les logs systme qu'il faut archiver. Voici quelques questions (non exhaustive que vous pouvez avoir dans votre journal de bord). 6

a. Architecture du serveur Quelle est l'architecture de votre serveur (SPARC ou x86) Cela dterminera le type d'intervention (remplacement matriels, etc.) Dtermine les sources de votre Systme d'Exploitation Dtermine les packages chargs, les applications, etc.

b. Le Systme d'Exploitation et ses mises jour Quelle est la version de votre Systme d'Exploitation Vos applications fonctionnent-elles avec cette version Une mise jour du Noyau est programme ? Prsence d'une procdure de mise jour ?

c. Installation des applications Quelles sont les applications installes ( quoi servent-elles ?) O se trouvent les sources d'installations ? Comment les installer (ou les rinstaller) ? Quels sont les services utiliss pour ces applications ? Quels sont les procdures pour valider son fonctionnement ? Y a-t-il une procdure explicitant les problmes rencontrs ?

d. Les priphriques Caractristiques de tous les priphriques (comment s'en procurer ? et o) Frquence et type de sauvegarde des donnes Comment les restaurer A quel moment peut-on les remplacer (et de quelle manire) ?

e. Les sauvegardes Comment se passent les sauvegardes, qui s'en occupent, quelle frquence ? O se trouvent les priphriques de sauvegarde Ou placs les supports de sauvegarde, procdure suivre, etc.

Ceci n'est qu'une liste de ce que peut contenir un journal, il peut paratre dsuet d'en avoir un pour chaque Serveur, mais rappelez-vous que quelqu'un d'autre peut amener effectuer une intervention sur le serveur.

4. Prvention
Pensez agir de manire rversible. Chaque fois que l'on installe un priphrique, un logiciel que l'on met jour des donnes, il faut pouvoir revenir en arrire, car l'opration peut tre accomplie de faon incorrecte. Pour atteindre cet objectif, il faut prendre des prcautions supplmentaires la sauvegarde du systme et la tenue du journal de bord. Avant d'accomplir une action importante, vous devez vous poser la question suivante, comment revenir en arrire ? Vous devez automatiser les procdures rptitives (sauvegarde, installation d'un poste client, cration de comptes) via des scripts. L'avantage est double, gain de temps et scurit

accrue. A dfaut de scripts, les procdures manuelles d'exploitation doivent tre consignes trs clairement. Toutes les procdures d'exploitation doivent tre consignes dans le journal de bord. Mais avant tout, il faut anticiper les problmes (vrification de la place disponible sur le systme de fichiers par exemple). Prenez votre temps pour rgler un problme, si vous allez trop vite, vous risqu de faire des erreurs.

Chapitre 2: La gestion des Utilisateurs et des Groupes


Dans ce chapitre, nous allons tudier non seulement la gestion des Utilisateurs et des Groupes Unix, mais aussi les fichiers pris en comptes lors de cette gestion. Pour grer un compte ou un groupe Unix (cration, modification, suppression), vous avez la possibilit de modifier directement (manuellement) les fichiers contenant les informations. Mais nous vous dconseillons de les diter manuellement pour plusieurs raisons : Les fautes de saisies pourraient empcher une nouvelle connexion. Mme consquence pour une mauvaise manipulation (destruction d'un fichier ou d'une ligne) Si un utilisateur change de Mot de passe au mme moment, la modification ne sera pas prise en compte, le fichier tant dj ouvert.

Il est possible de modifier directement les fichiers si cela ne concerne qu'une seule modification, mais nous verrons plus loin que cette modification doive tre rpercute sur plusieurs fichiers, il est plus rapide d'utiliser la commande adquate.

1. L'environnement
1. Description d'un Utilisateur
Un Utilisateur n'est pas forcment une personne physique, c'est une entit qui peut excuter un programme et dtenir des fichiers sur un Systme d'Exploitation. Dans notre cas, nous parlons de : pseudo Utilisateur. Cela peut donc tre un autre Systme d'Exploitation, une fonction ou un groupe d'individus. Certains pseudo Utilisateur n'existent que dans le but de dtenir un ensemble de fichier, d'excuter des processus requis pour un sous-systme particulier. Pour des raisons de comprhension, nous utiliserons maintenant le terme : comptes Unix qui regroupera les comptes Utilisateurs et les comptes pseudo Utilisateurs. Chacun de ses comptes a besoin d'un login (nom de connexion) et d'un Mot de passe afin de valider son identification auprs du Systme d'exploitation.

2. Description d'un Groupe


Un Groupe est un regroupement de plusieurs comptes Unix sous un nom unique. Etant donn comme nous l'avons vu plus haut que certains comptes Unix ne sont pas forcment des personnes physiques, nous utiliserons le terme de : groupe Unix.

2. Les fichiers de paramtrage


Nous allons tudier pour l'instant les trois fichiers les plus important pour un utilisateur ou pour un groupe, en effet, la majorit des informations ncessaires la connexion un Systme sont rpertories dans ces trois fichiers, savoir : - /etc/passwd - /etc/group - /etc/shadow Remarque : Ces trois fichiers sont dpendants les uns des autres, si l'un d'eux est manquant, l'identification au Systme se fera partiellement dans le meilleur des cas, ou pas du tout.

1. Le fichier : /etc/passwd
Le fichier : /etc/passwd contient la liste de tous les comptes pouvant se connecter, chaque ligne reprsente un compte Unix.
# more /etc/passwd root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico smmsp:x:25:25:SendMail Message Submission Program:/: listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/: user1:x:101:100::/export/home/user1:/bin/sh user2:x:102:100::/export/home/user2:/bin/sh user3:x:103:100::/export/home/user3:/bin/sh user4:x:104:100::/export/home/user4:/bin/sh user5:x:105:100::/export/home/user5:/bin/sh user6:x:106:100::/export/home/user6:/bin/sh user7:x:107:100::/export/home/user7:/bin/sh

Structure du fichier : Chaque ligne contient plusieurs sept informations, spares par le caractre : Nom x UID GID Information Rpertoire Shell

Champs Nom x UID GID Information

Description Nom de connexion (login), limit huit caractres. Ancienne localisation du Mot de passe crypt. Celui-ci est dsormais stock dans le fichier : /etc/shadow. Numro de lUtilisateur (UID), doit tre unique et suprieur ou gal 100 si ce nest pas un compte systme Numro du groupe propritaire Commentaire (GCOS), utilis dans certains services comme

10

Rpertoire Shell

la messagerie (voir commande : finger) Rpertoire de connexion. Interprteur de connexion.

Remarque : Ce fichier est important pour le Systme d'Exploitation, sans lui, aucun compte ne peut se connecter

2. Le fichier : /etc/group
Un groupe est un regroupement de comptes Unix dsign par un nom unique. Tous les comptes d'un groupe auront des droits communs sur certains fichiers et/ou Rpertoires. La liste des groupes est enregistre dans le fichier : /etc/group. Chaque ligne reprsente un groupe Unix. Exemple :
$ more /etc/group root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,adm lp::8:root,lp,adm nuucp::9:root,nuucp staff::10: daemon::12:root,daemon sysadmin::14: smmsp::25:smmsp nobody::60001: noaccess::60002: nogroup::65534: form::100: proj::101:

Structure du fichier : ...................................................................................................................................................... Chaque ligne reprsente un groupe. Chacune d'entre elles contient plusieurs informations (4 champs), spares par le caractre : Nom x GID Liste
Champs Description Nom Nom du groupe x Inutilis Numro du groupe (GID), doit tre unique et suprieur ou gal GID 100 si ce nest pas un groupe systme (cette valeur dpend du systme dexploitation) Liste des comptes appartenant au groupe (le caractre de Liste sparation est la virgule (,)

Remarque :

Si le fichier est inexistant, l'identification au Systme se fera partiellement. Le systme lui attribuera un groupe par dfaut.

11

3. Le fichier : /etc/shadow
Le fichier : /etc/shadow contient les informations ncessaires la scurit des comptes Unix (Mot de passe, dlai de validation, etc.). Chacune de ces lignes reprsente les comptes Unix du fichier : /etc/passwd. Exemple :
$ more /etc/shadow root:Ov9UEJqCU1qYE:6445:::::: daemon:NP:6445:::::: bin:NP:6445:::::: sys:NP:6445:::::: adm:NP:6445:::::: lp:NP:6445:::::: uucp:NP:6445:::::: nuucp:NP:6445:::::: smmsp:NP:6445:::::: listen:*LK*::::::: nobody:NP:6445:::::: noaccess:NP:6445:::::: nobody4:NP:6445:::::: user1:VrxE.TkwczONQ:13341:::::: user2:gay.XgUXq5Zls:13346:::::: user3:NDSBWp/tSqmkk:13346:::::: user4:gajxZH79K.djI:13346:::::: user5:Ax8dpob6tYedU:13346:::::: user6:67n9p4usmnwCM:13346:::::: user7:LgHPNgz7m9mZA:13346::::::

Structure du fichier : Chaque ligne contient plusieurs informations (9 champs), spares par le caractre : Nom
MdP

Dch

Min

Max

Alerte

Dsac

Arrt

Drapeaux

Champs Nom MdP Dch Min Max Alerte Dsac Arrt Drapeaux

Description Nom de lUtilisateur. Mot de Passe crypt (*LK* Compte verrouill). Si ce champ est vide, aucun mot de passe sera demand. Dernier Changement (Nombre de jours depuis le 01/01/1970, depuis le dernier changement du Mot de Passe). Nombre de jours minima devant scouler avant toute autre modification de Mot de Passe. Nombre de jours maxima pendant lesquels le Mot de Passe sera valide. Au-del, il sera ncessaire de le changer. Nombre de jours avant la date dexpiration, partir desquels lutilisateur sera averti de lexpiration prochaine de son Mot de Passe. Nombre de jours aprs lexpiration du Mot de Passe, au bout desquels le compte sera dsactiv. Nombre de jours depuis le 01/01/1970 au bout desquels le compte est automatiquement dsactiv. Rserv pour des utilisations futures

Remarque : Si ce fichier n'existe pas, aucune connexion ne sera possible.

12

4. Vrification des fichiers


Vous avez votre disposition des commandes vous permettant de vrifier la cohrence des fichiers prcdents. Cette vrification se fera notamment sur la structure des fichiers, comme nous allons nous en apercevoir. Pour tudier le niveau de la vrification, nous avons modifi de faon manuel les fichiers tudi prcdemment, savoir : - /etc/passwd - /etc/group - /etc/shadow Liste des modifications : 1) 2) 3) 4) 5) 6) Modification du rpertoire de connexion du compte : user1 Ajout d'un champ supplmentaire la fin de la ligne pour le compte : user5 Modification de la valeur d'un UID (deux UID identiques) Modification d'un login d'un compte Unix (deux noms de login identiques) Suppression du compte : user3 seulement dans le fichier : /etc/shadow Suppression du compte : user7 seulement dans le fichier : /etc/passwd

Nous avons bien entendu sauvegarder auparavant les trois fichiers : - /etc/passwd - /etc/group - /etc/shadow Remarque : Ces modifications ne sont pas raliser sur un serveur de production. Nous l'avons fait dans le seul but d'tudier les commandes suivantes.

a. La commande : pwck
La commande : pwck permet de vrifier la syntaxe entre les deux fichiers : - /etc/passwd - /etc/shadow Syntaxe : Exemple :
# pwck user1:x:101:1::/export/home/user1a:/bin/sh Login directory not found user4:x:105:1::/export/home/user5:/bin/sh:champ_en_trop Trop ou trop peu de zones

pwck

Si nous tudions convenablement le rsultat de cette commande, nous remarquons que celle-ci n'a dcel que deux erreurs entre les fichiers : - /etc/passwd - /etc/shadow Les modifications repres sont les suivantes : 1) Modification du rpertoire de connexion du compte : user1 2) Ajout d'un champ supplmentaire la fin de la ligne pour le compte : user5

13

La dernire ligne correspond au compte : user5 mme si son nom a t modifi (modification n4)

b. La commande : grpck
La commande : pwck permet de vrifier la syntaxe entre les deux fichiers : - /etc/passwd - /etc/group Syntaxe : Exemple :
# grpck bin::2:root,bin,daemon bin - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) sys::3:root,bin,sys,adm sys - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) adm::4:root,adm,daemon adm - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) uucp::5:root,uucp uucp - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) lp::8:root,lp,adm lp - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) nuucp::9:root,nuucp nuucp - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd) smmsp::25:smmsp smmsp - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd)

grpck

La commande : grpck n'a trouv aucune modification, par contre, celle-ci ne fait pas la diffrence entre : - Le nom d'un groupe Unix - Le login d'un compte Unix Si nous reprenons un seul exemple, voici ce que nous obtenons : Exemple :
lp::8:root,lp,adm lp - Entre de nom de connexion en double (gid apparat d'abord dans l'entre passwd)

La commande indique que nous avons employ comme nom d'un groupe Unix, un nom de login, en effet, si nous regardons l'intrieur du dernier champs, nous voyons que le compte : lp fait partie du groupe : lp. Remarque : Nous vous avons montr la possibilit de ces deux commandes afin de vous persuader d'utiliser les commandes permettant de 14

grer les comptes et les groupes Unix au lieu de les modifier manuellement.

3. La gestion des Utilisateurs


Nous allons maintenant tudier les commandes permettant de grer un utilisateur, allant de la cration, la modification jusqu' la suppression.

1. La commande : useradd
La commande : useradd permet de crer un compte Unix. Syntaxe : Exemple :
# rep=/export/home/util # useradd u 504 g proj m d ${rep}1 util1 64 blocs # useradd u 505 g proj c "util2" m d ${rep}2 util2 64 blocs # useradd u 506 g proj c "util3" s /bin/bash m d ${rep}3 util3 64 blocs # useradd u 507 g proj G form m d ${rep}4 util4 64 blocs # useradd u 508 g form G proj m d ${rep}5 util5 64 blocs # useradd u 509 g form G proj f 10 m d ${rep}6 util6 64 blocs # useradd u 510 g form f 10 e 03/07/07 m d ${rep}7 util7 64 blocs # passwd util7 Nouveau mot de passe : Entrez de nouveau le mot de passe : passwd : mot de passwd correctement modifi pour util7

useradd [-u uid [-o] | -g group | -G group[[,group]...] | -d dir | -s shell | -c comment | -m [-k skel_dir] login

Nous avons plac entre parenthses les fichiers qui sont modifis lors de l'excution de la commande : useradd.
Options -u -g -m -d -c "xxxxx" -s -G -f -e -k Description

UID du compte, unique et positif (/etc/passwd et /etc/shadow)


Dfinit le groupe primaire (GID ou nom) dans le fichier : /etc/passwd Cration du rpertoire de connexion dans l'arborescence Renseigne le nom du rpertoire de connexion (/etc/passwd) Renseigne le champ commentaire (/etc/passwd) Dfinit le Shell de connexion Groupes secondaires (liste de groupe spar par des virgules) Nombre de jours dinactivit, au bout duquel le compte devient invalide. Dfinit la date d'expiration du compte sous le format mm/jj/aa (/etc/shadow) Dtermine le Rpertoire partir duquel tous les fichiers d'origine vont

15

-o

tre recopis. Autorise quun uid da utilis pour un utilisateur le soit nouveau pour un autre. Cela permet que plusieurs utilisateurs nen fasse quun.

Nous venons de crer des comptes Unix, en voici le rsultat par rapport au contenu des trois fichiers :
# tail -7l /etc/passwd util1:x:504:101::/export/home/util1:/bin/sh util2:x:505:101:util2:/export/home/util2:/bin/sh util3:x:506:101:util3:/export/home/util3:/bin/bash util4:x:507:101::/export/home/util4:/bin/sh util5:x:508:100::/export/home/util5:/bin/sh util6:x:509:100::/export/home/util6:/bin/sh util7:x:510:100::/export/home/util7:/bin/sh # tail -2l /etc/group form::100:util4 proj::101:util5,util6,util7 # tail -7l /etc/shadow util1:*LK*::::::: util2:*LK*::::::: util3:*LK*::::::: util4:*LK*::::::: util5:*LK*::::::: util6:*LK*:::::10:: util7:CL0syaB.bwxHI:13346::::10:13598:

# ls l /export/home
drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 root user1 user2 user3 user4 user5 user6 user7 util1 util2 util3 util4 util5 util6 util7 root other other other other other other other proj proj proj proj form form form 8192 512 512 512 512 512 512 512 512 512 512 512 512 512 512 juil juil juil juil juil juil juil juil juil juil juil juil juil juil juil 6 17 17 17 17 17 17 17 17 17 17 17 17 17 17 22:50 18:13 17:57 17:57 17:57 17:57 17:57 17:57 22:30 22:31 22:31 22:32 22:33 22:33 22:33 lost+found user1 user2 user3 user4 user5 user6 user7 util1 util2 util3 util4 util5 util6 util7

Remarque :

Sur Solaris 9, nous ne pouvons pas intgrer par dfaut directement le mot de passe du compte avec la commande : useradd. Par contre, cela est possible avec la version 10 de Solaris.

2. La commande : userdel
La commande : userdel permet de supprimer un compte Unix. Syntaxe : userdel [-r] login

16

Exemple :
# userdel util7 # userdel r util6 # tail -5l /etc/passwd util1:x:504:101::/export/home/util1:/bin/sh util2:x:505:101:util2:/export/home/util2:/bin/sh util3:x:506:101:util3:/export/home/util3:/bin/bash util4:x:507:101::/export/home/util4:/bin/sh util5:x:508:100::/export/home/util5:/bin/sh # tail -2l /etc/group form::100:util4 proj::101:util5 # tail -5l /etc/shadow util1:*LK*::::::: util2:*LK*::::::: util3:*LK*::::::: util4:*LK*::::::: util5:*LK*::::::: # ls l /export/home drwx-----2 root drwxr-xr-x 2 user1 drwxr-xr-x 2 user2 drwxr-xr-x 2 user3 drwxr-xr-x 2 user4 drwxr-xr-x 2 user5 drwxr-xr-x 2 user6 drwxr-xr-x 2 user7 drwxr-xr-x 2 util1 drwxr-xr-x 2 util2 drwxr-xr-x 2 util3 drwxr-xr-x 2 util4 drwxr-xr-x 2 util5 drwxr-xr-x 2 510 root other other other other other other other proj proj proj proj form form 8192 512 512 512 512 512 512 512 512 512 512 512 512 512 juil juil juil juil juil juil juil juil juil juil juil juil juil juil 6 17 17 17 17 17 17 17 17 17 17 17 17 17 22:50 18:13 17:57 17:57 17:57 17:57 17:57 17:57 22:30 22:31 22:31 22:32 22:33 22:33 lost+found user1 user2 user3 user4 user5 user6 user7 util1 util2 util3 util4 util5 util7

Remarque :

Le troisime champ de la dernire ligne correspond au numro UID du compte Unix : util7. Le fait de voir le numro signifie que ce compte n'exite plus. Le Systme d'Exploitation ne peut pas effectuer la correspondance entre le n UID et le nom de login car la ligne n'existe plus.

Options -r

Description Supprime le rpertoire de connexion du compte Unix

3. La commande : usermod
La commande : usermod permet de modifier tous les paramtres du compte Unix crer auparavant par la commande : useradd. Syntaxe : usermod [ -u uid [-o]] [-g group] [ -G group [ , group...]] [ -d dir [-m]] [-s shell] [-c comment] [-l new_name] [-f inactive] [-e expire] [-A authorization [, authorization]] [-P profile [, profile]] [-R role [, role]] login

Exemple : 17

# more /etc/passwd | grep util1 util1:x:504:101::/export/home/util1:/bin/sh # usermod c "Compte util1" util1 # usermod u 700 util1 # more /etc/passwd | grep util1 util1:x:700:101:Compte util1:/export/home/util1:/bin/sh # more /etc/passwd | grep util2 util2:x:505:101:util 2:/export/home/util2:/bin/sh # more /etc/shadow | grep util2 util2:*LK*::::::: # usermod u 710 s /bin/bash f7 e 03/27/07 util2 # more /etc/passwd | grep util2 util2:x:710:101:util 2:/export/home/util2:/bin/bash # more /etc/shadow | grep util2 util2:*LK*:::::7:13599:

Nous avons plac entre parenthses les fichiers qui sont modifis lors de l'excution de la commande : usermod.
Options -u -g -m -d -c "xxxxx" -s -G -f -e Description

UID du compte, unique et positif (/etc/passwd et /etc/shadow)


Dfinit le groupe primaire (GID ou nom) dans le fichier : /etc/passwd Cration du rpertoire de connexion dans l'arborescence Renseigne le nom du rpertoire de connexion (/etc/passwd) Renseigne le champ commentaire (/etc/passwd) Dfinit le Shell de connexion Groupes secondaires (liste de groupe spar par des virgules) Prcise le nombre de jours maximum aprs l'expiration du Mot de passe au bout desquels le compte sera dsactiv (/etc/shadow) Dfinit la date d'expiration du compte sous le format mm/jj/aa (/etc/shadow)

4. La commande : passwd
Un utilisateur peut changer le mot de passe de son compte de connexion. Pour cela il doit utiliser la commande : passwd. Le mot de passe devra rpondre certains critres (diffrents du compte de connexion, contenir un caractre non alphabtique,...). En fonction de l'administration des comptes UNIX, l'utilisateur devra changer ou non son mot de passe de faon rgulire. Syntaxe :
Options -g -h -f -d -l -n min -x max

passwd [-gh] [name] passwd [-d | -l] [-f] [-n min] [-w warn] [-x max] name
Description Change le commentaire du compte Unix Change le rpertoire local Force l'utilisateur changer le mot de passe la prochaine ouverture Supprime le mot de passe Verrouille le compte Unix Nombre de jours minima devant scouler avant toute autre modification de Mot de Passe. Nombre de jours maxima pendant lesquels le Mot de Passe sera

18

-w warn

valide. Au-del, il sera ncessaire de le changer. Nombre de jours avant la date dexpiration, partir desquels lutilisateur sera averti de lexpiration prochaine de son Mot de Passe.

Exemple :
# more /etc/shadow | grep user1 user1:EuDvolrlvjclU:13359:::::: # passwd n 10 x 20 w 5 user1 passwd: informations de mot de passe modifies pour user1 # more /etc/shadow | grep user1 user1:EuDvolrlvjclU:13360:10:20:5::: # passwd d user1 passwd: informations de mot de passe modifies pour user1 # more /etc/shadow | grep user1 user1::13360:10:20:5::: # passwd l user1 passwd: informations de mot de passe modifies pour user1 # more /etc/shadow | grep user1 user1:*LK*:13360:10:20:5::: # passwd f user1 passwd: informations de mot de passe modifies pour user1 # passwd h user1 Les valeurs par dfaut sont imprimes entre '[]'. Pour accepter la valeur par dfaut, tapez <retour>. Pour avoir une entre vide, tapez le mot 'none'. Rpertoire d'accueil [/export/home/user1] : Informations Homedir non modifies. # passwd g user1 Les valeurs par dfaut sont imprimes entre '[]'. Pour accepter la valeur par dfaut, tapez <retour>. Pour avoir une entre vide, tapez le mot 'none'. Nom [] : Informations Finger non modifies.

5. La commande : finger
La commande : finger permet d'afficher des informations concernant la connexion de chaque compte Unix. Syntaxe : Exemple :
# finger Login Name user1 ??? user1 ??? TTY pts/1 pts/3 Idle When Where Mon 02:36 192.168.1.2 Mon 02:59 192.168.1.2

finger [-fiq] [compte Unix]

# finger user1 Login name: user1 Directory: /export/home/user1 Shell: /bin/sh On since Jul 31 02:36:33 on pts/1 from 192.168.1.2 No unread mail No Plan.

19

Login name: user1 Directory: /export/home/user1 Shell: /bin/sh On since Jul 31 02:59:26 on pts/3 from 192.168.1.2 1 minute 9 seconds Idle Time # finger f user1 ??? user1 ??? # finger i Login TTY user1 pts/1 user1 pts/3 # finger m Login Name user1 ??? user1 ??? pts/1 pts/3 Mon 02:36 192.168.1.2 2 Mon 02:59 192.168.1.2

When Idle Mon Jul 31 02:36 Mon Jul 31 02:59 3 minutes 11 seconds TTY pts/1 pts/3 Idle When Where Mon 02:36 192.168.1.2 4 Mon 02:59 192.168.1.2

Options -f -i -q

Description N'affiche pas l'en-tte Affiche le login, terminal, dbut de la connexion et la dure. Affiche en particulier le terminal, et la dure.

4. La gestion des Groupes


La gestion des groupes va nous permettre de crer, modifier ou de supprimer un ou plusieurs groupes Unix.

1. La commande : groupadd
La commande : groupadd permet de crer des groupes locaux Unix en modifiant le contenu du fichier : /etc/group. Syntaxe : Exemple :
# tail -2l /etc/group form::100:util4 proj::101:util5,util6 # groupadd mission # groupadd g 476 unix # groupadd g 101 proj1 UX: groupadd: ERROR: 101 is already in use. Choose another. # groupadd g 101 o proj1 # tail -5l /etc/group form::100:util4 proj::101:util5,util6 mission::102: unix::476: proj1::101:

groupadd [ -g gid [ -o ]] nom_groupe

Options -g gid

Description Spcification du numro GID du groupe de travail, celui-ci ne doit pas

20

-n name -o

tre ngatif. Les numros 0-99 sont rservs pour le systme dexploitation (Groupe systme et pour des futures applications). Sans cette option, le numro GID suivra par ordre croissant le numro prcdent. Nom du groupe de travail Permet de crer un groupe avec un numro GID dj existant

2. La commande : groudel
La commande : groupdel permet de supprimer un groupe Unix en modifiant le contenu du fichier : /etc/group. Syntaxe : Exemple :
# tail -5l /etc/group form::100:util4 proj::101:util5,util6 mission::102: unix::476: proj1::101: # groupdel unix # groupdel proj1 # groupdel mission # tail -2l /etc/group form::100:util4 proj::101:util5,util6

groupdel nom_groupe

3. La commande : groupmod
La commande : groupmod permet de modifier tous les paramtres d'un groupe Unix crer auparavant par la commande : groupadd. Syntaxe : Exemple :
# tail -2l /etc/group form::100:util4 proj::101:util5,util6 # groupmod n mission proj # tail -2l /etc/group form::100:util4 mission::101:util5,util6 # groupmod g 197 n unix form # tail -2l /etc/group unix::197:util4 mission::101:util5,util6

groupmod [ -g gid [ -o]] [ -n name] nom_groupe

Options -g gid

Description Spcification du numro GID du groupe de travail, celui-ci ne doit pas tre ngatif. Les numros 0-99 sont rservs pour le systme dexploitation (Groupe systme et pour des futures applications)

21

-n name -o

Nom du groupe de travail Permet de crer un groupe avec un numro GID dj existant

5. Configuration de lenvironnement utilisateur


1. Les variables denvironnement
Un certain nombre de variables sont dfinis dans l'environnement du Shell. Elles contiennent des informations ncessaires au fonctionnement de l'interprteur et/ou des commandes lances partir de celui-ci.

2. liste des variables


La commande: set donne la liste des variables dfinies dans le Shell courant. Exemple :
$ set BASH=/bin/bash BASH_VERSINFO=([0]="2" [1]="05" [2]="0" [3]="1" [4]="release" [5]="sparc-sun-solaris2.9") BASH_VERSION=$'2.05.0(1)-release' COLUMNS=80 DIRSTACK=() EUID=100 GROUPS=() HISTFILE=/export/home/user1/.bash_history HISTFILESIZE=500 HISTSIZE=500 HOME=/export/home/user1 HOSTNAME=Solaris HOSTTYPE=sparc HZ=100 IFS=$' \t\n' LC_COLLATE=fr_FR.ISO8859-1 LC_CTYPE=fr_FR.ISO8859-1 LC_MESSAGES=fr LC_MONETARY=fr_FR.ISO8859-1 LC_NUMERIC=fr_FR.ISO8859-1 LC_TIME=fr_FR.ISO8859-1 LINES=30 LOGNAME=user1 MACHTYPE=sparc-sun-solaris2.9 MAIL=/var/mail/user1 MAILCHECK=60 OLDPWD=/export/home/user1 OPTERR=1 OPTIND=1 OSTYPE=solaris2.9 PATH=/usr/bin: PIPESTATUS=([0]="0") PPID=433

22

PS1=$'\\s-\\v\\$ ' .........

3. Modification du contenu dune variable


Linterprteur permet dinitialiser ou de modifier le contenu dune variable. Exemple :
$ echo $var $ var=12 echo $var 12

Si la valeur contient des caractres spciaux du Shell :

-$ -> - espace

Il faut empcher le Shell de les interprter en entourant la variable avec des . Cest l'une des trois manires de masquer des caractres en Shell. Exemple :
$ var=bonjour> $ echo $var bonjour>

Remarque :

Il ne faut pas mettre d'espace autour du symbole =. Linterprteur ne comprendrait pas quil sagit dune affectation.

4. Les principales variables


Certaines variables contiennent des informations concernant lutilisateur. La modification du contenu dune dentre-elles peut engendrer des disfonctionnement.

a. La variable : HOME
La variable : HOME contient la valeur du rpertoire de connexion de lutilisateur. Exemple :
$ echo $HOME /export/home/user1

b. La variable : PATH
La variable : PATH contient la liste des rpertoires qui vont tre explors par linterprteur lorsquune commande est lance (lecture de la gauche vers la droite). Si le rpertoire courant nest pas spcifi, la recherche ne seffectuera pas dans celui-ci. Exemple :
$ echo $PATH /usr/bin:

23

Pour quune commande soit recherche dans le rpertoire courant, nous devons modifier le contenu de la variable : PATH. Nous allons lui indiquer le chemin du rpertoire courant laide du point. Exemple :
$ PATH=$PATH:. $ export PATH

Remarque : La commande : export est ncessaire pour faire connatre cette valeur dans tous les processus (voir exportation des variables).

c. La variable : PWD
La variable : PWD contient la chane de caractre reprsentant le rpertoire o lutilisateur se trouve actuellement (rpertoire courant) Exemple :
$ echo $PWD /export/home/user1 $ cd .. $ pwd /export/home

d. La variable : PS1
La variable : PS1 contient la chane de caractre reprsentant le prompt principal. Il est possible de modifier le prompt principal (attention au type de linterprteur). Exemple :
$ echo $PS1 $ $ PS1="bonjour> " bonjour>

Nous pouvons modifier cette variable afin quelle puisse nous prsenter chaque fois le rpertoire courant. Paramtrage pour linterprteur : ksh
$ PS1='$PWD> ' /export/home/user1>

Paramtrage pour linterprteur : bash


Options \u \h \w \w Description Nom de l'utilisateur Nom de la machine Rpertoire courant Partir terminale du rpertoire courant

Exemple :
$ PS1='\h'>

24

Solaris> PS1='\W'> user1> PS1='\w'> ~> cd .. /export/home>

e. La variable : PS2
La variable : PS2 contient la chaine de caractre reprsentant le prompt secondaire. Celui-ci apparat lorsque des lments de syntaxe Shell sont manquants. Exemple :
$ echo Bonjour> > Il manque un guillemet la fin > pour terminer la commande, > tant que je ne le mettrais pas, il ne terminera > pas la commande $ Il manque un guillemet la fin pour terminer la commande, tant que je ne le mettrais pas, il ne terminera pas la commande

Comme la variable : PS1, nous pouvons modifier la variable : PS2 afin quelle puisse fournir plus dinformations lutilisateur. Exemple :
$ PS2=Information ? > $ echo Bonjour Information ? > encore un Bonjour encore un

f. La variable : TMOUT
La variable : TMOUT contient une valeur (en seconde) permettant de dfinir un dlai de dsactivation du terminal si aucune action nest dtecte. Si la valeur est : 0, le timeout est dsactiv. Dans notre exemple, nous allons initialiser la variable et attendre le nombre de seconde ncessaire la dconnexion (ici : 30 secondes). Exemple :
$ echo $TMOUT $ TMOUT=30 $ export TMOUT $ timed out waiting for input : auto-logout

25

g. La variable : TERM
La variable : TERM contient le type de terminal utilis par lutilisateur. Plusieurs types de terminaux existent : - ansi - vt100 - vt220 - dtterm - xterm Ces fichiers renvoient un fichier de paramtrage du systme. Exemple :
$ echo

$TERM

ansi

h. La variable : LOGNAME
La variable : LOGNAME contient le nom de connexion de lutilisateur. Exemple :
$ echo

$LOGNAME

user1 Remarque : Il est possible de changer didentit sans pour autant se dconnecter (nous verrons la commande dans ce cours). Dans ce cas, nous aurons le mme rsultat, savoir le nom de connexion, car cest au moment de la connexion que cette variable est initialise.

i. Exportation dune variable


Par dfaut les variables dfinies au niveau de linterprteur ne sont pas transmises aux commandes lances partir de celui-ci. Pour quelles le soient, il faut demander linterprteur de les exporter. Un certain nombre de variables sont exportes par dfaut ( laide de la commande : set). Exemple :
$ PS1=Bonjour> Bonjour> ksh $

Une variable exporte au niveau de linterprteur sera transmise tous les processus issus de celui-ci. Exemple :
$ var=12 $ echo $var 12 $ ksh $ echo $var 12

26

6. Les alias
Linterprteur propose une commande interne : alias qui permet de crer des raccourcis sur des commandes. Un certain nombre dalias existent par dfaut.
Options alias=commande alias alias nom_alias unalias nom_alias Description Dfinition dun alias Affiche tous les alias Affiche lalias : nom_alias Supprime lalias : nom_alias

Exemple :
$

alias l='ls /etc/passwd' $l /etc/passwd $ alias l


alias l='ls /etc/passwd'

$ unalias l $ alias

7. Paramtrer le rappel de commandes


a. Paramtrer le rappel de commandes en ksh
1. Avec loption vi Le shell propose dutiliser des commandes identiques celles de lditeur vi pour rappeler et ventuellement modifier les commandes stockes dans le fichier ~/. sh_history. Il faut pour cela activer loption : set o vi A partir de maintenant, il faut simaginer dans lditeur vi. Certaines actions seffectuent en mode commande, dautres en mode insertion. Pour un utilisateur peu familier avec lditeur vi, son utilisation peu paratre complique. Il est recommand dutiliser le mode emacs car avec un paramtrage supplmentaire, les flches du clavier peuvent tre utilises pour parcourir lhistorique. 2. Avec loption emacs Le shell propose dutiliser des commandes identiques celles de lditeurs emacs pour rappeler et ventuellement modifier les commandes stockes dans le fichier ~/.sh_history. Il faut pour cela activer loption : set o emacs Reprsentation des flches : Symboles reprsentants les flches en mode emacs _ _A _ _B _ _C

Flche correspondante

27

_ _D

La commande alias permet de faire corresponde les flches du clavier avec des commandes du mode emacs. Voici la manire dont il faut sy prendre : set o emacs alias __A=^P alias __B=^N alias __C=^F alias __D=^B

Pour faire apparatre le caractre ^, il faut saisir par exemple alias __A=\touchectrl P La commande alias | cat -v permet dafficher ces alias proprement.

b. Paramtrer le rappel de commandes en bash


Loption emacs est active par dfaut. La correspondance commandes emacs flches est automatique.

8. Les fichiers denvironnement


Les fichiers d'environnement servent stocker de manire permanente les dfinitions lies aux paramtrages de l'environnement utilisateur. Ils contiennent des commandes Unix et sont toujours interprts par un Shell. Ce sont des scripts Shell d'environnement

a. Lenvironnement texte
En environnement texte, le Shell de connexion est lanc immdiatement aprs l'identification de l'utilisateur par son nom de login et son Mot de passe. Ce processus est l'anctre commun de toutes les commandes qui seront lances pendant la session. Tout Shell lanc ultrieurement n'aura pas le statut de Shell de connexion

b. Lenvironnement graphique
En environnement graphique, le Shell de connexion est lanc entre la bannire de connexion et l'affichage du bureau. Ce n'est donc pas un Shell interactif. Le bureau et toute application lance ultrieurement partir des icnes sont des processus descendant du Shell de connexion Dans la majorit des cas, un terminal ouvert partir de l'environnement graphique n'est pas associe a un Shell de connexion. Cependant certaines plates-

28

formes permettent de lancer partir du bureau soit un Shell de connexion (Console sous Solaris), soit un Shell ordinaire (terminal sous Solaris). Les fichiers d'environnement mis en jeu ne seront pas les mmes dans chaque cas.

c. Fichiers denvironnement lus par le Shell de connexion


Le Shell de connexion lit un script Shell systme qui se nomme : /etc/profile. Ce fichier est gr par l'administrateur du systme et contient des paramtrages communs tous les utilisateurs. Il recherche ensuite dans le rpertoire de connexion de lutilisateur un script denvironnement dont le nom dpend quant lui du Shell.
Shell sh ou ksh bash Nom des fichiers .profile .bash_profile .bash_login .profile

Ordre de lecture (si ceux-ci existe)

Le fichier contient principalement : Exemple :


$ cd $ more .profile # This is the default standard profile provided to a user. # They are expected to edit it to meet their own needs. MAIL=/usr/mail/${LOGNAME:?} PATH=${PATH}:. export PATH

Les paramtres systmes (par exemple la commande : umask) La dfinition des variables exportes.

Si lutilisateur apporte des modifications, ce dernier devra tre relu par le Shell, pour cela il existe deux mthodes : Se dconnecter et se reconnecter. Relire le fichier en utilisant une commande interne (la commande . ). Remarque : La premire mthode est dconseille car si le fichier nest pas correctement modifi, lutilisateur risque de recevoir des messages derreur et les paramtres (ainsi que les variables et alias) risquent de ne pas tre chargs. Exemple :
$ echo "date" >> .profile $ .profile ksh: .profile : impossible d'excuter $ . .profile mardi, 13 juin 2006, 10:42:03 CEST

Session utilisant un Bourne Shell :

29

- Phase didentification effective - Lancement dun Shell de connexion (Bourne Shell) - Lecture du script : /etc/profile - Lecture du script : ${HOME}/.profile (sil existe) - Tous les descendants du Shell de connexion vont recevoir les paramtres systmes ainsi que les variables exportes. Session utilisant un Korn Shell : Les variables et les paramtres utilisateurs doivent tre dans le fichier : .profile. Les options et les alias seront stocks dans un autre script (par convention : $HOME/.kshrc). Les options de lditeur vi dans le fichier $HOME/.exrc qui lui peut etre remplacer par la variable EXINIT. - Phase didentification effective. - Lancement dun Shell de connexion (Korn Shell) - Lecture du script : /etc/profile - Lecture du script : ${HOME}/.profile (sil existe) - Tous les descendants du Shell de connexion vont recevoir les paramtres systmes ainsi que les variables exportes. Remarque : Si la variable : ENV est dfinie, linterprteur considre que sa valeur reprsente le nom dun script (ici : $HOME/.kshrc). Attention, la variable : ENV nest pas dfinie par dfaut. Un Shell ordinaire (de non connexion) : - Recevra automatiquement la valeur des paramtres systmes et des variables exportes. - Lire le fichier : .kshrc (si la variable : ENV est renseigne et exporte). - Affichage du prompt principal. Remarque : Un Shell ordinaire (de non connexion) ne lira jamais le fichier : .profile. Session utilisant un Bourne Again Shell : Les variables et les paramtres utilisateurs doivent tre dans le fichier : .bash_profile (si la variable : BASH_ENV est dfinie). Les options et les alias seront stocks dans un autre script (par convention : .bashrc). Seul un Shell ordinaire lira le fichier : .bashrc - Phase didentification effective. - Lancement dun Shell de connexion (Bourne Again Shell) - Lecture du script : /etc/profile - Lecture du script : ${HOME}/.bash_profile (sil existe) - Tous les descendants du Shell de connexion vont recevoir les paramtres systmes ainsi que les variables exportes. Remarque : Une commande telle que : . ./.bashrc peut-tre ajout dans le fichier : .bash_profile pour demander au Shell de connexion de lire ce fichier afin dintgrer les alias et les

30

options.

d. Les fichiers complments


Nous allons maintenant tudier les autres fichiers que nous pouvons rpartir en deux catgories. La premire reprsentant les fichiers pris en compte lors de la gestion d'un compte Unix. La deuxime quant elle, correspond aux fichiers d'environnements permettant d'amliorer la convivialit des Utilisateurs.

1. Le rpertoire : /etc/skel Le rpertoire : /etc/skel contient les fichiers et les rpertoires qui seront recopis dans le rpertoire du compte Unix lors de sa cration. L'administrateur peut choisir un autre rpertoire lors de la cration du compte Unix. Exemple :
# ls ld /etc/skel drwxr-xr-x 2 root # ls la /etc/skel drwxr-xr-x 2 root drwxr-xr-x 64 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root sys sys sys other sys sys sys 512 512 4096 144 136 157 174 juil juil juil juil juil juil juil 6 6 30 6 6 6 6 22:51 22:51 21:57 22:51 22:51 22:51 22:51 /etc/skel . .. .profile local.cshrc local.login local.profile

Visualisons maintenant le contenu d'un rpertoire de connexion :


# ls la /export/home/user2 drwxr-xr-x 2 user2 other 512 drwxr-xr-x 18 root root 512 -rw-r--r-1 user2 other 144 -rw-r--r-1 user2 other 136 -rw-r--r-1 user2 other 157 -rw-r--r-1 user2 other 174 juil juil juil juil juil juil 30 30 30 30 30 30 21:31 21:46 21:31 21:31 21:31 21:31 . .. .profile local.cshrc local.login local.profile

2. Le fichier : /usr/include/limits.h Ce fichier contient toutes les limitations d'un compte Unix par dfaut, par exemple, la taille maximale d'un fichier, etc. Exemple :
# more /usr/include/limits.h /* * POSIX conformant definitions - An implementation may define * other symbols which reflect the actual implementation. Alternate * definitions may not be as restrictive as the POSIX definitions.

31

*/ #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define

_POSIX_AIO_LISTIO_MAX _POSIX_AIO_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CLOCKRES_MIN _POSIX_DELAYTIMER_MAX _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_MQ_OPEN_MAX _POSIX_MQ_PRIO_MAX _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_RTSIG_MAX _POSIX_SEM_NSEMS_MAX _POSIX_SEM_VALUE_MAX _POSIX_SIGQUEUE_MAX _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TIMER_MAX _POSIX_TZNAME_MAX

2 1 4096 6 20000000 32 8 255 255 8 32 14 0 16 255 512 8 256 32767 32 32767 8 32 3

3. Le fichier : /etc/user_attr Ce fichier contient pour chaque compte Unix des droits supplmentaires sous la forme de rle. Exemple :
# more /etc/user_attr # Copyright (c) 1999-2001 by Sun Microsystems, Inc. All rights reserved. # # /etc/user_attr # # user attributes. see user_attr(4) # #pragma ident "@(#)user_attr 1.5 01/12/11 SMI" # root::::auths=solaris.*,solaris.grant;profiles=All lp::::profiles=Printer Management adm::::profiles=Log Management

4. Le fichier : /etc/issue Ce fichier contient les informations qui seront affiches avant la connexion d'un Utilisateur. Par dfaut, ce fichier n'existe pas. Exemple :
# cat > /etc/issue Bonjour tout le monde

32

<CTRL-D>

Pour effectuer une validation, nous pouvons nous connecter via le rseau, nous obtenons ceci :
SunOS 5.9 Bonjour tout le monde login:

5. Le fichier : /etc/motd Ce fichier contient les informations qui seront affiches aprs la connexion d'un Utilisateur. Par dfaut, ce fichier contient dj des informations.
# more /etc/motd Sun Microsystems Inc. SunOS 5.9 Generic May 2002

Nous allons nous reconnectez pour en savoir plus :


SunOS 5.9 Bonjour tout le monde login: user1 Password: Last login: Sun Jul 23 12:18:54 from 192.168.1.2 Sun Microsystems Inc. SunOS 5.9 Generic $

May 2002

6. La commande news La commande : news permet de lire les informations situes dans le rpertoire : /var/news. L'administrateur cre des fichiers dont le nom servira de titre d'information et dont le contenu du fichier sera l'information elle-mme. Syntaxe : news [-a|n|s] titre_info
Options -a -n -s titre_info Description Affiche toutes les nouvelles, y compris celles dj consultes Affiche seulement les titres des nouvelles Affiche le nombre de nouvelles par encore consultes Titre de l'information

Remarque : La commande : news avec l'option : -s peut tre insre dans le fichier : /etc/profile afin d'avertir l'utilisateur du nombre de nouvelles non encore lues lors de sa connexion au Systme d'Exploitation. Exemple :
# cd /var/news cat > chaleur Il va faire encore chaud aujourd'hui < CTRL-D> # cat > temperature Il fait actuellement 34.4 C devant la station La station fonctionne encore Par contre, l'utilisateur... < CTRL-D>

L'utilisateur peut alors regarder les informations suivantes :

33

$ news s 2 news items $ news n news: temperature chaleur $ news -a temperature (root) dim juil 23 16:07:06 2006 Il fait actuellement 34.4 C devant la station La station fonctionne encore Par contre, l'utilisateur... chaleur (root) dim juil 23 12:32:17 2006 Il va encore faire chaud aujourd'hui

34

Chapitre 3 : Les Fichiers


Les fichiers du systme Unix sont organiss en arbre.

Le systme UNIX distingue plusieurs types de fichiers selon leur contenu, ou encore leur rle dans le Systme d'Exploitation. Les principaux types de fichiers sont : Les fichiers ordinaires (les fichiers courants des utilisateurs) Les rpertoires qui permettent de regrouper des fichiers. Les fichiers correspondant des priphriques. Les fichiers appels liens rfrenant un autre fichier.

Dautres types de fichiers existent qui ne seront pas abords dans ce support de cours. Le pipe ou le tube nomm. Le smaphore. Le segment de mmoire partag.

1. Les Fichiers Ordinaires


1. Les Types de Fichiers Ordinaires
On distingue principalement deux catgories de fichiers ordinaires, les fichiers ASCII et les fichiers binaires. Le fichier ASCII ne contient que des caractres affichables, c'est dire pour simplifier, des caractres que l'on trouve sur le clavier. Le fichier binaire, par contre, peut contenir des caractres non affichables. C'est le cas par exemple des fichiers de commandes excutables de type C. Il contient des caractres spcifiques analyss par certains programmes (par exemple : les fichiers d'impression). Le tableau suivant rsume les diffrents types de fichiers ordinaires :
Catgories de fichiers ordinaires Le fichier ASCII Sous-catgories Le fichier texte.

35

Le fichier BINAIRE

Le fichier de programme source. Le fichier de donnes ascii. Le fichier excutable. Le fichier de donnes non-ascii.

Nous rappelons que le nom dun fichier est une suite d'au plus 255 caractres alphanumriques. Les caractres alphanumriques, et les autres caractres simples sont autoriss, except (pour le moment) : / * $ - | ? [ ] ( ) ~ & { } @ # ; Espace

2. Les Caractristiques dun Fichier


Les caractristiques statiques d'un fichier (les donnes contenues dans un fichier) sont stockes dans un descripteur appel : inode. Une inode est un tableau qui contient les informations suivantes : Le type de fichier (ordinaire, rpertoire,...) Les droits d'accs au fichier Le nombre de liens rattachs au fichier Lidentification du propritaire du fichier Lidentification du groupe propritaire du fichier La liste des blocs physiques constituant le fichier La taille en octets La date de cration La date de dernire modification La date de dernire consultation

La correspondance entre le nom du fichier et linode est ralise par les rpertoires. Nous verrons ces notions plus tard dans le cours.

3. Les Fichiers cachs


Un fichier cach est un fichier que l'on ne voit pas lorsque l'on utilise certaines commandes. Par exemple la visualisation des fichiers d'un rpertoire ne tiendra pas compte de ces fichiers. Ils sont gnralement utiliss comme fichiers de configuration. Les fichiers cachs commencent par un point. Exemple :
$ cd $ ls a . .. .bash_history .profile local.cshrc local.login local.profile

36

2. Les Fichiers Rpertoires


UNIX propose une structure en arborescence de rpertoires. Le rpertoire principal est appel rpertoire racine (ou encore racine root). Un rpertoire est un fichier particulier. Nous pouvons le considrer comme un tableau deux colonnes, l'une contenant les noms des fichiers, l'autre leur numro d'inode. Chaque utilisateur d'un systme UNIX possde un rpertoire personnel, que l'on appelle un rpertoire d'accueil (ou de connexion), chaque connexion l'utilisateur se retrouve dans ce rpertoire. On appelle rpertoire courant (ou encore rpertoire de travail), le rpertoire dans lequel se trouve un utilisateur un instant donn.

1. Dplacement dans le Rpertoire


Il existe une commande (pour afficher le rpertoire courant) : pwd (print work directory). La commande : cd quant elle permet un dplacement entre rpertoires. Sans paramtre, la commande nous positionne au niveau du rpertoire de connexion de lutilisateur.

2. Chemin Absolu et Relatif


A cause de cette structure en rpertoires, il devient vident que pour atteindre un fichier, il faut citer tout le chemin des rpertoires "descendre" pour arriver jusqu' lui, depuis la racine, qui, elle, est unique. On appelle cette faon d'atteindre un fichier le chemin absolu. Exemple :
$ cd /export/home/user1

L'avantage de ce systme de notation est qu'il est unique et donc non ambigu, et qu'il ne dpend pas de l'endroit o l'on se trouve. L'inconvnient par contre, est que si le chemin est trs long dans larbre, le nom du fichier crire devient d'autant plus long. L'ide, c'est qu'au lieu de partir de la racine de l'arbre, on va partir de la "branche" sur laquelle on est accroch, c'est dire le rpertoire courant. Ce principe utilise le chemin relatif. Ce dplacement ncessite l'utilisation de pseudo rpertoires : Rpertoire courant : . Rpertoire parent : ..

3. Les Rpertoires usuels sous Unix


Bien que tout utilisateur puisse crer ses propres rpertoires, on retrouve un certain nombre de fichiers standard. Notons que la structure peut changer d'un systme UNIX l'autre.

37

Cette liste des rpertoires n'est pas exhaustive. Le tableau qui suit dcrit brivement le contenu de ces rpertoires.
Rpertoires / /bin /sbin /dev /etc /lib /usr/lib /export/home /mnt /usr /usr/bin Description Racine. Commandes systmes. Commandes damorage du Systme. Fichiers spciaux. Fichiers de configuration. Librairies standard. Autres librairies standard. Contient les Rpertoires de connexion des comptes Unix, donc toutes leurs donnes. Rpertoires de montage. Utilitaires. Commandes de base du Systme. Fichiers utiliss pour : - service messagerie - service dimpression - les pages web - service cron Destination pour installer les logiciels Contient toutes les donnes temporaires venant du Systme ou d'applications (messagerie, serveur web, etc)

/var

/opt /tmp

4. Les Droits dAccs un Fichier Unix


1. Gnralits
Tout fichier cr sous UNIX a un propritaire (qui est gnralement le crateur du fichier) et par consquent, un utilisateur connu du systme. De mme au moment de la cration du fichier, le groupe actif (du propritaire) devient le groupe associ au fichier. Les droits d'accs d'un fichier seront donc contrls en fonction de l'appartenance un des trois niveaux ci-dessous : Le propritaire du fichier.

38

Le groupe propritaire du fichier. Autres Utilisateurs.

2. Les Droits : r w x
Les droits d'accs initiaux se rsument en trois lettres r w x. La signification du privilge associ dpend du type de fichier considr (ordinaire ou rpertoire).
Type fichiers Ordinaire Droits r w x r w x Valeur octale 4 2 1 4 2 1 Signification Lire le contenu du fichier. Modifie le contenu du fichier. Excute les fichiers. Liste les fichiers du Rpertoire. Crer/Supprimer des fichiers. Accs au Rpertoire Commandes autorises more, vi, vi, ./, ls, .. mkdir, vi, rm, touch, cd ;

Rpertoire

Ce qu'il faut retenir d'important, c'est que le droit w sur un fichier permet de modifier son contenu, mais pas de le dtruire. Pour dtruire un fichier, il faut avoir le droit w sur le rpertoire qui le contient.

a. Les Attributs dun Fichier


Lorsque nous visualisons le contenu d'un rpertoire l'aide de la commande : ls -l, un grand nombre d'informations nous sont donnes. Le premier caractre de la premire colonne spcifie le type de fichier (ordinaire, rpertoire, spcial, ...). Les autres caractres de cette premire colonne spcifient les droits d'accs au fichier. Exemple :
$ ls l drwxr-xr-x -rw-r--r--rw-r--r--rw-r--r--rw-r--r-drwxr-xr-x 3 1 1 1 1 3 user1 user1 user1 user1 user1 user1 formation other other other formation formation 512 136 157 174 98 512 mai mai mai mai mai mai 22 19 19 19 22 19 12:59 20:48 20:48 20:48 12:56 23:40 Formation local.cshrc local.login local.profile prog Resultat

Les informations se dcoupent de la manire suivante :


Type d Droits
UID

Droits
GID

rwx rwx

r-r-x

Droits Liens autres r-1 r-x 3

Propritaire

user1 user1

Groupe propritaire formation formation

Taille 98 512

Date 12:56 23:40

Nom prog
Rsultat

Position

Intitul

Type

Droits Utilisateur

Description Type de fichier : ordinaire l lien symbolique d rpertoire b/c spcial bloc/caractre Droits du propritaire du fichier.

39

3 4 5

Droits Groupe Droits Autres Lien

6 7 8 9 10

Propritaire Groupe Propritaire Taille octets Date modification Nom

Droits du groupe propritaire du fichier. Droits des autres Utilisateurs. Pour un fichier ordinaire, cest le nombre de liens physiques. Pour un rpertoire, cest le nombre de sous rpertoire, y compris . et .. (notions que nous verrons plus tard dans le cours). Nom du propritaire du fichier. Nom du groupe propritaire du fichier. Taille en octets du fichier. Date de dernire modification du fichier. Nom du fichier.

b. Les Changements dattributs


Il est possible de changer les attributs d'un fichier. Les commandes sont chown, chrgrp et chmod. La commande : chown permet de changer le nom du propritaire d'un fichier, pour cela il faut tre le super utilisateur. On peut utiliser le nom du compte UNIX ou son UID associ. Syntaxe : Exemple :
# ls l prog -rw-r--r-1 user1 formation 98 mai 22 12:56 prog

chown Nouveau_propritaire fichier

# chown user2 prog # ls l prog -rw-r--r-1 user2 formation

98

mai 22 12:56

prog

Remarque :

Le crateur du fichier nest pas forcment le propritaire.

La commande : chgrp permet de changer le nom du groupe propritaire du fichier, pour cela il faut aussi tre le super utilisateur. On peut utiliser le nom du groupe UNIX ou son GID associ Syntaxe : Exemple :
# ls l prog -rw-r--r-1 user2 formation 98 mai 22 12:56 prog

chgrp Nouveau_groupe_propritaire fichier

# chgrp root prog # ls l prog -rw-r--r-1 user2 root

98

mai 22 12:56

prog

Remarque :

Nous venons ici de voir un principe important. Le propritaire du fichier ne fait pas forcment partie du groupe propritaire. Lutilisateur : user2 ne fait pas partie du groupe : root.

La commande : chmod permet de modifier les droits d'accs. Seul le propritaire du fichier ou le super utilisateur (root) peuvent changer les droits d'accs sur un fichier (ou un rpertoire).

40

3. La commande : umask
Les droits par dfaut lors de la cration sont normalement de 644 pour un fichier, cest--dire rw-r--r--, et de 755 pour un rpertoire, soit rwxr-xr-x. Ces droits par dfaut peuvent tre contrls en utilisant la commande : umask (user file creation mask). La valeur du masque initialis par cette commande peut tre connue en excutant celle-ci sans argument. Syntaxe : Exemple :
$ umask 0022

umask [valeur octal]

La commande : umask travaille par complmentation octale la valeur 777 pour un rpertoire, et la valeur 666 pour un fichier. Pour modifier la valeur de ce masque, on fournit un nombre octal en argument qui sera retranch de la valeur de base. La valeur par dfaut de umask est 022 (Nous verrons juste aprs la signification du premier 0). Ce qui a pour effet de modifier les droits par dfaut sur les fichiers par : Fichiers ordinaires : -666 -022 644 -777 -022 755

soit rw-rr

Fichiers Rpertoire :

soit rwxr-xr-x

4. Les Droits dendossement et le Sticky-bit


Certaines commandes posent des problmes. Pour s'excuter, elles doivent donner des permissions qu'un utilisateur ne devrait normalement pas avoir. Un exemple simple est celui de la commande : passwd qui permet de modifier le mot de passe dun compte UNIX. Cette commande modifie le fichier : /etc/shadow qui contient entre autre, les mots de passe crypts de tous les comptes UNIX, alors qu'un utilisateur normal n'a pas de permission d'criture sur ce fichier (il ne possde mme pas le droit de lecture). Pour raliser cette manipulation, le systme donne temporairement un utilisateur les droits ncessaires sur le fichier : passwd (ou shadow), et uniquement durant le temps d'excution de la commande. Pour cela on positionne ce que l'on appelle le set user id bit (suid) ou le set group id bit (sgid) qui donnent respectivement les droits du propritaire du fichier ou les droits du groupe propritaire pendant lexcution de cette commande. La commande utilise pour ces affectations est la commande : chmod

41

Exemple :
$ ls l prog1 -rwxr-xr-1 user1 formation 0 mai 22 15:34 prog1

$ chmod u+s prog1 $ ls l prog1 -rwsr-xr-1 user1 formation

mai 22 15:34

prog1

Le premier 0 (de la valeur 0022) dtermine en fait la position du droit dendossement : s ou du droit sticky-bit: t. Cest le mme principe que pour les autres droits. suid sgid sticky bit Exemple :
$ ls l prog1 -rwsr-xr-1 user1 formation 0 mai 22 15:34 prog1

4 2 1

$ chmod 3551 prog1 $ ls l prog1 -r-xr-s--t 1 user1 formation

mai 22 15:34

prog1

Remarque :

Seul le propritaire du fichier peut effectuer cette commande. Vous pouvez visualiser la commande : passwd afin de voir les droits daccs.

42

Chapitre 4: Les Systmes de Fichiers


Nous allons tudier un chapitre trs important dans l'administration Unix : les Systmes de Fichiers. Ils contiennent toutes les donnes ncessaires au bon fonctionnement du Systme d'Exploitation.

1. Description d'un Systme de Fichiers


Avant de commencer, nous allons considrer qu'un Systme de Fichiers est en fait une partition immuable sur le disque dur.

2. Structure d'un Systme de Fichiers


Le Systme de Fichiers est compos de quatre partitions, les voici :

1. Bloc de Boot
Pendant le formatage, le Systme d'Exploitation rserve une partition au dbut du Systme de Fichiers. Il existe une zone de 'Bloc de Boot' pour chaque Systme de Fichiers, mais une seule est active c'est cette zone qui sera lu lors du dmarrage du serveur pour rcuprer les informations ncessaires pour continuer les autres phases de dmarrages.

2. Super-Bloc
Le Super-Bloc est la deuxime zone du Systme de Fichiers, elle contient toutes les caractristiques du Systme de Fichiers, savoir : - Taille du Systme de Fichiers - Taille de la table des inodes (voir ci-dessous) - Nombre d'inodes disponibles - Nombre de blocs de donnes disponibles Ce Super-Bloc est charg en mmoire afin d'optimiser les performances du Systme d'Exploitation, c'est pour cette raison qu'il ne faut en aucun cas teindre lectriquement le serveur.

a. La table des inodes


Une inode est un pointeur qui relie le nom du fichier (ou du Rpertoire) vers les blocs de donnes constituant le contenu du fichier (ou du Rpertoire). La taille de la table des inodes dpend de la taille du Systme de Fichiers.

43

b. Les Blocs de Donnes


Les blocs de donnes contiennent les informations des fichiers, nous verrons par la suite qu'il y a plusieurs types de blocs.

3. Description d'une inode


1. Structure interne d'un fichier
Les caractristiques statiques d'un fichier (les donnes contenues dans un fichier) sont stockes dans un descripteur appel : inode. Une inode est un tableau qui contient les informations suivantes : Le type de fichier (ordinaire, rpertoire, ...) Les droits d'accs au fichier Le nombre de liens rattachs au fichier Lidentification du propritaire du fichier Lidentification du groupe propritaire du fichier La liste des blocs physiques constituant le fichier La taille en octets La date de cration La date de dernire modification La date de dernire consultation

La correspondance entre le nom du fichier et linode est ralise par les rpertoires. Nous verrons ces notions plus tard dans le cours. Lorsquun Utilisateur accde un fichier, il accde tout d'abord l'inode afin de valider l'accs ou non.

2. Structure interne d'un rpertoire


Un rpertoire possde uns structure simple par rapport un fichier. Nous pouvons le considrer comme un tableau deux colonnes, l'une contenant les noms des fichiers, l'autre leur numro d'inode. Comme nous l'avons vu plus haut, le nom du fichier ne se trouve pas dans l'inode mais l'intrieur du rpertoire. C'est lorsque l'Utilisateur accdera au fichier ( l'aide d'une commande), que le Systme effectuera la correspondance entre le nom et le numro d'inode. Le Systme interrogera ensuite l'inode.

44

3. L'arborescence Unix
Toutes les informations (Systme d'Exploitation, donnes Utilisateurs, Applications) sont stockes et hirarchises sous forme d'arbre invers. Unix regroupe un ensemble de fichiers dans des rpertoires, un ensemble de rpertoires l'intrieur d'un Systme de Fichiers. Un regroupement de Systmes de Fichiers sur l'arborescence Unix. Il n'y a qu'une seule arborescence, quel que soit le nombre de Systmes de Fichiers. Ceux-ci ne sont pas rpertoris par une lettre mais par un nom de rpertoire prsent directement sur l'arborescence

4. Description des principaux rpertoires


L'arborescence d'un serveur Unix n'est pas immuable, elle est diffrente de chaque serveur, mais certains rpertoire ne changeront pas car ils contiennent le Systme d'Exploitation lui-mme et toutes les commandes ncessaires son bon fonctionnement.
Rpertoires / /bin /sbin /dev /etc /lib /usr/lib /export/home /mnt /usr /usr/bin Description Racine. Commandes systmes. Commandes damorage du Systme. Fichiers spciaux. Fichiers de configuration. Librairies standard. Autres librairies standard. Contient les Rpertoires de connexion des comptes Unix, donc toutes leurs donnes. Rpertoires de montage. Utilitaires. Commandes de base du Systme. Fichiers utiliss pour : - service messagerie - service dimpression - les pages web - service cron Destination pour installer les logiciels Contient toutes les donnes temporaires venant du Systme ou d'applications (messagerie, serveur web, etc)

/var

/opt /tmp

45

5. Les Notions de Montage et de Dmontage


Nous allons maintenant tudier la notion de montage et de dmontage des Systmes de Fichiers. Ces notions sont trs importantes car elles dterminent l'accs et la scurit des donnes.

1. Notion de Montage
Le montage permet de connecter un Systme de Fichiers sur l'arborescence. En effet, si nous voulons accder aux informations d'un Systme de Fichiers, la seule faon est de "brancher" ce Systme de Fichiers un rpertoire.

a. La commande : mount
La commande : mount permet de monter un Systme de Fichiers sur l'arborescence du Systme d'Exploitation. Syntaxe :
Options -F Type -a -p -v -V -r

mount [-p|-v] mount -a [-F Type] [-V] [opts] [-o options] [-O] [mount_point]
Description Indique le type du Systme de Fichiers. Montage des Systmes de Fichiers indiqus. Par dfaut le systme montera seulement ceux se trouvant dans le fichier : /etc/vfstab et dont le champ : 6 (Montage automatique) est yes Description de tous les Systmes de Fichiers monts dans le mme format que le fichier : /etc/vfstab. Description de tous les Systmes de Fichiers monts Affiche la commande en vrifiant la syntaxe, mais ne l'excute pas Montage du Systme de Fichiers en lecture seule

Exemple :
# mount p /dev/dsk/c0t0d0s0 / ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid /dev/dsk/c0t0d0s3 /usr ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid /proc /proc proc mnttab - /etc/mnttab mntfs - no fd /dev/fd fd /dev/dsk/c0t0d0s4 /var ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid swap /var/run tmpfs /dev/dsk/c0t0d0s5 /opt ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid /dev/dsk/c0t0d0s6 /tmp ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid /dev/dsk/c0t3d0s0 /part1 ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid /dev/dsk/c0t3d0s1 /part2 ufs no no no no rw,suid no no xattr no no no no

46

rw,intr,largefiles,logging,xattr,onerror=panic,suid /dev/dsk/c0t0d0s7 /export/home ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid

no

Exemple :
# mount v /dev/dsk/c0t0d0s0 on / type ufs read/write/setuid/intr/largefiles/logging/xattr/onerror=panic/dev=2200000 on lun juil 31 10:07:39 2006 /dev/dsk/c0t0d0s3 on /usr type ufs read/write/setuid/intr/largefiles/logging/xattr/onerror=panic/dev=2200003 on lun juil 31 10:07:39 2006 /proc on /proc type proc read/write/setuid/dev=4c80000 on lun juil 31 10:07:37 2006 mnttab on /etc/mnttab type mntfs read/write/setuid/dev=4d40000 on lun juil 31 10:07:37 2006 fd on /dev/fd type fd read/write/setuid/dev=4d80000 on lun juil 31 10:07:39 2006 /dev/dsk/c0t0d0s4 on /var type ufs read/write/setuid/intr/largefiles/logging/xattr/onerror=panic/dev=2200004 on lun juil 31 10:07:40 2006 swap on /var/run type tmpfs read/write/setuid/xattr/dev=1 on lun juil 31 10:07:40 2006 /dev/dsk/c0t3d0s1 on /part2 type ufs read/write/setuid/intr/largefiles/logging/xattr/onerror=panic/dev=2200011 on lun juil 31 10:07:43 2006 /dev/dsk/c0t0d0s7 on /export/home type ufs read/write/setuid/intr/largefiles/logging/xattr/onerror=panic/dev=2200007 on lun juil 31 10:07:43 2006

Nous allons maintenant monter le lecteur de disquette :


# mount V F pcfs /dev/disquette /mnt/Disquette mount F pcfs /dev/disquette /mnt/Disquette # mount F pcfs r /dev/disquette /mnt/Disquette # df k
Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 /dev/diskette Ko 984861 8404388 0 0 0 2031101 3512656 4127390 2031101 984861 1423 utilis 96991 2225301 0 0 0 135973 40 53523 2397 1133 999 dispo 828779 6095044 0 0 0 1834195 3512616 4032594 1967771 924637 424 capacit 11% 27% 0% 0% 0% 7% 1% 2% 1% 1% 71% Mont sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp /export/home /mnt/Disquette

b. Le fichier : /etc/vfstab
Le fichier : /etc/vfstab contient tous les Systmes de Fichiers monts lors du dmarrage du systme d'exploitation. Chaque ligne correspond un Systme de

47

Fichiers (ou pseudo Systme de Fichiers) qui va tre monts lors de la lecture du fichier. Chacune de ces lignes est compose de 7 champs spars par des espaces ou des tabulations. Un champ non utilis doit contenir un tiret -. Structure du fichier : Priph Priphrique vrification Pt de Montage Type FS Type de vrif Montage automatique Options

Champs Priphrique Priphrique de vrification Pt de Montage Type FS Type de vrification Montage automatique Options

Description Dsigne le priphrique local en mode bloc. (serveur:Rpertoire pour les systmes de fichiers distants) Dsigne le priphrique en mode caractre pour la vrification (commande : fsck) Rpertoire de montage du Systme de Fichiers Type du Systmes de Fichiers : ufs proc fd tmpfs nfs swap Dtermine si la vrification s'effectue de faon squentiel (1) ou de faon parallle (2 9) Montage automatique (yes ou no) lors du dmarrage du Systme d'Exploitation via la commande : mountall. Options de Montage (spares par des virgules, voir tableau des options ci-contre)

Exemple :
# more /etc/vfstab
#device #to mount device to fsck mount point FS type fsck mount mount pass at boot options

# fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/dsk/c0t0d0s7 /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6

/dev/rdsk/c0t0d0s0 /dev/rdsk/c0t0d0s3 /dev/rdsk/c0t0d0s4 /dev/rdsk/c0t0d0s7 /dev/rdsk/c0t0d0s5 /dev/rdsk/c0t0d0s6

/dev/fd /proc / /usr /var /export/home /opt /tmp

fd proc swap ufs ufs ufs ufs ufs ufs

1 1 1 2 2 2

no no no no no no yes yes yes

c. Les options de montage


Voici les options de montage pour les Systmes de Fichiers.
Options ro rw hard soft intr Description Lecture seule Lecture-criture autoriss Le poste client tente le montage jusqu' russir (le cycle de dmarrage continue que si le montage russi) La tentative de montage n'a lieu qu'une seule fois (en cas d'chec le cycle de dmarrage se poursuit) Les tentatives de montage sont interruptibles en mode : hard avec <CTRL-C> (par dfaut qui est inactif au dmarrage du

48

bg

systme) Permet en mode : soft de renouveler rgulirement une tentative de montage en arrire-plan (toutes les 10 secondes)

Exemple :
# mount F pcfs o -ro /dev/disquette /mnt/Disquette # mount v |grep Disquette /dev/diskette on /mnt/Disquette type pcfs read-only/ setuid/nohidden/nofoldcase/dev=900002 on lun juil 31 10:07:43 2006

d. La commande : mountall
La commande : mountall permet de monter les Systmes de Fichiers se trouvant dans le fichier : /etc/vfstab (dont le 6me champs est yes). Cette commande est excute lors du dmarrage du Systme d'Exploitation. Syntaxe : Exemple :
# mountall /dev/rdsk/c0t0d0s7 already mounted /dev/rdsk/c0t0d0s5 already mounted /dev/rdsk/c0t0d0s6 already mounted /dev/rdsk/c0t3d0s0 already mounted /dev/rdsk/c0t3d0s1 already mounted mount : /dev/dsk/c0t0d0s6 est dj mont, /tmp est occup, ou le nombre autoris de points de montage a t dpass mount : /dev/dsk/c0t0d0s5 est dj mont, /opt est occup, ou le nombre autoris de points de montage a t dpass mount : /dev/dsk/c0t0d0s7 est dj mont, /export/home est occup, ou le nombre autoris de points de montage a t dpass

mountall

6. Notion de Dmontage
1. La commande : umount
Le dmontage dun Systme de Fichiers quivaut dsactiver laccs de ce Systme via le rpertoire de montage. Toutes les informations sous forme de fichiers ou de rpertoires ne seront plus accessibles, mais existent toujours, ce nest que laccs ces informations que nous allons dsactiver. Syntaxe : umount [-f] [-V] [-o options] special | mount_point umount -a [-f] [-V] [-o options] [mount_point]
Description Dmontage des Systmes de Fichers indiqus. Si aucun n'est indiqu, dmontage de tous les Systmes de Fichiers se

Options -a [mount_points]

49

-f -V -o options -m -O -r

trouvant dans le fichier : /etc/inittab (non-systme) Force le dmontage d'un Systme de Fichiers Permet de vrifier la syntaxe de la ligne de commande en affichant le rsultat mais n'excute pas la commande Description Montage du Systme de Fichier sans modifier le fichier : /etc/mnttab Montage d'un Systme de Fichiers sur un point de montage dj occups Montage du Systme de Fichiers en lecture seule

Nous allons dmonter le Systme de Fichiers : /export/home afin de vous dmontrer Exemple :
# df -k Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 Ko utilis 984861 8404388 0 0 0 2031101 903480 4127390 2031101 984861 dispo 96890 1712942 0 0 0 50932 40 53523 2397 1203 capacit 828880 6607403 0 0 0 1919236 903440 4032594 1967771 924567 Mont 11% 21% 0% 0% 0% 3% 1% 2% 1% 1% sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp /export/home

# umount /export/home # df -k Systme de fichiers Ko utilis /dev/dsk/c0t0d0s0 984861 /dev/dsk/c0t0d0s3 8404388 /proc 0 mnttab 0 fd 0 /dev/dsk/c0t0d0s4 2031101 swap 903480 /dev/dsk/c0t0d0s5 4127390 /dev/dsk/c0t0d0s6 2031101

dispo 96890 1712942 0 0 0 50932 40 53523 2397

capacit 828880 6607403 0 0 0 1919236 903440 4032594 1967771

Mont 11% 21% 0% 0% 0% 3% 1% 2% 1%

sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp

En dmontant le Systme de Fichiers : /dev/dsk/c0t0d0s7, nous n'avons fait que de dsactiver l'accs de celui-ci par le biais du rpertoire : /export/home

2. Le fichier : /etc/mntab
Vous avez votre disposition le fichier : /etc/mnttab qui permet de visualiser les Systmes de Fichiers qui sont monts actuellement. Si vous avez une diffrence entre ces deux fichiers : /etc/vfstab et /etc/inittab, c'est que vous n'aurez pas exactement les mmes montage lors du redmarrage de votre Systme d'Exploitation. Exemple :
# more /etc/mntab /dev/dsk/c0t0d0s0 / ufs

50

rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200000 1153392738 /dev/dsk/c0t0d0s3 /usr ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200003 1153392738 /proc /proc proc dev=4c80000 1153392736 mnttab /etc/mnttab mntfs dev=4d40000 1153392736 fd /dev/fd fd rw,suid,dev=4d80000 1153392738 /dev/dsk/c0t0d0s4 /var ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200004 1153392739 swap /var/run tmpfs xattr,dev=1 1153392740 /dev/dsk/c0t0d0s5 /opt ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200005 1153392743 /dev/dsk/c0t0d0s6 /tmp ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200006 1153392743 /dev/dsk/c0t0d0s7 /export/home ufs rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=2200007 1153392743 -hosts /net autofs indirect,nosuid,ignore,nobrowse,dev=4f00001 1153392749 auto_home /home autofs indirect,ignore,nobrowse,dev=4f00002 1153392749 -xfn /xfn autofs indirect,ignore,dev=4f00003 1153392749 solaris:vold(pid406) /vol nfs ignore,noquota,dev=4ec0001 1153392764

7. La cration des Systmes de Fichiers


Nous allons maintenant crer plusieurs Systmes de Fichiers que nous allons monter sur l'arborescence Unix.

1. La commande : format
La commande : format est un diteur permettant de partitionner les disques et un utilitaire de maintenance. Syntaxe :
Options -f fichier -l fichier -s -m -M -e -a

format [-f fichier] [-l log] [-s] [-m] [-M] [-e]


Description Utilisation d'un fichier contenant toutes les commandes 'manuelles' pour crer ainsi une partition. Cration semi-automatique. Cration d'un fichier log Seul les messages d'erreurs sont affichs Permet de fournir des informations plus dtailles en cas d'erreurs Permet de fournir des informations supplmentaires pour les diagnostics et lors du formatage pour les disques SCSI. Mode expert (pour les disques SCSI) Format x /etc/format.dat

Exemple :
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <ST320011A cyl 38790 alt 2 hd 16 sec 63> /pci@1f,0/pci@1,1/ide@3/dad@0,0

51

1. c0t1d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@1,0 2. c0t3d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@3,0 Specify disk (enter its number): < CTRL-D>

Remarque :

Au lancement de cette commande, celle-ci effectue une recherche sur les disque existant et les affiche.

2. Cration d'un Systme de Fichiers


Nous allons crer deux partitions sur le troisime disque du Systme d'Exploitation. Nous allons utiliser deux faon, une manuelle et l'autre semi-automatique.

a. Cration manuelle
Nous allons maintenant crer la premire partition en utilisant la commande : format. En lanant cette commande, nous allons devoir slectionner : - Le disque dur - L'action : partitionner ( slectionner dans le menu) - Le numro de la partition - Les caractristiques de la partition (type, taille, etc.) Exemple :
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <ST320011A cyl 38790 alt 2 hd 16 sec 63> /pci@1f,0/pci@1,1/ide@3/dad@0,0 1. c0t1d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@1,0 2. c0t3d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@3,0 Specify disk (enter its number): 2 selecting c0t3d0 [disk formatted, no defect list found] FORMAT MENU: disk type partition current format repair show label analyze defect backup verify save volname select a disk select (define) a disk type select (define) a partition table describe the current disk format and analyze the disk repair a defective sector translate a disk address write label to the disk surface analysis defect list management search for backup labels read and display labels save new disk/partition definitions set 8-character volume name

52

!<cmd> quit format> partition

- execute <cmd>, then return

PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> 0 Part Tag Flag Cylinders Size Blocks 0 unassigned wm 0 0 (0/0/0) Enter partition id tag[unassigned]: ? Expecting one of the following: (abbreviations ok): unassigned boot root swap usr backup stand var home alternates reserved Enter partition id tag[unassigned]: home Enter partition permission flags[wm]: Enter new starting cyl[0]: Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 10gb partition> label Ready to label disk, continue? y partition> print Current partition table (unnamed): Total disk cylinders available: 57459 + 2 (reserved cylinders) Part 0 1 2 3 4 5 6 7 Tag home unassigned backup unassigned unassigned unassigned unassigned home Flag wm wm wm wm wm wm wm wm Cylinders 0 - 5140 0 0 57458 0 0 0 0 0 57458 Size 10.00GB 0 111.79GB 0 0 0 0 111.79GB (5141/0/0) (0/0/0) (57459/0/0) (0/0/0) (0/0/0) (0/0/0) (0/0/0) (57459/0/0)

Blocks 20975280 0 234432720 0 0 0 0 234432720

partition> quit format> current Current Disk = c0t3d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@3,0 format> quit

53

b. Cration semi-automatique
Nous allons crer un fichier qui va tre lu par la commande : format. Ce fichier contient les caractristiques de la deuxime partition (taille diffrente mais commenant juste aprs la premire partition). Exemple :
# cat > format.txt partition 1 home wm 5142 12gb label quit quit < CTRL-D>

Ayant cre le fichier, nous pouvons passer la cration de la partition.


# format f format.txt c0t3d0 selecting c0t3d0 [disk formatted, no defect list found] FORMAT MENU: disk type partition current format repair show label analyze defect backup verify save volname !<cmd> quit format> partition select a disk select (define) a disk type select (define) a partition table describe the current disk format and analyze the disk repair a defective sector translate a disk address write label to the disk surface analysis defect list management search for backup labels read and display labels save new disk/partition definitions set 8-character volume name execute <cmd>, then return

PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table

54

print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> 1 Part Tag Flag Cylinders Size Blocks 1 home wm 5142 11310 12.00GB (6169/0/0) 25169520 Enter partition id tag[unassigned]: home Enter partition permission flags[wm]: wm Enter new starting cyl[0]: 5142 Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 12gb partition> label partition> quit FORMAT MENU: disk type partition current format repair show label analyze defect backup verify save volname !<cmd> quit format> quit # select a disk select (define) a disk type select (define) a partition table describe the current disk format and analyze the disk repair a defective sector translate a disk address write label to the disk surface analysis defect list management search for backup labels read and display labels save new disk/partition definitions set 8-character volume name execute <cmd>, then return

Nous allons maintenant vrifier que nous avons bien deux partitions sur le troisime disque. La premire ayant une taille de 10 Go et la deuxime de 12 Go.
# format c0t3d0 selecting c0t3d0 [disk formatted, no defect list found] FORMAT MENU: disk type partition current format repair show label analyze defect backup verify save volname !<cmd> quit select a disk select (define) a disk type select (define) a partition table describe the current disk format and analyze the disk repair a defective sector translate a disk address write label to the disk surface analysis defect list management search for backup labels read and display labels save new disk/partition definitions set 8-character volume name execute <cmd>, then return

55

format> partition PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> print Current partition table (unnamed): Total disk cylinders available: 57459 + 2 (reserved cylinders) Part 0 1 2 3 4 5 6 7 Tag home home backup unassigned unassigned unassigned unassigned home Flag wm wm wm wm wm wm wm wm Cylinders 0 - 5140 5141 11310 0 57458 0 0 0 0 0 57458 Size 10.00GB 12.00GB 111.79GB 0 0 0 0 111.79GB Blocks (5141/0/0) 20975280 (6169/0/0) 25169520 (57459/0/0) 234432720 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (57459/0/0) 234432720

partition> quit format> current Current Disk = c0t3d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@3,0 format> quit

3. Formatage des partitions


Nous allons maintenant formater les deux partitions nouvellement cres.

a. La commande : newfs
La commande : newfs permet de construire un Systme de Fichiers depuis une partition cre prcdemment. Syntaxe :
Options -T -v options

newfs [-Tv] [options] raw-device


Description Doit tre utiliser pour les Systmes de Fichiers dont la taille atteint le To Affiche les dtails de la commande. Voir tableau ci-dessous pour les autres options.

56

raw-devices

Nom du fichier spcial correspondant la partition

options -a apc -b bsize -i nbpi -m free -r rpm -s size -t ntrack

Description Nombre de secteurs rservs pour le remplacement de mauvais blocs (SCSI seulement). La valeur par dfaut : 0. Taille du bloc, par dfaut : 8192 Indique le nombre de bloc par inode tablissant ainsi la taille de la table d'inode. Pourcentage rserv pour les Utilisateurs. Ds ce seuil dpass, seul l'administrateur pourra utiliser le Systme de Fichiers Vitesse de rotation des disques (en tour par minutes) Taille du Systme de Fichiers. Par dfaut toute la partition est utilise Nombre de piste par cylindre

Exemple :
# newfs v /dev/rdsk/c0t3d0s1 newfs: construction d'un nouveau systme de fichiers /dev/rdsk/c0t3d0s0 : (y/n)? y mkfs -F ufs /dev/rdsk/c0t3d0s0 20975280 255 16 8192 1024 229 1 90 8192 t 0 0 8 16 n /dev/rdsk/c0t3d0s0: 20975280 secteurs dans 5141 cylindres de 16 pistes, 255 secteurs 10241,8 Mo dans 198 groupes de cylindres (26 c/g, 51,80 Mo/g, 6400 i/g) sauvegardes de super-blocs (pour fsck -F ufs -o b=#) at: 32, 106368, 212704, 319040, 425376, 531712, 638048, 744384, 850720, 957056, 19946144, 20052480, 20158816, 20265152, 20367392, 20473728, 20580064, 20686400, 20792736, 20899072,

b. Recopie du Super-Bloc par fsck


Le Super-Bloc, comme nous l'avons vu prcdemment est recopi plusieurs fois sur le Systme de Fichiers. Dans le cas ou le premier Super-Bloc est corrompu, nous pouvons recopier une copie sur l'emplacement originel. Le plus important pour effectuer cette dmarche est de noter les numros des blocs o le Super-Blocs sera recopi, ils s'affichent lors du formatage de la partition, devenant ainsi le Systme de Fichiers (voir commande : newfs). Exemple :
# fsck o b=20792736 /dev/rdsk/c0t3d0s0 Alternate super block location: 20792736. ** /dev/rdsk/c0t3d0s0 ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 9 used, 10326043 free (11 frags, 1290754 blocks, 0.0% fragmentation)

57

***** FILE SYSTEM WAS MODIFIED *****

4. Montage des Systmes de Fichiers


Pour terminer, nous allons modifier le fichier : /etc/vfstab pour que les deux Systmes de Fichiers soient monts lors du dmarrage du Systme d'Exploitation.

a. Montage manuel
Nous avons la possibilit de tester les deux Systmes de Fichiers crs en montant ceux-ci directement sur l'arborescence de notre systme.

Exemple :
# # # # mkdir /part1 /part2 mount /dev/dsk/c0t3d0s0 /part1 mount /dev/dsk/c0t3d0s1 /part2 df k
Ko 984861 8404388 0 0 0 2031101 3512656 4127390 2031101 984861 10326052 12390532 utilis 96991 2225301 0 0 0 135973 40 53523 2397 1133 10265 12313 dispo 828779 6095044 0 0 0 1834195 3512616 4032594 1967771 924637 10212527 12254314 capacit Mont sur 11% / 27% /usr 0% /proc 0% /etc/mnttab 0% /dev/fd 7% /var 1% /var/run 2% /opt 1% /tmp 1% /export/home 1% /part1 1% /part2

Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 /dev/dsk/c0t3d0s0 /dev/dsk/c0t3d0s1

Avec ce rsultat, nous pouvons certifier que les deux Systmes de Fichiers sont valides car ils ont t monts sur l'arborescence Unix (les deux dernires lignes).

b. Montage automatique
Afin d'effectuer le montage automatique des deux Systmes de Fichiers lors du dmarrage du Systme d'exploitation, nous devons modifier le contenu du fichier : /etc/vfstab. Nous allons d'abord visualiser le contenu de ce fichier.
# more /etc/vfstab #device device #to mount to fsck # fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 mount point /dev/fd /proc / /usr /var FS type fsck pass fd proc swap ufs 1 ufs 1 ufs 1 mount mount at boot options no no no no no no -

58

/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /opt /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /tmp

ufs ufs ufs

2 2 2

yes yes yes

Pour que les deux Systmes de Fichiers soient monts lors du dmarrage du systme, nous devons modifier le fichier : /etc/vfstab avec les lignes suivants :
/dev/dsk/c0t3d0s0 /dev/dsk/c0t3d0s1 /dev/r dsk/c0t3d0s0 /part1 /dev/r dsk/c0t3d0s1 /part2 ufs ufs 2 2 yes yes -

Voici le nouveaux fichier : /etc/vfstab


# more /etc/vfstab #device device #to mount to fsck # fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /dev/dsk/c0t3d0s0 /dev/r dsk/c0t3d0s0 /dev/dsk/c0t3d0s1 /dev/r dsk/c0t3d0s1 mount point FS type fsck pass fd proc swap ufs 1 ufs 1 ufs 1 ufs 2 ufs 2 ufs 2 ufs 2 ufs 2 mount mount at boot options no no no no no no yes yes yes yes yes -

/dev/fd /proc / /usr /var /export/home /opt /tmp /part1 /part2

Nous pouvons maintenant vrifier, aprs un redmarrage l'arborescence du Systme de Fichiers.


# df -k
Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 /dev/dsk/c0t3d0s0 /dev/dsk/c0t3d0s Ko 984861 8404388 0 0 0 2031101 3512656 4127390 2031101 984861 10326052 112390532 utilis 96991 2225301 0 0 0 135973 40 53523 2397 1133 10265 12313 dispo 828779 6095044 0 0 0 1834195 3512616 4032594 1967771 924637 10212527 12254314 capacit 11% 27% 0% 0% 0% 7% 1% 2% 1% 1% 1% 1% Mont sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp /export/home /part1 /part2

8. La gestion de la mmoire virtuelle


La gestion de la mmoire virtuelle est un mcanisme (gr par le scheduler) qui permet de rajouter de la mmoire virtuelle la mmoire physique, permettant ainsi daugmenter la mmoire totale. Il y a donc change de pages entre la mmoire physique (RAM) et la mmoire virtuelle (pseudo Systmes de Fichiers ou swap) se trouvant sur lun des disques du Systme dexploitation.

59

Vous pouvez avoir plusieurs zones de swap rparties sur plusieurs disques, amliorant ainsi les performances. Les besoins en zones dchange dpendent du type de processeur, de la taille des excutables et du nombre de tches (processus) lancs en simultanes. Par exemple, larchitecture SPARC permet dobtenir jusqu 4 Go de swap par processus (processeur de 64 bits fonctionnant en mode 64 bits).

a. La commande : swap
La commande : swap permet de grer la mmoire virtuelle. Syntaxe : swap [-a|d] [nom_swap] [l|s]
Description Cration d'une zone de swap Supprime une zone de swap Liste les zones de swap Affiche des informations supplmentaires Options -a nom_swap -d nom_swap -l -s

Exemple :
# swap l swapfile /dev/dsk/c0t0d0s1 dev 136,1 swaplo 16 blocs 1049312 libres 1049312 ->

# ls l /dev/dsk/c0t0d0s1 lrwxrwxrwx 1 root root 46 juil 6 23:20 /dev/dsk/c0t0d0s1 ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:b # cd /devices/pci\@1f,0/pci\@1,1/ide\@3 # cd dad\@0,0\:b brw-r----- 1 root sys 136,1 juil 19 23:20 dad@0,0:b # swap s total : 24240k octets allous + 5816k rservs = 30056k utiliss, 905144k disponibles

Champs swapfile dev blocs libres Champs allocated reserved used available

Description Nom de la zone dchange (swap) Numro Majeur et mineur du fichier spcial correspondant la zone dchange Taille de la zone dchange en nombre de blocs Nombre de blocs libre pour le swap Description Taille du swap actuellement assigns pour la mmoire auxiliaire Taille non actuellement assigns, mais rservs pour un usage futur Taille totale assign ou rserv Taille totale du swap actuellement disponible pour la futures rservation et attribution.

Exemple :
# swap l swapfile /dev/dsk/c0t0d0s1 dev 136,1 swaplo 16 blocs 1049312 libres 1049312

# swap d /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s1 tait un priphrique de vidage --

60

appel de dumpadm(1M) -d swap pour slectionner le nouveau priphrique de vidage dumpadm : no swap devices are available

Dans notre cas, le Systme d'Exploitation l'aide du dmon : dumpadm essaye de trouver une autre zone de swap pour transfrer les donnes, malheureusement pour lui, aucune zone de swap n'est disponible, d'o la perte de toutes les informations. Remarque : Heureusement, en tudiant le rsultat de la commande : swap l, que la zone de swap ne contenait aucune information. Il ne nous reste plus qu' ractiver cette zone de swap.

Exemple :
# swap a /dev/dsk/c0t0d0s1 le vidage sur blocage du systme d'exploitation avait t dsactiv -utilisation de dumpadm(1M) de swap pour slectionner un nouveau priphrique de vidage # swap l swapfile dev swaplo blocs libres /dev/dsk/c0t0d0s1 136,1 16 1049312 1049312

b. Cration d'une zone de swap


Nous allons crer deux zones de swap : - Une zone de swap (fichier) - Une zone de swap (partition)

a. Cration d'une zone de swap fichier


Cette zone de swap ncessite la cration dun fichier pour raliser cette zone dchange. Cette zone dchange sera dun accs moins rapide que celle cre par le biais dune partition. Exemple :
# cd /usr # touch swapfile # swap a swapfile "/usr/swapfile" ne peut pas tre utilis pour le swapping. Il doit s'agir d'un priphrique en mode bloc ou d'un "fichier standard avec un bit "sauvegarde du texte utilisateur l'excution" 1.

Il faut d'abord utiliser la commande : mkfile, qui permet de crer un fichier correspondant aux attentes d'un fichier swap.

b. La commande : mkfile
La commande : mkfile permet de crer un fichier ne contenant lorigine que des caractres 0. Nous pourrons ensuite utiliser ce fichier comme zone dchange. Syntaxe :
Options

mkfile [-nv] taille [g|k|b|m] nom_fichier


Description

61

-n

-v

Cration d'un fichier. La taille du fichier tant dfinie par : g giga m mega k kilo b blocs (512 octets) Affiche les dtails de la cration du fichier

Exemple :
# mkfile 500m /usr/swapfile # ls l /usr/swapfile -rw------T 1 root other 524288000 juil 20 00:25 /usr/swapfile # ls l /usr/swapfile -rw------T 1 root other 524288000 juil 20 00:25 /usr/swapfile

Remarque :

La cration du fichier prends quelques secondes. Bien que le fichier soit cr, la zone de swap n'est pas encore active.
swaplo 16 blocs 1049312 libres 1049312

# swap l swapfile dev /dev/dsk/c0t0d0s1 136,1

# swap a /usr/swapfile # swap l swapfile dev swaplo /dev/dsk/c0t0d0s1 136,1 16 /usr/swapfile 16

blocs 1049312 1023984

libres 1049312 1023984

Remarque :

La zone d'change a bien t cre, passons la seconde.

c. Cration d'une zone de swap partition


Cette zone de swap ncessite la cration dun pseudo Systme de Fichiers pour raliser cette zone dchange. Celle-ci sera dun accs plus rapide que celle cre par le biais du fichier. Exemple :
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <ST320011A cyl 38790 alt 2 hd 16 sec 63> /pci@1f,0/pci@1,1/ide@3/dad@0,0 1. c0t1d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@1,0 2. c0t3d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@3,0 Specify disk (enter its number): 1 selecting c0t1d0 [disk formatted, no defect list found] FORMAT MENU: disk - select a disk

62

type partition current format repair show label analyze defect backup verify save volname !<cmd> quit format> partition

select (define) a disk type select (define) a partition table describe the current disk format and analyze the disk repair a defective sector translate a disk address write label to the disk surface analysis defect list management search for backup labels read and display labels save new disk/partition definitions set 8-character volume name execute <cmd>, then return

PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table labe - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> 0 Part Tag Flag Cylinders Size Blocks 0 unassigned wm 0 0 (0/0/0) Enter partition id tag[unassigned]: swap Enter partition permission flags[wm]: Enter new starting cyl[0]: Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 2gb partition> label Ready to label disk, continue? y partition> print Current partition table (unnamed): Total disk cylinders available: 57459 + 2 (reserved cylinders) Part 0 1 2 3 4 5 6 7 Tag swap unassigned backup unassigned unassigned unassigned unassigned home Flag wm wm wm wm wm wm wm wm Cylinders 0 - 1028 0 0 57458 0 0 0 0 0 57458 Size 2.00GB 0 111.79GB 0 0 0 0 111.79GB

Blocks (1029/0/0) (0/0/0) (57459/0/0) (0/0/0) (0/0/0) (0/0/0) (0/0/0) (57459/0/0)

4198320 0 234432720 0 0 0 0 234432720

63

partition> quit format> current Current Disk = c0t1d0 <ST3120022A cyl 57459 alt 2 hd 16 sec 255> /pci@1f,0/pci@1,1/ide@3/dad@1,0 format> quit

Maintenant que notre partition t cre, nous allons utiliser la commande : swap pour activer ce pseudo Systmes de Fichiers. Exemple :
# swap l swapfile /dev/dsk/c0t0d0s1 /usr/swapfile dev 136,1 swaplo 16 16 blocs 1049312 1023984 libres 1049312 1023984

# swap a /dev/dsk/c0t0d0s0 # swap l swapfile dev swaplo /dev/dsk/c0t0d0s1 136,1 16 /usr/swapfile 16 /dev/dsk/c0t1d0s0 136,8 16

blocs 1049312 1023984 4198304

libres 1049312 1023984 4198304

d. Activation des zones dchange lors du dmarrage


Si nous redmarrons le Systme dexploitation, lactivation de cette zone dchange ne sera pas effective, nous allons donc modifier le fichier : /etc/vfstab
# more /etc/vfstab #device device #to mount to fsck # fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /dev/dsk/c0t3d0s0 /dev/r dsk/c0t3d0s0 /dev/dsk/c0t3d0s1 /dev/r dsk/c0t3d0s1 mount point FS type fsck pass fd proc swap ufs 1 ufs 1 ufs 1 ufs 2 ufs 2 ufs 2 ufs 2 ufs 2 mount mount at boot options no no no no no no yes yes yes yes yes -

/dev/fd /proc / /usr /var /export/home /opt /tmp /part1 /part2

Nous allons rajouter dans ce fichier les lignes suivantes afin que les deux zones de swap soit actives lors du dmarrage du Systme d'Exploitation.
/dev/dsk/c0t1d0s0 /usr/swapfile swap swap no no -

Voici le nouveau fichier : /etc/vfstab

64

# more /etc/vfstab #device device #to mount to fsck # fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /dev/dsk/c0t3d0s0 /dev/r dsk/c0t3d0s0 /dev/dsk/c0t3d0s1 /dev/r dsk/c0t3d0s1 /dev/dsk/c0t1d0s0 /usr/swapfile -

mount point

FS type

fsck pass

mount mount at boot options no no no no no no yes yes yes yes yes no no -

/dev/fd fd /proc proc swap / ufs 1 /usr ufs 1 /var ufs 1 /export/home ufs 2 /opt ufs 2 /tmp ufs 2 /part1 ufs 2 /part2 ufs 2 swap swap -

Au dmarrage du Systme d'Exploitation, nous avons ceci :


# swap l swapfile /dev/dsk/c0t0d0s1 /dev/dsk/c0t1d0s0 /usr/swapfile dev 136,1 136,8 swaplo 16 16 16 blocs 1049312 4198304 1023984 libres 1049312 4198304 1023984

9. Gestion des Systmes de Fichiers


Il existe plusieurs commandes permettant de vrifier l'tat des Systmes de Fichiers.

1. La commande : df
La commande : df permet de connatre pour chaque Systme de fichiers le nombre de blocs de 1 Ko utiliss, ou le pourcentage d'espace libre. Syntaxe :
Options -v -i

df [options] [systme de fichier]


Description Mode Verbeux. Affiche le nombre de blocs et dinodes utiliss. Valeur par dfaut, donne la taille des donnes et des inodes.

Exemple :
$ df k
Systme de fichiers /dev/dsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/dsk/c0t0d0s0 /proc mnttab fd /dev/dsk/c0t0d0s6 swap swap /dev/dsk/c0t0d0s5 Ko 720726 5037950 239895 0 0 0 1983726 901128 901088 2505398 utilis 95568 1662763 1041 0 0 0 49770 40 0 51931 dispo 567500 3324808 214865 0 0 0 1874445 901088 901088 2403360 capacit Mont sur 15% / 34% /usr 1% /boot 0% /proc 0% /etc/mnttab 0% /dev/fd 3% /var 1% /var/run 0% /tmp 3% /opt

65

/dev/dsk/c0t0d0s7

8142501

52335

8008741

1%

/export/home

2. La commande : fsck
La commande : fsck permet la rparation automatique d'un Systme de Fichiers. Elle comporte plusieurs phases d'analyses et de traitement. Il est conseill de dmonter le Systme de Fichiers traiter pour ne pas corrompre les fichiers ouverts. En ce qui concerne les Systmes de Fichiers (du Systme lui-mme), ils seront analys lors du dmarrage de celui-ci. Syntaxe :
Options -F FSType -m -n | -N -V -y | -Y -o options -o options b=n f

fsck [-F Type FS] [-m] [-V] [nom du FS] fsck [-F Type FS] [-nNyY] [-V] [-o Type FS -options] [nom du FS]
Description Indique le type du Systme de Fichiers. Vrifie mais ne rpare pas Rpondre : non toutes les questions de la commande : fsck Faire cho la ligne de commande augmente mais ne pas excuter la commande. Cette option peut tre employe pour vrifier et valider la ligne de commande. Rpondre : oui toutes les questions de la commande : fsck Ces spcifique-options peuvent tre n'importe quelle combinaison du suivant spar par des virgules (sans les espaces intervenants). Description Employer le bloc n comme bloc superbe pour le systme de fichiers. Le bloc 32 est toujours l'un des blocs superbes alternatifs. Les numros des blocs utiliser sont dtermins lors du formatage du Systme de Fichiers (commande newfs) Force la vrification des Systmes de Fichiers

Remarque :

Si votre Systme de fichiers est suprieur 2 Go, utilisez directement le fichier spcial raw Par exemple : fsck /dev/rdsk/c?t?d?s? au lieu de fsck /dev/rdsk/c?t?d?s?

Exemple :
# df -k Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 Ko utilis 984861 8404388 0 0 0 2031101 903480 4127390 2031101 984861 dispo 96890 1712942 0 0 0 50932 40 53523 2397 1203 capacit 828880 6607403 0 0 0 1919236 903440 4032594 1967771 924567 Mont 11% 21% 0% 0% 0% 3% 1% 2% 1% 1% sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp /export/home

# fsck -V /dev/dsk/c0t0d0s7 fsck F ufs /dev/dsk/c0t0d0s7 # umount /dev/dsk/c0t0d0s7 # fsck /dev/dsk/c0t0d0s7 ** /dev/dsk/c0t0d0s7 ** Last Mounted on /export/home

66

** ** ** ** ** 85

Phase 1 - Check Blocks and Sizes Phase 2 - Check Pathnames Phase 3 - Check Connectivity Phase 4 - Check Reference Counts Phase 5 - Check Cyl groups files, 101 used, 983728 free (24 frags, 122963 blocks, 0.0% fragmentation)

# mount /dev/dsk/c0t0d0s7 /export/home # fsck /dev/dsk/c0t0d0s7 /dev/dsk/c0t0d0s7 is a mounted file system, ignored

Les phases de vrifications :


Phases 1 Vrification Blocks and sizes Description Vrification des inodes. Le type doit-tre valide. Le nombre de liens doit-tre diffrent de 0. Les adresses de blocs et la taille valides. Les entres de rpertoires sont scrutes partir de la racine. Chacune doit rfrencer une des inodes valides dtermines par la phase 1. Si la phase 2 dtermine qu'une inode n'a pas de nom dans un rpertoire, celle-ci est cre dans le rpertoire : lost+found. Le nombre d'entres de rpertoires dtermin pendant la phase 2 doit tre en accord avec le nombre de liens de chaque inode. le nombre total d'inodes doit tre en accord avec le nombre stock dans le super bloc. Test les groupes de cylindres. La liste des blocs libres est compare avec tous les blocs occups, aucun ne peut tre les deux la fois.

Pathnames

Connectivity

Reference counts

Cyl groups

3. La commande : ncheck
La commande : ncheck permet d'effectuer des recherches sur un Systme de fichier. Syntaxe : ncheck [-i valeur|-s] Systme_Fichiers
Description Recherche par rapport au numro d'inode Recherche tous les fichiers possdants le droits suid ou sgid

Options -i valeur -s

Exemple :
# df -k Systme de fichiers /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /proc mnttab fd /dev/dsk/c0t0d0s4 swap /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s7 Ko utilis 984861 8404388 0 0 0 2031101 903480 4127390 2031101 984861 dispo 96890 1712942 0 0 0 50932 40 53523 2397 1203 capacit 828880 6607403 0 0 0 1919236 903440 4032594 1967771 924567 Mont 11% 21% 0% 0% 0% 3% 1% 2% 1% 1% sur / /usr /proc /etc/mnttab /dev/fd /var /var/run /opt /tmp /export/home

# ncheck i 2225 /dev/dsk/c0t0d0s3

67

/dev/dsk/c0t0d0s3: 2225 /sfw/. # ncheck s /dev/dsk/c0t0d0s3 /dev/dsk/c0t0d0s3: 3637 /openwin/bin/Xprt 3638 /openwin/bin/Xsun 3648 /openwin/bin/lbxproxy 3672 /openwin/bin/xlock 4068 /openwin/bin/sys-suspend 10658 /openwin/bin/kcms_configure 10673 /openwin/bin/xscreensaver 10843 /openwin/bin/kcms_calibrate 198 /bin/at 199 /bin/atq 200 /bin/atrm 227 /bin/crontab 245 /bin/eject 250 /bin/fdformat 290 /bin/login 294 /bin/mail 295 /bin/mailx 303 /bin/netstat 304 /bin/newgrp 308 /bin/passwd 312 /bin/pfexec 353 /bin/su 359 /bin/tip

Remarques : La commande : find permet d'effectuer la mme dmarche avec l'option : -inum, et n'est pas limit par rapport un Systme de fichiers.

4. La commande : fuser
La commande : fuser fournit des informations sur les processus en cours sur l'arborescence. Chaque processus prsent sur le Systme de fichiers spcifi Syntaxe :
Options -c -k -s signal -u

fuser [-c] [-u] [-k|-s sig] files [[-] [-c|-f] [-nu] [-k|-s sig] files] ...
Description Rapports sur les rpertoires dossiers qui sont des points de bti pour des systmes de fichiers, et tous dossiers dans ce systme de fichiers mont. Envoie le signal : SIGKILL chaque processus. Les messages rsultant de cette option peuvent ne pas apparatre immdiatement. Envoie un signal tous les processes. L'option : -k est quivalent l'option : -s 9 Montre le nom d'ouverture d'utilisateur entre parenthses suivant l'identification de processus.

Exemple :
# fuser /dev/dsk/c0d0t0s3 /dev/dsk/c0t0d0s3:506tm 477tm 461m 457tm 455tm 450tm

68

449tm 424tom 391tm 301tm 197tm

448tm 415tm 389tm 282tm 162tm

446tm 413tm 349tm 270tm 154tm

445tm 412tm 347tm 260tm 68tm

442tm 406tm 327tm 249tm 56tm

430tm 401tm 325tm 233tm

429tm 400tm 323tm 231tm

425tm 393tm 312tm 220tm

# fuser c /export/home /export/home: 316c 246c # fuser u /dev/dsk/c0d0t0s3 /dev/dsk/c0t0d0s3: 507tm(root) 457tm(user1) 455tm(root) 450tm(root) 446tm(root) 445tm(root) 442tm(root) 425tm(root) 424tom(root) 415tm(root) 406tm(root) 401tm(root) 400tm(root) 389tm(root) 349tm(root) 347tm(root) 323tm(root) 312tm(root) 301tm(root) 260tm(root) 249tm(root) 233tm(root) 197tm(root) 162tm(root) 154tm(root) 477tm(root) 449tm(smmsp) 430tm(root) 413tm(root) 393tm(root) 327tm(root) 282tm(root) 231tm(daemon) 68tm(root) 461m(root) 448tm(root) 429tm(root) 412tm(root) 391tm(root) 325tm(root) 270tm(root) 220tm(root) 56tm(root)

Options c m r t y

Description Le processus emploie le rpertoire comme son rpertoire courant Indique que le processus emploie un rpertoire trac avec la commande : mmap Le processus emploie le rpertoire comme son rpertoire racine Le processus emploie le rpertoire comme son rpertoire texte Le processus emploie le rpertoire comme son terminal

Remarques : Cette commande est utile lorsque nous avons besoin de dmonter un Systme de Fichiers alors qu'il y a encore des processus qui tourne (avec l'option k)

10.

La gestion des quotas

La mise en uvre des quotas va permettre l'administrateur de limiter le nombre de fichiers et/ou de Rpertoires d'un compte Unix sur une arborescence du Systme de Fichiers.

1. Description d'un quota Utilisateur


Un quota Utilisateur est dpendant d'un Systme de Fichiers, si nous voulons raliser un quota Utilisateur sur deux Systmes de Fichiers, nous devrons effectuer deux dmarches, un quota pour chaque Systme de Fichiers concerns. La limitation peut s'effectuer de deux faons diffrentes, nous pouvons utiliser l'une des deux ou les deux en mme temps : - Limitation par rapport aux nombres de fichiers (et/ou Rpertoires) - Limitation par rapport aux nombres de blocs Bien sr, si nous voulons que le quota soit effectif au dmarrage du Systme d'Exploitation, nous devrons modifier un fichier systme : /etc/vfstab.

69

Limitations Nombre de fichier, Rpertoire ou blocs de donnes a. La limitation : soft La limitation 'soft' peut-tre franchie pendant un certain nombre de jours (7 par dfaut). Si au terme de ce laps de temps, l'Utilisateur n'est pas redescendu en dessous de cette limite, il ne pourra plus crer de fichiers ou de Rpertoire. Il ne pourra pas dpasser cette limite. b. La limitation : hard La limite 'hard' est infranchissable, un Utilisateur qui atteint cette limite ne pourra plus crer de fichiers ou de Rpertoires. soft hard

a. Procdure d'installation d'un quota Utilisateur


L'installation d'un quota Utilisateurs est assez simple, mais il faut passer par plusieurs tapes : Cration d'un fichier : quotas (vide) la racine du Systme de Fichiers concerns. Modification du fichier : /etc/vfstab (attribut de montage du Systme de Fichiers, remplacez l'option : ro par l'option : rq si elle existe) Edition du quota Utilisateur. Activation du quota.

Nous allons passer par toutes ces tapes, mais avant nous allons tudier toutes les commandes concernant les quotas Utilisateurs.

b. La commande : edquota
La commande : edquota permet de fixer les quotas Utilisateurs par Systmes de Fichiers. Il faut que la variable d'environnement : EDITOR soit gal vi afin que la commande puisse utiliser l'diteur de commande lors de son excution. Syntaxe :
Options -p -t

edquota[-p proto_user] compte edquota -t


Description Utilisation d'un compte Unix (ayant dj un quota) comme modle pour crer un nouveau quota. Affichage du dlai de grce (voir fichier : / usr/include/sys/fs/ufs_quota.h)

70

c. La commande : quotaon
La commande : quotaon permet de dmarrer les quotas. Syntaxe :
Options -a -v

quotaon [-v] Systme_Fichiers quotaon a [-v]


Description Active les quotas de tous les Systmes de Fichiers possdant l'option de montage : rq (lecture du fichier : /etc/vfstab) Affiche un message pour chaque Systme de Fichiers dont le quota t activ.

d. La commande : quotaoff
La commande : quotaoff permet d'arrter les quotas. Syntaxe :
Options -a -v

quotaoff [-v] Systme_Fichiers quotaoff a [-v]


Description Force la dsactivation des quotas pour tous les Systmes de Fichiers se trouvant dans le fichier : /etc/vfstab. Affiche un message pour chaque Systme de Fichiers dont le quota t dsactiv.

e. La commande : quota
La commande : quota permet d'afficher les quotas d'un Utilisateur Syntaxe :
Options -v

quota [-v] compte


Description Affiche les dtails pour tous les Systmes de Fichiers dont le quota est activ.

f. La commande : repquota
La commande : repquota permet d'afficher les quotas d'un Systme de Fichiers. Syntaxe :
Options -a -v

repquota [-v] compte repquopa a [-v]


Description Rendre compte de tous les systmes de fichiers monts d'ufs qui ont le rq dans le domaine de mntopts du dossier/etc/vfstab. Rapporter les quotes-parts pour tous les utilisateurs, mme ceux qui ne consomment pas des ressources.

71

g. La commande : quotacheck
La commande : quotacheck permet de vrifier si les quotas sont respects. Syntaxe :
Options -f -p -v -a

quotacheck [-fp] [-v] Systme_Fichiers quotacheck -a [-fpv]


Description Force le contrle des Systmes de Fichiers (avec l'option : -p) Vrification des quotas en parallle (avec l'option : -f) Affiche le quota de chaque compte pour le Systme de Fichiers. Vrification des Systmes de Fichiers situs dans le fichier : /etc/mntab.

2. Cration dun quota utilisateur


Nous allons maintenant crer un quota Utilisateur en passant par les tapes que nous avons vu prcdemment. Nous allons crer le fichier : quotas sur le Systme de fichiers : /part1.
# cd /part1 # touch quotas # ls l quotas -rw-r--r-1

root

other 0

aot

11:08 quotas

Ensuite nous modifions le fichier : /etc/vfstab afin de rajouter l'option de montage sur le Systme de Fichiers concerns. Remplacez l'option : ro par l'option : rq si elle existe.
# more /etc/vfstab #device device #to mount to fsck # fd /proc /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /dev/dsk/c0t3d0s0 /dev/r dsk/c0t3d0s0 /dev/dsk/c0t3d0s1 /dev/r dsk/c0t3d0s1 /dev/dsk/c0t1d0s0 /usr/swapfile mount point FS type fsck pass mount mount at boot options no no no no no no yes yes yes yes yes no no rq -

/dev/fd fd /proc proc swap / ufs 1 /usr ufs 1 /var ufs 1 /export/home ufs 2 /opt ufs 2 /tmp ufs 2 /part1 ufs 2 /part2 ufs 2 swap swap -

Nous allons maintenant configurer le quota pour un Utilisateur :


# export EDITOR=vi # edquota theoden fs /part1 blocks (soft = 0, hard = 0) inodes (soft = 10, hard = 17) # ls l quotas -rw-r--r-1 root other 22784 aot 1 11:11 quotas

Maintenant passons aux tests :

72

# su theoden $ /usr/sbin/quota v theoden Disk quotas for theoden (uid 711): Filesystem usage quota limit timeleft files quota limit /part1 0 0 0 0 10 17 $ > fichier1 $ > fichier2 $ > fichier3 $ /usr/sbin/quota v theoden Disk quotas for theoden (uid 711): Filesystem usage quota limit timeleft files quota limit /part1 0 0 0 3 10 17

timeleft

timeleft

$ > fichier4 $ > fichier5 $ > fichier6 $ > fichier7 $ > fichier8 $ > fichier9 $ > fichier10 quota_ufs: Warning: too many files (pid 700, uid 711, fs /part1) $ /usr/sbin/quota v theoden Disk quotas for theoden (uid 711): Filesystem usage quota limit timeleft files quota limit /part1 0 0 0 10 10 17 $ > fichier11 $ > fichier12 $ > fichier13 $ > fichier14 $ > fichier15 $ > fichier16 $ > fichier17 quota_ufs: over file hard limit (pid 700, uid 711, fs /part1) bash: fichier17: Quota disque dpass $ /usr/sbin/quota v theoden Disk quotas for theoden (uid 711): Filesystem usage quota limit timeleft files quota limit /part1 0 0 0 16 10 17 $ exit # quotacheck v /part1 *** Checking quotas for /dev/rdsk/c0t3d0s0 (/part1) theoden fixed: files 16 -> 21 blocks 0 -> 10repquo # repquota v /part1 /dev/dsk/c0t3d0s0 (/part1): Block limits User used soft hard theoden -+ 5 0 0

timeleft

timeleft

timeleft

used 21

File limits soft hard 3 10

timeleft 7.0 days

Quant cet exemple, un Utilisateur se connecte alors qu'il a dj dpass sa limite 'soft'. Il va atteindre sa limite 'hard' et ensuite dtruire autant de fichiers qu'il lui faut pour se placer avant sa limitation 'soft'.
# su user3 Sun Microsystems Inc. SunOs 5.9 Generic May 2002 Over file quota on /export/home, remove 1 file within 7.0 days $ > fichier1

73

$ > fichier2 $ > fichier3 $ > /usr/sbin/quota v user3 Disk quotas for user3 (uid 103): Filesystem usage quota limit /export/home 5 0 0

timeleft files quota limit 8 5 9

timeleft 7.0 days

$ > fichier 4 quota_ufs: over file hard limit (pid 664, uid 103, fs /export/home) fichier4: cration impossible $ rm fichier* $ > /usr/sbin/quota v user3 Disk quotas for user3 (uid 103): Filesystem usage quota limit timeleft files quota limit timeleft /export/home 5 0 0 5 5 9 7.0 days $ rm local* $ > /usr/sbin/quota v user3 Disk quotas for user3 (uid 103): Filesystem usage quota limit timeleft files quota limit timeleft /export/home 5 0 0 2 5 9 7.0 days $ cp /etc/skel/local.login . $ cp /etc/skel/local.profile . $ cp /etc/skel/local.cshrs . quota_ufs: Warning: too many files (pid 710, uid 103, fs /export/home) Disk quotas for user3 (uid 103): Filesystem usage quota limit timeleft files quota limit timeleft /export/home 5 0 0 5 5 9 7.0 days $ ls la total 12 drwxr-xr-x 2 user3 other 512 aot 1 03:11 . drwxr-xr-x 18 root root 512 aot 1 02:56 .. -rw-r--r-- 1 user3 other 144 juil 30 21:32 .profile -rw-r--r-- 1 user3 other 136 aot 1 03:11 local.cshrc -rw-r--r-- 1 user3 other 157 aot 1 03:10 local.login -rw-r--r-- 1 user3 other 174 aot 1 03:11 local.profile

11. Sauvegarde & Restauration des Systmes de Fichiers


Une des fonctions essentielles de ladministrateur est de sauvegarder les donnes contenues dans les systmes de fichiers. Les sauvegardes permettent de se prmunir contre les pertes de donnes ou de la corruption de fichiers. Les bandes utilises pour les sauvegardes sont souvent appeles les dump . Pour sauvegarder un systme de fichier, vous copiez les donnes sur un support amovible ou distant comme par exemple une bande de sauvegarde. Vous devez effectuez des sauvegardes rgulires pour viter les pertes de donnes dues principalement : - la suppression accidentelle de fichiers - des pannes matrielles - des craches systmes

74

lintrusion par des utilisateurs non-autoriss conduisant une perte dintgrit des donnes

on sintresse dans cette partie du cours, la sauvegarde totale dun systme de fichier dmont. Le principe des sauvegardes incrmentales, ainsi que la sauvegarde de systme de fichiers mont seront traits dans les cours suivants.

1. Nommage des lecteurs de bandes


Tous les lecteurs de bandes sont associs un nom logique de priphrique permettant dutiliser le lecteur en mode commande. Le format gnrique est /dev/rmt/x (x=0, 1, 2)

2. La commande ufsdump
On utilise la commande ufsdump, sous Solaris, pour sauvegarder des systmes de fichiers entiers. Le niveau de sauvegarde(0-9) utilis avec la commande ufsdump dtermine quels sont les fichiers sauvegarder. Syntaxe : ufsdump option(s) argument(s) Systme_Fichiers
Options -S Description Estimation de la taille du FS (en octets). Cette option vous permet destimer la place ncessaire et donc le nombre de bandes quil faut prvoir pour effectuer votre sauvegarde. Les sauvegardes de niveau 0 sont des sauvegardes entires(full backup). Les sauvegardes entre 1-9 sont des incrmentales permettant de ne sauvegarder que ce qui a changer depuis la prcdente sauvegarde de niveau strictement infrieur. Lorsquon ne prcise aucun argument, le niveau par dfaut utilis est le 9. Updates.Le systme ajoute une ligne dans le fichier /etc/dumpdates une fois la sauvegarde est termin. Cette ligne mentionne le nom du FS sauvegard, le niveau de sauvegarde et la date de sauvegarde. Si une ligne existe avec le mme nom de FS et le mme niveau de sauvegarde, la nouvelle ligne remplace lancienne. Spcification du priphrique utilis. On prcise de cette manire le priphrique ou le fichier utilis pour faire la sauvegarde. Lorsque vous utiliser le lecteur de bandes par dfaut /dev/rmt/0, vous navez pas besoin de spcifier loption f. le systme utilise alors la valeur par dfaut.

0-9

-u

-f priphrique

Exemple :
# # # # umount /export/home fsck /export/home ufsdump 0uf /dev/rmt/0 /export/home more /etc/dumpdates

75

3. La commande ufsrestore
Pour restaurer, on utilise la commande ufsrestore. Cette commande restaure les donnes depuis une bande cre par ufsdump dans le rpertoire courant. Syntaxe : ufsrestore option(s) argument(s) Systme_Fichiers
Options t r x fichier1 fichier2 v f priphrique Description Visualise le contenu (table des matires) de la bande.. Restaure tout le systme de fichiers. Ne restaure que les fichiers et rpertoires passs en argument sur la ligne de commande. Mode verbose. Il permet dafficher le noms des fichiers et rpertoires restaurs a lcran. Spcification du nom du priphrique. Lorsque loption f nest pas spcifie, le systme utilise par dfaut /dev/rmt/0.

Lorsque vous restaurez un FS entier depuis une bande, le systme cr un fichier appel restoresymtable. Ce fichier est utilis par la commande ufsrestore pour contrler la restauration ou passer des informations aux restaurations incrmentales. une fois la restauration termin, vous pouvez le supprimer. Exemple :
# # # # # # # # # # newfs /dev/rdsk/c0d0s5 mount /dev/rdsk/c0d0s5 /part3 cd /part3 ufsrestore rf /dev/rmt/0 rm restoresymtable cd / umount /part3 fsck /dev/rdsk/c0d0s5 ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0d0s5 init 6

76

4. Chapitre 5: Dmarrage et arrt du Systme


Ce chapitre a pour objectif de dcrypter les diffrentes phases du dmarrage du systme. Il sera ainsi possible l'administrateur d'identifier un problme, mais aussi de modifier la squence par dfaut en ajoutant d'autres tches raliser au dmarrage et l'arrt du systme.

1. Dmarrage du Systme
Nous allons d'abord apercevoir la squence de dmarrage succinct, pour mieux visualiser l'ensemble du dmarrage, ensuite nous passerons la partie dtaille.

1. Squence de Dmarrage
Ds la mise sous tension du serveur, la PROM du serveur entre en actions et entame les premires phases de dmarrage, ce stade l'administrateur ne peut intervenir - Affichage de l'identification du Systme d'Exploitation. - Test du Matriel - Test de la mmoire - Chargement du Systme automatique indiqu dans la mmoire non volatile Sans intervention de l'administrateur, le dmarrage continue, sinon, il peut demander au Serveur de dmarrer sur un autre priphrique que celui dfinie par dfaut, par exemple le lecteur cd-rom (pour une installation par exemple). - Chargement et excution du Boot primaire Premier cas (par le disque) : Le Boot primaire se nomme : bootblk (bootblock) et rside dans les 15 premiers secteurs du disque partir duquel le serveur dmarre. A ce stade le Systme de Fichiers principal est prsent sur l'arborescence (Le Systme de Fichiers : /) Deuxime cas (par le rseau, non tudi): - Ce programme excute le Boot secondaire Le programme : bootblk excute le Boot secondaire, il charge un fichier : ufsboot. Ce fichier se trouve dans le rpertoire : /platform/'architecture' (d'o la ncessit d'avoir la prsence de l'arborescence). Dans notre cas : /platform/sparc - Chargement du Noyau Solaris Le Boot secondaire (fichier : ufsboot) charge le Noyau Solaris en mmoire (sous forme de fichiers). Celui-ci est compos de plusieurs fichiers :

77

- Architecture : /platform/Sparc - Classe : /platform/SUNW,Ultra-5_10 - Partie indpendante : /kernel/genunix Le Noyau tant charg, le fichier : ufsboot charge les modules (lecture du fichier : /etc/system). Aprs ce chargement, le Noyau rcupre la mmoire occup par ce fichier. - Le Noyau Solaris lance le processus : init Le Noyau lance le premier processus, parent de tous les autres, le processus : init (initialisation), il se trouve /sbin/init. - Le processus : init lance les services du Systme d'Exploitation Le processus : init va lire le fichier : /etc/inittab (tudi par la suite), le Noyau va alors effectuer les tches suivantes : - Vrification de l'intgrit des Systmes de Fichiers - Montage des Systmes de Fichiers - Activation des zonez d'changes (swap) - Lancement des services : - Rseau - D'impression - Comptabilit - Lancement des scripts de dmarrage (lancement des services)

2. Le fichier : /etc/inittab
Le fichier : /etc/inittab spcifie les processus lancer lors du dmarrage du Systme d'Exploitation suivant le mode de dmarrage. Le Systme d'exploitation va lire ce fichier et dmarrer les processus conformment au niveau de fonctionnement slectionn.
$ more /etc/inittab ap::sysinit:/sbin/autopush -f /etc/iu.ap ap::sysinit:/sbin/soconfig -f /etc/sock2path fs::sysinit:/sbin/rcS sysinit >/dev/msglog 2<>/dev/msglog </dev/console is:3:initdefault: # jusqu' la version solaris 9 p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog sS:s:wait:/sbin/rcS >/dev/msglog 2<>/dev/msglog </dev/console s0:0:wait:/sbin/rc0 >/dev/msglog 2<>/dev/msglog </dev/console s1:1:respawn:/sbin/rc1 >/dev/msglog 2<>/dev/msglog </dev/console s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog </dev/console s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog </dev/console s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog </dev/console s6:6:wait:/sbin/rc6 >/dev/msglog 2<>/dev/msglog </dev/console fw:0:wait:/sbin/uadmin 2 0 >/dev/msglog 2<>/dev/msglog </dev/console of:5:wait:/sbin/uadmin 2 6 >/dev/msglog 2<>/dev/msglog </dev/console rb:6:wait:/sbin/uadmin 2 1 >/dev/msglog 2<>/dev/msglog </dev/console sc:234:respawn:/usr/lib/saf/sac -t 300 co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T sun -d /dev/console -l console -m ldterm,ttcompat

78

Remarque: Le niveau de dmarrage par dfaut, sur la version Solaris 10, est gr par un gestionnaire de services appel SMF ( Voir man init). Structure du fichier : Identification Niveaux de fonctionnement
Champs Identification Niveaux de fonctionnement Action Commande

Action

Commandes

Description Nom de l'entre (ligne) Mode de dmarrage du systme d'exploitation Spcifie le comportement de la commande (voir cidessous). Comportement allant du mode de lancement, de son droulement et de son arrt. Commande excute si la ligne est valide (excution l'aide de l'interprteur : sh)
Define the r un level i n which thi s entr y is to be pr oc ess ed. R un-levels effecti vel y c orres pond to a configur ati on of pr oc ess es i n the s ystem. That is, eac h proc ess s pawned by init is assigned a run l evel(s) i n which it is allowed to exist. T he run levels ar e r epr es ented by a number ranging from 0 through 6. For example, if the s ystem is i n run l evel 1, onl y thos e entries having a 1 i n the rstate fi eld ar e proc ess ed.

a. Le champ : Identification Ce champ spcifie un nom la ligne comportant la commande permettant ainsi d'identifier correctement le rle de celle-ci. La longueur de ce nom peut varier de 1 4 caractres (bien que les noms d'un seul caractre sont dconseill). b. Le champ : Niveaux de fonctionnement Les niveaux de fonctionnement dterminent le mode de dmarrage du Systme d'Exploitation. Ceux-ci sont trs importants car en sachant le mode de dmarrage de celui-ci, nous pouvons dterminer et rsoudre les problmes ventuels. Il existe plusieurs niveaux qui peuvent tre excut de faon manuelle ou automatique.
Niveaux 0 1 2 3 4 5 6 a, b ou c Q ou q S ou s Description Arrt du Systme d'Exploitation Mode Maintenance Mode conventionnel (mode Multi-Utilisateurs) Mode conventionnel (+ Session graphique) Mode Personnalis Mode d'Arrt lectrique Mode Redmarrage Modes supplmentaires Relecture du fichier : /etc/inittab Mode Maintenance d'urgence

Mode 0 : Arrt du Systme d'Exploitation Ce niveau de fonctionnement correspond l'arrt du Systme d'Exploitation. Mode 1 : Mode Maintenance Seuls les services ncessaires au fonctionnement du systme sont lancs (pas de services rseau, d'impression, etc.). L'administrateur est le seul pouvoir se connecter (car pas de services rseau). Il peut, d'o le nom du mode, effectuer la

79

maintenance du systme, changement d'un disque, sauvegarde des donnes, installation de nouveaux logiciels, etc.

Mode 2 : Mode conventionnel (mode Multi-Utilisateurs) C'est le mode o tous les services ncessaires la connexion des utilisateurs via le rseau sont lancs. Les Utilisateurs peuvent se connecter, mais l'administrateur n'a pas de session graphique. Mode 3 : Mode conventionnel (+ Session graphique) Ce mode est identique au mode 2 mais le systme dmarre aussi le service qui va permettre de lancer la session graphique pour l'administrateur. Mode 4 : Mode Personnalis Ce mode peut tre configur par l'administrateur pour dmarrer le systme avec certains services en plus. L'administrateur peut crer un mode 4 correspondant au niveau 3 avec d'autres services supplmentaires. Mode 5 : Mode d'Arrt lectrique Permet d'arrter le systme et donne le contrle un moniteur Mode 6 : Mode Redmarrage Redmarre le systme d'exploitation (voir la commande : reboot) Mode a, b ou c : Mode pseudo-Maintenance Ils permettent d'excuter des commandes (processus) en supplment de celles dj excutes par le niveau de fonctionnement actuel. Il n'y a pas de changement de niveau de fonctionnement. L'administrateur peut rassembler toutes les commandes qu'il souhaite lancer en utilisant le fichier : /etc/inittab plutt que de les lancer manuellement. Remarque : Les processus lancs par l'un des pseudo-niveaux de fonctionnement ne sont pas arrts lors d'un changement de niveau de fonctionnement

Mode Q et q : Relecture du fichier : /etc/inittab


Si le fichier : /etc/inittab est modifi, les modifications seront prises en compte sans redmarrer le systme.

Mode S ou s : Mode Maintenance d'urgence Identique au mode 1, mais n'effectue pas la lecture du fichier : /etc/inittab (idal, si le fichier t corrompu ou que nous ne voulons pas que les modifications soient prises en comptes).

80

La commande qui permet de connatre le niveau de fonctionnement dans lequel nous nous trouvons est la commande : who, en utilisant l'option : -r.

Exemple :
# who -r . run-level 3 juil 18 10:07 3 0 S

Niveau de fonctionnement actuel : 3

Niveau prcdent : s

Avec cette commande, nous savons quel est notre niveau de fonctionnement actuel, nous sommes au niveau : 3 (voir tableau ci-dessus). Par contre, nous pouvons aussi savoir le niveau de fonctionnement prcdent (avant d'tre au niveau : 3). Avec le rsultat ci-dessus, nous savons que le niveau prcdent est : s. En effet, nous avons la possibilit de changer de niveaux de fonctionnement sans avoir redmarrer le Systme. Celui-ci va effectuer de faon automatique toutes les procdures afin de se retrouver dans le niveau de fonctionnement demand. Nous verrons plus loin dans ce support comment procder ce changement et comment le Systme ralise ce changement : - Commande : init - Les scripts de dmarrage Lors de la lecture du fichier : /etc/inittab, le Systme activera seulement les lignes qui correspondent au niveau de fonctionnement dtermin lors du dmarrage du Systme. Ce champ peut contenir plusieurs niveaux de fonctionnement, les uns la suite des autres. Si nous reprenons le contenu du fichier : /etc/inittab, nous pouvons avoir ceci :
Niveaux :1: :12: :2345: :25: :: Ligne active pour les niveaux 1 1 et 2 2, 3, 4 et 5 2 et 5 Tous les niveaux

Remarque :

Pour le dernier cas, quel que soit le niveau de fonctionnement au dmarrage du Systme, la ligne sera active, ce qui veut dire que la commande associe la ligne sera lance.

Exemple :
# head -3l /etc/inittab ap::sysinit:/sbin/autopush -f /etc/iu.ap ap::sysinit:/sbin/soconfig -f /etc/sock2path fs::sysinit:/sbin/rcS sysinit >/dev/msglog 2<>/dev/msglog </dev/console

Lors de la lecture de ce fichier par le Systme, celui-ci va excuter les commandes des trois premires lignes quel que soit le niveau de fonctionnement. Aprs la prsentation des deux derniers champs : Action et Commandes, nous tudierons quelques lignes de ce fichier. 81

c. Le champs : Action Ce troisime champs permet de spcifier comment va se comporter la commande se trouvant dans le quatrime champs. Il existe plusieurs types d'actions qui sont les suivantes :
Champs once wait respawn ondemand boot bootwait powerfail Description La commande est active chaque fois que le processus init execute inittab et que la ligne est concerne par le niveau demand. once est la forme sans attente. Le comportement est identique celui de dune ligne once , mais avec attente. Le processus est relanc chaque fois quil se termine (ex : console). Identique respawn mais est rserv pour les niveaux : a, b et c Le processus est lanc au dmarrage du Systme. Le Champ 2 est ignor. Identique boot mais le Processus init attend la fin de ce processus. Processus lanc lorsque le Processus init reoit le signal SIGPWR, Un onduleur peut tre lorigine de ce signal, ladministrateur peut ainsi par exemple dclencher automatiquement un arrt propre du systme en cas de coupure de courant. Le principe est le mme que prcdemment, mais les commandes suivantes attendent la fin de la commande.La ligne est ignore. En cas de changement de niveau, si le processus est actif, il est tu. La ligne est ignore. En cas de changement de niveau, si le processus est actif, il est tu. Excut lors du dmarrage du Systme avant boot et bootwait. Champ 2 ignor. Les commandes en sysinit sont fondamentales et ncessaires au bon fonctionnement du systme.

powerwait off sysinit

d. Le champs : Commande Ce champ permet de lancer la commande (en chemin absolu) de la ligne active, donc de lancer le service. La commande est gnralement un script, c'est pour cette raison que nous voyons la syntaxe suivante la suite de la commande :
>/dev/msglog 2<>/dev/msglog </dev/console

Remarque :

Cette syntaxe permet aux scritpts de dialoguer avec l'oprateur de la console systme.

3. Les scripts de dmarrage


Les scripts de dmarrage permettent de lancer des services Unix. Plusieurs scripts peuvent tre lancs pour un mme niveau de fonctionnement. Ces scripts sont placs dans un rpertoire et il y a autant de rpertoire que de niveaux de fonctionnement. Nous allons partir du principe que le systme dmarre au niveau de fonctionnement 2. Le systme va lire chaque ligne du fichier : /etc/inittab et valider toutes celles qui correspondent au niveau de fonctionnement, il va alors traiter la ligne suivante :
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog </dev/console

Le Systme va alors lancer le fichier : /sbin/rc2

82

$ more /sbin/rc2 #!/sbin/sh # # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T. # All rights reserved. # # THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T # The copyright notice above does not evidence any # actual or intended publication of such source code. # # Copyright (c) 1997-1999,2001 by Sun Microsystems, Inc. # All rights reserved. # #ident "@(#)rc2.sh 1.17 01/09/26 SMI" # Run Commands executed when the system is changing to init state 2, # traditionally called "multi-user". Pick up start-up packages for mounts, # daemons, services, etc. PATH=/usr/sbin:/usr/bin # Export boot parameters to rc scripts set -- `/usr/bin/who -r` _INIT_RUN_LEVEL="$7" _INIT_RUN_NPREV="$8" _INIT_PREV_LEVEL="$9" set -- `/usr/bin/uname -a` _INIT_UTS_SYSNAME="$1" _INIT_UTS_NODENAME="$2" _INIT_UTS_RELEASE="$3" _INIT_UTS_VERSION="$4" _INIT_UTS_MACHINE="$5" _INIT_UTS_ISA="$6" _INIT_UTS_PLATFORM="$7" # # # # # # # Operating system name (uname -s) Node name (uname -n) Operating system release (uname -r) Operating system version (uname -v) Machine class (uname -m) Instruction set architecture (uname -p) Platform string (uname -i) # Current run-level # Number of times previously at current run-level # Previous run-level

export _INIT_RUN_LEVEL _INIT_RUN_NPREV _INIT_PREV_LEVEL \ _INIT_UTS_SYSNAME _INIT_UTS_NODENAME _INIT_UTS_RELEASE \ _INIT_UTS_VERSION INIT_UTS_MACHINE _INIT_UTS_ISA \ _INIT_UTS_PLATFORM # Export net boot configuration strategy. _INIT_NET_IF is set to the # interface name of the netbooted interface if this is a net boot. # _INIT_NET_STRATEGY is set to the network configuration strategy. set -- `/sbin/netstrategy` if [ $? -eq 0 ]; then if [ "$1" = "nfs" -o "$1" = "cachefs" ]; then _INIT_NET_IF="$2" fi _INIT_NET_STRATEGY="$3" export _INIT_NET_IF _INIT_NET_STRATEGY fi if [ $_INIT_PREV_LEVEL = S -o $_INIT_PREV_LEVEL = 1 ]; then echo 'The system is coming up. Please wait.' elif [ $_INIT_RUN_LEVEL = 2 ]; then echo 'Changing to state 2.' if [ -d /etc/rc2.d ]; then for f in /etc/rc2.d/K*; do if [ -s $f ]; then

83

case $f in *.sh) . $f ;; *) /sbin/sh $f stop ;; esac fi done fi fi if [ $_INIT_PREV_LEVEL != 2 -a $_INIT_PREV_LEVEL != 3 \ -a $_INIT_PREV_LEVEL != 4 -a -d /etc/rc2.d ]; then for f in /etc/rc2.d/S*; do if [ -s $f ]; then case $f in *.sh) . $f ;; *) /sbin/sh $f start ;; esac fi done fi #if [ ! -s /etc/rc2.d/.ports.sem ]; then # /sbin/ports # echo "ports completed" > /etc/rc2.d/.ports.sem #fi # Start historical section if [ \( $_INIT_PREV_LEVEL = S -o $_INIT_PREV_LEVEL = 1 \) \ -a -d /etc/rc.d ]; then for f in `/usr/bin/ls /etc/rc.d`; do [ ! -s /etc/init.d/$f ] && /sbin/sh /etc/rc.d/$f done fi # End historical section if [ $_INIT_RUN_LEVEL = 2 ]; then if [ $_INIT_PREV_LEVEL = S -o $_INIT_PREV_LEVEL = 1 ]; then echo 'The system is ready.' else echo 'Change to state 2 has been completed.' fi fi

Description du fichier systme Nous n'allons pas expliciter compltement le fichier, mais seulement tudier celui-ci dans deux cas concrets, lorsque le systme : - Accde au niveau de fonctionnement - Quitte ce niveau de fonctionnement Ce fichier prcise une information importante, l'emplacement o se trouve le rpertoire systme correspondant au niveau de fonctionnement, dans notre cas, le rpertoire est : /etc/rc2.d. Pour les autres niveaux de fonctionnement, nous avons :
Niveaux Nom du rpertoire

84

0 1 2 3 4 5 6

/etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d

a. Contenu du rpertoire Nous allons maintenant tudier le contenu du rpertoire.


# cd /etc/rc2.d # ls l -rwxr--r-- 6 root -rwxr--r-- 6 root -rwxr--r-- 6 root -rwxr--r-- 9 root -rwxr--r-- 6 root -rwxr--r-- 6 root -rwxr--r-- 6 root ......... -rwxr--r-- 4 root -rwxr--r-- 2 root -rwxr--r-- 2 root -rwxr-xr-x 2 root -rwxr--r-- 5 root -rwxr--r-- 2 root -rwxr--r-- 5 root .........

sys sys sys sys sys sys sys sys sys sys other sys sys sys

324 1508 322 391 344 1056 616 1151 1781 989 2012 359 2304 1718

dc avr mai juil avr avr avr mai avr avr avr avr avr avr

6 7 7 5 7 7 7 11 7 7 15 7 7 7

2004 2002 2003 2005 2002 2002 2002 2004 2002 2002 2002 2002 2002 2002

K03samba K03sshd K05appserv K05volmgt K06mipagent K07dmi K07snmpdx S10lu S20sysetup S21perf S30sysid.net S40llc2 S42ncakmod S47pppd

Nous avons deux catgories de fichiers (les deux cas concrets que nous allons tudier). Ces deux catgories se distinguent par la premire lettre de chaque fichier. La premire catgorie, les fichiers commenant par la lettre : S et seulement ceux-ci, vont tre activs lorsque le systme va passer ce mode de fonctionnement. Par contre quand le systme va quitter ce niveau de fonctionnement (pour s'arrter par exemple), il activera les fichiers commenant par la lettre : K. b. Syntaxe des fichiers Quelle que soit la catgorie active, les scripts ne sont pas lancs alatoirement, mais dans un ordre prcis qui est dtermin par le nom des fichiers. Le nom des fichiers est normalis et se compose de trois parties distinctes, chacune va agir l'une aprs l'autre pour dterminer chronologiquement le lancement des scripts. - Catgorie du fichier : Prfixe (que nous avons explicit plus haut) - Slection par ordre numrique : Nombre - Slection par ordre alphabtique : Nom Prfixe S K Nombre Nom

Activation si le systme passe ce niveau Activation si le systme quitte ce niveau 00

85

99

Lancement par ordre numrique aa zz

Lancement par ordre alphabtique

Le prfixe ne peut prendre que deux valeurs : S ou K


Prfixe S K Description Start Ces fichiers seront lancs lors de l'accs ce niveau Kill Ces fichiers seront lancs lorsque le systme quittera ce niveau Description Ce fichier sera le premier lanc lors de l'accs ce niveau Ce fichier sera le dernier tre lanc lors de l'accs ce niveau Description Ce fichier sera le premier lanc lors de l'accs ce niveau Ce fichier sera l'un des derniers tre lanc lors de l'accs ce niveau

Le nombre est une valeur numrique : 00 99


Nombre S00 S99

Le nom est le nom du fichier : aaa. zzz.


Nom S00azerty S99qwerty

Si le systme dmarre au niveau 2, il lancera dans l'ordre les scripts suivants :


-rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr-xr-x -rwxr--r--rwxr--r--rwxr--r-......... 3 2 4 2 2 2 5 2 5 root root root root root root root root root sys sys sys sys sys other sys sys sys 1745 2010 1151 1781 989 2012 359 2304 1718 avr avr mai avr avr avr avr avr avr 7 7 11 7 7 15 7 7 7 2002 2002 2004 2002 2002 2002 2002 2002 2002 S01MOUNTFSYS S05RMTMPFILES S10lu S20sysetup S21perf S30sysid.net S40llc2 S42ncakmod S47pppd

Par contre, si celui-ci quitte ce niveau (pour s'arrter par exemple), il lancera dans l'ordre les scripts suivants :
-rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r--rwxr--r-......... 6 6 6 9 6 6 6 6 6 root root root root root root root root root sys sys sys sys sys sys sys sys sys 324 1508 322 391 344 1056 616 5848 1538 dc avr mai juil avr avr avr avr aot 6 7 7 5 7 7 7 5 19 2004 2002 2003 2005 2002 2002 2002 2004 2004 K03samba K03sshd K05appserv K05volmgt K06mipagent K07dmi K07snmpdx K15imq K16apache

Il lancera ces fichiers afin d'arrter (pour notre exemple), convenablement le systme.

86

2. Arrt du systme
Le Systme d'exploitation Unix ne doit jamais tre arrt directement en coupant l'alimentation, quelle que soit la cause. Car pour des raisons de performances, de nombreuses informations sont stockes en mmoire et non sur l'arborescence du systme. C'est le Systme qui s'occupe de la cohrence entre la mmoire et le disque. A l'utilisation d'une de ces commandes, le Systme effectue une synchronisation entre la mmoire et les fichiers se trouvant sur l'arborescence. Si pour une raison quelconque, l'alimentation du Systme s'arrte (sans qu'il y ait une synchronisation), les dmons s'arrtaient sans avoir eu la possibilit de mettre jour leurs donnes, mais aussi les donnes des Utilisateurs qui se retrouveraient dconnects. Nous allons donc tudier les commandes permettant d'arrter le Systme d'exploitation correctement en assurant la synchronisation des donnes. Les commandes sont les suivantes : - poweroff - halt - reboot - shutdown - init

1. La commande : poweroff
La commande : poweroff permet d'arrter le Systme d'exploitation. Si la carte mre du Systme est quipe d'un mcanisme de coupure logicielle de l'alimentation, le serveur s'arrtera automatiquement. Syntaxe : poweroff [-dlnqy]

En visualisant l'aide de cette commande, voici ce que nous observons :


# man poweroff System Administration Commands NAME halt, poweroff - stop the processor SYNOPSIS /usr/sbin/halt [-dlnqy] /usr/sbin/poweroff [-dlnqy] ......... halt(1M)

Nous remarquons pour l'instant que la commande : poweroff fait appel la commande : halt, voyons, ce que nous pouvons en dduire :
# cd /usr/sbin # ls li poweroff 1513 -rwxr-xr-x 3 root

bin

7804 avr

7 2002 poweroff 7 2002 ./halt 7 2002 ./poweroff 7 2002 ./reboot

# find . inum 1513 exec ls li {} \; 1513 -rwxr-xr-x 3 root bin 7804 avr 1513 -rwxr-xr-x 3 root bin 7804 avr 1513 -rwxr-xr-x 3 root bin 7804 avr

87

Nous venons de confirmer que les trois commandes suivantes lance le mme excutable (inode : 1513), l'excutable faisant seul la diffrence avec le nom de la commande. Exemple :
# poweroff

Options -d -l -n -q -y

Description Forcer une dcharge d'arrt du systme avant le rechargement. Voir le dumpadm(1M) pour l'information sur les dcharges de configuration d'arrt du systme. Supprimer envoyer un message au dmon de journal systme, syslogd(1M), au sujet de qui halte excute. Pas de synchronisation des disques avant l'arrt du Systme Arrt rapide du systme. Aucun arrt gracieux n'est essay. Stopper le systme, mme d'une borne de dialup

Si nous utilisons cette commande (ainsi que les autres commandes associes), le fichier : /var/adm/wtmpx contenant l'historique des informations d'administration et des accs des Utilisateurs. Nous verrons plus loin dans le support comment accder et lire le contenu de ce fichier.

2. La commande : halt
La commande : halt permet aussi d'arrter le Systme d'Exploitation Exemple :
# halt

3. La commande : reboot
La commande : reboot permet de redmarrer le systme d'exploitation. Syntaxe : Exemple :
# reboot

reboot [-dlnq] [arguments]

4. La commande : shutdown
La commande : shutdown d'arrter le Systme d'Exploitation en envoyant des informations aux comptes connects. Syntaxe :
Options -y -g dlai message

shutdown [-y] [ -g dlai] [message]


Description Confirmation automatique de l'excution de la commande. Dlai avant l'excution de la commande (en secondes, par dfaut : 60 secondes) Message envoy aux comptes connects

88

-i tat

Mode de fonctionnement aprs redmarrage du Systme d'Exploitation

Exemple :
# shutdown -i 1 -g 120 "Ajout d'un autre disque" Broadcast Message from root (pts/1) on foo Tue Jul 25 3:42:37... The system will be shut down in 2 minutes ===== disk replacement ===== Broadcast Message from root (pts/1) on foo Tue Jul 25 3:43:37... The system will be shut down in 1 minutes ===== disk replacement ===== Broadcast Message from root (pts/1) on foo Tue Jul 25 3:44:37... The system will be shut down in 30 seconds ===== disk replacement ===== Do you want to continue? (y or n): y

5. La commande : init
La commande : init permet de changer de niveaux de fonctionnement. Syntaxe : /sbin/init [0123456abcQqSs] /etc/telinit [0123456abcQqSs]

Nous avons dj tudi les diffrents niveaux de fonctionnement, nous allons seulement tudier de quelle manire se droule ce changement. Nous allons passer du niveau de fonctionnement actuel au niveau de fonctionnement Exemple :
# init 2

En passant au niveau de fonctionnement 2, la commande : init effectu cette procdure : - Rcuprer le niveau de fonctionnement - Accder au rpertoire rc3.d - Excuter tous les fichiers commenant par K - Accder au rpertoire rc2.d - Excuter tous les fichiers commenant par S.

89

Chapitre 6: Le systme d'impression


Dans ce chapitre, nous tudierons les diffrentes commandes permettant de grer le systme d'impression.

1. Dfinition
Une imprimante est une unit matrielle qui peut-tre connecte soit sur le port srie, soit sur le port parallle, soit directement sur le rseau de lentreprise. Elle possde de ce fait une adresse unique. Le pilote (ou driver) est linterface entre le systme et limprimante relle. Sa dfinition est prsente dans le rpertoire : /dev (par exemple : /dev/lp0). Une imprimante virtuelle est un ensemble dattributs qui dfinissent une vue logicielle de limprimante relle. Elle permet de configurer plusieurs dfinitions de files dimpressions. (Lieu de stockage des demandes ddition).

2. Outils de gestion dimpression


Le service dimpression LP contient les composants suivants pour configurer et administrer les imprimantes sous Solaris : - le gestionnaire dimpression Solaris (Printer Manager) : cet outil graphique permet de configurer et administrer les imprimantes - Les commandes du service LP: cette interface de commande permet galement de configurer et administrer les imprimantes. Ces commandes permettent galement accder des fonctions non disponibles dans linterface graphique.

3. Le modle Client-Serveur
Le service dimpression Solaris est organis en modle Client-Serveur

1. Le serveur dimpression
Un serveur dimpression peut tre nimporte quelle machine configur pour grer une imprimante locale ou une imprimante rseau. Le serveur dimpression propose son service dimpression aux autres machines connectes au rseau et fournis les services de spoulage aux clients mettant des requtes dimpression.

2. Le client dimpression
Le client dimpression envoie des requtes au serveur dimpression

90

4. Types de configurations dimpression possibles


En tant quadministrateur systme, vous devez configurer le systme dimpression de telle manire ce que les utilisateurs puissent avoir accs une ou plusieurs imprimantes Solaris supporte les configurations dimpression locale, rseau et distante.

1. Imprimante locale
Une imprimante locale est une imprimante connecte physiquement au systme qui la gre.

2. Imprimante rseau
Une imprimante rseau est attache au rseau, possde sa propre adresse IP. Elle fournit des Services dimpression aux clients, mais nest pas directement attache un serveur dimpression.

3. Imprimante distante
Une imprimante distante peut tre atteinte par les utilisateurs a travers le rseau, ce qui veut dire quelle peut tre attache a une machine distante ou directement au rseau.

5. Principe de fonctionnement d'une file d'impression


Le service d'impression reoit une demande ddition (requte). Cette requte est envoye la file d'impression qui la stocke et ensuite la revoie vers une imprimante physique (si celle-ci est valide). Ce principe permet de stocker les requtes dans la file d'impression si l'imprimante physique est dconnecte (pour une maintenance par exemple). En validant l'imprimante physique, la file d'impression enverra les requtes vers l'imprimante.

91

Lors de linstallation d'une imprimante, son identification au sein du systme peut tre ralise uniquement en crant la file dimpression associe.

6. Dfinition d'une classe d'imprimantes


Une classe est un regroupement de plusieurs files d'attente, celle-ci est considre comme une autre file d'attente ordinaire. Le dmon d'impression dposera la requte d'impression adresse la classe dans la file d'attente la moins charge de la classe. Lors de la cration d'une classe, un fichier sera crer dans le rpertoire : /etc/lp/classes et contiendra le nom de toutes les files d'impressions lui appartenant.

7. Dmarrage et arrt du service d'impression


Nous allons maintenant tudier les deux commandes qui vont nous permettre d'arrter et de redmarrer le systme d'impression.

1. La commande : lpshut
La commande : lpshut permet d'arrter le service d'impression. Syntaxe : Exemple :
# /usr/lib/lpshut

lpshut

92

Les services d'impression sont arrts.

2. La commande : lpsched
La commande : lpsched permet de dmarrer le service d'impression. Normalement, le dmon : lpsched est lanc pendant le dmarrage du systme. Syntaxe : Exemple :
# /usr/lib/lpsched Print services started.

/usr/lib/lp/lpsched [-f filtre] [-n nombre] [-p limite]

Description Nombre de filtres concourants qui peuvent tre dmarr sur un serveur d'impression (Valeur par dfaut : 1). -n nombre Indique le nombre de processus qui peuvent fonctionner en mme temps sur le serveur d'impression (Valeur par dfaut : 1) -p limite Limite de la ressource pour le dmon d'impression (Valeur par dfaut : 4096)

Options -f filtre

Remarque : Exemple :

Le fichier : SCHEDLOCK est cre pour tre sr qu'une seule copie du dmon d'impression ne s'excute qu'une seule fois.

# ls l /var/spool/lp/SCHEDLOCK -rw-rw-r-- 1 lp lp 0 juil 31 18:16 /var/spool/lp/SCHEDLOCK

8. La cration dune file dattente


Dans cette partie, nous allons voir la procdure que ladministrateur a excut afin de crer cette file dattente. Nous vous rappelons quil faut possder les droits dadministrateur pour crer justement cette file dimpression. Une machine Unix ne ncessite pas de configuration particulire pour devenir serveur d'impression.

1. La commande : lpadmin
La commande : lpadmin permet de configurer la file dattente. Nous allons avant arrter et redmarrer le service dimpression. Syntaxe : lpadmin [-mdx] [-v destination] [-p file ]
Options Description

-p file -v destination -m -d -x

Nom de la file dimpression. Destination (imprimante physique ou virtuelle). Modle de l'imprimante. File dimpression par dfaut. Dtruire une file d'impression

93

Remarque : Exemple :

Le message davertissement provient du fait que ladministrateur cre une imprimante virtuelle (terminal)

# /usr/lib/lpshut Les services dimpression sont arrts. # /user/lib/lpsched Print services started. # lpadmin p Thor v /dev/pts/3 m standard UX:lpadmin : AVERTISSEMENT : /dev/pts/3 is accessible by others. TO FIX : If other users can access it you may get Unwanted output. If this is not what you Want change the owner to lp and change The mode to 0600. Processing continues. # lpadmin d Thor # accept Thor Le destination Thor accepte dsormais les requtes #/usr/lib/lp/local/enable Thor Imprimante Thor maintenant active

2. Le fichier : /etc/printers.conf
Le fichier : /etc/printers.conf contient toutes les files d'impression du serveur sous forme de paragraphe. Exemple :
# more /etc/printers.conf # # If you hand edit this file, comments and structure may change. # The preferred method of modifying this file is through the use of # lpset(1M) # Europa:\ :bsdaddr=solaris,Europa,Solaris: _default:\ :use=Europa: Triton:\ :bsdaddr=solaris,Triton,Solaris:

9. Configuration du systme d'impression


Nous devons maintenant autoriser notre file d'impression recevoir des requtes (des demandes d'impression), mais cela ne veut pas dire qu'elle enverra toutes demandes l'imprimante physique, au contraire, il faudra aussi l'autoriser envoyer les demandes vers l'imprimante physique.

94

1. La commande : accept
La commande : accept autorise le dpt de requtes dans le spool d'impression. Elle ne peut tre utilise que sur le serveur d'impression. Syntaxe : Exemple :
# accept Europa La destination "Europa" accepte dsormais les requtes

accept file_d'impression

2. La commande : reject
La commande : reject n'autorise plus le dpt de requtes dans le spool d'impression. Cette commande ne peut-tre utilises que sur le serveur d'impression. Une file dimpression est rejete par dfaut lors de sa cration. Syntaxe : reject [-r raison] destination
Options -r raison

Description Indique la raison pour laquelle la demande d'impression t rejete. Visualisable l'aide de la commande : lpstat -a destination Nom de la file d'impression ou de la classe d'impression.

Exemple :
# reject r "Maintenance, remplacement de la cartouche" Europa La destination "Europa" n'accepte plus les requtes

3. La commande : enable
La commande : enable autorise l'impression vers l'imprimante physique. Syntaxe : Exemple :
# /usr/bin/enable Europa imprimante "Europa" maintenant active

/usr/bin/enable destination

4. La commande : disable
La commande : disable neutralise l'accs l'imprimante physique. Dans ce cas, les impressions ne s'effectueront plus, mais les demandes (requtes) seront toujours stockes (commande : accept). Syntaxe : disable [-c | -W] [ -r raison] destination
Options -c -w Description Annule toutes les demandes et neutralise l'accs l'imprimante physique. Attend que la demande actuelle se termine avant de neutraliser l'accs

95

l'imprimante physique. Assigne une raison pour neutralisation l'accs l'imprimante physique. destination Nom de la file d'impression ou de la classe d'impression. -r raison

Exemple :
# disable Europa l'imprimante "Europa" est dsormais dsactive

10.

Gestion du systme dimpression

Les Utilisateurs n'accdent pas directement l'imprimante. La demande d'impression, l'annulation d'une demande et la visualisation de l'tat du systme se font l'aide de commandes.

1. La commande : lpstat
La commande : lpstat permet de connatre les demandes qui se trouvent dans la file dattente, donc de voir l'tat de celle-ci. Syntaxe : lpstat [option]
Options Description

-o -d imprimante -v user -r -d -c -t Exemple :

Affiche le statut des impressions sur toutes les files dattente. Affiche le statut des impressions sur une file dattente. Affiche le statut des impressions dun utilisateur Affiche l'tat du service d'impression Affiche le nom de la file d'attente par dfaut Affiche l'tat des classes ou d'une classe Affiche les informations des impressions personnelles

# disable Europa l'imprimante "Europa" est dsormais dsactive # lp /etc/passwd l'id de requte est Europa-6 (1 fichier(s)) # lp /etc/passwd l'id de requte est Europa-7 (1 fichier(s)) # lp /etc/passwd l'id de requte est Europa-8 (1 fichier(s)) # lp /etc/passwd l'id de requte est Europa-9 (1 fichier(s)) # lpstat Europa-6 Europa-7 Europa-8 Europa-9 # lpstat a root root root root 1099 1099 1099 1099 aot aot aot aot 01 01 01 01 00:04 00:04 00:04 00:04

96

Europa requtes acceptes depuis mar 01 aot 2006 00:01:55 CEST _default requtes acceptes depuis mar 01 aot 2006 00:01:55 CEST # lpstat t l'imprimante Europa est dsactive depuis mar 01 aot 2006 00:04:41 CEST. disponible. unknown reason Europa-6 root 1099 aot 01 00:04 Europa-7 root 1099 aot 01 00:04 Europa-8 root 1099 aot 01 00:04 Europa-9 root 1099 aot 01 00:04 # lpstat o Europa-6 Europa-7 Europa-8 Europa-9 root root root root 1099 1099 1099 1099 aot aot aot aot 01 01 01 01 00:04 00:04 00:04 00:04

# lpstat d Europa destination par dfaut du systme : Europa Europa-6 root 1099 aot Europa-7 root 1099 aot Europa-8 root 1099 aot Europa-9 root 1099 aot # lpstat r l'ordonnanceur est en cours d'excution # lpstat d destination par dfaut du systme : Europa # lpstat c membres de la classe Denethor : Boromir Faramir membres de la classe Theoden : Eowyn Eomer

01 01 01 01

00:04 00:04 00:04 00:04

2. La commande : cancel
La commande : cancel permet de supprimer un fichier du spool, donc de supprimer une demande d'impression. Syntaxe : cancel [numro ddition] [file dattente] cancel u user [file dattente]
Options Description

numro ddition Numro des jobs (de la demande dimpression). u user Concernant lUtilisateur. Exemple :
# lpstat Europa-6 Europa-7 Europa-8 Europa-9 root root root root 1099 1099 1099 1099 aot aot aot aot 01 01 01 01 00:04 00:04 00:04 00:04

97

# cancel Europa-6 Europa-6: cancelled # lpstat Europa-7 Europa-8 Europa-9 root root root 1099 1099 1099 aot 01 00:04 aot 01 00:04 aot 01 00:04

3. La commande : lpmove
La commande : lpmove permet de transfrer une file d'attente vers une autre file d'attente. La premire syntaxe permet de transfrer une seule demande vers une autre file d'impression. La seconde quant elle transfre toutes les demandes mais dans ce cas rejet les nouvelles demandes de la premire file d'impression. Syntaxe : lpmove [n requte] destination lpmove destination1 destination2
Description Dplacement de la demande n'impression (numro de la requte) Nom de la file d'attente recueillant la demande d'impression Nom de la file d'attente source Nom de la file d'attente cible (recevant les requtes)

Options n requte destination destination1 destination2

Exemple :
# lpstat Europa-7 Europa-8 Europa-9 root root root 1099 1099 1099 aot 01 00:04 aot 01 00:04 aot 01 00:04

# lpmove Europa-7 Triton au total, 1 requtes dplaces vers Triton # lpstat d Europa destination par dfaut du systme : Europa Europa-8 root 1099 aot 01 00:04 Europa-9 root 1099 aot 01 00:04 # lpstat d Triton destination par dfaut du systme : Europa Europa-7 root 1099 aot 01 00:04 # lpmove Europa Triton la destination Europa n'accepte pas les requtes dplacement en cours ... au total, 2 requtes dplaces vers Triton # lpstat d Europa destination par dfaut du systme : Europa # lpstat d Triton destination par dfaut du systme : Europa Europa-7 root 1099 aot 01 00:04 Europa-8 root 1099 aot 01 00:04 Europa-9 root 1099 aot 01 00:04

98

4. La commande : lp
La commande : lp permet d'envoyer une requte sur une file d'impression dun ou de plusieurs fichiers (ou ventuellement de lentre standard). Syntaxe : lp [option] fichier

Options Description -d imprimante Nom de limprimante (destination) -n nombre Nombre de copie -q nombre Priorit de ldition.

Pour valider une file d'impression, nous avons cr une imprimante virtuelle (terminal). Cest--dire que lorsque lutilisateur demandera une impression, cette demande sera excute (imprim) sur le terminal (au lieu dune imprimante physique). Exemple :
$ lp /etc/passwd lid de requte est Europa-1 (1 fichier(s))

Sur le terminal (pour nous limprimante virtuelle), nous avons ceci :


##### ##### ##### ##### User: root@Solaris ##### ##### Title: /etc/passwd ##### ##### Printed: lun 23:51 juilet 31, 2006 ##### ##### Job number: Europa-1 ##### ##### root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico smmsp:x:25:25:SendMail Message Submission Program:/: listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/: user1:x:100:100::/export/home/user1:/bin/sh user2:x:101:100::/export/home/user2:/bin/sh user3:x:102:100::/export/home/user3:/bin/sh user4:x:103:100::/export/home/user4:/bin/sh user5:x:104:100::/export/home/user5:/bin/sh user6:x:105:100::/export/home/user6:/bin/sh user7:x:106:100::/export/home/user7:/bin/sh

99

Chapitre 7: Gestion du Systme d'Exploitation


Nous allons maintenant tudier la comptabilit du Systme d'Exploitation qui permet de connatre sa consommation en ressource.

1. La comptabilit systme
Sur tous les Systmes d'Exploitation Unix, il existe un certain nombre de commandes permettant d'obtenir des statistiques sur l'utilisation du Systme. Ceux-ci exploitent diffrents fichiers grs par le Noyau. La comptabilit permet d'enregistrer et d'afficher l'usage des ressources consommes par les commandes, les temps de connexion, etc. L'administrateur en exploitant ces donnes peut connatre l'utilisation du Systme d'Exploitation, mais surtout les causes d'une consommation plus que la normale. Nous vous invitons ne pas laisser tout le temps la comptabilit active, car le fait de la valider lors du dmarrage, entrane un ralentissement du Systme d'Exploitation (car le Noyau enregistre toutes les transactions dans les deux fichiers de bases de donnes). De plus, les fichiers log vont prendre de plus en plus de place. La comptabilit est ncessaire pour obtenir une image de la consommation des ressources un instant donn, ne laissez jamais la comptabilit active pendant une trop longue dure.

2. Les fichiers de base de donnes


Le Noyau gre automatique deux fichiers contenant toutes les donnes servant la comptabilit. Ces deux fichiers se trouvent dans le rpertoire : /var/adm et ne sont pas exploitables directement, il faut que vous utilisiez des commandes adaptes. Ces deux fichiers se nomment : - utmpx - wtmpx

1. Le fichier : utmpx
Le fichier : utmpx contient l'accs des utilisateurs et les informations comptables pour des commandes telles que who, write et login.

2. Le fichier : wtmpx
Le fichier : wtmpx contient l'historique des accs utilisateurs et des informations comptables pour la base de donnes d'utmpx

3. Contenu des fichiers base de donnes


Nous allons visualiser le contenu de chaque fichier afin de dmontrer que nous ne pouvons pas traiter les informations directement, nous serons donc obliger d'utiliser des commandes pour exploiter ces rsultats.

100

# cd /var/adm # file utmpx utmpx: # file wtmpx wtmpx:

texte donnes

# more utmpx system boot_d+5+run-level 3_3SD+5_ +rc2s2#hD+5+ +rc3s3_#hD+5;+LOGINdtconsole ___>D+56_:0sacsc_#hD+5; +LOGINcoconsole____-D+5< _zsmonPM10___LD+5|user1t100pts/2__!-D+7A ^L192.168.1.2+ # more wtmpx system boot_D__irun-level 3_3SD___ rc2s2HD___ shutdown~D__+nsystem boot _D__]run~-level 3_3SD__{ rc2s2KD__{ rc2sD_orc3s_^D__ ......... er1t100pts//2_aD7 192.168.1.100

4. Lancement de la comptabilit
Le lancement de la comptabilit s'effectue au dmarrage du Systme d'Exploitation, l'aide d'un script de dmarrage dj existant. Ce script se nomme : acct et se trouve dans le rpertoire : /etc/init.d. Pour valider ce lancement, il faut crer un fichier dans le rpertoire : /etc/rc3.d (si notre niveau de fonctionnement au dmarrage est : 3). Nous allons crer ce fichier et le nommer de telle faon qu'il puisse dmarrer la fin de tous les autres sous-systmes. Contenu du fichier de comptabilit :
#!/sbin/sh # # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T. # All rights reserved. # # THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T # The copyright notice above does not evidence any # actual or intended publication of such source code. # # Copyright (c) 1997 by Sun Microsystems, Inc. # All rights reserved. # #ident "@(#)acct.sh 1.3 97/12/08 SMI" state="$1" if [ -z "$_INIT_RUN_NPREV" -o -z "$_INIT_PREV_LEVEL" ]; then set -- `/usr/bin/who -r` _INIT_RUN_NPREV="$8"

101

_INIT_PREV_LEVEL="$9" fi [ $_INIT_RUN_NPREV != 0 ] && exit 0 case "$state" in 'start') [ $_INIT_PREV_LEVEL = 2 -o $_INIT_PREV_LEVEL = 3 ] && exit 0 echo 'Starting process accounting' /usr/lib/acct/startup ;; 'stop') echo 'Stopping process accounting' /usr/lib/acct/shutacct ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac exit 0

Maintenant, nous crons ce fichier :


# cd /etc/rc3.d # cat > S99accounting echo "Dmarrage de la comptabilit Systme" /etc/init.d/acct start echo "Comptabilit active" <CTRL-D> # chmod u+x ./S99accounting

a. La commande : last
La commande : last permet d'afficher les dernires connexions des utilisateurs du systme. Cette commande extrait les informations du fichier : /var/adm/wtmpx. Les informations recueillies seront : - Le login de connexion - Le type de terminal - Le jour et le mois de connexion - La dure de connexion (dbut fin) - Syntaxe :
Options -a -f fichier

last [-a] [-n nombre|-nombre] [-f fichier] [nom|tty]


Description Affiche toutes les informations avec l'adresse du poste client en dernire colonne. Indique la base de donnes lire (autre que le fichier : wtmpx). Par exemple, les anciennes bases de donnes sauvegardes.

-n nombre Affiche les 'n' premires lignes -nombre nom Nom de l'utilisateur tty Nom du terminal

102

Exemple :
# last user1 reboot user1 reboot user1 reboot user1 user1 user1 root reboot root reboot reboot pts/2 system boot pts/2 system boot pts/2 system boot pts/3 pts/6 pts/2 console system boot console system boot system boot 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 :0 :0 Mon Mon Mon Mon Mon Mon Mon Wed Wed Wed Wed Fri Fri Fri Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul 24 24 24 24 24 24 24 12 12 12 12 7 7 7 23:11 encore connect 23:01 20:20 - 20:45 (00:24) 20:20 18:10 - 18:58 (00:47) 18:07 16:48 - 17:08 (00:20) 15:57 15:53 15:52 15:51 00:58 00:57 00:45 - 16:01 (00:04) - 16:01 (00:07) - 16:01 (00:08) - 00:59 (00:01)

dbut de wtmp : Fri Jul 7 00:45 # last -a user1 pts/2 reboot system boot user1 pts/2 reboot system boot user1 pts/2 root console reboot system boot root console reboot system boot reboot system boot Mon Mon Mon Mon Mon Wed Wed Fri Fri Fri Jul Jul Jul Jul Jul Jul Jul Ju Jul Jul 24 24 24 24 24 12 12 7 7 7 23:11 encore connect 23:01 20:20 - 20:45 (00:24) 20:20 18:10 - 18:58 (00:47) 15:52 - 16:01 (00:08) 15:51 00:58 - 00:59 (00:01) 00:57 00:45 192.168.1.2 192.168.1.2 192.168.1.2 :0 :0

dbut de wtmp : Fri Jul 7 00:45

Exemple :
# last root root root root # last user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 root console console console console user1 pts/2 pts/2 pts/2 pts/3 pts/2 pts/4 pts/4 pts/2 pts/2 pts/2 pts/2 pts/2 :0 :0 :0 :0 Sun Fri Wed Fri Jul Jul Jul Jul 23 21 12 7 12:13 11:22 15:52 00:58 arrt arrt arrt arrt (00:02) (00:02) (1+05:42) (5+14:52)

dbut de wtmp : Fri Jul 7 00:45 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 Mon Mon Mon Mon Mon Mon Mon Tue Tue Mon Mon Thu Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul 24 24 24 24 24 24 24 18 18 17 17 13 23:11 20:20 18:10 16:48 16:30 12:17 11:49 10:19 00:09 21:41 17:55 21:36 encore - 20:45 - 18:58 - 17:08 - 17:11 arrt - 12:11 10:38 01:40 23:33 19:16 22:57 connect (00:24) (00:47) (00:20) (00:41) (04:07) (00:21) (00:18) (01:30) (01:51) (01:20) (01:21)

103

user1 user1 # last user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 user1 # last user1 user1 user1 user1 user1

pts/6 192.168.1.2 pts/2 192.168.1.2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2

Wed Jul 12 Wed Jul 12

15:57 - 16:01 (00:04) 15:53 - 16:01 (00:07)

dbut de wtmp : Fri Jul 7 00:45 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 192.168.1.2 Mon Mon Mon Mon Sun Sun Sun Tue Tue Tue Mon Mon Thu Wed Jul Ju Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul 24 24 24 24 23 23 23 18 18 18 17 17 13 12 23:11 20:20 18:10 16:30 21:23 12:21 12:18 11:39 10:19 00:09 21:41 17:55 21:36 15:53 encore - 20:45 - 18:58 - 17:11 arrt - 13:08 - 12:21 12:05 10:38 01:40 23:33 19:16 22:57 16:01 connect (00:24) (00:47) (00:41) (19:01) (00:46) (00:02) (00:25) (00:18) (01:30) (01:51) (01:20) (01:21) (00:07)

dbut de wtmp : Fri Jul 7 00:45 -5 user1 pts/2 192.168.1.2 pts/2 192.168.1.2 pts/2 192.168.1.2 pts/3 192.168.1.2 pts/2 192.168.1.2 Mon Mon Mon Mon Mon Jul Jul Jul Jul Jul 24 24 24 24 24 Jul Jul Jul Jul 23:11 20:20 18:10 16:48 16:30 24 24 24 24 encore 20:45 18:58 17:08 17:11 connect (00:24) (00:47) (00:20) (00:41)

# last | grep reboot reboot system boot reboot system boot reboot system boot reboot system boot

Mon Mon Mon Mon

23:01 20:20 18:07 16:25

b. La commande : lastcomm
La commande : lastcomm permet d'afficher les dernires commandes des utilisateurs du systme. Cette commande extrait les informations du fichier : /var/adm/wtmpx. Syntaxe :
Options -f fichier

lastcomm
Description Indique un nom de fichier comme sortie standard.

Exemple :
# lastcomm init mibiisa S sh S bash sac S ttymon S ttymon S dtlogin SF Xsun S root root root root root root root root root __ __ __ __ __ __ __ __ __ 0.09 4.63 0.11 1.34 0.03 0.04 0.04 0.08 0.98 secs secs secs secs secs secs secs secs secs Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:11 Tue Jul 25 00:12 Tue Jul 25 03:00 Tue Jul 25 03:00 Tue Jul 25 03:00 Mon Jul 24 23:01 Mon Jul 24 23:01

104

sshd miniserv syseven vold htt_serv cron dtlogin vold snmpdx uname rpcbind dtgreet sh snmpdx nmbd fbconsol syslogd smbd smbd ttymon powerd smcboot utmpd in.route htt sendmail sendmail automoun nscd dmispd snmpXdmi picld skipd lockd

SF F SF SF S F F S SF F S F SF SF SF SF S SF SF SF SF F SF SF SF F SF SF SF SF

root root root root root root root root root root root root xavier root root root root root root root root root root root root smmsp root root root root root root root root

__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

0.01 0.21 0.16 0.03 0.04 0.04 0.14 1.85 0.07 0.02 0.11 0.49 0.10 0.02 0.63 0.04 0.15 0.02 2.19 0.06 0.38 0.02 0.01 0.52 0.01 0.01 0.09 0.40 0.10 0.12 0.07 0.59 0.41 0.07

secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs secs

Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Tue Jul 25 03:00 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Tue Jul 25 03:00 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:11 Tue Jul 25 03:00 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Tue Jul 25 00:14 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:02 Mon Jul 24 23:02 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01 Mon Jul 24 23:01

c. La commande : acctadm
La commande : acctadm d'afficher de configurer le service de comptabilit. La commande se trouve dans le rpertoire : /usr/sbin. Syntaxe :
Options -d liste -f fichier -r -u -x process task flow

acctadm [-DErux] [-d liste] [-e liste] [-f fichier] [task | process | flow]
Description Neutralise le reportage de lutilisation de Indique un nom de fichier comme sortie standard. Groupes disponibles de ressources daffichage. Configurer la comptabilit base sur les teneurs de : /etc/acctadm.conf Mettre la comptabilit hors tension du type donne doprande. Lance la commande sur les composants : processus Lance la commande sur les composants : tches Lance la commande sur les composants : flux

Remarque :

Sans arguments, la commande : acctadm affiche ltat actuel du service de comptabilit.

105

Exemple :
# acctadm Comptabilisation des tches : dsactive Fichier de comptabilisation des tches : none Ressources de tche suivies : none Ressources de tche non suivies : extended Comptabilisation des processus : dsactive Fichier de comptabilisation des processus : none Ressources de processus suivies : none Ressources de processus non suivies : extended,host,mstate Comptabilisation du flux : dsactive Fichier de comptabilisation du flux : none Ressources de flux suivies : none Ressources de flux non suivies : extended # acctadm process Comptabilisation des processus : dsactive Fichier de comptabilisation des processus : none Ressources de processus suivies : none Ressources de processus non suivies : extended,host,mstate # acctadm task Comptabilisation des tches : dsactive Fichier de comptabilisation des tches : none Ressources de tche suivies : none Ressources de tche non suivies : extended # acctadm flow Comptabilisation du flux : dsactive Fichier de comptabilisation du flux : none Ressources de flux suivies : none Ressources de flux non suivies : extended

3. Le lancement de tches
Nous avons la possibilit d'automatiser le lancement de tches systme. Nous pouvons par exemple, lancer une sauvegarde du Systme d'Exploitation chaque fin de semaine. Nous allons donc tudier la commande : crontab qui va nous permettre de paramtrer cette automatisation.

1. La commande : crontab
La commande : crontab permet chaque comptes Unix de paramtrer l'automatisation de certaines tches, quelles soient systmes ou non. Avant de lancer cette commande, nous devons nous assurer que l'diteur par dfaut est l'diteur : vi ( l'aide de la variable d'environnement : EDITOR). Syntaxe :
Options -e -l -r

crontab [fichier] crontab [-elr utilisateur]


Description Modifier les paramtrages de l'automatisation Affiche le contenu du fichier : crontab Enlve un compte Unix partir de l'annuaire de crontab.

106

Structure du fichier : Le fichier est compos de plusieurs lignes, chaque ligne correspond un lancement de tche et est compose de 6 champs : Minute Heure Jour du Mois Mois Jour Semaine Commande

Chacun de ces champs contient une valeur, ou un intervalle de valeur correspond au moment du dclenchement de la commande (suivant la dfinition du champ). Prenons un exemple avec le premier champ, les autres suivant la mme norme. Champs : Minute Ce champ correspond aux minutes (ou la minute) pendant lesquels le Systme va enclencher la commande.
Minutes 45 32-50 32,50 * Description Dclenchement la minute 45 Dclenchement aux minutes 32, 33, 34 jusqu' 50 Dclenchement aux minutes 32 et 50 Dclenchement toutes les minutes

Si nous avons cette ligne dans le fichier : 23 11-15 3-8 * * /usr/bin/prog

Le fichier : /usr/bin/prog sera excut : - Champs 4 : Tous les mois - Champs 3 et 5 : Pour les jours : 3 8 (n'importe - Champs 2 et 1 : A 11h23, 12h23, 13h23, 14h23 et 15h23. Si nous avions remplac le champ 5 par la valeur 3, le fichier se serait excut que si entre le jour 3 et le jour 8, nous tombons un Mercredi Champs : Jour de la semaine La valeur ou l'intervalle de valeur peut aller de 0 Dimanche 6 Samedi.

a. Le paramtrage
Voici le fichier pour l'administrateur :
# EDITOR=vi # export EDITOR # crontab e # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean

107

#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

b. Le dmon
Vous devez tre certain que le dmon (processus) soit lanc lors du dmarrage du Systme d'Exploitation.
# ps ef | grep cron root 268 1 0 10:07:51 ? 0:00 /usr/sbin/cron root 886 484 0 12:42:52 pts/2 0:00 grep cron

c. Modification
La modification du fichier se fait l'aide de la commande : crontab avec l'option : -e. Comme l'diteur par dfaut est l'diteur : vi, il suffit de crer ou de modifier une ligne en utilisant les commandes de l'diteur.
# crontab e # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___ * * * * * /prog

Remarque :

Noubliez pas les droits daccs du fichier a excuter (le droit : x simpose dans ce cas), sinon le programme ne sexcutera pas et vous recevrez le message ds lappuie de la touche : Entre.

You have new mail Lutilisateur user1 peut connatre ltat de sa messagerie. :
$ mail From root@solaris Mon Jan 22 13:22:01 2007 Date: Mon, 22 Jan 2007 13:22:01 +0100 (CET) From: Super-User <root@solaris> Message-Id: <200701221222.l0MCM1vC000877@solaris> To: root@solaris Subject: Output from "cron" command Content-Length: 93 Your "cron" job on solaris /prog produced the following output: sh: /prog: cannot execute

108

d. Vrification
Nous avons crer une automatisation permettant de lancer le programme : /prog toutes les minutes, en voici le rsultat.
Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour Bonjour

2. Les droits
L'administrateur peut choisir quels sont les comptes Unix ayant le droit d'excuter le programme de lancement automatique, ceux qui ont le droit, et ceux qui n'ont pas le droit. Ce choix se fait l'aide de deux fichiers se trouvant dans le rpertoire : /etc/cront.d. Ces fichiers se nomment : cron.allow et cron.deny Exemple :
# cd /etc/cron.d # ls l -rw-r--r-1 -rw-r--r-1 prw------1 -rw-r--r-1 # more cron.deny daemon bin smtp nuucp listen nobody noaccess

root root root root

sys sys root sys

45 45 0 17

juil juil juil avr

6 6 26 7

22:51 22:51 10:53 2002

at.deny cron.deny FIFO queuedefs

a. Le fichier : cron.allow
Tous les comptes contenus dans ce fichier pourront utiliser le dmon cron. Si ce fichier est vide, aucun utilisateur nest autoris utiliser cette fonction.

b. Le fichier : cron.deny
Tous les comptes contenus dans ce fichier ne pourront pas utiliser le lancement priodique (attention ne pas mettre : root). Si ce fichier existe mais vide, tous les utilisateurs peuvent utiliser cette fonction. Prsence des fichiers Aucun fichier cron.allow Personne n'a le droit (sauf ladministrateur). Seuls les personnes dans ce fichier ont le droit. 109

cron.deny cron.allow cron.deny

Toutes les personnes sauf ceux de deny. Toutes les personnes dans allow ceux de deny.

110

Chapitre 8: Installation des Packages et des Modules


Nous allons tudier plusieurs faons d'installer des applications pour notre Systme d'Exploitation.

1. Installation de packages
Nous allons maintenant tudier l'installation des packages Solaris, pour notre Systme d'Exploitation.

1. La commande : pkginfo
La commande : pkginfo affiche les informations sur les packages installs. Syntaxe : pkginfo [-i] [-a arch] [-c category] [-d device]
Options -a arch -c category -d device -i Description Affiche les packages concernant l'architecture concerne (par exemple : sparc) Affiche les packages concernant la catgorie (par exemple : application ou system) Endroit o se trouve les packages installer Affiche que les packages entirement installs

Affichage de tous les packages installs :


# pkginfo | wc l 1045 # pkginfo system system system system system system system ....... system system system application system (64-bit) IPLTadcon IPLTadman IPLTadmin IPLTcons IPLTdscon IPLTdsman IPLTdsr TSBWvplr TSBWvplu TSIpgx TSIpgxw TSIpgxx Administration Server Console Administration Server Documentation Administration Server Console Client Base Directory Server Console Directory Server Documentation Directory Server (root) Toshiba platform links Toshiba usr/platform links PGX32 (Raptor GFX) System Software/Device Driver v3.0 PGX32 (Raptor GFX) X Window System Support v3.0 PGX32 (Raptor GFX) System Software/Device Driver v3.0

111

Autres informations :
# pkginfo a sparc system IPLTadcon system IPLTadman system IPLTadmin system IPLTcons system IPLTdscon system IPLTdsman system IPLTdsr system IPLTdsu system IPLTjss system IPLTnls system IPLTnspr system IPLTnss system IPLTpldap application NSCPcom application NSCPfrcdo application NSCPfrcom Administration Server Console Administration Server Documentation Administration Server Console Client Base Directory Server Console Directory Server Documentation Directory Server (root) Directory Server (usr) Network Security Services for Java Nationalization Languages and Localization Support Portable Runtime Interface Network Security Services PerLDAP Netscape Communicator Netscape Communicator Netscape Communicator

# pkginfo c application application NSCPcom Netscape Communicator application NSCPfrcdo Netscape Communicator application NSCPfrcom Netscape Communicator application SUNW3des SKIP 3DES Crypto Module application SUNW3desx SKIP 3DES Crypto Module (64-bit) GNOME2 SUNWTiffx libtiff - library for reading and writing TIFF (64-bit) application SUNWafbw Elite3D Graphics Window System Support application SUNWbdc SKIP Bulk Data Crypt application SUNWbdcx SKIP Bulk Data Crypt (64-bit) application SUNWdes SKIP DES Crypto Module application SUNWdesx SKIP DES Crypto Module (64-bit) application SUNWdialh Buttons/Dials Header Files application SUNWeke Sun(tm) Embedded Knowledge Engine application SUNWexplo Sun(TM) Explorer Data Collector application SUNWexplu Sun(TM) Explorer Data Collector Config Files application SUNWfbc Frame Buffer Configuration Utility application SUNWffbcf Creator Graphics Configuration Software application SUNWffbw Creator Graphics Window System Support application SUNWfkcsr French KCMS Runtime Environment application SUNWfrj2p Java Plug-in application SUNWfrns French Netscape for Solaris application SUNWfrsmc French Solaris Management Console 2.1

2. La commande : pkgadd
La commande : pkgadd permet d'installer des packages Syntaxe :
Options -d device

pkgadd [-d device] [source] [instances]


Description Rpertoire o se trouve les packages

112

Exemple :
# cd /part1/Sources # ls mpp-2.6-82.SunOS.sparc.pkg #pkgadd d * Les modules suivants sont disponibles : 1 mpp Message Processing Platform Enterprise / Service Provider Edition (sparc) 2.6-82 Slectionnez le ou les modules que vous souhaitez traiter (ou 'all' pour traiter tous les modules). (default: all) [?,??,q]: 1 Traitement de la copie du module <mpp> partir de </part1/Sources/mpp-2.682.SunOS.sparc.pkg> en cours... Message Processing Platform Enterprise / Service Provider Edition (sparc) 2.6-82 Copyright (c) 2006 Message Partners, www.messagepartners.com </usr/local> est le rpertoire de base utilis pour l'installation du module. ## Traitement des donnes du module en cours... ## Traitement des donnes systme en cours... ## Vrification de l'espace disque requis ## Checking for conflicts with packages already installs. ## Vrification des programmes setuid/setgid en cours... Ce module contient des scripts qui seront excuts avec les autorisations de superutilisateur lors du processus d'installation. Souhaitez-vous poursuivre l'installation de <mpp> ? [y,n,?] y Installation de Message Processing Platform Enterprise / Service Provider Edition en <mpp> en cours... ## Intallation de l'lment 1 de 1 en cours... /usr/local/MPP/cf/attachment_default /usr/local/MPP/cf/content_default /usr/local/MPP/cf/header_default /usr/local/MPP/cloudmark/etc/cartridge.cfg /usr/local/MPP/cloudmark/etc/micro_updates/1.ipl /usr/local/sav/vdl20.vdb /usr/local/sav/vdl21.vdb /usr/local/sav/vdl22.vdb /usr/local/sav/vdl23.vdb /usr/local/sav/vdl24.vdb /usr/local/share/examples/clamav/daily.cvd /usr/local/share/examples/clamav/daily.cvd-current.md5 /usr/local/share/examples/clamav/main.cvd /usr/local/share/examples/clamav/main.cvd-current.md5 [ vrification de la classe <none> en cours...] ## Excution du script de post-installation L'installation de <mpp> a abouti.

3. La commande : pkginfo
La commande : pkgrm permet de supprimer des packages Syntaxe : Exemple : pkgrm packages

113

# pkgrm mpp Le module suivant est install : mpp Message Processing Platform Enterprise / Service Provider Edition (sparc) 2.6-82 Souhaitez-vous supprimer ce module ? [y,n,?,q] ## Dsinstallation de la copie du module <mpp> en cours... Ce module contient des scripts qui seront excuts avec les autorisations de superutilisateur lors du processus de suppression. Voulez-vous reprendre la suppression de ce module ? [y,n,?,q] ## Vrification des fichiers dpendants du module en cours... ## Traitement des donnes du module en cours... ## Excution du script de pr-suppression... ## Suppression des chemins d'accs dans la classe <none> /usr/local/share/examples/clamav/main.cvd-current.md5 /usr/local/share/examples/clamav/main.cvd /usr/local/share/examples/clamav/daily.cvd-current.md5 /usr/local/share/examples/clamav/daily.cvd /usr/local/share/examples/clamav /usr/local/share/examples /usr/local/share <rpertoire non vide conserv> /usr/local/sav/vdl24.vdb /usr/local/sav/vdl23.vdb /usr/local/sav/vdl22.vdb /usr/local/sav/vdl21.vdb /usr/local/sav/vdl20.vdb /usr/local/MPP/cloudmark/lib/cartridge.so /usr/local/MPP/cloudmark/lib /usr/local/MPP/cloudmark/etc/whitelist.cfg /usr/local/MPP/cloudmark/etc/micro_updates/9.dpl /usr/local/MPP/cloudmark/etc/micro_updates/8.awl /usr/local/MPP/cloudmark/etc/micro_updates/70.rplv1 /usr/local/MPP/cloudmark/etc/micro_updates/324057.hs2.z.aes /usr/local/MPP/cloudmark/etc/micro_updates/3.acf /usr/local/MPP/cloudmark/etc/micro_updates/1.ipl /usr/local/MPP/cloudmark/etc/micro_updates /usr/local/MPP/cloudmark/etc/cartridge.cfg /usr/local/MPP/cloudmark/etc /usr/local/MPP/cloudmark /usr/local/MPP/cf/header_default /usr/local/MPP/cf/content_default /usr/local/MPP/cf/attachment_default /usr/local/MPP/cf /usr/local/MPP <rpertoire non vide conserv> ## Excution du script de post-suppression en cours... ## Mise jour des donnes systme en cours... La suppression de <mpp> a abouti.

114

2. Les Modules du Noyau


Sur le Systme Unix, le noyau est dynamique. Tous les pilotes ne sont pas installs l'intrieur du Noyau, celui-ci charges les pilotes que lorsqu'il en a l'utilit. L'administrateur quant lui peut charger ou retir un pilote de priphrique est ralisable l'aide de commandes.

1. Les fichiers pris en compte


Les pilotes sont placs dans les rpertoires suivants :
Description Fichier configuration du Systme d'Exploitation, il permet de dfinir les rpertoires des pilotes et de forcer le chargement d'un module au dmarrage. /kernel/drv Pilotes utiliss au moment du dmarrage /usr/kernel/drv Pilotes indpendant d'une plate-forme /platform/sparc/drv Pilotes spcifiques la plateforme Rpertoire /etc/system

2. La commande : prtconf
La commande : prtconf affiche la configuration du Systme d'Exploitation en particulier des priphriques existants. Elle indique pour chacun d'entre eux si le pilote est charg ou non. Syntaxe : /usr/sbin/prtconf [-vpPD]

Options Description -D Affichage du nom du module de gestion du priphrique -p Affichage de la configuration initiale. -P Inclut des informations sur des pseudo dispositifs (par dfaut, l'information concernant de pseudo dispositifs est omise). -v Mode commentaire

Exemple :
# prtconf System Configuration: Sun Microsystems sun4u Memory size: 512 Megabytes System Peripherals (Software Nodes): SUNW,Ultra-5_10 packages (driver not attached) terminal-emulator (driver not attached) deblocker (driver not attached) obp-tftp (driver not attached) disk-label (driver not attached) SUNW,builtin-drivers (driver not attached) sun-keyboard (driver not attached) ufs-file-system (driver not attached) chosen (driver not attached) openprom (driver not attached)

115

client-services (driver not attached) ......... SUNW,CS4231 (driver not attached) network, instance #0 SUNW,m64B, instance #0 ide, instance #0 disk (driver not attached) cdrom (driver not attached) dad, instance #0 dad, instance #1 dad, instance #2 sd, instance #15 pci, instance #1 pci, instance #0 pci108e,1000 (driver not attached) SUNW,hme, instance #1 SUNW,isptwo, instance #0 sd (driver not attached) st (driver not attached) sd, instance #0 (driver not attached) sd, instance #14 (driver not attached) pci1214,334 (driver not attached) SUNW,UltraSPARC-IIi (driver not attached) pseudo, instance #0

Exemple :
# prtconf D System Configuration: Sun Microsystems sun4u Memory size: 512 Megabytes System Peripherals (Software Nodes): SUNW,Ultra-5_10 packages terminal-emulator deblocker obp-tftp disk-label SUNW,builtin-drivers sun-keyboard ufs-file-system chosen openprom client-services options, instance #0 (driver name: options) aliases memory virtual-memory pci, instance #0 (driver name: pcipsy) pci, instance #0 (driver name: simba) ebus, instance #0 (driver name: ebus) auxio power, instance #0 (driver name: power) SUNW,pll se, instance #0 (driver name: se) su, instance #0 (driver name: su) su, instance #1 (driver name: su) ecpp (driver name: ecpp)

116

fdthree, instance #0 (driver name: fd) eeprom flashprom SUNW,CS4231 (driver name: audiocs) network, instance #0 (driver name: hme) SUNW,m64B, instance #0 (driver name: m64) ide, instance #0 (driver name: uata) disk (driver name: dad) cdrom (driver name: sd) dad, instance #0 (driver name: dad) dad, instance #1 (driver name: dad) dad, instance #2 (driver name: dad) sd, instance #15 (driver name: sd) pci, instance #1 (driver name: simba) pci, instance #0 (driver name: pci_pci) pci108e,1000 SUNW,hme, instance #1 (driver name: hme) SUNW,isptwo, instance #0 (driver name: isp) sd (driver name: sd) st (driver name: st) sd, instance #14 (driver name: sd) pci1214,334 SUNW,UltraSPARC-IIi pseudo, instance #0 (driver name: pseudo)

Exemple :
# prtconf v System Configuration: Sun Microsystems sun4u Memory size: 512 Megabytes System Peripherals (Software Nodes): SUNW,Ultra-5_10 System properties: name='relative-addressing' type=int items=1 value=00000001 name='MMU_PAGEOFFSET' type=int items=1 value=00001fff name='MMU_PAGESIZE' type=int items=1 value=00002000 name='PAGESIZE' type=int items=1 value=00002000 Driver properties: name='pm-hardware-state' type=string items=1 dev=none value='no-suspend-resume' packages (driver not attached) terminal-emulator (driver not attached) deblocker (driver not attached) obp-tftp (driver not attached) disk-label (driver not attached) SUNW,builtin-drivers (driver not attached) sun-keyboard (driver not attached) ufs-file-system (driver not attached) chosen (driver not attached) openprom (driver not attached) client-services (driver not attached) options, instance #0

117

System properties: name='ttymodes' type=byte items=36 value=00.00.25.02.00.00.18.05.00.00.00.bd.00.00.8a.3b.03 name='class' type=string items=1 value='root' aliases (driver not attached) memory (driver not attached) virtual-memory (driver not attached) pci, instance #0 Driver properties: name='interrupt-priorities' type=int items=6 dev=none value=0000000e.0000000e.0000000e.0000000e.0000000e.0000000e name='virtual-dma' type=int items=2 dev=none value=c0000000.20000000 name='target' type=int items=1 value=0000000f name='class' type=string items=1 value='scsi' pci1214,334 (driver not attached) SUNW,UltraSPARC-IIi (driver not attached) pseudo, instance #0 System properties: name='class' type=string items=1 value='root'

Exemple :
# prtconf p System Configuration: Sun Microsystems sun4u Memory size: 512 Megabytes System Peripherals (PROM Nodes): Node 'SUNW,Ultra-5_10' Node 'packages' Node 'terminal-emulator' Node 'deblocker' Node 'obp-tftp' Node 'disk-label' Node 'SUNW,builtin-drivers' Node 'sun-keyboard' Node 'ufs-file-system' Node 'chosen' Node 'openprom' Node 'client-services' Node 'options' Node 'aliases' Node 'memory' Node 'virtual-memory' Node 'pci' Node 'pci' Node 'ebus' Node 'auxio' Node 'power' Node 'SUNW,pll' Node 'se' Node 'su' Node 'su'

118

Node 'ecpp' Node 'fdthree' Node 'eeprom' Node 'flashprom' Node 'SUNW,CS4231' Node 'network' Node 'SUNW,m64B' Node 'ide' Node 'disk' Node 'cdrom' Node 'pci' Node 'pci' Node 'pci108e,1000' Node 'SUNW,hme' Node 'SUNW,isptwo' Node 'sd' Node 'st' Node 'pci1214,334' Node 'SUNW,UltraSPARC-IIi'

Exemple :
# prtconf P System Configuration: Sun Microsystems sun4u Memory size: 512 Megabytes System Peripherals (Software Nodes): SUNW,Ultra-5_10 packages (driver not attached) terminal-emulator (driver not attached) deblocker (driver not attached) obp-tftp (driver not attached) disk-label (driver not attached) SUNW,builtin-drivers (driver not attached) sun-keyboard (driver not attached) ufs-file-system (driver not attached) chosen (driver not attached) openprom (driver not attached) client-services (driver not attached) options, instance #0 aliases (driver not attached) memory (driver not attached) virtual-memory (driver not attached) pci, instance #0 pci, instance #0 ebus, instance #0 auxio (driver not attached) power, instance #0 SUNW,pll (driver not attached) se, instance #0 su, instance #0 su, instance #1 ecpp (driver not attached) fdthree, instance #0 eeprom (driver not attached) flashprom (driver not attached) SUNW,CS4231 (driver not attached) network, instance #0

119

SUNW,m64B, instance #0 ide, instance #0 disk (driver not attached) cdrom (driver not attached) dad, instance #0 dad, instance #1 dad, instance #2 sd, instance #15 pci, instance #1 pci, instance #0 pci108e,1000 (driver not attached) SUNW,hme, instance #1 sy, instance #0 vol, instance #0 ptm, instance #0 pts, instance #0 logindmux, instance #0 devinfo, instance #0 openeepr, instance #0

3. La commande : modinfo
La commande : modinfo affiche tous les pilotes actuellement chargs sur le Systme d'Exploitation. Syntaxe : modinfo

Options Description -c Affiche les modules chargs (et leur tat actuel) -w Ne tronque pas les lignes de plus de 80 caractres -i module-id Affiche seulement les informations du module spcifi

Exemple :
# modinfo Id Loadaddr 6 117e000 8 1183ba8 9 1186d20 10 1186db0 11 11b925e 12 11b937e 13 11baaab 145 780cd06f 146 7811a871 147 12ed8dd 148 1201180 148 1201180 149 780e47a8 150 12eb241 Size Info Rev Module Name 43db 1 1 specfs (filesystem for specfs) 38dc 1 1 TS (time sharing sched class) 8dc 1 TS_DPTBL (Time sharing dispatch table) 34f06 2 1 ufs (filesystem for ufs) 1c7 1 fssnap_if (File System Snapshot Interface) 1b3a 1 1 rootnex (sun4u root nexus 1.95) 210 57 1 options (options driver) d36 1617 2a5 10b7 10b7 193c 1e20 24 21 22 207 207 23 4 1 1 1 1 1 1 1 pts (Slave Stream Pseudo Terminal dr) ptem (pty hardware emulator) redirmod (redirection module) pset (processor sets) pset (32-bit pset(2) syscall) telmod (telnet module) logindmux (logindmux driver 1.24) State UNLOADED/UNINSTALLED UNLOADED/UNINSTALLED

# modinfo -c Id Loadcnt Module Name 1 0 krtld 2 0 genunix

120

3 4 5 6 7 144 145 146 147 148 149 150

0 0 0 1 1 1 1 1 1 1 1 1

platmod SUNW,UltraSPARC-IIi cl_bootstrap specfs swapgeneric ptm pts ptem redirmod pset telmod logindmux

UNLOADED/UNINSTALLED UNLOADED/UNINSTALLED UNLOADED/UNINSTALLED LOADED/INSTALLED UNLOADED/UNINSTALLED LOADED/INSTALLED LOADED/INSTALLED LOADED/INSTALLED LOADED/INSTALLED LOADED/INSTALLED LOADED/INSTALLED LOADED/INSTALLED

# modinfo i 120 Id Loadaddr Size Info Rev 120 780a4000 2b550 106 120 780a4000 2b550 106 120 780a4000 2b550 8 120 780a4000 2b550 7 120 780a4000 2b550 16

Module Name 1 nfs (NFS syscall, client, and common) 1 nfs (NFS syscall, client, and common) 1 nfs (network filesystem) 1 nfs (network filesystem version 2) 1 nfs (network filesystem version 3)

4. La commande : modload
La commande : modload permet de charger un pilote Syntaxe : Exemple :
# modinfo | tail 142 1316531 109 143 780fa692 1b10 144 7814b232 d34 145 780cd06f d36 146 7811a871 1617 147 12ed8dd 2a5 148 1201180 10b7 148 1201180 10b7 149 780e47a8 193c 150 12eb241 1e20 3 20 23 24 21 22 207 207 23 4 1 1 1 1 1 1 1 1 1 1 IA (interactive scheduling class) hwc (streams module for hardware cur) ptm (Master streams driver 'ptm' 1.4) pts (Slave Stream Pseudo Terminal dr) ptem (pty hardware emulator) redirmod (redirection module) pset (processor sets) pset (32-bit pset(2) syscall) telmod (telnet module) logindmux (logindmux driver 1.24)

modload filename

# cd /usr/kernel/drv # ls | grep v ".conf" -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys 133 166 143 135 221 165 150 129 131 131 792 169 169 avr avr avr avr avr avr avr avr avr avr oct dc dc 6 6 6 6 6 6 6 6 6 6 9 29 29 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 2003 2001 2001 dump.conf fssnap.conf kstat.conf ksyms.conf llc2.conf lockstat.conf logindmux.conf pm.conf ptm.conf pts.conf rsm.conf screen_ipsec.conf screen_skip.conf

121

-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--

1 1 1 1 1

root root root root root

sys sys sys sys sys

163 avr 174 avr 130 avr 87 avr 139 avr

6 6 6 6 6

2002 2002 2002 2002 2002

sppp.conf sppptun.conf tnf.conf vol.conf winlock.conf

# modload llc2 # modinfo | tail 142 1316531 109 143 780fa692 1b10 144 7814b232 d34 145 780cd06f d36 146 7811a871 1617 147 12ed8dd 2a5 148 1201180 10b7 148 1201180 10b7 149 780e47a8 193c 150 12eb241 1e20 151 132e60f 25caf

3 20 23 24 21 22 207 207 23 4 225

1 1 1 1 1 1 1 1 1 1 1

IA (interactive scheduling class) hwc (streams module for hardware cur) ptm (Master streams driver 'ptm' 1.4) pts (Slave Stream Pseudo Terminal dr) ptem (pty hardware emulator) redirmod (redirection module) pset (processor sets) pset (32-bit pset(2) syscall) telmod (telnet module) logindmux (logindmux driver 1.24) llc2 (SUN LLC2 Class II Streams Drive)

5. La commande : modunload
La commande : unload permet de dcharger un pilote, elle supprime aussi l'attachement du pilote au priphrique. Syntaxe : modunload -i nmodule
Options

Description nmodule Indique le module dcharger

Exemple :
# modinfo | tail 142 1316531 109 143 780fa692 1b10 144 7814b232 d34 145 780cd06f d36 146 7811a871 1617 147 12ed8dd 2a5 148 1201180 10b7 148 1201180 10b7 149 780e47a8 193c 150 12eb241 1e20 151 132e60f 25caf # modunload i 151 # modinfo | tail 142 1316531 109 143 780fa692 1b10 144 7814b232 d34 145 780cd06f d36 146 7811a871 1617 147 12ed8dd 2a5 148 1201180 10b7 148 1201180 10b7 149 780e47a8 193c 150 12eb241 1e20 3 20 23 24 21 22 207 207 23 4 225 1 1 1 1 1 1 1 1 1 1 1 IA (interactive scheduling class) hwc (streams module for hardware cur) ptm (Master streams driver 'ptm' 1.4) pts (Slave Stream Pseudo Terminal dr) ptem (pty hardware emulator) redirmod (redirection module) pset (processor sets) pset (32-bit pset(2) syscall) telmod (telnet module) ogindmux (logindmux driver 1.24) llc2 (SUN LLC2 Class II Streams Drive)

3 20 23 24 21 22 207 207 23 4

1 1 1 1 1 1 1 1 1 1

IA (interactive scheduling class) hwc (streams module for hardware cur) ptm (Master streams driver 'ptm' 1.4) pts (Slave Stream Pseudo Terminal dr) ptem (pty hardware emulator) redirmod (redirection module) pset (processor sets) pset (32-bit pset(2) syscall) telmod (telnet module) ogindmux (logindmux driver 1.24)

122

3. Installation des fichiers tar.gz


Nous avons choisi d'installer une application ayant comme extension : tar.gz car nous allons dcompresser les sources de cette application. En faisant cela, nous allons optimiser cette application pour notre architecture car lors de la compilation des sources, le Systme d'Exploitation va prendre automatiquement les informations ncessaires cette installation.

1. Rcupration des sources de l'application : Webmin


L'application : Webmin permet d'administrer un Systme Unix partir d'un navigateur qu'il soit local ou distant. Nous allons donc installer cette application sur le serveur.
# mkdir /Source # chmod 700 /Source # ls ld /Source drwx------ 2 root other

512 juil 24 12:06 /Source

# mv webmin-1.200.tar.gz /Source/. # cd /Source # ls l -rwxr--r-- 1 root other 7835665 avr 28 2005 webmin-1.200.tar.gz # gunzip webmin-1.200.tar.gz -rwxr--r-- 1 root other 32266240 avr 28 2005 webmin-1.200.tar # tar xvf webmin-1.200.tar x webmin-1.200, 0 bytes, 0 blocs de bande x webmin-1.200/config.cgi, 1377 bytes, 3 blocs de bande x webmin-1.200/config-cobalt-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-coherent-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-corel-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-debian-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-generic-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-gentoo-linux, 246 bytes, 1 blocs de bande x webmin-1.200/config-mandrake-linux, 246 bytes, 1 blocs de bande x webmin-1.200/ipfilter/convert.cgi, 347 bytes, 1 blocs de bande x webmin-1.200/ipfilter/apply.cgi, 214 bytes, 1 blocs de bande x webmin-1.200/ipfilter/unapply.cgi, 241 bytes, 1 blocs de bande x webmin-1.200/ipfilter/setup.cgi, 5635 bytes, 12 blocs de bande x webmin-1.200/ipfilter/CHANGELOG, 211 bytes, 1 blocs de bande x webmin-1.200/ipfilter/log_parser.pl, 580 bytes, 2 blocs de bande x webmin-1.200/ipfilter/install_check.pl, 381 bytes, 1 blocs de bande x webmin-1.200/ipfilter/backup_config.pl, 604 bytes, 2 blocs de bande x webmin-1.200/ipfilter/config-solaris-10-*, 132 bytes, 1 blocs de bande # ls l drwxr-xr-x 108 3001 staff 4096 avr 11 2005 webmin-1.200 -rwxr--r-- 1 root other 32266240 avr 28 2005 webmin-1.200.tar

Nous avons dcompress les sources de cette applications, maintenant passons l'installation de celle-ci.

123

2. Installation de l'application : Webmin


# cd webmin-1.200 # more README Webmin Version 1.200 -------------------Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms, you can setup user accounts, Apache, internet services, DNS, file sharing and so on. Webmin consists of a simple web server, and a number of CGI programs which directly update system files like /etc/inetd.conf and /etc/passwd. The web server and all CGI programs are written in Perl version 5, and use only the standard perl modules. Webmin can be installed in two different ways : 1) By just running the setup.sh script in the same directory as this README file, with no arguments. You will be asked a series of questions such as the configuration directory, your chosen login name and password, and possibly your operating system. For questions where a default is shown in square brackets, you can just hit enter to accept the default (which is usually correct). # ./setup.sh **************************************************************** * Welcome to the Webmin setup script, version 1.200 * **************************************************************** Webmin is a web-based interface that allows Unix-like operating systems and common Unix services to be easily administered. Installing Webmin in /Source/webmin-1.200 ... **************************************************************** Webmin uses separate directories for configuration files and log files. Unless you want to run multiple versions of Webmin at the same time you can just accept the defaults. Config file directory [/etc/webmin]: Log file directory [/var/webmin]: **************************************************************** Webmin is written entirely in Perl. Please enter the full path to the Perl 5 interpreter on your system. Full path to perl (default /usr/bin/perl): Testing Perl ... Perl seems to be installed ok **************************************************************** Operating system name: Sun Solaris Operating system version: 9 **************************************************************** Webmin uses its own password protected web server to provide access to the administration programs. The setup script needs to know : - What port to run the web server on. There must not be another web server already using this port. - The login name required to access the web server. - The password required to access the web server. - If the webserver should use SSL (if your system supports it).

124

- Whether to start webmin at boot time. Web server port (default 10000): Login name (default admin): Login password: Password again: The Perl SSLeay library is not installed. SSL not available. Start Webmin at boot time (y/n): y **************************************************************** Creating web server config files.. ./setup.sh: openssl: introuvable ..done Creating access control file.. ..done Inserting path to perl into scripts.. ..done Creating start and stop scripts.. ..done Copying config files.. ..done Configuring Webmin to start at boot time.. Created init script /etc/init.d/webmin ..done Creating uninstall script /etc/webmin/uninstall.sh .. ..done Changing ownership and permissions .. ..done Running postinstall scripts .. ..done Attempting to start Webmin mini web server.. Starting Webmin server in /Source/webmin-1.200 ..done **************************************************************** Webmin has been installed and started successfully. Use your web browser to go to http://solaris:10000/ and login with the name and password you entered previously.

Nous pouvons maintenant utiliser n'importe quel navigateur pour valider l'adresse indique : http://solaris:10000/, nous obtenons donc ceci :

125

Il ne nous reste plus qu'a rentr le login : admin, et le mot de passe, et nous accder directement l'application : webmin qui est un logiciel permettant d'administrer le serveur depuis un navigateur.

Voici un exemple de ce que l'on peut obtenir avec cette application :

126

Chapitre 9: La gestion du Systme et des priphriques 1. Informations sur le systme et les priphriques
Il existe des commandes qui permettent d'obtenir des informations utiles sur le Systme d'Exploitation. A dfaut d'tre fondamentales pour l'administration, elles participent souvent la connaissance globale du systme que l'on administre.

1. La commande : uname
La commande : uname permet d'obtenir des informations sur le Systme d'Exploitation (tel que le nom, la version, la type de processeur, etc.) Syntaxe :
Options -a -i -m -n -p -r -s -v -X -S nom

uname [-aimnprsvX] uname [-S nom]


Description Affiche les informations de base actuellement disponible du systme. Affiche le type de plateforme. Affiche la classe de la machine, utilisez maintenant l'option : -p Affiche le nom de la machine avec lequel elle est reconnue sur le rseau. Affiche le type de processeur. Affiche la version du Systme d'Exploitation Affiche le nom du Systme d'Exploitation Affiche le nom de la version du Systme d'Exploitation Affiche une information par ligne Permet de changer le nom de la machine (voir option : -n). Mais ne restera pas la rinitialisation du systme (pour cela, utilisez la commande : unconfig).

Exemple :
# uname -a SunOS solaris 5.9 Generic_118558-11 sun4u sparc SUNW,Ultra-5_10 # uname -i SUNW,Ultra-5_10 # uname -m sun4u # uname -n solaris # uname -p sparc # uname -r 5.9 # uname -s SunOS # uname -v

127

Generic_118558-11

2. La commande : what
La commande : what permet d'extraire les informations SCCS (Source Core Control System) d'un fichier. Des informations telle que la date de production, la version de la commande, etc. Syntaxe :
Options -s

/usr/ccs/bin/what [-s] fichier


Description S'arrte la premire occurrence trouve.

Exemple :
# /usr/ccs/bin/what /usr/bin/ksh /usr/bin/ksh: Version M-11/16/88i SunOS 5.9 Generic 112964-13 Apr 2005 # /usr/ccs/bin/what /usr/bin/bash /usr/bin/bash: Bash version 2.05.0(1) release GNU SunOS 5.9 Generic May 2002 # /usr/ccs/bin/what /kernel/genunix /kernel/genunix: SunOS 5.9 Generic 118558-11 Jul 2005 # /usr/ccs/bin/what /kernel/drv/scsi_vhci /kernel/drv/scsi_vhci: SunOS 5.9 Generic May 2002 # /usr/ccs/bin/what /kernel/drv/screen /kernel/drv/screen: screen_driver.c 3.43 03/09/12 types.h 1.51 97/05/06 feature_tests.h 1.13 97/06/26 isa_defs.h 1.11 97/03/21 machtypes.h 1.11 96/04/29 int_types.h 1.4 96/09/25 select.h 1.11 96/06/20 errno.h 1.16 95/07/04 debug.h 1.18 96/02/07 stropts.h 1.32 97/03/03 conf.h 1.53 97/05/09 t_lock.h 1.43 97/04/04 machlock.h 1.15 97/04/04 sleepq.h 1.19 97/04/04 turnstile.h 1.30 97/04/23 param.h 1.48 97/06/26 pirec.h 1.12 97/03/14 ......... poll.h 1.24 97/04/18 strmdep.h 1.8 92/07/14 model.h 1.1 96/09/24 byteorder.h 1.11 96/09/08 screen_ioctl.h 3.16 01/08/15

Sun Microsystems SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI SMI Sun Microsystems

128

screen_stats.h screen_ts.h

3.3 1.7

02/08/14 01/03/12

Sun Microsystems Sun Microsystems

3. La commande : dmesg
La commande : dmesg affiche toutes les informations prsentes sur la console lors du dmarrage du Systme. Ces informations sont prsentes dans le fichier : /var/adm/messages. Ce fichier est automatiquement mis jour chaque dmarrage. Syntaxe : Exemple :
# dmesg dimanche, 23 juillet 2006, 01:05:32 CEST Jul 22 01:42:00 solaris hme: [ID 517527 kern.info] SUNW,hme1 : Local Ethernet address = 8:0:20:c5:c1:1e Jul 22 01:42:00 solaris pci_pci: [ID 370704 kern.info] PCI-device : SUNW,hme@0,1, hme1 Jul 22 01:42:00 solaris genunix: [ID 936769 kern.info] hme1 is /pci@1f,0/pci@1/pci@2/SUNW,hme@0,1 Jul 22 01:42:03 solaris genunix: [ID 454863 kern.info] dump on /dev/dsk/c0t0d0s1 size 512 MB Jul 22 01:42:03 solaris hme: [ID 517527 kern.info] SUNW,hme0 : Internal Transceiver Selected. Jul 22 01:42:03 solaris hme: [ID 517527 kern.info] SUNW,hme0 : 100 Mbps Full-Duplex Link Up Jul 22 01:42:06 solaris pseudo: [ID 129642 kern.info] pseudo-device: devinfo0 Jul 22 01:42:06 solaris genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0 Jul 22 01:42:15 solaris root: [ID 702911 daemon.error] CAPTURE_UPTIME ERROR: /var/opt/SUNWsrsrp missing Jul 22 01:42:16 solaris genunix: [ID 454863 kern.info] dump on /usr/swapfile size 500 MB Jul 22 01:42:17 solaris pseudo: [ID 129642 kern.info] pseudo-device: tod0 Jul 22 01:42:17 solaris genunix: [ID 936769 kern.info] tod0 is /pseudo/tod@0 Jul 22 01:42:17 solaris pseudo: [ID 129642 kern.info] pseudo-device: pm0 Jul 22 01:42:17 solaris genunix: [ID 936769 kern.info] pm0 is /pseudo/pm@0 Jul 22 01:42:17 solaris sendmail[303]: [ID 702911 mail.crit] My unqualified host name (solaris) unknown; sleeping for retry Jul 22 01:42:17 solaris sendmail[304]: [ID 702911 mail.crit] My unqualified host name (solaris) unknown; sleeping for retry Jul 22 01:42:23 solaris pseudo: [ID 129642 kern.info] pseudo-device: vol0 Jul 22 01:42:23 solaris genunix: [ID 936769 kern.info] vol0 is /pseudo/vol@0 Jul 22 01:42:23 solaris pci_pci: [ID 370704 kern.info] PCI-device: SUNW,isptwo@4, isp0 Jul 22 01:42:23 solaris genunix: [ID 936769 kern.info] isp0 is /pci@1f,0/pci@1/pci@2/SUNW,isptwo@4 Jul 22 01:42:23 solaris scsi: [ID 365881 kern.info] /pci@1f,0/pci@1/pci@2/SUNW,isptwo@4 (isp0): Jul 22 01:42:23 solaris Firmware Version: v4.66, Customer: 0, Product: 4 Jul 22 01:42:24 solaris scsi: [ID 193665 kern.info] sd15 at uata0: target 2 lun 0 Jul 22 01:42:24 solaris genunix: [ID 936769 kern.info] sd15 is /pci@1f,0/pci@1,1/ide@3/sd@2,0

/usr/bin/dmesg /usr/sbin/dmesg

129

Jul 22 01:42:25 solaris ebus: [ID 521012 kern.info] se0 at ebus0: offset 14,400000

4. Le fichier : /etc/syslog.conf
Le dmon : syslogd rcupre les messages d'erreurs venant du Noyau ou de dmons de certains services (sous-systmes). Ceux-ci vont tre redirig selon les directives du fichier : /etc/syslog.conf (selon le sous-systme et son degr de svrit), afin de laisser une trace dans un log, d'avertir l'administrateur, etc. Exemple :
# more /etc/syslog.conf #ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */ # # Copyright (c) 1991-1998 by Sun Microsystems, Inc. # All rights reserved. # # syslog configuration file. # # This file is processed by m4 so be careful to quote (`') names # that match m4 reserved words. Also, within ifdef's, arguments # containing commas must be quoted. # *.err;kern.notice;auth.notice /dev/sysmsg *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err *.alert *.emerg operator root *

# if a non-loghost machine chooses to have authentication messages # sent to the loghost machine, un-comment out the following line: #auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost) mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost) # # non-loghost machines will use the following lines to cause "user" # log messages to be logged locally. # ifdef(`LOGHOST', , user.err /dev/sysmsg user.err /var/adm/messages user.alert `root, operator' user.emerg * )

a. Structure du fichier
Chaque ligne correspond une re-direction dtermine (action). Par contre, vous pouvez avoir plusieurs sous-systmes correspondant cette action (sparateur ;). Le degr de svrit accompagne chaque sous-systme (par l'intermdiaire d'un point). Le regroupement d'un sous-systme avec un niveau de svrit se nomme : priorit.

130

Sous-systme.niveau (priorit)

action

b. Fonctionnement du fichier
Nous allons tudier deux lignes de ce fichier pour mieux comprendre le fonctionnement de ce fichier.
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages

La ligne peut-tre dcompose comme ceci :


Priorit *.err kern.debug daemon.notice mail.crit Description Erreur de fonctionnement pour tous les sous-systmes (correspondant au caractre : *) Mise au point du Noyau Evnement normal sur les dmons du Systme Erreur critique pour le sous-systme de messagerie

Tous les messages venant de ces priorits seront redirigs vers le fichier : /var/adm/messages.
*.alert root

La ligne peut-tre dcompose comme ceci :


Priorit *.alert Description Intervention immdiate est indispensable pour tous les sous-systmes.

Tous les messages venant de cette priorit seront redirigs root.

c. Les priorits et sous-systmes


Voici les deux tableaux qui dcrivent les priorits et les niveaux de svrit.
Priorit auth cron daemon kern lpr mail news syslog user uucp Niveau emerg alert crit err Description Le service de scurit et d'authentification Le service : cron Les dmons du systme tel ftpd (in.ftpd) Le noyau Le service d'impression Le service de messagerie Le systme de nouvelles USERNET Le dmon syslog lui-mme Messages envoys par les processus des Utilisateurs Le sous-systme uucp Description Le Systme est inutilisable Une intervention immdiate est indispensable Erreur critique pour le sous-systme Erreur de fonctionnement

131

warning notice info debug none

Avertissement Evnement normal mais qui mrite d'tre signal Pour information seulement Message envoy pour la mise au point Ignorer les messages

2. Les fichiers spciaux


Chaque priphrique Unix (lecteur de disquette, disque dur, lecteur de cd-rom, etc.) est accessible l'aide de fichiers spciaux. Ceux-ci font appel des pilotes permettant de grer ces priphriques.

1. Structure d'un fichier spcial


Pour mieux comprendre la structure interne d'un fichier spcial, nous allons prendre l'exemple du fichier permettant de grer le lecteur de disquette. Le nom de ce fichier spcial est : /dev/diskette. Tous les fichiers spciaux se trouvent dans le rpertoire : /dev. Exemple :
# ls l /dev/diskette lrwxrwxrwx 1 root root 54 juil 6 23:20 /dev/diskette -> ../devices/pci@1f,0/pci@1,1/ebus@1/fdthree@14,3023f0:c # cd /devices/pci\@1f,0/pci\@1,1/ebus\@1/ # ls l fdthree\@14,3023f0\:c brw-rw-rw- 1 root sys 36, 2 juil 6 23:20 fdthree@14,3023f0:c

Nous remarquons que le fichier n'a pas de taille, seulement deux valeurs la place de la taille du fichier. Ces deux valeurs correspondent aux Major et minor. Le Major indique le type de pilote (pour le priphrique) et le minor correspond aux caractristiques que le Systme devra charger pour utiliser ce priphrique. Cest par lintermdiaire de ces codes que le Noyau est capable de retrouver le gestionnaire de priphrique utiliser.

2. Les fichiers spciaux bloc


Les fichiers spciaux en mode bloc sont dsigns l'aide de la premire lettre de la ligne spcifiant le fichier spcial. En ce qui nous concerne ici, la lettre : b dsigne un fichier spcial en mode bloc. Un fichier spcial en mode bloc indique que les donnes ne peuvent tre lues que par blocs (cest le cas des disques durs, des lecteurs de disquettes, etc), car ces priphriques contiennent beaucoup dinformations et il est plus rapide de lire ces informations par blocs. Exemple :
# ls l /dev/diskette lrwxrwxrwx 1 root root 54 juil 6 23:20 /dev/diskette -> ../devices/pci@1f,0/pci@1,1/ebus@1/fdthree@14,3023f0:c # cd /devices/pci\@1f,0/pci\@1,1/ebus\@1/ # ls l fdthree\@14,3023f0:c brw-rw-rw- 1 root sys 36,2 juil 6 23:20 fdthree@14,3023f0:c

132

3. Les fichiers spciaux caractres


Les fichiers spciaux en mode caractres sont dsigns l'aide de la premire lettre de la ligne spcifiant le fichier spcial. En ce qui nous concerne ici, la lettre : c dsigne un fichier spcial en mode caractres. Ces fichiers indiquent que les donnes sont lues par caractres (cest le cas des terminaux, un seul caractre est envoy la fois). Mais ces fichiers spciaux sont aussi utiliss lors du formatage et/ou la vrification des Systmes de Fichiers (formatage et vrification par caractres). Exemple :
# tty /dev/pts/4 # ls l /dev/pts/4 lrwxrwxrwx 1 root root 28 ../../devices/pseudo/pts@0:4 mai 18 2006 /dev/pts/4 ->

# ls -l /devices/pseudo/pts\@0\:4 crw--w---- 1 root tty 24,4 janv

12

15:56 /devices/pseudo/pts@0:4

3. Les disques
Comme nous l'avons remarqu plus haut, nous avons deux rpertoires pour ce qui concernent les disques durs.
Rpertoires /dev/dsk dev/rdsk Description Accs aux disques en mode : - bloc Accs aux disques en mode : - bloc - brut (par blocs de 512 octets, moins pratique, mais plus rapide)

1. Contrleur direct
Pour ce contrleur, le ou les disques sont directement connects sur la carte mre, nous pouvons prendre l'exemple des disques de type IDE.

a. Architecture SPARC
Syntaxe :
Indices x y z

/dev/[r]dsk/cxdysz
Description Numro logique du contrleur Numro du disque Numro de la partition Solaris (0 7)

Exemple :
# ls l /dev/dsk/c0t0d0s7

133

lrwxrwxrwx 1 root root 46 juil 6 23:20 /dev/dsk/c0t0d0s7 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:h # ls l /dev/rdsk/c0t0d0s7 lrwxrwxrwx 1 root root 50 juil 6 23:20 /dev/rdsk/c0t0d0s7 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:h,raw

b. Architecture x86
Nous devons vous prvenir qu'il existe deux syntaxes diffrentes pour cette architecture : Pour les partitions principales (de 1 4) Pour les partitions contenues dans la partition Solaris (voir cration d'une partition Solaris) /dev/[r]dsk/cwdxpz

Premire syntaxe :
Indices w x z

Description Numro logique du contrleur Numro du disque Numro de la partition PC (commande : fdisk) (1 4), la partition 0 reprsente l'ensemble de tout le disque

Deuxime syntaxe : /dev/[r]dsk/cwdxsy


Indices w x y Description Numro logique du contrleur Numro du disque Numro de la partition Solaris (0 9)

Exemple :
# ls /dev/dsk/c?d?p? c0d0p0 c0d0p1 c0d0p2 c0d0p3 c0d0p4 # ls /dev/dsk/c?d?s? c0d0s0 c0d0s1 c0d0s2 c0d0s3 c0d0s4 c0d0s5 c0d0s6 c0d0s7 c0d0s8 c0d0s9

2. Contrleur indirect

134

Nous pouvons aussi parler de contrleur orient bus, car ce type de contrleur utilise des systmes indpendants pour accder aux disques, nous pouvons prendre l'exemple des disques de type SCSI.

a. Architecture SPARC
Syntaxe :
Indices w x y z

/dev/[r]dsk/cwtxdysz
Description Numro logique du contrleur Numro de l'unit logique SCSI Numro du disque Numro de la partition Solaris (0 7)

Exemple :
# ls /dev/dsk/c?t?d?s? c1t0d0s0 c1t0d0s1 c1t0d0s2 c1t0d0s3 c1t0d0s4 c1t0d0s5 c1t0d0s6 c1t0d0s7 c1t0d0s8 c1t0d0s9

b. Architecture x86
Nous avons aussi pour cette architecte deux syntaxes diffrentes (voir l'architecture x86 pour les contrleurs directs). Premire syntaxe :
Indices w x y t

/dev/[r]dsk/cwtxdypt

Description Numro logique du contrleur Numro de l'unit logique SCSI Numro du disque Numro de la partition PC (commande : fdisk) (1 4), la partition 0 reprsente l'ensemble de tout le disque

Deuxime syntaxe : /dev/[r]dsk/cwtxdysz


Indices w x y z Description Numro logique du contrleur Numro de l'unit logique SCSI Numro du disque Numro de la partition Solaris (0 7)

Exemple :
# ls /dev/dsk/c?t?d?p?

135

c1t0d0p0 c1t0d0p1 c1t0d0p2 c1t0d0p3 c1t0d0p4 # ls /dev/dsk/c?t?d?s? c1t0d0s0 c1t0d0s1 c1t0d0s2 c1t0d0s3 c1t0d0s4 c1t0d0s5 c1t0d0s6 c1t0d0s7 c1t0d0s8 c1t0d0s9

136

index
/etc/group ...........................................11, 12 /etc/inittab ................................................78 /etc/mntab ................................................50 /etc/motd .................................................33 /etc/printers.conf ......................................94 /etc/skel .............................................31, 32 /etc/syslog.conf ......................................130 /etc/user_attr ............................................32 /etc/vfstab ........................47, 48, 49, 58, 64 /usr/include/limits.h ...............................31 accept .......................................................95 acctadm..................................................105 cancel .......................................................97 chgrp ........................................................40 chown ......................................................40 cron.allow ..............................................109 cron.deny ...............................................109 crontab ...........................................106, 109 df 65, 66, 67 df -k ........................................................50 disable......................................................95 dmesg ....................................................129 edquota ....................................................70 enable ......................................................95 export .......................................................24 format ......................................................51 fuser .........................................................68 grpck ........................................................14 halt ...........................................................88 init ...........................................................78 last ......................................................... 102 lastcomm ............................................... 104 lpadmin ................................................... 93 lpmove ...................... 98, 99, 111, 112, 113 lpsched .................................................... 93 lpshut....................................................... 92 lpstat ................ 96, 113, 115, 120, 121, 122 mkfile ...................................................... 61 modunload ............................................ 122 more .......................... 15, 16, 17, 19, 20, 21 mount ...................................................... 46 mountall .................................................. 49 newfs ....................................................... 56 passwd..................................................... 18 poweroff .................................................. 87 pwck ........................................................ 13 quota ....................................................... 71 quotacheck .............................................. 72 quotaon ................................................... 71 reboot ...................................................... 88 reject ....................................................... 95 repquota .................................................. 71 shutdown ................................................. 88 swap ........................................................ 60 umount .................................................... 49 uname .................................................... 127 utmpx .................................................. 101 what....................................................... 128 who ........................................................ 81 wtmpx ................................................. 101

137