principes de base de l’utilisation du système · tion de la ligne de commande shell, en les...

17
Nicolas PONS Linux Principes de base de l’utilisation du système 5 e édition

Upload: lamtram

Post on 14-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

ISBN

: 97

8-2-

409-

0015

0-5

29,9

0 €

Ce livre sur GNU/Linux s’adresse à tout informaticien désireux de maîtriser les principes de base de ce système d’exploitation ou d’organiser et consolider des connaissances acquises sur le terrain.

Il présente de façon détaillée les principes de base du système et décrit très précisément les commandes essentielles à la manipula-tion de la ligne de commande shell, en les illustrant de nombreux exemples : l’arborescence Linux, la manipulation des fichiers, l’éditeur de fichiers texte, les droits d’accès, la gestion des proces-sus, le shell Bash, les scripts Bash, la gestion des comptes utili-sateurs, les outils Linux...

Les notions présentées dans ce livre, si elles sont essentielles pour comprendre le fonctionnement du système GNU/Linux au ni-veau utilisateur, sont tout aussi indispensables au lecteur qui dé-sire poursuivre en administration système. Ce livre peut être utilisé comme ouvrage de référence donnant ainsi au lecteur les moyens d’acquérir son autonomie, aussi bien en environnement graphique qu’en ligne de commande.

Avec cette nouvelle édition, vous découvrirez les nouveautés et particularités accompagnant les dernières distributions Linux dis-ponibles.

Linux Principes de base de l’utilisation du système

Pour plus d’informations :

Nicolas PONSIngénieur indépendant spécialisé dans l’automatisation de productions infor-matiques, Nicolas Pons est aujourd’hui référent pédagogique et instructeur pour divers centres de formation. Sa solide expérience en administration et en développement système s’allie à ses qualités pédagogiques pour proposer aux lecteurs des ouvrages accessibles et complets sur Linux.

Avant-propos  •  Introduction  •  Connexion  et  premières  com-mandes  • Documentation  • L’arborescence Linux  • Manipulation de fichiers • Édition de fichiers texte • Vi • Droits d’accès aux fi-chiers • Gestion des processus • Shell Bash • Programmation et scripts Bash • Gestion du compte utilisateur • Outils Linux • Confi-guration basique du système

Nicolas PONS

Linu

xPr

inci

pes

de b

ase

de l’

utili

satio

n du

sys

tèm

e

Les chapitres du livre

Linux Principes de base

de l’utilisation du système

5e édition

Nouvelle édition

1Table des matières

Avant-propos

Chapitre 1Introduction

