Administration système
1 Introduction
1.1 Objectifs de l'ingénieur système
-
Gestion des comptes utilisateurs.
- Installation des logiciels.
- Maximiser l'utilisation des ressources.
- Assurer la sécurité des données.
- Architecturer le réseau :
-
pour une communication maximale ;
- pour minimiser la congestion ;
- pour sécuriser le réseau.
- Gérer un parc hétérogène ...
- ... mais donner une interface standard.
- Ne pas trop s'épuiser pour ...
- ... rester calme face aux utilisateurs.
- La dure réalité :
-
50% du temps en assistance utilisateurs ;
- 25% du temps en négociations avec la direction ;
- 20% du temps en installation ;
- 5% du temps en veille technologique.
1.2 Les différents systèmes d'exploitation
-
Les systèmes propriétaires : OS/400, VMS, MACOS, ...
- Les Windows :
- Les Unix :
- Une image instantanée des systèmes d'exploitation :
http://srom.zgp.org/.
2 Amorçage d'un système d'exploitation
2.1 Principes d'amorçage d'un OS
-
Le moniteur :
-
détecte, vérifie les périphériques ;
- lance le chargeur secondaire d'une unité ;
- passe des paramètres au chargeur secondaire.
- Le chargeur secondaire :
-
localise le noyau sur l'unité ;
- charge le noyau et lui passe le contrôle.
- Le noyau :
-
activation du processus 0 (swapper) ;
- activation du processus 1 (init) ;
- niveaux de fonctionnement BSD :
-
simple-utilisateur ;
- multi-utilisateur.
- niveaux de fonctionnement SYSV :
-
simple-utilisateur (S) ;
- multi-utilisateur sans réseau (2) ;
- multi-utilisateur avec réseau (3).
2.2 Principes d'amorçage : Exemples
-
Amorce principale (1er secteur du disque) :
- Amorce de partition DOS :
- Actions de l'amorce DOS :
-
localiser les fichiers IO.SYS et MSDOS.SYS ;
- déroutement sur le code de ces fichiers ;
- chargement et exécution de COMMAND.COM.
- Actions de l'amorce Linux :
-
localiser l'image du noyau (vmlinuz) ;
- décompression et chargement de l'image ;
- déroutement sur le code du noyau ;
- création du processus init ;
- lancement d'un processus de type login ;
- éventuellement lancement d'un "shell"
(e.g. /bin/sh).
2.3 Scripts de démarrage
-
Scripts pour BSD :
-
/etc/rc (configuration de base) ;
- /etc/rc.local (démons et personnalisation).
- Scripts pour SYSV :
-
/etc/inittab (configuration suivant niveau) ;
- /etc/rc<n>.d/ (configuration niveau <n>) ;
- des fichiers S<no><com> et K<no><com> ;
- en fait des liens vers /etc/init.d/.
- Des outils de maintenance :
2.4 Installation d'un service sous Windows XP
-
Tout se configure dans le registre :
- Installation d'un service en dessins :
- Contrôle du service :
3 Virtualisation de systèmes d'exploitation
3.1 Définition de la virtualisation
-
Techniques matérielles et logicielles.
- Permet de faire tourner sur UNE seule machine ...
- ... plusieurs systèmes d'exploitation
- Les systèmes d'exploitation (SE) sont isolés.
3.2 Utilisations de la virtualisation
-
Utilisation de logiciels propriétaires :
-
en théorie l'émulation de bibliothéque suffit (wine),
- en pratique difficile d'émuler un SE propriétaire.
- Accélère le développement système.
- Meilleur deverminage et étude (e.g. virus).
- Serveurs privés chez les hébergeurs.
- Cohabitation de systèmes récents et anciens.
- Migration et reconstruction facile de serveurs.
3.3 Types de virtualisation
-
Emulation complète :
-
le CPU est entiérement émulé ;
- émulation du matériel (disque, etc).
- Virtualisation matérielle :
-
instructions classique :
-
code exécuté au maximum sur le CPU hôte,
- émulation du matériel (disque, etc).
- instructions spécifiques :
-
protection mémoire du SE virtuel gérée par le CPU,
- entrées/sorties du SE virtuel gérées par le CPU,
- émulation du matériel (disque, etc).
- Para-virtualisation :
-
le SE virtuel est modifié pour effectuer des hyper-appels,
- un appel système cible le noyau du SE virtuel,
- un hyper-appel traverse le noyau et abouti à l'hyperviseur,
- les tâches critiques sont exécutées en mode noyau par l'hyperviseur.
- Virtualisation au niveau système :
-
exécution en parallèle du même système d'exploitation,
- partionnement des SE avec une méthode du type chroot,
- les processus des SE virtuels sont des processus normaux,
- pratiquement aucune surchage, le SE doit être modifié.
3.4 Logiciels de virtualisation
-
Emulation complète : Bosch (http://bochs.sourceforge.net/).
- Virtualisation matérielle :
-
compilation au vol : Virtual PC.
- ré-écriture de code sensible : VMWare.
- instructions spécifiques : KVM.
- Para-virtualisation : Xen.
- Virtualisation au niveau système : Linux-VServer.
3.5 Etude d'un système de virtualisation totale
-
Le système Kernel-based Virtual Machine (KVM).
- Compiler le module noyau (AMD ou intel).
- Créer un disque virtuel.
- Installer le SE virtuel (e.g. image ISO émulant un lecteur CD).
3.6 Etude d'un système de virtualisation totale
-
Le système Xen en mode Hardware Virtual Machine (HVM).
- Créer un disque virtuel.
- Installer le SE virtuel (e.g. image ISO émulant un lecteur CD).
- Utilisation d'un serveur VNC.
- Definition de SE virtuel HVM (e.g. /etc/xen/scratch.cfg) :
kernel = '/usr/lib/xen-default/boot/hvmloader'
builder = 'hvm'
memory = '1024'
disk = [
'file:/usr/local/src/debian-testing-i386-netinst.iso,hdc:cdrom,r',
'file:/usr/local/xen/domains/simplet/simplet_disk.img,ioemu:sda,w',
]
boot = 'd'
name = 'scratch'
vif = [ 'bridge=eth1' ]
vnc = 1
vnclisten = "0.0.0.0"
3.7 Etude d'un système de para-virtualisation
-
Le système Xen (l'éthymologie viendrait de Zen).
- Paquetages Debian nécessaires :
-
libc6-xen : bibliothèque système optimisée pour Xen,
- linux-image-2.6.26-2-xen-686 : noyau Linux avec hyper-appels,
- xen-hypervisor-3.2-1-i386 : contrôle CPU et mémoire,
- xen-utils-3.2-1 : utilitaires de gestion des SE virtuels.
- Une terminologie spécifique :
-
le Dom0 est le système d'exploitation hôte,
- les DomU sont les systèmes d'exploitation virtualisés.
- Interfaces réseau à base de bridge logiciel :
-
des cartes ethernet renommées pethY dans l'hôte,
- des cartes ethernet ethX dans les SE virtuels,
- cartes correspondant aux interfaces vifZ.0 de l'hôte,
- certaines vifZ.0 se retrouvent dans le même bridge,
- le bridge comporte aussi une carte ethernet de l'hôte,
- le nom du bridge est celui de la carte de l'hôte : ethY.
- Script de configuration réseau dans /etc/xen/xend-config.sxp :
...
(network-script 'network-bridge netdev=eth0')
...
- Definition de SE virtuel (e.g. /etc/xen/fourmies.cfg) :
kernel = '/boot/vmlinuz-2.6.26-2-xen-686'
ramdisk = '/boot/initrd.img-2.6.26-2-xen-686'
memory = '1024'
root = '/dev/sda1 ro'
disk = [
'file:/usr/local1/xen/domains/fourmies/fourmies_root.img,sda1,w',
'file:/usr/local1/xen/domains/fourmies/fourmies_swap.img,sda2,w',
'file:/usr/local1/xen/domains/fourmies/fourmies_tmp.img,sda5,w',
'file:/usr/local1/xen/domains/fourmies/fourmies_var.img,sda6,w',
'file:/usr/local1/xen/domains/fourmies/fourmies_home.img,sda7,w',
'file:/usr/local1/xen/domains/fourmies/fourmies_log.img,sda8,w',
'phy:/dev/spool1/mail-spool,sdb1,w',
'phy:/dev/spool2/mail-backup,sdc1,w'
]
name = 'fourmies'
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:52:80:93, bridge=eth1' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
extra = "xencons=tty console=tty clocksource=jiffies"
- Gestion des SE virtuels :
xm list
xm create fourmies.cfg
xm console fourmies
xm shutdown fourmies
...
4 Gestion des systèmes de fichiers
4.1 Partitionnement des disques
-
Définition : zone contiguë de secteurs.
- Table des partitions en entête du disque.
- Permet d'isoler les systèmes de fichiers.
- Parfois obligatoire :
-
disques de trop grande capacité ;
- partitions pour la zone d'échange ;
- plusieurs systèmes d'exploitation.
- Parfois utile :
-
limiter l'espace alloué à un service ;
- éviter d'exporter un disque entier ;
- utiliser une partition en lecture seulement.
4.2 Commandes de partitionnement des disques
Pas de normalisation des commandes :
-
Linux :
- fdisk :
$ fdisk
Command (m for help): p
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 126 51382+ 6 DOS 16-bit
/dev/hda2 127 127 202 31008 83 Linux native
/dev/hda3 203 203 328 51408 82 Linux swap
/dev/hda4 329 329 1010 278256 83 Linux native
- Sun :
- format :
$ format
format> partition
partition> print
partition a - starting cyl 0, # blocks 100800 (100/0/0)
partition b - starting cyl 100, # blocks 504000 (500/0/0)
partition c - starting cyl 0, # blocks 2052288 (2036/0/0)
partition d - starting cyl 1100, # blocks 201600 (200/0/0)
partition e - starting cyl 1300, # blocks 741888 (736/0/0)
partition f - starting cyl 900, # blocks 201600 (200/0/0)
partition g - starting cyl 600, # blocks 302400 (300/0/0)
partition h - starting cyl 0, # blocks 0 (0/0/0)
- Ultrix :
- chpt ;
- OSF1 :
- disklabel.
4.3 Exemple de partitionnement sous Linux
-
Partitions pour Linux.
- Partition de mémoire virtuelle (swap) :
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-823): 1
Last cylinder or +size or +sizeM or +sizeK ([1]-823): +16M
- Partition du système de fichier :
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (18-823): 18
Last cylinder or +size or +sizeM or +sizeK ([18]-823): 823
Command (m for help): p
Disk /dev/hda: 32 heads, 63 sectors, 823 cylinders
Units = cylinders of 2016 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 17 17104+ 83 Linux native
/dev/hda2 18 18 823 812448 83 Linux native
- Typage des partitions :
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): L
0 Empty 9 AIX bootable
1 DOS 12-bit FAT a OS/2 Boot Manag
2 XENIX root 40 Venix 80286
3 XENIX usr 51 Novell?
4 DOS 16-bit <32M 52 Microport
5 Extended 63 GNU HURD
6 DOS 16-bit >=32 64 Novell Netware
7 OS/2 HPFS 65 Novell Netware
8 AIX
75 PC/IX b7 BSDI fs
80 Old MINIX b8 BSDI swap
81 Linux/MINIX c7 Syrinx
82 Linux swap db CP/M
83 Linux native e1 DOS access
93 Amoeba e3 DOS R/O
94 Amoeba BBT f2 DOS secondary
a5 BSD/386 ff BBT
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)
Command (m for help): p
Disk /dev/hda: 32 heads, 63 sectors, 823 cylinders
Units = cylinders of 2016 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 17 17104+ 82 Linux swap
/dev/hda2 18 18 823 812448 83 Linux native
Command (m for help): w
4.4 Montage des systèmes de fichiers
4.5 Systèmes de fichiers réseau
4.6 Commandes de montage de système de fichiers
-
Un ensemble de commandes standard :
-
pour monter : mount ;
- pour démonter : umount ;
- pour lister : df.
- Exemples de montages manuels (linux) :
$ mount -t ext2 /dev/hda3 /
$ df /
Filesystem blocks Used Available Capacity Mounted on
/dev/hda3 288703 217129 56166 79% /
$ mount -t msdos /dev/fd0 /mnt
$ df /mnt
Filesystem blocks Used Available Capacity Mounted on
/dev/fd0 1423 207 1216 15% /mnt
- Montage automatique via un fichier :
-
en général /etc/fstab ;
- sur Solaris /etc/vfstab ;
- sur HP-UX /etc/checklist ...
- Description des champs :
-
objet à monter (e.g. fichier spécial bloc) ;
- point d'ancrage ;
- type de codage des fichiers ;
- options de montage (e.g. ro,quota,nosuid,bg) ;
- ordre de vérification.
- Exemple du /etc/fstab de weppes :
/dev/sda1 / ext2 defaults,errors=remount-ro 0 1
/dev/sda2 /usr ext2 defaults 0 2
/dev/sda9 /tmp ext2 defaults 0 2
/dev/sda10 /var ext2 defaults 0 2
/dev/fd0 /floppy auto defaults,noauto 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,noauto 0 0
/dev/sda5 none swap sw 0 0
proc /proc proc defaults 0 0
hainaut:/home /home \
nfs defaults 0 0
hainaut:/usr/local /usr/local \
nfs defaults 0 0
artois:/usr/local/services/www /usr/local/services/www \
nfs defaults 0 0
artois:/home /usr/local/services/www/users \
nfs defaults 0 0
4.7 Mise en place de quotas disque
-
Sous Linux :
- Sous NT2000 :
-
Concerne le système de fichier NTFS.
- Nouvelle propriété des lecteurs.
- De nombreuses alternatives commerciales.
- Microsoft utilise en interne ces alternatives ...
4.8 Gestion des disques sous Windows XP
-
Outil d'administration des disques :
- Partionnement et montage de système de fichiers :
4.9 Problèmes liés à l'administration des disques
-
Problème de la rigidité des systèmes classiques :
-
surdimensionnement des partitions
- sous-dimensionnement des partitions
- Problème de la lenteur des systèmes classiques :
-
accès aux disques intrinséquement lent
- augmentation de la vitesse des bus
- Problème de la fragilité des systèmes classiques :
-
destruction possible de disque
- baisse des prix des disques
- La solution est dans le regroupement de partition.
4.10 Solution : accélération et redondance
-
Notion de redondance des données :
-
ensemble de partitions identiques,
- redondance des données sur les partitions.
- Cas particulier du RAID logiciel :
-
RAID = Redundant Array of Inexpensive Disks
- Différents types de RAID :
-
RAID-0 ou linéaire => plus grande souplesse
- RAID-1 ou miroir => plus grande robustesse
- RAID-4 et RAID-5 => variantes moins couteuses
- RAID-6 => deux sommes de contrôle
4.11 Exemple de RAID logiciel (Linux)
-
Systèmes RAID logiciels de Linux :
-
Niveaux 0,1,4,5 et 6 supportés.
- Détection automatique à l'amorçage.
- Nouveaux périphériques de noms /dev/md*.
- Synchronisation en arrière-plan.
- Le disque système du serveur pevele
$ cat /etc/raidtab # version raidtools
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/sda1
raid-disk 0
device /dev/sdb1
raid-disk 1
$ cat /etc/mdadm/mdadm.conf # version mdadm
DEVICE /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
- Création d'un disque RAID de niveau 5 :
-
Confection du fichier /etc/raidtab :
raiddev /dev/md0
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/sda1
raid-disk 0
device /dev/sdb1
raid-disk 1
device /dev/sdc1
raid-disk 2
- Confection du fichier /etc/mdadm/mdadm.conf :
DEVICE /dev/sd[abc]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1
- Mise en route du disque RAID :
$ mkraid /dev/md0 # A la mode raidtools
# A la mode mdadm
$ mdadm --create /dev/md0 --level=5 \
--raid-devices 3 /dev/sda1 /dev/sdb1 /dev/sdc1 \
# A la mode mdadm
$ mkfs /dev/md0 # partie commune
$ mount /dev/md0 /mnt
$ cat /proc/mdstat
- Test de perte d'une partition physique :
$ cp /vmlinuz /mnt
$ raidsetfaulty /dev/md0 /dev/sdb1 # A la mode raidtools
$ mdadm --set-faulty /dev/md0 /dev/sdb1 # A la mode mdadm
$ cat /proc/mdstat
$ diff /vmlinuz /mnt/vmlinuz
$ umount /mnt
$ raidhotadd /dev/md0 /dev/sdb2 # A la mode raidtools
$ mdadm --remove /dev/md0 /dev/sdb1 # A la mode mdadm
$ mdadm --add /dev/md0 /dev/sdb1 # A la mode mdadm
$ cat /proc/mdstat
4.12 Exemple de RAID logiciel (Windows XP)
-
Mise en place d'un RAID-1 (miroir) :
- Mise en place d'un RAID-5 possible :
4.13 Solution : accélération et facilité d'administration
-
Notion de domaines dynamiques :
-
ensemble de partitions de disques,
- ajout et supression dynamiques.
- Notion d'ensemble de fichiers :
-
un ou plusieurs par domaine,
- montage des ensembles de fichiers.
4.14 Exemple de volume logique (Linux)
-
LVM sous Linux (Logical Volume Manager).
- Le lexique de LVM en image :
- Exemple d'initialisation de volumes physiques :
$ pvcreate /dev/hda5
$ pvcreate /dev/sdb
- Exemple de création de groupe de volumes :
$ vgcreate volume /dev/hda5 /dev/sdb
$ vgdisplay
- Exemple de création de volumes logiques :
$ lvcreate -L1G -nroot volume ; mke2fs /dev/volume/root
$ lvcreate -L500M -nvar volume ; mke2fs /dev/volume/var
$ lvcreate -L500M -ntmp volume ; mke2fs /dev/volume/tmp
- Ajout d'un volume physique :
$ pvcreate /dev/sdc
$ vgextend volume /dev/sdc
$ umount /dev/volume/root
$ lvextend -L+1G /dev/volume/root
$ resize2fs /dev/volume/root
$ mount /dev/volume/root
- Suppression d'un volume physique :
$ pvmove /dev/hda5 /dev/sdc
$ vgreduce volume /dev/hda5
4.15 Exemple de volume logique (Windows XP)
-
Création d'un RAID linéaire :
- Extension d'un RAID linéaire :
4.16 Arborescence Unix classique
-
/dev : fichiers spéciaux des périphériques.
- /etc : fichiers de configuration.
- /home et /users : répertoires utilisateurs.
- /mnt, /disk et /cdrom : points d'ancrage.
- /proc : pseudo-répertoire des processus.
- /bin et /usr/bin : binaires classiques.
- /lib et /usr/lib : bibliothèques.
- /sbin et /usr/sbin : binaires systèmes.
- /tmp et /usr/tmp : fichiers temporaires.
- /usr/man : pages de manuel.
- /usr/spool : queues d'impression, de mail, etc.
- /usr/include : fichiers d'inclusion de 'C'.
- /usr/local et /opt : nouveaux logiciels.
- /var/adm : fichiers de contrôle.
5 Gestion d'un parc de machines
5.1 La problématique
-
Plusieurs dizaines de machines physiques ...
- .. ou plusieurs centaines de serveurs virtuels.
- Un ensemble hétérogène.
- Une myriade de fichiers de configuration.
- Des chemins, des formats différents.
- Il faut assurer la cohérence :
-
changement du mot de passe uniformément ;
- mêmes UID et GID sur toutes les machines ;
- mêmes numéros de ports TCP et UDP ;
- ...
5.2 Les solutions : outil maison
-
Des solutions pour la gestion des utilisateurs
- Solution non normalisée ...
- ... mais couramment utilisée.
- Le principe :
-
des fichiers sources sur le serveur ;
- pour chaque fichier source :
-
la liste des machines cibles :
pevele:/register/machine# ls
ambre bassus01 calais
ambroise bassus02 calaisis
appert bassus03 cambraisis
astruc01 bassus04 capa01
...
- des ressources centralisées :
pevele:/register/users# ls
administratif anciens anciensGroupList
association cm2009 cm2010 cm3 cm4 cm5
diskQuota.default diskQuotaEns.default
...
- des filtres source :
pevele:/register/machine# ls /register/scripts
022makeRegisterUsers 025propagRegister
configure users
...
- des ressources locales :
pevele:/register/machine/calais/scripts/config# ls
crontab
- des filtres cibles :
pevele:/register/machine/calais/scripts# ls
005makeFilesTree 010copyConfig 010updateCrontab
020signalInetd 020signalSyslog 030makeUnixUsers
config configure users
- des restrictions d'accès ;
- exportation par une boucle et ssh.
5.3 Les solutions : cfengine
5.4 Les solutions : puppet
-
Un serveur http, les clients viennent chercher ;
- Possibilité d'inviter les clients à se reconfigurer ;
- Niveau d'abstraction (gomme les spécificités des SE) ;
- Possède son langage de description ;
- Système de dépendances entre objets ;
- Exemple :
class httpd {
package { httpd:
ensure => latest
}
configfile { "/etc/httpd/conf/httpd.conf":
source => "/httpd/httpd.conf",
mode => 644,
require => package["httpd"]
}
group { apache: gid => 48 }
user { apache:
comment => "Apache",
uid => 48,
gid => 48,
home => "/var/www",
shell => "/sbin/nologin"
}
service { httpd:
running => true,
subscribe => [ file["/etc/httpd/conf/httpd.conf"],
package["httpd"] ]
}
}
6 Gestion des utilisateurs
6.1 Création d'un compte utilisateur
-
Opération la plus fréquente.
- Opération assez complexe.
- Un exemple sous Unix :
-
Mettre à jour /etc/group :
admin:*:1000:
- Mettre à jour /etc/passwd :
rex::1003:1000:Xavier REDON:/users/admin/rex:/bin/ksh
- Changement du mot de passe :
rex:eHMeWlov.ymP6:1003:1000:Xavier REDON:/users/admin/rex:/bin/ksh
- Création du répertoire :
$ ls -lgd rex
drwxr-xr-x 9 rex admin 1024 Oct 1 16:20 /users/admin/rex
- Un exemple sous Windows :
-
Création du groupe :
net group ADMIN /add /comment:"Groupe des administrateurs"
- Création de l'utilisateur :
net user rex motdepasse /add
/fullname:"Xavier Redon"
/homedir:"\\homeserver\home\rex"
/profilepath:"\\profileserver\profiles\rex"
/scriptpath:adminconnect.bat
- Rattachement de l'utilisateur au groupe :
net group ADMIN rex /add
- Création du répertoire ...
- Un résumé en couleurs (Windows XP) :
6.2 Gestion centralisée des utilisateurs
-
Utiliser une base LDAP pour Linux :
-
option de PAM (Pluggable Authentication Modules),
- base de comptes sur le serveur ldap.eudil.fr,
- fichier central PAM/LDAP : pam_ldap.conf,
- fichiers de configuration PAM dans /etc/pam.d.
- Utiliser les contrôleurs de domaines sous Windows :
-
un serveur SAMBA sur pevele.eudil.fr,
- un compte pour chaque utilisateur EUDIL,
- un compte par machine autorisée,
- faire rentrer la station dans le domaine.
6.3 Annuaire LDAP
-
Un protocole client-serveur : RFC 2251 (LDAPv3).
- Un protocole serveur-serveur pour la duplication.
- Organisation des objets de façon hiérarchique.
- Les objets possédent des attributs (multi-)valués.
- Les attributs sont typés :
-
définition des opérateurs de comparaison :
attributetype ( 2.5.4.41 NAME 'name'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
- un mécanisme d'héritage est intégré :
attributetype ( 2.5.4.3 NAME ( 'cn' 'commonName' ) SUP name )
- Les objets sont modélisés par des classes d'objets :
-
une classe définit les attributs obligatoires :
objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY
DESC 'Abstraction of an account with POSIX attributes'
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )
- un mécanisme d'héritage est intégré :
objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL
MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $
preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
telephoneNumber $ internationaliSDNNumber $
facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $
postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) )
- l'objet racine se nomme top.
- Les classes d'objets et les types d'attributs sont référencés :
-
attribution d'un object identifier (OID) unique ;
- numéros alloués de manière hiérarchique :
préfixe OID |
Description |
2.5 |
service X500 |
2.5.4 |
types d'attributs |
2.5.6 |
classes d'objets |
1.3.6.1 |
Internet |
1.3.6.1.4.1 |
private MIBs (IANA) |
1.3.6.1.4.1.4203 |
OpenLDAP |
- les OID sont à 1000 USD piéce à l'ANSI ;
- ils sont gratuits à l'Internet Assigned Numbers Authority.
6.4 Annuaire LDAP : les fonctionnalités
-
Droits d'accés aux objets et aux attributs :
- plusieurs modes d'accés (normalisation ?) :
Droit |
Description |
None |
aucun droit |
Compare |
comparaison possible sur l'attribut |
Search |
recherche possible sur l'attribut |
Read |
droit en lecture |
Write |
création, modification et destruction d'attributs |
- Les opérations LDAP de base :
Opération LDAP |
Description |
Bind |
connexion au serveur sous un nom donné |
Unbind |
déconnexion du serveur |
Search |
recherche dans l'annuaire |
Compare |
comparaison avec la valeur d'un attribut |
Add |
ajout d'un objet |
Modify |
modification d'attributs d'un objet |
Delete |
suppression d'un objet |
Modify DN |
modification du DN d'un objet |
6.5 Annuaire LDAP : Implémentation openldap
-
Voir le site http://www.openldap.org.
- Implémente la norme LDAP version 3.
- Un serveur slapd configuré par /etc/ldap/slapd.conf.
- Exemple de régles d'accès :
access to attrs=password,cryptedPassword,NTPassword,LMPassword,userPassword
by dn="cn=admin,ou=People,o=eudil,c=fr" write
by self read
by * compare
access to attrs=telephoneNumber,roomNumber
by dn="cn=admin,ou=People,o=eudil,c=fr" write
by self write
by * read
access to attrs=noModif
by dn="cn=admin,ou=People,o=eudil,c=fr" write
by * read
access to *
by dn="cn=admin,ou=People,o=eudil,c=fr" write
by * read
- Exemple d'utilisation de ldapadd :
$ ldapadd -D "cn=root,ou=People,o=eudil,c=fr" -W <<!
dn: cn=zorro,ou=People,o=eudil,c=fr
cn: Cavalier Masqué
objectclass: top
objectclass: posixAccount
objectclass: shadowAccount
uid: zorro
uidnumber: 1234
gidnumber: 2345
loginshell: /bin/tornado
homedirectory: /home/imaEns/montrey
userpassword: {crypt}WxeGZeaVV8v4.
!
A Annexes
A.1 Messages de l'amorce d'un Linux
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Linux version 2.6.25-2-686 (Debian 2.6.25-6) (maks@debian.org) (gcc version 4.1.3 20080623 (prerelease) (Debian 4.1.2-23)) #1 SMP Fri Jun 27 03:23:20 UTC 2008
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
[ 0.000000] BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000001fe71000 (usable)
[ 0.000000] BIOS-e820: 000000001fe71000 - 000000001fe73000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000001fe73000 - 000000001fe94000 (ACPI data)
[ 0.000000] BIOS-e820: 000000001fe94000 - 000000001ff00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
[ 0.000000] BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
[ 0.000000] 0MB HIGHMEM available.
[ 0.000000] 510MB LOWMEM available.
[ 0.000000] Scan SMP from c0000000 for 1024 bytes.
[ 0.000000] Scan SMP from c009fc00 for 1024 bytes.
[ 0.000000] Scan SMP from c00f0000 for 65536 bytes.
[ 0.000000] found SMP MP-table at [c00fe710] 000fe710
[ 0.000000] Entering add_active_range(0, 0, 130673) 0 entries of 256 used
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 4096
[ 0.000000] Normal 4096 -> 130673
[ 0.000000] HighMem 130673 -> 130673
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 130673
[ 0.000000] On node 0 totalpages: 130673
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 4064 pages, LIFO batch:0
[ 0.000000] Normal zone: 988 pages used for memmap
[ 0.000000] Normal zone: 125589 pages, LIFO batch:31
[ 0.000000] HighMem zone: 0 pages used for memmap
[ 0.000000] Movable zone: 0 pages used for memmap
[ 0.000000] DMI 2.3 present.
[ 0.000000] ACPI: RSDP 000FEBA0, 0014 (r0 DELL )
[ 0.000000] ACPI: RSDT 000FD506, 0038 (r1 DELL GX60 6 ASL 61)
[ 0.000000] ACPI: FACP 000FD53E, 0074 (r1 DELL GX60 6 ASL 61)
[ 0.000000] ACPI: DSDT FFFD50FE, 2556 (r1 DELL dt_ex 1000 MSFT 100000D)
[ 0.000000] ACPI: FACS 1FE71000, 0040
[ 0.000000] ACPI: SSDT FFFD7654, 00A7 (r1 DELL st_ex 1000 MSFT 100000D)
[ 0.000000] ACPI: APIC 000FD5B2, 005C (r1 DELL GX60 6 ASL 61)
[ 0.000000] ACPI: BOOT 000FD60E, 0028 (r1 DELL GX60 6 ASL 61)
[ 0.000000] ACPI: ASF! 000FD636, 0067 (r16 DELL GX60 6 ASL 61)
[ 0.000000] ACPI: PM-Timer IO Port: 0x808
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[ 0.000000] Processor #0 15:2 APIC version 20
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] disabled)
[ 0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Enabling APIC mode: Flat. Using 1 I/O APICs
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] Allocating PCI resources starting at 20000000 (gap: 1ff00000:ded00000)
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000
[ 0.000000] PM: Registered nosave memory: 00000000000f0000 - 0000000000100000
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129653
[ 0.000000] Kernel command line: root=/dev/hda1 ro quiet
[ 0.000000] mapped APIC to ffffb000 (fee00000)
[ 0.000000] mapped IOAPIC to ffffa000 (fec00000)
[ 0.000000] Enabling fast FPU save and restore... done.
[ 0.000000] Enabling unmasked SIMD FPU exception support... done.
[ 0.000000] Initializing CPU#0
[ 0.000000] PID hash table entries: 2048 (order: 11, 8192 bytes)
[ 0.000000] Detected 2000.145 MHz processor.
[ 0.001515] Console: colour VGA+ 80x25
[ 0.001522] console [tty0] enabled
[ 0.001957] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.002656] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.004000] Memory: 508232k/522692k available (1753k kernel code, 13876k reserved, 728k data, 252k init, 0k highmem)
[ 0.004000] virtual kernel memory layout:
[ 0.004000] fixmap : 0xfff4c000 - 0xfffff000 ( 716 kB)
[ 0.004000] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
[ 0.004000] vmalloc : 0xe0800000 - 0xff7fe000 ( 495 MB)
[ 0.004000] lowmem : 0xc0000000 - 0xdfe71000 ( 510 MB)
[ 0.004000] .init : 0xc0375000 - 0xc03b4000 ( 252 kB)
[ 0.004000] .data : 0xc02b6432 - 0xc036c640 ( 728 kB)
[ 0.004000] .text : 0xc0100000 - 0xc02b6432 (1753 kB)
[ 0.004000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.004000] CPA: page pool initialized 1 of 1 pages preallocated
[ 0.084009] Calibrating delay using timer specific routine.. 4004.95 BogoMIPS (lpj=8009902)
[ 0.084076] Security Framework initialized
[ 0.084085] SELinux: Disabled at boot.
[ 0.084089] Capability LSM initialized
[ 0.084115] Mount-cache hash table entries: 512
[ 0.084367] Initializing cgroup subsys ns
[ 0.084375] Initializing cgroup subsys cpuacct
[ 0.084417] CPU: Trace cache: 12K uops, L1 D cache: 8K
[ 0.084423] CPU: L2 cache: 128K
[ 0.084426] CPU: Hyper-Threading is disabled
[ 0.084431] Intel machine check architecture supported.
[ 0.084439] Intel machine check reporting enabled on CPU#0.
[ 0.084442] CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
[ 0.084448] CPU0: Thermal monitoring enabled
[ 0.084457] Compat vDSO mapped to ffffe000.
[ 0.084469] Checking 'hlt' instruction... OK.
[ 0.100417] SMP alternatives: switching to UP code
[ 0.103143] Freeing SMP alternatives: 16k freed
[ 0.103152] ACPI: Core revision 20070126
[ 0.141613] CPU0: Intel(R) Celeron(R) CPU 2.00GHz stepping 07
[ 0.141671] Total of 1 processors activated (4004.95 BogoMIPS).
[ 0.141813] ENABLING IO-APIC IRQs
[ 0.142001] ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.184011] Brought up 1 CPUs
[ 0.184011] CPU0 attaching sched-domain:
[ 0.184011] domain 0: span 01
[ 0.184011] groups: 01
[ 0.184011] net_namespace: 548 bytes
[ 0.184011] Booting paravirtualized kernel on bare hardware
[ 0.184011] NET: Registered protocol family 16
[ 0.184011] ACPI: bus type pci registered
[ 0.208698] PCI: PCI BIOS revision 2.10 entry at 0xfbdfd, last bus=1
[ 0.208703] PCI: Using configuration type 1
[ 0.208732] Setting up standard PCI resources
[ 0.211911] ACPI: EC: Look up EC in DSDT
[ 0.240954] ACPI: Interpreter enabled
[ 0.240963] ACPI: (supports S0 S1 S3 S4 S5)
[ 0.240993] ACPI: Using IOAPIC for interrupt routing
[ 0.278828] ACPI: PCI Root Bridge [PCI0] (0000:00)
[ 0.279433] * The chipset may have PM-Timer Bug. Due to workarounds for a bug,
[ 0.279436] * this clock source is slow. If you are sure your timer does not have
[ 0.279438] * this bug, please use "acpi_pm_good" to disable the workaround
[ 0.279492] pci 0000:00:1f.0: quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO
[ 0.279497] pci 0000:00:1f.0: quirk: region 0880-08bf claimed by ICH4 GPIO
[ 0.279784] PCI: Transparent bridge - 0000:00:1e.0
[ 0.279823] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 0.280509] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
[ 0.384911] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 *9 10 11 12 15)
[ 0.385294] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 *11 12 15)
[ 0.385666] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 12 15)
[ 0.386039] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11 12 15)
[ 0.386410] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11 12 15) *0, disabled.
[ 0.386783] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11 12 15) *0, disabled.
[ 0.387155] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11 12 15) *0, disabled.
[ 0.387533] ACPI: PCI Interrupt Link [LNKH] (IRQs *3 4 5 6 7 9 10 11 12 15)
[ 0.388004] Linux Plug and Play Support v0.97 (c) Adam Belay
[ 0.388148] pnp: PnP ACPI init
[ 0.388169] ACPI: bus type pnp registered
[ 0.415502] pnp: PnP ACPI: found 12 devices
[ 0.415508] ACPI: ACPI bus type pnp unregistered
[ 0.415515] PnPBIOS: Disabled by ACPI PNP
[ 0.416462] PCI: Using ACPI for IRQ routing
[ 0.416469] PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
[ 0.421770] ACPI: RTC can wake from S4
[ 0.421840] system 00:00: iomem range 0x0-0x9ffff could not be reserved
[ 0.421847] system 00:00: iomem range 0x100000-0xffffff could not be reserved
[ 0.421851] system 00:00: iomem range 0x1000000-0x1fe70fff could not be reserved
[ 0.421855] system 00:00: iomem range 0xf0000-0xfffff could not be reserved
[ 0.421859] system 00:00: iomem range 0xfec00000-0xfec0ffff could not be reserved
[ 0.421863] system 00:00: iomem range 0xfee00000-0xfee0ffff could not be reserved
[ 0.421868] system 00:00: iomem range 0xffb00000-0xffbfffff could not be reserved
[ 0.421872] system 00:00: iomem range 0xffc00000-0xffffffff could not be reserved
[ 0.421893] system 00:0b: ioport range 0x800-0x85f has been reserved
[ 0.421897] system 00:0b: ioport range 0xc00-0xc7f has been reserved
[ 0.421902] system 00:0b: ioport range 0x860-0x8ff could not be reserved
[ 0.453472] PCI: Bridge: 0000:00:1e.0
[ 0.453477] IO window: e000-efff
[ 0.453484] MEM window: 0xff800000-0xff9fffff
[ 0.453489] PREFETCH window: disabled.
[ 0.453506] PCI: Setting latency timer of device 0000:00:1e.0 to 64
[ 0.453553] NET: Registered protocol family 2
[ 0.453764] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.454115] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.454248] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.454482] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.454488] TCP reno registered
[ 0.454920] checking if image is initramfs... it is
[ 0.956087] Switched to high resolution mode on CPU 0
[ 1.232530] Freeing initrd memory: 6204k freed
[ 1.232896] Simple Boot Flag value 0x87 read from CMOS RAM was invalid
[ 1.232901] Simple Boot Flag at 0x7a set to 0x1
[ 1.234432] audit: initializing netlink socket (disabled)
[ 1.234456] type=2000 audit(1224762971.232:1): initialized
[ 1.234671] Total HugeTLB memory allocated, 0
[ 1.234858] VFS: Disk quotas dquot_6.5.1
[ 1.234905] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 1.235095] io scheduler noop registered
[ 1.235100] io scheduler anticipatory registered
[ 1.235102] io scheduler deadline registered
[ 1.235127] io scheduler cfq registered (default)
[ 1.235147] pci 0000:00:02.0: Boot video device
[ 1.235229] pci 0000:01:0c.0: Firmware left e100 interrupts enabled; disabling
[ 1.236353] isapnp: Scanning for PnP cards...
[ 1.590768] isapnp: No Plug & Play device found
[ 1.601170] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[ 1.601419] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 1.602660] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 1.605548] brd: module loaded
[ 1.605843] PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
[ 1.608558] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 1.608570] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 1.609082] mice: PS/2 mouse device common for all mice
[ 1.609306] cpuidle: using governor ladder
[ 1.609311] cpuidle: using governor menu
[ 1.609944] TCP cubic registered
[ 1.609974] NET: Registered protocol family 1
[ 1.609995] NET: Registered protocol family 17
[ 1.610006] Using IPI No-Shortcut mode
[ 1.610494] registered taskstats version 1
[ 1.611036] Freeing unused kernel memory: 252k freed
[ 1.644803] input: AT Translated Set 2 keyboard as /class/input/input0
[ 2.024002] ACPI: ACPI0007:00 is registered as cooling_device0
[ 2.730904] usbcore: registered new interface driver usbfs
[ 2.730951] usbcore: registered new interface driver hub
[ 2.748277] usbcore: registered new device driver usb
[ 2.770230] USB Universal Host Controller Interface driver v3.0
[ 2.770305] ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 2.770323] PCI: Setting latency timer of device 0000:00:1d.0 to 64
[ 2.770328] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[ 2.770549] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
[ 2.770594] uhci_hcd 0000:00:1d.0: irq 16, io base 0x0000ff80
[ 2.770835] usb usb1: configuration #1 chosen from 1 choice
[ 2.770890] hub 1-0:1.0: USB hub found
[ 2.770910] hub 1-0:1.0: 2 ports detected
[ 2.872364] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.872371] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.872375] usb usb1: Product: UHCI Host Controller
[ 2.872378] usb usb1: Manufacturer: Linux 2.6.25-2-686 uhci_hcd
[ 2.872381] usb usb1: SerialNumber: 0000:00:1d.0
[ 2.872433] ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 19
[ 2.872450] PCI: Setting latency timer of device 0000:00:1d.1 to 64
[ 2.872456] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[ 2.872533] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
[ 2.872572] uhci_hcd 0000:00:1d.1: irq 19, io base 0x0000ff60
[ 2.872771] usb usb2: configuration #1 chosen from 1 choice
[ 2.872820] hub 2-0:1.0: USB hub found
[ 2.872841] hub 2-0:1.0: 2 ports detected
[ 2.976369] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.976376] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.976381] usb usb2: Product: UHCI Host Controller
[ 2.976383] usb usb2: Manufacturer: Linux 2.6.25-2-686 uhci_hcd
[ 2.976386] usb usb2: SerialNumber: 0000:00:1d.1
[ 2.976438] ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18
[ 2.976458] PCI: Setting latency timer of device 0000:00:1d.2 to 64
[ 2.976464] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[ 2.976532] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
[ 2.976573] uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000ff40
[ 2.976767] usb usb3: configuration #1 chosen from 1 choice
[ 2.976816] hub 3-0:1.0: USB hub found
[ 2.976835] hub 3-0:1.0: 2 ports detected
[ 3.010922] No dock devices found.
[ 3.062367] SCSI subsystem initialized
[ 3.080396] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 3.080402] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.080407] usb usb3: Product: UHCI Host Controller
[ 3.080410] usb usb3: Manufacturer: Linux 2.6.25-2-686 uhci_hcd
[ 3.080412] usb usb3: SerialNumber: 0000:00:1d.2
[ 3.080538] ACPI: PCI Interrupt 0000:00:1d.7[D] -> GSI 23 (level, low) -> IRQ 23
[ 3.080562] PCI: Setting latency timer of device 0000:00:1d.7 to 64
[ 3.080568] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[ 3.080626] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 4
[ 3.084560] ehci_hcd 0000:00:1d.7: debug port 1
[ 3.084569] PCI: cache line size of 128 is not supported by device 0000:00:1d.7
[ 3.084591] ehci_hcd 0000:00:1d.7: irq 23, io mem 0xffa00800
[ 3.088709] e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
[ 3.088714] e100: Copyright(c) 1999-2006 Intel Corporation
[ 3.104594] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[ 3.104779] usb usb4: configuration #1 chosen from 1 choice
[ 3.104836] hub 4-0:1.0: USB hub found
[ 3.104856] hub 4-0:1.0: 6 ports detected
[ 3.149892] libata version 3.00 loaded.
[ 3.208406] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
[ 3.208413] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.208418] usb usb4: Product: EHCI Host Controller
[ 3.208420] usb usb4: Manufacturer: Linux 2.6.25-2-686 ehci_hcd
[ 3.208423] usb usb4: SerialNumber: 0000:00:1d.7
[ 3.209087] ACPI: PCI Interrupt 0000:01:0c.0[A] -> GSI 18 (level, low) -> IRQ 18
[ 3.299573] e100: eth0: e100_probe: addr 0xff8ff000, irq 18, MAC addr 00:08:74:ca:f4:bf
[ 3.325375] Uniform Multi-Platform E-IDE driver
[ 3.325383] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
[ 3.333874] ICH4: IDE controller (0x8086:0x24cb rev 0x01) at PCI slot 0000:00:1f.1
[ 3.333889] PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
[ 3.333898] ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
[ 3.333913] ICH4: not 100% native mode: will probe irqs later
[ 3.333931] ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:PIO
[ 3.333946] ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:PIO
[ 3.333956] Probing IDE interface ide0...
[ 3.347278] Floppy drive(s): fd0 is 1.44M
[ 3.362358] FDC 0 is a post-1991 82077
[ 3.620432] hda: WDC WD400BB-75DEA0, ATA DISK drive
[ 4.296118] hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
[ 4.296118] hda: UDMA/100 mode selected
[ 4.296118] Probing IDE interface ide1...
[ 5.031436] hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD/DVD-ROM drive
[ 5.367059] hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
[ 5.367122] hdc: Disabling (U)DMA for SAMSUNG CD-ROM SC-148C (blacklisted)
[ 5.367130] hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
[ 5.367206] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[ 5.367246] ide1 at 0x170-0x177,0x376 on irq 15
[ 5.399065] hda: max request size: 128KiB
[ 5.554155] hda: Host Protected Area detected.
[ 5.554155] current capacity is 78125000 sectors (40000 MB)
[ 5.554155] native capacity is 78165360 sectors (40020 MB)
[ 5.556436] hda: Host Protected Area disabled.
[ 5.556436] hda: 78165360 sectors (40020 MB) w/2048KiB Cache, CHS=65535/16/63
[ 5.556436] hda: cache flushes not supported
[ 5.556436] hda: hda1 hda2 hda3 hda4
[ 5.583979] hdc: ATAPI 48X CD-ROM drive, 128kB Cache
[ 5.583990] Uniform CD-ROM driver Revision: 3.20
[ 6.181724] PM: Starting manual resume from disk
[ 6.234813] ReiserFS: hda1: found reiserfs format "3.6" with standard journal
[ 6.234833] ReiserFS: hda1: using ordered data mode
[ 6.241585] ReiserFS: hda1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[ 6.242572] ReiserFS: hda1: checking transaction log (hda1)
[ 14.254621] ReiserFS: hda1: replayed 697 transactions in 7 seconds
[ 14.299128] ReiserFS: hda1: Using r5 hash to sort names
[ 17.215589] dcdbas dcdbas: Dell Systems Management Base Driver (version 5.6.0-3.2)
[ 17.719491] Linux agpgart interface v0.103
[ 17.734836] agpgart: Detected an Intel 830M Chipset.
[ 17.734970] agpgart: Detected 892K stolen memory.
[ 17.753034] agpgart: AGP aperture is 128M @ 0xf0000000
[ 17.938265] input: Power Button (FF) as /class/input/input1
[ 17.966761] ACPI: Power Button (FF) [PWRF]
[ 17.966876] input: Power Button (CM) as /class/input/input2
[ 17.999078] ACPI: Power Button (CM) [VBTN]
[ 19.005080] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 19.047074] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 19.085013] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.02 (26-Jul-2007)
[ 19.085112] iTCO_wdt: failed to reset NO_REBOOT flag, reboot disabled by hardware
[ 19.085170] iTCO_wdt: No card detected
[ 19.231216] intel_rng: FWH not detected
[ 19.378980] ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 17 (level, low) -> IRQ 17
[ 19.406808] input: PC Speaker as /class/input/input3
[ 19.434275] Real Time Clock Driver v1.12ac
[ 20.004059] ACPI: PCI Interrupt 0000:00:1f.5[B] -> GSI 17 (level, low) -> IRQ 17
[ 20.004102] PCI: Setting latency timer of device 0000:00:1f.5 to 64
[ 20.197280] input: ImPS/2 Generic Wheel Mouse as /class/input/input4
[ 20.229435] parport_pc 00:0a: reported by Plug and Play ACPI
[ 20.229495] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
[ 20.422816] intel8x0_measure_ac97_clock: measured 54782 usecs
[ 20.422822] intel8x0: clocking to 48000
[ 22.635596] Adding 979956k swap on /dev/hda3. Priority:-1 extents:1 across:979956k
[ 29.232799] ReiserFS: hda1: Removing [4 50189 0x0 SD]..done
[ 29.232894] ReiserFS: hda1: There were 1 uncompleted unlinks/truncates. Completed
[ 29.944473] loop: module loaded
[ 30.050892] device-mapper: uevent: version 1.0.3
[ 30.053432] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com
[ 47.309071] ReiserFS: hda4: found reiserfs format "3.6" with standard journal
[ 47.309071] ReiserFS: hda4: using ordered data mode
[ 47.312541] ReiserFS: hda4: journal params: device hda4, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[ 47.313376] ReiserFS: hda4: checking transaction log (hda4)
[ 47.339641] ReiserFS: hda4: Using r5 hash to sort names
[ 47.383862] ReiserFS: hda2: found reiserfs format "3.6" with standard journal
[ 47.383862] ReiserFS: hda2: using ordered data mode
[ 47.391981] ReiserFS: hda2: journal params: device hda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[ 47.392570] ReiserFS: hda2: checking transaction log (hda2)
[ 47.410735] ReiserFS: hda2: Using r5 hash to sort names
[ 47.410802] ReiserFS: hda2: Removing [2 23 0x0 SD]..done
[ 47.410802] ReiserFS: hda2: Removing [2 22 0x0 SD]..done
[ 47.410802] ReiserFS: hda2: Removing [2 17 0x0 SD]..done
[ 47.410802] ReiserFS: hda2: There were 3 uncompleted unlinks/truncates. Completed
[ 48.959887] e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
[ 52.894565] NET: Registered protocol family 10
[ 52.895405] lo: Disabled Privacy Extensions
A.2 Fichier de configuration du processus Unix INIT
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.8 1998/05/10 10:37:50 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
A.3 Fichier Unix de lancement de démon
#! /bin/sh
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/daemon
NAME=daemon
DESC="some daemon"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
This document was translated from LATEX by
HEVEA.