gpt4 book ai didi

python - 如何从 python 更改 Linux 用户密码

转载 作者:IT王子 更新时间:2023-10-29 01:16:40 25 4
gpt4 key购买 nike

我在使用 python 更改 Linux 用户的密码时遇到问题。我已经尝试了很多东西,但我无法解决问题,以下是我已经尝试过的示例:

sudo_password是sudo的密码,sudo_command是我要系统运行的命令,user 是从列表中获取的,是我要为其更改密码的用户,而 newpass 是我要分配给“用户”的通行证

    user = list.get(ANCHOR)
sudo_command = 'passwd'
f = open("passwordusu.tmp", "w")
f.write("%s\n%s" % (newpass, newpass))
f.close()
A=os.system('echo -e %s|sudo -S %s < %s %s' % (sudo_password, sudo_command,'passwordusu.tmp', user))
print A
windowpass.destroy()

'A'是os.system执行的返回值,这里是256,我也试过了

    A=os.system('echo  %s|sudo -S %s < %s %s' % (sudo_password, sudo_command,'passwordusu.tmp', user))

但它返回相同的错误代码。我用“passwd”命令尝试了其他几种方法,但没有成功。使用“chpasswd”命令我试过这个:

    user = list.get(ANCHOR)
sudo_command = 'chpasswd'
f = open("passwordusu.tmp", "w")
f.write("%s:%s" % (user, newpass))
f.close()
A=os.system('echo %s|sudo -S %s < %s %s' % (sudo_password, sudo_command,'passwordusu.tmp', user))
print A
windowpass.destroy()

还有:

    A=os.system('echo %s|sudo -S %s:%s|%s' % (sudo_password, user, newpass, sudo_command))
@;which returns 32512
A=os.system("echo %s | sudo -S %s < \"%s\"" % (sudo_password, sudo_command, "passwordusu.tmp"))
@;which returns 256

我也像这样尝试过“mkpasswd”和“usermod”:

    user = list.get(ANCHOR)
sudo_command = 'mkpasswd -m sha-512'
os.system("echo %s | sudo -S %s %s > passwd.tmp" % (sudo_password,sudo_command, newpass))
sudo_command="usermod -p"
f = open('passwd.tmp', 'r')
for line in f.readlines():
newpassencryp=line
f.close()
A=os.system("echo %s | sudo -S %s %s %s" % (sudo_password, sudo_command, newpassencryp, user))
@;which returns 32512

但是,如果你去 https://www.mkpasswd.net ,散列“newpass”并替换“newpassencryp”,它返回 0,这在理论上意味着它已经正确,但到目前为止它没有更改密码。

我在 Internet 和 stackoverflow 上搜索了这个问题或类似问题,并尝试了公开的解决方案,但同样没有成功。

我真的很感激任何帮助,当然,如果您需要更多信息,我很乐意提供!

提前致谢。

最佳答案

您运行此命令的用户必须具有 sudo 权限才能在没有密码的情况下运行 passwd 命令。

>>> from subprocess import Popen
>>> proc = Popen(['/usr/bin/sudo', '/usr/bin/passwd', 'test', '--stdin'])
>>> proc.communicate('newpassword')

关于python - 如何从 python 更改 Linux 用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13179126/

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