gpt4 book ai didi

python - 在用户接受的 python 中验证 `su` 密码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:23 27 4
gpt4 key购买 nike

我想验证由用户脚本输入的 root 密码,该脚本用于安装需要 root 的驱动程序。如果我尝试以 sudosuperuser 权限 运行该安装程序,它会给出以下错误:

ERROR: installer must be run as root 

我在脚本开头借助 getpass() 方法接受密码,并将在脚本执行之间使用该密码,因此不想让用户等待这么长时间了。

我找到了 what-is-the-best-way-for-checking-if-the-user-of-a-script-has-root-like-privileghow-to-verify-a-users-password-for-root-privledges-in-python但这将检查 sudo 密码的验证,而不是 root。我想检查密码是否对 root 登录有效。

我应该如何使用 python 验证 用户输入的密码 对于 root 是正确的?

据我所知,我必须通过执行 su 操作来检查 root 密码的有效性

我们不能以 root 身份运行整个脚本,因为安装后脚本将以普通用户身份运行一些测试。

最佳答案

在阅读了多篇文章之后,我发现我们可以通过 Python 脚本验证 root 密码。以下是我对相同内容进行身份验证的方法。

import subprocess
import getpass
FAIL = 'Password: \r\nsu: Authentication failure'

def validate_pass(passwd):
ret = 0
try:
cmd = '{ sleep 1; echo "%s"; } | script -q -c "su -l root -c ls /root" /dev/null' % passwd
ret = subprocess.check_output(cmd, shell=True)
return ret
except:
return 1



passwd = getpass.getpass(prompt='Password: ', stream=None)
res = validate_pass(passwd).strip()
if FAIL == res:
print(res)
print ("Invalid paasword")
else:
print(res)
print ("Valid paasword")

关于python - 在用户接受的 python 中验证 `su` 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52899006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com