IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Executer un fichier


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Executer un fichier
    Bonjour à tous,

    je suis newbie dans la programmation python et j'aimerai de l'aide pour un de mes programme.

    je suis sous linux/Ubuntu

    Je vous donne le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
     
    from platform import *
    import sha
    import time
    import datetime
    import locale
     
    systeme, node, release, version, machine, processor=uname()
     
    locale.setlocale(locale.LC_ALL,'') # Permet de savoir en quelle langue est votre PC
    temp=time.strftime('%A %d %B %Y - %H h %M min')
    print temp
     
     
     
    print 'Bonjour, %s' %node
    print 'Vous etes sous le systeme d\'exploitation : %s' %systeme
    print '-------------------------------------------------\n'
     
     
    files_mdp='cacher'
     
     
    if os.path.isfile(files_mdp)== False:
        print "ATTENTION : Lors de la creation de votre mot de passe. \nLa touche 'Entrer' egale a 'Espace' en mot de passe."
        print '-------------------------------------------------\n'
     
        mdp_created=sha.new(raw_input('Veuillez creer un mot de passe :')).hexdigest()
     
        while mdp_created=='':
            print 'Veuillez insérer un mot de passe'
            mdp_created=sha.new(raw_input('Veuillez creer un mot de passe :')).hexdigest()
     
            if mdp_created!='':
                created_files=open(files_mdp,'w')
                created_files.write(mdp_created)
                created_files.close()
                print "Votre mot de passe à bien créer et, enregistrer."
                break
     
     
        else:
            created_files=open(files_mdp,'w')
            created_files.write(mdp_created)
            created_files.close()
            print "Votre mot de passe a été crypter :", sha.new(mdp_created).hexdigest()
            print "Votre mot de passe a bien été enregistrer."
     
    elif os.path.isfile(files_mdp)== True:
        mdp=open(files_mdp, 'r')
     
        for line in mdp.readlines():
            mdp.close()
     
        x=1    
        while files_mdp=='' or files_mdp != line:
            print "Tentative Numero", x
            mdp_enter=raw_input("Veuillez entrer votre mot de passe :\n")     
            mdp_enter_sign=sha.new(mdp_enter).hexdigest()
            x = x+1           
     
     
            if mdp_enter_sign == line:
                print "Bravo ... Je vais t'ouvrir mes portes %s" %node
                files=open(files_mdp, 'rb')
                break
     
            elif x > 10:
                print "Trop d'essai ! En tout, vous avez effectuer", x, "essaies."
                break
     
    raw_input('Appuyez sur entree pour quitter le programme...')
    Mon probleme et le suivant:
    une fois que l'utilisateur a creer son mot de passe je voudrai qu'il est acces a un dossier style 'Dossier_secret' mais je n'arrive pas a trouver comment donner acces a ce fichier et l'executer une fois que le mot de passe et correct.

    merci et bonne journee a tous.

  2. #2
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Si tu sais le faire depuis un terminal, tu peux toujours utiliser la fonction system du module OS, qui te permet de passer des commandes shell/dos... Sinon, y'a peut être moyen de voir ça avec d'autre fonctions du module OS, le mieux, est de consulter sa doc :
    http://docs.python.org/lib/module-os.html

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    j'ai essayer avec la fonction "execv" de os,

    Il me mai sa comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "/home/romain/Programmation/Python/mdr.py", line 67, in <module>
        files=os.execv(files_mdp, 'rb')
    TypeError: execv() arg 2 must be a tuple or list

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Bonjour,

    execv ne s'utilise pas ainsi: il faut lui passer le chemin du programme à exécuter et ses arguments dans une liste ou un tuple; par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.execv('/bin/ls',['/bin/ls','-l','/etc'])
    Attention au fait que l'appel de cette fonction remplace effectivement le programme python en cours d'exécution par le programme exécuté; ce n'est peut-être pas ce que tu veux.

    Regarde plutôt le module subprocess pour une gestion des processus d'un peu plus haut niveau.

    Mais je n'ai aucune idée de ce que tu essaie de faire; d'après le code du premier post, il me semble que file_mdp contient un hash du mot de passe. Ca ne rime à rien d'exécuter ça.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    je que je veut c'est proteger par mot de passe un dossier. un fois le code exacte il ouvre le dossier. c'est asssez simple.

  6. #6
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    C'est une chose que je ne sais absolument pas faire... mais, pourquoi utiliser python pour faire ça ? Un shell script ne serait-il pas plus adapté ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    sa me permet d'apprendre en meme temp et c koi un script shell

  8. #8
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    très basiquement, un shell script peut te servir à faire un simple enchainement de commandes (bash, sh, etc...), mais il peut te servir pour des tache plus complexe évidemment, on peut y passer des argument, inclure des condition, des boucles et j'en passe... Voici un lien qui t'en apprendra plus :
    http://lea-linux.org/cached/index/Dev-shell_script.html

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Je ne comprends toujours pas.
    Qu'entends-tu par "ouvrir un dossier" ? Ouvrir un shell ou un explorateur de fichier et se positionner dans le dossier ? Comment empêcher l'utilisateur de se rendre dans le dossier sans exécuter le programme python ? Sans un support spécifique de la part de l'OS et du système de fichier, je ne vois pas comment c'est possible.

    Ce qui serait possible, c'est d'utiliser le mot de passe non pas pour générer un hash (ou pas seulement en tout cas), mais comme clé de cryptage, et de crypter/décrypter les fichiers avec cette clé.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ce que je voulais a la base c'est :
    Lier mon programme au dossier cible 'Dossier_secret'
    Tant que le mot de passe n'est pas correct, le dossier est impossible a ouvrir

    si le mot de passe = correct alors on ouvre en acces libre le dossier

  11. #11
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Je ne m'y connais pas assez, mais d'après mes maigres connaissances, je dirais qu'il faudrait appliquer au dossier visée certains droits... Je ne crois pas que l'on puisse "lier" un script à la tentative d'accès à un dossier, mais avec un shell script, tu peux semi-automatiser la procédure d'interdiction... si je me souvient bien, depuis un compte utilisateur, si tu essaye d'accéder à /root, le mot de passe admin t'es demandé, c'est je crois dû à la gestion des droits...

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    oki mais je recherche a ouvrir mon fichier 'cacher' par l'editeur de texte mais je n'arrive pas

  13. #13
    Membre habitué Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Points : 178
    Points
    178
    Par défaut
    Salut,
    Pour lancer un fichier ou dossier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.startfile("CheminDuDossierAOuvrire")
    (ou encore "open" tout simplement)

    Voila mais je suis pas sur que cette commande fonctionne sur linux également.

    A+
    On rêvait tous d'une Barack blanche pour Obama

Discussions similaires

  1. [C#] Executer un fichier .SQL
    Par Thomas Lebrun dans le forum Accès aux données
    Réponses: 6
    Dernier message: 28/07/2009, 08h53
  2. [DB2] executer un fichier sql
    Par meufeu dans le forum DB2
    Réponses: 7
    Dernier message: 10/01/2009, 15h47
  3. Executer un fichier script sql
    Par richard038 dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/10/2005, 17h12
  4. Execution / include fichier html
    Par VoLc0m dans le forum ASP
    Réponses: 12
    Dernier message: 20/05/2005, 11h29
  5. Executer un fichier zip
    Par Sébastien THEVOT dans le forum C++Builder
    Réponses: 15
    Dernier message: 11/10/2004, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo