Ändern der Benutzer in python

Ich Schreibe ein einfaches script, das neu startet, ein hadoop-slave. Im Skript habe ich dazu einige erste änderungen als root-Benutzer. Danach muss ich ändern, um von Benutzer "hadoop" und führen Satz von Befehlen. Ich war mit os.system zum ausführen von Befehlen, aber ich bezweifle, ob es gut funktioniert. Zum Beispiel:

uid=pwd.getpwnam('hadoop')[2]
os.setuid(uid)
os.system('whoami')
os.chdir('/home/hadoop/hadoop/')
os.system('bin/hadoop-daemon.sh stop tasktracker')

Wieder habe ich um einige Befehle als root nach dieser und wieder werden user "hadoop" und ausführen :

os.system('bin/hadoop-daemon.sh stop tasktracker')

Ich habe drei Fragen hier ,

  1. Ist os.system ist der beste Befehl, den ich verwenden können, um die Frage linux-Befehle ?

  2. Ich bin in der Lage zu ändern von root-Benutzer hadoop, indem Sie die Befehle oben, aber ich bin nicht in der Lage zu ändern, um root-Benutzer (kann ich verstehen, gibt es Sicherheitsprobleme, wenn Sie gestatten, möchte ich wissen, gibt es irgendeine Möglichkeit, das zu tun , atleast durch die übergabe Passwort) ?

  3. Ist os.setuid() zu arbeiten ? whoami Drucke Benutzer hadoop-aber der Prozess "tasktracker" ist nicht aufgehört, diesen Befehl, aber wenn ich die gleichen Befehle manuell funktioniert es einwandfrei (ich benutze "su hadoop" anstelle von setuid, während Sie versuchen, es manuell).

Vielen Dank für Ihre Hilfe.

  • Sethu
InformationsquelleAutor sethu | 2011-11-06
Schreibe einen Kommentar