Upload
picassomedia
View
995
Download
1
Embed Size (px)
DESCRIPTION
administration Linux pour ingénieur
Citation preview
1
Partie I
Administration système
2
Unité 1Unité 1
Administration des utilisateurs Administration des utilisateurs et des groupeset des groupes
3
UtilisateursUtilisateurs Chaque utilisateur qui utilise le système doit être connu Chaque utilisateur qui utilise le système doit être connu
de celui-ci par un nom et, éventuellement, un mot de de celui-ci par un nom et, éventuellement, un mot de passe. passe.
Un utilisateur doit appartenir à un ou plusieurs groupes Un utilisateur doit appartenir à un ou plusieurs groupes d'utilisateurs pour être autorisé à utiliser le système. d'utilisateurs pour être autorisé à utiliser le système.
Il existe plusieurs méthodes d'identification et de Il existe plusieurs méthodes d'identification et de contrôle des utilisateurs, nous ne parlerons ici que de la contrôle des utilisateurs, nous ne parlerons ici que de la méthode la plus simple mettant en oeuvre les fichiers méthode la plus simple mettant en oeuvre les fichiers /etc/passwd et /etc/group. /etc/passwd et /etc/group.
Les utilisateurs et les groupes sont repérés dans le Les utilisateurs et les groupes sont repérés dans le système par des numéros : uid pour le numéro système par des numéros : uid pour le numéro d'utilisateur (User IDentifier) et gid pour le numéro de d'utilisateur (User IDentifier) et gid pour le numéro de groupe (Group IDentifier). groupe (Group IDentifier).
Le numéro est unique pour un utilisateur ou un groupe Le numéro est unique pour un utilisateur ou un groupe donné. donné.
L'identification d'un utilisateur s'effectue dans le L'identification d'un utilisateur s'effectue dans le fichier /etc/passwdfichier /etc/passwd..
4
Hiérarchie de comptesHiérarchie de comptes RootRoot
super utilisateursuper utilisateur les permissions d ’accès ne sont pas appliquées sur les permissions d ’accès ne sont pas appliquées sur
luilui il peut faire tous il peut faire tous compte pour l ’administrateur du systèmecompte pour l ’administrateur du système
bin, daemon, lp, sync, news, ftp …bin, daemon, lp, sync, news, ftp … comptes utilisateur utilisés par différentes comptes utilisateur utilisés par différentes
applications et démonsapplications et démons ne peuvent pas (on doit pas) être utiliser comme ne peuvent pas (on doit pas) être utiliser comme
loginlogin comptes ordinairescomptes ordinaires
5
Enregistrer un Enregistrer un utilisateurutilisateur
Un utilisateur est caractérisé par une ligne dans le fichier Un utilisateur est caractérisé par une ligne dans le fichier /etc/password. /etc/password.
Une ligne est formée par les champs suivants : Une ligne est formée par les champs suivants : login:passwd:uid:gid:comment:home:shelllogin:passwd:uid:gid:comment:home:shell
loginlogin : Il s'agit du nom de l'utilisateur. C'est un alphanumérique de 8 : Il s'agit du nom de l'utilisateur. C'est un alphanumérique de 8 caractères maximum. caractères maximum.
passwdpasswd : : Il apparaît dans ce fichier sous forme codée. Il apparaît dans ce fichier sous forme codée. uiduid : : Il s'agit d'un numéro Il s'agit d'un numéro uniqueunique de l'utilisateur. Compris entre 0 de l'utilisateur. Compris entre 0
et 65535. Les 100 premiers nombres sont par convention réservés et 65535. Les 100 premiers nombres sont par convention réservés au système et ne correspondent pas à des utilisateurs normaux. au système et ne correspondent pas à des utilisateurs normaux.
gidgid : : Numéro de groupe. Chaque utilisateur appartient à un groupe Numéro de groupe. Chaque utilisateur appartient à un groupe principal. Il pourra également appartenir à des groupes principal. Il pourra également appartenir à des groupes secondaires. Cette notion de groupe interviendra au niveau des secondaires. Cette notion de groupe interviendra au niveau des permissions sur les fichiers. permissions sur les fichiers.
commentcomment : : Nom complet de l'utilisateur. Nom complet de l'utilisateur. homehome : : Chemin complet de la directory attribuée à l'utilisateur Chemin complet de la directory attribuée à l'utilisateur shellshell : : Chemin complet du shell, le programme qui interagit avec Chemin complet du shell, le programme qui interagit avec
l'utilisateur et qui permet de taper des commandes (csh, sh, bash, l'utilisateur et qui permet de taper des commandes (csh, sh, bash, tcsh, ...). tcsh, ...).
6
/etc/shadow/etc/shadow Le fichier /etc/passwd est public (toute Le fichier /etc/passwd est public (toute
personne qui a un compte sur la personne qui a un compte sur la machine peut le lire). machine peut le lire).
Pour contrecarrer cette faille, certains Pour contrecarrer cette faille, certains systèmes ont introduit le fichier systèmes ont introduit le fichier /etc/shadow /etc/shadow lisible uniquement par root lisible uniquement par root contient les mots de passe des utilisateurs, contient les mots de passe des utilisateurs,
qui disparaissent alors de /etc/passwd. qui disparaissent alors de /etc/passwd. Si on ajoute un utilisateur à la main, cela Si on ajoute un utilisateur à la main, cela
implique d'éditer les 2 fichiers. implique d'éditer les 2 fichiers.
7
/etc/skel/etc/skel Après la création d’un compte Après la création d’un compte
utilisateur, tous les fichiers de utilisateur, tous les fichiers de /etc/skel sont copiés dans le /etc/skel sont copiés dans le répertoire personnel de cet répertoire personnel de cet utilisateur.utilisateur.
On place dans ce répertoire les On place dans ce répertoire les fichiers dont tous le monde doit en fichiers dont tous le monde doit en avoir une copieavoir une copie
8
La commande suLa commande su La commande su permet de changer La commande su permet de changer
l’identité de l’utilisateur courant.l’identité de l’utilisateur courant. Syntaxe su [[-] utilisateur]Syntaxe su [[-] utilisateur]
Utilisateur est l’utilisateur dont on veut Utilisateur est l’utilisateur dont on veut prendre l’identitéprendre l’identité
Si aucun utilisateur n’est spécifié, le Si aucun utilisateur n’est spécifié, le changement se fait vers l’utilisateur rootchangement se fait vers l’utilisateur root
La commande demande un mot de La commande demande un mot de passe avant d’obtempérer. (sauf si passe avant d’obtempérer. (sauf si root)root)
9
Gestion des comptesGestion des comptes Créer un compte pour un nouvel Créer un compte pour un nouvel
utilisateurutilisateur Commande useraddCommande useradd
Syntaxe : useradd [options] nom_loginSyntaxe : useradd [options] nom_login OptionsOptions : : -u uid-u uid pour fixer l'identifiant uidpour fixer l'identifiant uid-g groupe-primaire-g groupe-primaire -G liste-G liste fixe l'appartenance de l'utilisateur à une liste de groupes fixe l'appartenance de l'utilisateur à une liste de groupes
secondaires secondaires (séparateur , sans espace)(séparateur , sans espace)-s shell-s shell par défaut, attribution du shell par défaut bashpar défaut, attribution du shell par défaut bash-c commentaire -c commentaire -d rep. Personnel-d rep. Personnel par défaut dans le répertoire /homepar défaut dans le répertoire /home-e date-expiration-e date-expiration fixe la date d'expiration du compte (format MM/JJ/AA)fixe la date d'expiration du compte (format MM/JJ/AA)-m-m pour créer le répertoire personnelpour créer le répertoire personnel-k rep-skel-k rep-skel recopie le contenu de rep-skel dans le rép. personnel, par recopie le contenu de rep-skel dans le rép. personnel, par
défaut défaut /etc/skel/etc/skel
10
Gestion des comptesGestion des comptescommande useraddcommande useradd
Pour examiner les valeurs par défaut Pour examiner les valeurs par défaut appliquées par appliquées par useradduseradd : : commande useradd -D ou commande useradd -D ou éditer /etc/default/useraddéditer /etc/default/useradd
GROUP=100 GROUP=100 identifiant du groupe primaireidentifiant du groupe primaire HOME=/home HOME=/home racine des rép. personnelsracine des rép. personnels INACTIVE=-INACTIVE=-1 1 (nb de jours avant destruction du (nb de jours avant destruction du
compte) compte) EXPIRE= EXPIRE= nb de jours avant expiration du nb de jours avant expiration du
mot de mot de passe passe SHELL=/bin/bash sSHELL=/bin/bash shell de connexion attribué au hell de connexion attribué au
compte compte SKEL=/etc/skel SKEL=/etc/skel fichiers recopiés par défaut fichiers recopiés par défaut
dans dans chaque rép. personnel chaque rép. personnel
11
Gestion des comptesGestion des comptes La commande passwdLa commande passwd
Syntaxe : passwd [options ] Syntaxe : passwd [options ] nom_loginnom_login
Options Options ----stdinstdin mode non interactif. mode non interactif.
-d -d l'utilisateur pourra se connecter sans mot de l'utilisateur pourra se connecter sans mot de passe ! passe !
-l -l pour verrouiller le compte et empêcher sa pour verrouiller le compte et empêcher sa connexion. connexion.
-u -u pour déverrouiller. pour déverrouiller.
12
Gestion des comptesGestion des comptes Connaître l'Connaître l'uiduid et le et le gidgid de l'utilisateur de l'utilisateur
courantcourant Commandes ( id, howami, how am i )Commandes ( id, howami, how am i )
bash:> idbash:> id uid=501(stage1) gid=501(stage1) groups=501(stage1), uid=501(stage1) gid=501(stage1) groups=501(stage1),
504(stagiaire) 504(stagiaire)
Pour décrire un utilisateur Pour décrire un utilisateur Commande chfnCommande chfn
Cette commande permet d'indiquer dans le Cette commande permet d'indiquer dans le champ numéro 5 du fichier /etc/passwd champ numéro 5 du fichier /etc/passwd différentes informations sur un utilisateurdifférentes informations sur un utilisateur
13
Gestion des comptesGestion des comptes Supprimer le compte d'un Supprimer le compte d'un
utilisateur (non connecté)utilisateur (non connecté) La commande userdelLa commande userdel
Syntaxe : userdel [-r] nom_loginSyntaxe : userdel [-r] nom_login L'option L'option -r -r supprime aussi le rép. personnel de supprime aussi le rép. personnel de
l'utilisateurl'utilisateur La commande supprime toute trace de La commande supprime toute trace de
l'utilisateur dans le fichier de configuration : l'utilisateur dans le fichier de configuration : /etc/passwd y compris dans les groupes /etc/passwd y compris dans les groupes d'utilisateurs. d'utilisateurs.
14
Gestion des comptesGestion des comptes Modifier le compte d’un utilisateurModifier le compte d’un utilisateur
La commande usermod La commande usermod Syntaxe : usermod [options] Syntaxe : usermod [options]
nom_loginnom_loginLes options sont Les options sont les mêmes que que useradduseradd
Exemple Exemple usermod -G stagiaire,prof stagexusermod -G stagiaire,prof stagex
ajoute ajoute stagexstagex dans les 2 groupes stagiaire et profs dans les 2 groupes stagiaire et profs (qui doivent exister) (qui doivent exister)
15
Les groupesLes groupes Un groupe est un ensemble Un groupe est un ensemble
d'utilisateurs. d'utilisateurs. Chaque utilisateur doit faire partie au Chaque utilisateur doit faire partie au
moins d'un groupe. moins d'un groupe. Dans Dans /etc/passwd/etc/passwd chaque utilisateur chaque utilisateur
possède un groupe par défaut, précisé possède un groupe par défaut, précisé par son identifiant par son identifiant gidgid dans ce fichier. dans ce fichier.
L'appartenance au groupe primaire L'appartenance au groupe primaire n'étant pas exclusive, n'étant pas exclusive, tout utilisateur tout utilisateur peut faire partie de plusieurs peut faire partie de plusieurs autres groupes.autres groupes.
La liste des groupes est donnée par le La liste des groupes est donnée par le fichier /etc/groupfichier /etc/group
16
Le fichier /etc/groupLe fichier /etc/group Le fichier de déclaration des groupes Le fichier de déclaration des groupes
/etc/group contient une ligne par groupe dans /etc/group contient une ligne par groupe dans un format similaire au fichier /etc/passwd. un format similaire au fichier /etc/passwd.
Une ligne de ce fichier comporte les champs Une ligne de ce fichier comporte les champs suivants, séparés par des caractères `:' : suivants, séparés par des caractères `:' : nom du groupenom du groupe mot de passe du groupemot de passe du groupe numéro du groupe (gid)numéro du groupe (gid) liste des utilisateurs appartenant au groupe séparés liste des utilisateurs appartenant au groupe séparés
par des virgulespar des virgules Par exemple : Par exemple :
actrices:*:400:sandra,meg,michelleactrices:*:400:sandra,meg,michelle
17
Commandes utilesCommandes utiles Pour lister tous les groupes d'un utilisateur : Pour lister tous les groupes d'un utilisateur :
groups nom_logingroups nom_login Pour créer un nouveau groupe Pour créer un nouveau groupe
groupadd nom_groupegroupadd nom_groupe Supprimer un groupe Supprimer un groupe : : groupdel nom_groupegroupdel nom_groupe
Le groupe est supprimé du fichier Le groupe est supprimé du fichier /etc/group/etc/group. . modifier un groupemodifier un groupe
groupmod -n nouveau_nom nom_groupegroupmod -n nouveau_nom nom_groupe Pour ajouter un utilisateur à un groupePour ajouter un utilisateur à un groupe
Le plus simple est d'éditer le fichier Le plus simple est d'éditer le fichier /etc/group/etc/group et d'ajouter une liste d'utilisateurs (séparés et d'ajouter une liste d'utilisateurs (séparés par des virgules) sur la ligne du groupe. par des virgules) sur la ligne du groupe.
18
Processus d ’initialisation Processus d ’initialisation utilisateurutilisateur
/etc/profile/etc/profile $HOME/.bash_profile$HOME/.bash_profile $HOME/.bashrc$HOME/.bashrc /etc/bashrc/etc/bashrc
$HOME/.bash_logout$HOME/.bash_logout
[user@host pwd]$ Bourne Again Shell
19
newgroupnewgroup La commande La commande newgrpnewgrp permet à un permet à un
utilisateur de changer son groupe utilisateur de changer son groupe courant.courant.
Par exemple : Par exemple :
bash$ newgrp actrices bash$ newgrp actrices bash$ idbash$ id uid=500 (sandra) gid=400 (actrices) uid=500 (sandra) gid=400 (actrices)
groups=500(sandra),100(users), 400(actrices)groups=500(sandra),100(users), 400(actrices)
20
Unité 2Unité 2
Démarrage et arrêt du Démarrage et arrêt du systèmesystème
21
Etape de démarrage de Etape de démarrage de LinuxLinux
Power-On
BIOS
Master boot record
Noyau Linux
init
Système prêt
22
Basic Input Output SystemBasic Input Output System Checks mémoireChecks mémoire lit les options à partir de la mémoire lit les options à partir de la mémoire
non volatilenon volatile memory timingsmemory timings ordre des périphériques de bootordre des périphériques de boot
puis cherche le périphérique de boot puis cherche le périphérique de boot dans l’ordre spécifiédans l’ordre spécifié
charge le Master Boot Record est charge le Master Boot Record est l’exécutel’exécute
23
Master Boot Record MBRMaster Boot Record MBR Le premier secteur du périphérique de bootLe premier secteur du périphérique de boot il contient la table des partitions et le il contient la table des partitions et le
bootstrap loaderbootstrap loader le bootstrap loader charge le premier secteur le bootstrap loader charge le premier secteur
de la partition active (secteur de boot) et de la partition active (secteur de boot) et exécute le gestionnaire d ’amorçage qui s’y exécute le gestionnaire d ’amorçage qui s’y trouve.trouve.
Le gestionnaire d’amorçage peut donner accès Le gestionnaire d’amorçage peut donner accès aux différents Système d ’exploitationaux différents Système d ’exploitation
Dans linux, le gestionnaire d’amorçage est lilo Dans linux, le gestionnaire d’amorçage est lilo charge le programme d ’amorçage de deuxième charge le programme d ’amorçage de deuxième
niveauniveau nous permet de passer des options au Système nous permet de passer des options au Système
d ’exploitationd ’exploitation charge le Système d ’exploitation charge le Système d ’exploitation
24
LILOLILO Programme qui permet de générer et Programme qui permet de générer et
d'installer le programme de démarrage du d'installer le programme de démarrage du noyau noyau
syntaxe lilo [-v] [-v] [-c config_file] [-t]syntaxe lilo [-v] [-v] [-c config_file] [-t]
-v-v : mode verbeu: mode verbeu-v -v-v -v : mode très verbeu: mode très verbeu-c-c : utilisation du fichier de configuration autre que : utilisation du fichier de configuration autre que
/etc/lilo.conf/etc/lilo.conf-t-t : test uniquement: test uniquement
25
/etc/lilo.conf/etc/lilo.conf ExempleExemple
boot = /dev/hdaboot = /dev/hdamap=/boot/map map=/boot/map message=/boot/lilo.msgmessage=/boot/lilo.msg
timeout = 30timeout = 30 # linux # linux image = /boot/vmlinuz image = /boot/vmlinuz
root = /dev/hda1 root = /dev/hda1 label = linux label = linux
# dos # dos other = /dev/hda4 other = /dev/hda4
table = /dev/hdatable = /dev/hda label = dos label = dos
Cet exemple installe le chargeur LILO sur le secteur de démarrage principal Cet exemple installe le chargeur LILO sur le secteur de démarrage principal du disque dur (MBR) et autorise un délai de 3 secondes pour choisir le du disque dur (MBR) et autorise un délai de 3 secondes pour choisir le système à démarrer. système à démarrer.
Si l'utilisateur ne prend pas la main dans le temps imparti, c'est le premier Si l'utilisateur ne prend pas la main dans le temps imparti, c'est le premier système qui sera choisi. A moins de taper sur la touche système qui sera choisi. A moins de taper sur la touche tabtab, ce qui donne , ce qui donne les différentes possibilités pour démarrer. les différentes possibilités pour démarrer.
26
Options lilo.confOptions lilo.conf Boot : endroit où lilo va s’installer. Boot : endroit où lilo va s’installer. message : le nom d ’un fichier qui contient le message message : le nom d ’un fichier qui contient le message
affiché avant le prompt affiché avant le prompt prompt : permet à lilo de demander le système à lancer prompt : permet à lilo de demander le système à lancer
à chaque démarrageà chaque démarrage default : spécifie la configuration par défaut default : spécifie la configuration par défaut timeout : permet de fixer un délai au delà duquel lilo timeout : permet de fixer un délai au delà duquel lilo
lance la première configuration définie dans lilo.conflance la première configuration définie dans lilo.conf image : chemin complet sur le noyau de linux à chargerimage : chemin complet sur le noyau de linux à charger label : nom de la configuration tel qu ’il doit être saisie à label : nom de la configuration tel qu ’il doit être saisie à
l ’invite de lilol ’invite de lilo
27
Lilo.conf options-2Lilo.conf options-2 root : nom complet du fichier spécial de périphérique root : nom complet du fichier spécial de périphérique
contenant contenant le système de fichier racine.le système de fichier racine. Append : options par défaut à passer au noyauAppend : options par défaut à passer au noyau read-only : le système de fichier racine est monté en read-only : le système de fichier racine est monté en
lecture lecture seuleseule other : partition sur laquelle le secteur de boot de other : partition sur laquelle le secteur de boot de
l’autre l’autre système est installésystème est installé table : disque dur contenant la table des partitions table : disque dur contenant la table des partitions
utilisée par utilisée par l’autre système (other)l’autre système (other) loader : permet de passer la main au chargeur du loader : permet de passer la main au chargeur du
systèmesystème password : mot de passe à entrer pour démarrer cette password : mot de passe à entrer pour démarrer cette
imageimage restricted : mot de passe demandé si l ’utilisateur veut restricted : mot de passe demandé si l ’utilisateur veut
passer des options au noyaupasser des options au noyau
28
Amorçage du noyauAmorçage du noyau L’image compressée du noyau est chargée en L’image compressée du noyau est chargée en
mémoire par lilomémoire par lilo Le noyau se décompresse lui même est Le noyau se décompresse lui même est
démarredémarre détecte le hardwaredétecte le hardware passe en mode multiuser, multitachepasse en mode multiuser, multitache démarre le networkingdémarre le networking monte la partition racinemonte la partition racine
Après un démarrage réussi, le noyau lance le Après un démarrage réussi, le noyau lance le processus init (PID 1).processus init (PID 1).
dmesg donne les messages du noyau lors du dmesg donne les messages du noyau lors du démarrage démarrage
29
Le processus initLe processus init Ce programme est le premier processus Ce programme est le premier processus
lancé par le noyau. Il est chargé de lancé par le noyau. Il est chargé de démarrer les processus systèmes et démarrer les processus systèmes et d'en relancer certains lorsqu'ils se d'en relancer certains lorsqu'ils se terminent, et ce durant la totalité du terminent, et ce durant la totalité du fonctionnement du système. fonctionnement du système.
Sa configuration s'effectue dans le Sa configuration s'effectue dans le fichier /etc/inittab. fichier /etc/inittab.
30
Le fichier /etc/inittabLe fichier /etc/inittab Ce fichier contient des lignes respectant le Ce fichier contient des lignes respectant le
format suivant : format suivant :
code:niveau:action:commandecode:niveau:action:commande
Le champ code contient une séquence de 1 à Le champ code contient une séquence de 1 à 4 caractères (deux pour compatibilité) unique 4 caractères (deux pour compatibilité) unique pour identifier la ligne dans le fichier. pour identifier la ligne dans le fichier.
Le champ niveau donne le niveau d'exécution Le champ niveau donne le niveau d'exécution pour lequel cette ligne doit être prise en pour lequel cette ligne doit être prise en compte.compte.
31
Le fichier /etc/inittabLe fichier /etc/inittab La notion de niveau d'exécution permet de spécifier des La notion de niveau d'exécution permet de spécifier des
configurations d'exécution différentes. Un standard configurations d'exécution différentes. Un standard existe et est résumé dans la table ci-dessous. Il est existe et est résumé dans la table ci-dessous. Il est possible de spécifier plusieurs niveaux lorsque la possible de spécifier plusieurs niveaux lorsque la commande associée doit être lancée à différents commande associée doit être lancée à différents niveaux d'exécution. niveaux d'exécution.
NiveauNiveau DescriptionDescription00 Arrêt de la machineArrêt de la machine11 mode mono-utilisateur, seul le super-mode mono-utilisateur, seul le super-
utilisateur peut se utilisateur peut se connecterconnecter22 mode multi-utilisateurs, avec peu de mode multi-utilisateurs, avec peu de
services réseauxservices réseaux33 mode multi-utilisateurs, avec tous les mode multi-utilisateurs, avec tous les
services réseaux services réseaux (mode par défaut)(mode par défaut)44 définissable par l'utilisateurdéfinissable par l'utilisateur55 démarrage de X11 au bootdémarrage de X11 au boot66 redémarrage de la machineredémarrage de la machine
32
Le fichier /etc/inittabLe fichier /etc/inittab Le champ action définit la manière d'exécuter la Le champ action définit la manière d'exécuter la
commande du champ commande. commande du champ commande. Le tableau ci-après présente les actions les plus Le tableau ci-après présente les actions les plus
courantes : courantes : ActionAction DescriptionDescriptionrespawnrespawn relance la commande lorsqu'elle se terminerelance la commande lorsqu'elle se termine
waitwait attend la fin de la commande avant de continuerattend la fin de la commande avant de continuer
onceonce la commande est exécutée une foisla commande est exécutée une fois
bootboot la commande est exécutée au démarrage du système (le champ la commande est exécutée au démarrage du système (le champ niveau est ignoré)niveau est ignoré)
BootwaitBootwait comme ci-dessus avec attentecomme ci-dessus avec attente
offoff ne rien faire (permet de conserver la ligne pour une utilisation ne rien faire (permet de conserver la ligne pour une utilisation future)future)
initdefaultinitdefault permet de spécifier le niveau d'exécution par défautpermet de spécifier le niveau d'exécution par défaut
sysinitsysinit la commande est exécutée au démarrage avant celles des la commande est exécutée au démarrage avant celles des directives boot et bootwaitdirectives boot et bootwait
ctrlaltdelctrlaltdel la commande est exécutée lorsque l'utilisateur tape les trois caractères la commande est exécutée lorsque l'utilisateur tape les trois caractères <CTRL>-<CTRL>- <ALT>-<SUPPR> sur le clavier<ALT>-<SUPPR> sur le clavier
powerfailpowerfail la commande est exécutée lorsque le processus init reçoit le signal SIGPWR la commande est exécutée lorsque le processus init reçoit le signal SIGPWR (défaut (défaut d'alimentation)d'alimentation)
33
Le répertoire /etc/rc.dLe répertoire /etc/rc.d Ce répertoire contient les scripts utilisés pour Ce répertoire contient les scripts utilisés pour
l'initialisation du système. Ils sont prévus pour démarrer l'initialisation du système. Ils sont prévus pour démarrer les différents services et processus et effectuer les différents services et processus et effectuer quelques vérifications de configuration. quelques vérifications de configuration.
La table suivante présente les différents scripts : La table suivante présente les différents scripts : NiveauNiveau DescriptionDescription
rc.sysinitrc.sysinit exécuté une fois au démarrage pour initialiser le exécuté une fois au démarrage pour initialiser le systèmesystème
rcrc script de gestion du niveau d'exécution. Il le script de gestion du niveau d'exécution. Il le reçoit en reçoit en paramètre.paramètre.
rc.localrc.local script utilisé pour les initialisations particulières à la script utilisé pour les initialisations particulières à la machinemachine
init.dinit.d répertoire contenant les scripts répertoire contenant les scripts d'initialisation des sous-d'initialisation des sous- systèmessystèmes
rc0.d, rc1.d, rc2.d, rc3.drc0.d, rc1.d, rc2.d, rc3.d répertoires contenant des liens sur les scripts répertoires contenant des liens sur les scripts du répertoire rc4.d, rc5.d et rc6.d init.d devant être lancés à un niveau du répertoire rc4.d, rc5.d et rc6.d init.d devant être lancés à un niveau d'exécution particulierd'exécution particulier
34
Le répertoire /etc/rc.dLe répertoire /etc/rc.d Le fichier rc.sysinit réalise les opérations suivantes : Le fichier rc.sysinit réalise les opérations suivantes :
initialise la variable PATH pour les autres scriptsinitialise la variable PATH pour les autres scripts active la partition de swap active la partition de swap initialise le nom du système (hostname)initialise le nom du système (hostname) vérifie l'intégrité du système de fichiersvérifie l'intégrité du système de fichiers démarre la gestion des quotasdémarre la gestion des quotas initialise le "Plug and Play"initialise le "Plug and Play" prépare la gestion des modulesprépare la gestion des modules initialise l'horloge systèmeinitialise l'horloge système détruit les fichiers de verrouillagedétruit les fichiers de verrouillage
Le fichier rc exécute les scripts du répertoire rcN.d où N Le fichier rc exécute les scripts du répertoire rcN.d où N correspond au niveau d'exécution. correspond au niveau d'exécution.
Ces scripts sont des liens symboliques sur les fichiers de Ces scripts sont des liens symboliques sur les fichiers de démarrage des sous-systèmes du répertoire init.d. démarrage des sous-systèmes du répertoire init.d.
Le lien reprend le nom du fichier d'origine précédé de la lettre S et Le lien reprend le nom du fichier d'origine précédé de la lettre S et d'un nombre pour les scripts de démarrage ou de K et d'un d'un nombre pour les scripts de démarrage ou de K et d'un nombre pour les scripts d'arrêt du sous-système. nombre pour les scripts d'arrêt du sous-système.
La valeur numérique permet de spécifier l'ordre d'exécution des La valeur numérique permet de spécifier l'ordre d'exécution des scripts. scripts.
35
Configuration des services Configuration des services par niveaupar niveau
ntsysvntsysv ChkconfigChkconfig serviceconfserviceconf . . . . . .
36
Commande chkconfigCommande chkconfig Cette commande permet la gestion Cette commande permet la gestion
des services :des services : chkconfig - -list [nom_service] chkconfig - -list [nom_service] chkconfig - -add <nom_service> chkconfig - -add <nom_service> chkconfig - -del <nom_service> chkconfig - -del <nom_service> chkconfig [- -level <niveaux>] <nom_service> <on|chkconfig [- -level <niveaux>] <nom_service> <on|
off|reset>) off|reset>)
37
Démarrer et arrêter les Démarrer et arrêter les services manuellementservices manuellement Les scripts dans init.d peuvent être Les scripts dans init.d peuvent être
utiliser pour démarrer et arrêter les utiliser pour démarrer et arrêter les services manuellementservices manuellement
Dans Read Hat, la commande service Dans Read Hat, la commande service fait appel à ce scriptfait appel à ce script
Syntaxe : service nom_service optionSyntaxe : service nom_service option optionsoptions
Status : statut du serviceStatus : statut du service Start : démarre le serviceStart : démarre le service Stop : arrête le service Stop : arrête le service Restart : arrête et redémarre le serviceRestart : arrête et redémarre le service
38
Booter linux en mode Booter linux en mode mono-utilisateurmono-utilisateur Mode mono-utilisateurMode mono-utilisateur
pas de réseau (pas d ’attaques)pas de réseau (pas d ’attaques) pas de SF montés (sauf le SF root)pas de SF montés (sauf le SF root) pas de services démarréspas de services démarrés le mot de passe root non demandéle mot de passe root non demandé
très utile pour la maintenance du systèmetrès utile pour la maintenance du système pour démarrer en mono-utilisateur ajouter le pour démarrer en mono-utilisateur ajouter le
paramètre single au prompt du bootparamètre single au prompt du boot pour sortir de ce mode pour sortir de ce mode
exit pour démarrer le niveau par défautexit pour démarrer le niveau par défaut shutdown -r now pour rebootershutdown -r now pour rebooter
39
L'arrêt du systèmeL'arrêt du système Ne pas arrêter brutalement le système. Ne pas arrêter brutalement le système. La procédure d'arrêt permet : La procédure d'arrêt permet :
d'avertir les utilisateurs que le système doit être arrêté d'avertir les utilisateurs que le système doit être arrêté de demander aux applications de s'arrêter et de fermer les connexions et de demander aux applications de s'arrêter et de fermer les connexions et
les fichiers ouvertsles fichiers ouverts de passer le système en mode mono-utilisateurde passer le système en mode mono-utilisateur de vider les tampons mémoire du cache disquede vider les tampons mémoire du cache disque
Le système garde une trace du fait qu'il est démarré Le système garde une trace du fait qu'il est démarré pour permettre une vérification d'intégrité dans le cas pour permettre une vérification d'intégrité dans le cas d'un arrêt brutal. d'un arrêt brutal.
La commande d'arrêt du système est la commande La commande d'arrêt du système est la commande shutdownshutdown qui permet, selon les options utilisées : qui permet, selon les options utilisées :
de donner l'heure de l'arrêt (de donner l'heure de l'arrêt (nownow, , hh:mmhh:mm, , +minutes+minutes)) de donner le mode arrêt (arrêt ou redémarrage)de donner le mode arrêt (arrêt ou redémarrage)
ExempleExemple : : pour redémarrer pour redémarrer shutdown -r nowshutdown -r now ou ou rebootreboot pour arrêter pour arrêter shutdown -h nowshutdown -h now ou ou halthalt
40
Unité 3Unité 3
Les packagesLes packages
41
Gestion de packagesGestion de packages Combinaison dans un même fichier (rpm)Combinaison dans un même fichier (rpm)
informations sur le programmeinformations sur le programme les fichiers exécutables, librairies, les fichiers exécutables, librairies,
documentationdocumentation les scripts d ’installation et de désinstallationles scripts d ’installation et de désinstallation les fichiers de configurationles fichiers de configuration les informations de dépendanceles informations de dépendance
Le nom d’un rpm respecte un format Le nom d’un rpm respecte un format précis de type nom-version.arch.rpm où :précis de type nom-version.arch.rpm où : nomnom = nom du package/prog = nom du package/prog versionversion = version du package/prog = version du package/prog archarch = architecture pour lequel est fait le = architecture pour lequel est fait le
prog/package.prog/package.
42
Red Hat Package Manager Red Hat Package Manager (RPM)(RPM) on peut installer et désinstaller on peut installer et désinstaller
des programmes par une seule des programmes par une seule commande : rpmcommande : rpm
/var/lib/rpm, contient une BDD /var/lib/rpm, contient une BDD des RPMs installésdes RPMs installés
43
Installation des RPMsInstallation des RPMs Syntaxe de baseSyntaxe de base
rpm -i nom_package.rpmrpm -i nom_package.rpm ( installation)( installation) rpm -F nom_package.rpmrpm -F nom_package.rpm (Freshening)(Freshening)
installation si une version ancienne de ce package est installation si une version ancienne de ce package est déjà installéedéjà installée
rpm -U nom_package.rpm (Upgrading)rpm -U nom_package.rpm (Upgrading) installe et désinstalle l’ancienne version qui est installe et désinstalle l’ancienne version qui est
enregistrée avec l ’extension .rpmsaveenregistrée avec l ’extension .rpmsave
optionsoptions v : mode bavardv : mode bavard h : affiche 50 marques (hash marks) h : affiche 50 marques (hash marks) --nodeps : sans tenir compte des dépendances--nodeps : sans tenir compte des dépendances
44
Désinstallation de RPMDésinstallation de RPM Pour désinstaller un RPM, on utilise Pour désinstaller un RPM, on utilise
la commandela commande rpm -e nom_packagerpm -e nom_package
options:options: --nodeps : ignore les dépendances--nodeps : ignore les dépendances
45
RPM queryingRPM querying Pour connaître le contenu d’un RPM installéPour connaître le contenu d’un RPM installé syntaxe de basesyntaxe de base
rpm -q [ nom_package ]rpm -q [ nom_package ] options :options :
a : chercher tous les RPM installésa : chercher tous les RPM installés f <file> : chercher le RPM d ’où provient le fichier filef <file> : chercher le RPM d ’où provient le fichier file p<package-file> : affiche les fichiers de ce package p<package-file> : affiche les fichiers de ce package
(non (non encore installé) encore installé) i : affiche les informations du packagei : affiche les informations du package l : affiche la liste des fichiers du packagel : affiche la liste des fichiers du package s : affiche l’état de tous les fichierss : affiche l’état de tous les fichiers d : affiche les fichiers de documentationd : affiche les fichiers de documentation c : affiche les fichiers de configurationc : affiche les fichiers de configuration
46
Vérification des RPMsVérification des RPMs Vérifie les fichiers actuelles avec le RPM originalVérifie les fichiers actuelles avec le RPM original
tailletaille checksum MD5checksum MD5 Permissions, typePermissions, type propriétaire propriétaire groupegroupe
syntaxe de basesyntaxe de base rpm -V nom_packagerpm -V nom_package
optionsoptions f <file>f <file> vérifie le fichier filevérifie le fichier file aa vérifie tous les packagesvérifie tous les packages p <package-file> vérifie par rapport au RPM originalp <package-file> vérifie par rapport au RPM original
47
Outils graphiquesOutils graphiques kpackage kpackage
Il fonctionne dans l'environnement Kde, Il fonctionne dans l'environnement Kde, Il n ’est pas fourni en standard dans les distributions Il n ’est pas fourni en standard dans les distributions
RedHat.RedHat.
gnorpm gnorpm C ’est un logiciel fourni avec l'environnement graphique C ’est un logiciel fourni avec l'environnement graphique
gnome. gnome.
up2date up2date est un outil standard de la distribution RedHat (version 6.1 est un outil standard de la distribution RedHat (version 6.1
et supérieure)et supérieure) il permet la mise à jour de la distribution.il permet la mise à jour de la distribution.
Il cherche sur le serveur ftp de redhat les packages mis à jour Il cherche sur le serveur ftp de redhat les packages mis à jour pour la distribution.pour la distribution.
Il présente ensuite une page web permettant de sélectionner Il présente ensuite une page web permettant de sélectionner les packages à mettre à jour.les packages à mettre à jour.
48
Unité 4Unité 4
Gestion des Gestion des périphériquespériphériques
49
Les périphériques sont gérés par le système Les périphériques sont gérés par le système grâce à des pilotes intégrés au noyau soit grâce à des pilotes intégrés au noyau soit de façon fixe, soit sous forme de modules.de façon fixe, soit sous forme de modules.
Les pilotes sont accessibles par les fichiers Les pilotes sont accessibles par les fichiers spéciaux contenus dans le répertoire /dev. spéciaux contenus dans le répertoire /dev.
A chaque périphérique physique du système A chaque périphérique physique du système est attribué un ou plusieurs fichiers est attribué un ou plusieurs fichiers spéciaux. spéciaux.
50
Les fichiers spéciauxLes fichiers spéciaux Le répertoire /dev contient un nombre important de fichiers : Le répertoire /dev contient un nombre important de fichiers :
Fichier spécial Fichier spécial DescriptionDescription
MemMem accès à la mémoire physiqueaccès à la mémoire physique
KmemKmem accès à la mémoire du noyauaccès à la mémoire du noyau
NullNull périphérique videpériphérique vide
PortPort accès aux ports d'entrées/sortiesaccès aux ports d'entrées/sorties
MouseMouse gestion de la souris (peut être un lien sur le fichier gestion de la souris (peut être un lien sur le fichier effectif)effectif)
tty0 à tty__tty0 à tty__ les terminaux virtuels (de 0 à 63)les terminaux virtuels (de 0 à 63)
ttyS0 à ttyS_ttyS0 à ttyS_ les ports sériesles ports séries
pty[p-s][0-9a-f]pty[p-s][0-9a-f] pseudos terminaux maîtrespseudos terminaux maîtres
tty[p-s][0-9a-f]tty[p-s][0-9a-f] pseudos terminaux esclavespseudos terminaux esclaves
lp0, lp1, lp2lp0, lp1, lp2 ports parallèlesports parallèles
js0 et js1js0 et js1 port joystickport joystick
fd___fd___ les lecteurs de disquettes (fd0 est le lecteur standard)les lecteurs de disquettes (fd0 est le lecteur standard)
hd__hd__ les disques durs et les cédéroms IDEles disques durs et les cédéroms IDE
sd__sd__ les disques durs SCSIles disques durs SCSI
scd__scd__ les cédéroms SCSIles cédéroms SCSI
st__ et nst__st__ et nst__ les lecteurs de bandes SCSIles lecteurs de bandes SCSI
51
Caractéristiques des Caractéristiques des fichiers spéciauxfichiers spéciaux La commande La commande ls -lls -l permet d'afficher les attributs importants permet d'afficher les attributs importants
d'un fichier spécial. d'un fichier spécial.
brw-rw---- 1 root disk 3, 0 May 5 1998 /dev/hda brw-rw---- 1 root disk 3, 0 May 5 1998 /dev/hda
Le premier caractère est b pour les périphériques en mode Le premier caractère est b pour les périphériques en mode bloc et c pour les périphériques en mode caractères. bloc et c pour les périphériques en mode caractères.
La taille du fichier étant par définition nulle, elle est remplacée La taille du fichier étant par définition nulle, elle est remplacée dans l'affichage par deux entiers donnant des informations sur dans l'affichage par deux entiers donnant des informations sur le pilote et sur le périphérique : le majeur et le mineurle pilote et sur le périphérique : le majeur et le mineur
52
Major & MinorMajor & Minor le majeur sert d’index dans la table des pilotes le majeur sert d’index dans la table des pilotes
de périphériques afin de sélectionner le pilote de périphériques afin de sélectionner le pilote du périphérique concernédu périphérique concerné
Un pilote est lié à un type de périphérique. Un pilote est lié à un type de périphérique. Mais dans un système, il peut y avoir plusieurs Mais dans un système, il peut y avoir plusieurs périphériques de même type périphériques de même type
D’où l’utilisation du mineur pour identifier une unité D’où l’utilisation du mineur pour identifier une unité
particulière du type de périphérique concernéparticulière du type de périphérique concerné
53
exemplesexemplesls –al /dev/hdals –al /dev/hda
brw-rw---- 1 root disk 3, 0A pr2 8 2000 /dev/hdabrw-rw---- 1 root disk 3, 0A pr2 8 2000 /dev/hda
ls –al /dev/hdbls –al /dev/hdb
brw-rw---- 1 root disk 3, 64A pr2 8 2000 /dev/hdbbrw-rw---- 1 root disk 3, 64A pr2 8 2000 /dev/hdb
Ceci montre que le pilote, numéro majeur 3, Ceci montre que le pilote, numéro majeur 3, contrôle les deux disque hda et hdbcontrôle les deux disque hda et hdb
Quand c’est des disques sont utilisés, le pilote Quand c’est des disques sont utilisés, le pilote va pouvoir les distingués parce que hda son va pouvoir les distingués parce que hda son mineur est 0 alors que hdb a pour mineur 64 mineur est 0 alors que hdb a pour mineur 64
54
Les périphériques Les périphériques existants dans votre existants dans votre systèmesystème L’existence d’un fichier de périphérique L’existence d’un fichier de périphérique
n’implique pas que vous pouvez utiliser n’implique pas que vous pouvez utiliser ce périphérique.ce périphérique. Vous avez aussi besoin du pilote de ce Vous avez aussi besoin du pilote de ce
périphérique.périphérique. La liste des pilotes disponibles dans votre La liste des pilotes disponibles dans votre
système se trouve dans le fichier système se trouve dans le fichier /proc/devices/proc/devices
NB NB Pour pouvoir utiliser un périphérique, la Pour pouvoir utiliser un périphérique, la présence du fichier et du pilote de ce présence du fichier et du pilote de ce périphérique est nécessaire.périphérique est nécessaire.
55
Création d ’un fichier de Création d ’un fichier de périphériquepériphérique Il y a deux méthodes pour créer un Il y a deux méthodes pour créer un
fichier de périphérique :fichier de périphérique : la plus simple est d ’utiliser la la plus simple est d ’utiliser la
commande MAKEDEVcommande MAKEDEV
SyntaxeSyntaxe /dev/MAKEDEV /dev/MAKEDEV nom_fichier_périphnom_fichier_périph
exempleexemple /dev/MAKEDEV console /dev/MAKEDEV console
NBNB ceci doit être fait par root ceci doit être fait par root
56
Création d ’un fichier Création d ’un fichier spécialspécial La deuxième méthode est La deuxième méthode est
d ’utiliser la commande d ’utiliser la commande mknodmknod
syntaxesyntaxemknod nom_fichier_périph type_périph majeur mineurmknod nom_fichier_périph type_périph majeur mineur
exemple : pour créer le fichier de exemple : pour créer le fichier de périphérique de COM1 /dev/ttys0 ( où la périphérique de COM1 /dev/ttys0 ( où la souris est connectée)souris est connectée)mknod /dev/ttyso c 42 40mknod /dev/ttyso c 42 40
57
ConseilConseil Si votre /dev est endommagé vous ne Si votre /dev est endommagé vous ne
pouvez plus utiliser MAKEDEV.pouvez plus utiliser MAKEDEV. Pour l ’utilisation de mknod, vous devez Pour l ’utilisation de mknod, vous devez
connaître le type le majeur et le mineur connaître le type le majeur et le mineur d ’un périphérique ce qui n ’est pas d ’un périphérique ce qui n ’est pas évident.évident.
Pour ne pas avoir des Pbs penser à faire Pour ne pas avoir des Pbs penser à faire une copie de /dev.une copie de /dev.
ls -al /dev > /mnt/liste_fichiers_périphls -al /dev > /mnt/liste_fichiers_périph
58
Unité 5Unité 5
Système de fichierSystème de fichier
59
C ’est quoi un fichier ?C ’est quoi un fichier ? Un fichier est une suite de bitsUn fichier est une suite de bits
par défaut pas de structure internepar défaut pas de structure interne un fichier est enregistré et un fichier est enregistré et
référencé dans un système de référencé dans un système de fichierfichier un fichier peut avoir plusieurs un fichier peut avoir plusieurs
références (noms)références (noms)
60
C ’est quoi un système de C ’est quoi un système de fichier (SF)fichier (SF) structure pour enregistrer les fichiers et structure pour enregistrer les fichiers et
pouvoir les trouvés par la suite.pouvoir les trouvés par la suite. Structure arborescente via l ’utilisation Structure arborescente via l ’utilisation
de répertoirede répertoire Pour pouvoir accéder à un système de Pour pouvoir accéder à un système de
fichiers il faut le montéfichiers il faut le monté un point de montage est toujours un un point de montage est toujours un
répertoire viderépertoire vide le SF racine (/) est activé au démarrage du le SF racine (/) est activé au démarrage du
systèmesystème
61
Système de fichiersSystème de fichiers Linux structure ces données dans des Linux structure ces données dans des
systèmes de fichiers résidant sur systèmes de fichiers résidant sur différentes partitionsdifférentes partitions
Chaque partition peut contenir au plus Chaque partition peut contenir au plus un système de fichiersun système de fichiers
Un système de fichiers ne peut Un système de fichiers ne peut s’étendre sur plusieurs partitions.s’étendre sur plusieurs partitions.
structure interne caché via l ’utilisation structure interne caché via l ’utilisation d ’un SF virtueld ’un SF virtuel
62
Les SFs supportésLes SFs supportés Le plus important : ext2fsLe plus important : ext2fs les plus récents : ext3fs, ReiserFS, IBM JFSles plus récents : ext3fs, ReiserFS, IBM JFS autres SF Unix : minix, ext, xiafsautres SF Unix : minix, ext, xiafs FAT-12, FAT-16, FAT-32,VFAT, NTFS (read-only)FAT-12, FAT-16, FAT-32,VFAT, NTFS (read-only) ISO9660 (cédérom)ISO9660 (cédérom) SMBFS (partage Windows), NCPFS (netware partage)SMBFS (partage Windows), NCPFS (netware partage) HPFS (OS/2) readonly, HFS (Macintosh) readonlyHPFS (OS/2) readonly, HFS (Macintosh) readonly NFSNFS (Network File System)(Network File System) AFSAFS (Amiga)(Amiga) /Proc/Proc (accès au noyau)(accès au noyau)
63
SF par défaut de LINUX : SF par défaut de LINUX : ext2fsext2fs Les partitions sont divisées en bloc Les partitions sont divisées en bloc
de 1024 octets (par défaut)de 1024 octets (par défaut) les blocs peuvent avoir différentes les blocs peuvent avoir différentes
utilisations:utilisations: super blocsuper bloc Inode (Index node)Inode (Index node) bloc d’indirection (double, triple)bloc d’indirection (double, triple) bloc de données (data block)bloc de données (data block)
64
Super blocSuper bloc Le premier bloc d’un SF, plusieurs Le premier bloc d’un SF, plusieurs
copies sont disponibles (8193, 16385, copies sont disponibles (8193, 16385, …)…)
contient les informations générales sur contient les informations générales sur le SFle SF dernier montage date/placedernier montage date/place taille d ’un bloctaille d ’un bloc pointeurs vers les inodes librespointeurs vers les inodes libres pointeurs vers les blocs librespointeurs vers les blocs libres pointeur sur la racine du SF pointeur sur la racine du SF
65
InodesInodes 256 octets (4 par blocs de 1024 octets)256 octets (4 par blocs de 1024 octets) Un inode contient les informations sur un Un inode contient les informations sur un
fichier :fichier : Le type et le mode d’accèsLe type et le mode d’accès Le nombre de liens physiquesLe nombre de liens physiques La taille (en octets) du fichierLa taille (en octets) du fichier L’uid et le gid du fichierL’uid et le gid du fichier La date de dernier accès en lecture et en écriture des données et La date de dernier accès en lecture et en écriture des données et
du dernier accès à l’inodedu dernier accès à l’inode Un tableau de 12 pointeurs sur des blocs de données directs Un tableau de 12 pointeurs sur des blocs de données directs 3 pointeurs d’indirection :3 pointeurs d’indirection :
Un pointeur sur un bloc d’adresses sur un niveau d’indirectionUn pointeur sur un bloc d’adresses sur un niveau d’indirection Un pointeur sur un bloc d’adresses sur deux niveaux d’indirectionUn pointeur sur un bloc d’adresses sur deux niveaux d’indirection Un pointeur sur un bloc d’adresses sur trois niveaux d’indirectionUn pointeur sur un bloc d’adresses sur trois niveaux d’indirection
Le nombre de blocs physiquement utilisés pour stocker le fichierLe nombre de blocs physiquement utilisés pour stocker le fichier
66
Bloc donnéesBloc données Contient des données d’un fichierContient des données d’un fichier
Le fichier peut être un répertoire, Le fichier peut être un répertoire, dans ce cas les données sont la liste dans ce cas les données sont la liste des noms de fichiers de ce répertoire des noms de fichiers de ce répertoire et leurs inodeset leurs inodes
Deux fichiers différents peuvent Deux fichiers différents peuvent avoir le même inodeavoir le même inode les les fichiers peuvent avoir plusieurs fichiers peuvent avoir plusieurs nomsnoms
67
68
Donc ...Donc ... Les plus importants composants d’un SF Les plus importants composants d’un SF
sont les inodes et les blocs datasont les inodes et les blocs data Un SF est saturé siUn SF est saturé si
Pas d’inode libre Pas d’inode libre ouou Pas de bloc data librePas de bloc data libre
Configurer votre SF suivant la taille de Configurer votre SF suivant la taille de vos fichiersvos fichiers Taille d’un bloc (1024 par défaut, 2048, Taille d’un bloc (1024 par défaut, 2048,
4096 possible)4096 possible) octets par inode (4096 par défaut)octets par inode (4096 par défaut)
69
Création de partitionCréation de partition La création d’une partition est faite par La création d’une partition est faite par
fdiskfdisk Syntax : fdisk [device disque]Syntax : fdisk [device disque] Importantes commandes de fdiskImportantes commandes de fdisk
p : affiche la table de la partitionp : affiche la table de la partition n : ajout d’une nouvelle partitionn : ajout d’une nouvelle partition t : change le type de la partitiont : change le type de la partition d : supprime une partitiond : supprime une partition w : sauvegarde la table de partition et quittew : sauvegarde la table de partition et quitte q : quitte sans sauvegarde q : quitte sans sauvegarde
70
Création d’un SFCréation d’un SF La création d’un SF est faite avec La création d’un SF est faite avec
mke2fsmke2fs Définie le super bloc et la table d’inodesDéfinie le super bloc et la table d’inodes SyntaxeSyntaxe
mke2fs –b 1024 –i 4096 –c /dev/hda6mke2fs –b 1024 –i 4096 –c /dev/hda6 b définir la taille d’un bloc en octetsb définir la taille d’un bloc en octets i octects-par-inodei octects-par-inode c vérification des secteurs défectueux du c vérification des secteurs défectueux du
disque disque j création de EXT3j création de EXT3
NB La création d’un SF sur un NB La création d’un SF sur un périphérique écrase son contenupériphérique écrase son contenu
71
Monter un SFMonter un SF Utiliser la commande Utiliser la commande mountmount : :
Il faut préciserIl faut préciser le fichier spécial du périphérique le fichier spécial du périphérique Le point de montageLe point de montage Le type du SF (optionnel)Le type du SF (optionnel)
mount –t ext2 /dev/hda6 /mountpoint mount –t ext2 /dev/hda6 /mountpoint Pour afficher la liste des SFs montés, utiliser Pour afficher la liste des SFs montés, utiliser
mount mount sans arguments sans arguments
72
Monter des SFs au Monter des SFs au démarragedémarrage Pour chaque SF à monter au Pour chaque SF à monter au
démarrage ajouter une line démarrage ajouter une line dans /etc/fstabdans /etc/fstab
/dev/hda2/dev/hda2 / / ext2ext2 defaults defaults 1 1 11
/dev/cdrom /mnt/cdrom/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user iso9660 noauto,ro,user 0 00 0
/dev/fd0 /mnt/floppy msdos noauto,user /dev/fd0 /mnt/floppy msdos noauto,user 0 00 0
/dev/hda6 /mountpoint ext2 defaults /dev/hda6 /mountpoint ext2 defaults 0 00 0
73
Options de montageOptions de montage On utilisé plusieurs options On utilisé plusieurs options
autoauto montage automatique au démarragemontage automatique au démarrage noautonoauto ne pas monter automatiquementne pas monter automatiquement useruser users sont autorisés à monter ce SFusers sont autorisés à monter ce SF ownerowner idem auto sauf que l’utilisateur doit être le idem auto sauf que l’utilisateur doit être le
propriétairepropriétaire roro lecture seullecture seul rwrw lecture/ecriturelecture/ecriture
Pour autres options voir man mountPour autres options voir man mount Ces option peuvent être spécifiées derrière Ces option peuvent être spécifiées derrière
–o lors de l’exécution de mount–o lors de l’exécution de mount Ou bien les spécifies séparées par des Ou bien les spécifies séparées par des
virgules dans la 4 colonne du fichier virgules dans la 4 colonne du fichier /etc/fstab/etc/fstab
74
Démonter un SFDémonter un SF Le SF ne doit pas être en utilisation : Le SF ne doit pas être en utilisation :
vérifier avec vérifier avec fuserfuser Des fichiers ouvertsDes fichiers ouverts Des programmes entrains de s’exécuterDes programmes entrains de s’exécuter Des répertoires actifsDes répertoires actifs
Utiliser la commande umount avecUtiliser la commande umount avec Le nom du deviceLe nom du device Le point de montageLe point de montage Ou les deuxOu les deux
umount /dev/cdromumount /dev/cdromumount /mnt/cdromumount /mnt/cdrom
75
Commandes utilesCommandes utiles df : affiche la place libre en termes de blocs et df : affiche la place libre en termes de blocs et
d ’inodes sur chacune des partitions montées.d ’inodes sur chacune des partitions montées. fsck : réparation des SFsfsck : réparation des SFs
de préférence les SFs doivent être montés en lecture de préférence les SFs doivent être montés en lecture seul ou non montésseul ou non montés
place les fichiers perdus dans /lost+foundplace les fichiers perdus dans /lost+found ln : création de liensln : création de liens du : montre l’usage d’un répertoire du : montre l’usage d’un répertoire mtools (mdir, mcopy, mdel, mformat, …) mtools (mdir, mcopy, mdel, mformat, …)
permet d ’utiliser les SFs msdos sans les permet d ’utiliser les SFs msdos sans les montés.montés. Fichier de configuration /etc/mtools.confFichier de configuration /etc/mtools.conf
76
QuotasQuotas Quota permet de limiter Quota permet de limiter
l’occupation de l ’espace disque l’occupation de l ’espace disque pour les utilisateurs et les groupespour les utilisateurs et les groupes
on peut limiter le nombre de blocs on peut limiter le nombre de blocs et/ou d’inodes qu’un utilisateur ou et/ou d’inodes qu’un utilisateur ou un groupe peut utiliserun groupe peut utiliser
les quotas sont sont définies par les quotas sont sont définies par Système de fichierSystème de fichier
77
Hard & soft limite, période Hard & soft limite, période de tolérancede tolérance Un quota définit deux limites : hard et Un quota définit deux limites : hard et
softsoft si l ’utilisateur dépasse la limite soft : si l ’utilisateur dépasse la limite soft :
message warning seulementmessage warning seulement s ’il dépasse la limite hard : erreurs ’il dépasse la limite hard : erreur
la période de tolérance indique le temps la période de tolérance indique le temps durant lequel on peut dépasser la limite durant lequel on peut dépasser la limite softsoft après cette période à la place du warning on après cette période à la place du warning on
a un message d ’erreur.a un message d ’erreur.
78
Implémentation de quota Implémentation de quota en Linuxen Linux Le support de quota est compilé avec le noyauLe support de quota est compilé avec le noyau
grep –i quota /boot/config_version, rpm –qa |grep quotagrep –i quota /boot/config_version, rpm –qa |grep quota pas de démon nécessairepas de démon nécessaire
un utilisateur peut avoir différentes quotasun utilisateur peut avoir différentes quotas aquota.user et aquota.group dans la racine de chaque SF aquota.user et aquota.group dans la racine de chaque SF Permissions 600Permissions 600
la définition de quota doit être activée lors du montage d ’un la définition de quota doit être activée lors du montage d ’un SFSF
options de montage : usrquota, grpquotaoptions de montage : usrquota, grpquota peut être spécifiée dans /etc/fstabpeut être spécifiée dans /etc/fstab
la gestion des quotas est démarrée après le montage par la la gestion des quotas est démarrée après le montage par la commande commande quotaonquotaon..
Automatiquement exécutée à partir de /etc/rc.d/rc.sysinit après un Automatiquement exécutée à partir de /etc/rc.d/rc.sysinit après un mount -amount -a
79
Activation de quotaActivation de quota Modifier /etc/fstabModifier /etc/fstab/dev/hda2/dev/hda2 / / ext2ext2 defaults,userquota,grpquota defaults,userquota,grpquota
1 11 1/dev/cdrom /mnt/cdrom/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user 0 0iso9660 noauto,ro,user 0 0/dev/fd0 /mnt/floppy /dev/fd0 /mnt/floppy msdos noauto,user 0 0 msdos noauto,user 0 0/dev/hda6 /mountpoint /dev/hda6 /mountpoint ext2 defaults 0 0 ext2 defaults 0 0
Créer aquota.user et aquota.group :Créer aquota.user et aquota.group :# touch /aquota.user /aquota.group# touch /aquota.user /aquota.group
Remonter la partitionRemonter la partition# mount -o remount,usrquota,grpquota /# mount -o remount,usrquota,grpquota /
calculer l ’usage courantcalculer l ’usage courant# quotacheck# quotacheck
activer quotaactiver quota# quotaon# quotaon
80
Configuration du quotaConfiguration du quota Réaliser par la commande edquotaRéaliser par la commande edquota
fait appel à l éditeur par défaut fait appel à l éditeur par défaut ($EDITOR)($EDITOR)
quota utilisateur : quota utilisateur : edquota -u edquota -u nom_utilisateurnom_utilisateur
quota du group :quota du group : edquota -g edquota -g nom_groupnom_group
période de tolérance :période de tolérance : edquota -t edquota -t copier une quota :copier une quota :
edquota -p tux1 -u tux2 tux3 tux4edquota -p tux1 -u tux2 tux3 tux4
81
Informations quotaInformations quota La commande quotaLa commande quota
infos sur le quota d ’un utilisateurinfos sur le quota d ’un utilisateur peut être exécuter par tous utilisateurpeut être exécuter par tous utilisateur un utilisateur ne peut visualiser que son un utilisateur ne peut visualiser que son
quotaquota repquotarepquota
infos sur les quotas de tous les utilisateurs infos sur les quotas de tous les utilisateurs et groupeset groupes
uniquement root peut l’exécuteruniquement root peut l’exécuter
82
Les ACLs Les droits d’accès ne sont affectés que
pour trois types d’utilisateur : le propriétaire, le groupe propriétaire le reste du monde .
On ne peut pas donner des droits sur un fichier à un utilisateur qui n’est ni propriétaire, ni membre du groupe propriétaire?
Solution : Les ACLs
83
Installation : Mise à jour noyau
Il faut vérifier que le noyau est compilé avec les bonnes options :
$ cat /boot/config* | grep _ACLdoit au moins renvoyer les lignes suivantes (pour un système de fichiers de type ext3) :
CONFIG_EXT3_FS_POSIX_ACL=yCONFIG_JFS_POSIX_ACL=yCONFIG_FS_POSIX_ACL=y
sinon il faut recompiler le noyau avec les bonnes options
84
Installation : Mise à jour paquetages
On installe les paquets nécessaires à la gestion des ACL. Par exemple Sous Mandrake 10 :
# urpmi acl-2.2.22-1mdk.i586 libacl1-2.2.22-1mdk.i586
l’installation des dépendances libacl1, libattr1, et libc6 se faisant automatiquement si besoin... Dans tous les cas, les paquets acl-x.x.x et libacl1-x.x.x doivent être installés.
85
Prise en compte des ACLs Pour chaque partition, Il faut activer la prise en
charge des ACL: Exemple
Pour activer les ACL sur /dev/hda1 sans avoir à redémarrer le système, on exécute la commande :
# mount -o remount,acl /dev/hda1
Pour automatiser l’activation des ACL lors des prochains reboot, il faut ajouter acl aux options à transmettre au montage dans le fichier /etc/fstab :
/dev/hda1 / ext3 defaults,acl 0 1
86
Pour vérifier que la modification des ACL fonctionne, on va autoriser l’utilisateur user02 à écrire dans le fichier test :
$ setfacl -m u:user02:w test
Vérifions que la modification a bien été prise en compte...$ getfacl test # file : test # owner : user01 # group : user01
user ::rw- user :user02 :-w- group ::r— mask ::rw- other ::r—
l’utilisateur user02 a des droits en lecture et en écriture sur le fichier test.
87
Quelques définitions Trois notions principales :
ACL minimale : l’ACL minimale est une traduction en ACL des droits d’accès traditionnels Linux
ACL étendue : Elle contient au moins un élément de type mask et peut contenir des éléments de type utilisateur et/ou groupe.
ACL par défaut : Les ACL par défaut ne peuvent être appliquées qu’aux répertoires et définissent de quels droits un objet du système de fichiers devra hériter (de son répertoire parent) lors de sa création.
88
Ajout/Modification des droits utilisateur Pour modifier l’ACL d’un fichier/dossier,
il faut, soit être propriétaire du fichier (utilisateur ou groupe), soit être root.
Pour modifier les droits d’un utilisateurSetfacl –m u:user:perms nom_fichier
le paramètre u est suivi du nom ou de l’uid de l’utilisateur, suivi des droits à affecter.Si l’uid est vide, le propriétaire sera utilisé.
Pour permettre à l’utilisateur user01 d’écrire dans le fichier test, on utilisera la commande :
$ setfacl -m u:user01:w test
89
Ajout/Modification des droits d’un groupe syntaxeSetfacl –m g:user:perms nom_fichier
le paramètre g est suivi du nom ou du gid du groupe, suivi des droits à affecter.
Si le gid est vide, le groupe propriétaire sera utilisé. Pour permettre au groupe admin d’écrire dans le fichier
test, on utilisera la commande :
$ setfacl -m g:admin:w test
Pour modifier les droits du reste du monde (other), on utilisera le paramètre o, suivi des droits à affecter en respectant la syntaxe suivante :
Setfacl –m o::perms nom_fichier
90
Suppression d’une ACL Lorsqu’on souhaite supprimer une ACL, on ne peut
supprimer les éléments de type mask et/ou utilisateur/groupe. Le maximum des entrés de l’ACL supprimées, il restera les entrées correspondantes aux droits unix du fichier concerné.
Pour détruire toutes les entrées d’une ACL étendue :
$ setfacl -b mon.fichier
Pour détruire des entrées particulières, les permissions ne doivent pas être passées en paramètre :
$ setfacl -x g:users mon.fichier
Dans l’exemple ci-dessus, on enlève de l’ACL toutes les entrées correspondantes au groupe users.
91
ACL par défaut Une ACL par défaut s’applique à un répertoire. Ce type d’ACL permet de définir des
permissions qui seront appliqués par défaut à tout fichier ou répertoire créé sous le répertoire de départ.
Création d’une ACL par défaut :
Soit le répertoire mon.repertoire (drwxr-xr-x user01 users). On décide qu’à partir de maintenant, user02 pourra lire et écrire dans les fichiers/répertoires créés sous mon.repertoire.
On crée donc l’ACL par défaut :
$ setfacl -m d:u:user02:rw mon.repertoire
92
RAID ET LVM
93
RAID : Principe Le principe du RAID repose sur l'idée
de combiner plusieurs disques durs bon marché (indifférement IDE ou SCSI) dans le but de : Etendre la capacité de stockage en
ligne possible ; Introduire une notion de redondance
une plus grande sécurisation des données. Améliorer les performances.
94
Niveaux de RAID disponibles sous Linux Les matrices RAID pouvant être
construites de diverses manières, elle peuvent afficher des caractéristiques différentes selon la configuration finale retenue ( niveaux RAID) Il existe différents niveaux RAID Linéaire, Raid 0, Raid 1, Raid 0+1, Raid 4, Raid 5.
95
Mode Linéaire Pour étendre la capacité de stockage disponible en ligne
sans tolérance aux pannes. On combine les capacités de stockage d'un ensemble
de disques existants : les données sont d'abord écrites sur le premier disque, puis lorsqu'il est plein sur le second, etc....
Avantages :- Permet de disposer de 100% de l'espace disque dans une partition ;- Moins de temps CPU mobilisé par le RAID dans le noyau.
Inconvénients :- Pas de haute disponibilité : la perte d'un disque entraine la perte des données ;- Quasiment pas d'amélioration des performances (on peut cependant obtenir une amélioration si des I/O se produisent de manières concurrentes sur des disques différents).
96
RAID 0 striping Raid 0 est souvent utilisée lorsque la haute
disponibilité des données n'est pas nécessaire on doit disposer d'au moins 2 disques.
les données sont découpées puis dispersées sur les disques sans redondance.
Avantages :- Permet de disposer de 100% de l'espace disque dans une partition ;- Amélioration des performances I/O en lecture et écriture.
Inconvénients :- Pas de haute disponibilité : la perte d'un disque entraine la perte des données.
97
RAID 1 : mirroring Raid 1 implémente une stricte duplication des données
sur tous les disques présents dans le miroir on doit disposer d'au moins 2 disques. L'information étant enregistrée N fois sur les disques
permet de gagner du temps en lecture même si on en perds lors de l'écriture,
si on perds N-1 disques on ne perds pas les données. Avantages :
Haute disponibilité des données : survit à la perte de N-1 disques ;
Amélioration des performances en lecture. Inconvénients :
Dégradation des performances en écriture ; Mobilise un peu plus de temps CPU dans le noyau ; Perte de 50% de l'espace disque.
98
RAID 4 : striping L'algorithme utilisé permet de dispatcher les I/O sur
l'ensemble des disques (au moins 3) tout en réservant un disque pour sauvegarder une donnée supplémentaire de parité.
si on perds un disque, on peut reconstituer l'information manquante.
Cependant, l'utilisation d'un disque de parité ajoute un goulot d'étranglement au système (toute écriture va provoquer un accés au disque de parité), pour cela il est préférable d'utiliser à la place le Raid5.
Avantages : Haute disponibilité des données : survit à la perte d'un
disque ; Amélioration des performances en lecture.
Inconvénients On perds l'équivalent d'un disque pour le stockage des
données ; On risque de plafonner le débit en écriture rapidement.
99
RAID 5 Le RAID 5 est sensiblement identique au RAID
4 mais améliore le procédé en stripant l'information de parité sur l'ensemble des disques.
Avantages : Haute disponibilité des données : survit à la perte
d'un disque ; Amélioration des performances en lecture et
écriture. Inconvénients
On perds l'équivalent d'un disque pour le stockage des données.
100
Combinaison de niveaux RAID Chaque niveau RAID à des avantages et
des inconvénients. La combinaison des niveaux RAID a
pour objectif de produire des matrices affichant tous les avantages et aucun des inconvénients des niveaux créés à l'origine
Exemple, Dans une matrice RAID 0, les disques durs
sont des matrices RAID 1. Une telle situation offre les avantages de RAID 0 au niveau vitesse, et la fiabilité de RAID 1.
101
Combinaison de niveaux RAID les imbrications de niveaux RAID les plus courantes :
RAID 1+0 RAID 5+0 RAID 5+1
il est important de garder à l'esprit les deux points suivants :
L'ordre selon lequel les niveaux RAID sont combinés peut avoir un impact considérable sur la fiabilité. En d'autres termes, RAID 1+0 et RAID 0+1 ne correspondent pas à la même matrice.
Toutes les implémentations de RAID imbriqués partagent le même inconvénient, à savoir le coût de l'imbrication ; par exemple, RAID 5+1, la plus petite matrice possible, est composée de six disques durs (et un nombre encore plus élevé de disques durs est nécessaire pour des matrices plus grandes).
102
RAID 0+1 Raid 0+1 combine RAID 0 et RAID 1. Elle permet
d'améliorer les performances I/O en lecture tout en permettant une bonne disponibilité des données grace à leurs duplications sur l'ensemble des disques.
Perte de 50% de l'espace disque potentiellement disponible.
Avantages : Haute disponibilité des données : survit à la perte d'un
coté du miroir ; Amélioration des performances en lecture et écriture.
Inconvénients Mobilise un peu plus de temps CPU dans le noyau ; Perte de 50% de l'espace disque.
103
Disques de spare Un disque de spare est utilisé pour
remplacer automatiquement un disque en faute.
Les RAIDS 1, 4 et 5 peuvent utiliser la notion de disques de spare.
on doit les rajouter manuellement dans le fichier de configuration /etc/raidtab pour le cas d'un reboot :
# raidhotadd /dev/md[0-15] /dev/sdf1ou # raidhotremove /dev/md[0-15]
/dev/sdf1
RAID 5
104
Fichier /etc/raidtab pour le Raid 0
raiddev /dev/md0raid-level 0nr-raid-disks 2persistent-superblock 1chunk-size 4device /dev/hda1raid-disk 0device /dev/hdb1raid-disk 1
105
Fichier /etc/raidtab pour le Raid 1 raiddev /dev/md0
raid-level 1nr-raid-disks 2persistent-superblock 1chunk-size 16device /dev/hda1raid-disk 0device /dev/hdb1raid-disk 1
106
Gestionnaire de volumes logiques (LVM) Parmi les technologies avancées de stockage
figurent le gestionnaire de volumes logiques (ou LVM de l'anglais Logical Volume Management).
Cette technologie permet de considérer les périphériques physiques de stockage de masse comme des éléments de base sur lesquels différentes configurations de stockage peuvent être construites.
Les capacités exactes, qui varient selon l'implémentation spécifique, peuvent inclure le groupement physique du stockage, le redimensionnement de volumes logiques et la migration de données.
107
Groupement physique du stockage le groupement physique du stockage représente la base de toutes les
implémentations du LVM. Comme son nom l'indique, les périphériques physiques de stockage de masse peuvent être groupés de manière à créer un ou plusieurs périphériques logiques de stockage. Les périphériques logiques de stockage (ou volumes logiques) peuvent avoir une capacité supérieure à celle de tout périphérique de stockage de masse sous-jacent.
Exemple, avec deux disques de 100 Go, il est possible de créer un volume logique de
200 Go. Mais il est également possible de créer deux volumes logiques, un de 150 Go et un de 50 Go. En fait, toute combinaison de volumes logiques inférieure ou égale à la capacité totale (soit 200 Go dans notre exemple) est possible. Les choix possibles ne sont en fait limités que par les besoins de votre entreprise.
Un administrateur système peut ainsi considérer tout le stockage comme une entité globale dont il peut utiliser toute quantité souhaitée. En outre, des disques supplémentaires pouvant être ajoutés ultérieurement au stockage, il est relativement facile de toujours disposer d'une quantité de stockage supérieure à celle requise par les utilisateurs.
108
Redimensionnement de volumes logiques Une des fonctions du LVM très appréciée par la plupart des
administrateurs système est sa capacité à attribuer du stockage rapidement, là où il est nécessaire. Dans une configuration de système autre que le LVM, lorsque la mémoire devient insuffisante — dans le meilleur cas de figure — il est nécessaire de transférer des fichiers du périphérique manquant de mémoire vers un autre périphérique disposant d'espace libre. Très souvent, il est nécessaire de changer la configuration elle-même des périphériques de stockage de masse de votre système ; une tâche qui devra avoir lieu après les heures de bureau normales.
Avec LVM, il est possible d'augmenter facilement la taille d'un volume logique.
Supposons pour un instant que notre groupement de stockage de 200 Go ait été utilisé pour créer un volume logique de 150 Go, laissant ainsi 50 Go en réserve. Dans le cas où le volume logique de 150 Go se remplirait à capacité, le LVM pourrait être utilisé pour agrandir sa taille (disons de 10 Go) sans pour ce faire, changer physiquement la configuration. Selon l'environnement du système d'exploitation, il sera peut-être possible d'effectuer cette opération de manière dynamique ; dans le cas contraire, une courte période d'indisponibilité sera peut être nécessaire afin de pouvoir effectuer le redimensionnement.
109
Anatomie de LVM Groupe de volumes ( VG) :
l'abstraction de plus haut niveau utilisée dans LVM. C'est un ensemble de volumes logiques et physiques au sein d'une seule unité d'administration.
Volume physique ( PV) : Un volume physique est typiquement un disque dur, bien que cela puisse
aussi être un périphérique qui « ressemble » à un disque dur (par exemple, un périphérique de RAID logiciel).
Volume logique ( LV) : C'est l'équivalent d'une partition de disque d'un système sans LVM. Le LV
est visible comme un périphérique de bloc standard. En tant que tel, le LV peut contenir un système de fichiers. (Ex : /home.)
Extent physique ( PE) : Chaque volume physique est divisé en morceaux de données, appelés
extents physiques. Ces extents ont une taille identique à celle des extents logiques du groupe de volumes.
Extent logique ( LE) : Chaque volume logique est divisé en morceaux de données, appelés
extents logiques. La taille d'extents est la même pour tous les volumes logiques du groupe de volumes.
110
Unité 6Unité 6
SchedulingScheduling
111
SchedulingScheduling Automatiser les taches de routineAutomatiser les taches de routine lancement automatique des taches à lancement automatique des taches à
des moments spécifiquesdes moments spécifiques le démon crond fait le scheduling pour le démon crond fait le scheduling pour
les fichiers conrontables fichiers conrontab la commande anacron exécute les jobs la commande anacron exécute les jobs
anacronanacron le démon atd est responsable le démon atd est responsable
d ’exécuter les jobs soumets par les d ’exécuter les jobs soumets par les commandes at ou batchcommandes at ou batch
112
croncron Les jobs sont configurés dans des fichiers Les jobs sont configurés dans des fichiers
crontabcrontab Syntaxe d’une ligneSyntaxe d’une ligne
[minute][heur][jour-du-moi][moi][jour-de-semaine][job][minute][heur][jour-du-moi][moi][jour-de-semaine][job]
chaque minute, crond cherche dans les fichiers chaque minute, crond cherche dans les fichiers crontab s’il y a un job à lancercrontab s’il y a un job à lancer Les fichiers crontabs des utilisateurs sont enregistrés Les fichiers crontabs des utilisateurs sont enregistrés
dans /var/spool/cron/usernamedans /var/spool/cron/username le fichier crontab système est /etc/crontable fichier crontab système est /etc/crontab tous les fichiers de /etc/cron.d sont considérés tous les fichiers de /etc/cron.d sont considérés
comme des fichiers crontabcomme des fichiers crontab
113
Exemple d ’un fichier Exemple d ’un fichier crontab utilisateurcrontab utilisateur
0 8 * * * cmd1
0,30 9 * * * cmd2
0,30 8-18 * * * cmd3
*/5 * * * * cmd4
12 13 1 * * cmd5
49 23 16 9 * cmd6
0 15 * * 1 cmd7
32 14 1 1 1 cmd8
114
Commandes crontabCommandes crontab Un utilisateur peut modifier son crontab, Un utilisateur peut modifier son crontab,
mais il ne peut pas signaler à crond ce mais il ne peut pas signaler à crond ce changementchangement
avec la commande crontab (SUID root) avec la commande crontab (SUID root) c ’est possiblec ’est possible
syntaxesyntaxe crontab -lcrontab -l affiche crontab de l’utilisateur courant affiche crontab de l’utilisateur courant crontab -rcrontab -r supprime crontab de l’utilisateur supprime crontab de l’utilisateur
courantcourant crontab -ecrontab -e édit crontab de l’utilisateur courant édit crontab de l’utilisateur courant
NB root peut utiliser -u username pour NB root peut utiliser -u username pour spécifier un utilisateur autre que root.spécifier un utilisateur autre que root.
115
Crontab systèmeCrontab système Le fichier crontab du système est /etc/crontabLe fichier crontab du système est /etc/crontab le répertoire cronatb système est /etc/cron.dle répertoire cronatb système est /etc/cron.d
tous les fichiers de ce répertoire sont lu par crondtous les fichiers de ce répertoire sont lu par crond syntaxesyntaxe
on peut définir des variables d ’environnementon peut définir des variables d ’environnement spécifier l’uid sous lequel la commande va être exécuterspécifier l’uid sous lequel la commande va être exécuter
SHELL=/bin/bashSHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/binPATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=rootMAILTO=root
HOME=/HOME=/
01 * * * * root run-parts /etc/cron.hourly01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily02 4 * * * root run-parts /etc/cron.daily
22 4 * * * root run-parts /etc/cron.weekly22 4 * * * root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly42 4 1 * * root run-parts /etc/cron.monthly
116
atat La commande at exécute une La commande at exécute une
commande à un moment donnée.commande à un moment donnée.
# at 4am# at 4am
ps auxps aux
^d^d
# at -f bshfile 16:00 + 3 days# at -f bshfile 16:00 + 3 days
117
Contrôle des jobs atContrôle des jobs at Liste des jobsListe des jobs
$at -l$at -l
$atq$atq
annuler un jobannuler un job$at -d job$at -d job$atrm job$atrm job
permission d ’utilisation de atpermission d ’utilisation de at /etc/at.allow/etc/at.allow /etc/at.deny/etc/at.deny
118
batchbatch Exécute une commande quand le Exécute une commande quand le
système et moins chargésystème et moins chargé
$batch$batch
echo la charge est minimeecho la charge est minime
^d^d
119
Partie II
Administration Réseau
120
Configuration statique des interfaces réseau ifconfig ( InterFace CONFiguration ), permet
de configurer les interfaces réseau de la machine.
il existe plusieurs types d’interfaces réseau. Les plus courants sont :
l’interface loopback, qui représente le réseau virtuel de la machine, et qui permet aux applications réseau d’une même machine de communiquer entre elles même si l’on ne dispose pas de carte réseau ;
les interfaces des cartes réseau (que ce soient des cartes Ethernet, TokenRing ou autres) ;
les interfaces ppp, plip ou slip, qui sont des interfaces permettant d’utiliser les connexions sérielles, parallèles ou téléphoniques comme des réseaux.
121
Configuration statique des interfaces réseau ifconfig ( InterFace CONFiguration ), permet
de configurer les interfaces réseau de la machine.
il existe plusieurs types d’interfaces réseau. Les plus courants sont :
l’interface loopback, qui représente le réseau virtuel de la machine, et qui permet aux applications réseau d’une même machine de communiquer entre elles même si l’on ne dispose pas de carte réseau ;
les interfaces des cartes réseau (que ce soient des cartes Ethernet, TokenRing ou autres) ;
les interfaces ppp, plip ou slip, qui sont des interfaces permettant d’utiliser les connexions sérielles, parallèles ou téléphoniques comme des réseaux.
122
Configuration statique des interfaces réseau La configuration d’une interface comprend l’initialisation
des pilotes nécessaires à son fonctionnement et l’affectation d’une adresse IP à cette interface.
syntaxe : ifconfig interface adresse netmask masque up interface est le nom de l’interface réseau que vous voulez
configurer, adresse est l’adresse IP que cette interface gérera, masque est le masque de sous-réseau que vous utilisez.
En general, on a à configurer des interfaces Ethernet, auquel cas on utilisera les noms eth0, eth1, etc.
Pour configurer l’interface loopback, on utilise le nom d’interface lo.
Exemple ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
123
Configuration statique des interfaces réseau Le paramètre up donné à ifconfig lui
indique que l’interface doit être activée. Cela signifie que dès que la commande ifconfig s’achèvera, votre interface réseau sera active et fonctionnelle.
il existe le paramètre inverse : down. Ce paramètre s’utilise tout simplement dans la commande ifconfig avec la syntaxe suivante : ifconfig interface down où interface est toujours le nom de
l’interface
124
broadcast Par defaut, Le noyau utilise le nombre
255 pour les adresses de broadcast dans les composantes de l’adresse IP qui ne fait pas partie de l’adresse de sous-réseau.
Si vous désirez utiliser une autre adresse (l’adresse du sous-réseau par exemple), vous devrez utiliser l’option broadcast de la commande ifconfig. ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast
192.168.0.0 up
125
Alias d’une interface reseau il est possible d’affecter plusieurs adresses IP à certaines
interfaces réseau (non point a point). Lorsqu’une interface dispose de plusieurs adresses, la
première est considérée comme l’adresse principale de l’interface, et les suivantes comme des alias.
Un nom d’alias est le nom de l’interface réseau principale et le numéro de l’alias, séparés par deux points (caractère ’:’).
Exemple, si l’interface eth0 dispose d’un alias, celui-ci sera nommé eth0:0.
Pour fixer l’adresse d’un alias d’une interface réseau, on utilisera la syntaxe suivante :
ifconfig interface:numéro add adresse netmask masque où interface est toujours le nom de l’interface, numéro est le numéro de l’alias, adresse est l’adresse IP à attribuer à cet alias, et masque est le masque de sous-réseau de cette adresse.
126
Regle de routage Il est possible de définir plusieurs règles de routage actives
simultanément. L’ensemble de ces règles constitue ce qu’on appelle la table
de routage. La règle utilisée est sélectionnée par le noyau en fonction de
l’adresse destination du paquet à router. Chaque règle indique donc un critère de sélection sur les
adresses, et l’interface vers laquelle doivent être transférés les paquets dont l’adresse destination vérifie cette règle.
La commande utilisée pour définir une route est, chose surprenante, la commande système route.
syntaxe : route opération [-net | -host] adresse netmask masque interface
opération est l’opération à effectuer sur la table de routage. interface est l’interface réseau vers laquelle doivent être envoyés les
paquets qui vérifient les critères de sélection de cette règle.
127
Regle de routage : ajout d’une regle l’ajout d’une règle de routage se fait par l’option add.
Add net adresse : permet d’indiquer que le critère de sélection des paquets se fait sur l’adresse du réseau destination. il faut indiquer le masque de sous-réseau masque à l’aide de l’option netmask.
Add host adresse : le critère de sélection des paquets se fait sur l’adresse de la machine destination.
adresse est l’adresse IP de la destination, que celle-ci soit un réseau ou une machine.
Par exemple : règle de routage à utiliser pour l’interface loopback
route add -net 127.0.0.0 netmask 255.0.0.0 lo Il n’est pas nécessaire d’ajouter les règles de
routage pour les réseaux auxquel la machine est connectée. Ifconfig le fait automatiquement.
la commande route est nécessaire lorsqu’il faut définir les passerelles à utiliser pour l’envoi des paquets destinés à une machine à laquelle la machine locale ne peut accéder directement.
128
Regle de routage : passerelle Syntaxe d’une règle de routage faisant
intervenir une passerelle route add [-net | -host] adresse netmask masque gw passerelle interface
où passerelle est l’adresse IP de la passerelle à utiliser pour router les paquets qui vérifient les critères de cette règle.
Exemple supposons qu’une machine soit connectée à un réseau
d’adresse 192.168.0.0, et que sur ce réseau se trouve une passerelle d’adresse 192.168.0.1 permettant d’atteindre un autre réseau, dont l’adresse est 192.168.1.0. Une machine du réseau 192.168.0.0 aura typiquement les règles de routage suivantes :
route add -net 192.168.0.0 netmask 255.255.255.0 eth0route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
eth0 On doit utiliser ces regles dans les machines des deux
reseaux
129
Passerelle par defaut Les règles de routage spécifient l’adresse du
réseau destination. Problème
il est impossible d’utiliser une règle de routage différente pour toutes les adresses de réseaux possibles.
Solution Définition d’une passerelle par défaut : passerelle
vers laquelle doivent être envoyés tous les paquets qui n’ont pas vérifié les critères des autres règle de routage.
syntaxe :route add default gw passerelle-IP interface
130
Définition du nom de la machine La comande hostname permet de nommer une machine d’une
manière plus conviviale qu’en utilisant son adresse IP. syntaxe : hostname [nom_machine]
hostname Sans argument renvoie le nom actuel de la machine hostname nom_machine : permet de modifier ce nom á
nom_machine.
Il est d’usage de n’utiliser que le nom de la machine, sans son domaine.
Le nom de domaine est déterminé automatiquement par le système à partir des informations issues de la configuration de la résolution des noms de domaine.
hostname est en général appelée dans les scripts de démarrage du système.
La plupart des distributions utilisent le fichier /etc/HOSTNAME pour stocker
131
Resolution des nom de machines La commande hostname ne permet de fixer que le nom de la
machine locale. Pour les autres machines du réseau, il faut mettre en place les mécanismes de résolution de noms de domaine.
il existe deux solutions pour trouver l’adresse IP d’une machine à partir de son nom :
la consultation d’une liste de noms stockée en local (/etc/hosts), soit l’interrogation d’un serveur de noms de domaine (serveur DNS).
Le fichier /etc/host.conf permet de définir le comportement du système lors de la résolution d’un nom. Dans la plupart des cas, les lignes suivantes sont suffisantes :
order hosts,bindmulti on La premiere ligne indique que la recherche des noms pour leur résolution
doit se faire d’abord localement (hosts), puis par appel aux DNS (bind) si la recherche précédente a échoué. C’est en général le comportement désiré.
La deuxième ligne permet de faire en sorte que toutes les adresses correspondant à une machine soient renvoyées. Si l’on avait utilisé l’option multi off, seule la première adresse IP trouvée aurait été renvoyée.
132
Resolution des nom de machines La liste de noms locale est stockée dans le fichier /etc/hosts . Votre
ordinateur connaîtra directement l’adresse IP de toutes les machines référencées dans ce fichier.
On place dans ce fichier les ordinateurs les plus couramment utilisés sur le réseau.
Chaque ligne commence par une adresse IP, et est suivie de la liste des noms de la machine possédant cette adresse, séparés par des espaces.
Si il n’y a pas de réseau local, seule la ligne affectant l’adresse 127.0.0.1 à la machine locale (localhost) doit s’y trouver.
127.0.0.1 localhost De la même manière, le fichier /etc/networks contient les adresses des
réseaux. Ce fichier est utilisé par la commande route pour donner un nom aux
différents réseaux. Chaque entrée est constituée du nom du réseau, suivi de son adresse IP. Si la machine n’est pas connectee a un réseau local, il ne contiendra une
entrée pour le réseau « loopback », sur lequel se trouve l’adresse de retour 127.0.0.1. Cette entrée aura donc la forme suivante :
loopback 127.0.0.0
133
Les super-démons inetd et xinetd La plupart des services réseau sont gérés par des programmes qui
s’exécutent en permanence et qui attendent des connexions sur un port TCP ou UDP.
Ces programmes passent la plupart de leur temps à attendre ces connexions. Ils ne se réveillent que lorsqu’un client se connecte effectivement et leur envoie une requête.
ils peuvent être relativement nombreux, et si tous les services sont lancés simultanément, ils peuvent consommer une part non négligeable des ressources système.
C’est pour cette raison que les super-démons inetd (de l’anglais « InterNET Daemon ») et xinetd (de l’anglais «eXtended INETD ») ont été créés.
Ces démons sont à l’écoute des demandes de connexion des clients pour les autres services réseau, et ne lancent ceux-ci que lorsqu’un client se connecte sur leurs ports.
Une fois lancés, les véritables démons reprennent la main et communiquent directement avec leurs clients. Ainsi, inetd et xinetd écoutent les ports pour tout le monde, et sont la plupart du temps les seuls à fonctionner.
Les ressources système sont donc économisées et les services réseau sont démarrés et arrêtés à la demande.
134
Le super-démon inetd Le super-démon inetd utilise le fichier
de configuration /etc/inetd.conf pour déterminer les ports sur lesquels il doit attendre des connexions de la part des clients, et pour trouver le service réseau qu’il doit lancer lorsqu’une telle connexion arrive.
le démon en charge de ce service peut être lancé avec le programme
/usr/sbin/in.telnetd.
135
Le super-démon inetd Ce fichier est structuré en lignes, dont chacune décrit un des services
que le démon inetd prend en charge. Les informations données sur ces lignes sont les suivantes :
le nom du service (tel qu’il est défini dans la première colonne du fichier /etc/services) dont inetd doit surveiller les requêtes ;
le type de canal de communication réseau utilisé, stream pour les communications en mode connecté, donc en général celles qui
utilisent le protocole TCP dgram pour lescommunications basées sur les datagrammes, donc typiquement les
communications utilisant le protocole UDP) ; le protocole réseau utilisé (« tcp » ou «udp ») par ce service ; l’un des mots clés wait ou nowait, qui permettent d’indiquer si inetd doit
attendre la fin de l’exécution du démon gérant le service ou s’il peut attendre de nouvelles requêtes de la part des clients ;
le nom de l’utilisateur au nom duquel le démon gérant ce service doit fonctionner (en général, c’est l’utilisateur root) ;
le chemin sur le fichier exécutable de ce démon ; les éventuels paramètres en ligne de commande pour ce démon, en
commençant par l’argument 0, qui doit toujours être le nom du fichier exécutable du programme lui-même.
136
Le super-démon inetd Exemple
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
Cette ligne permet de lancer le démon telnetd sur toute requête via le protocole TCP pour le service telnet
Le démon inetd est capable de fournir lui-même un certain nombre de services de base, Dans ce cas, il faut utiliser le mot clé
internal à la place du nom du fichier exécutable du démon de ce service.
Et les paramètres doivent également être remplacés par le mot clé internal.
137
Le super-démon xinetd la définition des services mis à disposition des
clients se fait dans le fichier de configuration /etc/xinetd.conf.
le fichier xinetd.conf peut inclure d’autres fichiers de configuration et référencer des répertoires contenant les fichiers de configuration spécifiques aux services.
On définit les options par défaut pour tous les services dans le fichier de configuration /etc/xinetd.conf,
les différents services sont décris dans des fichiers complémentaires stockés dans le répertoire /etc/xinetd.d/.
Ce répertoire est inclus dans le fichier xinetd.conf à l’aide de la directive includedir.
138
Configuration Le fichier de configuration de xinetd est
/etc/xinetd.conf, il est découpé en plusieurs sections, un section defaults avec des paramètres concernant tous les services, et une section par service avec des paramètres particuliers :
defaults{ paramètres par défaut pour tous les services }
service nom-du-service1{ paramètres pour le service1}
service nom-du-service2{ paramètres pour le service2}
...
139
Configuration On peut très bien faire comme sous la Mandrake avoir
un fichier xinetd.confcontenant :defaults
{ paramètres par défaut pour tous les services}
includedir /etc/xinetd.d
On créera un répertoire /etc/xinetd.d contenant autant de fichier qu'il y a de service, chaque fichier portant le nom du service et contenant :
service nom-du-service1{ paramètres pour le service1}
On aura donc le fichier telnet, ftp, finger...
140
Les options généralistes Ce sont les options qui peuvent s'appliquer à tous les
services et qu'on peut mettre dans la section defaults du fichier xinetd.conf
log_type vous pouvez spécifier un archivage des logs en utilisant le daemon syslogd ou alors archiver dans un fichier. Exemple :
log_type = FILE /var/log/xinetd.log 20M 25M
Quand vous atteindrez un fichier de log de 20M, un message d'alerte va s'inscrire dans le fichier /var/log/messages mais le log continue, quand on va atteindre 25M, xinetd n'écrit plus dans le fichier de log.
log_on_success qui va spécifier les informations à archiver en cas de lancement réussi d'un service, vous avez le choix des paramètres suivant :
PID le PID du serveurHOST adresse IP du clientUSERID identité de l'utilisateurEXIT le status de sortie du processusDURATION le temps de la connexion
141
Les options généralistes log_on_failure qui va spécifier les informations à archiver en cas d'erreur de
lancement d'un service (erreur d'authentification, manque de ressource), vous avez le choix des paramètres suivant :
HOST et USERID comme précédemment RECORD pour enregistrer toutes les info disponibles sur le client
no_access pour définir les clients non autorisés à se connecter only_from pour définir les clients autorisés à se connecter. Exemple avec le
sous réseau 192.168.13.X only_from = 192.168.13.0/32
instances pour fixer le nombre maximum d'instances de serveur à lancer, ce qui permet d'éviter le DoS
per_source pour restreindre le nombre de connexion à un service venant d'une même machine
cps pour limiter le taux de connexion, il prend deux arguments, le premier fixe le nombre max de connexion à gérer par seconde, si le nombre de
connexion dépasse ce chiffre, le service sera temporairement désactivé. Le deuxième argument fixe le nombre de secondes pendant lesquelles le service restera
inactivé.
142
Les options par service id pour identifier un service, si on utilise pas ce paramètre, dans le fichier de log
on aura le nom du service, avec id vous pouvez redéfinir le nom du service qui sera archivé dans le fichier de log (ftp-public au lieu simplement de ftp par exemple)
nice pour définir la priorité d'un service (-20 plus prioritaire 19 plus prioritaire) port numéro du port associé au service défini dans /etc/services protocol nom du protocole défini dans /etc/protocols server le chemin du service server_args arguments à passer au service socket_type type de socket (stream pour TCP et dgram pour UDP), pour
savoir si c'est l'un ou l'autre voir le fichier /etc/services wait si wait=yes une seule instance du service peut être lancé à la fois, si
wait=no, on lance un serveur à chaque nouvelle connexion (dans la limite du nombre d'instance max)
access_times pour définir une plage horaire la syntaxe est la suivante heure:minute-heure:minute, exemple pour une plage horaire entre 7h-12h et 14h-19h
access_times = 7:00-12:00 14:00-19:00 env pour passer une variable d'environnement avant de lancer le service
143
Les options par service bind (ou interface) pour attacher une interface à un service, pour limiter les
requêtes à une interface réseau par exemple redirect permet de rediriger une requête sur le port particulier d'une de vos
machines de votre réseau local. On peut réutiliser les paramètres déjà définis dans les paramètres par défaut et
modifier les options : exemple avec log_on_success, si celui-ci est définit dans les paramètres par défaut
avec les options suivantes PID HOST USERID EXIT DURATION, on veut avoir pour un service particulier uniquement PID et HOST on écrira donc
log_on_success -= USERID EXIT DURATION De même si on a log_on_success défini à PID HOST et qu'on veut rajouter DURATION
on écrira log_on_success += DURATION
144
Configurer un service Le fichier se trouve sous /etc/xinetd.d et porte le nom
du service. La syntaxe du fichier est la suivante : service nom-du-service
{ socket_type = type de socket wait = pour lancer un ou plusieurs instances du service user = à qui appartiendra le service server= chemin du serveur server_args= argument du serveur (facultatif) access_times=plage horaire (facultatif) nice = priorité (facultatif)}
145
Connexion à distance Les commandes à distance permettent d'ouvrir
des sessions virtuelles sur des systèmes distants. Ces commandes peuvent agir sur le système local ou sur le réseau local.
Exemples : telnet rlogin rsh rcp …
146
telnet Cette commande permet d'ouvrir une session
(connexion interactive) sur un site distant. Cela nécessitera dans la plupart des cas d'avoir un accès
sur la machine distante. On peut aussi parfois indiquer un numéro de port
identifiant le service demandé. La connexion n'est pas 8 bits, il est impossible de faire
des transferts de fichiers sur une session telnet sans encapsulation.
certains systèmes UNIX interprètent lors du login UNIX via telnet les caractères # et @ de façon spéciale. Il est donc recommandé de ne pas les utiliser.
Syntaxe : telnet nom_Machine ou adresse_IP
147
rlogin Cette commande permet, comme
telnet, de se connecter à un site distant.
Le protocole rlogin est, cependant, à la fois plus sûr et plus rapide que le protocole telnet.
Il permet aussi, dans un réseau sûr de ne pas donner de mot de passe (/etc/hosts.equiv et .rhosts).
Syntaxe : rlogin [-l user] nom_machine -l pour se connecter avec nom de login different
du login courant.
148
rsh On peut exécuter des commandes
shell à distance avec cette commande, Il faut que le fichier .rhosts ait été
configuré ou que les deux machines concernées
soient équivalentes du point de vue de leurs utilisateurs(/etc/hosts.equiv).
Syntaxe rsh [-l user] nom_machine commande
149
rcp On peut copier des fichiers à
distance avec cette commande, avec les mêmes restrictions vues pour la commande rsh.
Syntaxe :rcp [-r] [[loginA@]machineA:]/fichier [loginB@[machineB:]]/fichier
L'option -r permet de traiter une copie récursive pour recopier les répertoires.
150
~/.rhosts Ce fichier, s'il existe, autorise l'accès
sans mot de passe à votre compte pour des utilisateurs locaux ou distants listés dans ce fichier.
Une ligne de ce fichier est de la forme : host_autorisé login_autorisé
ce fichier $HOME/.rhosts doit avoir les accès : -rw------.
Si ce fichier est modifiable par tous (accès -rw-rw-rw-), il est ignoré.
151
/etc/hosts.equiv Le fichier hosts.equiv autorise ou interdit des
ordinateurs et des utilisateurs d'utiliser les commandes r (telles que rlogin, rsh or rcp) sans donner de mot de passe.
Le fichier utilise le format suivant : [ordinateur] [utilisateur]
Le champs ordinateur est le nom d'un ordinateur équivalent à l'ordinateur local en terme d'autorisations. Les utilisateurs connectés sur cet ordinateur sont autorisés à accéder les comptes du même nom sans fournir de mot de passe
Certains systèmes ne tiennent compte du contenu de ce fichier que lorsque que le propriétaire est root et que personne d'autre ne peut le modifier.
Certains systèmes nécessitent même qu'il n'y a qu'un seul lien physique sur le fichier.
152
Introduction au service NFS
Le service NFS : Network File System
153
Généralités Il s'agit du protocole standard de
partage réseau entre machines Unix, créé par SUN vers 1980.Il comprend l'ajout de fonctionnalités supplémentaires (dans la couche session au dessus de TCP/IP), les RPC =(Remote Procedure Calls)
154
Généralités Donc une machine joue le rôle de
serveur de fichiers. Elle est appelée serveur NFS, et on dit qu'elle exporte tout (arborescence
racine /) ou partie de son système de fichiers,
en le partageant par une liste de stations accessibles par réseau,
en installant toutefois des restrictions d'accès.
155
Généralités Comme toute ressource extérieure
doit être intégrée dans le système de fichiers Linux, cet accès ne pourra être permis qu'à l'aide d'un processus de montage : une partie de l'arborescence d'une
machine Linux "serveur", est exportée ce qui lui permet d'être intégré dans le système de fichiers d'une machine Linux "cliente".
156
Généralités L'utilisateur peut monter cette
arborescence exportée par le serveur, sur un point de montage, de façon tout-à-fait semblable au montage de systèmes de fichiers des divers périphériques.Le montage peut s'effectuer en cours de session de travail par la commande interactive mount.
157
Généralités Mais dans un cadre de travail
stable, il est souhaitable de monter la ressources NFS au démarrage. Il suffit pour cela d'inclure la
description du montage sur une ligne de /etc/fstab.
On peut comparer le processus à la "connexion à un lecteur réseau" sur d'autres systèmes.
158
Généralités Après le montage, pour l'utilisateur
sur la machine cliente, la ressource est accessible comme si elle résidait sur un périphérique local.
159
Installation Les services portmap qui gère les
connexions RPC, et nfs doivent être installés. packages portmap-version .. et nfs-utils
Vérifier que les services portmap et nfs sont bien activés automatiquement au démarrage.
Pour vérifier que les processus correspondant sont bien en exécution :
ps aux | grep portmapps aux |grep nfs
160
Installation NFS, comme les autres services, se gère
avec un script placé dans /etc/rc.d/init.d/.Voici pour lancer NFS (sur une distribution de type RedHat)
# service portmap start Starting portmapper: [OK] # service nfs start Starting NFS services: [OK] Starting NFS quotas: [OK]Starting NFS deamon: [OK] Starting NFS mountd: [OK]
161
Le fichier /etc/exports. Ce fichier (à créer s'il est absent)
contient la liste des exportations. Sur chaque ligne, on précise un répertoire
du système de fichiers, suivi par la liste des machines distantes
clientes autorisées à les monter. Si cette liste est vide, toutes les stations accessibles sont autorisées.
Et une liste d’options de montage (r) (rw)
162
Exemples d'exportation déclarées dans le fichier /etc/exports
sur le serveur p00 repertoire liste-machines (liste-options)
/home/jean pc2(ro) pc3(rw) /usr/bin pc2(ro) pc3(ro) /var/www/html *(ro) pc3 (rw) /usr/share/doc *(ro)
Pour valider un changement opéré dans ce fichier de configuration, faire appel à la commande :
# exportfs -a
163
Options de partage ro : droit de lecture uniquement rw : lecture écriture root_squash :spécifie que le root de la
machine distante n'a pas les droits de root sur le répertoire partagé
no_root_squash: spécifie que le root de la machine sur laquelle le répertoire est monté a les droits de root sur le répertoire
L'option root_squash est l'option par défaut.
164
Sur la station cliente On crée un répertoire de montage, Puis on effectue le montage: Syntaxe de montage :
mount -t nfs nom-machine:arborescence point-montage
[root@pc3 /]# mkdir /mnt/rep [root@pc3 /]# mount -t nfs p00:/home/alice /mnt/rep L'utilisateur sur pc3 pourra alors mettre à jour le repertoire alice sur p00
165
Respect par nfs des droits Bien sûr les permissions des
fichiers importés s'appliquent vis à vis de l'utilisateur, notamment en ce qui concerne la directive (rw).
On ne pourra mettre à jour sur la station cliente, un fichier exporté que s'il possède la permission w vis-à-vis de l'utilisateur.
166
NB! L'option rw signifie en réalité que
l'utilisateur dont l'ID est 1001 (par exemple...) sur le client NFS a les droits d'écriture sur les fichiers et les répertoires qui appartiennent à l'utilisateur dont l'ID est 1001 sur le serveur NFS.
Attention, ces utilisateurs n'ont pas forcément le même nom de compte Unix et ne correspondent pas forcément aux mêmes personnes !
167
Automatisation du montage
Pour cela, il suffit d'ajouter le contenu de la commande précédente dans une ligne du fichier /etc/fstab
p01:/home/alice /mnt/rep nfs auto, user
168
Fonctionnement de NISFonctionnement de NIS
Le service NIS : Network Information System
169
GénéralitésGénéralités L'objectif central de tout serveur L'objectif central de tout serveur
de fichiers d'un réseau local est de de fichiers d'un réseau local est de permettre aux utilisateurs du permettre aux utilisateurs du réseau de se connecter au serveur réseau de se connecter au serveur de fichier sous un compte de fichier sous un compte centralisé au niveau du réseau, et centralisé au niveau du réseau, et non pas défini machine par non pas défini machine par machine et aussi d' accéder à ses machine et aussi d' accéder à ses fichiers (répertoire personnel, ...) fichiers (répertoire personnel, ...)
170
GénéralitésGénéralités NIS maintient une base de NIS maintient une base de
données (ou annuaire) centralisée données (ou annuaire) centralisée au niveau d'un groupe de au niveau d'un groupe de machines appelé domaine NIS.machines appelé domaine NIS.
Ces informations sont alors Ces informations sont alors stockées dans le répertoire stockées dans le répertoire /var/yp/nom-domaine/var/yp/nom-domaine, sous forme , sous forme d'un ensemble de fichiers binaires d'un ensemble de fichiers binaires appelés appelés cartescartes ou ou mapsmaps. .
171
GénéralitésGénéralités Les types d'informations que les stations Les types d'informations que les stations
"clientes", viennent chercher sont "clientes", viennent chercher sont essentiellement :essentiellement : les correspondances entre noms et adresse IP des les correspondances entre noms et adresse IP des
machines du réseau, machines du réseau, les vérifications des noms de login, mots de passe et les vérifications des noms de login, mots de passe et
groupe d'appartenance des comptes utilisateurs groupe d'appartenance des comptes utilisateurs existants sur le serveur.existants sur le serveur.
Toutes ces informations sont contenues Toutes ces informations sont contenues habituellement dans les fichiers habituellement dans les fichiers /etc/hosts/etc/hosts (annuaire des machines connues), (annuaire des machines connues), /etc/passwd, (annuaires des utilisateurs qui contient /etc/passwd, (annuaires des utilisateurs qui contient
les répertoires à la connexion) les répertoires à la connexion) /etc/group (annuaire des groupes)/etc/group (annuaire des groupes) et /etc/shadow (mots de passe cryptés). et /etc/shadow (mots de passe cryptés).
172
GénéralitésGénéralités Les informations sont contenues Les informations sont contenues
dans 6 maps usuels, situés dans dans 6 maps usuels, situés dans /var/yp/nom-domaine/var/yp/nom-domaine, et appelés , et appelés hosts.byname, hosts.byaddr, hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid,passwd.byname, passwd.byuid, group.byname et group.bygidgroup.byname et group.bygid ……..
173
GénéralitésGénéralités Les applications NIS utilisent les Les applications NIS utilisent les
fonctions RPC =fonctions RPC =Remote Procedure Remote Procedure CallsCalls))
Les fonctions RPC sont gérées par Les fonctions RPC sont gérées par un service appelé un service appelé portmapportmap. .
174
Configuration du serveur NISConfiguration du serveur NIS
175
InstallationInstallation Le paquetage RPM à installer est ypserv Le paquetage RPM à installer est ypserv
Son installation va créer des fichiers dans : Son installation va créer des fichiers dans : /usr/sbin : les serveurs ypserv et rpc.yppasswd, /usr/sbin : les serveurs ypserv et rpc.yppasswd, /etc/rc.d/init.d/: les scripts de contrôle ypserv et /etc/rc.d/init.d/: les scripts de contrôle ypserv et
yppasswd des serveurs yppasswd des serveurs /etc/ypserv.conf : le fichier de configuration du /etc/ypserv.conf : le fichier de configuration du
serveur serveur /var/yp, place des cartes et du fichier Makefile qui /var/yp, place des cartes et du fichier Makefile qui
permet leur génération permet leur génération /usr/lib/yp, autres exécutables . /usr/lib/yp, autres exécutables .
176
LancementLancement Du côté serveur, les services à lancer sont :Du côté serveur, les services à lancer sont :
portmap,portmap, ypserv (le serveur NIS) ypserv (le serveur NIS) et yppasswd (le service spécialisé dans le et yppasswd (le service spécialisé dans le
changement des mots de passe).changement des mots de passe). On procède alors au lancement ou à l'arrêt On procède alors au lancement ou à l'arrêt
manuel de NIS par :manuel de NIS par :
service portmap start service portmap start service ypserv start service ypserv start service yppasswd start service yppasswd start
177
Configuration Configuration
1.1. Choisir un nom de domaine NIS,Choisir un nom de domaine NIS,• Le nom de domaine NIS est Le nom de domaine NIS est
indépendamment du nom de domaine du indépendamment du nom de domaine du réseau, réseau,
• et également sans rapport avec un et également sans rapport avec un éventuel nom de domaine Samba .éventuel nom de domaine Samba .
• soit ecole par exemple, soit ecole par exemple, • Supposons de plus que le serveur ait pour Supposons de plus que le serveur ait pour
adresse IP : 192.168.0.1 avec un masque adresse IP : 192.168.0.1 avec un masque 255.255.255.0 255.255.255.0
178
Configuration Configuration 2.2. Déclaration du domaine NIS : Déclaration du domaine NIS :
• Editer le fichier /etc/sysconfig/network, et Editer le fichier /etc/sysconfig/network, et y ajouter cette ligne :y ajouter cette ligne : NISDOMAIN=ecole NISDOMAIN=ecole
• Ou a partir d’une ligne de commandeOu a partir d’une ligne de commande#domainname ecole#domainname ecole
• Relancer le serveur (service ypserver Relancer le serveur (service ypserver restart)restart)
• Vérification : Vérification : • la commande domainname doit obtenir comme la commande domainname doit obtenir comme
réponse ce nom de domaine NIS.réponse ce nom de domaine NIS.#domainname#domainname
ecole ecole
179
Configuration Configuration
3.3. Préciser les machines autorisées à Préciser les machines autorisées à accéder au service NIS :accéder au service NIS :
• Editer le fichier /var/yp/securenets et Editer le fichier /var/yp/securenets et insérer les lignes insérer les lignes # pour permettre l'accès sur le serveur même # pour permettre l'accès sur le serveur même
255.0.0.0 255.0.0.0 127.0.0.0 127.0.0.0
# pour permettre l'accès de toutes les machines du # pour permettre l'accès de toutes les machines du sous-réseau (masque et adresse réseau) sous-réseau (masque et adresse réseau)
255.255.255.0 255.255.255.0 192.168.0.0 192.168.0.0
180
Configuration Configuration 4.4. Préciser les informations que NIS doit gérer Préciser les informations que NIS doit gérer
• Editer le fichier /var/yp/Makefile et lister sur la ligne Editer le fichier /var/yp/Makefile et lister sur la ligne commençant par all: les données à gérer :commençant par all: les données à gérer :
all: passwd group hostsall: passwd group hosts
NBNB
Il est recommandé de ne rien modifier d'autre sauf "si Il est recommandé de ne rien modifier d'autre sauf "si on sait ce que l'on fait ...", car pour l'essentiel il a on sait ce que l'on fait ...", car pour l'essentiel il a été correctement paramétré lors de l'installation été correctement paramétré lors de l'installation de la distribution. de la distribution.
181
Configuration Configuration 5.5. Générer les cartes : Générer les cartes :
• Il s'agit maintenant de créer les 3 cartes Il s'agit maintenant de créer les 3 cartes (maps) correspondant aux 3 fichiers (maps) correspondant aux 3 fichiers
• /etc/passwd, /etc/ group/etc/passwd, /etc/ group et et /etc/hosts/etc/hosts..• L'utilitaire /usr/bin/make doit être exécuté L'utilitaire /usr/bin/make doit être exécuté
par root dans le répertoire du Makefilepar root dans le répertoire du Makefile # cd /var/yp# cd /var/yp # make # make
Il y a création d'un sous-répertoire /var/yp/ecole Il y a création d'un sous-répertoire /var/yp/ecole (portant le nom du domaine NIS) contenant les 6 (portant le nom du domaine NIS) contenant les 6 fichiers binaires de permissions 600 :fichiers binaires de permissions 600 :hosts.byname, hosts.byaddr, passwd.byname, hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid, group.byname et group.bygidpasswd.byuid, group.byname et group.bygid
182
Configuration Configuration 6.6. Pour définir des règles d’accès Pour définir des règles d’accès
supplémentaires:supplémentaires:
Editer le fichier /etc/ypserv.conf et Editer le fichier /etc/ypserv.conf et indiquer une règle d’accès comme ci-indiquer une règle d’accès comme ci-dessous :dessous :
# Host # Host : domain : domain :Map :Map :Security :Security # # 192.168.0. 192.168.0. ** : passwd.byname : passwd.byname
: port : port 192.168.0. 192.168.0. ** : passwd.byuid : passwd.byuid
: port : port
183
Host : adresse ip d’une machine ou d’un reseau ou *
Domain : nom de domaine ou * Map : nom du map concerné par cette
règle Security
none : accès toujours autorise port : accès autorise si port <1024 deny : accès non autorise
184
Configuration Configuration 7.7. Relancer le serveur Relancer le serveur
service ypserv restartservice ypserv restart
Le serveur devrait être fonctionnel.Le serveur devrait être fonctionnel.• Vérification Vérification
# ps ax | grep yp # ps ax | grep yp root 550 ..... ypserv root 550 ..... ypserv root 823 ...... rpc.yppasswdd root 823 ...... rpc.yppasswdd
185
Configuration d'une machine Configuration d'une machine clientecliente
186
Installation et lancementInstallation et lancement Les paquetages à installer sont d'abord Les paquetages à installer sont d'abord
ypbind, ypbind, puis yp-toolspuis yp-tools
Avec l'utilitaire ntsysv ou chkconfig , on Avec l'utilitaire ntsysv ou chkconfig , on peut activer NIS au démarrage en peut activer NIS au démarrage en cochant ypbind, programme exécuté cochant ypbind, programme exécuté sur le client, ainsi que portmapsur le client, ainsi que portmap
Pour lancer à la main les services Pour lancer à la main les services passer les 2 commandes dans l'ordre passer les 2 commandes dans l'ordre service portmap start service portmap start service ypbind start service ypbind start
187
ConfigurationConfiguration1.1. Dans /etc/sysconfig/network, comme Dans /etc/sysconfig/network, comme
sur le serveur il faut déclarer le nom sur le serveur il faut déclarer le nom du domaine en ajoutant la ligne du domaine en ajoutant la ligne NISDOMAIN = "ecole" NISDOMAIN = "ecole"
2.2. Editer /etc/yp.conf pour dEditer /etc/yp.conf pour dééclarer le clarer le serveur NIS serveur NIS
domain ecole server nom_serveurdomain ecole server nom_serveur ypserver hostnameypserver hostnamebroadcastbroadcast
188
ConfigurationConfiguration
3.3. Editer /etc/nsswitch.conf, et Editer /etc/nsswitch.conf, et veillez à la présence active des veillez à la présence active des lignes lignes
passwd: files nis passwd: files nis
group: files nis group: files nis
hosts: files nis dns hosts: files nis dns
Option de rechercheOption de recherche Source[ rSource[ rééponse=action]ponse=action]
189
Algorithme de recherche Plusieurs sources d’informations peuvent être proposées pour chaque
recherche. Les entrées supportées sont : files nis dns Compact (compatibilité pour passwd et group avec ancienne version)
Il est possible de spécifier plusieurs sources. Chaque recherche retourne une réponse qui prend les valeurs suivantes:
SUCCESS l’information est disponible UNAVAIL la source de l’information n’est pas disponible, quelle
que soit la raison NOTFOUND la source répond qu’elle ne détient pas
l’information TRAYAGAIN la source est occupée
Pour chaque statut, deux actions sont possible Continue essayer la source suivante dans la liste return arrêter la recherche et fournir le résultat disponible
190
Algorithme de recherche Les actions par défaut sont :
SUCCESS=return UNAVAIL=continue NOTFOUND=continue TRYAGAIN=continue
191
ConfigurationConfiguration
4.4. En ligne de commande, (re)lancer le En ligne de commande, (re)lancer le service client. On devrait obtenir 2 service client. On devrait obtenir 2 messages : recherche d'un domaine messages : recherche d'un domaine NIS, puis tentative de liaison à un NIS, puis tentative de liaison à un serveur NIS. serveur NIS.
# service ypbind start # service ypbind start Binding to the NIS domain: [OK] Binding to the NIS domain: [OK]
Listening for an NIS domain server: Listening for an NIS domain server: nom_serveur ………………..nom_serveur ………………..
192
tests
#ypwhich doit donner le nom complet de la
machine qui hébergé le serveur
#ypcat passwd permet d’afficher la carte des
comptes utilisateurs Chagement de mot de passe
yppasswd user
193
Première connexionLogin : user1Passwd :*****Last login: ………No directory /home/user1Logging in with home=“/”.Bash->Tout est normal user1 n’a pas de répertoire
personnel sur la station. NFS telnet
194
Pbs clients #service ypbind startBinding to the nis domain … [failed]Listening for an nis domain server … ypwhich:ne peut communiquer par
ypbind
#domainname
Le nom du domaine n’a pas été précise
195
Pbs clients #service ypbind startBinding to the nis domain … [OK]Listening for an nis domain server … ypwhich:ne peut communiquer par
ypbind
Le nom de domaine est bien connu, mais il y a un problème quand le client cherche a se lier au serveur du domaine
La première cause a suspecter est un dysfonctionnement réseau.
196
Secure shell : SSH
197
SSH utilise la cryptographie asymétrique RSA ou DSA.
En cryptographie asymétrique, chaque personne dispose d'un couple de clé :
La clé publique qui peut être librement publiée La privée doit rester secrète. La connaissance de la clé publique ne permet pas
d'en déduire la clé privée. Si la personne A veut envoyer un message
confidentiel à la personne B, A crypte le message avec la clé publique de B et
l'envoie à B sur un canal qui n'est pas forcément sécurisé.
Seul B pourra décrypter le message en utilisant sa clé privée.
198
La théorie de la cryptographie symétrique SSH utilise également la cryptographie
symétrique. Son principe est simple : si A veut envoyer un message confidentiel
à B, A et B doivent d'abord posséder une même
clé secrète. A crypte le message avec la clé secrète et
l'envoie à B sur un canal qui n'est pas forcément sécurisé.
B décrypte le message grâce à la clé secrète. Toute autre personne en possession de la clé
secrète peut décrypter le message.
199
La cryptographie symétrique est beaucoup moins gourmande en ressources processeur que la cryptographie asymétrique.
mais le gros problème est l'échange de la clé secrète entre A et B.
Dans le protocole SSL, qui est utilisé par SSH, la cryptographie asymétrique est utilisée au début
de la communication pour que A et B puissent s'échanger un clé secrète de manière sécurisée...
la communication est ensuite sécurisée grâce à la cryptographie symétrique en utilisant la clé secrète échangée.
200
L'établissement d'une connexion SSH Un serveur SSH dispose d'un
couple de clés RSA stocké dans le répertoire /etc/ssh/ et généré lors de l'installation du serveur. Le fichier ssh_host_rsa_key contient la
clé privée et a les permissions 600. Le fichier ssh_host_rsa_key.pub
contient la clé publique et a les permissions 644.
201
étapes d'établissement d'une connexion SSH 1. Le serveur envoie sa clé publique au client.
1. Le client génère une clé secrète et l'envoie au serveur, en cryptant l'échange avec la clé publique du serveur (cryptographique asymétrique). Le serveur décrypte la clé secrète en utilisant sa clé privée, ce qui prouve qu'il est bien le vrai serveur.
1. Pour le prouver au client, il crypte un message standard avec la clé secrète et l'envoie au client. Si le client retrouve le message standard en utilisant la clé secrète, il a la preuve que le serveur est bien le vrai serveur.
1. Une fois la clé secrète échangée, le client et le serveur peuvent alors établir un canal sécurisé grâce à la clé secrète commune (cryptographie symétrique).
1. Une fois que le canal sécurisé est en place, le client va pouvoir envoyer au serveur le login et le mot de passe de l'utilisateur pour vérification. La canal sécurisé reste en place jusqu'à ce que l'utilisateur se déloggue.
202
La seule contrainte est de s'assurer que la clé publique présentée par le serveur est bien sa clé publique...
sinon le client risque de se connecter à un faux serveur qui aurait pris l'adresse IP du vrai serveur (ou toute autre magouille).
Une bonne méthode est par exemple de demander à l'administrateur du serveur quelle est le fingerprint de la clé publique du serveur avant de s'y connecter pour la première fois.
Le fingerprint d'une clé publique est une chaîne de 32 caractères hexadécimaux unique pour chaque clé ; il s'obtient grâce à la commande ssh-keygen -l.
203
Installation et configuration de SSH Paquetages à installer
Openssh Openssh-server Openssh-client
Openssh utilise un fichier de configuration général /etc/sshd_config
204
/etc/sshd_config les lignes les plus importantes de ce fichier de configuration :
Port 22 Signifie que le serveur SSH écoute sur le port 22, qui est le port par
défaut de SSH. Vous pouvez le faire écouter sur un autre port en changeant cette
ligne. Vous pouvez aussi le faire écouter sur plusieurs ports à la fois en
rajoutant des lignes similaires.Protocol 2 Signifie que votre serveur SSH accepte uniquement la version 2 du
protocole SSH. C'est une version plus sécurisée que la version 1 du protocole. Seuls
certains vieux clients SSH ne savent faire que du SSH version 1. Si vous voulez que le serveur accepte les deux protocoles, changez la
ligne en :Protocol 2,1
205
/etc/sshd_config Chemin sur les fichiers de clefs :
HostKey /etc/ssh_host_rsa_key HostKey /etc/ssh/host_dsa_key
Authentification par mot de passe : PasswordAuthentification no PermitEmptyPasswords no
206
/etc/sshd_config Authetification par clef public
RSAAuthentification no PubkeyAuthentification yes
Options generales PermitRootLogin no strictModes yes
Affichage des informations habituelles au login PrintMtod no printLastLog yes
207
Se logguer par SSHAuthentification par mot de passe C'est la méthode la plus simple. Depuis la machine cliente,
tapez :% ssh login@nom_du_serveur_SSH
Si c'est la première connexion SSH depuis ce client vers ce serveur, il vous demande si le fingerprint de la clé publique présentée par le serveur est bien le bon.
Pour être sûr que vous vous connectez au bon serveur, Comparer le fingerprint de sa clé publique à celle qu'il vous affiche. Si les deux fingerprints sont identiques, répondez yes, et la clé
publique du serveur est alors rajoutée au fichier ~/.ssh/known_hosts. Si vous vous êtes déjà connecté depuis ce client vers le
serveur, sa clé publique est déjà dans le fichier ~/.ssh/known_hosts et il ne vous demande donc rien.
Ensuite, entrez votre mot de passe... et vous verrez apparaître le prompt, comme si vous vous êtiez loggué en local sur la machine.
208
Se logguer par SSH Authentification par clé Au lieu de s'authentifier par mot de
passe, les utilisateurs peuvent s'authentifier grâce à la cryptographie asymétrique et son couple de clés privée/publique, comme le fait le serveur SSH auprès du client SSH.
209
Générer ses clés Pour générer un couple de clés DSA,
tapez :% ssh-keygen -t dsa Les clés générées ont par défaut une
longueur de 1024 bits, ce qui est aujourd'hui considéré comme suffisant pour une bonne protection. la clé privée est stockée dans le fichier
~/.ssh/id_dsa avec les permissions 600 et la clé publique est stockée dans le fichier
~/.ssh/id_dsa.pub avec les permissions 644.
210
Générer ses clés Lors de la création, il vous demande une pass
phrase qui est un mot de passe pour protéger la clé privée.
La pass phrase sert à crypter la clé privée. Ell est demandée à chaque utilisation de la clé
privée, c'est à dire à chaque fois que vous vous logguerez en utilisant cette méthode d'autentification.
Un mécanisme appelé ssh-agent permet de ne pas rentrer le mot de passe à chaque fois.
Vous pouvez à tout moment changer la pass phrase
qui protège votre clé privée avec la commande ssh-keygen -p.
211
Autoriser votre clé publique
Pour cela, il suffit de copier votre clé publique dans le fichier ~/.ssh/authorized_keys de la machine sur laquelle vous voulez vous logguer à distance.
La commande suivante permet de réaliser cette opération via SSH :
% ssh-copy-id -i ~/.ssh/id_dsa.pub login@nom_du_serveur
et entrez le mot de passe de votre compte sur le serveur.
Se logguer La commande est la même que pour une autentification
par mot de passe.
212
Se logguer par SSH sans taper de mot de passe Le principe Si on utilise un couple de clés publiques /
privées, et qu’on a crypté la clé privée avec une pass
phrase (configuration la plus sûre). le client SSH demande la pass phrase à chaque
utilisation des clés pour s'authentifier. Pour éviter d'avoir à taper systématiquement
sa pass phrase, il faut utiliser ssh-agent : ce programme tourne en tâche de fond et garde la
clef en mémoire. La commande ssh-add permet de donner sa clé à
ssh-agent. Ensuite, quand vous utilisez le client SSH, il contacte ssh-agent pour qu'il lui donne la clé.
213
ssh-agent La pratique Dans une console, ouvrez un screen avec ssh-
agent en tâche de fond :% exec ssh-agent $SHELL Puis donnez votre clé à l'agent :% ssh-add Il vous demande alors votre pass phrase.
Maintenant que votre clé a été transmise à l'agent, vous pouvez vous connecter sans entrer de mot de passe à toutes les machines pour lesquelles vous avez mis votre clé publique dans le fichier ~/.ssh/authorized_keys.
214
Faire des tunnels SSH Faire un tunnel SSH est un moyen simple de crypter n'importe
quelle communication TCP entre votre machine et une machine sur laquelle vous avez un accès SSH.
Par exemple, pour établir un tunnel SSH pour une connexion HTTP vers la machine serveur.exemple.org :
% ssh -L 2012:serveur.exemple.org:80 [email protected]
où 2012 est le port sur la machine cliente à partir duquel la connexion entre dans le tunnel SSH
le port doit être supérieur à 1024 si on ne veut pas avoir à lançer le tunnel en tant que root.
Ensuite, il suffit de lançer un navigateur Web en lui demandant de se conneecter en local sur ce port :
% w3m http://localhost:2012
215
Faire des tunnels SSH
216
Utiliser SCP pour transférer le fichier test1.txt situé dans le répertoire courant vers le home
du compte toto de la machine ordi1.exemple.org sur laquelle tourne un serveur SSH :
% scp test1.txt [email protected]:
pour récupérer le fichier test2.txt situé le home de l'utilisateur toto de la machine ordi2.exemple.org et l'écrire dans le répertoire courant :
% scp [email protected]:test2.txt . .
pour récupérer tous les fichiers ayant l'extension .txt situés dans le répertoire /usr/local de la machine ordi2.exemple.org et l'écrire dans le sous-répertoire test-scp du répertoire courant :
% scp [email protected]:/usr/local/*.txt test-scp
pour transférer l'intégralité du sous-répertoire test-scp du répertoire courant vers le sous répertoire incoming du home de l'utilisateur toto de la machine ordi1.exemple.org :
% scp -r test-scp [email protected]:incoming