Vous êtes sur la page 1sur 24

Présentation de Linux

Présentation générale
Un système d'exploitation est un logiciel (ensemble de programmes) permettant à l’homme
d’exploiter les ressources matérielles logiciel et l’interface entre l’homme et la machine de
l’ordinateur.
Les rôles (fonctions) d’un système d’exploitation
On peut résumer les fonctions d'un OS (Operating System) en 3 grandes fonctions :
- Gestion des ressources matérielles : gestion du processeur, gestion des mémoires, gestion des
entrées/sorties, gestion des pilotes, etc.
- Gestion de l’interface homme-machine (IHM) : droits d’utilisation, commandes d’utilisation,
informations de diagnostic, etc.
- Gestion de l’édifice logiciel : installation des autres programmes et communication avec eux,
gestion des fichiers, exécution des programmes ou processus, etc.

Les composantes d’un système d’exploitation


Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les
interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les
éléments suivants :
- Le noyau (en anglais kernel) représentant les fonctions fondamentales du système
d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-
sorties principales, et des fonctionnalités de communication.
- L'interpréteur de commande (en anglais Shell, traduisez « coquille » par opposition au noyau)
permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage
de commandes, afin de permettre à l'utilisateur de piloter les périphériques en ignorant tous
des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc.
- Le système de fichiers (en anglais « file system », noté FS), permettant d'enregistrer les
fichiers dans une arborescence. (FAT, EXT, NTFS)

Il existe plusieurs éditeurs de systèmes d’exploitation donc quelques-uns peuvent être :


- Windows édite par Microsoft,
- Les dérivés d'Unix (macOS (anciennement OS X) a été développé par la société Apple et
GNU/Linux : un système d'exploitation libre s'appuyant sur le noyau Linux et les outils GNU
développé par des indépendants.
Historique
Rappel et introduction
GNU/Linux est un système d'exploitation réunissant le noyau Linux et le système GNU.
Un système Libre, basé sur UNIX massivement utilisé en embarquer, sur les supercalculateurs ou
les serveurs. Créé en 1991 par Linus Torvalds il propose de nombreuses déclinaisons sous forme
de "distributions". 90% de serveurs fonctionnent sous Linux d’où son importance.
Il est doté d’une Interface graphique simple et selon les distributions, pas toujours disponible et
moins puissante, d’une interface ligne de Commande plus puissante, rapide, et toujours
disponible.
Pourquoi parle-t-on de système Libre ?
Un programme est un Logiciel Libre si les utilisateurs ont toutes les libertés suivantes.
- Liberté 0 : La liberté d'exécuter le programme, pour tous les usages.
- Liberté 1 : La liberté d'étudier le fonctionnement du programme, et de l'adapter à vos
besoins. Pour ceci l'accès au code source est une condition requise.
- Liberté 2 : La liberté de redistribuer des copies, donc d'aider votre voisin.
- Liberté 3 : La liberté d'améliorer le programme et de publier vos améliorations, pour en faire
profiter toute la communauté. Pour se faire, l'accès au code source est une condition requise

Il existe des distributions Linux qui contiennent le noyau Linux, les outils GNU, plus un ensemble
de logiciels qu'elles ont choisi de supporter. Ces distributions sont généralement reparties autour
de 2 noyaux (Debian et Red-hat). On pourra distinguer par exemple les distributions tel que :
Mandriva, Red-Hat, Fedora, Debian, Gentoo, OpenSuse, Ubuntu, Kaela, etc.

Les 3 concepts fondamentaux d’un système


Un système informatique bien structuré met en œuvre trois concepts clefs :
- les utilisateurs, qui identifient de manière non ambigüe les acteurs qui peuvent utiliser le
système, leurs droits et ce que le système peut faire en leur nom,
- les fichiers, qui sauvegardent de manière fiable à la fois les données, les programmes qui les
manipulent et les paramètres qui déterminent les comportements du système et de ses
services,
- enfin les processus, qui sont les programmes en train de « tourner » sur la machine à un
moment donné.
Un fichier appartient toujours à un utilisateur du système. De même un processus appartient et
agit toujours au nom d’un utilisateur du système et l’utilisateur est donc responsable des actions de
ses processus. Hormis root, seul l’utilisateur propriétaire d’un fichier ou d’un processus peut lui
appliquer toutes les modifications qu’il souhaite. Les processus appartenant à un utilisateur disposent
eux aussi de tous les droits de l’utilisateur.

Les utilisateurs
Le système identifie ses utilisateurs autorisés non seulement par leur « nom de login » mais aussi
et surtout pas leur identifiant, qui est simplement un nombre entier positif : l’UID (User IDentification).
C’est évidemment la combinaison du nom de login et du mot de passe associé qui permet au système
de « reconnaître » ses utilisateurs autorisés et de leur autoriser l’accès à cet UID.
- Lorsque vous êtes connectés au système, vous pouvez connaître votre UID en lançant une
fenêtre dite de terminal, et en y tapant la commande « echo $UID ».
- Les utilisateurs sont structurés en groupes : chaque utilisateur appartient à un groupe par
défaut (souvent le nom de l’équipe ou du service où il travaille).
- Un utilisateur possède également un répertoire où le système le place par défaut au moment
du « login », sauf exception l’utilisateur a tous les droits sur ce répertoire (créer des sous-
répertoires, y placer des fichiers de son choix, etc.). Il s’agit de la « home directory » de
l’utilisateur.
- Lorsque vous êtes connectés au système, vous pouvez connaître votre home directory avec la
commande « echo $HOME ». C’est généralement quelquechose du genre
/home/monEquipe/monLoginName.
- Enfin un utilisateur possède un processus d’accueil : c’est le processus qui est lancé par le
système au moment où il se connecte avec succès (nom de login et mot de passe reconnus).
C’est aussi celui qui est lancé lorsque l’utilisateur ouvre une fenêtre de « terminal ». Ce genre
de processus est appelé un shell. Il s’agit généralement de /bin/bash et ce processus attend
tout simplement que l’utilisateur tape une commande (donc un nom de fichier) pour
l’exécuter.
Lorsque l’utilisateur bénéficie d’un environnement graphique (c’est le cas en général), c’est en
réalité un simple shell qui est exécuté au moment du login et ce dernier lance immédiatement les
processus de l’environnement graphique au lieu d’attendre que l’utilisateur tape une commande.
Le fichier /etc/passwd contient la liste des utilisateurs reconnus par le système (dont root lui-
même), à raison de un par ligne, et il contient les informations suivantes : nom de login, mot de passe
(encrypté!), UID, GID (entier identifiant du groupe par défaut), vrai nom, home directory et login
shell.

Les fichiers
Les fichiers sont les lieux de mémorisation durable des données de tout le système. Ils sont
généralement placés physiquement sur un disque dur ou sur tout autre dispositif de grande capacité
qui ne perd pas ses données lorsque le courant est éteint (disque SSD, mémoire flash, clef USB,
CDROM, ...).

