我正在尝试用 Python 编写一些脚本,偶然发现需要制作一些东西来更新 Linux 系统中给定用户的密码...
UPDATE:目的是实现根据给定数据/算法自动更新密码的脚本。重要的是没有人为干预......
有什么办法可以实现吗?还是应该通过其他方式搜索?
谢谢!
最佳答案
您可以使用openssl
和usermod
:
#!/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', password), 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
关于python - 有没有办法在 Python 中编写脚本来更改 Linux 中的用户密码?如果是这样,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749083/