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 :


Exemple : C:\Users\Duquenne\Documents\COURS 2019-2020\NSI



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

  1. 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.

  2. Ecrire dans fich1 le texte « Contenu du fichier 1 »

  3. Créer un graphe représentant cette arborescence de tous ces répertoires et fichiers.

  4. Indiquer le chemin absolu de fich1.

  5. Indiquer le chemin relatif de fich3, lorsque l’on se trouve dans sem2.

  6. 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 :

luc@première1:~/Documents$ ls -l

drwxr-xr-x 18 luc première1 4096 juin 7 19:10 Jeux


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 : répertoire

  • - : fichier

  • r : droit de le lire le fichier ou d’examiner le répertoire

  • w : droit d’écrire dans le fichier ou d’ajouter un répertoire dans un répertoire

  • x : droit d’exécuter le fichier ou d’accéder à un répertoire

d

rwx

r-x

r- -

-

rw-

r - -

r - -


Les commandes de base à connaître.


2) Modifier les droits d'accès

La gestion des droits se fait à l’aide de la commande chmod

a) Notation symbolique

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

u (propriétaire)

g (utilisateurs appartenant au groupe)

o (autres)

a (tout le monde)


+ (ajoute le droit)

- (enlève le droit)

= (définit le droit)


r (lecture)

w (écriture)

x (exécution


Exemples:

Protéger un fichier

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


Rétablir des droits normaux (lecture) pour un fichier

utilisateur ~ $ chmod og+r monfichier

Rétablir des droits normaux (lecture et exécution) pour un répertoire

utilisateur ~ $ chmod go+rx monrepertoire

Protéger un répertoire

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

Rendre un script exécutable

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

b) Notation numérique

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.