gpt4 book ai didi

python - 如何使用python脚本编辑sudo权限linux文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:19 33 4
gpt4 key购买 nike

我正在将文本附加到需要 sudo 权限的文件。当我运行下面的 python 脚本时:

import subprocess
ssid= "testing"
psk= "testing1234"
p1 = subprocess.Popen(["wpa_passphrase", ssid, psk], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["sudo","tee","-a","/etc/wpa_supplicant/wpa_supplicant.conf",">","/dev/null"], stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close()
output,err = p2.communicate

它将按预期附加到文件,但会附加以下内容:

network={
ssid="testing"
#psk="testing1234"
psk=9891dab18debe8308a5d3bf596f5277e4a5c158bff016145830b12673ef63360
}

当我想要这个时:

network={
ssid="testing"
psk="testing1234"
key_mgmt=WPA-PSK
}

这个子进程语法对我来说很复杂,所以我愿意接受替代方法!我尝试使用 f=open("appendtext >>/etc/wpa_supplicant/wpa_supplicant.conf") 但我需要以 sudo 身份运行,而且我似乎找不到通过 open() 执行此操作的方法。我收到权限错误。如有任何帮助,我们将不胜感激!!

最佳答案

这不是 python 或 subrpocess 问题,您将从 wpa_passphrase 获得预期输出,请参阅手册页:

NAME
wpa_passphrase - Generate a WPA PSK from an ASCII passphrase for a SSID

SYNOPSIS
wpa_passphrase [ ssid ] [ passphrase ]

OVERVIEW
wpa_passphrase pre-computes PSK entries for network configuration blocks of a wpa_supplicant.conf file. An ASCII passphrase and SSID are
used to generate a 256-bit PSK.

如果您需要纯文本密码,只需将其写入文件而不调用wpa_passphrase:

with open('/etc/wpa_supplicant/wpa_supplicant.conf', 'a') as conf:
conf.writelines(['network={\n', '\tssid="{0}"\n'.format(ssid), '\tpsk="{0}"\n'.format(psk), '\tkey_mgmt=WPA-PSK\n', '}\n'])

并且不要忘记使用sudo调用它:sudo python script.py

关于python - 如何使用python脚本编辑sudo权限linux文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57757444/

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