python3管理linux密码,如何从python更改Linux用户密码

我在从python更改Linux用户密码时遇到问题.我已经尝试了很多东西,但是我无法解决这个问题,这里是我已经尝试过的事情样本:

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

user来自List,是我想要更改密码的用户,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、付费专栏及课程。

余额充值