Linux上可插入认证模块(PAM)库的接口,用纯Python编写(使用cTypes)

simplepam的Python项目详细描述


上的可插入身份验证模块(PAM)库的接口 linux,用纯python编写(使用cTypes)

概述

此模块提供一个authenticate函数,该函数允许调用方 对上的pam系统验证给定的用户名/密码 Linux系统。

用法

以根用户身份运行python3 setup.py install以安装模块,然后 导入authenticate函数,并按如下方式使用:

fromsimplepamimportauthenticateauthenticate(username,password,service)

全功能签名如下:

authenticate(username,password,service='login',encoding='utf-8',resetcred=True)

参数service指定要验证的pam服务 反对。默认为login

usernamepasswordservice可以作为字符串或 字节。如果它们是字符串,则将使用 由encoding参数给出,如果省略,则作为utf-8。

如果身份验证成功并返回 False如果身份验证失败(或者pam返回错误(fixme))。

python版本

此模块与Python2和Python3一起工作。

许可证

这个original python-pam module是由chris atlee写的,参见 原始版权声明:

Copyright (C) 2007-2009 Chris AtLee <chris@atlee.ca>.
Licensed under the MIT license.

Leon Weber于2013-2014年进行的修改leon@leonweber.de

  • 移植到python3
  • 将呼叫添加到pam_end()
  • 使用ctypes.byref()而不是ctypes.pointer()通过引用传递参数
  • 正确处理密码、用户名和服务的编码(sebastian riese提供的补丁)
  • 将调用添加到pam_reset()(由lertsenem修补)
  • 重新添加python2支持(enovance的victor stinner提供的补丁)

此模块在MIT license下获得许可。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在列表视图中插入调用按钮   java公开类别ID   java在使用JSch通过jumphost连接到远程主机时“拒绝主机密钥”   java连接。在Hibernate中为每个select查询调用getMetaData()   java如何在安卓 studio的文本监听器上突出显示过滤列表视图中的文本?   安卓应用程序、进程和Java虚拟机之间的对应关系是什么?   java如何使用Android在应用程序标签中添加这两个名称   java框架来衡量花费的时间和内存   java自动将字符串缩放到屏幕的宽度   在eclipse导出中创建jar文件时发生java错误   java Spring Web应用程序已初始化两次   java将数据插入数据库“表产品没有名为accFor(代码1)的列”   运行时如何执行。通过java中的Jruby使用带参数的rb   java Android:将视图从父视图转移到另一个视图   java如何在具有依赖关系的nexus中部署springboot maven项目   Google Java style:checkstyle文件与Visual Studio代码的相应编辑器配置文件   java以exif格式从jpeg或png文件中提取元数据