我正在尝试用Python编写一些脚本,偶然发现需要在Linux系统中更新给定用户的密码……
更新:目标是实现脚本从给定的数据/算法自动更新密码.重要的是没有人为干预……
有没有办法实现这一目标?或者我应该通过其他方式搜索?
谢谢!
最佳答案
你可以使用openssl和usermod:
原文链接:https://www.f2er.com/linux/440493.html#!/usr/bin/env python
import subprocess
login = 'username'
password = 'somepassword'
# OpenSSL doesn't support stronger hash functions,mkpasswd is preferred
#p = subprocess.Popen(('openssl','passwd','-1',password),stdout=subprocess.PIPE)
p = subprocess.Popen(('mkpasswd','-m','sha-512',stdout=subprocess.PIPE)
shadow_password = p.communicate()[0].strip()
if p.returncode != 0:
print 'Error creating hash for ' + login
r = subprocess.call(('usermod','-p',shadow_password,login))
if r != 0:
print 'Error changing password for ' + login