使用Python脚本修改Linux用户的密码

Posted Ken-Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python脚本修改Linux用户的密码相关的知识,希望对你有一定的参考价值。

直接上代码

使用python,通过系统默认的passwd命令,修改用户Tom的密码为NewPassword

import subprocess

# Get the username and new password from the user
username = "Tom"
new_password = "NewPassword"

# Use the \'passwd\' command to update the password
# The \'echo\' command is used to pass the new password to \'passwd\'
# The \'subprocess.run()\' function runs the command in the terminal
result = subprocess.run(
    f\'echo "new_password\\nnew_password\\n" | passwd username\',
    shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE
)

# Check if the command was successful
if result.returncode == 0:
    print("Password updated successfully!")
else:
    print("Error updating password:")
    print(result.stderr.decode())

 

Linux 通过 shell 脚本修改密码

交互方式修改密码

1. ssh 远程到主机;

2. 切换到root账号;

[一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK];

3. passwd username

使用passwd username 修改 username 的密码;
使用该命令会有提示,即进入了交互界面,输入密码即可。

使用脚本修改密码

很多时候我们可能需要远程执行服务器上的脚本来修改账号密码,此时就没有办法进行交互了。
此时可以使用如下两种方式修改密码:

方式1:

echo "password" | passwd testuser --stdin > /dev/null 2>&1

方式2:

echo testuser:password|chpasswd

注:

  1. 密码字符串的双引号,可有可无,见上面 方式1 和 方式2 的例子

  2. 如果密码中包含 $ 字符,需要使用反斜线进行转义,如:

echo testuser:password\$|chpasswd

转自https://segmentfault.com/a/1190000003866142 特别感谢他在我职业生涯对我的帮助。

以上是关于使用Python脚本修改Linux用户的密码的主要内容,如果未能解决你的问题,请参考以下文章

批量修改Linux密码脚本(Python)

linux如何通过脚本来修改用户的密码?脚本自动化修改用户密码?

Linux/CentOS Shell脚本中非交互式修改密码

Linux 通过 shell 脚本修改密码

如何通过 Linux 终端使用 python 脚本关闭所有 PC(Linux)(全部启用 ssh 且用户名和密码相同)

python批量修改linux主机密码