首页 > 解决方案 > 在 python 程序中使用 su 执行命令

问题描述

我想制作一个 python 程序来更改用户,为 su 提供密码并执行命令。不使用 SUDO。最好有子进程

例如:

su testuser -c id > /tmp/test

我已经编写了这些脚本,但它们不起作用。

import subprocess
su_password = ("Password\n")

proc = subprocess.Popen('su testuser -c id > /tmp/test', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc.stdin.write(su_password)
proc.stdin.flush()

和这个有预期的

import pexpect
child = pexpect.spawn('su testuser')
child.expect('Password: ')
child.sendline('Password123456')
child.sendline('id > /tmp/TEST')

标签: pythonpython-2.7ubuntusubprocess

解决方案


推荐阅读