Les types de fichier


Les fichiers ne sont pas seulement ceux qui mémorisent des textes, des images, de la musique ou des
vidéos :
- il y a des fichiers dont le rôle est de pointer sur une liste d’autres fichiers, on les appelle des
répertoires ou directories (ou encore « dossiers » pour les utilisateurs naïfs; oui, les dossiers
sont des fichiers comme les autres)
- il y a des fichiers dont le rôle est de pointer vers un seul autre fichier, on les appelle des liens
symboliques (ou encore « raccourcis » pour ces mêmes utilisateurs naïfs)
- il y a des fichiers dont le rôle est de transmettre vers un matériel périphérique ce qu’on écrit
dedans, et de transmettre, en lecture cette fois, les informations transmises par le
périphérique; ces fichiers sont appelés des « devices » ou encore des « fichiers de caractères
spéciaux »
- etc.
Les fichers auxquels les gens pensent habituellement, c’est-à-dire ceux qui ont un contenu avec
des données, sont souvent appelés des fichiers plats par opposition aux fichiers répertoires, liens
symboliques et autres.
La commande file permet de savoir quel est le type d’un fichier. Le nom de fichier est souvent
choisi pour indiquer son type via sont suffixe (par exemple « .txt » pour du texte, « .mp3 » pour du
son, ...) mais cette indication n’est pas toujours fiable puisqu’on peut sans problème renommer un
fichier à sa guise. La commande file, en revanche, analyse le contenu du fichier qu’on lui donne en
argument pour déterminer son type.
$ file /home
/home: directory
$ file /etc/passwd
/etc/passwd: ASCII text
$ file /dev/audio
/dev/audio: character special
Plusieurs informations sont attachées aux fichiers. On en verra plusieurs dans cette section
(propriétaire du fichier, droits d’accès, etc.) et l’on peut mentionner également deux informations
souvent utiles :
- la date de dernière modification, qui est la date exacte (à quelques fractions de secondes près)
où le fichier a vu son contenu être modifié (ou créé) pour la dernière fois,
- la date de dernière utilisation, qui est la date exacte où les données du fichier ont été lues (ou
utilisées de quelque façon) pour la dernière fois.
A ce propos, on peut mentionner la commande touch qui positionne ces date à l’instant exact où elle
est exécutée. Plus précisément, si fichier n’existe pas alors la commande « touch fichier » crée un
fichier plat vide dont les dates de dernière modification et de dernière utilisation sont l’instant
présent, et s’il préexistait, elle ne modifie pas le fichier mais positionne néanmoins ces deux dates à
l’instant présent.

L’arborescence du système de fichiers


Les fichiers n’ont pas de nom!
Parler du « nom d’un fichier » est en réalité un abus de langage (que nous faisons tous). Explication :
Les fichiers, quel que soit leur type, sont identifiés par un numéro qui indique leur emplacement sur
le disque dur (ou autre support). Il s’agit du numéro de i-node. Le système de gestion de fichiers gère
un arbre dont la racine est un fichier de type répertoire qui appartient à root. Chaque répertoire est
en fait un ensemble de liens (des « vrais » liens, pas des liens symboliques) vers les fichiers fils de ce
répertoire. Ce sont ces liens qui portent des noms, pas les fichiers eux-mêmes. C’est le nom du lien
qui pointe vers un fichier que l’on appelle abusivement le nom de ce fichier (que le fichier soit plat, un
répertoire ou de tout autre type).

/
home bin lib boot dev etc usr
var
/ / / / / / / /
GB3GB5 ... ... ... ...
GB4 bash ls ... ...
passwd
/ / / rm fstab ...
/
pierre paul
jacques ...

/ / /
... ... ...
Répertoire description
/ Répertoire "racine", point d'entrée du système de fichiers
/boot Répertoire contenant le noyau Linux et l'amorceur
/bin Répertoire contenant les exécutables de base, comme par exemple cp, mv, ls, etc.
Répertoire contenant des fichiers spéciaux nommés devices qui permettent le lien avec les
/dev
périphériques de la machine
/etc Répertoire contenant les fichiers de configuration du système
/home Répertoire contenant les fichiers personnels des utilisateurs (un sous-répertoire par utilisateur)
/lib Répertoire contenant les librairies et les modules du noyau (/lib/modules)
/media Répertoire contenant les « points de montage » des médias usuels : cd, dvd, disquette, clef usb
/root Répertoire personnel de l'administrateur
/sbin Répertoire contenant les exécutables destinés à l'administration du système
/tmp Répertoire contenant des fichiers temporaires utilisés par certains programmes
Répertoire contenant les exécutables des programmes (/usr/bin et /usr/sbin), la documentation
/usr
(/usr/doc), et les programmes pour le serveur graphique (/usr/X11R6).
Répertoire contenant les fichiers qui servent à la maintenance du système (les fichiers de journaux
/var
notamment dans /var/log)

Un fichier (quel que soit son type) est donc caractérisé par son numéro de i-node mais il peut être par
conséquent également désigné sans ambiguité par une adresse qui est le chemin suivi depuis la racine
de l’arbre jusqu’à lui. Les noms portés par les liens des répertoires sont séparés par des « / » (exemple
: /home/etudiants/bio/paul).
Lorsque l’on « déplace un fichier », avec le gestionnaire de fichier ou avec la commande « mv ancien
nouveau », on ne déplace rien en réalité : le fichier reste à sa place sur le disque dur et ne change pas
de numéro de i-node; ce qui change, c’est l’arborescence, donc seulement les contenus des fichiers
de type répertoire qui la constituent.
Il en résulte que la commande mv prend un temps très court quelle que soit la taille du fichier.
Lorsqu’un processus tourne, en particulier lorsqu’un shell tourne, il possède un répertoire de travail.
Ceci évite de répéter tout le chemin depuis la racine car l’expérience montre que la plupart des
processus utilisent ou modifient des fichiers qui sont presque tous dans le même répertoire. Ainsi,
pour un processus (dont le shell) on peut définir une adresse de fichier de deux façons :
- par son adresse absolue, c’est-à-dire le chemin depuis la racine, donc une adresse qui
commence par un « / »
- ou par son adresse relative, c’est-à-dire le chemin depuis le répertoire de travail du processus;
une adresse relative ne commence jamais par un « / ».
C’est donc par son premier caractère qu’on distingue une adresse relative d’une adresse absolue.
Lorsque vous êtes sous un shell, la commande pwd (print working directory) vous fournit le répertoire
de travail dans lequel vous êtes. La commande cd (change directory) vous permet de changer de
répertoire de travail. Enfin la commande ls (list) fournit la liste des liens d’un répertoire (par défaut
son répertoire de travail).
$ pwd
/home/bioinfo/bernot
$ cd bin
$ pwd
/home/bioinfo/bernot/bin
$ ls
i686 shells x86_64
$ ls -a
. .. i686 shells x86_64
$ ls i686 x86_64 i686:
RNAplot hsim wi wx wxd
x86_64:
wi wx wxd
$ ls /usr
X11R6 etc include lib64 local sbin src uclibc bin games lib libexec man share tmp

Chap. 2 : Quelques commandes de base

Commande pwd : Utilisez la commande pwd pour trouver le chemin du répertoire de travail (dossier)
dans lequel vous êtes actuellement. La commande retournera un chemin absolu (complet), qui est en fait
un chemin de tous les répertoires qui commence par une barre oblique (/).
Commande cd : Pour naviguer dans les fichiers et répertoires de Linux, utilisez la commande cd. Elle
nécessite soit le chemin d’accès complet, soit le nom du répertoire, selon le répertoire de travail dans lequel
vous vous trouvez.
Il existe quelques raccourcis pour vous aider à naviguer rapidement :
- cd .. (avec deux points) pour se déplacer d’un répertoire vers le haut
- cd pour aller directement au dossier principal (home)
- cd- (avec un tiret) pour passer à votre répertoire précédent

Par ailleurs, le Shell de Linux est sensible à la casse. Vous devez donc taper les noms des répertoires
exactement comme ils sont.
Commande ls : La commande ls est utilisée pour visualiser le contenu d’un répertoire. Par
défaut, cette commande affichera le contenu de votre répertoire de travail actuel.
Si vous voulez voir le contenu d’autres répertoires, tapez ls et ensuite le chemin d’accès du
répertoire. Par exemple, tapez ls /home/utilisateur/Documents pour voir le contenu
de Documents.
Il existe des variantes que vous pouvez utiliser avec la commande ls :

• ls -R énumérera également tous les fichiers dans les sous-répertoires

• ls -a affichera les fichiers cachés

• ls -al listera les fichiers et les répertoires avec des informations détaillées comme les
autorisations, la taille, le propriétaire, etc.

Commande cat : cat (abréviation de concatenate) est l’une des commandes Linux les plus
fréquemment utilisées.

La commande cat et les redirections La commande cat est une commande multi-usage qui permet
d’afficher, de créer, de copier et de concaténer des fichiers. Elle utilise pleinement les mécanismes
de redirection. Elle lit l’entrée standard si aucun fichier n’est spécifié. Ce qui est lu est affiché sur
la sortie standard.

a) Lecture sur clavier et écriture sur écran


> cat Toute la musique que j’aime,
Toute la musique que j’aime,
>
Le texte « Toute la musique que j’aime, » est lu du clavier et est affiché à l’écran. La
combinaison de touches interrompt la saisie.
b) Copie d’un fichier
> cat f1 >f2 § première possibilité
> cat f2 § deuxième possibilité
>
Le fichier f1 est copié dans f2.
c) Concaténation des fichiers
> cat f1 f2 f3 >f123
>
Le fichier f123 contiendra la concaténation des fichiers f1, f2 et f3, dans cet ordre.
d) Ajout d’un fichier
> cat f1 >>f2
>
Le fichier f1 est concaténé à la suite du fichier f2. f2 est créé s’il n’existe pas
e) Création d’un fichier par saisie au clavier
> cat >f1
bonjour
……
>
Le fichier f1 est créé. Il contiendra le texte saisi jusqu’à interruption par la combinaison de
touches.
f) Création d’un fichier avec condition de saisie

> cat <<EOT >f1

Merci de votre visite A bientôt EOT

>

Le fichier f1 est créé par saisie de texte au clavier, jusqu’à la saisie en début de ligne d’une
chaîne de caractères prédéfinie (EOT dans ce cas). La chaîne de caractères <<texte redirige
l’entrée standard jusqu’à apparition du mot texte.

Cette formulation est très employée pour la création d’un fichier dans un fichier de
commandes (script).
Elle est utilisée pour lister le contenu d’un fichier sur le résultat standard (sdout). Pour
exécuter cette commande, tapez cat suivi du nom du fichier et de son extension. Par exemple
: cat fichier.txt.
Commande cp : Utilisez la commande cp pour copier les fichiers du répertoire actuel dans un
autre répertoire. Par exemple, la commande cp scenery.jpg
/home/utilisateur/Photos créera une copie de scenery.jpg (de votre répertoire actuel) dans
le répertoire Photos.
Commande mv : L’utilisation principale de la commande mv est de déplacer des fichiers, bien
qu’elle puisse également être utilisée pour renommer des fichiers.
Les arguments de mv sont similaires à ceux de la commande cp. Vous devez taper mv, le nom
du fichier et le répertoire de destination. Par exemple :
mv fichier.txt /home/utilisateur/Documents.
Pour renommer les fichiers, la commande Linux est mv ancien_nom.ext nouveau_nom.ext
Commande mkdir : Utilisez la commande mkdir pour créer un nouveau répertoire – si vous
tapez mkdir Music, cela créera un répertoire appelé Music.
Il existe également des commandes mkdir supplémentaires :
- Pour générer un nouveau répertoire à l’intérieur d’un autre répertoire, utilisez cette
commande de base de Linux mkdir Music/Nouveau
- utiliser l’option p (parents) pour créer un répertoire entre deux répertoires existants. Par
exemple, mkdir -p Musique/2020/Nouveau créera le nouveau répertoire « 2020« .
Commande rmdir : Si vous avez besoin de supprimer un répertoire, utilisez la
commande rmdir. Cependant, rmdir ne vous permet de supprimer que les répertoires vides.
Commande rm : La commande rm est utilisée pour supprimer les répertoires et leur contenu.
Si vous voulez seulement supprimer le répertoire – comme alternative à rmdir – utilisez rm -
r.
Note : Soyez très prudent avec cette commande et vérifiez à nouveau dans quel répertoire
vous vous trouvez. Cela effacera tout et il n’y aura pas d’annulation.
Commande touch : La commande touch vous permet de créer un nouveau fichier vierge via la
ligne de commande Linux. Par exemple, entrez
touch /home/username/Documents/Web.html pour créer un fichier HTML
intitulé Web dans le répertoire Documents.
Commande locate : Vous pouvez utiliser cette commande pour localiser un fichier, tout comme
la commande de recherche dans Windows. De plus, l’utilisation de l’argument -i avec cette
commande la rendra insensible à la casse, ce qui vous permettra de rechercher un fichier même
si vous ne vous souvenez pas de son nom exact. Pour rechercher un fichier qui contient deux
mots ou plus, utilisez un astérisque (*). Par exemple, la commande « locate -i school*note »
permettra de rechercher tout fichier contenant les mots « school » et « note« , qu’ils soient en
majuscules ou en minuscules.
Commande find : Comme la commande locate, l’utilisation de find permet également de
rechercher des fichiers et des répertoires. La différence est que vous utilisez la
commande find pour localiser des fichiers dans un répertoire donné.
Par exemple, la commande find /home/ -name notes.txt permet de rechercher un fichier
appelé notes.txt dans le répertoire home et ses sous-répertoires.
Il existe d’autres variations dans l’utilisation de find :

