gpt4 book ai didi

python - 执行 subprocess.Popen ('su' 时挂起,shell=True)

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:09 27 4
gpt4 key购买 nike

如果这是一个重复的问题,我深表歉意,我尝试在网上搜索,但大多数人都使用 sudo。

但是,我不能使用 sudo,我可以使用“su”以 root 身份登录。我正在执行以下代码:

try:
p_su = subprocess.Popen('su', stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True)
out_su, err_su = p_su.communicate()
# >>> The program hangs here. <<<
except:
print "Unable to login as root (su). Consult the Software Engineer."
sys.exit()

print out_su
if "Password" in out_su:
try:
p_pw = subprocess.Popen('password', stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True)
out_pw, err_pw = p_pw.communicate()
except:
print "Unable to login as root (password). Consult the Software Engineer."
sys.exit()

在上述时间点,程序至少挂起 30 多分钟。当我在 linux 终端中运行“su”时,它需要一两秒钟,有时甚至更少。

最佳答案

在挂起的那一刻,su 正在等待您输入密码。不是挂了,是耐心等待。

如果您从命令行(如 python my_program.py)运行此程序,请尝试输入一行废话并按回车键。我希望 err_su 会有这样的内容:

Password: 
su: Authentication failure

关于python - 执行 subprocess.Popen ('su' 时挂起,shell=True),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25550947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com