问题标签 [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.

0 投票
2 回答
2410 浏览

python - 使用python 3在linux中验证用户

我编写了需要使用 Linux 用户名和密码对用户进行身份验证的程序。我认为它应该与PAM有关。我曾尝试从 google PAM 模块中搜索 python3,但没有找到。有没有准备好使用 PAM 库,或者尝试制作我自己的库?PAM 的使用是否应该考虑一些特殊的安全风险?

我知道我可以使用 python3 spwd 类对用户进行身份验证,但我不想使用它,因为我必须以 root 访问权限运行我的程序。

0 投票
3 回答
13608 浏览

linux - OpenID PAM 模块

我正在寻找可以使用 OpenID 进行身份验证的 PAM 模块。我的想法是我想使用我的 gmail 帐户和密码登录我的 Linux 机器。我发现 Google Code 中有一个开源项目,它似乎在做我想做的事情,但我没有看到任何可供下载的代码。

我看到有很多示例或实现,但它们都是关于 Web 应用程序的。世界上有没有基于 Web 的 OpenID 应用程序?在技​​术上是否可以制作基于非 Web 的 OpenID 应用程序?我天真地认为这应该是可能的。我可以模拟浏览器发送给 OpenID 提供者的任何数据包并取回结果。只要我的 Linux 机器连接到 Internet,我应该可以使用我的 OpenID 登录。

感谢有关如何制作 OpenID PAM 模块的任何评论、建议或指示。

谢谢!

0 投票
2 回答
2712 浏览

python - Python Unix 身份验证

我需要对主机和 NIS 上的用户名进行简单的身份验证。我正在用 Python 编写这段代码。
我尝试使用 PAM 进行身份验证。为此,我下载了一个名为 Python Pam 的 Python 模块。

我使用的代码:

<service>我在 /etc/pam.d/ 中创建的配置文件在 哪里,
该文件包含以下代码

此代码适用于某些给出正确答案的主机,但不适用于其他主机
即使我<service>用 login 或 sshd 替换为

对于某些主机上的正确密码,它仍然返回 False。

那么有人知道为什么这不起作用。我不需要使用 pam 或任何模块。我可以从 Python 调用的 unix 中是否有任何命令可以验证用户名?并且最好在所有基于 unix 的系统上工作,包括 Linux、Solaris、HP-UX、AIX。
谢谢

0 投票
1 回答
591 浏览

authentication - 如何提示来自 PAM 模块的一些信息

我正在为 ssh 编写一个 Plug-gable 身份验证模块。我正在寻找在用户名和密码验证之后但在授予用户访问权限之前提示一些额外信息。谁能建议我该怎么做。

实际上,在 SSH 之后,我想为其他一些服务扩展相同的功能。所以我在看一些 PAM 模块级别的建议。

[编辑] 解决方案:我使用了 PAM 提供的对话功能。它用于在 PAM 感知应用程序和模块之间进行通信。

谢谢,GG

0 投票
3 回答
8539 浏览

java - Hudson 无法使用 unix 用户/组进行身份验证

我正在尝试使用 unix 用户/组数据库作为哈德森的安全领域。linux 服务器使用 NIS 进行用户管理。我的帐户可以通过 ssh 登录 hudson 服务器。

并且 hudson 服务器由用户 'hudson' 运行,该用户也是组 'shadow' 的成员,因此 hudson 可以读取 /etc/shadow。我使用“测试”按钮测试了配置,哈德森告诉我它运行良好。

但我无法使用我的 unix 帐户和密码登录 hudson 服务器。

我在 hudson 的日志中发现了下面的 java 异常,

1月17日更新

主机是 RHEL 4.5,我创建了用户和组shadow,然后将hudson添加到组shadow中。

我还尝试在另一台 RHEL 4.8 主机上设置 hudson。这次我用root运行了hudson,

但是我仍然没有运气让 unix 用户/密码组工作。而且我在 /var/log/messages 和 /var/log/secure 中找不到任何 pam 错误消息。看起来 hudson 在实际使用 pam 进行身份验证之前抛出了异常。红帽企业 Linux WS 第 4 版(Nahant 更新 8)

0 投票
2 回答
502 浏览

c - C 程序调用 pam_passwdqc.so 并报告密码强度,通过/失败

是否有可能(以及我在哪里可以找到接口文档)编写一个简单的 C 程序来使用 pam_passwdqc.so 来确定潜在的密码是否足够强大以通过 passwd 的要求?

0 投票
1 回答
1134 浏览

security - 用户登录期间如何限制 SELinux MLS 范围?

我试图了解什么逻辑决定了用户是否可以使用特定的 MLS 敏感级别登录。起初我怀疑 pam_selinux.so 会读取 /etc/selinux/.../seusers 文件以了解哪个用户绑定到哪个 seuser,然后将用户限制为等于或低于 MLS 范围的高分量的灵敏度。

但是,在浏览其源代码后,我发现,在询问用户是否愿意从默认上下文更改其安全上下文后,pam_selinux 通过调用内核策略来检查新的 MLS 标签是否合适。

以下代码位于 Ubuntu libpam-modules 1.1.1-4ubuntu2 包中的 modules/pam_selinux/pam_selinux.c 中。

在我看来,这个检查实际上是在内核策略中检查的,在 security_compute_av() 调用中可以看到。这颠覆了我对 SELinux 登录的理解。

所以,有人可以解释一下:

  • 用户选择的登录安全级别的有效性如何确定?

  • 该逻辑在策略、pam_selinux 和内核中究竟是如何实现的?

目前,我对类型强制多重、类别安全或基于角色的访问控制不太感兴趣,因此无需解释如果这些组件不影响 MLS 敏感性,它们是如何验证的。

0 投票
3 回答
26202 浏览

linux - 如何创建一个pam模块?

谁能告诉我这个...我想创建一个类似于 /etc/pam.d 中的登录模块的 pam 模块

0 投票
0 回答
203 浏览

pam - 如何创建一个简单的 pam 应用程序?

可能重复:
如何创建 pam 模块?

请帮帮我。我想创建一个使用人脸身份验证的登录应用程序...

0 投票
1 回答
191 浏览

ssh - 以 root 和非 root 帐户登录时 OpenSSH 的行为

我正在为 SSH 编写一个 PAM 模块来强制执行一层身份验证。为此,我需要 PAM 模块中的 close_session() 和 pam_sm_setcred() 函数中的终端 ID,而 OpenSSH 将其硬编码为“ssh”。我对 OpenSSh 代码做了一些更改,因此它可以正确设置终端 ID。这些变化是:

在 session.c 的 session_pty_req(Session *s) 函数中添加 do_pam_set_tty() 并在 monitor_wrap.c 的 mm_pty_allocate() 函数中添加 do_pam_set_tty()

它适用于 root 并且我在 pam_sm_cred() 和 pam_sm_close_session() 函数中获得了适当的 tty。

但是使用相同的代码,当我尝试通过非 root 帐户进行 ssh 时,我在 pam_sm_close_session() 中获得了 tty,但在 pam_sm_cred() 中没有。我不确定为什么 ssh 对于 root 和非 root 帐户的行为不同。

是否有任何东西会触发 root 和非 root 帐户的 SSH 行为,或者任何人都可以建议我这里有什么问题。我不知道我该如何继续,如果有人能给我一些指示,那就太好了。