• Pour trouver des fichiers dans le répertoire actuel, utilisez, find . -name notes.txt

• Pour rechercher des répertoires, utilisez, / -type d -name notes. txt


grep command : Une autre commande de base de Linux qui est sans aucun doute utile pour
une utilisation quotidienne est grep. Elle vous permet de rechercher tout le texte d’un fichier
donné.
Par exemple, grep blue notepad.txt recherchera le mot blue dans le fichier notepad. Les
lignes qui contiennent le mot recherché s’afficheront entièrement.
Commande sudo : Abréviation de «SuperUser » Donc, cette commande vous permet
d’effectuer des tâches qui nécessitent des autorisations administratives ou de root.
Cependant, il n’est pas conseillé d’utiliser cette commande pour un usage quotidien car une
erreur pourrait facilement se produire si vous avez fait quelque chose d’incorrect.
Commande df : Utilisez la commande df pour obtenir un rapport sur l’utilisation de l’espace
disque du système, indiquée en pourcentage et en Ko. Si vous voulez voir le rapport en
mégaoctets, tapez df -m.
Commande du : Si vous voulez vérifier l’espace occupé par un fichier ou un répertoire, la
commande du (Disk Usage) est la réponse. Cependant, le résumé de l’utilisation du disque
indiquera les numéros de bloc du disque au lieu du format habituel de la taille. Si vous voulez
le voir en octets, kilo-octets et méga-octets, ajoutez l’argument -h à la ligne de commande.
Commande head : La commande head est utilisée pour visualiser les premières lignes de
n’importe quel fichier texte. Par défaut, elle affichera les dix premières lignes, mais vous
pouvez modifier ce nombre à votre convenance. Par exemple, si vous ne voulez afficher que
les cinq premières lignes, tapez head -n 5 nomdefichier.ext.
Commande tail : Celle-ci a une fonction similaire à celle de la commande head, mais au lieu
d’afficher les premières lignes, la commande tail affichera les dix dernières lignes d’un fichier
texte. Par exemple, tail -n nomdefichier.ext.
Commande diff : Abréviation de différence, la commande diff compare le contenu de deux
fichiers ligne par ligne. Après avoir analysé les fichiers, elle affiche les lignes qui ne
correspondent pas. Les programmeurs utilisent souvent cette commande lorsqu’ils ont
besoin d’apporter des modifications au programme au lieu de réécrire l’intégralité du code
source.
La forme la plus simple de cette commande est diff fichier1.ext fichier2.ext
Commande tar : La commande tar est la commande la plus utilisée pour archiver plusieurs
fichiers dans un tarball – un format de fichier Linux commun qui est similaire au format zip,
avec la compression étant optionnelle.
Cette commande est assez complexe et comporte une longue liste de fonctions telles que
l’ajout de nouveaux fichiers dans une archive existante, la liste du contenu d’une archive,
l’extraction du contenu d’une archive, et bien d’autres encore. Consultez quelques exemples
pratiques pour en savoir plus sur les autres fonctions.
Commande chmod : Chmod est une autre commande Linux, utilisée pour modifier les
permissions de lecture, d’écriture et d’exécution des fichiers et des répertoires. Comme cette
commande est assez compliquée, vous pouvez lire le tutoriel complet afin de l’exécuter
correctement.
Commande chown : Sous Linux, tous les fichiers sont la propriété d’un utilisateur spécifique.
La commande chown vous permet de changer ou de transférer la propriété d’un fichier à un
utilisateur spécifique. Par exemple, chown linuxuser2 fichier.ext fera de linuxuser2 le
propriétaire du fichier.ext.
Commande jobs : La commande jobs affichera tous les jobs actuels avec leur statut. Un job
est essentiellement un processus qui est lancé par le shell.
➔ Commande wget
La ligne de commande Linux est super utile – vous pouvez même télécharger des fichiers sur
Internet à l’aide de la commande wget. Pour ce faire, il suffit de taper wget suivi du lien de
téléchargement.
➔ Commande uname
La commande uname, abréviation de Unix Name, imprimera des informations détaillées sur
votre système Linux comme le nom de la machine, le système d’exploitation, le noyau, etc.
➔ Commande top
Comme un terminal équivalent au gestionnaire de tâches dans Windows, la
commande top affichera une liste des processus qui sont en cours d’exécution et la quantité
de CPU utilisée par chaque processus. Il est très utile de surveiller l’utilisation des ressources
du système, en particulier de savoir quel processus doit être arrêté en cas de
surconsommation de ressources.
➔ Commande history
Lorsque vous utilisez Linux depuis un certain temps, vous remarquerez rapidement que vous
pouvez exécuter des centaines de commandes chaque jour. Ainsi, l’exécution de la
commande history est particulièrement utile si vous voulez revoir les commandes que vous
avez entrées auparavant.
➔ Commande man
Confus quant à la fonction de certaines commandes Linux ? Ne vous inquiétez pas, vous
pouvez facilement apprendre à les utiliser directement depuis le shell de Linux en utilisant la
commande man. Par exemple, en entrant la commande man tail, vous verrez les instructions
manuelles de la commande tail.
➔ Commande echo
Cette commande est utilisée pour déplacer certaines données dans un fichier. Par exemple,
si vous voulez ajouter le texte « Bonjour, je suis John » dans un fichier appelé nom.txt, vous
devez taper echo Bonjour, je suis John >> nom.txt
➔ Commande hostname
Si vous voulez connaître le nom de votre hôte/réseau, il vous suffit de taper hostname. En
ajoutant un -I à la fin, vous obtiendrez l’adresse IP de votre réseau.
➔ Commande useradd, userdel
Puisque Linux est un système multi-utilisateur, cela signifie que plusieurs personnes peuvent
interagir avec le même système en même temps. useradd est utilisé pour créer un nouvel
utilisateur, tandis que passwd est l’ajout d’un mot de passe au compte de cet utilisateur.
Pour ajouter une nouvelle personne nommée John, tapez useradd John et ensuite pour
ajouter son mot de passe, tapez passwd 123456789.
La suppression d’un utilisateur est très similaire à l’ajout d’un nouvel utilisateur. Pour
supprimer le compte d’un utilisateur, tapez, userdel NomUtilisateur
➔ Conseils et astuces
Utilisez la commande clear pour nettoyer le terminal s’il est encombré par trop de
commandes Linux déjà effectuées.
Essayez le bouton TAB pour remplir automatiquement ce que vous tapez. Par exemple, si
vous avez besoin de taper Documents, commencez à taper une commande (disons cd Docu,
puis appuyez sur la touche TAB) et le terminal remplira le reste, ce qui vous donnera cd
Documents.
Ctrl+C et Ctrl+Z sont utilisés pour arrêter toute commande qui fonctionne actuellement.
Ctrl+C arrêtera et terminera la commande, tandis que Ctrl+Z mettra simplement la
commande en pause.
Si vous bloquez accidentellement votre terminal en utilisant Ctrl+S, il suffit de le débloquer
avec Ctrl+Q.
Ctrl+A vous amène au début de la ligne tandis que Ctrl+E vous amène à la fin.
Vous pouvez exécuter plusieurs commandes en une seule en utilisant « ; » pour les séparer.
Par exemple, Commande1; Commande2; Commande3. Ou utilisez && si vous souhaitez que
la commande suivante ne soit exécutée que lorsque la première a réussi .
Les tubes: Un tube (pipe en anglais) est un flot de données qui permet de relier la sortie standard
d’une commande à l’entrée standard d’une autre commande sans passer par un fichier temporaire.
Dans une ligne de commandes, le tube est formalisé par la barre verticale |, que l’on place entre deux
commandes : P1 | P2 | P3
Exemple 1 Affichage page par page du contenu du répertoire courant :
>ls l | less
Dans cet exemple, le résultat de la commande ls l n’apparaît pas à l’écran : la sortie standard est
redirigée vers l’entrée standard de la commande less qui, quant à elle, affichera son entrée standard
page par page. La commande less, contrairement à la commande more, permet à l’aide des touches
claviers , , et de monter et descendre dans le flot de données obtenu dans un tube.
Exemple 2
> who | wc l:

