2016-09-21 3 views
0

pythonスクリプトからrootユーザとしてコマンドを実行する必要があります(sudoは動作しません)ので、os.system( 'sudo su ')root権限を得ることができます。しかし、再び私はユーザーに戻る必要があります。私はos.system( 'exit')を試しましたが、rootログインからユーザーログインには出られません。私は手動で端末にexitを入力して、ユーザーのログインに戻る必要があります。誰かがこれをPythonでどうやってやるのを助けることができますか?pythonを使ってrootからユーザに戻るos.system( 'kill')not working

import os 
import time 
os.system('clear') #clear the terminal 
os.system('sudo eject /dev/sr0') 
time.sleep(2) 
os.system('sudo modprobe option') 
time.sleep(2) 
os.system('sudo su') 
time.sleep(5) 
os.system('echo 2001 7d0e > /sys/bus/usb-serial/drivers/option1/new_id') 
time.sleep(2) 
os.system('exit') 
+0

あなたは出力に単一のコマンドを実行するために '' sudoのbashの-c「コマンド>ファイル」を使用することができますようリダイレクトルート。これは関数にするのが簡単です – slezica

+0

@slezica私はこれをかなり理解していません。あなたが気にしない場合は、上記のpythonスクリプトでこれを行う方法の例を私に見せてください。 – bobdxcool

+0

下記の例題を残しました:) – slezica

答えて

0

> /sys/bus/...へのリダイレクトは、独自のユーザーによって行われ、その後、sudo echoに与えられたが、根が1位にファイルにアクセスするために必要とされているので、あなたのechoコマンドがsudoでは動作しません。

がリダイレクトを試みる前に、root権限を買収すること、代わりにsudo bash -c 'command > redirect'を使用してみてください:

def sudo(command): 
    return os.system("sudo bash -c '{}'".format(command)) 

sudo('echo foo > /sys/restricted/file')