216
1 Partie I Administration système

Administration Linux

Embed Size (px)

DESCRIPTION

administration Linux pour ingénieur

Citation preview

Page 1: Administration Linux

1

Partie I

Administration système

Page 2: Administration Linux

2

Unité 1Unité 1

Administration des utilisateurs Administration des utilisateurs et des groupeset des groupes

Page 3: Administration Linux

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..

Page 4: Administration Linux

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

Page 5: Administration Linux

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, ...).

Page 6: Administration Linux

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.

Page 7: Administration Linux

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

Page 8: Administration Linux

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)

Page 9: Administration Linux

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

Page 10: Administration Linux

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

Page 11: Administration Linux

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.

Page 12: Administration Linux

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

Page 13: Administration Linux

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.

Page 14: Administration Linux

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)

Page 15: Administration Linux

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

Page 16: Administration Linux

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

Page 17: Administration Linux

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.

Page 18: Administration Linux

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

Page 19: Administration Linux

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)

Page 20: Administration Linux

20

Unité 2Unité 2

Démarrage et arrêt du Démarrage et arrêt du systèmesystème

Page 21: Administration Linux

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

Page 22: Administration Linux

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

Page 23: Administration Linux

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

Page 24: Administration Linux

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

Page 25: Administration Linux

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.

Page 26: Administration Linux

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

Page 27: Administration Linux

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

Page 28: Administration Linux

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

Page 29: Administration Linux

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.

Page 30: Administration Linux

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.

Page 31: Administration Linux

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

Page 32: Administration Linux

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)

Page 33: Administration Linux

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

Page 34: Administration Linux

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.

Page 35: Administration Linux

35

Configuration des services Configuration des services par niveaupar niveau

ntsysvntsysv ChkconfigChkconfig serviceconfserviceconf . . . . . .

Page 36: Administration Linux

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>)

Page 37: Administration Linux

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

Page 38: Administration Linux

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

Page 39: Administration Linux

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

Page 40: Administration Linux

40

Unité 3Unité 3

Les packagesLes packages

Page 41: Administration Linux

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.

Page 42: Administration Linux

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

Page 43: Administration Linux

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

Page 44: Administration Linux

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

Page 45: Administration Linux

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

Page 46: Administration Linux

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

Page 47: Administration Linux

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.

Page 48: Administration Linux

48

Unité 4Unité 4

Gestion des Gestion des périphériquespériphériques

Page 49: Administration Linux

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.

Page 50: Administration Linux

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

Page 51: Administration Linux

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

Page 52: Administration Linux

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é

Page 53: Administration Linux

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

Page 54: Administration Linux

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.

Page 55: Administration Linux

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

Page 56: Administration Linux

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

Page 57: Administration Linux

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

Page 58: Administration Linux

58

Unité 5Unité 5

Système de fichierSystème de fichier

Page 59: Administration Linux

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)

Page 60: Administration Linux

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

Page 61: Administration Linux

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

Page 62: Administration Linux

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)

Page 63: Administration Linux

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)

Page 64: Administration Linux

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

Page 65: Administration Linux

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

Page 66: Administration Linux

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

Page 67: Administration Linux

67

Page 68: Administration Linux

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)

Page 69: Administration Linux

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

Page 70: Administration Linux

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

Page 71: Administration Linux

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

Page 72: Administration Linux

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

Page 73: Administration Linux

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

Page 74: Administration Linux

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

Page 75: Administration Linux

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

Page 76: Administration Linux

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

Page 77: Administration Linux

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.

Page 78: Administration Linux

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

Page 79: Administration Linux

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

Page 80: Administration Linux

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

Page 81: Administration Linux

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

Page 82: Administration Linux

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

Page 83: Administration Linux

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

Page 84: Administration Linux

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.

Page 85: Administration Linux

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

Page 86: Administration Linux

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.

Page 87: Administration Linux

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.

Page 88: Administration Linux

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       

Page 89: Administration Linux

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

Page 90: Administration Linux

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.

Page 91: Administration Linux

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

Page 92: Administration Linux

92

RAID ET LVM

Page 93: Administration Linux

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.

Page 94: Administration Linux

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.

Page 95: Administration Linux

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).

Page 96: Administration Linux

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.

Page 97: Administration Linux

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.

Page 98: Administration Linux

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.

Page 99: Administration Linux

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.

Page 100: Administration Linux

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.

Page 101: Administration Linux

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).

Page 102: Administration Linux

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.

Page 103: Administration Linux

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

Page 104: Administration Linux

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

Page 105: Administration Linux

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

Page 106: Administration Linux

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.

Page 107: Administration Linux

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.

