Vous êtes sur la page 1sur 196

Système d’exploitation « Open Source »

Objectifs du Module

Introduire les notions de base des systèmes d'exploitation.

Différence entre un Système Open Source (Libre) et un système

propriétaire

Se familiariser avec le système Open Source de type linux (Ubuntu)

Maitriser la manipulation en mode commande des systèmes Linux

Manipulation des commandes de gestion des fichiers Linux


INTRODUCTION :

Système d’exploitation

• On peut dire qu’un System d’exploitation : est Une


interface qui sert d’intermédiaire entre l’utilisateur
et l’ordinateur
INTRODUCTION :

Composantes internes d’un ordinateur


INTRODUCTION :

Composantes Externes/ Périphériques


d’un ordinateur
INTRODUCTION :
Ordinateurs et Logiciels

Open Office
MicrosoftWord
Dev Cpp

Internet
Explorer
Etc ….
Application de paie
Paint
Un S.E est aussi Une interface qui sert d’intermédiaire
entre les logiciels et l’ordinateur
INTRODUCTION :

Un SE joue également le rôle de la Coordination et du


contrôle de l’ensemble des composantes (matériels) de
l’ordinateur et les périphériques qui lui sont rattachés
INTRODUCTION :
INTRODUCTION :
100% Ressource
_

Route Route Route Route


A B A A

2mins temps

• Le SE assure un rôle de partage de temps de calcule de


microprocesseur et l’utilisation de l’espace mémoire de la
RAM
INTRODUCTION :
INTRODUCTION :

100% microprocesseur
_

Log. A Log. B Log. C Log. D

millisecondes temps
INTRODUCTION :

% microprocesseur
100%_
Log. C
70% _
Log. B Log. A Log. A
Log. B
50% _
Log. A Log. D Log. C Log. D

millisecondes temps

Le S.E Assure un partage optimale du microprocesseur et


de la RAM.
INTRODUCTION :

Le S.E assure également la Gestion Efficace des conflits


Matériels et logiciels et des erreurs :

 Occupation trop de microprocesseurarrêt du programme et signale


 Deux application concurrentes RAM  Allocation de la mémoire pour chacune
 Matériel mal branché  signale à l’utilisateur
 Manipulation non autorisé par l’utilisateur signale à l’utilisateur

Touts ces conflits pourraient générer un arrêts totale de la


machine, mais le S.E assure la continuité de fonctionnement
de l’ordinateur en arrêtant juste le programme en erreur
INTRODUCTION :

Récapitulatif ?

Un Système d’Exploitation est:

Intermédiaire entre l’utilisateur/Ordinateur


 Intermédiaire entre logiciels(applications) /Ordinateur
Contrôle et coordonne tout le matériels
Partage optimale du microprocesseur et RAM
Gestion des conflits Matériels et logiciels)
INTRODUCTION

Rappel Système D’exploitation


Définition d’un système d’exploitation:
Un système d’exploitation est un ensemble de programmes qui
coordonnent le fonctionnement des différents composants matériels et
logiciels d’un système informatique.
INTRODUCTION

Apparition des S.E


Avant les années 80
1955-1970 : Premiers systèmes : traitement par lots (batch)

1970-1980 : Unix et ces versions , Par Dennis Ritchie et Ken Thompson au


Laboratoires Bell ATT de New Jersey.

Après les années 80

Microsoft Appele Groupe de volontaire


INTRODUCTION

1er S.E : MS-DOS : fonctionne en


mode commandes
INTRODUCTION
INTRODUCTION
INTRODUCTION
INTRODUCTION
INTRODUCTION
INTRODUCTION
INTRODUCTION
INTRODUCTION

Il y a aussi les S.E MAC OS ( MACINTOSH)


INTRODUCTION

Il y a aussi les S.E Libre (Open source )


INTRODUCTION

Récemment
INTRODUCTION

~~80% ~~20%
INTRODUCTION

Un programme informatique:
que ce soit un noyau ou un logiciel, est constitué de nombreuses lignes de code,
écrites dans un langage de programmation (le langage C dans le cas du noyau
Linux). Ce code n'est généralement pas utilisable en tant que tel. Il faut passer
par la phase de compilation qui transforme le code source en programme
exécutable, souvent appelé binaire. Il suffit d'avoir le binaire pour utiliser le
programme.

Quand on achète un logiciel (Microsoft Office par exemple) ou un système


d'exploitation (Windows par exemple), on a un CD qui contient le binaire, mais
pas les sources. Il est donc impossible de savoir comment le programme est
conçu. Par conséquent, on ne peut pas modifier le programme. On peut
seulement l'utiliser et éventuellement le copier à l'identique.
Système Open sources
logiciel Libre / logiciel propriétaire

Les logiciels propriétaires sont donc les logiciels dont une licence,
souvent payante, ne donne qu'un droit limité d'utilisation. On n'a la plupart
du temps accès qu'aux binaires de ces logiciels. Certains logiciels
propriétaires sont gratuits, on les appelle alors des freewares.
(Windows est un OS propriétaire dont le code source est jalousement
gardé par Microsoft. Imaginez que c'est un peu comme le Coca-Cola :
personne ne connaît la recette de fabrication .

On ne peut donc pas le modifier ou regarder comment il fonctionne à


l'intérieur.)
Système Open sources
Logiciel Libre / Logiciel Propriétaire
L’accès libre au code source accélère le progrès en matière d'informatique car
l'innovation dépend de la diffusion du code source.

les quatre libertés fondamentales pour dire qu’un Système est open source:

• Liberté d'exécution : tout le monde a le droit de lancer le programme, quel


qu'en soit le but ;

• Liberté de modification : tout le monde a le droit d'étudier le programme et


de le modifier, ce qui implique un accès au code source ;

• Liberté de redistribution : tout le monde a le droit de rediffuser le


programme ;

• Liberté d‘amélioration : tout le monde a le droit de redistribuer une version


modifiée du programme ;
Système Open sources
Avantages et inconvénients des logiciels libres
Avantages
La qualité : Le fait que tout le mode qui peuvent y travailler (revision ,
correction …) , il n y aura plus de bug , ni Verus
La réactivité: correction des Bug très rapidement car il y a de nombreuse
personne qui travaillent dessus.
Le coût : cout faible( généralement gratuit) car il est fait par des passionnés
L’autonomie : ajouter MAJ votre logiciel vous-même, sans attendre l’avis
ou l’accord de la boit qui vous a vendu le programme
La libre-concurrence : Grace au logiciel libre, il ne reste plus place au
monopole ! Cela favorise donc la concurrence entre entreprise, permet le
développement de nombreuses PME. Plus besoin de prendre le logiciel X
parce que c’est le seul disponible (prix elevé) puisque des alternatives libres
existent
La maintenance: la continuité et la maintenance d’un logiciel propriétaire
dépends de la volonté de l’entreprise et de sa stratégie
L’entre-aide : Vous trouvez toujours quelqu’un à vous aider pour débloquer
vos problème car c’est la vocation des volontaires.
Système Open sources
Avantages et inconvénients des logiciels libres
inconvénients :

• Trop de choix : L'utilisateur peut avoir à choisir entre plusieurs logiciels, ce


qui ne simplifie pas forcément l'apprentissage ou la communication entre les
différents utilisateurs de logiciels libres .
• Difficultés d’intégration : Il est très difficile en ce qui concerne les
logiciels libres de les intégrer dans une solution logicielle, à moins que la
solution entière ait été développée en libre par une équipe
• Incompatibilités : Les logiciels libres sont rarement compatibles avec les
logiciels propriétaires. Vous avez déjà essayé d’ouvrir un fichier .doc créé avec
Microsoft Office dans Open Office ?
• Manque de documentation : C’est bien connu, la plupart des codeurs
préfèrent coder qu’écrire de la documentation
• Modèles économiques compliqués : Enfin, les modèles économiques
permettant le développement du logiciel libre sont complexes… très
complexes… Il est beaucoup plus difficile de gagner de l’argent et de vivre de
la production de logiciels libres par rapport aux logiciels propriétaires.
Système Open sources Linux

Historique
UNIX est un système d'exploitation, créé en 1969 par Ken Thompson et Dennis
Ritchie. Sa conception a été particulièrement soignée, et apportait plusieurs
innovations, notamment le choix d'utiliser plusieurs outils simples et spécialisés,
plutôt que des logiciels complexes à tout faire. Il est l'un des systèmes
d'exploitation les plus populaires au monde, en raison du grand nombre
d'architectures qu'il supporte .

Project GNU:

Est un projet lancé par Richard Stallman, un chercheur du MIT.


Le but est de dévellopper un OS complet, libre et qui se base sur Unix afin de
contrer le développement croissant des logiciels propriétaires( le prix Unix devenait
de plus en plus payant).

Cependant, en 1991, le projet GNU n'avait toujours pas de noyau et tournait sur
des Unix propriétaires.(Stallman avait créer les programmes de base:(programme
de copie de fichier, suppression de fichier, éditeur de texte).
Système Open sources Linux

Historique (suite)

En 1991, Linus Torvalds, un étudiant de l’université de Helsinki, développe


un noyau en s'inspirant des principes du système d'exploitation UNIX.
Le OS prend le nom de Linux ( en référence à son créateur).

Project
Project GNU LINUX

GNU/LINUX

Le projet GNU (programmes libres) et Linux (noyau d'OS) ont


fusionné pour créer GNU/Linux.
Système Open sources Linux

Les distributions de Linux

Il existe une très grande variété de distributions, ayant chacune des objectifs
et une philosophie particulière.

Les éléments différenciant principalement les distributions sont :

 la convivialité (facilité de mise en œuvre).

 l'intégration (taille du parc de logiciels validés distribués).

La notoriété (communauté informative pour résoudre les problèmes),


l'environnement de bureau (Gnome, KDE, ...).

Le point commun est le noyau ( kernel) et un certain nombre de commandes.


Système Open sources

Les distributions Commerciales

Il Red Hat: http://www.redhat.com/ La plus populaire. Fiable, sûre, conviviale


et facile à installer, prise en charge par tous les fournisseurs de logiciel et de
matériel.

Suse (Novell): http://www.suse.com/ L'alternative principale. Facile à installer,


conviviale et stable. Obtiens le support des fournisseurs de logiciel et de
matériel.

Mandriva (anciennement Mandrake): http://mandrivalinux.com/ Conviviale,


facile à installer, plus innovante, mais moins stable. Cible principalement les
utilisateurs individuels. Peu pris en charge par les fournisseurs de logiciel et de
Système Open sources

Les distributions Commerciales

Fedora Core: http://fedora.redhat.com/ Stable, sûre, conviviale, facile à


installer. Sortie fréquente de nouvelles versions complètes.

Debian: http://debian.org/ Très stable et sûre, mais plus difficile à configurer et


à installer. Conviviale pour les développeurs mais pas encore pour les
utilisateurs. Version stables pas assez fréquentes (tous les 2 ou 3 ans). La
meilleure pour les serveurs, mais pas pour les débutants.

Ubuntu Linux: http://ubuntulinux.org/ La distribution communautaire qui


progresse le plus. Basé sur Debian mais avec une version stable tout les 6
mois. Conviviale pour les utilisateurs. Bonne pour les débutants.

Mandriva Community: http://mandrivalinux.com/ Facile à installer, sûre,


conviviale, sortie fréquente de versions complètes, mais moins stable (pas
assez de tests et de prise en compte des retours des utilisateurs et testeurs)..
FONCTIONEMENT DE BASE LINUX
Gestion de fichiers et répertoires

PARTITIONEMENT DISQUE DURE

Systèmes de fichiers

• Le système de fichiers d'un système d'exploitation est un ensemble de


principes et de règles selon lesquels les fichiers sont organisés et
manipulés. Chaque système d'exploitation possède son système de fichier
privilégié, même s'il peut en utiliser d'autres
Gestion de fichiers et répertoires

Systèmes de fichiers
Systèmes de fichiers: c’est une « subdivision du disque » dur
selon un certain format.
Gestion de fichiers et répertoires

Systèmes de fichiers Linux


• Ext2 : c'est le système de fichiers qui a longtemps été utilisé sous Linux. Il a été
développé par un français (Rémy Card) et présente la particularité de ne pas se
fragmenter. Ainsi, sous Linux et depuis longtemps, il n'y a pas besoin de faire de
défragmentation.

• Ext3 : est très proche de l'ext2, à une différence majeure près, la journalisation. En
effet, ext2 n'était pas journalisé, et en cas de crash disque on risquait plus
facilement une perte de données. Ce n'est plus le cas avec l'ext3.

Concrètement, un système de fichiers journalisé enregistre dans un journal (une


sorte de mémoire tampon) ce qui doit être écrit sur le disque dur. Au cas d’un crash
disque , il va vérifier le contenu du journal, si celui ci est plein, il va le transférer dans
le disque dur- donc évite la perte de données.

A noter que l'ext2 et l'ext3 sont parfaitement compatibles entre eux, dans un sens
comme dans l'autre.
Gestion de fichiers et répertoires
PARTITIONEMENT DISQUE DURE
Appellation des disques Dures

L’appellation "à la Linux" est un peu plus complexe que celle de Windows.

C:
Windows D:
E:

hda
Linux hdb
hdc
sda

Gestion de fichiers et répertoires

PARTITIONEMENT DISQUE DURE


Appellation des disques Dures
L’appellation "à la Linux" est un peu plus complexe que celle de Windows.
hd[a-d] #
h : la première lettre indique si le disque est de type IDE ou SCSI (un
type de connexion différent à la carte mère). Si c'est une IDE, la lettre est
un h, si c'est un SCSI (ou un S-ATA), la lettre est un s.

d :cette lettre ne change pas ( drive).

[a-d] :indique les differents disques durs ,c’est a,b,c ou d.


hda: 1er disque dur/ hdb: 2ème disque dur/hdc le 3ème ….

# :est un numéro qui permet de numéroter les partition.

exemple: hda1 : 1er partition de disque dur hda


hdb10: 10ème partition de disque dur hdb
Gestion de fichiers et répertoires

Organisation des dossiers


•La racine

un "gros dossier de base qui contient tous les autres dossiers et fichiers".

Sous Windows, il y a en fait plusieurs racines. "C:\" est la racine de votre disque dur
Sous Linux, il n'y a qu'une et une seule racine : "/".

Architecture des dossiers


Sous Windows, un dossier peut être représenté comme ceci :
"C:\Program Files\Winzip".
Sous Linux : Il n'y a pas de "C:", la racine (le début) s'appelant juste "/".
Gestion de fichiers et répertoires

ARBORESCENCES DES FICHIERS

Le système de fichiers sur Linux est similaire à ce que l'on retrouve dans
Windows, i.e. une structure hiérarchique dont une racine et des répertoires qui
s'y rattachent.

Contrairement au système MS-DOS, qui contient plusieurs racine :A: ,C: ,D:
,…
Sous Linux, il y a une seule racine (root) :le slash "/" .
Par exemple, Le CD-ROM est atteint par le répertoire /cdrom.

Chaque Utilisateur possède un répertoire, dit de connexion (home directory),ou


il peut agir en toute liberté et y créer sa propre arborescence, par exemple:

/home/khalil/
Gestion de fichiers et répertoires

ARBORESCENCES DES FICHIERS

/ ( root)

bin
dev var
home tmp root lib

Plusieurs répertoire sont rattaché à la racine.


pippo khalil
ARBORESCENCES DES FICHIERS

/ : Répertoire Racine: contient les répertoires principaux.

/bin : (Commande de base du système) (contient des éxecutables essentiels au


système, employés par tous les utilisateurs ( par exemple, les commandes
ls,rm,cp,chmod,mount,… ).

 /etc :(contient les commandes et les fichiers nécessaires à l’administrateur du


sytème (fichiers passwd,group,inittab,ld.so.conf,lilo.conf…)/ fichiers de configuration de
l’ordinateur.

/ boot: (Images, fichiers de configuration du noyau ….) ( contient les fichires


permettant à Linux de démarrer).

/dev : (contient les points d’entrée des périphériques)

 /lib: (contient des bibliothèques partagées essentielles au système lors du


démarrage)/bibliotèques de base du systèmes ( partagées)
ARBORESCENCES DES FICHIERS

 /mnt : (contient les points de montage des partitions temporaires(cd-


rom,disquette…): /mnt/usbdisk/, /mnt/windows/…

/opt: (contient des pakages d’applications supplémentaires)/ ( outils spécifiques


installés par l’administrateur.

/root: (répertoire de l’administrateur root)

/tmp: (contient les fichiers temporaires)

/usr: (Hiérarchie secondaire)/ programmes utilisateurs ordinaires, non essentiels au


systèmes: /usr/lib, /usr/bin…

/sbin: (contient les binaires système essentiels (par exemple la commande


adduser)/programmes d’administration du système./ commandes réservées à
l’administarteur.

/home: (dossiers de travail des utilisateurs. Ex:/home/pippo)/ Répertoire utilisateur

/var: (données variables( dynamiques)


NOTIONS DE SHELL

Le shell est un programme qui va faire le lien entre le noyau Linux et


l'utilisateur
= interpréteur de commandes interactif

Le shell est un interpréteur de commandes qui invite l’utilisateur à


saisir une commande et la fait ensuite exécuter

invite ("prompt")

le shell est prêt à recevoir des


commandes rentrées au clavier
L’INVITE DE COMMANDES

pippo@localhost
P :~$
pippo : le premier élément est votre pseudonyme.

localhost : ça c'est le nom de l'ordinateur sur lequel vous êtes en train de travailler.
La ligne d'invite de commandes se lit donc ’pippo’ chez ‘localhost

: : c'est un séparateur.

~ :c'est le dossier dans lequel vous vous trouvez actuellement., le symbole ~


signifie que vous êtes dans votre dossier personnel, ce qu'on appelle le "Home"
sous Linux. C'est l'équivalent du dossier "Mes documents" de Windows.

$ : ce dernier symbole est très important, il indique votre niveau d'autorisation sur
la machine. Il peut prendre 2 formes différentes :

$ : signifie que vous êtes en train d'utiliser un compte utilisateur "normal",

# : signifie que vous êtes en mode super-utilisateur,


L’INVITE DE COMMANDES

Invite de commande suivie de


pippo@localhost :~$ ls la commande que j’ai tapée ls

Desktop Examples Images Réponse de l’ordinateur à


cette commande

Cela signifie que le répertoire actuel est constitué de 3 dossiers :


Desktop , Examples et Images.

En général, le système colore les éléments pour que l'on puisse


distinguer facilement les dossiers des fichiers.

Si vous n'avez aucune réponse, c'est que vous êtes dans un dossier qui
ne contient aucun fichier ou dossier.
LES PARAMETRES

Les paramètres sont des options que l'on écrit à la suite de la commande.

pippo@localhost :~$ Commande Paramètre

Exemples de paramètres:

pippo@localhost :~$ ls -a
HISTORIQUE DES COMMANDES

Pour retrouver les commandes qu’on a déjà tapé, sans devoir les réécrire à
nouveau, on utilise les flèches haut ( ) ou ( ) de notre clavier.

Si on désire remonter à des commandes qui remontent à très longtemps,


inutile de se forcer à taper sur la flèche haut pour arriver à la commande
souhaiter.
Dans ce cas, on utilise la commande « history ».
Raccourcis Utiles

:P
Effacer le contenu de la console .

:Message EOF( fin de fichier) à la console( possède la même fonction


que la commande « exit ».
:Ramène le curseur au début de la commande.

:Supprime tout ce qui est à gauche du curseur.

:Supprime tout ce qui est à droite du curseur.

:Supprime le dernier mots situé à gauche du curseur.


ARRET ET REDEMARRAGE DU SYSTEME

halt : permet d’arrêter le système. Reboot : permet de redémarrer le


système.

L’arrêt du système est une Il est égalment possible que votre


opération qui est du ressort de gestionnaire de bureau vous donne
l’administrateur. le moyen d’arrêter l’ordinateur par
On peut la realiser uniquement l’intermediare de l’interface
sur le compte root. graphique.
COMMANDES DE BASES : Répértoires

Commande ls
La commande ls ( list): Affiche la liste des fichiers dans le répertoire courant, en
ordre alphanumérique, sauf ceux qui commencent par le caractère “.” ( sauf les
fichiers cachés)
« pour cacher un fichier sous linux, on le précède d’un « . »)

ls [options] [noms]
noms du ficher qu’on veut lister. Si ce paramètre
est absent, ls affichera les fichiers du répertoire
courant.

Exemple :

ls -l /home/pippo

Commande –options noms


COMMANDES DE BASES : Répertoires

Commande ls

Les principales options:

 ls a («all»: tous) Affiche tous les ls S (“size”: taille) Affiche les fichiers les
fichiers (y compris les fichiers .*) gros en premier.

 ls l (long) Affichage en format long  ls r («reverse»: inversé) Affiche en


(type, date, taille, propriétaire, ordre inverse.
permissions)
 ls ltr (les options peuvent être
 ls t (temps) Affiche les fichiers les combinées) Format long, les fichiers les
plus récents en premier. plus récents à la fin.

 ls d (directory) Affiche du nom du


répertoire et non de son contenu.
COMMANDES DE BASES : Répertoires

Commande cd

La commande cd( change directory) permet de changer le répertoire de travail .


( permet de naviguer dans les répertoires)

cd [réperoire]
Si répertoire n’est pas précisé, alors le nouveau répertoire
sera le répertoire de connexion ($ home)( home c’est votre
dossier personnel).

Exemple :

Si on veut se positionner dans le répertoire /etc, on fera ceci:

pippo@localhost :~$ cd /etc

pippo@localhost : /etc$
COMMANDES DE BASES : Répértoires

Commande cd

 cd : Permet de se placer dans le cd /usr/bin: A va dans le répertoire


répertoire personnel de l’utilisateur bin en écrivant tout l’arboresence.
(home)
 cd : une bonne astuce pour
 cd.. : Ramène dans le répertoire revenir dans le répertoire d’où vous
parent.( remonter d’un répertoire dans veniez précédemment.
l’arborescence)

 cd rep : va dans le répertoire rep


à partir du répertoire où vous êtes.
COMMANDES DE BASES : Répértoires

Commande cd

Remarque:
La commande cd, comme toutes les commandes utilisant des répertoires, permet de
spécifier deux types de chemins:

• Les chemins Relatifs: dépendent du dossier auquel vous vous trouvez, et


utilisent notamment le répertoire '..' (répertoire père). Exemple:cd ../.

• Les chemins Absolus: ils faut spécifier toute l’arborescence depuis la


racine . Exemple: cd /home/rep1
Les chemins absolus commençent toujours par la racine (/). Vous devez faire
ensuite la liste des dossiers dans lequels vous voulez entrer.
Opérations de base sur les répertoires

• Les chemins relatifs :Un chemin relatif est un chemin qui dépend du
dossier dans lequel vous vous trouvez.
Supposant que je suis dans la racine / et je
veux me déplacer au répertoire « games »
Opérations de base sur les répertoires
Opérations de base sur les répertoires
Opérations de base sur les répertoires

• Les chemins absolus :


les chemins absolus fonctionnent quel que soit le dossier dans lequel on
se trouve.

Un chemin absolu est facile à reconnaître : il commence toujours par la


racine (/). Vous devez faire ensuite la liste des dossiers dans lesquels
vous voulez entrer.

Par exemple, supposons que je suis dans /home/chana et que je


souhaite aller dans /usr/games. Avec un chemin absolu :
Opérations de base sur les répertoires
• Les chemins absolus :
Opérations de base sur les répertoires

• Les chemins absolus et chemins Relatifs:

Ici, comme c'est un chemin relatif, on part du dossier dans lequel on se


trouve (/home/mateo21) et on indique à la machine le chemin à suivre à
partir de là pour aller dans le dossier qu'on veut.
Opérations de base sur les répertoires

• Retour au Repertoire home:

Si vous voulez retourner dans votre répertoire home personnel, plusieurs


solutions s'offrent à vous :

il suffit d'écrire le chemin absolu en entier.


COMMANDES DE BASES : Répertoires

Commande pwd
La commande pwd (print working directory): Affiche le répertoire courant
("répertoire de travail »)

pwd

La commande pwd n’accepte pas d’option.

Exemple :
pippo@localhost :~$ pwd
/usr/lib/news/bin
pippo@localhost :~$cd .. pwd
/usr/lib/news

La commande pwd): peut etre utilisée lorsqu’on désire obtenir un chemin absolu sur le
répertoire courant.

Cette commande est également utilisée par les scripts pour déterminer le répertoire à
partir duquel ils sont exécutés.
COMMANDES DE BASES : Répertoires

Commande du

La commande du (disk usage « utilisation du disque ») : Affiche les informations


sur la taille qu’occupe les dossiers sur votre disque.

Exemple :
pippo@localhost :~$ cd /usr/news
pippo@localhost : /usr/news$ du

 du -h :Affiche la taille en Ko, Mo, Go,To.(pour human-readeable) )

 du –a : (du –ah) Affiche la taille des dossiers et des fichiers et des sous-dossier 
toute l’arborescence.

 du -s : Affiche juste l’espace total occupé par le dossier, et donc n’affiche pas
l’espace des sous-dossiers. ( pour plus de lisibilité du –sh, on la combine à –h)
COMMANDES DE BASES : Répertoires

Commande mkdir
La commande mkdir ( make directory )( permet de créer un répertoire s’il n’existe
pas.
On peut aussi utiliser l’option -p pour créer un répertoire même si son répertoire
parent n’éxiste pas.
Si l’un des répertoires intermedaires n’existe pas, la commande mkdir retourne un
code d’erreur (exit status) sans créer le status ( sauf si l’option –p est spécifiée)

mkdir [-p] nouveau_répertoire

Exemple :
Si on veut créer le répertoire /tmp/ESTM/GI mais le répertoire /tmp/ESTM/GI
n’existe pas, on devrait normalement faire ceci:
pippo@localhost :~$ mkdir /tmp/ESTM/
pippo@localhost :~$ mkdir /tmp/ESTM/GI
Si on essaie de le créer, on reçoit le message suivant:
mkdir: cannot create directory ‘/tmp/ESTM/GI ’: No such file or directory.

On devra faire:~$ mkdir -p /tmp/ESTM/GI


COMMANDES DE BASES : Répertoires

Commande rmdir
La commande rmdir (remove directory) permet de supprimer le répertoire spécifié
sur la ligne de commande (répertoire). Si il existe des fichiers ou des sous
répertoires, la commande retournera un code d’erreur (exit status). (Pour supprimer
un répertoire, il faut qu’il soit vide)
rmdir [-p] répertoire
-p : permet de détruire tous les sous –répertoires vides.

répertoire : représente le nom du répertoire à détruire. C’est un


argument obligatoire.
Exemple:
~$ rmdir /tmp/ESTM/GI
~$ cd /tmp
~$ rmdir –p /tmp/ESTM/GI
rmdir: ESTM/GI : Whole path removed Nota: voir aussi la commande:
~$ cd ESTM rm –r: pour supprimer des
ESTM : does not exist répertoires contenants des
~$ fichiers.
COMMANDES DE BASES : Gestions de Fichiers
Commande cp

La commande cp ( copy) permet de copier le contenu d’un fichier dans un autre.

cp [-i] [-p] fichier1 fichier2


cp [-i] [-p] [-r] source1 [source2...] répertoire

Si destination est un fichier


cp fichier1 fichier2 : Effectue une copie de fichier1 en un nouveau fichier
appelé fichier2.
 Si destination est un répertoire.
cp fichier1 repertoire : Effectue une copie de fichier1 dans le répertoire
appelé repertoire.
cp fichier1 fichier2 fichier3… repertoire : Copie ces 3 fichiers vers le
répertoire de destination appelé repertoire.
 cp -i : (i:interactif) Demande de confirmation à l’utilisateur dans le cas où le fichier
de destination existe déjà.
 cp –r rep_orig rep_dest: (r:récursive) copie du répertoire tout entier« copier de
manière récursive un répertoire et tout ce qu’il contient.
Si cp-p fichier1 fichier2 : (p : preserve) Copier le fichier1 en préservant tous les
attributs du fichier initial.
COMMANDES DE BASES : Gestions de Fichiers

Commande mv

La commande mv( move) : déplace ou renomme les fichiers.

mv [-i] source1 [source2...] destination

mv déplace les fichiers fichiers 1,fichiers 2, etc dans destination.

 Si destination est un fichier -> alors mv a pour action de renommer fichier1 en


destination.
mv fichier1 fichier2

 Si destination est un répertoire -> alors mv déplace fichier1 dans ce répertoire.

mv fichier1 repertoire.

 mv -i : (i:interactif) Demande de confirmation avant l’écrasement du fichier.


COMMANDES DE BASES : Gestions de Fichiers
Commande rm

La commande rm (remove) : Efface les fichiers ou les répertoires .

rm [-i] source1 [source2...]

rm : supprime les fichiers ou répertoires spécifiés sur la ligne de commande.


Exemple

 rm fichier1 : destruction du fichier fichier1

 rm fichier1 fichier2 : destruction des fichiers fichier1 et fichier2.

 rm fic* :Suppression de tous les fichiers qui commencent par fic .

Option [-i] : demande de confirmation avant écrasement


COMMANDES DE CONSULTATIONS : Fichiers

Commande cat
La commande cat (concatenate « concaténer »: joindre des ficiers
séquentiellement) : Affiche des fichiers et /ou concatène les fichiers spécifiés sur
la ligne de commande.

cat [fichier...]

Quand elle est appelée sans options sans nom de fichier, la commande cat répète
sur la sortie standard ce qui est saisi sur l’entrée standard.

Exemples:
~$ cat fichier1 fichier2 : Concaténation des deux fichiers fichier1 et fichier2

~$ cat Fruits : Affichage de contenu de fichier Fruits


banane
Cerise
Orange
COMMANDES DE CONSULTATIONS : Fichiers
Commandes more / less

La commande more : Affiche des fichiers page par page .

more [fichier...]

La commande less : Sa fonction est similaire à la commande more « Affiche des


fichiers page par page », mais elle permet en plus :

1- de revenir en arrière avec une page de moins en tapant « b »

2- de se déplacer vers le haut ou vers le bas avec les flèches de directions


less [fichier...]
Commandes de consultation de fichiers
• cat nom_fichier : afficher le contenu d'un fichier texte à l'écran
(sans pouvoir arrêter le défilement)
• more nom_fichier : afficher le contenu d'un fichier texte à l'écran
en arrêtant le défilement à chaque page (espace pour descendre
d'une page, entrée pour descendre d'une ligne, q pour quitter)
• less nom_fichier : pareil que more, mais dispose d'un peu plus
d'options (entre autre peut revenir en arrière : b pour revenir d'une
page, y pour revenir d'une ligne, il est aussi possible de se déplacer

vers le haut ou vers le bas avec les flèches de direction)


COMMANDES DE CONSULTATIONS : Fichiers 2
Commandes head / tail

La commande head : Affiche les n premières lignes d’un fichier, alors qu tail
affiche les dernières lignes d’un fichier.
Si n n’est pas précisé, il prend par défaut la valeur 10.

head [-n] [fichier...]

tail [-n] [fichier...]

 -n :Nombre de lignes à afficher depuis le début / la fin de fichier .( - n


suivi du nombre de lignes, par exemple –n 3)
Commandes de consultation de fichiers

• head nom_fichier : afficher uniquement le début du fichier.

-n suivi d'un nombre: permet d'afficher le nombre de lignes que vous


voulez.

Par exemple, si vous ne voulez que les 3 premières lignes, tapez :

head –3 nom fichier

• tail nom_fichier : afficher uniquement la fin du fichier

• tail nom_fichier : afficher uniquement la fin du fichier

• sort nom_fichier : Tri par ordre alphabétique des lignes d'un fichier
texte.
COMMANDES DE CONSULTATIONS : Fichiers 2
Commande touch

La commande touch : est utilisée pour changer les dates d’accès et de


modifications d’un fichier ( d’où le « on touche »le fichier pour faire croire à
l’ordinateur qu’on vient de le modifier alors qu’on n’a rien changé.
Système de fichiers

Sous les systèmes UNIX tout élément est représenté sous forme de fichier.
(Un périphérique, un écran, une imprimante, un répertoire…. TOUT EST FICHIER)
Un répertoire est un fichier qui contient la liste des fichiers sensés être stockés dans
ce répertoire.
L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la
base, appelée racine, est notée «/».
La liste des noms de fichiers est stockée à un autre endroit que leur
contenu.

Chaque contenu de fichier se voit attribuer un numéro d'identification appelé


inode.
COMMANDES Gestions de Fichiers
Inodes
A tout fichier est associé une structure de données ( sur le disque)
appellée Inode ( Information node).

Dans chaque inode se trouvent différentes informations:


Type de fichier ( fichier standard, lien symbolique, répertoire…)
Les droits d’accès ( utilisateurs, groupes, …)
Le proprietaire (UID)
Le groupe proprietaire ( GID)
Taille du fichiers en octets
Dates

Pour connaître le numéro d'inode d'un fichier, vous devez taper la


commande suivante :
ls –i nom_du fichier

• ls –li :permet d’afficher, pour chaque fichier, le numéro d’inode.


• ls –ali :permet de voir en plus des fichiers ( et les fichiers
cachés)
COMMANDES Gestions de Fichiers
Inodes

Un fichier est repéré de manière unique par:

 le système de fichier auquel il est attaché


Son inode
COMMANDES DE GESTIONS DE FICHIERS
Liens Physiques/ Liens Symboliques/
Un lien est un couple ( nom_de_fichier, numéro d’inode).
On peut créer 2 type de liens:

Liens Physiques ( hard link) Liens Symboliques ( soft link)


•Création d’un nouveau nom pour le • c’est des fichiers spécial contenant le
même inode. chemin d’accès à un autre fichier (
correspond aux « raccourcis » de
•Impossible de faire un lien physique vers Windows).
un répertoire
• Création d’un nouvel inode de type lien
•Impossible de faire un lien physique vers symbolique.( -> possède sa propre inode)
un autre volume (partition)
•Le bloc de données contient une chaine de
caractères représentant le chemin (relatif
ou absolu) vers un fichier.
COMMANDES DE GESTIONS DE FICHIERS
Commandes ln

La commande ln : permet de créer des entrées multiples dans l’arborescence d’un


système de fichiers pour un même fichier. ( permet de créer des liens entre fichiers).

Sans option, elle permet de créer des liens physiques.


ln Nom-fichier Nom_du_lien_hard

Avec l’option –s elle permet de créer des liens symboliques


ln -s Nom-fichier Nom_du_lien_soft
.

Rappel:
Pour supprimer un lien
rm Nom_du_lien
Exemple : (différence entre liens physique et liens symboliques
1. Création d’un Répertoire TEST
2. .Une fois dans le dossier tests, créer un fichier « fichier » vide de 0bytes
3. Créer un lien physique « lien_pyh», qui partagera le même inode (le même contenu) que « fichier»
4. Créer un lien symbolique « lien_sym », en pointant vers le nom du « fichier »( et non vers l’inode).

1ère colonne de la commande ls indique : numéro inode.


3 ème colonne: le nombre de liens dures( nombre de fichiers partageant le même
inode)
6 éme colonne: dimension du fichier ( on remarque que le lien symbolique est un
fichier sur le disque de 7bytes.
COMMANDES DE GESTIONS DE FICHIERS
Exemple : (différence entre liens physique et liens symboliques

Le fichier d’origine et le lien ont le même type de fichier « fichier régulier »


indiqué par le tiret en tête des permissions, alors que le liens symbolique a
un type différent (l: « lien »).

Le fichier d’origine et le lien physique ont le même horodatage( alors que le


lien symbolique affiche l’heure et la date de sa création.

Enfin on remarque, à la fin de la ligne du lien symbolique, une flèche en


direction du chemin du fichier vers le lien dur.
COMMANDES DE GESTIONS DE FICHIERS
Liens Physiques/ Liens Symboliques/

Schéma qui permet de comprendre les liens symboliques et les liens


physiques.
COMMANDES DE GESTIONS DE FICHIERS
Liens Physiques/ Liens Symboliques/

Liens physiques:

 Bien qu’ils économisent toujours de la place, les liens physiques sont

indiscernables des fichiers d’origine.

Si vous supprimer le fichier d’origine, cela n’affecte pas le contenu du lien
physique.

Le contenu est supprimé quand il n’y a plus aucun fichier ( lien physique) qui y
fait référence.

Liens Symboliques

 La suppression du fichier, ne supprime pas le fichier référencé par le lien !


Commandes de gestion de fichiers

• ln fichier_existant lien : créer un lien dur entre


les deux fichiers (ln pour link)

• ln -ds répertoire_existant lien : créer un lien


symbolique entre les deux répertoires (d pour
directory)

• ln -s fichier_existant lien : créer un lien


symbolique entre deux fichiers (s pour
symbolic)
COMMANDES DE RECHERCHE: Fichiers 3
Commandes find

La commande find : Permet de rechercher des fichiers dans l’arborescence à


partir du point spécifié.( recherche des fichiers dans une hiérarchie de répertoires. )
Commandes de recherche
find recherche les fichiers actuellement présents
La commande find s'utilise de la façon suivante :

find "où" "quoi" "que faire avec«

(seul le paramètre "quoi" est obligatoire)


• Où : c'est le nom du dossier dans lequel la commande va faire la
recherche. Tous les sous-dossiers seront analysés.
• Quoi : c'est le fichier à rechercher. On peut rechercher un fichier
par son nom, mais aussi en fonction de sa date de dernière création,
de sa taille, etc.

• Que faire avec : il est possible d'effectuer des actions


automatiquement sur chacun des fichiers trouvés .
Par défaut, la commande find affiche les résultats trouvés et ne fait
rien d'autre avec.
Commandes de recherche
• Par nom

• Par taille
les fichiers qui font plus de 10 Mo

• Par Type
-type d : pour rechercher uniquement des
répertoires (directories).

• Supprimer les fichiers trouvés


95

Recherche de fichiers et de
répertoires
• Options des sélection des fichiers et répertoires
▫ name : recherche par nom de fichier
▫ type : recherche par type de fichier
▫ user : recherche par propriétaire
▫ group : recherche par l’appartenance à un groupe
▫ size : recherche par taille de fichier
▫ atime : recherche par date de dernier accès
▫ mtime : recherche par date de dernière modification
▫ ctime : recherche par date de création
▫ perm : recherche par autorisations d’accès
▫ links : recherche par nombre de références (links) aux fichiers
96

Recherche de fichiers et de répertoires

• Option de commande
▫ Les options de commande seront traitées pour chaque fichier
trouvé. En dehors de l’option –print qui montre le chemin
d’accès au fichier, on peut mettre en place l’option -exec

▫ Les commandes dont il est fait état derrière –exec seront


exécutées sans aucune demande de confirmation

▫ L’option –ok demande à l’utilisateur si la commande doit


effectivement être exécutée.
97

Recherche de fichiers et de répertoires

• Traitement sans confirmation avec –exec


• La spécification d’une commande derrière –exec est
soumise à certaines règles:
▫ L’option –exec doit être la dernière de la commande
find
▫ La commande placée derrière –exec doit être
terminée par le paramètre « ; ». Comme c’est un
caractère spécial, il doit être masqué par un \
98

Recherche de fichiers et de répertoires


suivi de –exec

• Pour accéder à un des fichiers trouvés, dans le


cadre de la commande placée derrière –exec,
utilisez le raccourci {}

 Exemple
• find . –user student –exec ls –l {}\; ( affiche le
format long de la commande ls pour les fichiers trouvés)

• find . –type f –atime +13 –exec rm {} \; (supprime


les fichiers auxquels vous n’avez plus accédé depuis plus
de 2 semaines)
99

Recherche de fichiers et de répertoires

• Traitement après confirmation avec –ok


▫ Les mêmes explications s’appliquent également à
l’option –ok, mais celle-ci, demande une
confirmation d’exécution de la commande pour
chaque fichier trouvé. Ce n’est qu’en cas de réponse
affirmative (avec y), que la commande placée
derrière –ok sera exécutée.

▫ Exemple :
 find . –ok rm {} \;
Critères de recherche de noms de
fichiers
• Modèles de noms de fichier
▫ * : remplace une chaîne vide ou de longueur variable
▫ ? : remplace un caractère unique quelconque
▫ [] : représente une série ou une plage de caractère
▫ [!…] : inverse la recherche
• Exemples
▫ a* : les fichiers dont le nom commence par a
▫ a?? : fichiers en trois lettres, commençant par a
▫ [aA]* : fichiers dont le nom commence par un a minuscule ou A majuscule.
▫ [a-m]* : fichiers dont le nom commence par une lettre de la plage a-m.
▫ *[1-5] : fichiers dont le nom se termine par un chiffre de la plage 1 à 5.
Extraire, trier et filtrer des
données
grep : filtrer des données
rechercher dans un fichier texte le mot voulu et
affiche la ligne où il se trouve
• Syntaxe : grep [option] modèle_de_critères [fichier1 …]
• Les options du grep les plus utiles sont :

▫ i : pour ne pas tenir compte des majuscules/minuscules,


▫ v : toutes les lignes ne contenant pas le critère,
▫ n : pour avoir les numéros de ligne,
▫ m NUM: permet de s’arrêter après NUM solutions
trouvées.
▫ E : pour les expressions régulières plus compliquées,
▫ c : la commande ne retourne que le nombre de lignes
trouvées
▫ r : rechercher dans tous les fichiers et sous-dossier
grep : filtrer des données
• Le modèle de critères peut contenir les caractères
spéciaux suivants :
▫ […] : Plage de caractères permis à cet emplacement
▫ [^…] : Plage de caractères interdits à cet emplacement
▫ .: Un caractère quelconque (y compris un espace)
▫ * : Signe de répétition. Agit sur le caractère placé
devant le *
▫ $ : Matérialise une fin de ligne
▫ | : ou
▫ ^ : début de ligne
▫ \{…\} : Caractère de répétition, entre les accolades
 \{nombre\} nombre exacte
 \{nombre,\} nombre minimum
 \{nombre1,nombre2\} de nombre1 à nombre2
Commandes de recherche
• grep mot nom_fichier : rechercher dans un fichier texte le mot voulu et
affiche la ligne où il se trouve
• grep -l mot nom_fichier : rechercher dans un ou plusieurs fichiers texte
le mot voulu et affiche le nom des fichiers qui contiennent le mot (utile
pour une recherche sur plusieurs fichiers, voir caractères génériques en
fin de liste)
• grep -c mot nom_fichier : donne le nombre de fois où le mot voulu a été
rencontrée dans le fichier.
• grep -v mot nom_fichier : renvoie dans la sortie standard le contenue de
‘‘nom_fichier’’ excepté des ligne où se trouve la chaine de caractère
‘’mot’’
• grep -n mot nom_fichier : renvoie dans la sortie standard les numéro
des ligne où se trouve la chaine de caractère ‘’mot’’ dans le fichiers
‘‘nom_fichier’’
• grep -m 20 mot nom_fichier permet de s’arrêter après 20 solutions
trouvées.
• grep –i text fichiers : rechercher sans distinguer entre le majuscule et le
minuscule
Commandes de recherche (suite)
▫ liste des lignes commençant par LE Dans le fichier fichier1 : ( ^: debut de ligne)
grep "^LE" fichier1

▫ liste des lignes se terminat par ing Dans le fichier fichier1 : ( $: fin de ligne)
grep « ing$" fichier1

▫ recherche de STOP ou stop avec le numéro de la ligne :


grep -n -i stop fichier1

▫ liste des lignes contenant "image" ou "son" dans tous les fichiers du répertoire
courant :
grep -E "(image|son)" *

▫ Liste des lignes contenant un nombre compris entre 0 et 4 :


grep -E [0 4] fichier1

▫ Liste des lignes contenant "alias" ou "Alias" :


grep -E [Aa] lias fichier1
grep : Autres Options
grep -E [ab2X] fichier : l'ensemble de caractères a,b,2,X
grep -E x[ab2X]y fichier : les chaînes xay, xby, x2y, xXy
grep -E [a-e] fichier : n'importe quel caractère de l'ensemble a,b,c,d,e
grep -E [0-38] fichier : un des caractères numériques 0,1,2,3,8 (les
caractères dans l'intervalle 0-3 plus le caractère 8)
grep -E [a-d5-8X-Z] fichier: un des caractères suivants : a,b,c,d,5,6,7,8,X,Y,Z

grep x..y fichier : les chaine contenant 4 lettrer commençant par x et se


terminant par y
grep x*y fichier : les chaines de longueur quelconques commençant par x et
se terminant par y quatre lettres,

grep –E [X]* fichier : désigne une suite quelconque d’occurrences de X (0 ou plus)


grep –E [X]+ fichier :désigne au moins une occurrence de X (1 ou plus)
grep –E [X]? fichier : désigne une occurrence optionnelle de X (0 ou 1)
grep –E [X]\{n, m\} fichier: entre n et m occurrences de x (au moins n, au plus m)
Commande de trie des lignes Sort

La commande sort : Trie les lignes du fichier par ordre alphabétique.

sort [fichier...]

Mais les options suivantes modifient les critères:

 sort –r Fichier : (« reverse »:inverse) trie les lignes du fichier en


ordre inverse.

sort –n Fichier : Effectue un trie numérique.


sort : trier les lignes
• sort nom_fichier : Tri par ordre alphabétique des lignes
d'un fichier texte.
• -o : écrire le résultat dans un fichier
• -r : trier en ordre inverse
• -n : trier des nombres
• -t :définit le caractère séparateur
• -u :n'affiche qu'une seule ligne quand plusieurs lignes sont
identiques
• -k :indique la position de la clé de tri (numéro à partir de 1)
Exemple:
sort -n -t":" -k 3 /etc/passwd
wc : compter le nombre de lignes
• Affiche le nombre de lignes, de mots et d’octets
d’un fichier

• -l : compter le nombre de lignes


• -w : compter le nombre de mots
• -c : compter le nombre d'octets
• -m : compter le nombre de caractères
uniq : supprimer les doublons

• Supprimer les lignes en double dans un


fichier.(nous devons travailler sur un fichier trié )

• -c : compter le nombre d'occurrences

• -d : afficher uniquement les lignes présentes en


double
cut : couper une partie du fichier
• Couper selon le nombre de caractères
Soit le fichier noms.txt contenant

1. Pour conserver uniquement les caractères 2 à 5 de

2. Pour conserver du 1er au 3ème caractère :

3. pour conserver du 3ème au dernier caractère :


cut : couper une partie du fichier
• Couper selon un délimiteur
Soit le fichier notes.csv suivant :
Ces colonnes contiennent, dans l'ordre :
Le prénom
La note
Un commentaire

nous souhaitons extraire de ce fichier la liste des prénoms.


-d : indique quel est le délimiteur dans le
fichier
-f : indique le numéro du ou des champs à
couper

Pour avoir les champs n°1 et n°3 (le prénom et commentaire) :


Mécanismes de redirection et de
Tube(’ <’ , ‘<<‘, ‘>,’>>, ’|’’ pipe
et double pipe ‘||’).
> et >> : rediriger le résultat dans un fichier
• > : rediriger le résultat de la commande dans le fichier de votre
choix

« > » (appelé chevron) redirige la sortie de la commande dans un


fichier appelé "eleves.txt" qui vient d'être créé

Attention : si le fichier existait déjà il sera écrasé sans


demande de confirmation !
• Le double chevron >> sert lui aussi à rediriger le résultat dans un
fichier, mais cette fois à la fin de ce fichier.
2>, 2>> et 2>&1 : rediriger les erreurs
• les commandes produisent 2 flux de données différents :
La sortie standard : pour tous les messages (sauf les erreurs).
La sortie d'erreurs : pour toutes les erreurs.
2>, 2>> et 2>&1 : rediriger les erreurs

• Il est aussi possible d'utiliser 2>> pour ajouter les erreurs à la fin du
fichier

2>&1 : redirige les erreurs au même endroit et de la même façon que


la sortie standard.

il n'est pas possible d'écrire : 2>>&1

Exemple :
cut –d , -f 1 fichiers_inexistant.csv>>eleves 2>&1
< et << : lire depuis un fichier ou le clavier

La console vous propose alors de taper du texte.


écrire des nombres, un par ligne (en appuyant sur la
touche Entrée à chaque fois
Lorsque vous avez fini, tapez FIN pour arrêter la saisie.

Le mot FIN est-il obligatoire ?


vous pouvez utiliser le mot que vous
voulez. Par exemple :
Un tube (pipe) | : chaîner les commandes
• Un tube permet d’établir une liaison directe entre la sortie d'une
commande et l'entrée d'une autre commande.

On peut écrire cette liste triée dans un fichier :


Un tube (pipe) | : chaîner les commandes (2)
Exemple : intérêt des |
cd source
tar cvf archive.tar *
cd destination
tar xvf source/archive.tar
rm source/archive.tar

Malheureusement, cette technique nécessite beaucoup de place disque, puisque


l'archive temporaire est stockée directement sur disque. De plus, elle est assez lente,
car toutes les données à copier sont recopiées sur le disque dur, et relues ensuite,
pour finalement être détruites..
La solution est de réaliser un tube entre les deux processus tar invoqués.
Dans ce cas, le transfert se fait simplement via la mémoire vive :
cd source
tar cvf * | (cd destination ; tar xvf -)
Cette commande est un peu plus compliquée,
car la commande d'extraction des fichiers nécessite un changement de répertoire.
Il faut donc utiliser une commande multiple du shell.
Ces commandes sont constituées de plusieurs autres commandes séparées par des points virgules.
La première commande effectuée ici est le changement de répertoire, et la deuxième est
l'extraction par tar de l'archive qui lui est transférée par le flux d'entrée standard (représenté ici
par '-'). Ces deux commandes sont mises entre parenthèses, car l'opérateur '|' du tube est
prioritaire sur l'opérateur ';' de concaténation des commandes du shell.
, la commande qui utilise le tube consomme deux fois moins d'espace disque et est deux fois plus
rapide que la commande qui n'en utilise pas.
Les Alias
 les alias ( commande alias)
Syntaxe : $ alias nom_alias=‘commande’
Exemples :
1- alias liste=" ls –lrt"
2- alias beep="echo $'\a‘” (sígnale sonore)
Pour supprimer l’alias : unalias
Syntaxe : $ unalias nom_alis
 le type de fichiers ( commande file )
Syntaxe : file nom_fichier
Archiver et compresser
Compression avec gzip et bzip2
• La compression d'un fichier se fait de manière suivante:
gzip fichier
• gzip renomme le fichier compressé en « fichier.gz ».

• La compression d'un fichier avec bzip2 utilise la même


syntaxe : bzip2 fichier
• bzip2 renomme le fichier compressé en « fichier.bz2 ».
• La décompression d'un fichier se fait à l'aide de la
commande suivante :

• gunzip fichier.gz
ou
• bunzip2 fichier.bz2
gzip et bzip2 ne permettent de compresser qu'un seul fichier à la fois.
tar : assembler des fichiers dans une archive
• tar : permet d'assembler des fichiers dans un seul fichier avant de les
compresser.
1. Pour réunir les fichiers dans un seul gros fichier appelé archive.

 On utilise pour cela le programme tar.

2. Compresser le gros fichier ainsi obtenu à l'aide de gzip ou de bzip2.


• La syntaxe de tar est très simple :
tar options archive [fichiers]

 cvf pour créer une archive ;


 tvf pour lister le contenu d'une archive ; (comme ls pour les
répertoire)
 xvf pour restaurer le contenu d'une archive
Pour archiver le contenu du répertoire courant dans le fichier :
archive.tar tar cvf archive.tar * :
tar : assembler des fichiers dans
une archive
• La commande tar ne compresse pas automatiquement
les fichiers. Vous pouvez compresser les fichiers tar
avec :
▫ tar -czvf foo.tar
 Les fichiers tar compressés se voient attribuer
l'extension .tgz et sont comprimés avec gzip.
• Pour décompresser un fichier tar, entrez :

▫ tar -xzvf foo.tgz


Gestion de Droits des
fichiers et répertoires
Exemple d'affichage de droits
Affichage des caractéristiques: ls -l

Type : ‘d’ pour les repertoire


‘-’ pour les fichiers
Permissions d'accès aux fichiers
• Les droits d'accès sont scindés en trois catégories
d'utilisateurs:

 les droits du propriétaire (user)


 les droits des membres du groupe (group)
 les droits de tous les autres (other)
Pour chaque catégorie, on peut attribuer les droits
suivants:
▫ la lecture ("read", r);
▫ l'écriture ("write", w);
▫ l'exécution ("execute", x).

• Si à la place d'un des caractères nous ne voyons qu'un


tiret "-", c'est que le droit n'est pas autorisé.
Permissions d'accès aux fichiers
Le changement des droits
• chmod : changer les droits d'accès d'un fichier (il faut
être root ou propriétaire du fichier)
• On utilise les signes (+ et -):
+ pour ajouter un droit,
- pour en enlever un,
Suivi des lettres r, w, x (lecture, écriture, exécution):
Exemple :
chmod -w nom_fichier : enlever les droits d'accès en
écriture sur le fichier pour tout le monde
Le changement des droits (suite)
Pour appliquer les changements seulement à certains
"niveaux d'appartenance", il faut utiliser :
-u pour user (propriétaire du fichier),
- g pour group
- o pour other (tous les autres)
-Exemple :
chmod ug +wx nom_fichier : ajouter, pour le
propriétaire et les membres du groupe, les droits en
écriture et en exécution sur le fichier
131

Modification des droits d’accès


• Vous pouvez utiliser des +, - ou = pour ajouter,
supprimer ou fixer des droits à l'une ou l'autre des
catégories u, g, o ou a tous (a) en précisant le type de
droit d'accès, r, w ou x.

▫ chmod g+w fic1


▫ chmod o-x rep
▫ chmod u+rx,g-w fic2
▫ chmod u=rwx,g=rx fic
▫ chmod a+r fic
132

Modification des droits d’accès


* Si le changement de droits s'applique à un répertoire,
vous pouvez changer tous les droits des fichiers et
répertoires inclus dans ce répertoire via l'option -R.

Exemple:

* Si nous souhaitons définir d'un seul mouvement toutes


les permissions d'un fichier :

chmod u=rwx,g=rw,o=r linux-test


Le changement des droits
Il existe une autre façon d'indiquer les permissions :

• On utilise un nombre de 3 chiffres en octale ie compris


entre 0 et 7 :

▫ le 1er pour le-la propriétaire


▫ le 2e pour les membres du groupes, et
▫ le 3e pour tous les autres). Les chiffes veulent dire :
Le changement des droits
135

Modification des droits d’accès

chmod nombre_en_base_8 fichier1 [fichier2 …]

• chmod utilise le codage binaire, fondé sur


l'association de valeurs numériques aux différentes
permissions :

▫ lecture : 4,
▫ écriture : 2,
▫ exécution : 1,
▫ pas de permission : 0.
136

Modification des droits d’accès

• Chaque triplet se code par l'addition de 4, 2, 1, ou


0.
▫ Pour un rwx il faudra ajouter 4+2+1=7,
▫ pour r-x il faudra 4+0+1=5 etc.

• La commande chmod permettant de positionner


rwxr-x--- sur fic1 par la commande suivante :
chmod 750 fic1
137

La commande umask
• Les droits Max des fichier et répertoire
▫ Répertoire 777 (rwxrwxrwx)
▫ Fichier normal 666 (rw-rw-rw-)
• Les droits effectifs : Max - umask
▫ pour les droits des Répertoire = 777 -umask
▫ pour les droits des Fichiers = 666 -umask
• La valeur de umask est fixer par la commande
umask nombre_en_base_8

Exemple 1 : avec umask 006


•Exemple 2
▫Les droits effectifs sont: ▫Si on souhaite un accès en tout
pour le propriétaire et en lecture
pour les Répertoire = 777-006=771 seule pour le groupe et le reste de
pour les Fichiers =666 -006=660 monde,
▫ umask 022
GESTION DES UTILISATEURS
Introduction

●Dans un système Linux chaque utilisateur possède un compte, ce compte a un aspect sécuritaire puisqu'il
définit les permissions et les autorisations dont dispose l'utilisateur sur les fichiers et les dossiers.
●Les comptes utilisateurs sont aussi organisés en groupe, un compte utilisateur doit appartenir au moins à un
groupe, les groupes sont utilisés pour faciliter la gestions des utilisateurs.
●Les données des comptes et des groupes utilisateurs sont stockés dans des fichiers, il est important de
connaître la structure et le contenu de ces fichiers pour superviser les utilisateurs du système
●Il existe plusieurs commandes permettant de manipuler les comptes et les groupes utilisateurs (affichage,
création, modification et suppression)
Les comptes utilisateurs
●Dans /etc il existe un ensemble de fichiers textes contenant des informations sur les comptes et les groupes
utilisateurs définies dans le système, par exemple si on veut vérifier si un utilisateur est définie sur le système il faut
le chercher dans le fichier /etc/passwd
● Le fichier /etc/passwd fournit un ensemble d'informations sur les comptes utilisateurs définies sur le système.
● Alors que le fichier /etc/shadow contient les informations sur le mot de passe des comptes utilisateurs.
Les comptes utilisateurs: le fichier /etc/passwd (1)

●Chaque ligne du fichier /etc/passwd est relative à un utilisateur, la figure suivante montre les 10 lignes du
fichier /etc/passwd

● Chaque ligne du fichier etc/passwd est composée d'un ensemble de champs séparés par deux points
Les comptes utilisateurs: le fichier /etc/passwd (2)

● Le fichier /etc/passwd contient les champs suivants:

login(nom d'utilisateur):mot de passe:UID:GID:commentaire :répertoire personnel:shell

●Le tableau suivant décrit les différents champs du fichier /etc/passwd en prenant comme exemple la première
ligne (root:x:0:0:root:/root:/bin/bash)

champ exemple Description

login root C'est le nom utilisé par l'utilisateur pour ouvrir une
session sur le système,ce nom est affiché aussi pour
indiquer l’appartenance d'un fichier à un utilisateur (avec
ls -l)
root est le compte administrateur qui possède des
privilège d'administration sur le système
Les comptes utilisateurs: le fichier /etc/passwd (2)

Mot de passe x Anciennement les mot de passe était enregistrés dans /etc/passwd
mais pour des raisons de sécurité ils sont maintenant enregistrés dans
/etc/shadow
Le x indique que le mot de passe ne se trouve pas ici mais dans
/etc/shadow
UID (identifiant 0 Chaque compte utilisateur est identifié d'une façon unique dans le
de l'utilisateur) système par un identifiant appelé UID
L'UID est le paramètre qui définit réellement un utilisateur dans le
système
Certain UID sont spécial :0 définit le compte administrateur les UID
inférieurs à 500 (ou à 1000 dans certaine distributions) identifie les
comptes systèmes spéciaux
GID:identifiant du 0
groupe primaire C'est l'identifiant du groupe principal auquel appartient le compte
utilisatur,les groupes sont aussi identifiés par un identifiant
numérique appelé GID
Lorsqu'un utilisateur crée un fichier ce fichier appartient à
l'utilisateur (UID) et aussi à son groupe principal (GID)
Les comptes utilisateurs: le fichier /etc/passwd (3)
commentaire root Ce champ peut contenir des informations supplémentaire sur l'utilisateur
comme son nom réel ou toute autre information.
Ce champ est appelé aussi le champ GECOS (General Electric
Comprehensive Operating System ) il contient un ensemble de champ
séparés par virgule représentant des informations sur l'utilisateur comme
son nom,son numéro de téléphone ou autre informations.
L'administrateur peut changer ces informations contenues dans GECOS
avec la commande chfn et les utilisateurs peuvent afficher ces
informations avec la commande finger.

Répertoire /root Ce champ indique l'emplacement de répertoire personnel de l'utilisateur


personnel un utilisateur régulier aura comme répertoire personnel /home/username
(avec username le nom de l'utilisateur ex:/home/bob).
L’utilisateur root possède un emplacement différent pour son répertoire
personnel:/root.
Les comptes systèmes n'ont pas souvent de répertoires personnels car ils
n'ont pas besoin de stocker des données ou des fichiers.

Shell /bin/bash Définit le shell qui sera utilisé par l'utilisateur lors de l'ouverture d'une
session en ligne de commande ou lorsqu'il ouvre un terminal.
L'utilisateur peut changer de shell en tapant le nom du shell qu'il souhaite
utiliser par exemple:/bin/tcsh
Les comptes utilisateurs: le fichier /etc/shadow (4)

● Le fichier /etc/shadow contient les informations relatives aux mots de passes des comptes utilisateurs

● Le fichier /etc/shadow à la forme suivantes:

nom:mot de passe:dernier changement:min:max:avertissement:inactive:expire:réservé


Les comptes utilisateurs: le fichier /etc/shadow (4)

● Le tableau suivant décrit ces différents champs en prenant comme exemple la première ligne:

Sysadmin:$6$….I1:15020:5:30:7:60:15050:

champ exemple Description

nom(login) sysadmin Le nom du compte utilisateur tel qu’il figure dans


/etc/passwd

Mot de passe $6$….I1 C'est le mot de passe crypté du compte,Le cryptage est
irréversible c’est à dire on ne peut pas trouver le mot de
passe à partir de la valeur crypté
Les comptes systèmes on comme valeur dans ce champ *
(les comptes systèmes seront discutés par la suite dans ce
chapitre)
Les comptes utilisateurs: le fichier /etc/shadow (4)(
Dernier 15020 Ce champ indique le nombre de jours écoulé depuis le dernier changement
changement du mot de passe.
15020 est le nombre de jours depuis 1 janvier 1970 jusqu'au jours ou le
mot de passe a été changé.
Lorsque l'utilisateur change son mot de passe cette valeur est générée
automatiquement.
min 5 Ce champ est relatif à la durée de validité du mot de passe.
Il indique pour un utilisateur ayant changer son mot de passe après
combien de jours il peut le changer de nouveau(valeur non nulle).
Une valeur nulle indique que l'utilisateur peut changer toujours son mot de
passe
max 5 Ce champ est utilisé pour forcer l'utilisateur à changer régulièrement son
mot de passe ,par exemple une valeur de 30 dans ce champ impose à
l'utilisateur de changer son mot de passe tout les 30 jours.
La valeur maximale pour ce champ est 99999 qui signifie que l'utilisateur
peut ne jamais changer son mot de passe car 99999 jours vaut 274 ans !!

avertissement 7 Ce champ indique le nombre de jours avant l'expiration du mot de passe


provoquant l'avertissement de l'utilisateur qu'il doit changer son mot de
passe.
Par exemple si ce champ vaut 7 et max vaut 30 alors durant les 7 jours qui
précédent le délai max l'utilisateur va etre avertit à l'ouverture de session
qu'il doit chnager son mot de passe
Les comptes utilisateurs: le fichier /etc/shadow (4)

inactif 60 C'est un délai supplémentaire après le dépassement de nombre de jours


mentionné dans le champ max durant lequel l'utilisateur peut changer son mot
de passe avant que son compte ne soit bloqué.
Avec une valeur de 60 l'utilisateur a 60 jours de délai pour changer son mot
de passe avant que son compte ne soit bloqué
expire 15050 C'est le nombre de jour depuis le 1 janvier 1970 jusqu'au jour ou le compte
sera désactivé.
Un compte déactivé ne sera supprimé l'administrateur peut le réactiver.
Les comptes avec une date d'expiration sont fournies à des employeurs
temporaires

réservé Champ réservé pour une utilisation ultérieure

Les utilisateurs ne peuvent pas voir le contenu de /etc/shadow pour des raisons de Sécurité pour cela il faut ouvrir une
session en tant qu’administrateur
Les comptes utilisateurs: afficher les informations d'un compte utilisateur
●Pour visualiser les informations concernant un compte utilisateur à partir du fichier /etc/passwd ou /etc/shadow on
peut utiliser la commande grep et afficher uniquement la ligne relative à l'utilisateur cherché
–Exemple:si on veut afficher les informations sur l'utilisateur sysadmin on écrit grep 'sysadmin' /etc/passwd

●getent est une autre commande qui permet d’afficher les informations d'un compte utilisateur à partir des fichiers
/etc/passwd ou /etc/shadow,l'avantage de getent est qu'elle peut afficher les comptes utilisateurs locaux ou ceux
définit sur un serveur réseau
–La syntaxe générale de getent est:getent base-donnée enregistrement
–Exemple:getent passwd sysadmin
Les comptes utilisateurs: afficher les informations d'ouverture de session

●Si on utilise plusieurs comptes pour ouvrir une session, on peut vérifier le compte utilisé actuellement pour
l'ouverture de session en utilisant la commande id
●La commande id sans argument affiche:le nom du compte,son ID et aussi les groupes auquel appartient le compte
courant.
●Si on passe un nom d'utilisateur comme argument à la commande id celle-ci va afficher les informations sur ce
compte utilisateur.
Les comptes utilisateurs: les comptes système
●En plus des comptes utilisateurs réguliers on trouve un ensemble de comptes système permettant de définir des
comptes pour les services s’exécutant sur le système
●Les comptes système ont un UID entre 1 et 499,alors que les comptes normaux ont un UID supérieur à 500(ou à
1000 dans certain système)
●Les informations sur les comptes systèmes sont aussi stockées dans les fichiers /etc/passwd et /etc/shadow mais
certain champ relatifs aux comptes systèmes diffèrent de ceux des comptes utilisateurs normaux
● Par exemple
–les comptes système ont la valeur /sbin/nologin dans le champ Shell du fichier /etc/passwd
–bin:x:1:1:bin:/bin:/sbin:/sbin/nologin

–Les comptes systèmes ont la valeur * dans le champ mot de passe du fichier /etc/shadow
–bin:*:15513:0:99999:7:::
Les groupes
●Les privilèges d'accès au système n'est pas définit uniquement par le compte utilisateur mais aussi par
l'appartenance à un groupe.
● Chaque utilisateur doit appartenir au moins à un groupe
●Le fichier /etc/passwd indique le groupe principal auquel appartient un compte utilisateur pour voir les autres
groupes secondaires il faut consulter le fichier /etc/group
● Le fichier /etc/group contient la liste de tous les groupes définies sur le système
● Pour afficher les informations relatives à un groupe particulier on utilise la commande grep ou getent
[sysadmin@localhost ~]$ grep mail /etc/group
mail:x:12:mail,postfix
[sysadmin@localhost ~]$ getent group mail
mail:x:12:mail,postfix
Les groupes: le fichier /etc/group

● Le fichier /etc/group contient 4 champs qui sont délimité par deux points décrivant les groupe du système
● Le fichier /etc/group a la structure suivante:

Nom du groupe:mot de passe:GID:liste des membres

● Exemple :

mail:x:12:mail,postfix

● Le tableau suivant décrit ces 4 champs


Les groupes: le fichier /etc/group

champ exemple description

Nom du groupe mail Ce champ contient le nom du groupe

Mot de passe x Le mot de passe du groupe est enregistré dans le fichier


/etc/gshadow il est remplacé ici par x

GID 12 Chaque groupe est identifié d'une façon unique avec un


GID (Group IDentifer)

Liste des membres Mail,postfix Ce champ indique les membres du groupe.


Il faut noter que le groupe principal d'un compte
utilisateur figure dans /etc/passwd,si un utilisateur
possède d'autres groupes secondaires son nom
d'utilisateur va apparaître dans ce champ de /etc/group
pour tous les groupes secondaires auxquels appartient.
Les groupes: changer l'appartenance d'un fichier à un groupe
● On peut changer le groupe propriétaire d'un fichier en utilisant la commande chgrp
–Syntaxe:chgrp nom_du_groupe fichier
●Les utilisateurs peuvent appliquer cette commande uniquement sur leur fichiers propriétaires et sur les
groupes auxquels appartiennent.

●On peut changer le groupe propriétaire pour une arborescence de fichiers et de répertoires en utilisant
l'option -R de chgrp
–Exemple:chgrp -R games test_dir
–Définir le groupe games comme propriétaire du répertoire test_dir et de tout ces sous répertoires et
fichiers.
●Il existe aussi la commande chown qui permet de changer l'utilisateur propriétaire d'un fichier,mais cette
commande peut-être utilisée uniquement par le root
–Synatxe:chown utilisateur fichier
Ouvrir une session en tant que root
●Parfois on a besoin d'un certain privilège pour exécuter des commandes ou pour modifier des fichiers,il faut
alors ouvrir une session en tant qu'administrateur ou root.
●L'Ouverture de session directement en tant que root reste dangereux car ça peut causer des problèmes et des
dysfonctionnement pour le système en exécutant certaine commandes dont on ne sait pas le résultat. C'est pour
cette raison que le compte root est désactivé sur certaine distribution comme Ubuntu
●La solution est d’exécuter uniquement des commandes en tant que root lorsque les privilèges d'administrateur
sont demandés.
●Si le compte root est désactivé(comme pour Ubuntu) on utilise la commande sudo pour exécuter des
commandes en tant que root
●Si le compte root est activé on utilise la commande su pour basculer un compte régulier vers le compte root et
exécuter des commandes demandant les privilèges root.
L'utilisation de la commande su
●La commande su permet d’exécuter le Shell en tant qu'un autre utilisateur ,par défaut si le compte utilisateur
n'est pas spécifié alors su permet d’exécuter le Shell en tant que root.
●L'option -l de su ou – permet d'ouvrir le Shell comme si l'utilisateur est directement connecté en tant que
root
● Les commandes suivantes sont équivalentes et permettent exécuter le Shell en tant que root
–su -l root
–su -
–su –l

● Le mot de passe root vous sera demandé une fois l'une de ces commandes entrées
● Pour revenir à votre shell par défaut(compte utilisateur original) il faut utiliser la commande exit.
L'utilisation de la commande sudo
● La commande sudo permet à un utilisateur d’exécuter une commandes en tant qu'administrateur
–SYNTAXE:sudo commande
● Sudo demande à l'utilisateur de fournir son propre mot de passe et non pas celui du root.
●Exemple:pour afficher le fichier /etc/shadow il faut avoir les privilège du root on doit alors faire appel à la
commande sudo pour afficher ce fichier en tant qu'administrateur
–sudo head /etc/shadow
La commande who
● La commande who affiche la liste des utilisateurs actuellement connectés au système

[sysadmin@localhost ~]$ who


root tty2 2013-10-11 10:00
sysadmin tty1 2013-10-11 09:58 (:0)
sysadmin pts/0 2013-10-11 09:59 (:0.0)
sysadmin pts/1 2013-10-11 10:00 (example.com)

● Le tableau suivant décrit l'affichage de la commande who

colonne exemple description

Nom de l'utilisateur root Ce champ indique le nom de


l'utilisateur qui a ouvert une
session sur le système ou qui
a lancer un terminal
24/11/2023

La commande who

terminal tty2 Indique sur quel terminal l'utilisateur travail actuellement.


Si le nom du terminal commence par tty cela indique que
l'utilisateur utilise le terminal local pour ouvrir la session.
Si le nom commence par pts cela indique que l'utilisateur a utilisé
un émulateur de terminal pour ouvrir unes session comme gnome-
terminal ou xterm
date 2013-10-11 10:00 Indique la date et l'emplacement de la connexion
(example.com)
La commande w

La commande w offre plus de détaille sur les utilisateurs connecté au système par rapport à la commande

who

[sysadmin@localhost ~]$ w
10:44:03 up 50 min, 4 users, load average: 0.78, 0.44, 0.19
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 10:00 43:44 0.01s 0.01s -bash
sysadmin tty1 :0 09:58 50:02 5.68s 0.16s pam: gdm-password
sysadmin pts/0 :0.0 09:59 0.00s 0.14s 0.13s ssh 192.168.1.2
sysadmin pts/1 example.com 10:00 0.00s 0.03s 0.01s w

●La première ligne du résultat de la commande w donne le temps écoulé depuis le démarrage du système ,le
nombre d'utilisateurs connecté et la charge moyenne (charge CPU).
La commande w
● Le tableau suivant décrit l'affichage de la commande w

colonne exemple Description


USER root Indique le nom de l'utilisateur
TTY tty2 Indique le nom du terminal

FROM Example.com Indique d'où l'utilisateur est connecté

LOGIN@ 10:00 L'heure où l'utilisateur a ouvert une session

IDLE 43:44 Durée d'inactivité après la dernière commande exécutée


par l'utilisateur
JCPU 0,01s Le temps cpu total de tous les programmes exécutés à
partir du moment où l'utilisateur ait ouvert une session

PCPU 0,01s Le temps cpu pour le processus courant

WHAT -bash Le nom du processus qui exécuté maintenant par


l'utilisateur
Création de nouveaux groupes et utilisateurs: Introduction
●Nous avons vu que les données des comptes utilisateurs sont stockées dans le fichier /etc/passwd et les mots de passe dans
/etc/shadow,créer un nouveau utilisateur revient à ajouter une nouvelle ligne à ces deux fichiers,mais cette technique n'est pas
recommandée car on risque de commettre une erreur et empêcher par conséquence tous les utilisateurs d’accéder au système.
●En utilisant les commandes appropriées pour ajouter un nouveau utilisateur ces fichiers vont être modifie d'une façon
automatique et sure.

●Dans certaine distribution lorsqu'on crée un nouveau utilisateur un groupe nommé groupe privé d'utilisateur (User Private
Group UPG) est créé automatiquement ce groupe aura le même nom que celui du nouveau utilisateur et aura un seul membre
qui est le nouveau utilisateur.

●Pour les distributions qui ne créent pas d'UPG les nouveaux utilisateurs auront comme groupe principal le groupe
« users »,l’administrateur peut alors créer des groupes qui seront privé pour le nouveau utilisateur,mais le plus souvent on a
besoin de créer des groupes contenant plusieurs utilisateurs qui ont besoin de collaborer.

●Les comptes utilisateurs peuvent être modifier à tout moment (les ajouter ou les retirer d'un groupe) mais un compte
utilisateur doit appartenir au moins un groupe (le groupe principal)

●Avant de créer de nouveaux utilisateurs il faut tout d'abord planifier quel utilisateur doit appartenir à quel groupe,il est
recommandé de créer les groupes en premier puis les utilisateurs car c'est plus simple côté gestion.
Création d'un groupe
●La raison principale pour créer des groupes est de permettre aux utilisateurs de partager des fichiers,par exemple ça peut
être le cas de personnes qui travaillent ensemble sur un projet et qui ont besoin de partager les documents relatifs à ce projet
Après la création ou la modification d'un groupe on peut vérifier sa configuration en consultant le fichier /etc/group

–getent group nom_du_group

–grep nom_du_group /etc/group

●La commande groupadd est exécutée par le root pour créer un nouveau groupe,elle admet comme paramètre le nom du
groupe qu'on souhaite créer, l'option -g de groupadd permet de spécifier un GID pour le groupe qu'on souhaite créer.

[root@localhost ~]# groupadd -g 506 research

[root@localhost ~]# grep research /etc/group

research:x:506:
Création d'un groupe

●Si l'option -g n'est pas utilisée la commande groupadd fournit automatiquement un GID dont la valeur sera
supérieur au plus grand GID courant se trouvant dans /etc/group.
[root@localhost ~]# grep research /etc/group
research:x:506:
[root@localhost ~]# groupadd development
[root@localhost ~]# grep development /etc/group
development:x:507:
Création d'un groupe
●On vient de voir que dans certain système un groupe UPG est créé automatiquement lors de la création d'un
nouveau utilisateur,ce groupe aura un GID supérieur à 500.
●Pour éviter les conflits entre les groupes créer manuellement et les groupes UPG on peut attribuer un GID
inférieur à 500 aux groupes qu'on va créer manuellement en utilisant l'option -r de groupadd
● Il faut noter que les GID inférieurs à 500 sont réservé pour les comptes systèmes
[root@localhost ~]# groupadd -r sales
[root@localhost ~]# getent group sales
sales:x:491:
Création d'un groupe: considérations pour les noms de groupes

●Pour nommer un groupe il faut respecter les points suivant pour que le groupe puissent fonctionner
correctement avec les autres systèmes ou services
–Le premier caractère doit être une lettre minuscule(a-z) ou le caractère sous-ligné(_)
–Le nom ne doit pas dépasser 32 caractères 'ou 16 pour certain systèmes)
–Après le premiers caractères les autres caractères peuvent être alphanumérique,sous-ligné(_) ou tiret(-)
–Le dernier caractère ne doit pas être un tiret (-)
Modification d'un groupe

●La commande groupmod peut être utilisée pour modifier le nom d'un groupe (option -n) ou son GID
(option -g).
●Le changement du nom d'un groupe n'affecte en rien appartenance des fichiers au groupes car le système
utilise le GID pour définir l'accès aux fichiers.
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root sales 0 Aug 1 13:21 index.html
[root@localhost ~]# groupmod -n clerks sales
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root clerks 0 Aug 1 13:21 index.html
Modification d'un groupe
●D'autre part si on modifie le GID du groupe tous les fichiers associé au groupe ne le seront plus et ne seront
associé à aucun nom du groupe,ils seront associé à un GID uniquement
● Ces fichiers qui ne sont pas associé à un nom de groupe sont appelé fichier « orphelin »
[root@localhost ~]# groupmod -g 10003 clerks
[root@localhost ~]# ls -l index.html
-rw-r-----. 1 root 491 13370 Aug 1 13:21 index.html
● On peut chercher ces fichiers avec find en utilisant l'option -nogroup
[root@localhost ~]# find / -nogroup
/root/index.html
Supprimer un groupe

●Pour supprimer un groupe on utilise la commande groupdel,les fichiers appartenant au groupe vont devenir
des fichiers “orphelins.
●On peut uniquement supprimer les groupes secondaires d'un utilisateur avec groupdel et non pas le groupe
principal.
● Pour supprimer un groupe on le donne comme argument pour la commande groupdel

[root@localhost ~]# groupdel clerks


Création d'un utilisateur: le fichier /etc/default/useradd
●Avant de créer un nouveau utilisateur avec la commande useradd on peut définir ou modifier certaine valeur
qui vont être appliquées par défaut par la commande useradd au nouveau utilisateur
●Ceci peut être fait on modifiant le fichier de configuration /etc/default/useradd ou en utilisant l'option -D de la
commande useradd.
●Vérifier si ces valeurs sont « raisonnables » avant de créer l'utilisateur vont permettre de garantir que le compte
utilisateur qu'on va créer sera configuré correctement.

[root@localhost ~]# useradd -D


GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Création d'un utilisateur:le fichier /etc/default/useradd
Paramètre exemple description
GROUP 100 Pour les distributions qui n'utilise pas d'UPG c'est le GID du groupe principal par défaut de
l'utilisateur(s'il n'est pas spécifié par useradd)
Normalement c'est le groupe « users ».
L'option -g de useradd permet de spécifier un GID différent de celui donné par défaut.
Ce paramètre affecte le champ suivant de /etc/passwd :
bob:x:600:600:bob:/home/bob:/bin/bash

HOME /home /home est le répertoire de base par défaut où les répertoires personnels des nouveaux
utilisateurs vont être créer.
Par exemple un utilisateur bob aura comme répertoire personnel /home/bob.
L'option -b de useradd permet de spécifier un répertoire de base (différent de celui par défaut
)où le répertoire personnel de l'utilisateur sera créé.
Ce paramètre affecte le champ suivant de /etc/passwd :
bob:x:600:600:bob:/home/bob:/bin/bash

INACTIVE -1 Cette valeur représente le nombre de jour restant après l'expiration du mot de passe avant que le
compte soit désactivé.
La valeur -1 signifie que ce champ n'est pas activé.
L'option -f de useradd permet de modifier ce paramètre
Ce paramètre affecte le champ suivant du fichier /etc/shadow
bob:pw:15020:5:30:7:60:15050:
Création d'un utilisateur:le fichier /etc/default/useradd
EXPIRE Cette valeur indique la date d'expiration du compte,par défaut cette valeur
n'est pas définie
Pour définir une date d'expiration on utilise l'option -e de useradd.Ce
paramètre affecte le champ suivant de /etc/shadow :
bob:pw:15020:5:30:7:60:15050:

SHELL /bin/bash Ce paramètre définit le shell par défaut que le nouveau utilisateur va
utiliser
Pour changer le shell par défaut on utilise l'option -s de useradd.Ce
paramètre affecte le champ suivant dans
/etc/passwd :bob:x:600:600:bob:/home/bob:/bin/bash

SKEL /etc/skel Définit le répertoire « squelette » dont le contenu sera copié dans le
répertoire personnel du nouveau utilisateur,cela permet de définir des
fichiers de configuration intiale pour le compte nouvellement créé.Pour
changer la valeur par défaut de ce paramètre on utilise l'option -k de
useradd

CREATE_MAIL_SPOOL yes « spool » est un fichier où les e-mail reçu par l'utilisateur vont être stockés
Pour ne pas créer ce fichier on place dans ce paramètre la valeur « no »
Création d'un utilisateur:le fichier /etc/default/useradd

●Pour modifier les paramètres par défaut de la commande useradd on édite directement le fichier
/etc/default/useradd ou bien une façon plus sur est d'utiliser la commande useradd -D.
●Exemple:on veut modifier le paramètre INACTIVE pour que les utilisateurs puissent utiliser leur compte
expiré durant 30 jours supplémentaires.

[root@localhost ~]# useradd -D -f 30


[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Création d'un utilisateur: le fichier /etc/login.defs
●Le fichier /etc/login.defs contient aussi des valeurs par défaut qui vont être appliquées aux nouveaux utilisateurs
qui vont être créer avec useradd.
● Ce fichier peut être éditer avec n'importe quel éditeur de texte pour modifier les valeurs par défaut qu'il contient.

[root@localhost ~]# grep -Ev '^#|^$' /etc/login.defs


MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
MD5_CRYPT_ENAB no
Création d'un utilisateur: le fichier /etc/login.defs

Voici la description des différents paramètres de /etc/login.defs


● MAIL_DIR:définit où va être créé le fichier spool(file d'attente) pour les emails
PASS_MAX_DAYS:ce champ concerne la durée en jours durant laquelle l'utilisateur continue à utiliser le

même mot de passe,ce paramètre concerne le champ max de /etc/shadow bob:pw:15020:5:30:7:60:15050:


●PASS_MIN_DAYS:c'est la durée en jours qu'il faut attendre avant de changer le mot de passe,ce paramètres
concerne le champ min de /etc/shadow bob:pw:15020:3:30:7:60:15050:
● PASS_MIN_LEN:définit le nombre de caractères minimum que le mot de passe doit contenir
●PASS_WARN_AGE:ce paramètre concerne le champ avertissement de l'approche d'expiration du mot de passe
contenu dans /etc/shadow bob:pw:15020:3:30:7:60:15050:
Création d'un utilisateur: le fichier /etc/login.defs

● UID_MIN:ce champ indique UID minimal qu'on peut attribuer à un utilisateur régulier
● UID_MAX:définit l'UID maximal qu'on peut attribuer à un utilisateur régulier
● GID _MIN:définit le GID minimale qu'on peut affecter à un groupe ordinaire
● GID_MAX:définit le GID maximal qu'on peut affecter à un groupe ordinaire
● CREATE_HOME:indique si le répertoire personnel de l'utilisateur va être créé (yes ou no)
● UMASK:spécifie les permissions par défaut sur le répertoire personnel
● USERGROUPS_ENAB:si l'UPG est utilisé ce paramètre aura la valeur yes
●ENCRYPT_METHOD:définit la méthode de cryptage du mot de passe dans /etc/shadow ce paramètre remplace
le dernier paramètre MD5_CRYPT_ENAB
Création d'un utilisateur: la commande useradd

Avant de créer un utilisateur avec la commande useradd on aura besoin de rassembler


certaines informations sur l’utilisateur qu'on souhaite créer ces informations sont:
● Le nom:c'est le paramètre par défaut que prend la commande useradd
●L'UID:il est spécifié avec l'option -u de useradd si on spécifie pas de UID celui-ci est
généré automatiquement en incrémentant de 1 le plus grand UID présent dans
/etc/passwd
●Groupe principal:il est spécifié avec l'option -g (GID ou nom du groupe) de useradd,si
il n'est pas spécifié le groupe principal sera l'UPG sinon le groupe “users” ayant le
GID=100
●groupe(s) secondaire(s):spécifié par l'option -G de useradd qui permet de donner une
liste de GID ou de noms de groupes séparés par des virgules
Création d'un utilisateur: la commande useradd

●Le dossier personnel:dans la plupart des distributions le répertoire personnel est créé sous /home et porte le
même nom que celui de l'utilisateur, la commande useradd possède plusieurs options qui vont affecté la création
du répertoire personnel
–L'option -b:permet de spécifier le répertoire de base sous lequel le répertoire personnel va être créé par défaut
c'est /home
–L'option -d:permet de spécifier le chemin complet du répertoire personnel de l'utilisateur à créé il peut s'agir
d'un répertoire qui existe déjà
–L'option -M:ne pas créer de répertoire personnel
–L'option -m:créer le répertoire personnel cette option est nécessaire uniquement si l'option -k est utilisée
Création d'un utilisateur:la commande useradd

●Le répertoire squelette:par défaut c'est le répertoire /etc/skel on peut le modifier avec l'option -k de useradd
dans ce cas il faut utiliser l'option -m pour créer le répertoire personnel sinon useradd va échouer
Le Shell:le Shell par défaut est définit dans /etc/default/useradd on peut le modifier avec l'option -s de

useradd, l'utilisateur peut aussi modifier son Shell avec la commande chsh.
● Le commentaire:un commentaire peut être associé avec un nom de compte en utilisant l'option -c de useradd
Création d'un utilisateur:la commande useradd
●Lors de la création d'un utilisateur avec useradd les informations sur le compte utilisateur vont être ajoutées
automatiquement aux fichiers /etc/passwd et /etc/shadow
●Alors que les informations sur les groupes secondaires seront ajoutées aux fichiers /etc/group et
/etc/gshadow

● Il faut noter que le compte “jane” n'a pas encore de mot de passe valide
Création d'un utilisateur: la commande useradd

●En plus le fichier de file d'attente de messagerie « spool » va être créé et le répertoire personnel va être créé
aussi avec des permissions permettant uniquement à l'utilisateur “jane” d'y accéder et avec le contenu de
/etc/skel copié dedans.
Création d'un utilisateur : la commande adduser

adduser est un outil en mode console permettant de créer un compte d'utilisateur de


manière interactive. Il s'agit d'un script Perl propre à Debian et les distributions qui lui sont
dérivées – comme Ubuntu – posant des questions à propos d'un compte à créer, puis
invoque le programme usermod en lui passant en arguments les informations récupérées.
Cet outil est donc très facile et intuitif à utiliser. addgroup est son pendant en ce qui
concerne la création d'un groupe d'utilisateurs.

Seul un administrateur du système est en mesure de créer un nouveau compte ou groupe


d'utilisateur.

adduser
La commande adduser, invoquée par un compte d'administration, démarre le script de
création de compte d'utilisateur :

sudo adduser identifiant

Sont ensuite demandées, une à une, les informations à affecter au nouveau compte
d'utilisateur. Appuyer sur la touche [Entrée] du clavier enregistre l'information renseignée
et passe à la question suivante.
Supprimer un utilisateur

● Pour supprimer un utilisateur on utilise la commande userdel


●userdel sans options supprime le compte utilisateur mais garde les fichiers de l’utilisateur et ces derniers vont
devenir “orphelin”
●Pour supprimer un compte utilisateur et son répertoire personnel et son fichier de file d'attente de messagerie
« spool » on utilise l'option -r de la commande userdel
● [root@localhost ~]# userdel -r jane
Gestion des Processus
Processus : Définitions
Définition : Un processus est un programme en cours d’exécution.
On distingue deux types de processus:
- Le processus système (daemons) : assure des services généraux
accessibles à tous les utilisateurs du système. Le propriétaire est le
root et il n’est sous le contrôle d’aucun terminal.
- Le processus utilisateur : dédié à l’exécution d’une tâche
particulière. Le propriétaire est l’utilisateur qui l’exécute et il est
sous le contrôle du terminal à partir duquel il a été lancé.

important : dans les système Lnix l’identifiant de processus est le PID


Processus : Cycle de vie
Création:
Toute exécution d’un programme déclenche la création d’un
processus dont la durée de vie = la durée d’exécution du

programme. Le système alloue à chaque processus un numéro


d’identification unique : PID (Process IDentifier). Tout processus est
créé par un autre processus : son processus père (PPID)

Exemples :
Lorsqu’un utilisateur lance une commande, un processus est créé
dont le père est le processus correspondant à l’exécution du shell.
Les Etats d’un processus
• Durant sa vie (temps entre le lancement et la sortie) un processus peut
passer par divers états :

• actif : processus qui en train de réaliser des actions à un instant donné.

• exécutable : processus qui pourrait tout à fait être en train de s'exécuter,


mais il doit attendre que le processus actif laisse sa place.

• endormi : processus qui ne fait rien. Il attend une condition pour


redevenir exécutable ou actif. Il peut se mettre lui-même en sommeil.. Mais
il peut aussi être mis en sommeil par le noyau en attendant que ce qu'il
demande soit disponible.

• zombie : processus en réalité terminé. Il a fini son exécution et n'a donc


plus de raisons d'exister. Seulement pour diverses raisons possibles, son
père n'a pas été informé de ceci.
Voici une liste des données d'identification d'un processus :

Un numéro de processus unique PID (Process ID) : chaque processus Unix


est numéroté afin de pouvoir être différencié des autres

Un numéro de processus parent PPID (Parent Process ID) : chaque


processus peut lui-même lancer d'autres processus, des processus enfants (child
process). Chaque enfant reçoit parmi les informations le PID du processus père qui
l'a lancé

Un numéro d'utilisateur et un numéro de groupe : correspond à l'UID et au


GID de l'utilisateur qui a lancé le processus. C'est nécessaire pour que le système
sache si le processus à le droit d'accéder à certaines ressources ou non. Les
processus enfants héritent de ces informations.

Durée de traitement et priorité : la durée de traitement correspond au temps


d'exécution écoulé depuis le dernier réveil du processus

Répertoire de travail actif : A son lancement, le répertoire courant (celui


depuis lequel le processus a été lancé) est transmis au processus. C'est ce répertoire
qui servira de base pour les chemins relatifs.
ps : liste des processus statique
• ps :permet d'obtenir la liste des processus qui tournent au
moment où vous lancez la commande

• PID : c'est le numéro d'identification du processus. Chaque processus


a un numéro unique qui permet de l'identifier.
• TTY : c'est le nom de la console depuis laquelle a été lancé le
processus.
• TIME : la durée d'exécution du processus.
• CMD : le programme qui a généré ce processus.

ps sans arguments affiche seulement les processus


lancés par le même utilisateur
ps : liste des processus statique
 ps –ef :permet d’obtenir la liste de tous les processus lancés par tous
les utilisateurs sur toutes les consoles
Exemple
$ ps –ef
UID PID PPID C STIME TTY TIME CMD
Mariya 2145 187 0 Aug 11 pts/2 0:01.87 /sbin/init -a
root 3 1 0 Aug 11 ?? 0:00.27 /sbin/kloadsrv
 ps -u User : lister les processus lancés par un utilisateur
Les processus :Notion de signal
Dans un système Unix, tous les processus peuvent recevoir des
messages, envoyés soit par l'utilisateur, soit par un autre processus, soit
par le système. Ces messages sont appelés signaux

L'envoi d'un signal se fait avec la commande kill, avec la syntaxe


suivante : kill [-signal] PID

Numéro
Signification
de signal
15 Signal de terminaison de processus.

Signal de destruction inconditionnelle de


9
processus.

19 Signal de suspension de processus.

Signal de reprise d'exécution d'un processus


18
suspendu.
ctrl+c et kill : arrêter un processus
• Ctrl + C : arrêter un processus lancé en console

• kill : tuer un processus

• kill -9 : vous demandez à Linux de tuer le


processus sans lui laisser le temps de s'arrêter
proprement
Visualisation des processus avec top
●La commande top permet de visualiser l’activité du processeur en temps réel. Elle affiche la liste des processus
s’exécutant actuellement et la rafraichit automatiquement.
●Cet outil reprend les mêmes libellés de colonne que ps. Il est possible de modifier les colonnes présentées,
ainsi que le tri des processus, de façon interactive:
● Un appui sur la touche ? Affichera l’aide de la commande.
–q permettra de quitter top.
–Pour modifier les champs présentés, il suffit d’appuyer sur la touche f et de sélectionner ceux-ci dans un menu.
–On peut aussi changer la valeur de la priorité des processus avec r.
Visualisation des processus avec top
Visualisation des processus avec top
● Comme vous pouvez le voir, l'affichage est divisé en deux sections:
●La partie supérieure contient des informations relatives à l'état général du système. Durée de fonctionnement,
charge moyenne, dé-compte des processus, état du CPU et statistiques sur l'utilisation de la mémoire et de l'espace
swap.
●La partie inférieure quant à elle fournit des statistiques au niveau des processus ; la nature de ces dernières peut être
modifiée alors même que la commande top est en cours d'exécution. Par exemple, top affiche par défaut, aussi bien
les processus actifs que les processus inactifs. Afin d'afficher seulement les processus actifs, appuyez sur la touche
[i] ; en appuyant une deuxième fois sur cette touche, l'affichage retourne au mode d'affichage par défaut.

Vous aimerez peut-être aussi