Script Shell

Résolu
Bonjour a tous, actuellement en formation, je me retrouve sur un exercices ou je rame

Je dois donner le privilège de droits « Permission non accordée » avec la commande
sudo
du Bash (1 Shell) à l’utilisateur
robby
, puis la « Permission accordée » avec le mot de passe « adminrobby » (utilisez la commande
ls
pour afficher l’ensemble des fichiers contenus dans le répertoire
/root
).

Auriez-vous des idées merci.

12 réponses

Résumé de la discussion

Le fil porte sur l’attribution du privilège sudo à l’utilisateur robby pour obtenir une « Permission non accordée » puis une « Permission accordée » avec adminrobby, et sur ls dans /root. Plusieurs réponses proposent des solutions techniques, notamment vérifier les droits sur /root, explorer des alternatives comme getent plutôt que grep, et considérer des outils de création de compte comme mkpasswd ou useradd. D’autres interventions soulignent que grep est inadapté ici et discutent des principes de gestion des droits et des mots de passe, tout en suggérant des parcours pratiques avec WSL ou VirtualBox pour tester. En complément, la discussion évoque des commandes fiables comme getent et des méthodes de gestion de compte, sans conclure sur une résolution unique et en apportant une nuance utile sur le choix des outils.

Bobot (l’IA à votre service)
  1. Modérateur
    Bonjour,

    Il te faut utiliser une commande pour corriger les droits associé au fichier concerné. Voir
    chmod
    ,
    chown
    ,
    chgrp
    . Pour voir comment utiliser une commande, utilise la commande
    man
    (e.g.
    man chmod
    ) un cours sur les droits sous Linux, par exemple cette page.

    Bonne chance
    0
    1. Merci mamiemando pour cette réponse

      Voila à quoi ressemble l'exercice:

      1) Sous Linux, créez un utilisateur
      robby
      dans le groupe
      robot
      en vous aidant des éléments suivants :
      • la commande
        useradd
        ;
        • -g
          : édition de /etc/group ;
        • -m
          : option qui crée le répertoire personnel par défaut ;
        • option
          -u 1010
          pour l’UID numérique de l’utilisateur ;
      • les commandes
        ls
        et
        lp
        pour afficher le répertoire et imprimer ;
      • l’arborescence d’un système de fichiers sous Linux.


      2) Sous Linux, donnez la possibilité au compte
      robby
      de générer un mot de passe avec la commande
      grep
      , puis ajoutez ce mot de passe manuellement avec
      passwd
      .

      3) Donnez le privilège de droits « Permission non accordée » avec la commande
      sudo
      du Bash (1 Shell) à l’utilisateur
      robby
      , puis la « Permission accordée » avec le mot de passe « adminrobby » (utilisez la commande
      ls
      pour afficher l’ensemble des fichiers contenus dans le répertoire
      /root
      ).

      pour la partie 1, je pense a
      useradd -u 1010 -g /etc/group/robot -s /bin/bash -m robby
      0
      1. Modérateur
        Bonjour,

        Plusieurs recommandations :
        • Pourquoi ne pas installer Linux, soit via WSL si tu es sous windows 10, soit via virtualbox si tu as un windows antérieur et tester ?
        • Pense au
          man
          . Chercher des réponses sur des sites comme stackoverflow peut aussi t'aider.


        Pour la question (1) : c'est presque ça, mais incorrect (voir option
        -g
        ).
        0
        1. Bonjour,

          J'utilise Ubuntu 20.04
          Pour l'option [-g groupe] définit le groupe par défaut. [-g GID groupe] pour définir l'id du groupe par défaut.

          /# useradd -u 1010 -g robot -s /bin/bash -m robby
          useradd : le groupe « robot » n'existe pas
          /# groupadd robot
          /# useradd -u 1010 -g robot -s /bin/bash -m robby
          /# id robby
          uid=1010(robby) gid=1001(robot) groupes=1001(robot)

          /# ls /home
          robby
          0
          1. Modérateur
            Bravo à toi :-) Il ne te reste plus qu'à finir ton exercice sur les permissions associées au dossier /root. Voir
            man chmod.
            et
            man chown
            .

            Bonne chance
            0
            1. Merci je continu mes recherches
              pour la partie 2 la commande #grep est utilisée pour des recherche si je me trompe pas, alors pour générer le mot de passe j'ai :
              strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 6 | tr -d '\n'

              qui contient
              grep
              et génére un mot de passse aléatoire.
              ou:
              grep "^[[:alpha:]]\{5,8\}$" "${1-/usr/share/dict/words}" | sort --random-source=/dev/urandom -R | head -1

              mais la mot de passe est non aléatoire (mot du dictionnaire).
              0
              1. Modérateur
                2) Sous Linux, donnez la possibilité au compte robby de générer un mot de passe avec la commande grep, puis ajoutez ce mot de passe manuellement avec passwd.

                Personnellement, je n'ai pas compris pourquoi
                grep
                était nécessaire. J'ai l'impression que l'énoncé est incomplet.
                grep
                permet de filtrer un ensemble de lignes de sorte à ne garder que celles qui se conforment à l'expression rationnelle passée en paramètre à
                grep
                . Pour que
                grep
                serve à quelque chose, il faudrait donc préciser quelle(s) contrainte(s) doivent être respectée par le mot de passe et réfléchir à l'expression rationnelle associée.

                Dans la première commande que tu proposes, tu sembles vouloir un code aléatoire contenant 6 caractères alphanumériques mais je n'ai pas vu où c'était indiqué dans l'énoncé.

                La seconde commande que tu proposes n'est pas recommandée en ce sens qu'un mot de passe basé sur un mot du dictionnaire est un mot de passe faible (= facile à pirater).

                Bonne chance
                0
            2. Je suis partis du principe de générer un mot de passe "un générateur" avec "grep" dedans puis de d'ajouter ce mot de passe manuellement avec passwd robby

              non rien ne me dit un code aléatoire contenant 6 caractères alphanumériques
              ou j’interprète mal "générer un mot de passe"

              Merci pour ces réponses
              0
              1. Modérateur
                Disons que ton interprétation est la seule qui me paraît raisonnable, mais l'énoncé est mal posé et ça mériterait de poser une question à ton enseignant. De manière générale je trouve l'exercice assez mal formulé mais ça n'engage que moi :-)
                0
              2. @mamiemandoJe suis une formation a distance. Ce n'est pas la première fois que je leur signale des problèmes dans les énoncés, mais à chaque fois, ça prends du temps pour avoir des réponses. Il y a plus de 4 mois que j'ai signalé qu'un schéma n'était pas correct. Ils doivent le modifier mais toujours rien de fait.
                0
              3. Modérateur
                @dun85Hé bé ils ont l'air sérieux :D
                0
              4. @dun85ne serait ce pas le schéma du devoir réseau a tout hasard ? Je suis la meme formation et elle me rend fou entre les incohérence des devoirs , le manque d'explications des cours etc
                Le prof ne semble pas maitriser ses sujets. Je suis actuellement sur ce devoir AD et script et je deviens fou car beaucoup de chose n'ont pas de sens (comme cette commande grep) Je perd un temps monstre sur mes devoirs car beaucoup de chose pas du tout logique pour moi. Et quand tu poses une questions on te répond à coté.
                0
            3. Pour la partie 3
              Permission non accordée avec la commande sudo du Bash (1 Shell)

              que l'utilisateur robby doit s'identifier comme
              #sudo
              ???
              #sudo bash
              ???

              Permission accordée avec le mot de passe adminrobby

              Si il faut juste modifier les droits sur /root ca c'est ok
              0
              1. Modérateur
                Permission non accordée avec la commande sudo du Bash (1 Shell) que l'utilisateur robby doit s'identifier comme #sudo ??? #sudo bash ???

                La commande
                sudo
                permet d'envelopper une commande shell et de l'exécuter avec des droits root, pour peu que l'utilisateur courant soit sudoer (pour cette commande). Cette politique est définie dans
                /etc/sudoers
                qui spécifie notamment que tout membre du groupe
                sudo
                (voir résultat de la commande
                groups
                ) peut lancer n'importe quelle commande avec des droits root au travers de
                sudo
                . Si ton utilisateur n'appartient pas à ce groupe, il faudra l'y ajouter (e.g. en tant que root avec
                usermod -a -G sudo toto
                ).

                Exemple :
                sudo cat /etc/shadow


                Bref, ce qu'ils essaient de dire (mais mal) c'est qu'il faut corriger les droits, et que ceci nécessitera des droits root (et donc ils t'aiguillent vers
                sudo
                ).

                Permission accordée avec le mot de passe adminrobby

                Ici aussi, l'énoncé est peu clair, qui pour moi, ne veut rien dire.

                Une première interprétation est que l'utilisateur (et non le mot de passe)
                adminrobby
                doit pouvoir accéder à
                /root
                mais pas
                robby
                , et ensuite, tester avec la commande
                ls
                .

                Une interprétation possible de l'exercice est que si
                robby
                est sudoer, à l'aide de
                sudo
                et de son mot de passe
                adminrobby
                , il doit peut lister le contenu de
                /root
                . Et comme root a tous les droits, pas besoin de changer les droits.

                Bonne chance
                0
              2. @mamiemandoVoici ce qu j'ai fait :

                dundee@PC:~$ su robby
                mot de passe : l7D9I3XA
                robby@PC:/home/dundee$ cd /
                robby@PC:/$ ls /root
                ls: impossible d'ouvrir le répertoire '/root': Permission non accordée
                robby@PC:/$ sudo su
                [sudo] Mot de passe de robby : l7D9I3XA
                robby n'apparaît pas dans le fichier sudoers. Cet incident sera signalé.
                robby@PC:/$ su dundee
                mot de passe : xxxxxxxxxx
                dundee@PC:/$ sudo su
                [sudo] Mot de passe de dundee : xxxxxxxxxx
                root@PC:/# usermod -aG sudo robby
                root@PC:/# passwd robby
                nouveau mot de passe : adminrobby
                retapez le nouveau mot de passe : adminrobby
                passwd : le mot de passe a été mis à jour avec succès
                root@PC:/# su robby
                robby@PC:/$ sudo su
                [sudo] Mot de passe de robby : adminrobby
                root@PC:/# ls /root
                snap
                0
              3. Modérateur
                @dun85Oui je pense que c'est plus ou moins ce qui plus ou moins ce qui est attendu. Comme robby est dans le groupe
                sudo
                , le résultat de
                ls /root
                renverra "Permission non accordée" et
                sudo ls /root
                renverra le contenu de
                /root
                .
                0
            4. Bonjour a tous,

              Aprés plusieurs jours d'attente, j'ai enfin une réponse a mon message pour leurs signaler que #grep n'a pas de sens voici la réponse:

              En effet, l'exercice est conçu étrangement parce que GREP est une commande de filtrage et pas très appropriée dans le cas présent, vous avez raison. La commande "getent" aurait peut-être été plus logique.
              0
              1. Modérateur
                C'est des vedettes :-) Je suis curieux de voir comment tu peux utiliser
                getent
                pour résoudre ton exercice. J'espère que tu ne payes pas trop cher pour ta formation.
                0
              2. @mamiemandoSuite a un licenciement c'est mon "ex" employeur qui paie 3950€
                0
              3. Modérateur
                @dun85Il faut voir la durée de la formation et ce qu'elle contient, mais vu la qualité du support je suis un peu sceptique. Bref... Vu le prix que tu payes je pense que tu es en droit de demander quelque chose d'un peu plus sérieux.
                0
              4. @mamiemandoJe leurs aient envoyé ma proposition pour la commande
                strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 6 | tr -d '\n'
                et voila la réponse :

                Pour tout vous dire, je ne l'ai jamais utilisé celle-là, même si je la connais et que sa construction me parait cohérente.
                Cela me convient dès lors qu'on arrive au résultat souhaité.
                Sur le terrain, on raisonne souvent ainsi, vous verrez :-)
                0
              5. Modérateur
                @dun85Mouais, je les trouve un peu zen dans ta formation, mais bon au moins ça oblige à être "créatif" :-)

                Sinon, pour info sur le terrain on aurait par exemple utilisé
                mkpasswd
                .

                Est-ce que ton problème est résolu ?
                0
            5. Merci pour vos avis et votre aide. Si vous recherchez du travail, postulez chez eux pour leur donner des cours ; )
              0
              1. Modérateur
                Si vous recherchez du travail, postulez chez eux pour leur donner des cours ; )

                :-))))

                Est-ce que ton problème est résolu ?
                0
            6. Bonjour,

              Je suis en formation en distanciel avec l'école ESECAD pour la même formation que vous.
              Effectivement je trouve leurs cours vraiment difficile d'interprétation et les réponses des profs sont plutôt vague.
              Est ce que je peux me permettre de vous demander quelques infos sur l'excercice précédent sur la création d'une AD.

              Cordialement.
              0
              1. Modérateur
                Bonjour Syntax37,

                Oui, mais nouveau problème => nouvelle discussion :-)
                0