Appelez sudo en Python et mot de passe à saisie automatique

Comment terminer avec Python sans altérer les paramètres système. Python3.5(3.4)~

Pour entrer le mot de passe d'un autre terminal que le terminal avec sudo, vous devez le transmettre à partir de l'entrée standard avec l'option -S. Vous avez également besoin d'un caractère de saut de ligne.

Passez "mot de passe + caractère de saut de ligne" sous forme de chaîne d'octets à l'entrée d'argument de subprocess.run () (subprocess.check_output pour Python3.4) (l'entrée d'argument a été ajoutée à partir de Python3.4).

Un exemple de montage de plusieurs fichiers ISO en séquence et de leur démontage.

import os
import subprocess
import getpass
import tempfile


#Créer un point de montage temporaire
mp = tempfile.mkdtemp()

#Entrer le mot de passe
passwd = (getpass.getpass() + '\n').encode()

while True:

    path = input('Input file path (".quit" to quit) : ')

    if path == '.quit':
        os.rmdir(mp)
        raise SystemExit

    subprocess.run(('sudo', '-S',
                    'mount', '-t', 'iso9660', '-o', 'loop', path, mp),
                   input=passwd, check=True)

    """Gonyo Gonyo"""

    subprocess.run(('sudo', '-S', 'umount', mp), input=passwd, check=True)

http://docs.python.jp/3/library/subprocess.html

Recommended Posts

Appelez sudo en Python et mot de passe à saisie automatique
Pile et file d'attente en Python
Boîte de mot de passe facile en Python
Unittest et CI en Python
Appeler dynamiquement des méthodes en Python
Installez CaboCha dans l'environnement Ubuntu et appelez-le avec Python.
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Différence entre == et est en python
Afficher les photos en Python et html
Algorithme de tri et implémentation en Python
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Affectations et modifications des objets Python
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Hashing de données en R et Python
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
Générer un mot de passe pour le manuel avec python
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Créer et lire des paquets de messages en Python
Chevauchement d'expressions régulières en Python et Java
Différence d'authenticité entre Python et JavaScript
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Les modules et packages en Python sont des "espaces de noms"
Évitez les boucles imbriquées en PHP et Python
Différences entre Ruby et Python dans la portée
Modulation et démodulation AM avec Python Partie 2
différence entre les instructions (instructions) et les expressions (expressions) en Python
Module d'implémentation de file d'attente et Python "deque"
Graphique à lignes pliées et ligne d'échelle en python
Implémenter le filtre FIR en langage Python et C
Différences entre la syntaxe Python et Java
Vérifier et recevoir le port série en Python (vérification du port)
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Ecrire le fichier O_SYNC en C et Python
Gérer les "années et mois" en Python
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python
Méthodes et champs privés en python [chiffrement]
Rechercher et vérifier la matrice inverse en Python
Indépendance et base linéaires: Algèbre linéaire en Python <6>
Différences de multithreading entre Python et Jython
Appelez APIGateWay avec APIKey dans les requêtes python
J'ai créé un outil de mot de passe en Python.
Importation de modules et gestion des exceptions en python
Comment utiliser is et == en Python
Projet Euler # 1 "Multiple de 3 et 5" en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Organisez les modules et les packages Python dans le désordre
Géocodage en python
SendKeys en Python