• Aucun résultat trouvé

LISTE DE CONTRÔLE D'ACCÈS

Dans le document Td corrigé UNIX - Free pdf (Page 81-86)

3. SYSTEME DE GESTION DE FICHIERS

3.11 LISTE DE CONTRÔLE D'ACCÈS

Sur les implémentations d'UNIX actuelles, il devient en outre possible de définir des listes de contrôle d'accès (LCA) ou ACL (Access Control List).

La norme POSIX P1006.3 définit les LCA comme un moyen formel d'exprimer des opérations sur des objets, selon l'identité de l'entité émettrice de la requête.

Une LCA est une entrée dans un fichier de la forme : :type:principal:permissions

Le champ type spécifie l'interprétation du champ principal, par exemple le propriétaire du fichier, un autre utilisateur (local ou distant), un groupe (local ou distant).

Le champ principal est le nom de l'entité à qui appliquer les droits.

Le champ permission est l'ensemble des drapeaux suivants : les droits classiques RWX

les drapeaux CID, avec les interprétations C habilité à modifier les ACL,

I droits d'insertion de fichiers dans un répertoire, D droits de destruction de fichier dans un répertoire.

Exemple 1 root:/etc:RWXCID

Exemple 2 : ACL sur AIX

Sur AIX, la sémantique suivante est utilisée : les ACL comportent les informations suivantes :

 attributs

 permissions de base

 permissions étendues.

Attributs

Les attributs indiquent les attributs spéciaux du fichier ou du répertoire (bit s, S, t).

Permissions de base

Les permissions de base décrivent les attributs traditionnels définis par les commandes chmod, chown, etc.

Permissions étendues

Les permissions étendues sont décrites sous la forme d'ACE (Access Control Entry), qui, pour chaque instance décrite, suit le format :

opération type_d'accès [[info_utilisateur] [info_groupe]

Opérations

Trois types d'opérations sont supportés :

 deny interdit le type d'accès spécifié

 permit autorise le type d'accès spécifié

 specifydéfinition du type d'accès.

Types d'accès

 L'utilisateur ou le groupe auquel s'appliquent les droits décrits est précédé du suffixe u: ou g:.

 Une entrée est crée pour chaque utilisateur ou groupe.

 Il est possible de combiner plusieurs utilisateurs ou groupes dans une seule entrée.

Exemple attributes

base permissions

owner(philipp): rwx group(root): r-x

other:

r--extended permissions:

enabled

deny rwx g:staff

permit rwx u:root, g:staff permit r-x g:sysadm

Commandes associées

 aclget affichage d'une ACL,

 aclput définition d'une ACL,

 acleditmodification d'une ACL.

3.12 EXERCICES

3.12.1 Commandes de base du SGF

1°) Rappeler le rôle des commandes pwd, cd, mkdir, cp, ls, mv.

2°) Créer le répertoire tempo dans votre répertoire de travail, puis s’y déplacer. Y copier en une seule commande, le fichier /etc/hosts dont on affichera ensuite la taille et le contenu.

3°) Supprimer le répertoire tempo à partir de la commande rmdir.

4°) Réexécuter le 2° puis déplacer la copie du fichier /etc/hosts dans le répertoire père. Supprimer, en une seule commande différente de la précédente le répertoire tempo.

5°) Déplacez vous dans l’arborescence d’UNIX pour étudier les répertoires /, /etc, /usr, /home et essayer d’y détruire des fichiers au hasard (vous n'êtes pas root!!).

6°) Y a-t-il une différence entre les commandes:

rm *.o et rm * .o

3.12.2 Commandes d’affichage

1°) Rappeler les fonctions des commandes clear, tail, head, more, man.

2°) Afficher les 10 premières lignes du fichier /etc/profile ou du fichier /etc/termcap. 3°) Afficher les 10 dernières lignes du fichier /etc/profile ou du fichier /etc/termcap.

4°) A partir des commandes ls, more ou de la commande pg, afficher de façon lisible le contenu détaillé du répertoire /dev.

3.12.3 Tube

A partir des commandes who et wc, calculer le nombre d'utilisateurs connectés.

who | wc -l

3.12.4 Liens et redirection

1°) A partir de l’opérateur de redirection et de la commande ls, créer un fichier liste contenant la liste de tous les fichiers du répertoire courant.

2°) A partir de la commande ln, créer un lien matériel sur le fichier liste appelé liste2.

3°) Avec l’éditeur de votre choix, modifier le fichier liste2 et constater que cette modification est visible dans le fichier liste.

4°) A partir de la commande ls -l, constater l’existence de deux liens matériels.

5°) Supprimer le fichier liste et constater que le contenu du fichier liste2 est toujours accessible.

6°) A partir de la commande ln, créer un lien symbolique sur le fichier liste2 appelé liste3.

7°) Avec l’éditeur de votre choix, modifier le fichier liste2 et constater que cette modification est visible dans le fichier liste3.

8°) A partir de la commande ls -l, constater l’existence du lien symbolique.

9°) Supprimer le fichier liste2 et constater que le fichier liste3 existe toujours mais que son contenu n’est plus accessible.

10°) Recréer un nouveau fichier liste2 et constater qu’il est à nouveau accessible par liste3.

3.12.5 Commandes find, grep et sort

1°) Rechercher dans le répertoire /dev, tous les fichiers qui ne sont ni de type bloc ni de type caractère.

find /dev ! -type b ! -type c -print

2°) Rechercher dans le répertoire /usr/adm les fichiers non modifiés depuis 24 H.

find /usr/adm -mtime +l -print

3°) Rechercher dans le répertoire /etc, les fichiers ayant une taille comprise entre 10000 et 20000 octets et afficher leurs attributs.

find /etc -size +10000c -size -20000c -exec ls -l {} \;

4°) Rechercher dans tous les fichiers du répertoire courant ceux qui contiennent la lettre a, puis ceux qui contiennent la lettre a en premier caractère d’une ligne.

grep a * grep "^a" *

5°) Rechercher, quand c’est possible, dans le fichier /etc/passwd ou dans le fichier /etc/shadow les utilisateurs sans mot de passe

grep "^[:]*::" /etc/passwd

6°) Afficher à l’écran le fichier /etc/passwd trié selon l’ordre lexicographique inverse.

sort -r /etc/passwd

7°) Afficher à l’écran le fichier /etc/passwd trié selon le champ GID.

sort -t: +3n -4 /etc/passwd

8°) Afficher à l’écran le fichier /etc/passwd trié selon le champ GID et en cas d’égalité sur le numéro décroissant du champ UID.

sort -t: +3n -4 +2nr -3 /etc/passwd

3.12.6 Attributs de sécurité

1°) Déplacez vous dans l’arborescence d’UNIX pour étudier les répertoires /, /etc, /usr, /home et essayer d’y détruire des fichiers au hasard (vous n'êtes pas root!!).

2°) Rappeler les fonctions des commandes chmod, chgrp, umask, basename, file, du, size, od.

3°) Utiliser la commande umask pour définir le masque de création de fichiers 777.

 Créer un fichier liste à partir de la commande ls -l > liste Quels sont ses droits ?

 Créer un répertoire tempo et constater ses droits. Conclusion.

4°) Refaire la question précédente avec le masque 000. Conclusion.

5°) Aller chez votre voisin et essayer de lui détruire un de ses fichiers ou répertoires. Conclusion ? 6°) Que pensez vous du masque 022 ?

7°) Afficher un dump du fichier .profile.

8°) Quels sont les droits du répertoire /tmp. Essayer d'y détruire un fichier au hasard. Conclusion ?

9°) Supprimer le bit t sur le répertoire /tmp (ou le positionner s'il est absent) et refaire la question précédente. Conclusion.

Dans le document Td corrigé UNIX - Free pdf (Page 81-86)