1. Historique de Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2. GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.1 FSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 CopyLeft et GPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1 Caractéristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Distributions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4. Quelle distribution choisir ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.1 Les distributions "grand public" . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Les distributions "mobiles" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Les distributions "professionnelles" . . . . . . . . . . . . . . . . . . . . . . . 254.4 Les distributions "spécialisées" . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Chapitre 2Connexion et premières commandes

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2. Consoles et terminaux Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1 Consoles virtuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2 Émulateurs de terminaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3 Terminaux distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Connexion et authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4. Invite shell (prompt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5. Syntaxe des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6. Utilisation de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2Principes de base de l’utilisation du système

Linux

7. Raccourcis-clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.1 En mode texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.2 En mode graphique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

8. Premières commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.1 Identité des utilisateurs : who, whoami, finger . . . . . . . . . . . . . 458.2 Changement de mot de passe : passwd . . . . . . . . . . . . . . . . . . . 478.3 Comptage : wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478.4 Affichage : clear, echo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.5 Temps : date, cal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

9. Déconnexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

10. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Chapitre 3Documentation

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2. Manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.1 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.2 Commande man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3 /etc/man.config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.4 /etc/man_db.conf et /etc/manpath.config . . . . . . . . . . . . . . . . . 59

3. Documentation Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.1 Commande info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2 Organisation de la documentation . . . . . . . . . . . . . . . . . . . . . . . 623.3 Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.4 Considérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4. Option --help des commandes sous Linux . . . . . . . . . . . . . . . . . . . . . 66

5. Documentation HOWTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6. /usr/share/doc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3Table des matières

7. Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.1 Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.2 Groupes de discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Chapitre 4L'arborescence Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2. Principaux répertoires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.1 /bin, /sbin, /lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.2 /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.3 /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.4 /home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.5 /root. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.6 /tmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.7 /lost+found . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.8 /mnt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.9 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.10 /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.11 /usr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.12 /var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842.13 /run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852.14 /etc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3. Montages et accès aux médias amovibles . . . . . . . . . . . . . . . . . . . . . . 863.1 Commande mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.2 Commande umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.3 Boîte à outils mtools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4Principes de base de l’utilisation du système

Linux

Chapitre 5Manipulation de fichiers

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

2. Noms des fichiers et des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3. Types de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4. Chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.1 Chemins absolus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.2 Chemins relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.3 Chemins personnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

5. Exploration de l'arborescence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.1 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.2 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.3 ls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.4 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.5 stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6. Répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086.1 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086.2 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7. Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.1 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.2 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117.3 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147.4 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8. Organisation physique des fichiers sous Linux . . . . . . . . . . . . . . . . 1178.1 Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178.2 Blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

9. Gestionnaires de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.1 Midnight Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.2 Dolphin, Nautilus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5Table des matières

10. Consultation de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.1 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.2 more, less. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.3 od, strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

11. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Chapitre 6Édition de fichiers texte - Vi

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

2. Présentation de Vi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302.1 Lancement de Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312.2 Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322.3 Commandes de déplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332.4 Commandes d'insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362.5 Commandes d'édition et de correction . . . . . . . . . . . . . . . . . . . 1372.6 Commandes globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392.7 Fichier de configuration personnel . . . . . . . . . . . . . . . . . . . . . . 1442.8 Autres commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

3. Autres outils d'édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.1 Autres éditeurs texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463.2 Éditeurs hexadécimaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

4. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

6Principes de base de l’utilisation du système

Linux

Chapitre 7Droits d'accès aux fichiers

1. Concepts de comptes utilisateur et de groupes . . . . . . . . . . . . . . . . 1551.1 Hiérarchie des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571.2 Commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

2. Droits Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.1 Droits standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.2 SUID, SGID et Sticky Bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

3. Gestion des droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.1 chgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.2 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1693.3 umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733.4 Gestionnaires de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

4. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Chapitre 8Gestion des processus

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

2. Arborescence de processus et PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

3. Visualisation des processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803.1 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803.2 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.3 pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

4. Signaux et commande kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

5. Gestionnaires de processus graphiques . . . . . . . . . . . . . . . . . . . . . . . 192

6. Manipulation des processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936.1 Lancer un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936.2 Arrêter un processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1946.3 Contrôler les processus lancés en ligne de commande . . . . . . . 195

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

7Table des matières

Chapitre 9Shell Bash

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

2. Généralités et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

3. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013.1 Manipulation de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2023.2 Variables d'environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

4. Caractères génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

5. Caractères de citation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

6. Redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.1 Descripteurs de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.2 Redirection de l'entrée standard . . . . . . . . . . . . . . . . . . . . . . . . 2216.3 Redirection de la sortie standard . . . . . . . . . . . . . . . . . . . . . . . . 2226.4 Redirection de l'erreur standard. . . . . . . . . . . . . . . . . . . . . . . . . 2236.5 Redirections combinées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2246.6 Exemples de redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2256.7 Les tubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

7. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

8. Exécution de commandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328.1 Commandes internes du shell . . . . . . . . . . . . . . . . . . . . . . . . . . 2328.2 Commandes externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2338.3 type, whereis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

9. Substitution de commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

10. Options du shell Bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

11. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

8Principes de base de l’utilisation du système

Linux

Chapitre 10Programmation et scripts Bash

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

2. Scripts shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2412.1 Appel et exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2422.2 Méthodes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

3. Codes retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

4. Enchaînement de commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.1 Exécution séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.2 Exécution conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

5. Variables spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.1 $$, $PPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.2 $0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.3 $1, $2, $3, ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2535.4 $# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545.5 $*, $@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545.6 $LINENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

6. Commande test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2566.1 Test de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2566.2 Test de chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . 2586.3 Test arithmétique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2596.4 Test de l'environnement utilisateur . . . . . . . . . . . . . . . . . . . . . 2606.5 Combinaison d'expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

7. Opérations arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2627.1 expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2627.2 let, (()) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

8. Commande read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

9. Structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.1 L'instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.2 L'instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2719.3 L'instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

9Table des matières

10. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

Chapitre 11Gestion du compte utilisateur

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

2. Modification du compte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

3. Données personnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2783.1 /home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.2 /tmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.3 /var/spool/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

4. Environnement shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.1 /etc/profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.2 ~/.bash_profile, ~/.bash_login, ~/.profile . . . . . . . . . . . . . . . 2814.3 ~/.bashrc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2814.4 /etc/bashrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2824.5 ~/.bash_logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

5. Environnement graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

6. Sauvegarde des données utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 284

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Chapitre 12Outils Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

2. find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.1 Chemin de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.2 Expressions de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2932.3 Opérateurs sur les expressions. . . . . . . . . . . . . . . . . . . . . . . . . . 2982.4 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

10Principes de base de l’utilisation du système

Linux

3. grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033.1 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3053.2 Expressions régulières. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

4. cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

5. sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

6. head, tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

Chapitre 13Configuration basique du système

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

2. Installation de logiciels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3172.1 Les paquetages RPM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3182.2 Les paquetages Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3192.3 Les archives compressées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

3. Outils d'administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

155

Chapitre 7Droits d'accès aux fichiers

Droits d'accès aux fichiers1. Concepts de comptes utilisateur et de groupesLe système GNU/Linux étant multiutilisateur, les personnes employant celui-ci doivent être identifiées afin d'assurer la confidentialité des informationscontenues dans les fichiers. En effet, il ne serait pas acceptable que l'utilisateur"Nicolas" puisse consulter les fichiers personnels de "Richard" sans l'accord dece dernier.

Ces personnes possèdent donc chacune un "compte utilisateur" sur lesystème ; elles peuvent utiliser ce dernier tout en étant clairement identifiées.Cependant, il est permis de partager des fichiers entre collaborateurs et unenotion de "groupe d'utilisateurs" existe sous GNU/Linux.

Un utilisateur doit obligatoirement être membre d'un groupe d'utilisateurs surun système Unix comme GNU/Linux : c'est son groupe principal qui est uti-lisé lors de la création des fichiers. Par contre, il peut éventuellement apparte-nir à plusieurs autres groupes : ses groupes secondaires déterminent ses droitsd'accès aux fichiers créés par d'autres membres des groupes.

© E

diti

ons

ENI -

All

righ

ts r

eser

ved

156Principes de base de l’utilisation du système

Linux

Par exemple, si l'on représente les différents services d'une société avec leurspersonnels, bien que chaque individu ait une fonction première (indiquéeentre parenthèses), certains peuvent assumer plusieurs missions :

On voit ici que :

– Richard et Gérald appartiennent tous les deux au service technique (Tech).

– Nicolas, qui est avant tout formateur (Cours), fait aussi partie du servicetechnique (Tech).

– Willy, appartenant au service technique (Tech) principalement, travailleaussi dans le service formation (Cours).

– Linus est un formateur (Cours) qui collabore avec les services technique(Tech) et comptabilité (Compta).

– Gérard, du service technique (Tech), offre ses compétences au service com-mercial (Vente).

– Alain est un commercial (Vente) qui s'acquitte aussi de tâches administra-tives (Compta).

– Soraya fait uniquement partie du service comptabilité (Compta).

Pour identifier tous ces utilisateurs au niveau du système d'exploitation, unnuméro unique leur est attribué : l'UID (User ID) ; le propriétaire d'un fichierest déterminé par ce numéro sous Unix. Ces utilisateurs sont aussi dotés d'unnom d'utilisateur unique (login) et d'un mot de passe (password) pour qu'ilspuissent s'authentifier lors de leur connexion au système.

157Droits d'accès aux fichiersChapitre 7

De la même manière, les groupes d'utilisateurs sont représentés par un nomunique auquel est associé un identifiant numérique : le GID (Group ID). Cedernier est également utilisé pour déterminer le groupe propriétaire d'un fi-chier.

1.1 Hiérarchie des utilisateurs

Les utilisateurs, et par conséquent les comptes utilisateur, ne sont pas touségaux sous Unix. On peut distinguer trois types de comptes :

root

C'est l'utilisateur le plus important du système du point de vue de l'adminis-tration. Il n'est pas concerné pas les droits d'accès aux fichiers et peut faireà peu près tout sur le système, excepté écrire sur un système de fichiersmonté en lecture seule (CD-ROM). Son UID égal à 0 lui confère sa spécifi-cité. Ce "super-utilisateur" a donc à sa charge les tâches d'administration dusystème. Pour éviter toute erreur de manipulation, il est fortement conseilléd'utiliser le compte d'administration uniquement pour les tâches nécessi-tant les droits du super-utilisateur.

bin, daemon, sync, apache...

Il existe sur le système une série de comptes qui ne sont pas affectés à despersonnes physiques. Ceux-ci servent à faciliter la gestion des droits d'accèsde certaines applications et démons. Les UID compris entre 1 et 499 sont gé-néralement utilisés pour ces comptes.

linus, nicolas...

Tous les autres comptes utilisateur sont associés à des personnes réelles ;leur vocation est de permettre à des utilisateurs standards de se connecteret d'utiliser les ressources de la machine. L'UID d'un utilisateur est normale-ment un nombre supérieur à 999.

Remarque

On appelle "démons" les programmes s'exécutant en tâche de fond, commeun serveur web ou un serveur d'impression.

© E

diti

ons

ENI -

All

righ

ts r

eser

ved

158Principes de base de l’utilisation du système

Linux

À l'instar des comptes utilisateur, il existe différents types de groupes sur unsystème GNU/Linux permettant de donner des droits communs à un en-semble d'utilisateurs :

root

Son GID est 0 et c'est le groupe principal de l'administrateur.

bin, daemon, sync, apache...

Ces groupes ont le même rôle que les comptes du même nom et permettentde donner les mêmes droits d'accès à un ensemble d'applications. Parconvention, les groupes système ont un GID compris entre 1 et 999.

cours, tech...

Ces groupes représentent un ensemble de personnes réelles devant accéderaux mêmes fichiers. Typiquement, ils ont un GID supérieur ou égal à 1000.

1.2 Commandes utiles

Les commandes id et groups permettent d'afficher les informations en rap-port avec les groupes. La première donne l'UID de l'utilisateur, le GID de songroupe principal et les GID de tous les groupes auxquels il appartient. La se-conde ne fournit que la liste complète des groupes mais accepte plusieursnoms d'utilisateurs en argument :

[nicolas]$ whoaminicolas[nicolas]$ iduid=1000(nicolas) gid=1000(cours) groupes=1000(cours),1001(tech)[nicolas]$ id dennisuid=1002(dennis) gid=1001(tech) groupes=1001(tech)[nicolas]$ groupscours tech[nicolas]$ groups gerard alain willy rootgerard : tech cours ventealain : vente comptawilly : tech coursroot : root

159Droits d'accès aux fichiersChapitre 7

2. Droits UnixLes permissions d'accès aux fichiers déterminent les actions que peuvent en-treprendre les utilisateurs.

Remarque

La majorité des problèmes d'installation, de configuration et de fonctionne-ment des applications sous GNU/Linux est due à des droits d'accès mal posi-tionnés.

En premier lieu, il est nécessaire de savoir que les droits d'accès sous Linux sontdéfinis pour :

– Un compte utilisateur : propriétaire du fichier, c'est en principe l'utilisateurqui a créé celui-ci.

– Un groupe : ce groupe est généralement le groupe principal du propriétairedu fichier mais peut être modifié par ce dernier et prendre la valeur d'un deses groupes secondaires.

– Les autres : cette entité représente toute personne autre que le propriétaireet qui n'est pas membre du groupe cité précédemment.

Remarque

Les droits d'accès à un fichier sont aussi appelés "modes" sous Unix.

Les droits, l'utilisateur et le groupe propriétaires d'un fichier sont affichés avecla commande ls -l :

© E

diti

ons

ENI -

All

righ

ts r

eser

ved

160Principes de base de l’utilisation du système

Linux

Dans ce dernier exemple, le fichier appartient à l'utilisateur willy et augroupe tech ; les neuf caractères rw-r--r-- définissent les droits d'accès àce fichier pour l'utilisateur willy (user ou u), les membres du groupe tech(group ou g) et les autres (other ou o). Plus précisément, ces caractères sontrépartis comme suit :

Tout utilisateur est donc associé à l'une de ces entités pour déterminer les per-missions en vigueur.

Remarque

Attention, si l'utilisateur est propriétaire du fichier, ce sont les droits du proprié-taire qui s'appliquent et non ceux du groupe, même si cet utilisateur est aussimembre de ce groupe.

La commande GNU ls peut ajouter un caractère supplémentaire à la suite desneuf droits Unix standards lorsque des autorisations particulières sont posi-tionnées. Un point . indique alors un contexte sécurité SELinux spécifique etun + indique qu'une autre méthode d'autorisation telle que des ACL (AccessControl Lists) est utilisée.

2.1 Droits standards

Les droits d'accès fondamentaux sur les fichiers et les répertoires sous Unix/Linux sont les droits de lecture r (Read), d'écriture w (Write) et d'exécution x(eXecute).

Ces droits – définis pour les entités u, g et o – apparaissent dans l'ordre r, suivide w, lui-même suivi de x avec la commande ls -l. Lorsque l'un de ces carac-tères est remplacé par un tiret, cela signifie que le droit associé n'est pas auto-risé.