我有一个需要以特定用户身份运行的python脚本。因此,它首先要做的是在继续之前检查用户并su
给适当的用户。但是,subprocess.run
的未来使用仍将作为原始用户运行。
在控制台中,用户已切换,但在我切换到用户的exit
之前,其他内容无法显示。
这是python代码:
#!/usr/bin/env python3
import subprocess
REQD_USER = "someuser"
user = subprocess.run(['whoami'], stdout=subprocess.PIPE, universal_newlines=True)
if user.stdout != REQD_USER:
print("Changing user to: " + REQD_USER)
subprocess.run(['su', REQD_USER], stdout=subprocess.PIPE, universal_newlines=True)
# successfully switches users here
subprocess.run(['whoami'], stdout=subprocess.PIPE)
最后subprocess
行不会打印到控制台,直到我切换到用户的exit
并返回原始用户,然后打印原始用户。
如何切换到其他用户(假设我有密码)并继续以新用户身份在shell中运行命令,而不使用sudo?