Chap. 2 : Quelques commandes de base

Commande pwd : Utilisez la commande pwd pour trouver le chemin du répertoire de travail (dossier)
dans lequel vous êtes actuellement. La commande retournera un chemin absolu (complet), qui est en fait
un chemin de tous les répertoires qui commence par une barre oblique (/).
Commande cd : Pour naviguer dans les fichiers et répertoires de Linux, utilisez la commande cd. Elle
nécessite soit le chemin d’accès complet, soit le nom du répertoire, selon le répertoire de travail dans lequel
vous vous trouvez.
Il existe quelques raccourcis pour vous aider à naviguer rapidement :
- cd .. (avec deux points) pour se déplacer d’un répertoire vers le haut
- cd pour aller directement au dossier principal (home)
- cd- (avec un tiret) pour passer à votre répertoire précédent

Par ailleurs, le Shell de Linux est sensible à la casse. Vous devez donc taper les noms des répertoires
exactement comme ils sont.

Commande ls : La commande ls est utilisée pour visualiser le contenu d’un répertoire. Par
défaut, cette commande affichera le contenu de votre répertoire de travail actuel.
Si vous voulez voir le contenu d’autres répertoires, tapez ls et ensuite le chemin d’accès du
répertoire. Par exemple, tapez ls /home/utilisateur/Documents pour voir le contenu
de Documents.
Il existe des variantes que vous pouvez utiliser avec la commande ls :

• ls -R énumérera également tous les fichiers dans les sous-répertoires

• ls -a affichera les fichiers cachés

• ls -al listera les fichiers et les répertoires avec des informations détaillées comme les
autorisations, la taille, le propriétaire, etc.
Commande cat : cat (abréviation de concatenate) est l’une des commandes Linux les plus
fréquemment utilisées.

La commande cat et les redirections La commande cat est une commande multi-usage qui permet
d’afficher, de créer, de copier et de concaténer des fichiers. Elle utilise pleinement les mécanismes
de redirection. Elle lit l’entrée standard si aucun fichier n’est spécifié. Ce qui est lu est affiché sur
la sortie standard.

g) Lecture sur clavier et écriture sur écran


> cat Toute la musique que j’aime,
Toute la musique que j’aime,
>
Le texte « Toute la musique que j’aime, » est lu du clavier et est affiché à l’écran. La
combinaison de touches interrompt la saisie.
h) Copie d’un fichier
> cat f1 >f2 § première possibilité
> cat f2 § deuxième possibilité
>
Le fichier f1 est copié dans f2.
i) Concaténation des fichiers
> cat f1 f2 f3 >f123
>
Le fichier f123 contiendra la concaténation des fichiers f1, f2 et f3, dans cet ordre.
j) Ajout d’un fichier
> cat f1 >>f2
>
Le fichier f1 est concaténé à la suite du fichier f2. f2 est créé s’il n’existe pas
k) Création d’un fichier par saisie au clavier
> cat >f1
bonjour
……
>
Le fichier f1 est créé. Il contiendra le texte saisi jusqu’à interruption par la combinaison de
touches.
l) Création d’un fichier avec condition de saisie
> cat <<EOT >f1

Merci de votre visite A bientôt EOT

>

Le fichier f1 est créé par saisie de texte au clavier, jusqu’à la saisie en début de ligne d’une
chaîne de caractères prédéfinie (EOT dans ce cas). La chaîne de caractères <<texte redirige
l’entrée standard jusqu’à apparition du mot texte.

Cette formulation est très employée pour la création d’un fichier dans un fichier de
commandes (script).
Elle est utilisée pour lister le contenu d’un fichier sur le résultat standard (sdout). Pour
exécuter cette commande, tapez cat suivi du nom du fichier et de son extension. Par exemple
: cat fichier.txt.
Commande cp : Utilisez la commande cp pour copier les fichiers du répertoire actuel dans un
autre répertoire. Par exemple, la commande cp scenery.jpg
/home/utilisateur/Photos créera une copie de scenery.jpg (de votre répertoire actuel) dans
le répertoire Photos.
Commande mv : L’utilisation principale de la commande mv est de déplacer des fichiers, bien
qu’elle puisse également être utilisée pour renommer des fichiers.
Les arguments de mv sont similaires à ceux de la commande cp. Vous devez taper mv, le nom
du fichier et le répertoire de destination. Par exemple :
mv fichier.txt /home/utilisateur/Documents.
Pour renommer les fichiers, la commande Linux est mv ancien_nom.ext nouveau_nom.ext
Commande mkdir : Utilisez la commande mkdir pour créer un nouveau répertoire – si vous
tapez mkdir Music, cela créera un répertoire appelé Music.
Il existe également des commandes mkdir supplémentaires :
- Pour générer un nouveau répertoire à l’intérieur d’un autre répertoire, utilisez cette
commande de base de Linux mkdir Music/Nouveau
- utiliser l’option p (parents) pour créer un répertoire entre deux répertoires existants. Par
exemple, mkdir -p Musique/2020/Nouveau créera le nouveau répertoire « 2020« .
Commande rmdir : Si vous avez besoin de supprimer un répertoire, utilisez la
commande rmdir. Cependant, rmdir ne vous permet de supprimer que les répertoires vides.
Commande rm : La commande rm est utilisée pour supprimer les répertoires et leur contenu.
Si vous voulez seulement supprimer le répertoire – comme alternative à rmdir – utilisez rm -
r.
Note : Soyez très prudent avec cette commande et vérifiez à nouveau dans quel répertoire
vous vous trouvez. Cela effacera tout et il n’y aura pas d’annulation.
Commande touch : La commande touch vous permet de créer un nouveau fichier vierge via la
ligne de commande Linux. Par exemple, entrez
touch /home/username/Documents/Web.html pour créer un fichier HTML
intitulé Web dans le répertoire Documents.
Commande locate : Vous pouvez utiliser cette commande pour localiser un fichier, tout comme
la commande de recherche dans Windows. De plus, l’utilisation de l’argument -i avec cette
commande la rendra insensible à la casse, ce qui vous permettra de rechercher un fichier même
si vous ne vous souvenez pas de son nom exact. Pour rechercher un fichier qui contient deux
mots ou plus, utilisez un astérisque (*). Par exemple, la commande « locate -i school*note »
permettra de rechercher tout fichier contenant les mots « school » et « note« , qu’ils soient en
majuscules ou en minuscules.
Commande find : Comme la commande locate, l’utilisation de find permet également de
rechercher des fichiers et des répertoires. La différence est que vous utilisez la
commande find pour localiser des fichiers dans un répertoire donné.
Par exemple, la commande find /home/ -name notes.txt permet de rechercher un fichier
appelé notes.txt dans le répertoire home et ses sous-répertoires.
Il existe d’autres variations dans l’utilisation de find :

