题:
我正在尝试执行从PostgreSQL数据库读取的cmd.我能够手动切换到root用户,然后切换到postgre用户并访问所需的信息.
我的问题是,当我运行它时,它只是挂起而没有任何反应.
我具有root密码,从当前用户切换时将需要该密码,但系统不会提示我输入该密码.
我如何才能使其不挂起并提示输入密码?
为了简单起见,下面的代码仅执行“ ls”.
码:
def popen_cmd_shell(command):
print command
process = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True)
proc_stdout = process.communicate()[0].strip()
return proc_stdout
if __name__ == '__main__':
querylist = popen_cmd_shell('su - root; ls;')
print querylist
更新一:
我无法使用Linux SUSE上没有python 2.7附带的任何库.我只需要执行一个命令并退出即可.
更新二:
我无法以超级用户身份运行脚本,因为我需要执行其他需要我不是超级用户的任务.
更新三:
根据LeBarton的建议,我已经让脚本登录到root用户,尽管ls命令从未以root用户身份执行,但它以我最初的用户身份执行.当我运行命令时,系统提示我输入root密码