问题标签 [pam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authentication - 如何使用 PAM 对用户进行身份验证?
我已经阅读了这个页面,但我有点困惑......
- pam_start
- 是什么
struct pam_conv
以及应该如何填写? - 到底是
service_name
什么,它是什么意思?
- 是什么
是否有使用 PAM 登录用户(或至少验证他们提供的凭据)的示例?
c - PAM - 找到控制标志(必需,足够)
我正在修补一个 OTP 模块(yubico_pam),并且我正在尝试访问管理员选择的控制标志(例如required、sufficient等)。
任何的想法?这是否可行(不解析文件)?
bash - pam_script 获取前一个模块的输出
如何使用 pam_script 获得以前的模块输出?
因此,如果我要在 pam_unix 和 pam_deny 之间添加一个 pam_script,如果身份验证失败,我可以执行一些操作吗?
编辑:显然,如果您更改[success=1]
为[success=2]
pam 将跳过额外的一行。
这意味着我可以在 pam_deny 之前放置一个脚本并在成功时增加一个脚本,然后在 pam_deny 之后放置一个脚本以进行正确的身份验证。
不过,我仍然需要知道如何使用两个不同的脚本。如何将要使用的确切脚本传递给 pam_script.so?
原来的:
修改的:
python - 没有root权限的python中的pam身份验证
我正在寻找一种方法让我的 python 程序通过 pam 处理身份验证。我正在为此使用http://code.google.com/p/web2py/source/browse/gluon/contrib/pam.py,只要我的 python 程序以 root 身份运行,它的效果就很好,这并不理想我的意见。
如何在不需要 root 权限的情况下使用 pam 进行用户名/密码验证?
c++ - 如何使用 C++、Pam 和 Ubuntu 添加自定义两因素身份验证?
我希望使用 c++ 将我自己的 2 因素身份验证添加到我的 ubuntu linux 服务器。我将让我的星号框使用唯一 ID 呼叫我的手机,该 ID 必须在 linux 登录提示符处输入,在密码之前或之后,有(或)没有证书 - 取决于我如何配置它。无论哪种方式,我都希望这个额外的输入步骤作为登录的一部分。
我应该为此使用 PAM 吗?如果是这样,有人可以向我指出带有 Pam 和登录的额外输入示例吗?
authentication - 有没有办法将密码传递给 pam_start() 或 pam_authenticate() 并绕过“对话”?
pam_start() 接受一个结构参数(http://linux.die.net/man/3/pam_conv),您可以在其中设置获取密码的回调方法。由于在调用 pam_start 之前我已经有了密码,我想知道是否有办法传递该信息而不是设置回调。
c++ - 旧应用程序的 PAM 身份验证
我有一个旧版应用程序,它通过网络异步接收用户名/密码请求。由于我已经将用户名和密码存储为变量,那么在 Linux(Debian 6)上使用 PAM 进行身份验证的最佳方法是什么?
我已经尝试编写自己的对话功能,但我不确定将密码输入其中的最佳方法。我已经考虑将它存储在 appdata 中并从 pam_conv 结构中引用它,但是几乎没有关于如何做到这一点的文档。
有没有一种更简单的方法来验证用户而不会过度使用对话功能?我也无法成功使用 pam_set_data,我不确定这是否合适。
这就是我正在做的事情:
对话功能的初始尝试导致(密码被硬编码以进行测试):
任何帮助,将不胜感激。谢谢!
c - 简单的 PAM 示例
我想使用 PAM 开发一个身份验证模块,但我无法让一个简单的示例正常工作。
对于初学者,我想做一个简单的 SSH 登录系统,如果用户输入 username backdoor
,那么用户将无需密码即可登录(就像在 TRON Legacy 中一样)。
我尝试将本指南用作模板,但无法正常工作。到目前为止,这是我的代码:
当我使用 name 登录时backdoor
,我的权限被拒绝。我已尝试创建用户帐户,但仍会提示我输入密码。
当我使用有效用户登录时,我会看到“我在这里”打印输出。有没有更好的方法来调试这样的东西,还是主要是反复试验?
编辑:
我/etc/pam.d/sshd
在@include common-auth 之后添加了这个:
auth sufficient mypam.so
这是在其他 2 个 .so 文件之后出现的,但我很确定它每次都会被执行。
我没有修改 pam.conf (那里什么都没有)。我认为从 SSH 开始是最简单的,因为我不必每次都注销。
编辑:
我终于让它工作了。结果如下:
https://github.com/beatgammit/simple-pam
它是开源的,所以如果您有兴趣,请看一下!
python - python脚本不从cron运行
我有一个可以从命令行很好地执行的 python 脚本“start.py”。其中只有一个语句(打印“hello”)。编辑: start.py 在第一行还包含一个工作解释器指令。
一旦我从 cron 作业运行脚本,每次触发时,系统日志中都会出现一条消息:
我已经尝试将 PATH 和 PYTHONPATH 信息添加到 cron 文件中:
我找到了几个看起来相同但没有任何帮助的答案和解决方案。我错过了什么?
linux - 自定义 PAM 配置:如何将用户名/密码参数传递给 pam_exec.so 模块?
我正在使用 openvpn,一个 PAM 感知应用程序。它有以下有用的文档:
现在我想在 /etc/pam.d 中创建一个 openvpn 配置,从 openvpn PAM 插件获取用户名/密码并将其传递给脚本。进入:
使用以下命令设置 PAM openvpn 配置:
auth required pam_exec.so myscript
并配置openvpn调用:
plugin openvpn-auth-pam.so "openvpn login USERNAME password PASSWORD"
一切似乎都是直截了当的。让我明白的部分是我用来将 openvpn 中定义的登录名/密码输出到脚本的语法。pam_exec.so 的文档似乎忽略了这个关键问题。
例如:
auth required pam_exec.so myscript %login %password
以上只是我的伪代码,它可能看起来如何,这个语法应该是什么样子?