我需要以root用户身份从我的python脚本运行一个命令(只是sudo不会工作),所以我使用os.system(' sudo su')并且能够获得root访问权限。但我再次需要返回给用户。我尝试过os.system('退出'),但它仍然没有从root登录到用户登录。我必须在终端中手动输入exit才能返回用户登录。有人可以帮我解决如何在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')
答案 0 :(得分:0)
您的echo
命令无法与sudo
一起使用,因为重定向到> /sys/bus/...
是由您自己的用户进行的,然后提供给sudo echo
,但是需要在第一位访问该文件。
尝试使用sudo bash -c 'command > redirect'
代替,在尝试重定向之前获取root权限:
def sudo(command):
return os.system("sudo bash -c '{}'".format(command))
sudo('echo foo > /sys/restricted/file')