Page 108: Administration Linux

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.

Page 109: Administration Linux

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.

Page 110: Administration Linux

110

Unité 6Unité 6

SchedulingScheduling

Page 111: Administration Linux

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

Page 112: Administration Linux

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

Page 113: Administration Linux

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

Page 114: Administration Linux

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.

Page 115: Administration Linux

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

Page 116: Administration Linux

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

Page 117: Administration Linux

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

Page 118: Administration Linux

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

Page 119: Administration Linux

119

Partie II

Administration Réseau

Page 120: Administration Linux

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.

Page 121: Administration Linux

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.

Page 122: Administration Linux

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

Page 123: Administration Linux

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

Page 124: Administration Linux

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

Page 125: Administration Linux

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.

Page 126: Administration Linux

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.

Page 127: Administration Linux

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.

Page 128: Administration Linux

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

Page 129: Administration Linux

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

Page 130: Administration Linux

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

Page 131: Administration Linux

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.

Page 132: Administration Linux

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

Page 133: Administration Linux

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.

Page 134: Administration Linux

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.

Page 135: Administration Linux

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.

Page 136: Administration Linux

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.

Page 137: Administration Linux

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.

Page 138: Administration Linux

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}

...

Page 139: Administration Linux

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...

Page 140: Administration Linux

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

Page 141: Administration Linux

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é.

Page 142: Administration Linux

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

Page 143: Administration Linux

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

Page 144: Administration Linux

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)}

Page 145: Administration Linux

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 …

Page 146: Administration Linux

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

Page 147: Administration Linux

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.

Page 148: Administration Linux

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

Page 149: Administration Linux

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.

Page 150: Administration Linux

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é.

Page 151: Administration Linux

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.

Page 152: Administration Linux

152

Introduction au service NFS

Le service NFS : Network File System

Page 153: Administration Linux

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)

Page 154: Administration Linux

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.

Page 155: Administration Linux

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".

Page 156: Administration Linux

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.

Page 157: Administration Linux

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.

Page 158: Administration Linux

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.

Page 159: Administration Linux

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

Page 160: Administration Linux

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]

Page 161: Administration Linux

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)

Page 162: Administration Linux

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

Page 163: Administration Linux

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.

Page 164: Administration Linux

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

Page 165: Administration Linux

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.

Page 166: Administration Linux

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 !

Page 167: Administration Linux

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  

Page 168: Administration Linux

168

Fonctionnement de NISFonctionnement de NIS

Le service NIS : Network Information System

Page 169: Administration Linux

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, ...)

Page 170: Administration Linux

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. .

Page 171: Administration Linux

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).

Page 172: Administration Linux

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 ……..

Page 173: Administration Linux

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. .

Page 174: Administration Linux

174

Configuration du serveur NISConfiguration du serveur NIS

Page 175: Administration Linux

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 .

Page 176: Administration Linux

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

Page 177: Administration Linux

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

Page 178: Administration Linux

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

Page 179: Administration Linux

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

Page 180: Administration Linux

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.

Page 181: Administration Linux

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

Page 182: Administration Linux

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

Page 183: Administration Linux

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

Page 184: Administration Linux

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

Page 185: Administration Linux

185

Configuration d'une machine Configuration d'une machine clientecliente

Page 186: Administration Linux

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

Page 187: Administration Linux

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

Page 188: Administration Linux

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]

Page 189: Administration Linux

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

Page 190: Administration Linux

190

Algorithme de recherche Les actions par défaut sont :

SUCCESS=return UNAVAIL=continue NOTFOUND=continue TRYAGAIN=continue

Page 191: Administration Linux

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 ………………..

Page 192: Administration Linux

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

Page 193: Administration Linux

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

Page 194: Administration Linux

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

Page 195: Administration Linux

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.

Page 196: Administration Linux

196

Secure shell : SSH

Page 197: Administration Linux

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.

Page 198: Administration Linux

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.

Page 199: Administration Linux

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.

Page 200: Administration Linux

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.

Page 201: Administration Linux

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.

Page 202: Administration Linux

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.

Page 203: Administration Linux

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

Page 204: Administration Linux

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

Page 205: Administration Linux

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

Page 206: Administration Linux

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

Page 207: Administration Linux

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.

Page 208: Administration Linux

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.

Page 209: Administration Linux

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.

Page 210: Administration Linux

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.

Page 211: Administration Linux

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.

Page 212: Administration Linux

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é.

Page 213: Administration Linux

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.

Page 214: Administration Linux

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

Page 215: Administration Linux

215

Faire des tunnels SSH

Page 216: Administration Linux

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