[logoP5] [logoCDC]





Des questions, des incertitudes. Voici des éléments de réponse pour :


4.Gestion de fichiers

Article écrit par : Thierry Raedersdorff

4.Gestion de fichiers

...Suite du cours Gestion des Fichiers Nautilus...


******************************************************

4.Gestion de fichiers
  • 1.Droits d’accès
    • a) Catégories d’utilisateurs (ugo)

Tout utilisateur d’un système unix est identifié par deux critères :

      • un identificateur numérique unique qu’on appelle son UID

      • le groupe par défaut auquel il appartient défini par son GID (un utilisateur peut appartenir à plusieurs groupes)

Pour évaluer les droits d’accès à un fichier on distingue trois catégories d’utilisateurs : le propriétaire du fichier

      • Propriétaire (Utilisateur) User

      • Membres du groupe du propriétaire Group

      • Autres Other
    • b) les différents droits d’accès

Chaque catégorie d’utilisateurs dispose de droits spécifiques.

      • Lecture (r)

Droit de visualiser le contenu d’un fichier ce qui correspond dans le cas d’un répertoire au droit de visualiser la liste des fichiers présents dans ce répertoire.

      • Écriture (w)

Droit de modifier le contenu d’un fichier ce qui correspond dans le cas d’un répertoire au droit d’ajouter ou de supprimer des fichiers dans ce répertoire.

      • Exécution d’un fichier (x)

Droit d’exécuter un fichier qui correspond à un programme ou à un script. Dans le cas d’un répertoire ce droit correspond à un droit d’accès au répertoire.

Tout accès à un fichier est analysé en prenant en compte le nom complet du fichier, c’est-à-dire le nom du fichier et le chemin d’accès au fichier depuis la racine de l’arborescence. Pour accéder à un fichier il faut disposer d’un droit d’accès à la totalité des répertoires présents sur le chemin.

    • c) Droits d’accès générés par défaut à la création

      Fichier ordinaire Répertoire
      Valeur système d’origine 666 777
      umask 022 022
      Droit par défaut 644 755
      Notation symbolique rw- r-- r-- rwx r-x r-x

Il s’agit ici d’une notation binaire :

r = 4 : 100 w=2 : 010 x=1 : 001

La valeur de l’umask correspond aux droits qui sont retirés par défaut lors de la création d’un fichier ou d’un répertoire.

Exemple :

umask 022

droits retirés w pour le groupe et les autres valeur binaire : 000 010 010

droits accordés négation de la valeur binaire précédente : 111 101 101

droits système pour un fichier ordinaire valeur binaire : 110 110 110

calcul des droits à la création par un ET : 110 100 100

    • d) Commandes associées

      • - umask

Syntaxe : umask [« valeur de l’umask »]

Définit la valeur de l’umask

Ex : umask 027 Par défaut on désire enlever le droit d’écriture aux membres du groupe et l’ensemble des droits aux autres utilisateurs.

Affiche la valeur de l’umask

Ex : umask

      • - chmod

Syntaxe : chmod [-R] « droits en notation numérique » Fichier(s) chmod [-R] [ugo][+-=][rwx] Fichier(s)

-R Exécution récursive

Définit les droits d’accès d’un fichier

Ex : chmod 700 /users/lpro/2001/dupl/prive :

notation numériquequi accorde les droits rwx au propriétaire et aucun droit aux membres du groupe et aux autres utilisateurs pour ce répertoire.

chmod -R go-r /users/mi3/lpro/dupl/prive :

notation symbolique qui enlève récursivement le droit de lecture aux membres du groupe et aux autres utilisateurs à partir de ce répertoire.

      • - pwd

Syntaxe : pwd

Affiche le nom du répertoire de travail

      • - cd

Syntaxe : cd [« Répertoire à atteindre »]

Permet d’accéder à un répertoire de travail

Ex : cd Accès au répertoire d’origine de l’utilisateur cd dupl/prive Accès au répertoire prive de l’utilisateur dupl cd /users/mi3/lpro/dupl/prive Accès au répertoire prive de l’utilisateur dupl cd ../public Accès au répertoire public présent au même niveau que le répertoire de travail

      • - mkdir

Syntaxe : mkdir [-p] « Répertoire(s) à créer »

-p Création préalable des répertoires parents nécessaires

Permet la création d’un répertoire

Ex : mkdir public Création du répertoire public dans le répertoire de travail mkdir -p perso/projet Création du répertoire projet dans le répertoire perso du répertoire de travail : si le répertoire perso n’existe pas, il est préalablement créé.

      • - rmdir

Syntaxe : rmdir [-p] « Répertoire(s) à supprimer »

-p Si le répertoire père est vide il est également supprimé.

Permet la suppression d’un répertoire

Ex : rmdir public Le répertoire ne peut être supprimé que s’il est vide.

      • - ls

Syntaxe : ls [-aldbtucrR] [« Fichier(s) »] .

-a Visualise les fichiers qui commence par un point

-l Visualise les informationsau format long (droits propriétaire taille date ...)

-d Visualise le nom du répertoire et nom son contenu

-b Visualise les caractères « non affichables »

-t Visualisation triée en fonction de la date de dernière modification

-u Visualisation triée en fonction de la date de dernier accés

-c Visualisation triée en fonction de la date de dernier changement de statut

-r Inverse l’ordre d’affichage

-R Affichage récursif

Permet de visualiser le contenu d’un répertoire

Ex : ls -l Visualise au format long la liste des fichiers présents dans le répertoire de travail ls -ltr prive Visualise au format long la liste des fichiers présents dans le répertoire prive du plus ancien au plus récent.

      • - cp

Syntaxe : cp [options] « fichier source » « fichier cible » cp [options] « fichier(s) source » « répertoirecible »

Options POSIX : [-fipRr]

Options GNU (forme courte) : [-abdfilprsuvxPR]

DESCRIPTION

cp sert à copier des fichiers (et eventuellement des répertoires).

On peut aussi bien copier un fichier donné vers une destination précise que copier un ensemble de fichiers dans un réper­ toire.

Si le dernier argument correspond à un nom de répertoire, cp copie dans ce répertoire chaque fichier indiqué en conservant le même nom.

Sinon, s’il n’y a que deux fichiers indiqués, il copie le premier sur le second.

Une erreur se produit si le dernier argument n’est pas un répertoire, et si plus de deux fichiers sont indiqués. Par défaut, on n’effectue pas la copie de répertoires.

Ainsi `cp -r /a /b’ copiera /a dans /b/a et /a/x dans /b/a/x au cas où /b existe déjà, mais il copiera /a sur /b et /a/x dans /b/x si /b n’existait pas encore.

Les autorisations d’accès des fichiers et des répertoires créés seront les mêmes que celles des fichiers d’origine masquées avec un ET binaire avec 0777, et modifiées par le umask de l’utilisateur (sauf si l’on invoque l’option -p).

Lorsque la copie se fait sur un fichier existant ce dernier est préalablement détruit si les droits le permettent.

        • OPTIONS POSIX

Posix défini quatre options et demi :

-f Effacer les fichiers cibles existants (si je suis propriétaire des cibles ou si j’en ai le droit).

-i Interroger l’utilisateur avant d’écraser des fichiers réguliers existants. La question est affichée sur stderr, et la réponse lue depuis stdin.

-p Conserver le propriétaire, le groupe, les permissions d’accès et les horodatages du fichier original. L’horodatage sera quand même légèrement différent entre l’original et la copie car l’opération de copie nécessite un accès en lecture au fichier source.

-R Copier récursivement les répertoires.

        • OPTIONS GNU

-a, --archive

Préserver autant que possible la structure et les attributs du fichier original lors de la copie récursive. Cette option est équivalente à -dpR.

-b --backup

Effectuer une copie de sauvegarde des fichiers écrasés ou supprimés.

-d.....Copier les liens symboliques en tant que tels plutôt que de --no-dereference.....copier les fichiers vers lesquels ils pointent. Préserver également les liens matériels entre les fichiers sources durant la copie.

-f, --force

-i, --interactive

-l, --link

-P, --parents

Effacer les fichiers cibles existants.

Interroger l’utilisateur avant d’écraser des fichiers réguliers existants.

Effectuer des liens matériels plutôt que des copies des fichiers réguliers.

Construire le nom de chaque fichier destination en ajoutant au répertoire cible un slash et le nom du fichier source indiqué. Le dernier argument de cp doit être un répertoire existant. Par exemple, la commande `cp --parents a/b/c rep_existant’ copie le fichier a/b/c en rep_existant/a/b/c, tout en créant les sous-répertoires intermédiaires manquants.

-p, --preserve

Conserver le propriétaire, le groupe, les permissions d’accès et les horodatages du fichier original.

-u, --update

Ne pas effectuer la copie si le fichier destination existant (autre qu’un répertoire) a une date de modification égale ou plus récente que celle du fichier source.

        • OPTIONS DE SAUVEGARDE GNU

Les versions GNU des programmes comme cp, mv, ln, créeront au besoin une copie de sauvegarde des fichiers à écraser, à modifier ou à détruire. On demande une copie de sauvegarde à l’aide de l’option -b ou --backup. Les fichiers sauvegardés ont par défaut le suffixe . On pourra préciser la méthode de sauvegarde en fournissant l’option :

--backup=méthode

