Forum Linux.général Fais tes devoirs avant !

Posté par  (site web personnel, Mastodon) .
Étiquettes : aucune
0
9
août
2006
L'attrait de l'ordinateur est tellement grand, qu'on en oubli souvent de faire ses devoirs et on y reste planté des heures. Résultat, encore plein de bulles.

Mais si c'était l'ordinateur qui prenait l'initiative de vous faire faire vos devoirs avant que vous puissiez jouer ?

Sur mon vieux 386 j'avais fabriqué un programme qui obligeait toutes personnes voulant utiliser l'ordinateur à répondre à une série de questions sur les tables de multiplications et les verbes irréguliers d'anglais. Tant que les réponses était fausses, impossible d'utiliser l'ordinateur.

Ce programme était d'une extrême simplicité et était chargé par l' autoexec.bat .

J'aimerai pouvoir faire la même chose sous ubuntu, mais en plus poser des question en fonction du login de la personne.

La programmation de se genre d'interface ne me semble pas trop compliqué. Mon problème est de trouver une manière de faire un programme bloquant une fois le login et mdp entré pour forcer a répondre aux questions.

Mon système :
Ubuntu 6.06 avec gnome (normal ;-)
  • # hahaha

    Posté par  . Évalué à 1.

    Je prends!
  • # vive le libre !

    Posté par  . Évalué à 1.

    et si tu jetais un coup d'oeil au source de gdm, kdm et autres xdm histoire d'ajouter ton morceau de code qui va bien au bon endroit, c'est a dire juste apres l'acceptation du login/mdp ?
  • # Un debut d'idee

    Posté par  (site web personnel) . Évalué à 4.

    Je me tournerais vers PAM pour faire cela: cela serait un programme qui pose les questions, etc comme module PAM.

    Je n'ai jamais ecris quoi que se soit pour PAM, mais les modules listés sur http://www.kernel.org/pub/linux/libs/pam/modules.html devraient pouvoir t'aider a ecrire ton module...

    Mathias
    • [^] # Re: Un debut d'idee

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      Si j'ai bien compris ce module permet de gerer finement les utilisateurs en leurs donnant, par exemple, un temps d'ordinateur, ou en les autorisant d'utiliser l'ordinateur qu'un jour sur deux.

      hummmmmmmmm tres interessant!

      J'ai plus qu'une balle

  • # ton propre programme dans xsession ?

    Posté par  . Évalué à 6.

    Tu peux essayer de lancer ton programme pour remplacer par exemple gnome-session. Si le test réussit, alors gnome-session est lancé.
    • [^] # Re: ton propre programme dans xsession ?

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      cela me semble etre la maniere la plus simple.

      merci

      J'ai plus qu'une balle

      • [^] # /etc/passwd

        Posté par  . Évalué à 1.

        Sinon un autre moyen serait de remplacer le shell par défault (défini dans /etc/passwd) par ton programme, qui n'autorisera la session (en lançant un shell ou X) que si toutes les questions sont correctement répondues.

        - Si c'est ok -> exec("/bin/bash")
        - Sinon -> exit(0), et on revient au prompt login/passwd.

        • [^] # Re: /etc/passwd

          Posté par  . Évalué à 1.

          Je rajouterai que c'est le seul moyen pour vraiment limiter l'accès, parce que le gnome-session, il se court-circuite en allant sur une console (ctrl-alt-F1).
          • [^] # Re: /etc/passwd

            Posté par  . Évalué à 2.

            ne pas oublier les gens à qui ce système serait destiné : des enfants :-)

            Je pense pas qu'il s'amuse à faire ctrl-alt-f1 pour ensuite faire un ssh+screen pour aller discuter sur irc :-)
            • [^] # Re: /etc/passwd

              Posté par  . Évalué à 1.

              Mon fils de 3 ans 1/2 sait qu'il faut faire ALT-F4 pour quitter ses jeux, alors j'imagine qu'il n'aura aucune difficulté à faire ctrl-alt-f1 quand il aura l'âge d'apprendre les verbes irréguliers en anglais :-)

              "Nature always finds a way" ......
        • [^] # Re: /etc/passwd

          Posté par  (site web personnel, Mastodon) . Évalué à 1.

          c'est cette ligne la ?

          martoni:x:1000:1000:martoni,,,:/home/martoni:/bin/bash


          Mais est-ce que le programme peut-etre graphique ? (en X)

          J'ai plus qu'une balle

          • [^] # Re: /etc/passwd

            Posté par  . Évalué à 1.

            oui, c'est là, tu peux remplacer le /bin/bash par n'importe quoi. La session se ferme quand le programme en question s'arrête.
            Quand à mettre un programme graphique, je ne sais pas trop... C'est surtout utilisé quand on se logge en mode console, mais rien ne t'interdit de lancer un X ou ce que tu veux à partir du programme de login.
            • [^] # Re: /etc/passwd

              Posté par  . Évalué à 1.

              Je viens de faire le test, mais sans X parce que je n'ai qu'un serveur sans écran...

              J'ai fait un petit script shell appelé /usr/local/bin/montest.sh
              avec un "chmod a+rx /usr/local/bin/montest.sh"

              Le script contient:


              #!/bin/bash
              echo "Quelle est la couleur du cheval blanc d'Henri IV ?"
              read reponse
              reponse=`echo $reponse|tr "a-z" "A-Z"`
              if [[ "$reponse" == "BLANC" ]]
              then
              echo BRAVO !!
              /bin/bash
              else
              echo "MAUVAISE REPONSE"
              exit
              fi


              et j'ai modifié mon /etc/passwd comme ceci:

              test:x:1006:1006:test,,,:/home/test:/usr/local/bin/montest.sh

              (hint: avec bash 3.0, tu peux aussi faire comparaisons avec des expressions régulières, ça peut être utile pour un quizz)
  • # avant X

    Posté par  (site web personnel) . Évalué à 1.

    L'équivalent d'autoexec.bat il me semble que ça serait de le mettre en script d'init. Par contre ça veut dire que quelque soit la personne qui démarre l'ordinateur, il devra répondre aux questions avant même de pouvoir se logguer et que ceux qui se loggueront après n'auront pas besoin de le faire.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.