• Pour trouver des fichiers dans le répertoire actuel, utilisez, find . -name notes.txt

• Pour rechercher des répertoires, utilisez, / -type d -name notes. txt

grep command : Une autre commande de base de Linux qui est sans aucun doute utile pour
une utilisation quotidienne est grep. Elle vous permet de rechercher tout le texte d’un fichier
donné.
Par exemple, grep blue notepad.txt recherchera le mot blue dans le fichier notepad. Les
lignes qui contiennent le mot recherché s’afficheront entièrement.
Commande sudo : Abréviation de «SuperUser » Donc, cette commande vous permet
d’effectuer des tâches qui nécessitent des autorisations administratives ou de root.
Cependant, il n’est pas conseillé d’utiliser cette commande pour un usage quotidien car une
erreur pourrait facilement se produire si vous avez fait quelque chose d’incorrect.
Commande df : Utilisez la commande df pour obtenir un rapport sur l’utilisation de l’espace
disque du système, indiquée en pourcentage et en Ko. Si vous voulez voir le rapport en
mégaoctets, tapez df -m.
Commande du : Si vous voulez vérifier l’espace occupé par un fichier ou un répertoire, la
commande du (Disk Usage) est la réponse. Cependant, le résumé de l’utilisation du disque
indiquera les numéros de bloc du disque au lieu du format habituel de la taille. Si vous voulez
le voir en octets, kilo-octets et méga-octets, ajoutez l’argument -h à la ligne de commande.
Commande head : La commande head est utilisée pour visualiser les premières lignes de
n’importe quel fichier texte. Par défaut, elle affichera les dix premières lignes, mais vous
pouvez modifier ce nombre à votre convenance. Par exemple, si vous ne voulez afficher que
les cinq premières lignes, tapez head -n 5 nomdefichier.ext.
Commande tail : Celle-ci a une fonction similaire à celle de la commande head, mais au lieu
d’afficher les premières lignes, la commande tail affichera les dix dernières lignes d’un fichier
texte. Par exemple, tail -n nomdefichier.ext.
Commande diff : Abréviation de différence, la commande diff compare le contenu de deux
fichiers ligne par ligne. Après avoir analysé les fichiers, elle affiche les lignes qui ne
correspondent pas. Les programmeurs utilisent souvent cette commande lorsqu’ils ont
besoin d’apporter des modifications au programme au lieu de réécrire l’intégralité du code
source.
La forme la plus simple de cette commande est diff fichier1.ext fichier2.ext
Commande tar : La commande tar est la commande la plus utilisée pour archiver plusieurs
fichiers dans un tarball – un format de fichier Linux commun qui est similaire au format zip,
avec la compression étant optionnelle.
Cette commande est assez complexe et comporte une longue liste de fonctions telles que
l’ajout de nouveaux fichiers dans une archive existante, la liste du contenu d’une archive,
l’extraction du contenu d’une archive, et bien d’autres encore. Consultez quelques exemples
pratiques pour en savoir plus sur les autres fonctions.
Commande chmod : Chmod est une autre commande Linux, utilisée pour modifier les
permissions de lecture, d’écriture et d’exécution des fichiers et des répertoires. Comme cette
commande est assez compliquée, vous pouvez lire le tutoriel complet afin de l’exécuter
correctement.
Commande chown : Sous Linux, tous les fichiers sont la propriété d’un utilisateur spécifique.
La commande chown vous permet de changer ou de transférer la propriété d’un fichier à un
utilisateur spécifique. Par exemple, chown linuxuser2 fichier.ext fera de linuxuser2 le
propriétaire du fichier.ext.
Commande jobs : La commande jobs affichera tous les jobs actuels avec leur statut. Un job
est essentiellement un processus qui est lancé par le shell.
➔ Commande wget
La ligne de commande Linux est super utile – vous pouvez même télécharger des fichiers sur
Internet à l’aide de la commande wget. Pour ce faire, il suffit de taper wget suivi du lien de
téléchargement.
➔ Commande uname
La commande uname, abréviation de Unix Name, imprimera des informations détaillées sur
votre système Linux comme le nom de la machine, le système d’exploitation, le noyau, etc.
➔ Commande top
Comme un terminal équivalent au gestionnaire de tâches dans Windows, la
commande top affichera une liste des processus qui sont en cours d’exécution et la quantité
de CPU utilisée par chaque processus. Il est très utile de surveiller l’utilisation des ressources
du système, en particulier de savoir quel processus doit être arrêté en cas de
surconsommation de ressources.
➔ Commande history
Lorsque vous utilisez Linux depuis un certain temps, vous remarquerez rapidement que vous
pouvez exécuter des centaines de commandes chaque jour. Ainsi, l’exécution de la
commande history est particulièrement utile si vous voulez revoir les commandes que vous
avez entrées auparavant.
➔ Commande man
Confus quant à la fonction de certaines commandes Linux ? Ne vous inquiétez pas, vous
pouvez facilement apprendre à les utiliser directement depuis le shell de Linux en utilisant la
commande man. Par exemple, en entrant la commande man tail, vous verrez les instructions
manuelles de la commande tail.
➔ Commande echo
Cette commande est utilisée pour déplacer certaines données dans un fichier. Par exemple,
si vous voulez ajouter le texte « Bonjour, je suis John » dans un fichier appelé nom.txt, vous
devez taper echo Bonjour, je suis John >> nom.txt
➔ Commande hostname
Si vous voulez connaître le nom de votre hôte/réseau, il vous suffit de taper hostname. En
ajoutant un -I à la fin, vous obtiendrez l’adresse IP de votre réseau.
➔ Commande useradd, userdel
Puisque Linux est un système multi-utilisateur, cela signifie que plusieurs personnes peuvent
interagir avec le même système en même temps. useradd est utilisé pour créer un nouvel
utilisateur, tandis que passwd est l’ajout d’un mot de passe au compte de cet utilisateur.
Pour ajouter une nouvelle personne nommée John, tapez useradd John et ensuite pour
ajouter son mot de passe, tapez passwd 123456789.
La suppression d’un utilisateur est très similaire à l’ajout d’un nouvel utilisateur. Pour
supprimer le compte d’un utilisateur, tapez, userdel NomUtilisateur
➔ Conseils et astuces
Utilisez la commande clear pour nettoyer le terminal s’il est encombré par trop de
commandes Linux déjà effectuées.
Essayez le bouton TAB pour remplir automatiquement ce que vous tapez. Par exemple, si
vous avez besoin de taper Documents, commencez à taper une commande (disons cd Docu,
puis appuyez sur la touche TAB) et le terminal remplira le reste, ce qui vous donnera cd
Documents.
Ctrl+C et Ctrl+Z sont utilisés pour arrêter toute commande qui fonctionne actuellement.
Ctrl+C arrêtera et terminera la commande, tandis que Ctrl+Z mettra simplement la
commande en pause.
Si vous bloquez accidentellement votre terminal en utilisant Ctrl+S, il suffit de le débloquer
avec Ctrl+Q.
Ctrl+A vous amène au début de la ligne tandis que Ctrl+E vous amène à la fin.
Vous pouvez exécuter plusieurs commandes en une seule en utilisant « ; » pour les séparer.
Par exemple, Commande1; Commande2; Commande3. Ou utilisez && si vous souhaitez que
la commande suivante ne soit exécutée que lorsque la première a réussi .

