Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/04/2012, à 20:46

compte supprimé

[Script bash] Gestion des mots de passe

Bonjour,

Pour plusieurs scripts, j'ai à exécuter des commandes en mode root (avec sudo donc). Mais bien sûr, je dois entrer mon mot de passe à chaque exécution du script, ce qui ne me convient pas. J'ai aussi des scripts qui utilisent des commandes de cryptage/décryptage, actions qui demandent donc également un mot de passe après lancement. J'ai donc deux questions :

  • Comment donner à un script des droits particuliers afin qu'il puisse s'exécuter sans demande systématique de mot de passe ?

  • Comment écrire un script pour qu'il fournisse automatiquement un texte dès qu'une de ses commandes le demande ? (exemple fictif : j'utilise le programme mcrypt pour chiffrer une sauvegarde de mes fichiers personnels, le tout s'exécutant grâce à crontab tous les dimanches à 20h52m31s siffle.png : comment faire pour que le script fournisse automatiquement le mot de passe de chiffrement à mcrypt lorsqu'il le demande (je sais, c'est pas très intelligent de mettre son mot de passe en clair dans un script, mais c'est un exemple) ?

#2 Le 30/04/2012, à 21:09

sputnick

Re : [Script bash] Gestion des mots de passe

Salut,

pour kde, voir http://learnonthejob.blogspot.fr/2009/1 … dline.html

Il doit y avoir la même chose pour gnome (gnome-keyring)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 30/04/2012, à 22:47

sputnick

Re : [Script bash] Gestion des mots de passe

Il y a aussi ce script qui peut être WM agnostic :

#!/usr/bin/python
# -*- coding: utf8 -*-
#    made by sputnick in da FreAkY lAb (c) 2012

import keyring, getpass, argparse

def getPasswdFromKeyRing(login, name):
    passwd = keyring.get_password(name, login)
    if passwd == None:
        passwd = getpass.getpass("Your "+name+" password >>> ")
        keyring.set_password(name, login, passwd)

    return str(passwd)

def setPasswdFromKeyring(name, login, passwd):
    keyring.set_password(name, login, passwd)

parser = argparse.ArgumentParser()
parser.add_argument("-g" , "--get", dest="login", required=True, help='login')
parser.add_argument("-n" , "--name", dest="name", required=True, help='name')
parser.add_argument("-s" , "--set", dest="passwd", required=False, help='setpassword')
cli = parser.parse_args()
print getPasswdFromKeyRing(cli.login, cli.name)
usage: cli-keyring.py [-h] -g LOGIN -n NAME [-s PASSWD]

optional arguments:
  -h, --help            show this help message and exit
  -g LOGIN, --get LOGIN
                        login
  -n NAME, --name NAME  name
  -s PASSWD, --set PASSWD
                        setpassword

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne