M22 M24/TD4

  • Search
  • Home
  • All
  • Files
  • New
  • Upload
  • Rename
  • Edit
  • History
  • Latest Changes

TD #4 : Droits POSIX

  1. Créer un répertoire test, y créer un fichier temp.
  2. Vérifier les droits sur le répertoire et son contenu. Quelles commandes avez-vous utilisées ?
  3. Supprimer les droits de lecture sur le répertoire (chmod). Lister son contenu. Constater puis justifier.
  4. Rétablir les droits initiaux. Supprimer les droits en écriture sur le fichier temp. Supprimer ce fichier. Constater puis justifier.
  5. Rétablir les droits initiaux. Recréer le fichier temp. Supprimer les droits en écriture sur le répertoire test. Supprimer le fichier temp. Constater puis justifier.
  6. Rétablir les droits initiaux. Supprimer les droits d’exécution sur le répertoire test. Lister son contenu. Constater puis justifier.

Contenu associé : les autorisations sous Unix

Sur un système Linux, tout utilisateur (réel ou processus) est identifié par un numéro unique, appelé UID (User IDentifier). Il est également associé à un groupe principal, identifié par un numéro unique nommé GID, et éventuellement à d’autres groupes. L’utilisateur ayant l’UID 0 est « spécial » car le système ne vérifie jamais ses droits d’accès.

Chaque fichier :

  • est la propriété d’un utilisateur et d’un groupe,
  • et présente des permissions en lecture (r), écriture (w) et exécution (x).

NB : un répertoire est un fichier, donc associé à un inode, et le contenu — en terme de données stockées — est un tableau associant le nom des fichiers stockés dans le répertoire et leur numéro d’inode. Le droit en lecture permet de lire le nom des fichiers, celui en exécution de lire le numéro d’inode associé.

Ces permissions sont le fondement de la sécurité du système. Elles sont représentées par une suite de 9 bits rwxrwxrwx représentant les droits droits énoncés ci-dessus pour l’utilisateur propriétaire, le groupe propriétaire et le reste de utilisateurs du système.

Chaque groupe de 3 bits rwx peut aussi être représenté par sa valeur octale entre 0 et 7. Ainsi la chaĩne 640 signifie :

  • accès en lecture et écriture pour le propriétaire,
  • accès en lecture pour le groupe propriétaire,
  • aucun accès pour les autres utilisateurs.

Seul le propriétaire du fichier est autorisé à modifier les permissions associées, avec la commande chmod. Ce contrôle d’accès est dit discrétionnaire (DAC : discretionary access control) car laissé au choix de l’utilisateur.

Le principal argument de la commande chmod est l’ensemble de permissions à affecter au fichier. Cet ensemble peut être spécifié avec la notation octale complète (ex : chmod 755 …) ou en utilisant une notation relative (ex : chmod u+w,g-w,o-rx …) dans laquelle :

  • u représente l’utilisateur propriétaire, g le groupe propriétaire et o le reste des utilisateurs,
  • - signifie la suppression du droit, = son maintien et + l’ajout,
  • r, w et x sont les droits eux-même.

Personne n’est autorisé à changer l’utilisateur ou le groupe propriétaire d’un fichier. Cependant les commandes chown et chgrp existent !

Trois bits supplémentaires, set UID, set GID et le sticky bit permettent la mise en place de comportements supplémentaires.

  1. Le bit suid concerne les fichiers exécutables. Lorsqu’il est actif,l’exécution s’effectue avec l’identité de l’utilisateur propriétaire et non celle de l’utilisateur l’ayant lancé.
  2. Le bit sgid présente des propriétés analogues au niveau groupe en ce qui concerne les fichiers exécutables. Lorsqu’il est activé sur un répertoire, tout fichier créé dans le répertoire sera propriété du même groupe que celui du répertoire plutôt que propriété du groupe principal de l’utilisateur ayant créé le fichier.
  3. Le sticky bit appliqué à un exécutable force sa persistance en mémoire après exécution. Appliqué à un répertoire, il interdit la suppression des fichiers des répertoires aux utilisateurs autres que le propriétaire du fichier (ce qui est possible en l’absence du sticky bit, avec une autorisation w sur le répertoire).

Last edited by Olm, 2017-10-20 15:03:09

Delete this Page