InstItut natIonal supérIeur des scIences et technIque d’abéché
Télécommunications et multimédia
Administration Système (Linux)
Niveau : Licence 2
Option : réseaux et télécommunications
Dispensé par : MAHAMAT ADOUD IBRAHIM
11/11/2024 Année Universitaire 2024-2025
ENVIRONNEMENT LINUX
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 2
INTRODUCTION
L’objet est donc de donner les connaissances de base nécessaires à l'installation de Linux sur un ordinateur de particulier ou un petit
serveur. Il est supposé que l’utilisateur a déjà utilisé un autre système d’exploitation, par exemple MS Windows. Cependant, aucune notion
avancée d’informatique n'est nécessaire. Tout sera expliqué au fur et à mesure des besoins et, si nécessité est, des compléments
d’information seront donnés pour permettre la compréhension des opérations à effectuer. Néanmoins, les notions qui seront abordées ici ne
seront pas simples, et il est possible que la plupart des personnes qui n’ont pas une grande habitude de l'informatique aient quelques
difficultés à les assimiler. Cela dit, l'installation de Linux vous procurera le plaisir d’apprendre.
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 3
MATÉRIEL, LOGICIEL ET SYSTÈME D'EXPLOITATION
Dans les grandes lignes, un ordinateur est généralement constitué :
❑ d’un ou plusieurs processeurs, qui effectuent tous les traitements de calcul ;
❑ de mémoire vive, où sont stockées les instructions que le ou les processeurs doivent exécuter, et les données qu'il doivent manipuler ;
❑ d’unités de stockage de masse tels que les disques durs, permettant de stocker les données et les programmes de manière permanente
(c’est-à-dire même après extinction de l’ordinateur) ;
❑ et d’une carte mère, sur laquelle on connecte tous ces éléments.
À ces composants de base s’ajoutent des composants annexes, que l’on appelle « périphériques ». Le clavier, la souris, les cartes
graphiques, son et réseau en sont des exemples. Ce matériel n’est toutefois généralement pas exploitable tel quel. Il faut pour cela utiliser
des programmes dédiés, qui permettent de l’utiliser. L'ensemble de ces programmes constituent ce que l’on appelle le « système
d’exploitation ». C’est au dessus de ce système que viennent se placer les programmes utilisateurs, que l’on appelle également les «
applications », ou « logiciels ».
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 4
La fonction première d’un système d'exploitation est donc de gérer l’ordinateur, et de permettre aux logiciels de s’exécuter. Toutefois, les
systèmes d’exploitation fournissent généralement une abstraction du matériel pour les programmes, afin que ceux-ci n’aient pas à se
soucier des spécificités du matériel sur lequel ils sont installés. Par exemple, il est possible de simuler certaines fonctions absentes, telles
que les fonctions 3D des cartes graphiques modernes, ou encore une interface réseau sur un ordinateur qui n’en dispose pas. Ainsi, les
programmes qui utilisent ces fonctionnalités peuvent s'exécuter correctement, mais avec des restrictions et des performances moindres.
L'essentiel est donc, dans ce cas, de fournir une interface de programmation uniforme, quel que soit le matériel sous-jacent. Le système
d'exploitation apparaît donc comme une machine virtuelle de haut niveau pour les programmes.
Il est évident que le système doit savoir se montrer le plus discret possible, car le but final n'est pas de gérer l'ordinateur mais bel et bien de
s'en servir. Toutefois, la mode actuelle est de faire des systèmes de plus en plus complexes, et de plus en plus visibles, et par conséquent de
moins en moins discrets. De nos jours, la notion de système d'exploitation englobe donc de plus en plus l'ensemble des logiciels
permettant d'utiliser le matériel et les logiciels d'application courants. Mais bien entendu, il ne s'agit là que d'un abus de langage, dont le
grand public n'a pas forcément pris conscience.
QU’EST-CE QUE LINUX ?
Linux est le noyau d'un système d'exploitation libre de type Unix, écrit initialement par Linus Torvalds en 1991 et auquel un grand nombre
de programmeurs ont contribué par Internet depuis. Les origines de tous les systèmes Unix remontent à la première version d'un système
d'exploitation expérimental développé par Dennis Ritchie et Ken Thompson dans les laboratoires AT&T's Bell Laboratories en 1969. Ce
système a avant tout été développé par des programmeurs, pour des programmeurs, et reprenait un certain nombre de concepts qui avaient
été développés auparavant pour le système d'exploitation Multics (abréviation de « Multiplexed Information and Computing Service »),
dont le rôle était de fournir des services informatiques centralisés à un grand nombre de personnes (un peu comme le Minitel a tenté de le
faire par la suite). Multics n'a jamais réellement vu le jour, en revanche, le système Unix initial a engendré un grand nombre d'autres
systèmes plus ou moins compatibles. Récemment, les différents fournisseurs de systèmes Unix se sont accordés pour définir l'ensemble
des fonctionnalités que tous les systèmes Unix doivent supporter, afin de résoudre les problèmes engendrés par les incompatibilités
existantes entre ces différents systèmes. Le terme Unix est donc un terme générique pour représenter l'ensemble de tous ces systèmes, dont
Linux fait partie. Pour l'anecdote, la dénomination Unix provient de la contraction de « Unics » (abréviation de « Uniplexed Information
and Computing Service »), terme forgé ironiquement pour bien signaler qu'Unix était une version allégée de ce que Multics devait être.
Bien que compatible avec les dernières spécifications Unix, Linux ne contient pas une ligne du code source du système Unix original, ce
qui en fait ce que l'on appelle un « clone ». Cela dit, il s'agit réellement d'un système Unix à part entière. En tant que tel, il dispose des
fonctionnalités fournies par les systèmes Unix : il est multitâche, multi-utilisateur et relativement orienté réseau. Vous aurez donc, avec
Linux, un système fiable, fonctionnel et performant.
Comme nous l'avons dit, Linux n'est que le noyau d'un système d'exploitation. Ce n'est donc que le composant de base qui prend en charge
toute la gestion du matériel. Mais quel est donc ce système d'exploitation ? Il s'agit du système GNU/Linux, comprenant donc, outre le
noyau Linux, plusieurs autres couches logicielles développés par la Free Software Foundation et d'autres organisations. Ces couches
prennent en charge différentes fonctionnalités, telles que l'utilisation de l'ordinateur en ligne de commande, l'affichage graphique, et la
gestion complète de l'environnement utilisateur en mode graphique. Parler de Linux en tant que système d'exploitation est donc, encore
une fois, un abus de langage. Cela étant dit, nous nous autoriserons à le faire dans la suite de ce document, par souci de simplicité.
Contrairement aux idées reçues, il existe un grand nombre d'applications pour Linux. La plupart de ces applications peuvent être installées
avec le système GNU/Linux, ce qui fait qu'en pratique ce système forme un ensemble complet et parfaitement utilisable pour la plupart des
tâches courantes.
Une installation correcte de Linux vous permettra donc de réaliser les opérations les plus classiques, comme effectuer un travail
bureautique, naviguer sur Internet, réaliser l'acquisition, la capture et le retraitement d'images, réaliser des animations 3D ou encore
programmer. En revanche, autant vous prévenir tout de suite : nombre de jeux ne sont tout simplement pas disponibles sous Linux, bien
que les principaux titres soient régulièrement portés. De même, vous ne trouverez pas forcément tous les logiciels spécialisés qui existent
sous Windows, et certains logiciels se contenteront des fonctionnalités fondamentales. Vous ne pourrez donc pas réaliser ce que vous
faisiez avec ces applications Windows dont il n'existe pas encore d'équivalent sous Linux. C'est par exemple le cas pour les applications de
gestion et de paie utilisées par nombre de professionnels indépendants ou par des PME. Les systèmes Linux se présentent généralement
sous la forme de « distributions », que l'ont peut acheter dans le commerce ou télécharger sur Internet (de manière tout à fait légale) . Une
distribution n'est rien d'autre que le regroupement de l'ensemble des programmes qui constituent le système d'exploitation et des logiciels
les plus utiles et les plus connus pour Linux. Une distribution Linux est donc réellement bien plus qu'un système d'exploitation : c'est un
tout qui vous permettra réellement d'utiliser complètement votre ordinateur, généralement sans même à avoir à installer de logiciels
complémentaires ! De ce point de vue, Linux est beaucoup plus fonctionnel que les autres systèmes d'exploitation propriétaires.
POURQUOI LINUX ?
Que les choses soient claires : l'installation de Linux peut être une opération relativement compliquée, et l'usage d'un système Unix en
général n'est pas à la portée de tout le monde. Même si la qualité des distributions actuellement disponibles s'est grandement accrue ces
derniers temps, au point que n'importe qui peut installer un système Linux viable sans trop de problèmes, la configuration du système pour
obtenir un fonctionnement correct exige un travail assez important. En particulier, les distributions actuelles éprouvent encore quelques
difficultés pour optimiser les périphériques exotiques, et souvent seules les fonctionnalités de base sont correctement configurées après
une installation classique. Par ailleurs, la plupart des applications sont développées par des groupes de programmeurs indépendants, et
bien que ce soit justement le rôle des distributions de réaliser l'intégration de tous ces composants dans un environnement homogène,
celle-ci n'est pas forcément parfaite. Les outils de configuration des distributions vous permettront sans doute de configurer votre système
de base simplement, mais pour aller au-delà, il faudra sans doute intervenir manuellement.
Néanmoins, il faut reconnaître que celui qui installe Linux à partir d'une distribution sur un ordinateur assez vieux (c'est-à-dire un
ordinateur qui ne dispose pas des derniers périphériques et cartes graphiques à la mode), ou dont les constituants sont de marque courante,
obtient rapidement un système fonctionnel et capable de réaliser la plupart des opérations qu'il désire. En particulier, celui qui utilise son
ordinateur pour travailler (j'entends par là écrire des lettres, les imprimer, naviguer sur Internet pour récupérer des informations, ou
programmer) peut parfaitement se contenter de l'installation par défaut. Ce type de situation ne convient pas à tout le monde : la plupart
des gens disposent de cartes graphiques récentes (surtout depuis l'avènement des jeux 3D) ou de périphériques spécifiques. Tout le monde
ne se place pas uniquement dans le cadre d'une utilisation professionnelle, et il est absurde de disposer d'une carte son et de ne pas pouvoir
l'utiliser. Et c'est là que le bât blesse ! Si l'on désire que Linux reconnaisse ces matériels exotiques, il va falloir mettre les mains dans le
cambouis et avoir une bonne dose de patience. Ce problème de configuration apparaît malheureusement principalement pour les
particuliers, qui souvent disposent de machines hétéroclites et absolument non standards. Dans le cadre d'une entreprise, il existe des
personnes qualifiées pour résoudre ce type de problème, mais ce sont des informaticiens et, de plus, les machines sont souvent homogènes,
ce qui permet d'apporter des solutions génériques. Il faut donc être informaticien ou amateur très éclairé pour installer Linux sur une
machine de particulier et pour le configurer de manière optimale. La situation est d'autant plus grave que la plupart des gens ne
connaissent pas Linux, et qu'il est toujours difficile d'apprendre et de prendre de nouvelles habitudes. Je veux dire par là que même une
tâche très simple à réaliser peut prendre un certain temps, car tout simplement on ne l'a jamais faite. Celui qui a installé trois fois MS
Windows sait parfaitement le faire à présent, et il pense que c'est relativement facile. Et pourtant, il réalise souvent des tâches d'une
complexité qui dépasse, là aussi, le commun des mortels.
Heureusement, et c'est là la force de Linux, ces opérations ne doivent être effectuées qu'une seule fois. On n'a absolument pas besoin de
changer la configuration à chaque instant, comme c'est le cas sous MS Windows, parce que le système est globalement beaucoup plus
stable. Il ne plante quasiment jamais, les applications ne peuvent pas le corrompre, et sa qualité supprime le besoin permanent de mettre à
jour une partie du système. En clair, quand on en a un qui fonctionne, on le garde, non pas parce que c'est un enfer à installer et à
configurer, mais tout simplement parce que ce n'est pas nécessaire de le changer.
En résumé, on peut affirmer que :
❑ Linux est un système simple à installer sur des machines standards ;
❑ sa configuration sur une machine plus exotique requiert parfois une intervention manuelle ;
❑ dans la plupart des cas, cette intervention n'est pas très difficile à réaliser ;
❑ cependant, elle peut dérouter les personnes qui ne l'ont jamais effectuée ;
❑ mais le jeu en vaut la chandelle, parce que le système est réellement solide.
GNU, LINUX ET LES LOGICIELS LIBRES
Vous entendrez souvent parler de la licence « GPL », du projet « GNU », de la « Free Software Foundation » et des logiciels libres dans le
monde de Linux. Pour bien comprendre ce que sont les logiciels libres et la Free Software Foundation, et ce que signifie la licence GPL, il
est nécessaire d'en faire une brève présentation.
Les logiciels libres et la Free Software Foundation
La Free Software Foundation est une organisation dont le but est de développer des logiciels libres. Le terme de « libre » signifie
clairement que chacun peut faire ce qu'il veut du logiciel, y compris le modifier. La vente n'est absolument pas interdite, et il faut donc
faire la distinction entre libre et gratuit. Cela étant dit, les logiciels libres sont souvent de facto gratuits, car ils sont librement
redistribuables par quiconque en possède une copie. La liberté de modifier les logiciels libres implique naturellement que leur code source,
c'est à dire le texte de leur programme tel qu'il a été saisi par ses auteurs, soit librement accessible et modifiable. Les logiciels libres sont
donc qualifiés de logiciels « Open Source », ce qui signifie en anglais que les sources du programme sont disponibles. Attention
cependant, tous les logiciels Open Source ne sont pas forcément libres, car il n'est pas toujours possible de modifier ce code source et de le
redistribuer librement (éventuellement gratuitement). Ainsi, nombre d'éditeurs de logiciels propriétaires publient leur code source sans
pour autant donner de droits supplémentaires à ceux qui les lisent. Certains d'entre eux jouent d'ailleurs explicitement sur cette confusion.
De plus, la plupart des journalistes anglo-saxons font cette confusion et, de ce fait, occultent tous les avantages des logiciels libres.
DROITS D'AUTEURS ET LA LICENCE GPL
Il faut bien comprendre que le fait de diffuser un logiciel sous une licence libre ne prive absolument pas son auteur de ses droits. Il en reste
l'auteur et, en tant que tel, conserve les droits d'auteurs sur son travail. Il ne fait que concéder la liberté d'exploiter ce travail aux autres.
C'est en cela que les logiciels libres se démarquent du domaine publique, dont les logiciels ne sont plus soumis à aucun droit. Afin de
protéger les logiciels libres et leurs auteurs, la Free Software Foundation a rédigé la licence GPL (abréviation de l'anglais « General Public
License »). Cette licence stipule que le logiciel libre peut être redistribué, utilisé, modifié librement, pourvu que celui qui en bénéficie
accorde les mêmes droits à ceux à qui il fournit les copies du logiciel, qu'il l'ait modifié ou non. En d'autre termes, elle garantit que la
liberté des uns s'arrête là où commence celle des autres. Cette licence empêche donc l'aliénation du logiciel et sa transformation en logiciel
propriétaire, de quelque manière que ce soit. Cela implique que tout logiciel libre sous licence GPL modifié par une autre personne que
son auteur reste libre, et le restera à jamais. Ainsi, il est impossible qu'une société commerciale puisse un jour s'approprier un logiciel libre,
même si elle l'améliore. Si vous désirez lire la licence GPL, vous pouvez en trouver une copie dans le fichier /usr/src/linux/COPYING une
fois que vous aurez installé Linux.
La FSF a également rédigé d'autres licences plus adaptées aux bibliothèques de programmes et aux documentations libres. Ainsi, la licence
LGPL (« Lesser General Public License ») permet d'utiliser les bibliothèques de programmes dans des programmes propriétaires, et la
licence FDL (« Free Documentation License ») permet de diffuser des documentations libres. À titre d'exemple, ce guide est distribué sous
licence FDL Précisons que la licence GPL n'est pas la seule licence permettant de distribuer des logiciels libres. Il existe d'autres licences,
dont les termes sont à peu près similaires. Par exemple, la licence BSD (un autre système Unix libre) exige également la distribution des
sources, mais permet l'appropriation des sources par des sociétés commerciales. De même, la licence X, sous laquelle est diffusée
l'environnement graphique X11 qu'utilise Linux, est une licence libre. Quelques outils fournis avec Linux sont distribués avec d'autres
licences plus rares.
Le projet GNU et Linux
La licence GPL a été écrite initialement pour le projet GNU de la Free Software Foundation, dont le but est de réaliser un système Unix
libre et indépendant des Unix commerciaux. Précisons ici que le terme « Unix » caractérise un ensemble de systèmes d'exploitation, qui
disposent tous à peu près des mêmes fonctionnalités et proposent d'y accéder de la même manière.
Le projet GNU est toujours en cours, puisque la Free Software Foundation a déjà écrit la plupart des utilitaires Unix, mais que le coeur du
système (ce que l'on appelle le noyau) est toujours en cours de réalisation. Pour information, ce noyau se nomme « Hurd ». Cependant,
d'autres noyaux sont disponibles, avec lesquels les commandes GNU peuvent être utilisées. Parmi ces noyaux, il existe bien entendu
Linux, qui a été écrit par le Finlandais Linus Torvalds lorsqu'il était étudiant, et amélioré par des programmeurs du monde entier sur
Internet. Linux est un noyau parmi tant d'autres, à ceci près qu'il est, lui aussi, distribué sous la licence GPL, bien que n'ayant rien avoir
avec la Free Software Foundation. Cela signifie qu'il serait en fait plus exact de parler du système « GNU/Linux » que de « Linux » tout
court. Sous cette dénomination, il est clair que ce système est constitué des outils GNU fonctionnant sur le noyau Linux. C'est donc un
ensemble de logiciels libres provenant de plusieurs sources distinctes. Cependant, il est très courant d'entendre parler de « Linux » tout
court, par abus de langage et par souci de simplicité. Bien entendu, cette dénomination est proscrite sur les sites Internet de la Free
Software Foundation, qui devient très susceptible à ce sujet. Pour information, le terme « GNU » est l'abréviation de l'anglais « GNU's Not
Unix ». Cette curieuse phrase rappelle que le projet GNU est de réaliser un système Unix différent des autres. Vous remarquerez que cette
définition est récursive, c'est-à-dire qu'elle utilise le mot « GNU » elle-même. Cela doit être attribué au goût des développeurs de la Free
Software Foundation pour ce genre de définition infiniment récursive.
Vous ne saurez sans doute jamais les raisons qui les ont poussés à choisir la lettre 'G' dans leur définition. Cela étant, « GNU » se
prononce « gnou » en anglais, et vous trouverez donc souvent la représentation d'un gnou sur les sites Internet de GNU.
Richard Stallman, fondateur de projet GNU Linus torvalds, créateur de linux
Avantages et inconvénients des logiciels libres
Les logiciels libres disposent d'avantages indéniables par rapport aux logiciels « propriétaires » ou « fermés ». Je vais tenter de donner ici
une liste non exhaustive de ces avantages :
Les programmes distribués sous licence libre ont souvent été écrits par des passionnés du domaine applicatif auquel ils appartiennent. Les
logiciels libres disposent donc souvent des dernières fonctionnalités à la mode et sont donc généralement extrêmement compétitifs sur ce
plan.
Du fait du grand nombre possible d'intervenants sur les sources des logiciels libres, un grand nombre de possibilités techniques peuvent
être explorées, et c'est souvent la meilleure qui est sélectionnée. C'est une forme de sélection naturelle de la meilleure solution. Ainsi, sur
le long terme, les logiciels libres sont les plus efficaces en terme de performances.
Toujours du fait du grand nombre d'intervenants, et surtout de par la possibilité de consulter et de modifier librement le code source, le
cycle de détection/identification/correction des bogues est très court. Les logiciels libres sont donc parmi les plus fiables qui se font. On
peut considérer qu'un logiciel libre utilisé par un grand nombre de personnes est virtuellement « sans bogue » connu, puisque si tel était le
cas il serait immédiatement corrigé.
La possibilité de repartir d'une base de source existante permet de réaliser des développements beaucoup plus rapidement que dans un
modèle fermé. Les logiciels libres sont donc également ceux qui se développent le plus rapidement à coût fixe, et sont certainement les
plus rentables en terme de coût global pour la collectivité.
Afin de garantir l'interopérabilité entre les différents intervenants du monde du logiciel libre, chacun s'évertue à respecter les standards.
Les logiciels libres sont donc les plus ouverts, non seulement en terme de code source, mais également au niveau des formats de fichiers et
des protocoles de communication. Cela garantie une interopérabilité optimale et l'absence de mauvaise surprise.
Professionnellement parlant, la disponibilité du code source fournit une garantie de fonctionnement que l'on ne peut pas retrouver ailleurs.
En cas de problème, il est toujours possible de s'en sortir, éventuellement en recourant à des compétences externes pour adapter le logiciel
à ses propres besoins.
Enfin, la disponibilité du code source garantit une pérennité absolue du logiciel, ce qu'aucune société commerciale vendant des logiciels
propriétaires ne peut ou ne veut faire.
Pour être honnête, il faut admettre que les logiciels libres ont également des inconvénients. La liste suivante en présente quelques-uns :
La diversité des logiciels libres a également un revers. 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. Prenez par exemple ce guide : il fait la
présentation de l'installation de trois distributions Linux, qu'il a fallu choisir parmi les centaines de distributions existantes... De plus, ce
n'est pas le seul document traitant du sujet de l'installation et de la configuration de Linux (mais c'est sans doute le plus meilleur, n'est-ce
pas ?). Cela ne simplifie pas les choses pour l'utilisateur.
La diversité des bibliothèques et des outils, ainsi que le nombre d'applications susceptibles de communiquer entre elles, implique une
complexité accrue dans le travail d'intégration de tous ces logiciels. Les distributions s'assurent que les logiciels qu'elles fournissent
fonctionnent bien ensemble, mais la redondance existe malgré tout et a un coût non négligeable au final, aussi bien pour les distributions
que les programmeurs et les éditeurs de logiciels. La description de l'installation de trois distributions dans ce document a également un
coût pour son auteur. Enfin, même l'utilisation simultanée de plusieurs logiciels peut amener à charger en mémoire de nombreuses
bibliothèques ayant pourtant la même fonction, alourdissant le système inutilement.
Certaines fonctions des logiciels ne seront pas forcément implémentées, si ses auteurs n'y voient pas d'intérêt. Si le logiciel est développé
par une seule personne ou une petite équipe, ils peuvent ne pas en avoir les moyens financiers ou temporels. Toutefois, si un nombre
suffisant d'utilisateurs la réclament, il est probable qu'une personne ayant les compétences nécessaires pour ajouter la fonctionnalité se
manifeste. Mais il est également possible qu'un autre projet soit démarré, ajoutant encore une fois un élément à la complexité de
l'écosystème des logiciels libres. Il n'est donc pas rare d'avoir plusieurs logiciels réalisant la même chose, mais qu'aucun ne soit complet !
Du fait que les logiciels libres sont justement développés par des passionnés ou par des sociétés qui ne peuvent pas en tirer un bénéfice
direct, certains domaines ne sont pas couverts par les logiciels libres. Ainsi, vous ne trouverez pas toujours une alternative libre à un
logiciel propriétaire, soit parce que le sujet n'intéresse personne, soit parce que les coûts de développement dépassent les capacités des
organisations de développeurs de logiciels libres.
Plus spécifiquement, le marché monopolistique de Windows est beaucoup plus grand que celui de Linux. De ce fait, même les éditeurs de
logiciels propriétaires rechignent à faire l'effort du portage de leurs logiciels pour Unix/Linux. Ainsi, la logithèque pour les systèmes libres
s'en trouve d'autant plus réduite. Cela est particulièrement vrai pour les jeux et les logiciels professionnels, et malheureusement également
pour les pilotes de périphériques de certains constructeurs de matériel.
Quand bien même les éditeurs de logiciels voudraient publier leurs logiciels sous licence libre, ils n'en ont pas toujours le droit, en
raison d'accords de licence avec des tiers ou de brevets qu'ils utilisent, et parfois même en raison de la réglementation locale de
certains pays (comme la France, depuis la loi DADVSI, pour tout les logiciels de lecture de films protégés par exemple). De
même, les vendeurs de matériel ne peuvent pas toujours fournir de pilotes libres, ni même d'informations ou de spécifications sur
le matériel.
Hélas, ces inconvénients sont parfois incontournables, car inhérents à la nature même des logiciels libres. Des reproches injustifiés
sont parfois réalisés envers les auteurs des logiciels libres, alors qu'ils ne sont pas en mesure d'éviter ces problèmes. L'utilisateur
doit donc également se faire une raison : après tout, il reçoit déjà beaucoup de la communauté des logiciels libres.
Mais, et c'est là l'essentiel, l'aspect le plus important des logiciels libres est le fait qu'ils garantissent la liberté des utilisateurs par
rapport aux éditeurs de logiciels. Le respect des standards, l'ouverture des formats de documents et des protocoles de
communication garantissent une interopérabilité absolue, qui permet ainsi à chacun de rester libre de ses choix pour sa solution
informatique. Il n'est que trop courant de voir les éditeurs de logiciels enfermer leurs clients dans une dépendance vis à vis d'eux,
simplement en leur faisant utiliser des produits fermés et inutilisables sans leur concours. Le pire est sans doute que cette
dépendance est transitive (le fait pour un auteur d'utiliser un produit implique que ses lecteurs le possèdent également), durable (on
ne peut faire de mise à jour que chez le même éditeur de logiciel), voire imposée par la loi.
Les distributions de Linux
Système de fichiers
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 23
INTRODUCTION
Le système de fichiers constitue un élément clé du système Linux. C’est encore à maints égards une des grandes forces de Linux. Vu par
l’utilisateur, le système de fichiers est organisé en une structure arborescente dont les nœuds sont des répertoires
et les feuilles des fichiers ordinaires.
Les fichiers sont des récipients contenant des données. Pour le noyau du système, ils ne contiennent qu’une suite d’octets plus ou moins
longue. Linux en lui–même ne connaît ni enregistrement ni structure de fichier. C’est aux programmes d’application de les implanter et de
les gérer.
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 24
L’ARBORESCENCE
Le système Linux ne connaît que trois types de fichiers :
❑ Les fichiers ordinaires (regular files). Ils servent à mémoriser les programmes et les données des utilisateurs et du système.
❑ Les fichiers répertoires ou répertoires (directories). Chaque répertoire contient la liste et la référence des fichiers placés sous son
contrôle et la référence du répertoire dont il dépend (répertoire père).
❑ Les fichiers spéciaux. Ils désignent les périphériques, les tubes ou autres supports de communication interprocessus. Les fichiers
spéciaux associés aux périphériques peuvent être caractères (terminaux) ou blocs (disque) ; les entrées/sorties (E/S) se font soit
caractère par caractère, soit bloc par bloc, un bloc étant composé de n caractères (512, 1024 ou 2048).
L’extension du système de fichiers aux périphériques constitue une des grandes particularités de Linux. Cela permet à un utilisateur de
diriger les données produites par son application vers un fichier ou un périphérique. Autre conséquence, les noms
des fichiers et des périphériques obéissent à la même syntaxe et l’accès aux périphériques est contrôlé par le mécanisme de protection des
fichiers.
Le système de fichiers est organisé en une seule arborescence logique. Cet arbre est composé de répertoires qui contiennent eux–mêmes
d’autres répertoires, ou des fichiers. La figure 3.1 représente un exemple simplifié de cette arborescence.
LA CLASSIFICATION DES FICHIERS LINUX
Dans la présentation de la structure du système de fichiers au paragraphe précédent, nous avons évoqué des fichiers de type répertoire, des
fichiers de type ordinaire et des fichiers spéciaux.
La syntaxe d’un nom de fichier n’est pas très stricte. Il est recommandé de limiter le nom d’un fichier à 14 caractères au plus et de
n’utiliser que les lettres majuscules ou minuscules (attention, Linux différencie les majuscules des minuscules), les chiffres
et quelques autres caractères (le point ., le tiret –, le souligné ). Linux autorise jusqu’à 255 caractères pour le nom du fichier. La longueur
minimum est de un caractère.
Les caractères spéciaux suivants sont à proscrire absolument :
\ > < | $ ? & [ ] * ! " ‘ ( ) ` @ ~ <espace>
De plus, les utilisateurs ayant des claviers français doivent éviter les caractères accentués. En annexe B, vous trouverez la liste complète
des caractères spéciaux à proscrire, car ils ont une signification particulière pour le système.
Le point (.) joue un rôle particulier dans le nom d’un fichier. Les fichiers dont les noms commencent par un point (.), comme .profile, sont
des fichiers cachés (c’est–à–dire qu’ils n’apparaissent pas dans la liste des fichiers en tapant la
commande ls sans argument).
Le point sert également à suffixer les noms des fichiers. Cette pratique est très recommandée, car elle facilite la gestion des fichiers. Il est
vrai qu’il n’existe pas de syntaxe précise ; il existe toutefois un certain nombre de conventions :
Certaines commandes de Linux s’appliquent à plusieurs fichiers. Dans ce cas, plutôt que de les énumérer, il est plus commode de les
désigner par un nom générique en utilisant des caractères spéciaux, pour remplacer un ou plusieurs caractères dans le nom du fichier.
essai.c fichier source C
include.h include de C
essai.o fichier binaire objet
essai. f fichier source fortran
[Link] convention autorisée mais personnelle (fichier source C, ancienne version).
ARBORESCENCE
Les caractères spéciaux et leur signification
❑ * désigne toute chaîne de 0 à n caractères,
❑ ? désigne un caractère quelconque,
❑ [...] désigne un caractère quelconque appartenant à l’ensemble des caractères entre crochets.
Exemples
❑ fich.* désigne tous les fichiers de nom fich et ayant un suffixe.
❑ essai? permet d’obtenir tous les fichiers ayant un nom de 6 caractères dont les 5 premiers caractères sont essai, le dernier caractère est
quelconque.
[a f] désigne n’importe quelle lettre comprise entre a et f.
[a z]* désigne tous les noms commençant par une lettre minuscule.
LA DÉSIGNATION DES FICHIERS
Un fichier est repéré par son nom et sa position dans l’arborescence : son chemin d’accès (pathname).
La syntaxe de ce chemin d’accès est très précise et peut être décrite des deux manières suivantes :
Le chemin d’accès absolu
Il permet d’accéder à un fichier quelconque dans l’arborescence du système de fichiers. Il est composé d’une suite de noms de répertoires
séparés par le caractère /.
Il commence toujours par le caractère / qui désigne le répertoire racine et se termine par le nom du fichier que l’on veut atteindre.
La longueur du chemin d’accès absolu d’un fichier est limitée à 1024 caractères.
Exemples
/var/spool/mail/xstra1
/home/xstra/essai
Le chemin d’accès relatif
La désignation d’un fichier par son chemin d’accès absolu se révèle rapidement lourde vu le nombre de répertoires intermédiaires à
désigner. Tout utilisateur peut se positionner sur n’importe quel répertoire de l’arborescence. Ce répertoire devient courant (répertoire de
travail ou current working directory).
Dès l’entrée en session de l’utilisateur, le système le place dans un répertoire de travail initial (répertoire d’accueil ou home directory).
Ce répertoire a été créé au moment de l’établissement du compte de l’utilisateur. Le système associe alors en permanence, à tout processus
ou tâche, le chemin d’accès complet du répertoire de travail courant de l’utilisateur. Ainsi, l’usager peut désigner un fichier en ne donnant
que son chemin d’accès relatif au répertoire de travail courant.
A partir de ce répertoire courant, l’utilisateur construit son propre sous–arbre de répertoires et de fichiers.
Exemple
chemin absolu /home/xstra/develop/prog1
répertoire courant /home/xstra
chemin relatif develop/prog1
Remarque
Tout répertoire contient au moins deux entrées :
❑ . § représente le répertoire lui–même.
❑ .. § représente le répertoire père.
Ces entrées de répertoire ne sont en général pas imprimées par les utilitaires du système. Elles permettent de référencer le
répertoire courant sans l’obligation de citer son nom de chemin d’accès absolu ou de référencer avec un chemin d’accès relatif un
fichier dans un sous–arbre.
Exemple
répertoire courant /home/xstra
chemin d’accès relatif ../xstra/develop/prog1
chemin d’accès absolu équivalent /home/xstra/develop/prog1
LES COMMANDES DE BASE
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 34
Syntaxe d’une commande linux
La syntaxe générale d’une commande Linux est :
cmd -options arguments
cmd le nom de la commande
options les options de la commande précédées de –
arguments les objets sur lesquels s’appliquent la commande
Dispensé par : MAHAMAT ADOUD IBRAHIM 35
Les commandes usuelles
Manipulation des fichiers et des répertoires
✓ ls : Affichage de la liste des fichiers et/ou répertoires d’un répertoire.
✓ cp : Copie d’un fichier ou d'un répertoire.
✓ mv : Déplacement ou changement du nom d’un fichier ou d’un répertoire.
✓ rm : Effacement d’un fichier ou d’un répertoire.
✓ unlink: Effacement d’un fichier.
✓ mkdir : Création d’un répertoire.
✓ rmdir : Effacement d’un répertoire.
✓ pwd : Permet d'afficher le répertoire actif (print working directory)
✓ cd : Changement du répertoire.
✓ ln : Création d’un lien matériel ou symbolique.
Dispensé par : MAHAMAT ADOUD IBRAHIM 36
Visualisation du contenu de fichiers
✓ more : Affichage progressif du contenu d’un fichier.
✓ less : Affichage interactif du contenu d’un fichier.
✓ od : Affichage sous différents formats du contenu d’un fichier.
✓ head : Affichage du début d’un fichier.
✓ tail : Affichage de la fin d’un fichier.
✓ sort : Tri par ordre alphabétique des lignes d’un fichier texte.
✓ cat : Affichage complet du contenu d’un fichier(valable seulement pour les fichiers pour lesquels la commande file a retourné :
english text, ascii text ou commands text).
NB: Il ne faut surtout pas utiliser la commande cat sur des fichiers dont le contenu supposé est data ou exécutable
Dispensé par : MAHAMAT ADOUD IBRAHIM 37
Gestion des comptes
✓ groupadd : Création d’un groupe.
✓ groupdel : Suppression d’un groupe.
✓ groupmod : Modification des caractéristiques d’un groupe.
✓ grpck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.
✓ passwd : Modification du mot de passe d’un utilisateur.
✓ pwck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.
✓ useradd : Création d’un utilisateur.
✓ userdel : Suppression d’un utilisateur.
✓ usermod : Modification des caractéristiques d’un utilisateur.
Dispensé par : MAHAMAT ADOUD IBRAHIM 38
Modification des autorisations sur les fichiers
✓ chmod : Modification des autorisations sur un fichier.
✓ chown : Modification du propriétaire et du groupe d'un fichier.
✓ chgrp : Modification du groupe d'un fichier.
Gestion des processus
✓ ps : Affichage instantané de la liste des processus en cours.
✓ top : Affichage régulièrement remis à jour des processus en cours.
✓ su : Lancement d’un processus en tant que super-user.
✓ nohup : Lancement d’un processus de manière que la fermeture de session n’entraine pas l’arrêt du processus.
✓ nice : Affectation de la priorité lors du lancement d'un processus.
Dispensé par : MAHAMAT ADOUD IBRAHIM 39
✓ renice : Réaffectation de la priorité au cours du fonctionnement d’un processus.
✓ kill : Terminaison forcée d’un processus.
✓ at : Lancement de commandes à l’heure indiquée.
✓ atq : Affichage de la liste des travaux en attente d’exécution.
✓ atrm : Suppression d’un travail en attente d’exécution
Dispensé par : MAHAMAT ADOUD IBRAHIM 40
EXEMPLES
Manipulation de répertoires
Pwd Print Working Directory
Affiche le chemin d’accès du répertoire courant. Juste après connexion d’un utilisateur xstra, la commande pwd lui précisera son répertoire
d’accueil.
xstra> pwd
/home/xstra
xstra>
cd Change Directory
Permet de changer de répertoire de travail.
Exemple
xstra> cd .. § Permet de remonter au répertoire père.
xstra> pwd
/home
xstra>
Exemple
xstra> cd § Permet de se repositionner sur son répertoire d’accueil.
xstra> pwd
/home/xstra
xstra>
Dispensé par : MAHAMAT ADOUD IBRAHIM 41
mkdir MaKe DIRectory
Crée un nouveau répertoire.
Exemple
xstra vient de se connecter. Il veut se créer un répertoire perl à partir du répertoire courant.
xstra> mkdir perl
xstra> cd perl
xstra> pwd
/home/xstra/perl
xstra>
rmdir ReMove DIRectory
Supprime un répertoire, s’il est vide
Exemple
L’utilisateur décide de supprimer le répertoire précédemment créé.
Ce répertoire est bien vide ; suppression possible.
xstra> cd
xstra> rmdir perl
xstra>
Manipulation de fichiers
Exemples
1) Positionnement sur le répertoire de l’utilisateur xstra. Ls permet d’obtenir la liste des fichiers et répertoires existants à ce niveau.
xstra> cd /home/xstra
xstra> ls
bin develop essai projet1
xstra>
2) Même démarche mais en voulant obtenir toutes les entrées.
xstra> ls –a
. .bash_history bin projet1
.. .bash_logout develop
.bashrc .bash_profile essai
xstra>
3) En étant à la racine, la commande suivante permet de lister le contenu du répertoire /home/xstra et d’obtenir toutes les informations.
xstra> cd /
xstra> ls –l /home/xstra
total 8
drwxr xr x 2 xstra 512 jan 18 10:21 bin
drwxr xr x 2 xstra 512 jan 15 16:05 develop
rwxr r 1 xstra 15 jan 16 14:40 essai
drwxr xr x 2 xstra 512 jan 18 10:21 projet1
xstra>
cat conCATenate
La commande cat est une commande multi–usage qui permet d’afficher, de créer, de copier et de concaténer des fichiers.
Exemples
1) Affichage du contenu du fichier /etc/passwd.
xstra> cat /etc/passwd
2) Création d’un fichier
xstra> cat >essai
Bonjour
Il fait beau
<ctrl–d> § caractère de fin de fichier
xstra>
locate
Permet d’afficher le nom complet de tout fichier ou répertoire correspondant à un critère de recherche donné.
Exemple
Recherche les fichiers et répertoires contenant la chaîne de caractères
touch.
xstra> locate touch
/usr/share/man/man1/[Link]
/usr/X11R6/man/man4/[Link]
/bin/touch
xstra>
More MORE
less LESS (jeu de mots sur « more or less » : less est une amélioration de more)
Permettent d’afficher page par page à l’écran le contenu d’un fichier texte. La commande more est traditionnelle. Un utilisateur
de Linux doit lui préférer la commande less, équivalente mais plus élaborée. less est utilisée par la commande man pour l’affichage de la
documentation en ligne.
Exemple
# afficher page par page le contenu du
# fichier /etc/passwd
xstra> less /etc/passwd
CoPy
Cette commande permet la copie de fichiers. Elle s’utilise sous quatre formes :
1) La copie d’un fichier source dans un fichier destination.
Exemple
Dans le répertoire xstra, copie du fichier essai dans
essai1.
xstra> cd /home/xstra
xstra> cp essai essai1
xstra>
Remarque
Il n’existe aucun contrôle sur le fichier destination : si le fichier essai1 existe, son contenu est écrasé par le contenu du fichier
essai.
2) La copie d’un fichier dans un répertoire.
Exemple 1
Copie du fichier essai du répertoire xstra dans le répertoire
xstra/projet1.
xstra> cd /home/xstra
xstra> cp essai /home/xstra/projet1
xstra>
Exemple 2
Copie du fichier essai1 du répertoire père /home/xstra vers le répertoire courant /home/xstra/projet1.
xstra> cd /home/xstra/projet1
xstra> cp ../essai1 .
xstra>
3) La copie d’un répertoire dans un autre (seuls les fichiers sont copiés : on obtient un message d’erreur pour la copie des répertoires).
Exemple
Copie du contenu du répertoire xstra dans
/home/xstra/projet2.
xstra> cd /home/xstra
xstra> mkdir projet2
xstra> cp * /home/xstra/projet2
xstra>
4) La copie récursive permet de copier une arborescence.
Exemple
Copie de l’arborescence de xstra/projet1 sous
xstra/projet2.
xstra> cd /home/xstra/projet1
xstra> cp –r * /home/xstra/projet2
xstra>
MoVe
Change le nom d’un fichier ou d’un répertoire. En première analyse, cette commande est équivalente à une copie, suivie d’une
suppression. Elle s’utilise sous deux formes :
1) Transfert de fichier1 dans fichier2 et suppression de
fichier1. Si fichier2 existe, il est effacé :
mv fichier1 fichier2
Exemple
Transfert du fichier essai1 dans toto.
xstra> cd /home/xstra
xstra> mv essai1 toto
xstra>
2) Transfert de(s) fichier(s) cité(s) dans le répertoire avec le(s) même(s) nom(s) : mv fichier(s) répertoire
Exemple
Transfert du fichier toto dans le répertoire
/home/xstra/projet1.
xstra> cd /home/xstra
xstra> mv toto /home/xstra/projet1
xstra> ls toto
ls: toto: No such file or directory
xstra> ls /home/xstra/projet1/toto
toto
xstra>
rm ReMove
Supprime un (ou plusieurs) fichier(s) d’un répertoire :
rm fichier(s)
Exemple
Suppression du fichier toto du répertoire projet1.
xstra> cd /home/xstra/projet1
xstra> rm toto
xstra>
grep
Recherche, dans un ou plusieurs fichiers, de toutes les lignes contenant une chaîne donnée de caractères (cette commande sera
détaillée au chapitre 14).
Exemple
Recherche de la chaîne de caractères beau dans le fichier essai.
xstra> grep beau essai
Il fait beau
xstra>
wc Word Count
Cette commande permet le dénombrement des mots, lignes et caractères dans un fichier. Un mot est défini comme une suite de
caractères précédée et suivie par des espaces, des tabulations, le début ou la fin de la ligne.
wc lwcL fichier
Exemple
Impression du nombre de mots dans le fichier essai.
xstra> wc w essai
4
xstra>
ln LiNk
Permet de désigner un fichier par plusieurs noms différents.
Exemple
Le fichier f1 existe, le fichier New f2 est créé sans occupation
disque et est lié au fichier f1.
xstra> ln f1 New_f2
xstra> ls
f1 New_f2
xstra>
Le fichier (en tant qu’espace disque) porte les deux noms.
touch TOUCH
Cette commande permet (entre autres) de créer un fichier vide.
Exemple
xstra> touch f1
xstra>
echo ECHO
Affiche à l’écran le texte qui suit la commande echo.
Exemple
xstra> echo Il y a du soleil
Il y a du soleil
xstra>
GESTION DES COMPTES ET GROUPES
UTILISATEURS
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 52
COMPTE UTILISATEUR
Linux est un système multi-utilisateur. Cela signifie que plusieurs utilisateurs peuvent travailler simultanément sur le même OS, en s’y
connectant à distance notamment.
Espace de travail pour un utilisateur donné :
Accessible selon les droits fixés par:
✓ Le propriétaire de cet espace
✓ Le super utilisateur
Accessible par :
✓ Un login
✓ Un mot de passe ( jamais vide).
Création automatique lors de la déclaration d’un compte avec un utilitaire (selon les versions)
Matérialisé par un répertoire et un ou plusieurs fichiers de configuration (selon la version du système).
La boîte à lettres de la messagerie interne, située dansDispensé par : MAHAMAT
/var/spool/mail. ADOUD IBRAHIM 53
Un compte utilisateur comprend les informations suivantes :
✓Qui est le possesseur du compte ?
✓Comment est-il identifié par le système ?
✓Dans quel groupe cet utilisateur est- il "classé" ?
✓Où se trouve l’espace de travail de cet utilisateur ?
✓Avec quel environnement shell travaille-t-il ?
✓Comment est protégé son espace de travail ?
Elles sont enregistrées dans plusieurs fichiers de configuration accessibles ou non aux users.
Dispensé par : MAHAMAT ADOUD IBRAHIM 54
L’ORGANISATION DES UTILISATEURS SOUS LINUX
On peut créer d’autant des utilisateurs que l’on veut, eux-mêmes repartis dans des [Link] y a un
utilisateur « spécial », root, aussi appelé super-utilisateur. Celui-ci a tous les droits sur la machine.
root
Super-utilisateur
root
amis
Groupe famille
olivier
khalil
Utilisateur
judith haliki
Abasga
Dispensé par : MAHAMAT ADOUD IBRAHIM 55
Sudo : devenir root a un instant
On peut devenir root temporairement a l’aide de la commande sudo. cette commande signifie « faire en substituant à l’utilisateur »
Substitute User Do
Exemple
Sudo commande
Sudo Su : devenir et le rester
Si vous tapez sudo su(tout court),vous passez root indéfiniment.
Dispensé par : MAHAMAT ADOUD IBRAHIM 56
LES FICHIERS DE CONFIGURATION
Ils sont regroupés dans deux répertoires: /etc et /bin.
Les principaux fichiers sont :
Nom du fichier Description
Définition des groupes (système + utilisateurs)
/etc/group
/etc/passwd Définition des comptes (système + utilisateurs)
/etc/shadow Définition des mots de passe (complète /etc/passwd)
/bin/passwd Modification du mot de passe
Dispensé par : MAHAMAT ADOUD IBRAHIM 57
LE FICHIER /etc/group
/etc/group est un fichier qui définit les groupes auxquels appartient chaque utilisateur. Il y a une ligne par groupe, et chaque ligne a le
format :
nom_du_groupe:mot_de_passe:GID:liste_utilisateurs
Par exemple :
actrices:*:400:ali,hassan
Une ligne par groupe décrit par quatre champs séparés par des ':' :
✓ nom du groupe,
✓ mot de passe (crypté) (généralement il n'y en a pas),
✓ numéro de groupe (GID),
✓ liste des utilisateurs (représentés par leurs noms séparés par des virgules).
Les différents champs
1) Nom du groupe :
✓ Nombre maximum de caractères 8.
✓ Il est unique sinon conflit avec la commande newgrp.
Dispensé par : MAHAMAT ADOUD IBRAHIM 58
2) Mot de passe
✓ Champ généralement vide.
✓ Lorsqu’il existe, il permet d’augmenter la sécurité du système.
✓ Il est demandé lorsqu’un utilisateur essaie de changer de groupe.
3) Numéro du groupe (GID)
✓ Lien entre les fichiers /etc/group et /etc/passwd.
✓ Il est appelé numéro de groupe primaire (NGP) dans le fichier /etc/passwd.
✓ Chaque NGP possède une entrée dans le fichier /etc/group.
✓ C’est cet identifiant qui est connu du système, et non le nom du groupe, qui n’est utilisé que pour l’affichage.
4) Les membres
✓ Chaque groupe comprend une liste des membres, séparés chacun par une virgule.
✓ La commande newgrp permet à chaque membre de changer de groupe.
Intérêts
✓ Accès à des fichiers communs à un autre groupe.
✓ Un utilisateur peut appartenir à plusieurs groupes (groupes secondaires) (secondary group set).
NB:
Les droits du fichier /etc/group
rw-r--r--
Conséquence
Un utilisateur ne peut changer de groupe que si l'administrateur lui en a donné l'autorisation (en mentionnant son nom dans la liste des
membres).
Dispensé par : MAHAMAT ADOUD IBRAHIM 59
LE FICHIER /etc/passwd
Définit les comptes utilisateurs et système.
✓ Chaque ligne définit un compte utilisateur.
✓ Une ligne comporte sept champs, séparés par deux points (:).
1) Nom de login :
✓ Nom sous lequel l’utilisateur se connecte au système.
✓ Il doit être unique.
Remarque : Si plusieurs entrées ont le même nom, seule la première sera prise en compte car le fichier est lu séquentiellement du haut
vers le bas.
2) Mot de passe :
✓ Champ généralement vide.
✓ Lorsqu’il existe, il permet d’augmenter la sécurité du système.
✓ Il est demandé lorsqu’un utilisateur essaie de changer de groupe
✓ Crypté.
✓ Son attribution n’est pas obligatoire.
✓ En absence du mot de passe, ce champ est vide. Dans le cas contraire, il est marqué par une croix (*)
3) UID(User IDentifier)
Dispensé par : MAHAMAT ADOUD IBRAHIM 60
Entier unique compris entre 0 et 216-1
UID 0 est réservé au root
✓ accès à la totalité des fichiers du système quelles qu’en soient les permissions.
✓ droit d’exécuter la totalité des appels systèmes.
UID différent de zéro
L ’utilisateur est soumis aux restrictions dues au mécanisme standard des permissions.
4) GID (Group IDentifier)
✓ Entier unique compris entre 0 et 216-1.
✓ Il est partagé par tous utilisateurs d’un même groupe.
5) Commentaires
✓ Champ réservé à l’administrateur.
✓ Contient éventuellement une chaîne servant de commentaire.
6) Répertoire d'accueil du compte :
✓ Répertoire de connexion de l’entité qui se connecte.
✓ Il est unique.
✓ Il est toujours indiqué par un chemin absolu.
✓ Il doit être intégré dans un système de fichier accessible lors de la connexion de l’utilisateur (sinon l’utilisateur se retrouve à la racine
du disque). Dispensé par : MAHAMAT ADOUD IBRAHIM 61
Il possède des droits compatibles avec l’utilisateur : droits de lecture, d’écriture et d’exécution.
7) Shell de démarrage
✓ Indique le programme à exécuter au moment de la connexion.
✓ Ce champ contient le nom d'un shell, par exemple /bin/csh.
✓ Un champ vide entraînera l’exécution du Bourne shell ( /bin/sh).
Les shells disponibles
Bourne shell (/bin/sh), le C-Shell (/bin/csh), le Korn Shell (/bin/ksh)...
Dispensé par : MAHAMAT ADOUD IBRAHIM 62
LE FICHIER /etc/shadow
Il contient les informations relatives à la sécurité du compte utilisateur.
Chaque ligne correspond à un compte utilisateur.
Dans le fichier /etc/shadow, une ligne par utilisateur décrit par neuf champs séparés par des ':' :
✓ login (en clair),
✓ mot de passe (crypté),
✓ date de dernière modification du mot de passe (en jours depuis le 1er janvier 1970),
✓ délai avant la prochaine modification possible après un changement de mot de passe (en jours),
✓ délai avant l’obligation de changer de nouveau de mot de passe après un changement sinon expiration du compte (en jours),
✓ délai d’avertissement avant une modification obligatoire,
✓ délai avant désactivation après une expiration,
✓ date de désactivation,
✓ reservé.
Dans le fichier /etc/shadow, désactivation d’un compte par le placement d’un !! devant le mot de passe.
Dispensé par : MAHAMAT ADOUD IBRAHIM 63
CRÉATION D’UN COMPTE UTILISATEUR
Il y a plusieurs manière qui nous permet d’ajouter utilisateur à savoir :
✓ Manuellement
✓ A l’aide d'un utilitaire en ligne de commande
✓ A l’aide d’un utilitaire graphique( YAST sous SUSE, kuser sous Red Hat, linuxconf)
Les méthodes : Manuellement
Démarche à suivre
✓ Remplir les fichiers de configuration à la main.
✓ Créer des répertoires.
✓ Y installer des fichiers de configuration.
✓ Gérer l’unicité des UID, GID( phase critique).
✓ Définir un mot de passe par défaut, puis le communiquer à l’utilisateur, qui le change dès la première connexion.
Dispensé par : MAHAMAT ADOUD IBRAHIM 64
A l’aide d’un utilitaire en ligne de commande
Commande useradd ou adduser Permet d’ajouter un utilisateur
Les principales options :
✓ C commentaire
✓ d répertoire de base
✓ e date limite( MM/DD/YY).
✓ f délai d’inactivité.
✓ g groupe primaire
✓ G groupe : Définition des groupes alternatifs dans lequel l’utilisateur peut se connecter.
✓ M Permet la création du répertoire de base s’il n’existe pas.
✓ s shell
✓ u uid.
✓ o le numéro de l’utilisateur doit être unique dans la mesure où cette option n’est pas utilisé. Il faut manier cette option avec
beaucoup de précaution.
Exemple
useradd –u 100 –s /bin/bash –c “ gérant de l’entreprise” –d /home/moustapha moustapha
Dispensé par : MAHAMAT ADOUD IBRAHIM 65
Commande userdel Permet de supprimer un utilisateur
Exemple : Suppression de l’utilisateur moustapha
✓ Taper la commande :userdel moustapha
✓ Aller dans le répertoire /home:le répertoire de base de moustapha existe encore.
✓ Sortir du répertoire et taper la commande rmdir -R /home/moustapha pour supprimer le répertoire de base de l’utilisateur.
Suppression d’un utilisateur et son répertoire de base :
L’option -r de userdel
Créer un utilisateur adoud et le détruire ainsi que son répertoire de base par la commande : userdel –r adoud
Commande usermod
Permet de modifier un compte utilisateur
Modification d’un compte utilisateur :
L’option –l de usermod permet de modifier le nom d’un utilisateur sans changer son numéro uid.
Exemple:
Pour que l’utilisateur info puisse disposer du répertoire de base /home/genie, le root doit taper la commande : usermod –l info genie
Dispensé par : MAHAMAT ADOUD IBRAHIM 66
NB : Il est important pour un administrateur de pouvoir identifier tous les fichiers des utilisateurs supprimés pour une éventuelle
destruction. A cet effet il doit taper la commande :
find / –nouser –print
Dispensé par : MAHAMAT ADOUD IBRAHIM 67
A l’aide d’un utilitaire graphique
Kuser pour Redhat
Yast pour Suse
Linuxconf pour Redhat
Dispensé par : MAHAMAT ADOUD IBRAHIM 68
DESTRUCTION DE COMPTE
La Démarche
[Link] les informations « administratives » sur le compte
2. Sauvegarde des données du compte utilisateur
3. Effacer les données suivantes du (des) disque(s):
✓ Espace de travail;
✓ Données dans les fichiers de configuration;
✓ Boîte mail.
NB : On peut manuellement supprimer un utilisateur en supprimant les lignes le concernant dans les fichiers /etc/passwd, /etc/shadow et
/etc/group.
Dispensé par : MAHAMAT ADOUD IBRAHIM 69
GESTION DE GROUPE
Pour créer un groupe on utilise la commande :
groupadd nom _du_group
Pour supprimer un groupe on utilise la commande :
groupdel nom_du_groupe
Pour modifier les informations (numéro du groupe –g, le nom du groupe –n ) on utilise la commande :
groupmod [ –g gid ] [ -n nouveau_nom] ancien_nom_du_groupe
Exemple :
Créer deux groupes nommés etudiant1 et etudiant2
groupadd etudiant1
groupadd etudiant2
Pour détruire le groupe etudiant2 :
groupdel etudiant2
Pour renommer le group etudian1 en etudiant:
groupmod –n etudiant etudiant1
Pour voir l’effet de chaque opération on peut éditer le fichier /etc/group
Dispensé par : MAHAMAT ADOUD IBRAHIM 70
Administrer un groupe
L’administration consiste à ajouter ou supprimer des utilisateurs dans un groupe. L’administrateur root peut déléguer ce pouvoir à un autre
utilisateur grâce à la commande gpasswd.
Les options de gpasswd
gpasswd etudiant : pour donner un mot de passe au groupe etudiant
gpasswd –a ali etudiant : pour ajouter l’utilisateur ali dans le groupe etudiant.
gpasswd –d hassan etudiant : pour supprimer hassan dans le groupe etudiant
gpasswd -A esdras etudiant : pour nommer esdras administrateur du groupe etudiant. l’administrateur du groupe etudiant ou le root
peuvent utiliser la commande :
gpasswd –r etudiant: pour supprimer le mot de passe du groupe etudiant.
gpasswd –M esdras etudiant: pour ajouter esdras en tant que administrateur et membre du groupe etudiant.
gpasswd –R etudiant: pour interdire aux membres du groupe etudiant de s’approprier momentanément etudiant comme groupe primaire.
Dispensé par : MAHAMAT ADOUD IBRAHIM 71
newgrp : permet à un membre d’un groupe de s’approprier, le temps d’une session du groupe comme groupe primaire.
Exemple : esdras peut changer de groupe primaire en tapant :
newgrp etudiant.
La commande id permet d’avoir des informations sur les groupes auxquels on appartient.
La commande groups permet de connaître son groupe primaire.
Exemple : groups esdras: permet de connaître les groupes auxquels appartient esdras
Gestion des mots de passe
✓ La commande passwd possède certaines options permettant de :
✓ changer le shell de processus de connexion par l’option –s
✓ modifier le contenu du champ de connexion par –f
✓ D’affecter ( -g ) ou supprimer ( -r ) le mot de passe du groupe
✓ influer sur la date limite ou la durée de mot de passe par les options suivantes :
▪ option –x pour la durée maximale d’un mot de passe en jours
▪ option –n pour la durée minimale d’un mot de passe en jours
▪ option –w pour le délai d’avertissement en jours
▪ option –i pour la durée maximale d’inactivité
▪ option –l pour verrouiller le mot de passe Dispensé par : MAHAMAT ADOUD IBRAHIM 72
Outils graphiques
netconfig en mode texte et en mode graphique pourla configuration tcp/ip
dateconfig pour configurer la date.
hwbrowser pour avoir des informations sur les périphériques.
kuser pour gérer les utilisateurs et les groupes.
kedit pour éditer des textes.
kmail client de messagerie.
kmenu pour éditer les menus.
kfind pour les recherches avancées sur les fichiersou dossiers.
bindconf pour configurer le DNS.
apacheconf pour configurer le serveur apache.
nautilus c’est le voisinnage réseau ( pour visualiser les ressources smb partagées ).
webmin est l’outil d'administration à distance + ssl.
vnc pour l’administration à distance
firewall-config pour configurer le firewall.
kbdconfig pour configurer le clavier.
kdf pour avoir l’espace disque disponible.
kab pour avoir le carnet d'adresses.
knotes pour prendre des notes, notes qu’on pourra envoyer par email ,sauvegarder, imprimer,
etc en faisant un clic droit sur la note.
kdepasswd pour changer les mots de passe
kcharselect pour l’affichage du tableau des caractères
Dispensé par : MAHAMAT ADOUD IBRAHIM 73
Consultation des informations de compte
✓ id: Affichage des informations d’identité d’un utilisateur.
✓ groups: Affichage des groupes auxquels appartient un utilisateur.
✓ finger: Affichage des informations disponibles sur un utilisateur.
Dispensé par : MAHAMAT ADOUD IBRAHIM 74
droIts d’acces auX FIchIers et les
FILTRES SOUS UNIX
11/11/2024 Dispensé par : MAHAMAT ADOUD IBRAHIM 75
NOTIONS DE FICHIERS UNIX
Sous Unix :
✓ Les répertoires et les fichiers sont confondus
✓ Le terme fichier désigne en général aussi bien le fichier ordinaire que les répertoires.
Les classes d’individus Unix
✓ Le propriétaire (u) du fichier;
✓ Le groupe (g);
✓ Les autres (o) (ceux qui ne font pas partie du groupe du propriétaire du fichier ).
Dispensé par : MAHAMAT ADOUD IBRAHIM 76
LES FONCTIONNEMENT DES DROITS
Chaque fichier et chaque dossier possède une ligne de droits. C’est une liste qui indique qui a le droit de voir le fichier, de le modifier et
exécuter.
Vous avez déjà vu des listes de droits, oui ! Lorsque vous faite un ls –l, il s’agit de la première colonne:
Dispensé par : MAHAMAT ADOUD IBRAHIM 77
Vous voyez tous ces d, r, w et x au début? ce sont ce qu’ on appelle les droits d’accès du fichier ou dossier.
On peut avoir cinq lettres différentes. voici leur signification:
✓ d (directory) : indique si l’élément est un dossier;
✓ l (link) : indique si l’élément est un lien(raccourci);
✓ r (read) : indique si on peut lire l’élément;
✓ w (Write) : indique si on peut modifier l’élément;
✓ x (eXecute) : si c’est un fichier; « x » indique qu’on peut l’exécuter. ce n’est utile que pour les fichiers (exécutables-programmes et
scripts).
Si c’est un dossier; « x » indique qu’on peut le « traverser », c’est-à-dire qu’on peut voir les sous-dossier qu’il contient si on a le droit de
lecture dessus.
Si la lettre apparait, c’est que le droit existe. s’il y a un tiret a la place, c’est qu’il y a aucun droit.
Les droits sont découpés en fonction des utilisateurs.
Dispensé par : MAHAMAT ADOUD IBRAHIM 78
Le premier élément d mis a part, on constate que r, w et x sont répétés trois fois en fonctions des utilisateurs:
✓ le premier triplet rwx indique les droits que possède le propriétaire du fichier sur ce dernier;
✓ le second triplet rwx indique les droits que possèdent les autres membres du groupe sur ce fichier;
✓ Enfin, le dernier triplet rwx indique les droits que possèdent tous les autres utilisateurs de la machine sur le fichier.
Exemple
Souvenez vous d’une chose : root a tous les droits. Il peut tout faire: lire ;modifier, exécuter n’importe quel fichier
Dispensé par : MAHAMAT ADOUD IBRAHIM 79
ATTRIBUTION DES DROITS ET MODES
Chmod: modifier les droits d’accès
Maintenant que nous savons voir et comprendre les droits d’ accès d’un fichier, nous allons apprendre a les modifier a l’aide de la
commande chmod
Attribuer des droits avec des chiffres(chmod absolu)
J’ espère que vous êtes prêts pour effectuer quelques additions! il va falloir faire un petit peu de calcul mental. En effet, on attribue un
chiffre a chaque droit:
Droit chiffre
r 4
w 2
x 1
Dispensé par : MAHAMAT ADOUD IBRAHIM 80
Voici la liste des droits possibles et la valeur correspondante:
Droit Chiffre Lettre
--- 0 0+0+0
r- - 4 4+0+0
-W- 2 0+2+0
--x 1 0+0+1
rw- 6 4+2+0
-wx 3 0+2+1
r-x 5 4+0+1
rwx 7 4+2+1
Par exemple « 640 » indique les droits du propriétaire, du groupe et des autres
✓ 6: droit de lecture et écriture pour le propriétaire.
✓ 4: droit de lecture pour le groupe
✓ 0: aucun droit pour les autres,
Dispensé par : MAHAMAT ADOUD IBRAHIM 81
Attribuer des droits avec des lettres(chmod relatif)
Il existe un autre moyen de modifier les droits d’un fichier. Il revient un peu au même mais permet parfois de paramétrer plus finement,
droit par droit. Dans ce mode ,il faut savoir.
✓ u = user (propriétaire)
✓ g = group (groupe)
✓ o = othre (autre).
Et que:
✓ + signifie: « ajouter le droit »;
✓ - signifie: « supprimer le droit »;
✓ = signifie : « affecter le droit ».
Exemple
Chmod g+w [Link]
Signification: « ajouter le droit d’ écriture au groupe »
Dispensé par : MAHAMAT ADOUD IBRAHIM 82
Sticky bit
Le sticky bit (bit collant) permet d’affecter une protection contre l’effacement du contenu d’un répertoire. Imaginez un répertoire /tmp
où tous les utilisateurs ont le droit de lire et d’écrire des fichiers.
ls -ld /tmp
drwxrwxrwx 6 root system 16384 Aug 14 13:22 tmp
Dans ce répertoire tout le monde peut supprimer des fichiers y compris ceux qui ne lui appartiennent pas (droit w présent partout et pour
tous). Si l’utilisateur toto crée un fichier, l’utilisateur titi peut le supprimer même s’il ne lui appartient pas.
Le sticky bit appliqué à un répertoire, ici /tmp, empêche cette manipulation. Si le fichier peut encore être visualisé et modifié, seul son
propriétaire (et l’administrateur) pourra le supprimer.
chmod u+t /tmp
ls -ld /tmp
Ce droit spécial représenté par le caractère t et qui s’applique aux autres, protège les fichiers de plusieurs individus partageant un même
dossier avec tous les droits contre une suppression par une personne autre que le propriétaire du fichier.
Exemple :
Créer le répertoire /dossier et donner tous les droits aux autres sur ce dossier.
Taper la commande : chmod o + t /dossier
L’utilisateur hassan se connecte et crée un fichier /dossier/fiche1.
L’utilisateur esdras se connecte et crée un fichier /dossier/fiche2.
esdras essaie de détruire le fichier /dossier/fiche1.
Que se passe t-ils ?
Dispensé par : MAHAMAT ADOUD IBRAHIM 83
MASQUE DE CRÉATION D’UN FICHIER
La protection d’un fichier, ainsi que le nom du propriétaire(le votre) et le nom du groupe auquel vous appartenez, sont établis à sa création
et ne peuvent être modifiés que par son propriétaire
La commande umask permet de définir un masque de protection des fichiers(et répertoires) lors de leur création. Cette commande se
trouve en général dans le fichier .bashrc.
Exemple
Umask 22
La valeur 22 est soustraite de la permission permanente
111 111 111 permission permanente
000 010 010 on enlève les bits dont on veut pas
111 101 101 755
Umask 022 permet de créer des répertoires dont la protection est rwx r-x r-x. c ’est souvent l’option par défaut.
NB: pour les fichiers ordinaires, umask 022 donnera une protection de type rw- r - - r-x, car la possibilité d’exécution n’est pas autorisée
sur les fichiers ordinaires.
Dispensé par : MAHAMAT ADOUD IBRAHIM 84
LES FILTRES
find
permet de trouver un fichier a partir d’un répertoire donné.
locate
Permet d’afficher le nom complet de tout fichier ou répertoire correspondant a un critére de recherche donné
grep
Permet entre autre de rechercher une chaine de caractère dans un fichier
Cat
La commande cat est une commande multi-usage qui permet d’afficher, de créer, de copier et de concaténer des fichiers
echo
Affiche a l’écran le texte qui suit la commande echo
Dispensé par : MAHAMAT ADOUD IBRAHIM 85
Exemples
1) FIND
Recherche un fichier à partir du répertoire donné.
a) Recherche du fichier .bash profile chez l’utilisateur
connecté, puis affichage à l’écran de la liste des fichiers.
xstra> find . –name .bash_profile –print
b) Recherche de tous les fichiers de taille supérieure à 400 000
caractères à partir du répertoire courant et affichage à l’écran de la
liste de ces fichiers.
xstra> find . –type f –size +400000c –print
d) Etant positionné sur le répertoire de l’utilisateur xstra,
recherche de tous les fichiers de nom core. Puis suppression de
ces fichiers.
xstra> cd /home/xstra
xstra> find . –name core –exec rm {} \;
Dispensé par : MAHAMAT ADOUD IBRAHIM 86
2) Recherche les fichiers et répertoires contenant la chaine de caractères ins
Locate ins
3) Afficher le contenu du fichier /etc/passwd
Cat /etc/passwd
4) Recherche de la chaine de caractères beau dans le fichier essai.
Grep beau essai
5)
Echo il y a du soleil
Editeurs de texte
Un éditeur de texte permet de créer un fichier qui contiendra du texte et modifier ce texte
Les éditeurs de textes les plus répandus dans le monde d’Unix sont ed, Vi, emacs, nano, poco…
Dispensé par : MAHAMAT ADOUD IBRAHIM 88
Programmation bash
Le script shell
Un script shell est une liste d’instructions contenues dans un fichier.
Pour pouvoir exécuter les instructions d’un script, deux conditions doivent être remplies:
✓ la première ligne doit contenir #!/bin/bash (pour un shell script utilisant bash);
✓ le fichier doit être exécutable (en utilisant la commande chmod +x) et lisible
chmod +x mon_script
./mon_script
Si toutes ces conditions ne sont pas remplies, il est toujours possible de forcer l’exécution du script avec la commande bash.
bash mon_script
Dispensé par : MAHAMAT ADOUD IBRAHIM 89
Syntaxe
•# pour placer une ligne en commentaire.
•Affectation d'une variable : var=valeur ou var="valeur" si la valeur comporte des espaces.
•read pour lire une variable au clavier.
•echo pour afficher une variable.
•Récupération de la ligne de commande via les codes $0, $1, $2, $3, ... dans l’ordre de frappe et incluant le nom du shell.
Récupération de la liste complète des paramètres avec $*.
Récupération du nombre de paramètre avec $#.
Récupération de numéro de processus en cours d’execution $$
$? : valeur de retour de la dernière commande.
Exemple
#!/bin/bash
# Un petit script mon_script
echo 'Ne pas oublier le chat'
Dispensé par : MAHAMAT ADOUD IBRAHIM 90
MERCI POUR VOTRE ATTENTION
Dispensé par : MAHAMAT ADOUD IBRAHIM 91