Rufen Sie sudo in Python auf und füllen Sie das Passwort automatisch aus

So schließen Sie Python ab, ohne die Systemeinstellungen zu manipulieren. Python3.5(3.4)~

Um das Passwort von einem anderen als dem Terminal mit sudo einzugeben, müssen Sie es von der Standardeingabe mit der Option -S übergeben. Sie benötigen auch ein Zeilenumbruchzeichen.

Übergeben Sie "Passwort + Zeilenvorschubzeichen" als Byte-Zeichenfolge an die Argumenteingabe von subprocess.run () (subprocess.check_output für Python3.4) (Argumenteingabe wurde aus Python3.4 hinzugefügt).

Ein Beispiel für das aufeinanderfolgende Mounten und Aufheben der Bereitstellung mehrerer ISO-Dateien.

import os
import subprocess
import getpass
import tempfile


#Erstellen eines temporären Einhängepunkts
mp = tempfile.mkdtemp()

#Passwort eingeben
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

Rufen Sie sudo in Python auf und füllen Sie das Passwort automatisch aus
Stapel und Warteschlange in Python
Einfaches Passwortfeld in Python
Unittest und CI in Python
Rufen Sie Methoden in Python dynamisch auf
Installieren Sie CaboCha in der Ubuntu-Umgebung und rufen Sie es mit Python auf.
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Zuweisungen und Änderungen in Python-Objekten
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Hashing von Daten in R und Python
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Passwort für Lehrbuch mit Python generieren
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
Überlappende reguläre Ausdrücke in Python und Java
Unterschied in der Authentizität zwischen Python und JavaScript
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Unterschiede zwischen Ruby und Python im Umfang
AM-Modulation und Demodulation mit Python Part 2
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Warteschlangen- und Python-Implementierungsmodul "deque"
Gefaltetes Liniendiagramm und Skalierungslinie in Python
Implementieren Sie den FIR-Filter in Python und C.
Unterschiede zwischen Python- und Java-Syntax
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Schreiben Sie die O_SYNC-Datei in C und Python
Umgang mit "Jahren und Monaten" in Python
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Private Methoden und Felder in Python [Verschlüsselung]
Suchen und überprüfen Sie die inverse Matrix in Python
Lineare Unabhängigkeit und Basis: Lineare Algebra in Python <6>
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Rufen Sie APIGateWay mit APIKey in Python-Anforderungen auf
Ich habe ein Passwort-Tool in Python erstellt.
Modulimport und Ausnahmebehandlung in Python
Verwendung ist und == in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Quadtree in Python --2
Python in der Optimierung
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Organisieren Sie Python-Module und -Pakete in einem Chaos
Geokodierung in Python
SendKeys in Python