python - 如何在python中验证root权限的用户密码

标签 python linux passwords python-2.x

我正在尝试编写一个 python 程序,该程序需要用户密码才能使用 subprocess 库运行一些外部命令。代码大致如下所示。

import subprocess

passwordInput = raw_input("What is your password: ")

subprocess.call('echo ' + passwordInput + ' | sudo -S pacman -Syy', shell=True)

此程序运行良好,但如果您输入的密码不正确,程序将失败。我将如何添加某种防错功能来检测密码输入是否错误?

我在想也许可以将这段代码包装在 while 循环中,然后使用 try-except 来测试密码,但是我不确定是哪种 except 可以做到这一点。

非常感谢任何帮助。

最佳答案

只需放弃 echo

import subprocess
subprocess.call(['sudo', '-S', 'pacman', '-Syy'])

sudo 程序会询问用户一定次数。您的 Python 程序不需要知道用户的密码。曾经。

另一个问题是您正在使用 shell=True,这意味着如果我的密码是 $nakel0ver 因为我喜欢蛇,您的程序将传递一个空密码给sudo.

关于python - 如何在python中验证root权限的用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928103/

相关文章:

Linux IP 别名 : how to setup Apache listen IP to be source IP for the same destination

python - 我扭曲的服务器有什么问题,它应该采用 .exe 并将其 stdio 发送给任何询问的人。相反,它不发送任何东西

python - 如何从 sqlite3 文件在 python 中生成模型类

python - 有什么方法可以在不将视频保存到本地的情况下从视频URL中提取音频吗?

linux - 使用单个命令通过 ssh 找不到命令,在连接到终端后找到

linux - 无法在 Linux 中生成 gpg key

JQuery 你的密码有多强

SVN加密密码存储

linux - 将密码应用于脚本

python - 有没有办法覆盖pytest(python)中的默认断言?