Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exos shell bash linux

    9 mars 2015 à 1:05:46

    svp les freres je suis un debutant en linux, aidez moi à trouver une solution à ces exercices.
    EXO1: ecrire un script qui détruit tous les fichiers orphelins d'un repertoire fourni en arguments. N'oublier pas d'afficher un message d'avertissement avec une durée maximale de 10 seconde.

    EXO2: ecrire un script shell qui permet de faire en sorte qu'aucun utilisateur sauf le propriétaire, ne puisse avoir accès à un fichier dont le nom est fourni en argument ou saisie au clavier (en cas d'absence d'arguments).

    EXO3: Creer un script d'automatisation de la creation des comptes utilisateurs dont la liste est fournis en arguments.
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2015 à 3:21:07

      salut,

      qu'as-tu déjà essayé de faire ?

      regarde

      info coreutils

      je ne crois pas qu'on fera tes exercices ici non plus.

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        9 mars 2015 à 9:11:04

        C'est quoi un fichier orphelins ?
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2015 à 10:22:44

          un fichier orphelin c'est un fichier qui n'a pas de proprietaire
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2015 à 13:52:11

            Ce n'est pas possible avec les systèmes Unix ça. Un fichier a forcément un groupe et un utilisateur associé.

            Sinon pour t'aider un peut pour limiter le temps de message d'avertissement tu peux utiliser la commande timeout.

            -
            Edité par millman 9 mars 2015 à 13:59:58

            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2015 à 16:09:08

              | un fichier qui n'a pas de proprietaire

              | Ce n'est pas possible avec les systèmes Unix ça. Un fichier a forcément un groupe et un utilisateur associé.

              sauf si lors de la suppression d'un compte, on ne supprime pas le $HOME, ou si on modifie l'UID d'un utilisateur directement dans le fichier de configuration;

              les (ug)id affichés ne correspondent alors pas à des id présents dans /etc/passwd.

              quant à afficher un message pendant n secondes max., il faudrait connaître un peu mieux le contexte, car dans un terminal, a priori, les messages restent affichés. :euh:

              -
              Edité par dantonq 9 mars 2015 à 16:12:42

              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                9 mars 2015 à 21:34:02

                dans le cas d'un utilisateur supprimer sans toucher son home. est ce qu'avec la commande

                find / -type -f nouser -print

                on peut afficher la liste des fichiers orphelins?

                -
                Edité par Dantary 9 mars 2015 à 21:35:50

                • Partager sur Facebook
                • Partager sur Twitter
                  9 mars 2015 à 22:12:48

                  bravo !

                  toutefois, le print est inutile, et find peut aussi supprimer les fichiers (donc, pas besoin de rm).

                  il y a aussi une confusion au niveau des tirets :

                  find / -type f -nouser

                  il reste le message de 10 secondes, pour lequel je ne comprend pas l'emploi d'une durée maximale.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                    9 mars 2015 à 22:22:05

                    dantonq a écrit:

                    | un fichier qui n'a pas de proprietaire

                    | Ce n'est pas possible avec les systèmes Unix ça. Un fichier a forcément un groupe et un utilisateur associé.

                    sauf si lors de la suppression d'un compte, on ne supprime pas le $HOME, ou si on modifie l'UID d'un utilisateur directement dans le fichier de configuration;

                    les (ug)id affichés ne correspondent alors pas à des id présents dans /etc/passwd.

                    S'il y a un uid il a un utilisateur alors.

                    Pour les 10 secondes on peut utiliser timeout.

                    Du style :

                    echo "Confirmer en appuyant sur une touche ou attendre 10s"
                    timeout 10 read >/dev/null --
                    


                    Edit : En faite il y a plus simple la commande read accepte un timeout avec l'option -t.

                    -
                    Edité par millman 10 mars 2015 à 17:31:52

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 mars 2015 à 22:39:26

                      | S'il y a un uid il a un utilisateur alors.

                      essaye !

                      crée un utilisateur avec un $HOME, où seront créés les fichiers de configuration du shell à partir de /etc/skel, puis supprime l'utilisateur sans supprimer le $HOME, les fichiers demeurent avec les (GU)ID de l'utilisateur qui a été supprimé !

                      -
                      Edité par dantonq 9 mars 2015 à 22:40:03

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                        10 mars 2015 à 8:52:04

                        dantonq a écrit:

                        | S'il y a un uid il a un utilisateur alors.

                        essaye !

                        crée un utilisateur avec un $HOME, où seront créés les fichiers de configuration du shell à partir de /etc/skel, puis supprime l'utilisateur sans supprimer le $HOME, les fichiers demeurent avec les (GU)ID de l'utilisateur qui a été supprimé !

                        -
                        Edité par dantonq il y a environ 10 heures

                        Oui mais le fichier appartient toujours au même groupe et utilisateur c'est juste la correspondance avec un nom de groupe et d'utilisateur qui est perdu.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 mars 2015 à 12:39:13

                          ils ont perdu leur(s) créateur(s) => ils n'ont «plus de propriétaire».

                          si je disparais, mon chien sera toujours tatoué; mais il n'appartiendra à personne.

                          il sera orphelin, pov' toutou. :(

                          -
                          Edité par dantonq 10 mars 2015 à 12:40:10

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                            10 mars 2015 à 13:53:58

                            Non leurs créateur existe toujours c'est juste qu'il n'y a pas de correspondance entre l'uid et un nom.

                            J'insiste car dans la norme POSIX et doncsous Linux il existe un uid et gid spéciale (le 65535 de mémoire voir plus si l'uid est coder sur 32 bits) pour les fichiers donc on a perdu leurs utilisateurs et groupes (après restauration par exemple).

                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 mars 2015 à 14:04:15

                              | leurs créateur existe toujours

                              l'utilisateur a été supprimé, il n'existe plus.

                              je ne comprends pas.

                              tu peux nous donner les références dans la norme POSIX afin de lire ça dans ses termes, s'il te plaît ?

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                                10 mars 2015 à 17:59:10

                                Je ne peux pas te donner les références POSIX car l'accès n'est pas en libre service (il faut payer).

                                Je comprend la définition de fichier orphelin que vous avez donné mais pour moi la formulation ("un fichier orphelin c'est un fichier qui n'a pas de propriétaire") est fausse.

                                Un fichier à toujours un propriétaire puisqu'il forcément un uid et gid qui soit soient rattacher à un utilisateur ou un groupe importe peut.

                                Une meilleur définition serait de dire qu'un fichier orphelin est un fichier pour lequel on ne peut pas faire la correspondance avec un nom d'utilisateur à l'uid du fichier (comme utiliser dans le man de find pour décrire les options nogoup et nouser).

                                Au passage supprimé un utilisateur (à savoir en pratique enlever toutes les occurrences de l'utilisateur dans le fichier /etc/passwd, /etc/group /etc/shadow /etc/gshadow) ne fait qu'enlever le nom de l'utilisateur.

                                Mais on peut toujours lancer des processus avec l'uid de l'utilisateur supprimé voir même lancer une session graphique entière.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 mars 2015 à 18:26:04

                                  ???
                                  Au passage supprimé un utilisateur (à savoir en pratique enlever toutes les occurrences de l'utilisateur dans le fichier /etc/passwd, /etc/group /etc/shadow /etc/gshadow) ne fait qu'enlever le nom de l'utilisateur.
                                  
                                  Mais on peut toujours lancer des processus avec l'uid de l'utilisateur supprimé voir même lancer une session graphique entière.

                                  autant dire qu'on peut se connecter avec n'importe quel uid généré par RANDOM !

                                  Je ne peux pas te donner les références POSIX car l'accès n'est pas en libre service (il faut payer).

                                  cherche encore l'opengroup a ouvert les sources, elle sont accessibles librement (parfois ils demandent un email).

                                  -
                                  Edité par dantonq 10 mars 2015 à 18:36:50

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                                    10 mars 2015 à 19:37:23

                                    dantonq a écrit:

                                    ???

                                    Au passage supprimé un utilisateur (à savoir en pratique enlever toutes les occurrences de l'utilisateur dans le fichier /etc/passwd, /etc/group /etc/shadow /etc/gshadow) ne fait qu'enlever le nom de l'utilisateur.
                                    
                                    Mais on peut toujours lancer des processus avec l'uid de l'utilisateur supprimé voir même lancer une session graphique entière.

                                    autant dire qu'on peut se connecter avec n'importe quel uid généré par RANDOM !

                                    Ce connecter par procédure de login classique non car elles sont justement conçu pour restreindre la connexion. Mais lancer un process avec un uid random oui on peut (je peux même te faire un code d'exemple).

                                    dantonq a écrit:

                                    Je ne peux pas te donner les références POSIX car l'accès n'est pas en libre service (il faut payer).

                                    cherche encore l'opengroup a ouvert les sources, elle sont accessibles librement (parfois ils demandent un email).

                                    Non il s'agit de Unix là. Mais cela doit y être aussi du coup. Sinon tu peux trouver ça dans le code source de Linux. Cette uid s'appel dans les source de Linux hightuid ou overflowuid (car il est également utiliser pour représenter les uid étant plus grand que l'uid max du système).

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      28 mars 2015 à 22:05:23

                                      en faite jai chercher à proceder de cette maniere pour le 1er exo:

                                      #! /bin/bash

                                      echo "suppression des fichiers n'ayant pas de proprietaire: tapez y= yes; n=no; "

                                      Read -t 10 -n 1 choix

                                      if [ "$choix"="y" ]

                                      then

                                         find $1 -nouser -type f -print | xargs rm -f

                                      else

                                         echo -e "suppression annulée"

                                      fi

                                      au debut le programme va demander a l'utilisateur s'il veut supprimer les fichiers orphelins,  taper y pour confirmer ou n pour annuler

                                      et s'il ne confirm pas dans les 1Os le program quitte directement sans supprimer

                                      -
                                      Edité par Dantary 28 mars 2015 à 22:07:16

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Exos shell bash linux

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown