python 修改linux密码登录,如何从python更改Linux用户密码

我在从python更改Linux用户密码时遇到问题。我尝试过很多事情,但是我无法解决这个问题,下面是我已经尝试过的一些事情的示例:

sudo_password是sudo的密码,sudo_command是我希望系统运行的命令,

user是从列表中获取的,是我要为其更改密码的用户,newpass是我要分配给“user”的密码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,理论上这意味着它已经正确了,但到目前为止它并没有更改密码。

我在互联网和stackoverflow上搜索了这个问题或类似的问题,并尝试了暴露的解决方案,但还是没有成功。

我真的非常感谢任何帮助,当然,如果你需要更多的信息,我会很高兴提供它!

提前谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值