Ich versuche, einen freigegebenen Laufwerksordner auf meinem System (Centos) zu mounten.Wie führe ich einen root-Befehl mit Pythons pexpect-Bibliothek aus?
Da der Befehl mount
als root-Benutzer ausgeführt werden muss, melde ich mich zuerst als sudo-Benutzer mit dem Befehl su
an. Nachdem die Anmeldung erfolgreich war, möchte ich meinen Mount-Befehl ausführen.
import pexpect
cmd1 = "su"
cmd2 = "mount -t cifs -o username=abc,password=def //101.101.101.214/Volume1 /home/Juna/Drive"
pwd = "my_password"
child = pexpect.spawn(cmd1)
child.expect('Password:')
child.sendline(pwd)
child.expect('#')
child.sendline(cmd2)
Ich bekomme nicht die gewünschten Ergebnisse von meinem Skript. Können Sie mir bitte mitteilen, was in meinem Skript getan oder geändert werden muss, um das gewünschte Ergebnis zu erzielen?
Es ist wirklich besser, den Benutzer zu geben, dies zu tun [ 'NOPASSWD' sudo Zugang] (http://unix.stackexchange.com/q/18830/45416), um das root-Passwort in das Python-Skript einzufügen. Es ist wahrscheinlich, dass es aus diesem Skript austritt (zB wenn Sie es zu Github schieben), und es macht den Aufruf komplexer. – poolie
Sagen Sie nicht einfach "Ich bekomme nicht das gewünschte Ergebnis", sagen Sie, was los ist. – poolie