使用 python os.system('kill') 从根返回给用户不起作用



我需要从我的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')

最新更新