我正在编写一个PAM模块,它将用户名/密码写在一个文件中,供其他应用程序进一步处理。我只看到了PAM_AUTHTOK项,但我不确定它来自哪种类型。有没有人知道这一点,或者其他获得明文密码的方法?
发布于 2016-10-01 09:48:42
这是一个非常老的线程,但也有pam_exec:https://linux.die.net/man/8/pam_exec
例如,PAM配置中类似以下内容:
auth sufficient pam_exec.so expose_authtok /usr/local/bin/myscript-examplemyscript的内容-示例,回显所有变量:
#!/bin/sh
read password
echo "User: $PAM_USER"
echo "Ruser: $PAM_RUSER"
echo "Rhost: $PAM_RHOST"
echo "Service: $PAM_SERVICE"
echo "TTY: $PAM_TTY"
echo "Password : $password"
exit $?发布于 2011-10-11 21:39:28
您读过Linux-PAM应用程序开发人员指南吗?在RHEL类型的系统上,它将在/usr/share/doc/pam-devel-<version>/Linux-PAM_ADG.txt中,或者您可以在online at various places上在线找到它。
请看“获取PAM项”部分,该部分记录了pam_get_item()函数。您可以使用PAM_AUTH_TOK常量请求密码:
PAM_AUTHTOK
身份验证令牌(通常是密码)。除了pam_sm_authenticate(3)和pam_sm_chauthtok (3)之外,所有模块函数都应该忽略此内标识。在前一个函数中,它用于将最新的身份验证令牌从一个堆叠模块传递到另一个模块。在后一个函数中,令牌用于另一个目的。它包含当前活动的身份验证令牌。
发布于 2011-12-31 01:00:14
在调试时只打印PAM_AUTHTOK的内容如何?要对其进行有意义的使用,您必须在模块之间有某种约定或约定。
顺便说一句:在内存中保留明文密码并尽快将其从内存中删除(或者更好:在RAM中锁定该区域,或者加密交换)与将明文密码写入磁盘之间是有区别的。后者太不安全了,不要那样做。
https://stackoverflow.com/questions/7725770
复制相似问题