Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
已验证用户接受的python中的'su'密码_Python_Linux_Operating System_Ubuntu 16.04 - Fatal编程技术网

已验证用户接受的python中的'su'密码

已验证用户接受的python中的'su'密码,python,linux,operating-system,ubuntu-16.04,Python,Linux,Operating System,Ubuntu 16.04,我想验证用户脚本输入的root密码,该脚本用于安装需要root的驱动程序。 如果我尝试以sudo或超级用户权限运行该安装程序,则会出现以下错误: ERROR: installer must be run as root 我在脚本开始时通过getpass()方法接受密码,并在执行期间使用该密码,因此不想让用户等待这么长时间 我找到了,但这将检查sudo密码的有效性,而不是root。 我想检查密码是否对root登录有效 我应该如何使用python验证用户输入的密码是否正确 据我所知,这是一个问题

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

ERROR: installer must be run as root 
我在脚本开始时通过
getpass()
方法接受密码,并在执行期间使用该密码,因此不想让用户等待这么长时间

我找到了,但这将检查sudo密码的有效性,而不是
root
。 我想检查密码是否对root登录有效

我应该如何使用python验证用户输入的密码是否正确

据我所知,这是一个问题,我必须通过执行so
su
操作来检查根密码的有效性


我们不能以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")

可能有帮助或相关:@davedwards这也适用于sudo不仅适用于rootyes,您是正确的,但是因为您不想以普通用户(而不是
root
user)的身份运行脚本,所以您需要授予普通用户
sudo
权限,并使用用户的“sudo”密码运行脚本,不是具有
root
密码的
root用户。是这样吗?将root权限授予某些用户将不起作用,安装程序要求root用户安装运行方式为
sudo
的用户与运行方式为
root
的用户相同。见: