TP permissions d'accès aux fichiers avec la correction

Exercice 1

  1. Quels sont les droits sur les répertoires personnels (par exemple stagex) ?
  2. Un utilisateur différent stagey peut-il y pénétrer ou seulement lister ses fichiers ? et totox, le pourrait-il s'il faisait partie du groupe de stagex ?
  3. Quelles commandes devrait écrire stagex pour accorder le droit de visite de son rép. perso seulement à totox ?

Exercice 2

  1. Comparer les permissions de /etc/passwd et /etc/shadow.
    Pourquoi a t-on nommé ainsi ce dernier fichier ? stagex peut-il le lire ? et voir sa présence ?
    L'examiner pour deviner son rôle.
  2. Par précaution, en faire une copie sous le nom shadow.bak dans /home/temp ! vérifier les droits de /home/temp/shadow.bak
  3. Pensez-vous tout de même pouvoir supprimer le fichier précédent ? Concluez !
  4. root fait maintenant une copie de shadow chez vous, dans /home/stagex, sous le nom shadow.bak et vous accorde la propriété de la copie.
    a) Comment fait-il ?
    b) stagex vérifie le résultat
  5. Vous éditez ce fichier avec Midnight Commander, vous le modifiez, par exemple en supprimant des lignes, et vous faites une mise à jour.
    Ecrivez le mode opératoire.
    La mise à jour sera t-elle réalisée ? pourquoi ?
  6. Pensez vous que stagex puisse supprimer ce fichier ?
    Essayez et expliquez !

Exercice 3

  1. En tant que stagex, pouvez vous créer le rép. temporaire /home/temp ? essayez ! pourquoi ?
  2. Effectuez cette création comme root (pensez à la commande su ).
  3. Accorder les permissions maximales sur /home/temp; vérifiez.
  4. totox, toujours lui, tout content d'avoir enfin un droit d'écriture, dans /home/temp essaie de copier les 2 fichiers système /etc/hosts et /etc/passwd dans /home/temp ?
    y parviendra t-il ? pourquoi ? que donne [totox@p0x ] ll /home/temp ?
  5. totox, essaie maintenant de supprimer ces 2 fichiers de /etc.
    Réussit-il ?
  6. Effrayé à l'idée de se faire pincer par le (ou la) redoutable root, totox veut masquer sa faute tout en faisant punir stagex à sa place !
    Pour cela, il veut que stagex devienne propriétaire du fichier copié passwd.
    Comment s'y prend t-il ? Réussit-il ?
    Et vous comment auriez vous fait ?

Exercice 4

