13
Architectures matérielles et Systèmes d'exploitaon NSI Les systèmes d'exploitaon Cours/TD 1. Présentaon Un ordinateur est une machine complexe; sa programmaon et sa geson, notamment celle de sa mémoire, est délicate puisque cela nécessite de se mere "au niveau de la machine", ce qui n'est pas toujours évident pour un humain. Pour faire l'interface entre le matériel et l'ulisateur, un ensemble de programmes, appelé système d'exploitaon ( SE ou OS en anglais : Operang System ), "tournent" donc en permanence sur un ordinateur de façon à faciliter son ulisaon. Le systèmes d'exploitaon étant proches de la machine, les plus anciens étaient donc écrits en assembleur; actuellement, ils sont généralement écrits dans un langage à mi-chemin entre le bas et le haut-niveau, comme le langage C. Compléter la frise chronologique en y plaçant les dates d'apparion de quelques systèmes d'exploitaon et de langages de programmaon. 2. Rôle du système d'exploitaon Le système d'exploitaon conent un ensemble de logiciels système ou noyau qui permeent de : faire l’interface entre le matériel et l’ulisateur mais également les autres applicaons non système ( jeux, traitement de texte,...). Exemples : communicaon de l’ulisateur vers le matériel : on appuie sur une touche du clavier et on s’aend à ce que le caractère concerné apparaisse à l’écran ; communicaon du matériel vers l’ulisateur : si un fichier qu’on essaye d’aeindre n’existe pas, on a un message d’erreur. gérer la mémoire de la machine, pour que son ulisaon devienne "transparente" pour l'ulisateur et les programmes : la noon d'adresse mémoire n'existe plus, on y "accède" alors par la noon de variables dont l'emplacement exact ( RAM, disque dur,...) est complètement inconnue pour l'ulisateur qui n'a donc pas en se préoccuper. Le noyau doit aussi empêcher que différents programmes ulisent la même zone de la mémoire, de façon à "isoler" leurs données. faire en sorte que tous les programmes puissent s’exécuter de façon équitable : un processeur ne peut exécuter qu'une seule tache en même temps; pour donner "l'illusion" que plusieurs programmes ( appelés alors processus ) peuvent s’exécuter simultanément ( ce que l'on appelle le mul-taches), un programme du système d'exploitaon appelé ordonnanceur leur donne accès aux ressources de la machine à tour de rôle et en se succédant très rapidement dans le temps; la durée d'ulisaon de ces ressources dépend de la priorité donnée à chaque processus selon son ulisaon, son importance,.. mais aucun ne doit "monopoliser" la machine. A côté du noyau, un SE fournit également d'autres logiciels pouvant réaliser des taches de plus haut-niveau : programmes ulitaires ou services pour gérer l'affichage, le son, contrôler le système de fichiers,.... Numéraon – page 1 | 13

Les systèmes d'exploitation Cours/TD

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Les systèmes d'exploitation Cours/TD

Architectures matérielles etSystèmes d'exploitation NSI

Les systèmes d'exploitation Cours/TD

1. Présentation

Un ordinateur est une machine complexe; sa programmation et sa gestion, notammentcelle de sa mémoire, est délicate puisque cela nécessite de se mettre "au niveau de lamachine", ce qui n'est pas toujours évident pour un humain.

Pour faire l'interface entre le matériel et l'utilisateur, un ensemble de programmes, appelé système d'exploitation( SE ou OS en anglais : Operating System ), "tournent" donc en permanence sur un ordinateur de façon à faciliter sonutilisation.

Le systèmes d'exploitation étant proches de la machine, les plus anciens étaient donc écrits en assembleur;actuellement, ils sont généralement écrits dans un langage à mi-chemin entre le bas et le haut-niveau, comme lelangage C.

Compléter la frise chronologique en y plaçant les dates d'apparition de quelques systèmes d'exploitation etde langages de programmation.

2. Rôle du système d'exploitation

Le système d'exploitation contient un ensemble de logiciels système ou noyau qui permettent de :

● faire l’interface entre le matériel et l’utilisateur mais également les autres applications non système ( jeux,traitement de texte,...).

Exemples : communication de l’utilisateur vers le matériel : on appuie sur une touche du clavier et on s’attend à ce

que le caractère concerné apparaisse à l’écran ; communication du matériel vers l’utilisateur : si un fichier qu’on essaye d’atteindre n’existe pas, on a un

message d’erreur.● gérer la mémoire de la machine, pour que son utilisation devienne "transparente" pour l'utilisateur et les

programmes : la notion d'adresse mémoire n'existe plus, on y "accède" alors par la notion de variables dontl'emplacement exact ( RAM, disque dur,...) est complètement inconnue pour l'utilisateur qui n'a donc pas ense préoccuper.Le noyau doit aussi empêcher que différents programmes utilisent la même zone de la mémoire, de façon à"isoler" leurs données.

● faire en sorte que tous les programmes puissent s’exécuter de façon équitable : un processeur ne peutexécuter qu'une seule tache en même temps; pour donner "l'illusion" que plusieurs programmes ( appelésalors processus ) peuvent s’exécuter simultanément ( ce que l'on appelle le multi-taches), un programme dusystème d'exploitation appelé ordonnanceur leur donne accès aux ressources de la machine à tour de rôle eten se succédant très rapidement dans le temps; la durée d'utilisation de ces ressources dépend de la prioritédonnée à chaque processus selon son utilisation, son importance,.. mais aucun ne doit "monopoliser" lamachine.

A côté du noyau, un SE fournit également d'autres logiciels pouvant réaliser des taches de plus haut-niveau :programmes utilitaires ou services pour gérer l'affichage, le son, contrôler le système de fichiers,....

Numération – page 1 | 13

Page 2: Les systèmes d'exploitation Cours/TD

Le SE est souvent vu comme une succession de "couches" qui s'empilent entre le matériel et l'utilisateur pour fairel'interface entre les deux :

3. Libre ou privatif ( = propriétaire )

Il existe divers systèmes d’exploitation et tous n’apportent pas les mêmes solutions aux questions posées ci-dessus.Indépendamment des solutions apportées, il existe deux familles de systèmes : les systèmes propriétaires et lessystèmes libres.

La différence essentielle est que le code d’un logiciel libre (et donc d’un système libre) est public. On peut en généralle modifier ou s’en servir pour fabriquer de nouveaux produits.

Les logiciels propriétaires sont en général non ouverts, il est donc plus difficile (voire illégal) de les modifier.

Les logiciels libres sont souvent maintenus par la communauté, mais peuvent aussi l’être par des entreprises qui lesutilisent et qui ont intérêt à ce qu’ils restent efficaces et utilisés par d’autres, ce qui assure l’existence dedéveloppeurs susceptibles de participer à leur maintien.Les logiciels propriétaires quant à eux sont essentiellement développés et mis à jour par l’entreprise qui les possèdeet qui peut décider d’arrêter de les maintenir.

Ce sont deux modèles économiques très différents.● Systèmes libres : GNU/Linux, GNU/BSD, Android ( pas complètement ),...● Systèmes propriétaires : Windows, macOS, iOS,...

Les SE libres ont eu pendant longtemps une réputation de systèmes qui ne s'adressent qu'aux "geeks" et autres"cracks" de l'informatique, impossibles à utiliser par "M. Tout-le-monde" du fait de leur complexité; cette réputationest aujourd'hui complètement injustifiée, et ils sont devenus aussi simples à manipuler que les systèmes propriétaires"classiques".

L'utilisation d'un système libre est au programme de la Spécialité NSI; ce sera pour vous GNU/Linux.

4. Le système GNU/Linux

Numération - page 2 | 13

Page 3: Les systèmes d'exploitation Cours/TD

Précisons tout de suite que "Linux" est strictement le nom du noyau de ce système d'exploitation, "GNU" étant lenom du système en lui-même; mais il peut utiliser différents noyaux : "GNU/Linux" signifie donc "Systèmed'exploitation GNU utilisant le noyau Linux".

Cependant, et bien qu'une "guerre des noms" existe autour de ce sujet, le terme "Linux" est très souvent utilisé enlieu et place de "GNU/Linux", c'est ce que nous ferons d'ailleurs dans ce chapitre...

Il existe de très nombreuses "versions" de Linux, que l'on appelle des distributions; elles diffèrent par la nature deslogiciels qu'elles incluent et aussi par leur "philosophie" vis à vis du logiciel libre : utilisation uniquement de logicielslibres, ou "tolérance" d'une partie non-libre.

4.1.Utilisateurs et administrateur

Comme tous les systèmes d'exploitation modernes, Linux est un SE multi-utilisateurs, c'est à dire que plusieursutilisateurs différents peuvent utiliser la machine sur laquelle il tourne, avec certaines restrictions que l'on appelle desdroits ou permissions.

Mais contrairement à ce qui se passe sous Windows où un utilisateur "normal" a généralement tous les droits sur lamachine ( installer des logiciels, des pilotes de matériel, utilisation de toutes les ressources, etc...), la gestion desutilisateurs sous Linux est beaucoup plus stricte; on y distingue :

● le compte administrateur ou "super-utilisateur" ( ou "root" ), qui possède tous les droits sur la machine● les comptes utilisateur dont les droits sont limités

Chaque utilisateur dispose sur la machine d'un Répertoire personnel pour y stocker ses documents, ses images, etc...Les utilisateurs (autres que root) ne peuvent pas accéder à la zone personnelle des autres utilisateurs.

4.2.Le bureau Linux

En démarrant Linux en mode graphique, l'utilisateur arrive sur le bureau. Il en existe plusieurs versions en fonction dela distribution Linux utilisée. Ici on vous présente XFCE, qui est un bureau "léger" de la distribution Debian :

Il existe d'autres bureaux comme Gnome, KDE, Cinnamon, Mate, etc. qui offrent les mêmes fonctionnalités mais sontun peu plus "esthétiques" graphiquement.

Numération - page 3 | 13

Page 4: Les systèmes d'exploitation Cours/TD

Les logiciels installés sur les machines sont disponibles pour la plupart dans le Menu en haut à gauche de la fenêtre,et pour certains, dans le dock en bas de l'écran. Un clic-droit sur le bureau fait apparaître un menu contextuel quipropose également le menu des applications.

Prenez quelques minutes pour prendre vos repères; vous retrouverez tout ce qui doit vous être familier : ungestionnaire de fichiers ( Thunar ) et un accès direct sur le bureau à votre Répertoire personnel, un navigateur web( Firefox ), une suite bureautique ( LibreOffice ), etc...Les outils de développement installés sont Pyzo et Bluefish ( l'équivalent de Notepad++ ).

4.3.Le système de fichiers Linux

Dans la "philosophie UNIX" dont dérive Linux, tout est fichier : toutes les ressources de la machine, les documentsmais aussi les périphériques, peuvent être accédés grâce à leur chemin d'accès dans le système de fichiers.

L'arborescence du système de fichiers, c'est à dire la hiérarchie des répertoires et fichiers présentée sous forme d'unarbre, est la suivante :

Numération - page 4 | 13

Menu XFCE

Dock

Menu contextuel

Le fait que sous Linux, l'utilisateur ait le choix du bureau qu'il souhaite utiliser, et de manière généralede beaucoup de logiciels différents, est une des forces de ce système d'exploitation, mais aussi un desinconvénients car beaucoup d'utilisateurs se sentent perdus face à ce choix pléthorique... Le choix dela liberté !

Page 5: Les systèmes d'exploitation Cours/TD

Répertoire description

/ Répertoire "racine", point d'entrée du système defichiers

/boot Répertoire contenant le noyau Linux et l'amorceur

/bin Répertoire contenant les exécutables système debase

/dev Répertoire contenant des fichiers spéciauxnommés devices qui permettent le lien avec lespériphériques de la machine

/etc Répertoire contenant les fichiers de configurationdu système

/home Répertoire contenant les fichiers personnels desutilisateurs (un sous-répertoire par utilisateur)

/media ou/run/media

Répertoire contenant les « points de montage »des médias usuels : cd, dvd, disquette, clef usb

/root Répertoire personnel de l'administrateur

/tmp Répertoire contenant des fichiers temporairesutilisés par certains programmes

/usr Répertoire contenant les exécutables des

programmes (/usr/bin et /usr/sbin), ladocumentation (/usr/doc).

/var Répertoire contenant les fichiers qui servent à lamaintenance du système (les fichiers de journaux

notamment dans /var/log)

Et non, pas de "c:\" ou "d:\" : c'est vraiment une autre façon de voir les choses...

Numération - page 5 | 13

Pour indiquer dans l'arborescence le chemin d'accès vers une ressource, on utilise le slash ( "/" ) pourséparer deux niveaux successifs :

/niveau_1/niveau_2/niveau_3/....

Le répertoire dans lequel on se "trouve" actuellement s'appelle le répertoire courant.

Un chemin d'accès peut être :● absolu lorsqu'on le décrit complètement depuis

la racine● relatif si on le décrit seulement depuis le

répertoire courant

Par exemple, dans l'arborescence ci-contre, si lerépertoire courant est : /home/bob

● le chemin absolu vers le sous-répertoire rock est :/home/bob/music/rock

● le chemin relatif vers ce sous-répertoire estsimplement : /music/rock

Page 6: Les systèmes d'exploitation Cours/TD

5. Linux en ligne de commandes

La mauvaise réputation de Linux vient de l'idée reçue quetout doit être fait en ligne de commande, c'est à dire enentrant de longues et compliquées suites de caractèresdestinées à exécuter les taches même les plus simples;d'où la conséquence que seuls les "initiés" et les surdouésde l'informatique peuvent utiliser un tel système...

Cette situation était peut-être vraie au début de l'existencede Linux ( on rappelle : 1991 ) mais est complètementdépassée aujourd'hui : vous avez pu utiliser Linux en modegraphique et retrouver vos marques très rapidement.

Cependant, la ligne de commande est un outil trèspuissant, de nombreuses taches pouvant souvent grâce àelle être effectuées plus rapidement; de plus, certainsutilisateurs préfèrent passer par la ligne de commandepour réaliser les taches courantes, car ils y sont habitués.On voit même maintenant arriver sous Windowsl'équivalent de la ligne de commandes Linux, le "Power-Shell" : c'est donc bien que cela a son utilité !

L'étude et l'utilisation de quelques commandes"classiques" sous Linux sont au programme de la spé NSI,vous allez donc découvrir à quoi tout cela ressemble...

5.1.Comment entrer des commandes : le Terminal

Chaque distribution Linux fournit un logiciel spécialement destiné à entrer des commandes et à les exécuter, leterminal ou console.

Vous pouvez le lancer à partir du dock en bas de l'écran ou à partir du menu des applications (" Émulateur determinal" ).

Au lancement du terminal, et après l'exécution de chaque ligne de commande, s'affiche l' invite de commande; elleest de la forme :

Numération - page 6 | 13

J'y comprends rien, mais c'est trop la classe...

Pas de Linux chez vous ? Pas de problème : vous pouvez faire de la ligne de commande...en ligne !

Voila un lien vers un émulateur de ligne de commande Linux fonctionnant dans un navigateur ( et codéen JavaScript ) :

Par défaut, vous vous connectez en tant qu'utilisateur (compte user), mais il y a moyen de se placer ancompte administrateur (compte root).

Page 7: Les systèmes d'exploitation Cours/TD

utilisateur@nom_de_la_machine:répertoire_courant$

Dans l'exemple ci-dessus :● l'utilisateur est test● le nom de la machine est DOC-SPC● le répertoire courant ( celui dans lequel "on est" ) est ~ , qui est l'équivalent du répertoire personnel, donc ici

/home/test

Comme son nom l'indique, on invite donc l'utilisateur à entrer une commande en sachant qu'il se "trouve"actuellement dans tel ou tel répertoire.Chaque ligne de commande doit être suivie de l'appui sur la touche ENTRÉE pour être exécutée.

Tout se fait au clavier dans le terminal, mais la souris peut quand même être utilisée pour faire par exemple ducopier-coller.

5.2.Le langage Bash

Et maintenant, vos première commandes...Elles s'écrivent dans une syntaxe portant le nom de langage Bash.Vous trouverez ici une liste des commandes Bash usuelles, mais vous allez déjà en voir quelques unes parmi les pluscourantes.

Déplacement dans l'arborescence des fichiers

La ligne de commande ne "bloque" bien entendu pas l’utilisateur dans sa zone personnelle : elle lui permet denaviguer dans toute l'arborescence.

La commande pour changer de répertoire est la commande cd; par exemple, pour remonter d'un niveau dansl'arborescence :

cd ..Pour revenir à son répertoire personnel quelque soit l'endroit de l'arborescence où l'on se trouve :

cd

Numération - page 7 | 13

Page 8: Les systèmes d'exploitation Cours/TD

Et de manière générale, pour atteindre un répertoire quelconque de l'arborescence :

cd /chemin/vers/le/répertoire

Visualisation du contenu d'un répertoire

On utilise pour cela la commande ls :

test@DOC-SPC:~$ lsBureau Publicconfig.ini sketchbookDocuments TéléchargementsImages test.pyModèles VidéosMusiquetest@DOC-SPC:~$

La commande ci-dessus liste par ordre alphabétique les répertoires et les fichiers présents dans le répertoire courant;pour avoir plus d'informations, on utilisera la commande avec l'option -l :

test@DOC-SPC:~$ ls -ltotal 3308drwx------ 2 test test 4096 1 févr. 13:55 Bureau-rw-r--r-- 1 test test 201 15 déc. 17:30 config.inidrwx------ 20 test test 4096 3 févr. 19:27 Documentsdrwx------ 4 test test 20480 5 déc. 11:43 Imagesdrwx------ 2 test test 4096 1 mars 2014 Modèlesdrwx------ 8 test test 20480 12 juil. 2019 Musiquedrwx------ 2 test test 4096 1 mars 2014 Publicdrwx------ 8 test test 4096 4 avril 2018 sketchbookdrwx------ 10 test test 12288 24 févr. 16:28 Téléchargements-rw-r--r-- 1 test students 72 1 déc. 12:20 test.pydrwx------ 4 test test 4096 12 mai 2019 Vidéostest@DOC-SPC:~$

Ouh là, beaucoup d'informations !...On trouve pour chaque fichier ou répertoire, dans l'ordre :

● le premier caractère indique si il s'agit d'un fichier ( - ) ou d'un répertoire ( d = directory )● les 9 caractères suivants indiquent les droits d'accès sur les fichiers et répertoires; nous laisserons pour

l'instant de côté ces informations (nous y reviendrons plus tard).● le nombre de fichier(s) et/ou de sous-répertoires présents dans le répertoire (si c'en est un).● le nom du propriétaire du fichier, puis du groupe propriétaire de ce fichier (nous verrons également ces deux

notions plus loin)● la taille ( en octets ) du fichier (si c'en est un)● la date (et l'heure pour l'année en cours) de dernière modification● enfin le nom

Numération - page 8 | 13

Page 9: Les systèmes d'exploitation Cours/TD

Création et suppression de fichiers et répertoires

Pour créer un répertoire dans le répertoire courant :

mkdir nom_du_nouveau_repertoire

Pour supprimer un fichier :

rm nom_du_fichier_a_supprimer

Pour supprimer un répertoire et tout son contenu :

rm -r nom_du_repertoire_a_supprimer

Exécution de programmes

Les commandes que vous venez d'utiliser ne sont ni plus ni moins que de petits programmes, qui sont accessibles àpartir de n'importe quel point du système de fichiers ( même si leurs fichiers exécutables se situent ailleurs dansl’arborescence ). Ces programmes sont dits "system-wide", c'est à dire accessible depuis l'ensemble du système.

Pour lancer un programme plus conséquent installé sur la machine, il suffit également de taper son nom dans leterminal.

Pour exécuter un programme qui n'est pas "system-wide", il faut se placer dans son répertoire et utiliser lacommande : ./nom_du_programme

Pour visualiser le contenu d'un fichier ( texte par exemple ) : cat nom_du_fichier.txt

Pour créer un nouveau fichier vide, par exemple un fichier texte : touch nouveau_fichier.txt

5.3.Un petit "escape-game" pour prendre tout cela en main...

Vous allez appliquer l'utilisation de la ligne de commande Linux à la résolution d'un "escape-game" tournant autourde l'informatique; les réponses aux énigmes seront cachées dans une arborescence de fichiers que vous allez devoirparcourir et analyser.

Numération - page 9 | 13

Les commandes ci-dessus telles qu'elles sont présentées travaillent dans le répertoire courant, mais onpeut bien entendu les utiliser pour un fichier ou un répertoire situé n'importe où dans l'arborescence,en indiquant son chemin d'accès relatif ou absolu.

Dernières petites astuces qui deviendront vite indispensables :

● le terminal dispose de l'auto-complétion : en appuyant sur la touche TAB à l'invite decommande, le système vous suggère un nom de fichier ou de répertoire commençant par la oules lettres que vous avez déjà entrées; très pratique pour éviter d'entrer "à la main" un longchemin absolu !

● En appuyant sur la touche HAUT ( ↑ ) , on rappelle la dernière commande entrée; pratiquepour éviter de devoir retaper une deuxième fois une longue ligne de commande !

Page 10: Les systèmes d'exploitation Cours/TD

Travail préliminaire

Avant de commencer, préparez le terrain de jeu :

● placez-vous dans votre répertoire personnel, et assurez-vous de bien y être● créez un nouveau sous-répertoire du nom de NSI; visualiser le contenu de votre répertoire pour

vérifier la création de ce nouveau répertoire● placez-vous dans ce sous-répertoire; grâce à la commande suivante, téléchargez l'archive contenant

l'arborescence de notre escape-game :

wget http://nsileonblum.free.fr/premiere/racine.tar.gz

(vous avez vu...pas besoin de navigateur web pour télécharger !)En cas de problème, vous pouvez charger le fichier fourni grâce au bouton « Upload »

● décompressez l'archive avec la commande suivante :

tar -xzf racine.tar.gz

Vous devez donc maintenant disposer d'une arborescence dont le chemin absolu est :/home/user/NSI/racine

Résolution de l'énigme

Suivez et complétez le document distribué pour résoudre cet escape-game...Aucune connaissance n'est nécessaire : il suffit d'exécuter les bonnes commandes !Pour entrer le résultat, vous devrez taper chaque code et le valider à chaque fois par « Entrée »

6. Les droits ou permissions sous Linux 6.1.Les groupes

Groupes d'utilisateurs

Chaque fichier (et répertoire) est la propriété d’un utilisateur particulier. Par défaut, celui-ci appartient à l’utilisateurqui a créé le fichier.

Les utilisateurs sont réunis en groupes. Un utilisateur pouvant faire partie de plusieurs groupes, pour chaque fichierest spécifié le groupe propriétaire, c’est-à-dire en tant que membre de quel groupe le propriétaire détient le fichier.

On distingue alors trois catégories d’utilisateurs pour chaque fichier :

● le propriétaire● les membres du groupe propriétaire● les autres utilisateurs

Droits sur les fichiers et les répertoires

Il y a trois types de droits sous Linux :

1. Droit en lecture : Identifié par la lettre r (read) et le chiffre 4. Donne l’accès à la lecture d’un fichier. Permet de lister le contenu d’un répertoire.

Numération - page 10 | 13

Page 11: Les systèmes d'exploitation Cours/TD

2. Droit en écriture : Identifié par la lettre w (write) et le chiffre 2. Donne l’accès à l’écriture dans un fichier. Permet d’ajouter ou de supprimer un élément d’un répertoire.

3. Droit en exécution : Identifié par la lettre x (execute) et le chiffre 1. Donne l’accès à l’exécution d’un fichier. Permet de passer à travers un répertoire.

Les droits sur chaque fichier et répertoire sont définis pour chacune des 3 catégories d'utilisateurs.Voici un exemple à partir du listage du contenu d'un répertoire avec la commande ls -l :

-rw-r--r-- 1 test students 72 1 déc. 12:20 test.py

● le propriétaire du fichier est donc test, et le groupe dont il fait partie en tant que propriétaire du fichier(=groupe propriétaire ) est students

● on rappelle que le premier caractère ( - ) indique qu'il s'agit d'un fichier● les 9 caractères suivants ( rw-r--r-- ) indiquent les droits en lecture, écriture et exécution, respectivement,

du propriétaire, des membres du groupe propriétaire et des autres utilisateurs : rw- : le propriétaire a le droit de lecture, d'écriture mais pas le droit d'exécution r-- : les membres du groupe propriétaire ont uniquement le droit de lecture r-- : idem pour les autres utilisateurs

Modifier les permissions

La commande chmod permet d’accorder ou de retirer aux catégories d'utilisateurs les droits sur les fichiers et lesrépertoires.

chmod droit fichier(s)

Le droit à donner ou retirer sur le (ou les) fichier(s) est indiqué par :

● une lettre indiquant la catégorie d’utilisateur ( u = user = propriétaire, g = group = membres du groupe, o =other = autres utilisateurs, a = all = tous les utilisateurs )

● le signe + ou - pour accorder ou retirer le droit● enfin la lettre r, w ou x indiquant la nature du droit.

Exemples :

● u+r pour rajouter au propriétaire le droit en lecture● g-w pour retirer aux membres du groupe le droit en écriture● a+x pour donner à tous les utilisateurs le droit en exécution

Numération - page 11 | 13

Lors de sa création, les droits par défaut pour un fichier sont :

● droit en lecture et exécution pour tout le monde (propriétaire, groupe et autres utilisateurs)● droit en écriture pour le propriétaire seulement.

Page 12: Les systèmes d'exploitation Cours/TD

Groupes secondaires

Chaque utilisateur peut aussi appartenir à un ou plusieurs groupe(s) secondaire(s), qui lui autorise l'utilisation decertains matériels ou ressources de la machine.

Voila par exemple quelques groupes avec leur fonction :

Groupe Fonctionaudio Accès au matériel son.

lp Accès à l'imprimante

optical Accès au lecteur optique (cd/dvd).

root Super-utilisateur: accès complet au système

scanner Accès au matériel scanner

storage Accès aux périphériques amovibles (ex: clé/disque usb)

video Accès aux périphériques de capture vidéo

.... ....

C'est le compte administrateur (ou un utilisateur appartenant au groupe root) qui peut créer les utilisateurs, lesgroupes, et ajouter un utilisateur dans tel ou tel groupe.

On empêche ainsi "n'importe qui de faire n'importe quoi"; la stabilité du système mais surtout la sécurité de lamachine s'en trouvent ainsi beaucoup plus assurés.

Numération - page 12 | 13

Page 13: Les systèmes d'exploitation Cours/TD

6.2.Exercices autour des droits 1. Lire et écrire

1.1. Créer dans votre zone personnelle un fichier nommé test.txt1.2. pour envoyer du contenu dans un fichier, on utilise la commande :

echo "blablabla" > fichier

1.3. Utilisez cette commande pour placer quelques mots dans le fichier test.txt1.4. à l'aide de la commande adéquate, afficher et noter les droits dont vous disposez sur le fichier test.txt1.5. entrez la commande qui permet de vous retirer les droits en lecture et en écriture sur le fichier test.txt1.6. essayez maintenant d'afficher le contenu du fichier test.txt; essayez également de modifier son contenu.

Que constate-t-on ?1.7. Redonnez-vous les droits de lecture et d'écriture sur le fichier test.txt, et vérifiez le changement.1.8. supprimez enfin le fichier test.txt

2. Exécuter

Il est possible d'exécuter tout type de fichier contenant du code, pour peu bien sûr que l'on ait le droit d'exécution surce fichier ! Nous allons essayer ceci avec un script Python.

2.1. téléchargez dans votre zone personnelle le fichier exo2.py.2.2. essayez d'exécuter le fichier de la même manière que les programmes de l'escape-game. Que constatez-

vous ?2.3. Entrez la commande qui vous permet de vous donner le droit d'exécution sur le fichier exo2.py, et vérifiez

le changement.

Vous pourriez être tenté peut-être d'exécuter ainsi un de vos scripts Python écrit lors d'une séance précédente, maisça ne marchera pas...Il faut en effet indiquer au terminal avec quel programme il doit exécuter le code contenu dansle fichier, et pour cela, il faut rajouter la ligne de commentaire suivante au début du script :

#!/usr/bin/env python3

Bien sûr il faut que le logiciel soit installé. Dans l'émulateur de commandes Linux en ligne, c'est donc la ligne suivantequi est au début du fichier exo2.py :

#!/usr/bin/env python2.7

3. Partager

3.1. connectez-vous en tant qu'administrateur en utilisant la commande su root3.2. créez le répertoire /home/partage et à l'intérieur de ce répertoire le fichier test13.3. ajoutez quelques lignes de votre choix dans ce fichier; pour ajouter du texte à la suite dans un fichier sans

écraser son contenu précédent, utiliser la commande :

echo "blablabla" >> fichier

3.4. déconnectez-vous de root en tapant exit.3.5. essayez d'ajouter de nouvelles lignes au fichier test1. Que se passe-t-il ?3.6. faites en sorte que l'utilisateur user puisse écrire dans test1.

Sources : http://nsivaugelas.free.fr/premiere/archi_s_e.php

Numération - page 13 | 13