Systèmes d'exploitations GRARI Mounir ESTO Année 2011
2. Système de fichiers sur l'exemple de Unix (Unix File System) Fichier (an. file) – Ensemble de données (suite d'octets) identifiées par un nom, physiquement stockées sur un support de mémoire de masse permanent (disque dur, CD, DVD, flashaisdisk ...). Le système de fichiers est géré par le noyau. Les fichiers sont organisés en répertoires (répertoire – ang. directory) et sous-répertoires (subdirectory), formant une structure arborescente ou les répertoires sont les branches et les fichiers – les feuilles. Le répertoire qui est à l'origine de cette arborescence est appelé répertoire racine (root directory). Il est désigné par un nom standardisé : /
2. Système de fichiers sur l'exemple de Unix (Unix File System) Un certain nombre de caractéristiques sont associées à un fichier : la date de sa création, celle de la dernière modification, le propriétaire, la taille, etc ... Ces caractéristiques sont regroupées dans un descripteur de fichier, appelé noeud d'index (inode ou indexnode).
2. Système de fichiers sur l'exemple de Unix (Unix File System)
2. Système de fichiers sur l'exemple de Unix (Unix File System) Autre nom pour répertoire - catalogue, dossier... Pour retrouver un fichier dans l'arbre : chemin d'accès (ang. path); exemple 2.1 : /home/mounir/Documents/cv.doc chemin d'accès nom de fichier (chemin d'accès + nom de fichier : nom de chemin, pathname) Chemin absolu – si il commence par le répertoire racine (/) ; Chemin relatif - si il commence par le répertoire courant ;
2. Système de fichiers sur l'exemple de Unix (Unix File System) Répertoire courant, ou répertoire de travail (working directory) – c'est le répertoire par défaut, dans lequel le système recherche un fichier si aucun chemin d'accès n'est spécifié. Après l'ouverture d'une session c'est en général le répertoire personnel (home directory). Il peut être changé par la commande cd (change directory). Pour afficher le répertoire de travail actuel – commande pwd (print working directory).
2. Système de fichiers sur l'exemple de Unix (Unix File System) a. le répertoire de travail est /home/mounir/Documents ; pour afficher à l'écran le fichier cv.doc il suffit de taper la commande cat cv.doc (au lieu de: cat /home/mounir/Documents/cv.doc ) b. le répertoire de travail est /home/mounir ; pour afficher le fichier cv.doc : cat Documents/cv.doc chemin relatif (Documents est un sous-répertoire du rép.de tr. mounir)
2. Système de fichiers sur l'exemple de Unix (Unix File System) Le répertoire courant peut être désigné par le nom : . Le répertoire parent du répertoire courant peut être désigné par le nom : .. Au moment de la création d'un nouveau répertoire "vide" (commande mkdir), ces deux entrées sont automatiquement ajoutées . exemple 2.3 : dans l'exemple 2.2a - . est équivalent à /home/mounir/Documents et .. à /home/mounir dans l'exemple 2.2b - . est équivalent à /home/mounir et .. à /home
2. Système de fichiers sur l'exemple de Unix : Commandes associées ls fichier ... [list] affiche le contenu des répertoires (à un niveau) et les noms des fichiers passés en argument, c'est_àdire fichier ..., ou s'il n'y a pas d'argument, tous les fichiers du répertoire courant sauf ceux commençant par un point. cat fichier ... [concatenate] affiche le contenu des fichiers fichier ... cp fichier1 fichier2 [copy] copie fichier1 dans fichier2 mv fichier1 fichier2 [move] renomme fichier1 en fichier2 rm fichier [remove] détruit le fichier fichier ; irréversible.
2. Système de fichiers sur l'exemple de Unix : Commandes associées La commande ls avec l'option l(long) affiche de nombreuses informations sur le fichier : # ls l
2. Système de fichiers sur l'exemple de Unix : Commandes associées Le type du fichier : - fichiers ordinaires/réguliers (regular files -) – toutes sortes de données (textes, multimédia, programmes exécutables et autres ; - répertoires (directories d) ; - liens symboliques (symbolic links l); - fichiers spéciaux (special files) – pour la gestion des périphériques ...(/dev/) mode bloc (b), mode caractère (c)
2. Système de fichiers sur l'exemple de Unix : Commandes associées Le nom de fichier : Limité à 14 (ou 255) caractères parmi le jeu ASCII. Le système n'impose aucun format. On évite les caractères invisibles et les métacaractères (*, ?, [ et ]). La taille du fichier : C'est son nombre d'octets. Elle sert à déterminer la fin du fichier. Il n'y a donc pas de marque de fin de fichier. Droits d'accès : Trois groupes d'autorisation, l'utilisateur propriétaire, les personnes appartenant au groupe propriétaire et les autres.
2. Système de fichiers sur l'exemple de Unix : Droits d'accès Pour chaque groupe 3 caractères indiquent les autorisations : r, w et x. r lecture : Autorisation de lire le contenu (cat, pg ...) ; ce droit est nécessaire pour faire une copie du fichier. ls permet de lister le contenu du fichier (attention pour ls -l il faut aussi le droit x). w écriture : Autorisation de modifier le contenu On peut écrire dans un fichier avec un éditeur ou une commande (cat). Il faut ce droit pour le fichier destination d'une copie, d'un déplacement ou d'un lien, si le fichier existe déjà. Pour un répertoire on peut créer et détruire des fichiers et des répertoires. Lors d'une destruction, seule cette permission prévaut. Elle permettra de détruire un fichier, même si on n'a aucun droit dessus. La destruction d'un fichier revient à modifier le répertoire, pas le fichier ! x exécution (répertoire) À la place de r, w ou x signifie nonautorisé.
2. Système de fichiers sur l'exemple de Unix : Répertoire Un répertoire ou catalogue (directory) est un fichier qui contient une liste de noms de fichiers, parmi lesquels on peut trouver des sousrépertoires, et ainsi de suite (arborescence logique).
2. Système de fichiers sur l'exemple de Unix : commandes associées mkdir répertoire [make directory] crée un répertoire. rmdir répertoire [remove directory] détruit le répertoire si il est vide et si ce n'est pas votre répertoire courant. cd répertoire [change directory] change de répertoire courant. Sans argument rapatrie dans le répertoire de connexion. pwd [print working directory] affiche le chemin absolu du répertoire courant. ls -F affiche les noms de fichiers suivis du caractère'/' s'il s'agit d'un répertoire, et du caractère '*' s'il s'agit d'un fichier ayant la permission d'exécution. ls -C affiche les noms de fichiers par colonnes.
2. Système de fichiers sur l'exemple de Unix : commandes associées cp fichier ... rép copie tous les fichiers fichier ... dans le répertoire rép. mv fichier ... rép déplace tous les fichiers fichier ... dans le répertoire rép. Note : Toutes les commandes UNIX qui manipulent les fichiers acceptent toutes les formes (absolu, relatif ...) de noms de fichier. Certains caractères spéciaux sont interprétés par le shell, et permettent de décrire les noms de fichiers. Ce sont des métacaractères (c'est à dire des caractères utilisés pour décrire d'autres caractères) :
2. Système de fichiers sur l'exemple de Unix : Caractères génériques Certains caractères spéciaux sont interprétés par le shell, et permettent de décrire les noms de fichiers. Ce sont des métacaractères (c'est à dire des caractères utilisés pour décrire d'autres caractères) : Le caractère '*' signifie n'importe quelle chaîne de caractères. . Le caractère '?' signifie n'importe quel caractère. . Les crochets '[]' signifient un caractère appartenant à un ensemble de valeurs décrites dans les crochets. . Le caractère ' -' utilisé avec les crochets permet de définir un intervalle, plutôt qu'un ensemble de valeurs. . Le caractère '!' utilisé entre crochets en première position, signifie tout caractère excepté ceux spécifiés entre crochets.
2. Système de fichiers sur l'exemple de Unix : Caractères génériques Un nom générique est un mot qui contient un ou plusieurs caractères spéciaux. Il permet de désigner un ensemble d'objets. exemple : fich*, *p[az]? Un nom générique est utile pour : 1.L'expansion de noms de fichiers lors de l'interpréteur de commande (shell). exemple : $ ls fich* 2.La génération de Chaîne de caractères lors de l'utilisation d'un éditeur ou d'une commande filtre. exemple : $ grep "^ligne$" fich
2. Système de fichiers sur l'exemple de Unix : Caractères génériques Exemples : f* Tous les fichiers dont le nom commence par 'f'. f? Tous les fichiers dont le nom commence par 'f', suivi d'un seul caractère quelconque. f[12xy] Tous les fichiers dont le nom commence par 'f', suivi d'un caractère à choisir parmi '1, '2', 'x' ou 'y'. f[az] Tous les fichiers dont le nom commence par 'f', suivi d'un caractère dont le code ASCII est compris entre le code 'a' et le code 'z', donc une lettre minuscule. *.c Tous les fichiers dont le nom se termine par '.c' ?.c Tous les fichiers dont le nom est formé d'un caractère quelconque, suivi de '.c'
2. Système de fichiers sur l'exemple de Unix : Caractères génériques Exemples : ?? Tous les fichiers dont le nom est formé de deux caractères. *.[AZaz] Tous les fichiers dont le nom se termine par un '.' suivi d'une seule lettre majuscule ou minuscule. *.[ch09] Tous les fichiers dont le nom se termine par un '.‘ suivi d'un seul caractère à choisir parmi 'c', 'h', ou un chiffre entre '0' et '9'. [!f]* Tous les fichiers dont le nom ne commence pas par 'f' *[!09] Tous les fichiers dont le nom ne se termine pas par un chiffre.
2. Système de fichiers sur l'exemple de Unix : commandes associées find répertoire critères_de_recherche actions find parcourt une arborescence en sélectionnant des fichiers selon des critères de recherche, et en exécutant des actions sur chaque fichier sélectionné. Exemple : $ find /usr/c1 -name agenda –print file fichier affiche le type du fichier (exécutable, répertoire, ASCII ...). En l'utilisant avant de visualiser le contenu d'un fichier cela évite d'afficher un contenu binaire.
2. Système de fichiers sur l'exemple de Unix : Droits d’accès Pour accéder aux ressources du système informatique fonctionnant sous le système Unix il faut disposer d'un compte, c'est a dire être un utilisateur (user) du système. Un utilisateur est reconnu par un nom unique (login) et un numéro unique (UID - User IDentifier). Ces donnés avec d'autres informations concernant le compte (mot de passe, répertoire personnel et autres) sont est stockées dans le fichier /etc/passwd (->/etc/shadow). Le super utilisateur (super user) du système : login: root, UID : 0 ; Un utilisateur UNIX appartient à un ou plusieurs groupes. Chaque groupe est identifiée par un nom unique et un numéro unique (GID – Group IDentifier). Chaque fichier (normal, répertoire …) appartient à un utilisateur et à un groupe . Cette appartenance peut être a tout moment modifiée par le super utilisateur (commandes chown –change owner et chgrp – change group).
2. Système de fichiers sur l'exemple de Unix : Droits d’accès A chaque fichier est associé un utilisateur propriétaire et un ensemble de droits d’accès. Les droits d’accès définissent les possibilités de lecture, écriture et exécution du fichier pour les utilisateurs. Lecture, écriture et exécution d’un fichier Les utilisateurs d’un fichier donné sont divisés en trois ensembles : 1. le propriétaire du fichier /répertoire (u – user) ; 2. le groupe propriétaire du fichier/répertoire (g - group); 3. les autres utilisateurs (o – others).
2. Système de fichiers sur l'exemple de Unix : LES PERMISSIONS Un utilisateur appartenant à l’un de ces ensembles à accès ou non au fichier en suivant trois catégories de droits : a. droit de lecture (read) - r : lecture du fichier, du contenu du répertoire ...; b. droit d'écriture (write) - w : modification, suppression du fichier, pour un répertoire, il autorise la modification et la suppression des fichiers qu'il contient, quelques soient les droits d'accès des fichiers de ce répertoire; c. droit d'exécution (execute) - x : valable pour un fichier exécutable, pour un répertoire il autorise l'accès à ce répertoire (cd <ce répertoire>). lecture (r), en écriture (w) ou en exécution (x). Ces droits (ou permissions) d’accès ne peuvent être changés que par le propriétaire du fichier, grâce à la commande chmod
2. Système de fichiers sur l'exemple de Unix : commandes associées -rwx r-x --x 1 mounir admin 43 déc. 22 09:16 pingv u g o propriétaire (mounir) – permission de lire, écrire et exécuter pingv ; les membres du groupe admin - permission de lire et exécuter pingv ; tous les autres utilisateurs - permission d'exécuter pingv. Les permissions peuvent être modifiées par le propriétaire et par root en utilisant la commande chmod : chmod <mode> <fichier>
2. Système de fichiers sur l'exemple de Unix : commandes associées mode : en utilisant les lettres u g o a (all) et r w x et les caractères + - = ; en représentant mode en binaire (0-pas de droit, 1-droit accordé) ; - plus simple ! exemple 2.5 : chmod 755 pingv ; on ajoute le droit de lire aux autres de l'exemple 2.4 ugo