Il s'agit de créer un rép. partagé par tous les membres stagex du groupe stagiaire
Normalement, ce groupe a
déjà été créé et rempli de comptes stagex.
  1. Créez dans /home un répertoire appelé rep-stagiaire. Rappelez pourquoi cette tâche relève des prérogatives de root
  2. Faites-le appartenir au groupe stagiaire
  3. Modifier les permissions sur le rép, pour que tous les membres du groupe stagiaire puissent y écrire et s'y déplacer.
  4. En tant que stagex, vous créez un fichier, par exemple un petit fichier texte (à l'aide de vi ou d'un éditeur graphique comme kedit) et vous le déposez dans /home/rep-stagiaire.
    Si vous êtes paresseux, vous y faites une copie d'un fichier qcq, par exemple /etc/hosts, mais en attribuant des droits 660
    [stagex@p0x etc] cp hosts /home/rep-stagiaire
    [stagex@p0x etc] chmod 660 hosts

  1. Vérifier le bon accès en lecture seulement pour les membres du groupe
    Ainsi totox qui a fini par être exclu du groupe stagiaire (surtout après l'exercice 3) ne doit pas pouvoir le lire. A vérifier.
  2. Votre collègue (ou votre double !) le perfide stagey (y#x), tente de supprimer ce fichier ou de le renommer
    Y parvient-il ? Essayez !
    Pourtant, vérifiez que ce fichier appartient au groupe stagex
    N'est-ce pas inquiétant ? Expliquez comment cela est possible.
  3. Demandez à root de positionner le "sticky bit" sur le répertoire partagé.
    Vérifiez bien que le problème est réglé et protège le propriétaire des tentatives de suppression ou de changement de nom de ses fichiers.
    Prolongement : vérifier que cette protection s'applique aussi à distance sous Samba
La correction

Exo 1

  1. drwx------ stagex stagex /home/stagex
  2. même si totox fait partie du groupe stagex, le répertoire n'accorde pas de permissions x de parcours, ni même r de lecture.
  3. Pour que totox puisse accéder en lecture au rép. perso. de
    1. ajouter totox dans le groupe stagex, avec linuxconf
      Attention ! cela peut être imprudent : en effet, par la suite totox pourra user et abuser des droits accordés
    2. chmod g+r /home/stagex


Exo 2

  1. Il n'est pas caché, stagex peut le voir avec ll /etc/sha*
    Mais il n'est pas lisible : permission non accordée pour less /etc/shadow !
  2. root effectue la copie : cp /etc/shadow /home/temp/shadow.bak
  3. avec une permission r-- sur ce fichier, root peut quand même le supprimer !
  4. root effectue la copie : cp /etc/shadow /home/stagex/shadow.bak
    et accorde la propriété : chown stage1. /home/stagex/shadow
  5. stagex passe les commandes cd , puis ll et observe :
    -r-------- stagex stagex shadow.bak
  6. stagex peut lire le fichier par less shadow.bak et l'édite avec mc/F4, supprime une ligne, et veut sauvegarder par F2 --> refus et invite à le renommer.
    C'est normal, le droit w n'est pas positionné !
  7. stagex veut le supprimer rm shadow.bak
    Il reçoit l'avertissement :
    rm: détruire le fichier protégé en écriture shadow.bak et répond y, et ... c'est fait.
    En effet stagex possède la permission w sur son rép perso /home/stagex.

    Remarque :
    Si stagex se bloque ce droit, ce ne serait plus possible !

    cd /home
    chmod 500 stagex
    cd
    rm shadow.bak
    rm: détruire le fichier protégé en écriture 'shadow.bak'
    --> y
    rm: Ne peut délier 'shadow.bak' : Permission non accordée


Exo 3

  1. le rép /home n'accorde un droit d'écriture qu'à root
  2. [stagex@p0x ] su
    [root@p0x ] mkdir /home/temp
  3. chmod 777 /home/temp
  4. cd /home/temp
    [totox@p0x temp] cp /etc/hosts . pour déplacer dans le rep. courant
  5. Fort heureusement totox n'a pas de droit d'écriture w sur /etc, il ne peut donc rien y supprimer !
  6. chown stagex /home/temp/*
    opération non permise !
    Pris de panique totox n'a plus pensé qu'il a le droit de supprimer cette copie qui lui appartient ...


Exo 4

On suppose la situation initiale suivante :
  1. root a créé le rep rep-stagiaire
    mkdir /home/rep-stagiaire
  2. Il a attribué la propriété collective de ce rép. au groupe stagiaire,
    chgrp stagiaire /home/rep-stagiaire
  3. avec un accès complet, et rien pour les autres utilisateurs.
    chmod 770 /home/rep-stagiaire

    Vérification :

    ll /home
    drwxr-xr-x root root httpd/
    drwx------ stagex stagex stagex/
    drwx------ stagey stagey stagey/
    drwxrwx--- root stagiaire rep-stagiaire/
  4. stagex, très rétro, crée ce texte directement saisi à la console avec cat
    cat, par défaut admet le clavier comme canal d'entrée
    cd /home/rep-stagiaire
    cat > doc-stgx.txt
    Voici un petit texte sans prétention,
    mais auquel je tiens beaucoup.
    Mes collègues peuvent le lire, y répondre
    mais je leur demande de ne pas le modifier
    ni l'effacer. Merci.
    signé : stagex

    Ctrl-D
    Par précaution stagex, pas naïf, en fait une copie privée, sans droit de groupe :
    cp  doc-stgx.txt  doc-stgx.sauve
    chmod 600 doc-stgx.sauve
    ll doc-stgx.sauve
    -rx-------
  5. stagey lit le texte par exemple avec less /home/rep-stagiaire/doc-stgx.txt
    On vérifie que totox ne fait plus partie du groupe stagiaire et qu'il ne peut pas lire.
    groups totox
    totox : totox
    [totox@p0x home] less rep-stagiaire/doc-stgx.txt
    Permission non accordée
  6. stagey supprime sans problème le document de stagex
    [stagey@p0x rep-stagiaire] rm  doc-stgx.txt
    rm: détruire le fichier protégé en écriture 'doc-stgx.txt' ?
    y (répond t-il sournoisement)
    [stagey@p0x rep-stagiaire] ll (pour vérifier, le traitre !)
  7. Pour n'autoriser les suppressions qu'effectuées par le propriétaire (ou de root), root passe la commande
    chmod +t /home/rep-stagiaire
    (ou chmod 1770 /home/rep-stagiaire)
    ll /home
    drwxrwx--T root stagiaire rep-stagiaire/
    (rappel : T au lieu de t, car pas de droit x pour la catégorie other
    Ces 2 tentatives échoueront :
    [stagey@p0x rep-stagiaire] rm  doc-stgx.txt
    [stagey@p0x rep-stagiaire] mv doc-stgx.txt doc-stgy.txt