La METHODE indiquée peut être `numbered’ (`t’), `existing’ (`nil’), ou `never’ (`simple’). Si cette option n’est pas indiquée, la valeur de la variable d’environnement VERSION_CONTROL est utilisée, et si la variable n’existe pas, la valeur par défaut est `existing’.

t, numbered Toujours faire une sauvegarde numérotée.

nil, existing Faire une sauvegarde numérotée des fichiers en ayant déjà une précédente, et une sauvegarde simple pour les autres.

never, simple Faire toujours une sauvegarde simple (en ajoutant le suffixe ).

Ex : cp perso/projet/main.c /tmp

Copie le fichier perso/projet/main.c du répertoire de travail dans le répertoire tmp présent sous la racine.

cp -au perso/projet perso/projet.backup

Copie récursivement tous fichiers du répertoire perso/projet dans le répertoire perso/projet.backup si la source est plus récente que la cible.

cp --backup=t -a perso/projet perso/projet.versions

Copie récursivement tous fichiers du répertoire perso/projet dans le répertoire perso/projet.versions en incrémentant le numéro de version des fichiers cible.

      • - mv

Syntaxe : mv [-fiub] source destination mv [-fiub] source répertoire

Les options ont le même sens que pour la commande cp

Permet de déplacer ou renommer un fichier Ex : mv f1 public Déplace le fichier f1 dans le répertoire public mv f1 public/f2 Déplace le fichier f1 dans le répertoire public sous le nom f2 mv f1 f2 Renomme le fichier f1 en fichier f2

      • - ln

Syntaxe : ln [-fibs] source destination

Les options fib ont le même sens que pour la commande cp

-s Exécute un lien symbolique au lieu d’un lien matériel

Permet de réaliser un lien entre le fichier source et le fichier cible.

Si la source et la cible appartiennent au même système de fichiers la commande définit une cible qui pointe sur le même objet physique. Un fichier présent dans un répertoire est référencé par son nom et le numéro de son descripteur (inode ou inoeud). Ce descripteur contient toutes les informations qui décrivent le fichier : propriètaire,groupe,droits d’accès,taille,dates,nombre de liens, emplacement physiquedes données du fichiers... Le lien se contente d’ajouter une nouvelle entrée dans l’arborescence qui pointe sur le même descripteur. Si la source et la cible n’appartiennent pas au même système de fichiers on ne peut réaliser qu’un lien symbolique, dans ce cas l’entrée qui est ajoutée dans l’arborescence est de la forme nom du fichier cible -> nom absolu de la source

Ex : ln f1 public Exécute un lien entre le fichier f1 et le fichier public/f1 ln f1 public/f2 Exécute un lien entre le fichier f1 et le fichier public/f2 ln f1 f2 Exécute un lien entre le fichier f1 et le fichier f2 ln -s dupl/f1 public/f3 Exécute un lien symbolique le fichier public/f3 pointe sur le fichier /users/lpro/2001/dupl/f1

      • - rm

Syntaxe : rm [-fir] « Fichier(s) »

Les options fi ont le même sens que pour la commande cp -r Suppression récursive

Permet de supprimer un fichier

Ex : rm public/f2 Supprime le fichier f2 du répertoire public

rm -r public Supprime récursivement le répertoire public et son contenu

      • - touch

Syntaxe : touch [-acm][-r référence |-tdate] « Fichier(s) »

-a Modifier l’heure du dernier accès au fichier

-c Ne pas créer les fichiers n’existant pas.

-m Changer l’heure de dernière modification du fichier

-r fichier_référence Utiliser les horodatages du fichier_référence à la place de l’heure actuelle.

-t date Utiliser la date indiquée à la place de la date actuelle. L’argument est un nombre décimal de la forme [[SS]AA]MMJJhhmm[.ss] (Mois, Jour, Heure, Minute, éventuellement Siècle et Année, éventuellement seconde)

Exemple :

      • - find

Syntaxe : find « Répertoire Source » « critère(s) de recherche » « action »

critères de recherche :

-  -name selon le nom (en cas d’utilisation de caractères génériques* ou ? fournir l’argument entre guillemets. Ex : -name p1.c -name "*.c" )

-  -type selon le type

d répertoire

f fichier régulier (ordinaire)

l lien symbolique

-  -perm selon les permissions

-mode au moins toutes les permissions indiquées dans mode

+mode au moins une permission indiquée dans le mode

Exemple :

-022 tous fichiers accessibles en écriture aux membres du groupe et aux autres

+022 tous fichiers accessibles en écriture aux membres du groupe ou aux autres

-  -newer « file » plus récent que le fichier fourni en argument.

critères multiples :

-a ET

-o OU

 ! Négation

Exemple :

find . -type d -a ! perm +200 -print

Afficher tous les répertoires qui n’ont pas le droit d’écriture pour le propriétaire à partir du répertoire de travail.

actions :

-  -print affichage du nom du fichier

-  -exec exécution de la commande associée

Exemple :

find . -type d -a ! perm +200 -exec chmod u+w \ ;

Accorder le droit d’écriture au propiétaire pour tous les répertoires qui n’ont pas le droit d’écriture pour le propriétaire à partir du répertoire de travail.

Exercice

-  Afficher la liste des fichiers ordinaires créés ou modifiés depuis hier dans ma home directory

-  S’assurer que dans la sous arborescence à partir de public_html tous les fichiers ordinaires sont accessible en lecture pour l’utilisateur nobody

      • - grep

Syntaxe : grep [-vr] « occurrence » « fichier(s) »

Affichage des lignes qui contiennent l’occurence dans le ou les fichiers fournis en argument. -v Affichage des lignes qui ne contiennent pas l’occurence dans le ou les fichiers fournis en argument.

-r recherche récursive de l’occurence.


  • Exercices :

1. Avec l’application gedit, créez un fichier texte nommé test1 doté des droits suivants dans votre répertoire personnel :

rw- r-- --- test1

u g o

Créez un fichier texte nommé test2 doté des droits suivants dans votre répertoire public :

rw- --- --- test2

u g o

Si l’utilisateur, qui veut accéder au fichier test1, en est le propriétaire, il dispose du droit de lecture r qui lui permet de visualiser le fichier, et du droit d’écriture w qui lui permet d’en modifier le contenu.

Si l’utilisateur, qui veut accéder au fichier test1, est membre du groupe du propriétaire, il dispose du droit de lecture.

Si l’utilisateur, qui veut accéder au fichier test1, n’appartient pas aux deux premières catégories, il n’a aucun droit d’accès au fichier.

2. Définissez les droits suivants :

Répertoire public rwx r-x r-x

Répertoire personnel rwx --- ---

Visualisez avec gedit le fichier test1 du répertoire personnel de votre voisin.

Visualisez avec gedit le fichier test2 du répertoire public de votre voisin.

=> Dans les deux cas il y a échec.

* Vous n’avez pas accès au répertoire personnel.

* Vous n’avez pas le droit de lire le fichier test2 du répertoire public.

Corrigez les droits pour permettre la visualisation du fichier test2 du répertoire public.

Un fichier est localisé dans une arborescence : pour accéder à un fichier il est nécessaire de disposer des droits de passage sur l’ensemble des répertoires présents dans le chemin d’accès.

3. Définissez les droits suivants :

Répertoire public rwx rwx - - -

Fichier public/test2 rw- --- ---

Copiez test2 en test3 dans votre répertoire public. Supprimez le fichier public/test2 du voisin.

Corrigez les droits de votre répertoire public (750).

Le droit d’écriture du fichier contrôle le droit de modification du fichier.

Le droit d’écriture du répertoire contrôle le droit d’ajouter ou de supprimer des fichiers dans le répertoire.

Copiez le fichier test3 du répertoire public de votre voisin vers votre répertoire personnel puis visualisez les droits et le propriétaire.

  • 2 Arborescence de base du système

    • 1./ racine de l’arborescence
    • 2./boot noyau du système
    • 3./etc fichiers de configuration du système
    • 4./usr applications de base du système
    • 5./lib librairies de base du système
    • 6./bin commandes de base du système (pour root)
    • 7 /sbin commandes de base du système (utilisateur standard)
    • 8./var fichiers de log, d’impression...
    • 9./tmp fichiers temporaires
    • 10./opt et /usr/local applications additionnelles
    • 11./home répertoires utilisateurs
    • 12./mnt point de montage des ressources complémentaires



...Suite du cours Gestion des Fichiers Nautilus...




Retour Haut de Page










Cours Linux :

Introduction à GNU Linux

1.Introduction à LINUX
2.Configuration multi-systèmes
3.Environnement graphique GNOME
4.Gestion de fichiers
5.Le gestionnaire de fichiers nautilus
6.Gestion de processus
7.Les applications réseaux
8.Le shell

Services réseau

1. Le démarrage des services réseau sous Gnu/Linux
2. Le service dhcp
3. DNS
4. Le service httpd et apache
5. Samba
6. Le service de messagerie
7. Les services cryptés



Autres Rubriques :

.Accueil
.Le Centre de Calcul
.Réseau de l’UFR
.Linux
.Windows

Liens dans l’UFR :

.Licence Professionnelle
.UFR de Mathématique et Informatique
.Connexions (SSH) et Messageries (IMP ou TWIG) sécurisées

Liens Internet :

.Linux France
.Da Linux French Page
.Léa-Linux(pour débutants)
.Distribution RedHat
.Distribution Mandrake














Site réalisé par Thierry LECHIEN avec SPIP logiciel libre sous licence GNU/GPL. Hébergement à Paris5