L'utilisation de sudo avec un script Python

Je suis en train d'écrire un petit script pour monter une VirtualBox dossier partagé à chaque fois que j'execute le script. Je veux le faire avec Python, parce que je suis en train de l'apprendre pour l'écriture de scripts.

Le problème est que j'ai besoin de privilèges pour le lancement de la commande mount. Je pourrais exécuter le script que sudo, mais je la préfère à faire sudo par son propre.

Je sais déjà qu'il n'est pas sûr d'écrire votre mot de passe dans une .py fichier, mais nous parlons d'une machine virtuelle qui n'est pas critique du tout: je veux juste cliquez sur le .py script et de le faire fonctionner.

C'est ma tentative:

#!/usr/bin/env python
import subprocess

sudoPassword = 'mypass'
command = 'mount -t vboxsf myfolder /home/myuser/myfolder'

subprocess.Popen('sudo -S' , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(sudoPassword , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(command , shell=True,stdout=subprocess.PIPE)

Ma version de python est de 2,6

  • Est-il une raison pour ne pas utiliser /etc/fstab?
  • oui, que je me sers pour apprendre à utiliser python pour ce genre de but
  • vous devez passer le mot de passe sur stdin, voir ce stackoverflow.com/a/165662/894872
  • Si vous ne savez pas ce que vous faites, à éviter shell=True. Si vous ne pouvez pas faire fonctionner les choses, sans elle, savoir ce qu'il fait et comment il fonctionne (et puis vous pouvez généralement).
InformationsquelleAutor Roman Rdgz | 2012-10-24