我需要从我的python脚本运行命令作为根用户(只是sudo不能工作),所以我使用os。系统('sudo su'),我可以获得root访问权限。但我需要再次回到用户。我尝试了os.system('exit'),但它仍然没有从root登录到用户登录。我必须在终端手动输入出口才能回到用户登录。有人能帮我如何在python中做到这一点吗?
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')
您的echo
命令不能与sudo
一起工作,因为重定向到> /sys/bus/...
是由您自己的用户进行的,然后再给到sudo echo
,但是首先需要root才能访问该文件。
尝试使用sudo bash -c 'command > redirect'
代替,它将在尝试重定向:
def sudo(command):
return os.system("sudo bash -c '{}'".format(command))
sudo('echo foo > /sys/restricted/file')