Chap.3 Connexion d’un utilisateur


I) L’UTILISATEUR
Pour permettre à de nombreux utilisateurs de travailler sur la même machine, Linux met en œuvre
des mécanismes d’identification des utilisateurs, de protection et de confidentialité de l’information, tout
en permettant le partage contrôlé nécessaire au travail en groupe. Tout utilisateur est identifié par un
nom (login name) et ne peut utiliser le système que si son nom a préalablement été défini par
l’administrateur du système (ou super–utilisateur), dont le nom est généralement root. Ce dernier a tous
les droits et aucune restriction d’accès ne lui est applicable.
1- Connexion
Lors du démarrage d’une machine, plusieurs étapes se succèdent :
- mise sous tension de la machine et de ses périphériques,
- bootstrap du système (charger le noyau Linux),
- montage des disques,
- vérification des systèmes de fichiers (fsck),
- passage en multi–utilisateur,
- lancement des services.

On obtient alors, affichée à l’écran, l’invite “ login : ” Le système Linux étant un système multi–utilisateur et
multitâche, plusieurs personnes sont connectées simultanément et peuvent travailler sans interférer les
unes avec les autres. Cela nécessite un système de protection des fichiers propre à chaque utilisateur. Ainsi
pour qu’un utilisateur puisse travailler avec le système Linux, il doit établir une connexion (on dit aussi ouvrir
une session).
Lorsque vous avez installé Linux, vous avez eu l’opportunité d’indiquer si vous vouliez utiliser un écran
graphique (connexion en mode graphique) plutôt qu’une console (connexion en mode texte) pour ouvrir
une session. Bien que le mode texte soit utilisé tout au long de cet ouvrage, excepté au chapitre 16, nous
allons présenter les deux méthodes de connexion.
2- Mot de passe
Lors d’une première connexion, il est fortement conseillé à l’utilisateur de s’attri buer un mot de passe. Ce
mot de passe sera chiffré (le chiffrage est purement logi ciel et non inversible). Il sera impossible de le retrouver
à partir du mot chiffré, même pour le super–utilisateur (l’administrateur de la machine). Si l’utilisateur oublie
son mot de passe, l’administrateur ne peut que le détruire pour lui permettre d’en définir un nouveau. Un
utilisateur peut à tout moment changer son mot de passe, ou s’en attribuer un par la commande passwd. Lors
du changement, il faut fournir l’ancien mot de passe.
Par la suite, lors des diverses connexions de l’utilisateur, la lecture du mot de passe se fera sans écho.
Souvent seuls les huit premiers caractères du mot de passe sont pris en compte. L’administrateur peut
imposer des contraintes sur le mot de passe (six caractères minimum, un caractère non alphabétique,…).
L’administrateur de la machine pourra de plus installer des programmes qui teste ront vos mots de passe
afin d’interdire par exemple les mots du dictionnaire, les prénoms, les mots identiques à votre login, etc. Ce
point de sécurisation de votre mot de passe sera vu au chapitre 15. Lorsque le nom et le mot de passe sont
corrects, login récupère dans le fichier /etc/passwd toutes les informations utiles pour cet utilisateur.

II) Les utilisateurs et les groups


1- Les utilisateurs, au cœur du système
Sous Linux, tout les fichiers et dossiers appartiennent à un utilisateur, et tous les programmes qui
s’exécutent sont exécutés par un utilisateur donné. En fait, plus ou moins tout est lié à un ou
plusieurs utilisateurs. On ne parle pas forcément d'utilisateurs humains, mais d'utilisateurs au sens
informatique. Beaucoup de logiciels en arrière-plan s'exécute avec un utilisateur défini
uniquement pour cet usage. Pour illustrer ça, on peut afficher le fichier /etc/passwd qui contient
de nombreuses informations, en particulier les utilisateurs qui existent.
2- Fichiers /etc/passwd et /etc/group
La liste des utilisateurs du système est généralement dans le fichier /etc/passwd. Ce fichier est accessible
en lecture à tous les utilisateurs et contient, pour chaque utilisateur, les champs suivants :
- nom de connexion (login) de l’utilisateur,
- un caractère x
- le numéro de l’utilisateur (UID = user identifier),
- le numéro de groupe (GID = group identifier),
- [ commentaire ],
- le répertoire d’accueil,
- [ programme à lancer ].

Un groupe d’utilisateurs rassemble un certain nombre d’utilisateurs pouvant facilement partager des
fichiers. Ce groupe est répertorié dans un fichier (/etc/group) qui est constitué par :
- nom du groupe,
- un champ vide ou contenant un caractère x ou *
- numéro du groupe (GID = group identifier),
- [ liste des utilisateurs membres du groupe ].

Les notions d’UID et de GID sont importantes pour la protection des fichiers (il ne faut pas les changer
inconsidérément). Un utilisateur a un groupe principal de rattachement et peut appartenir à plusieurs
autres groupes.
3- Manipuler les utilisateurs

Maintenant que l'on sait où sont configurés les utilisateurs, on est tenté de modifier le
fichier /etc/passwd pour créer ou supprimer des utilisateurs. En réalité ce n'est pas recommandé, on préfère
laisser le système s'occuper de cela pour nous et plutôt utiliser des commandes adaptées.
a) Créer un utilisateur
Pour créer un utilisateur, on utilise tout simplement la commande adduser. Attention, c'est une
commande qui nécessite les privilèges root
C'est une commande interactive, qui demande de rentrer différentes informations sur l'utilisateur.
Hormis le mot de passe qui est obligatoire, les autres informations sont celles qui se trouveront
dans la description de l'utilisateur, et qui sont donc facultatives. Pour le reste, tout s'est fait
automatiquement : la création de l'utilisateur, du groupe associé, du dossier de l'utilisateur, etc.
La commande a créé la ligne suivante dans le fichier /etc/passwd.
b) Supprimer un utilisateur
Si l'on souhaite supprimer l'utilisateur on utilise la commande suivante.
➔ sudo deluser --remove-home sarah

L'option --remove-home n'est pas obligatoire et permet, comme son nom l'indique, de supprimer
aussi le répertoire de l'utilisateur en question. Ce n'est pas le cas par défaut, par mesure de
sécurité.
c) Changer d'utilisateur
Pour vous connecter avec votre nouvel utilisateur, vous pouvez bien entendu vous connecter avec son nom
et mot de passe au démarrage de la session, mais vous pouvez aussi changer d'utilisateur directement dans
votre terminal.
➔ su sarah

La commande su (pour Substitute User) permet de se substituer à un autre utilisateur, et donc de


se connecter sous cet utilisateur (en utilisant son mot de passe bien entendu). D'ailleurs si vous
avez les privilèges super-administrateur, vous pouvez même utiliser su sans avoir besoin du mot
de passe de l'utilisateur, par exemple en faisant sudo su sarah.

Les utilisateurs sont configurés dans le fichier /etc/passwd, mais il est possible et préférable
d'utiliser les commandes adduser et deluser pour les manipuler.

4- Configuration des groupes


a) Le fichier /etc/group

Concernant les groupes, c'est le fichier /etc/group qui est en charge de gérer leur configuration. Si
on observe son contenu on constate qu'il a un format proche de /etc/passwd. Il contient en fait la
liste des groupes de la machine, avec un format proche (ici l'aperçu qui est donné est
volontairement tronqué, il y a sans doute plus de lignes dans votre fichier). Isolons la dernière ligne
pour l'étudier. Les informations sont, ici aussi, séparées par des ":". Dans l'ordre nous avons :

- le nom du groupe audio ;

- un caractère "x" qui n'a, en fait, pas d'importance dans ce fichier ;

- le GID du groupe, ici 29 ;


- la liste, séparée par des virgules, des utilisateurs faisant partie du groupe.

On peut donc lire la ligne suivante de cette manière : le groupe audio a pour GID 29 et les
utilisateurs pulse et Franck sont présents dans ce groupe.

b) Méthode Créer un groupe


Mais si l'on souhaite grouper plusieurs utilisateurs dans un groupe, par exemple pour gérer leurs
droits, on a besoin de créer un groupe. Pour cela un utilisateur, on utilise tout simplement la
commande addgroup.
➔ sudo addgroup enfants

On voit que la commande a créé un groupe nommé enfants sur la machine. Le fichier /etc/group a
été modifié en conséquence.
Pour le moment notre groupe est complètement vide. Pour ajouter des utilisateurs à un groupe,
on peut utiliser la commande usermod. C'est une commande qui permet de modifier de nombreux
attributs d'un utilisateur

5- Méthode Modifier les groupes d'un utilisateur


À l'aide des option -aG il est possible d'ajouter un groupe à un utilisateur.
➔ sudo usermod -aG enfants roxane

L'utilisateur roxane fait désormais partie du groupe enfants. L'option G permet d'indiquer qu'on
modifie les groupes de l'utilisateur, et a permet d'append (ajouter) un groupe. On peut le vérifier dans le
fichier /etc/group.
6- Méthode Supprimer un groupe

De manière assez évidente, la commande delgroup permet de supprimer un groupe.


➔ sudo delgroup enfants

Le fichier /etc/group contient la configuration des groupes sur la machine, et les


commandes addgroup et delgroup permettent de les manipuler. On utilise ensuite usermod,
en particulier avec ses options -aG, pour modifier les groupes auxquels appartient un utilisateur.

III) Affichage des droits sous Linux (ls -al)

Sous Linux, chaque dossier et chaque fichier :

• Appartient à un utilisateur et à un groupe ;

• Possède des droits.

Ces droits se divisent en trois :

1. Les droits pour l'utilisateur propriétaire

2. Les droits pour les utilisateurs membres du groupe propriétaire

3. Les droits pour tous les autres utilisateurs

La commande ls -al affiche tous les fichiers et dossiers d'un répertoire, avec leurs propriétaires et
leurs droits.
• Le premier caractère indique que l'élément est un dossier (d) ou un fichier (-).

• Les trois caractères suivants indiquent les droits de l'utilisateur propriétaire (ici stc a les
droits rwx : lire, écrire, parcourir)

• Les trois caractères suivants indiquent les droits des utilisateur membres du groupe
propriétaire (ici les membres de friends ont les droits r-x : lire et parcourir, mais pas écrire)

• Les trois caractères suivants indiquent les droits des autres utilisateurs (ici --- : aucun droit)

• Le nombre suivant indique le nombre de sous-dossiers dans le dossier listé (ici .dir a 3 sous-
dossiers, dont . et .. donc un seul vrai sous-dossier)

• La chaîne suivante indique l'utilisateur propriétaire (ici l'utilisateur stc)

• La chaîne suivante indique le groupe propriétaire (ici le groupe friends)

• Le nombre suivant indique la taille de l'élément en octets (ici 4096 octets)

• La chaîne suivante indique la date et l'heure de dernière modification du fichier (ici le 31


mars à 19h11)

• La dernière chaîne est le nom du fichier (ici .dir)

IV) Gestion des droits sous Linux

La commande chmod permet de modifier l'attribution des droits d'un fichier ou d'un dossier.
Pour cela on ressort d'un côté nos trois types d'utilisateurs : le user propriétaire u,
le group propriétaire g et les others o, et d'un autre côté les trois droits read, write et execute.

On donne a chmod les modifications que l'on souhaite apporter puis la liste des fichiers/dossiers
auquel l'appliquer. Une modification de droit est décrite
par [usertype][action][permissions] où :

• usertype est u g ou o (ou a pour all)

• action est + - ou = pour ajouter, retirer ou fixer des permissions

• permissions est r w ou x

Exemple
- chmod 640 file donne les droits rw (4+2) à user, r (4) à group et aucun droit (0) à others.
- chmod 775 file donne les droits rwx (4+2+1) à user et group et rx (4+1) à others

Vous aimerez peut-être aussi