ARCHITECTURES MATERIELLES ET SYSTEME D’EXPLOITATION
Initiation à UNIX et à l'interpréteur de commandes
I Le shell
Shell signifie coquille en anglais, en informatique, c’est le programme que l’on trouve sur les machines UNIX et qui permet d’interpréter les commandes.
Il permet à l’utilisateur d’interagir avec la machine et de concevoir des scripts, c'est-à-dire des programmes. Nous aborderons principalement le premier point.
II Arborescence de répertoires
Tous les fichiers sont identifiables par leur nom et leur emplacement dans une arborescence de répertoires ou dossiers. Pour atteindre un fichier, il faudra fournir la liste des répertoires qu’il faut traverser avant de parvenir à celui contenant le fichier. On appelle cette information le chemin (path en anglais) du fichier. Chaque répertoire d’un chemin est séparé du répertoire suivant par le caractère «/».
Il existe deux manières de donner un chemin :
en spécifiant la liste la plus courte des répertoires à traverser depuis la racine de la hiérarchie, on dit alors que c’est un chemin absolu .
Exemple : C:\Users\Duquenne\Documents\COURS 2019-2020\NSI
en spécifiant une liste des répertoires à traverser à partir d’un répertoire particulier de la hiérarchie, on dit dans ce cas que c’est un chemin relatif à ce répertoire de départ.
Exemple : si l’on est dans le répertoire Documents, le chemin relatif est : COURS 2019-2020\NSI
III Exploration de l’arborescence de répertoires et création de répertoires et fichiers
Ouvrir un terminal de commandes UNIX
L’ouverture d’un terminal de commandes par défaut, se fait à la racine de votre répertoire personnel.
Les commandes de base à connaitre :
Commande |
Rôle |
Exemple de syntaxe |
ls |
Visualiser le contenu d'un répertoire |
rep$ ls |
ls –a ou ls -al |
Visualiser tous les fichiers d’un répertoire, y compris les fichiers cachés |
|
cd .. |
(change directory) Permet de remonter dans l’arborescence des répertoires |
cd .. |
cd |
Se déplacer dans un répertoire |
cd nouveaurep |
mkdir |
(make directory) Permet de créer un nouveau répertoire dont on donnera nom |
mkdir nouveaurep |
pwd |
Affiche le répertoire courant |
pwd |
touch |
Crée un fichier dans un répertoire ou à la racine |
touch nouv |
cp |
Copie un fichier dans un répertoire |
cp rep1/fichier rep2/ |
Crée une copie d’un fichier |
cp fich copiefich crée une copie du fichier fich appelée copiefic |
|
mv |
(move) Renomme un fichier |
mv fichier nouvFichier |
rm |
(remove) Supprime un fichier |
rm fichier |
rmdir |
Supprime un répertoire vide |
rmdir rep2 |
echo |
Permet d’écrire du texte dans un fichier existant |
echo « voici le texte »> mon_fichier |
cat |
Permet de visualiser et lire le contenu d’un fichier |
cat mon_fichier |
tree |
Permet de visualiser le contenu d’un répertoire sous forme d’arborescence |
rep$ tree |
Pour davantage de détails : https://doc.ubuntu-fr.org/tutoriel/console_commandes_de_base
TD
Dans l’interpréteur, à l’aide des commandes, créer à la racine un répertoire nommé TDsystExploit, qui contiendra les répertoires sem1 et sem2. Le répertoire sem1contiendra les répertoires td1 et td2. Dans td1, créer deux fichiers fich1 et fich2 et dans td2, créer trois répertoires rep1, rep2 et rep3 créer un fichier fich3 dans rep1.
Ecrire dans fich1 le texte « Contenu du fichier 1 »
Créer un graphe représentant cette arborescence de tous ces répertoires et fichiers.
Indiquer le chemin absolu de fich1.
Indiquer le chemin relatif de fich3, lorsque l’on se trouve dans sem2.
Copier dans sem2, le fichier fich3.
IV Gestion des droits
Les droits d'accès précisent pour chaque fichier ou chaque répertoire, qui a le droit de lire, d’exécuter (ou de le traverser dans le cas d'un répertoire) ou de le modifier.
Cette notion de droit, est indispensable dans un système multi-utilisateurs afin de préserver la confidentialité de ses documents à chaque utilisateur.
1) Lire les droits
Chaque fichier ou répertoire a plusieurs propriétés associées : le propriétaire, le groupe propriétaire, la taille en octets, la date de dernière modification, et les droits d'accès.
Exemple : ls -l, permet de voir les permissions d'un répertoire JEUX situé dans Documents et constitué de 18 fichiers :
Ici le répertoire Jeux a des droits ouverts en lecture, écriture et exécution pour le propriétaire luc, il a des droits ouverts pour le groupe première1 et pour les autres utilisateurs en lecture et exécution.
Il comporte 18 fichiers de taille totale 4096 octets, il a été créé le 7 juin de cette année à 19h10.
Comment se présentent les informations concernant les droits d’accès ?
Type |
Propriétaire |
Groupe auquel appartient le propriétaire |
Autres utilisateurs |
|
|
||
d |
rwx |
r-x |
r- - |
- |
rw- |
r - - |
r - - |
Les commandes de base à connaître.
La gestion des droits se fait à l’aide de la commande chmod
chmod (change mode), la plus utile, qui modifie les permissions
Cette notation consiste à associer un ou plusieurs degrés de propriété, une action et un ou plusieurs types d'accès. On l'utilise généralement pour ajouter ou retirer des permissions par rapport à la normale (-rw-r--r-- pour un fichier, drwxr-xr-x pour un répertoire).
Degré de propriété |
Action |
Type d'accès |
||||||||||
|
|
|
Voici un exemple pour interdire à tout autre que vous l'accès à votre fichier qui à l’origine pouvait être lu et modifié par tout le monde.
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ ls -l
total 4
-rw-rw-rw- 1 duquenne duquenne 408 juin 8 16:38 commandes_unix_manip_rép_fich
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ chmod go-rw commandes_unix_manip_rép_fich
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ ls -l
total 4
-rw------- 1 duquenne duquenne 408 juin 8 16:38 commandes_unix_manip_rép_fich
utilisateur ~ $ chmod og+r monfichier
utilisateur ~ $ chmod go+rx monrepertoire
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ ls -l
total 8
-rw------- 1 duquenne duquenne 408 juin 8 16:38 commandes_unix_manip_rép_fich
drwxrwxr-x 2 duquenne duquenne 4096 juin 10 20:53 repaeff
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ chmod go-rwx repaeff
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ ls -l
total 8
-rw------- 1 duquenne duquenne 408 juin 8 16:38 commandes_unix_manip_rép_fich
drwx------ 2 duquenne duquenne 4096 juin 10 20:53 repaeff
Par défaut un fichier n'est pas un exécutable. Pour rendre exécutable par tout le monde le script que vous venez d'écrire, faites simplement :
utilisateur ~ $ chmod +x script
La notation numérique permet via le passage à un codage binaire de représenter un bloc de permissions, sous forme d’un triplet de chiffres compris entre 0 et 7.
Exemple : le bloc rwx r - - r- - sera codé en binaire 111 100 100 et lui-même par 7 4 4
Chaque lettre du bloc est codée par 1 et chaque - par 0, puis chaque triplet binaire est converti en base 10.
Exemple de rétablissement de tous les droits :
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ chmod 777 commandes_unix_manip_rép_fich
duquenne@duquenne-RR472AA-ABF-SR2102FR:~/Documents/NSI/archi_SE$ ls -l
total 4
-rwxrwxrwx 1 duquenne duquenne 408 juin 8 16:38 commandes_unix_manip_rép_fich
Exercice : compléter ces tableaux de correspondance
1)
Accès |
--- |
--x |
-w- |
|
|
|
|
|
binaire |
|
|
|
011 |
100 |
101 |
|
|
décimal |
|
|
|
|
|
|
6 |
7 |
2)
Notation symbolique des droits |
Notation numérique |
signification |
rwxrwxrwx |
|
|
|
755 |
|
rwx--- --- |
|
|
rw-rw-rw |
|
|
|
644 |
|
|
|
lecture et écriture réservées au propriétaire. |
|
|
Aucun accès à qui que ce soit |
3) Ecrire une commande permettant d' enlever les droits du fichier fich1 aux utilisateurs du groupe de façon symbolique.
4) Ecrire une commande permettant d'enlever l’accès au dossier doss1 aux autres utilisateurs de façon numérique.