#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 : 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