- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用一个小型 C 程序尝试 PAM 身份验证:
#include <security/pam_appl.h>
#include <security/pam_misc.h>
#include <stdlib.h>
int main()
{
pam_handle_t* pamh;
struct pam_conv pamc;
pamc.conv = &misc_conv;
pamc.appdata_ptr = NULL;
pam_start("su", getenv("USER"), &pamc, &pamh);
if (pam_authenticate(pamh, 0) != PAM_SUCCESS) {
fprintf(stderr, "Auth failed!\n");
} else {
fprintf(stderr, "Auth succeeded!\n");
}
pam_end(pamh, 0);
return 0;
}
两种用户可以访问我的系统,一种是在本地影子数据库中创建的,另一种是遍历配置的 sssd
进程到 authenticate with LDAP against a remote active directory. 的。
我已经将 sssd
配置为插入 PAM,我可以通过系统上的大量日志和 sssd
的调试输出来确认这一点,但是以上程序仅适用于本地用户。需要针对 sss
进行身份验证的用户会从 pam_authenticate
返回一个 PAM_AUTH_ERROR
,无论他们是否输入了正确的凭据。
我肯定遗漏了一些明显的东西。如何在 C 程序中通过 PAM 访问 sss
?
最佳答案
根据
pam_start("su", getenv("USER"), &pamc, &pamh);
^^^^
您正在使用 su
PAM 服务。
在典型的默认配置中,su
PAM 堆栈可能未配置为使用 pam_sss
响应者。
可能的解决方案:
如果使用 su
适合您的应用,更新 /etc/pam.d/su
使用 pam_sss
.
使用已配置为使用的不同 PAM 服务 pam_sss
; login
例如。
在 /etc/pam.d/<service-name>
中为您的应用创建专用 PAM 服务
关于c - 如何在 C 程序中通过 PAM 查询 sssd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120339/
我想使用 PAM 对我的 C 网络应用程序的用户进行身份验证,并且我找到了一个 a nice PAM example在 Stack 上,我附在底部。问题是,在我的开发机器中,我有一个 PAM 设置使用
我正在研究 PAM 模块的设计方式,作为我自己的 JAAS LoginModule 的指南。让我感到惊讶的一件事是,尽管用于访问散列密码的方法大多与散列方法本身正交,但我无法找到任何可以充分利用此属性
我必须调用什么 PAM 来重置用户密码?我想不通。 背景: 我正在开发嵌入式 Linux 设备。客户安装此设备,并创建用户帐户。如果其中一个二级用户帐户被锁定,或者如果用户忘记了密码,我们需要一种方法
是否可以有一个 PAM 模块来检查尝试通过 OpenSSH 登录的用户是否已经登录,如果他们拒绝第二次登录? 我已经尝试了其他几种方法来阻止多个登录 session ,但没有任何效果,如果有人可以使用
我修改了示例 python 脚本: service = 'passwd' if len(sys.argv) == 3: user = sys.argv[1] password = sy
目前我有一个图形应用程序,它有两个级别的访问权限:运算符(operator)和管理员。登录和身份验证都是自制的,我想将应用程序切换为使用 PAM。我不确定这样做的正确方法是什么。 如果我错了,请纠正我
我正在尝试交叉编译 Linux PAM对于 android 的方式如下 `#!/bin/sh # Linux-PAM/build.sh INSTALL_DIR="`pwd`/out" export P
是否有任何工作包可以使用 PHP 更改 linux 用户密码? 我试过使用 PECL:PAM,但在尝试更改密码时出现错误。 编辑: PHP代码: echo pam_chpass($username,
我从 webfusion 安装了 ubuntu VPS 和 Plesk 当我通过腻子上的 SSH 连接到服务器时,我已经从终端升级了 PAM。 现在这样做之后,我无法使用 ssh 访问我的服务器, 每
我已通读 this页面,但我有点困惑...... pam_start 什么是struct pam_conv应该如何填写? 到底是什么service_name这是什么意思? 是否有使用 PAM 登录用户
我在使用 PAM 时遇到了一些问题。我有一个使用 PAM 进行身份验证的 tomcat web 应用程序。在安装过程中,我们在/etc/pam.d 中创建到/etc/pam.d/sshd 文件的符号链
我已经使用pam函数(R中的集群包)成功运行了围绕 Medoids 的分区,现在,我想使用结果将新的观察结果归因于之前定义的集群/medoids 。 解决问题的另一种方法是,考虑到 pam 函数已找到
我正在开发一个管理多个主机的 Java Web 应用程序,我需要做的事情之一是设置和配置具有已知默认配置的主机。主机是基于RHEL的定制Linux。 我需要根据网络应用程序中的用户输入更改根用户的密码
我正在编写一个 PAM 模块,在此之前一切都运行良好,我成功地管理了 pam_sm_open_session()。进程的编辑文件是/etc/pam.d/login with“授权要求 pam_test
我正在使用 k-means 和 K-medoids。使用 K-means 执行出现以下信息: Within cluster sum of squares by cluster: [1] 1263616
我正在尝试编写一个 pam 模块,它将从文件中读取密码,然后让用户无需输入密码即可登录。 [编辑:文件将存储在外部设备中。 (试图满足双因素身份验证)。这听起来很不安全,但是文件将使用适当的加密算法进
我有一个以 root 身份运行的 C 程序,并通过调用 pam_chauthtok 使用 PAM 设置用户密码。这可行,但它允许设置弱密码,并且不保存用户更改自己的密码时将保存的密码历史记录。 有什么
我正在尝试编写一个 PAM 模块,将有关从 SSH 进行的身份验证尝试的信息记录到一个文件中。 我已经编写了一个由 OpenSSH 加载的模块,然后在身份验证尝试时被调用。该模块基于此代码:http:
我目前正在尝试测试一个 PAM 模块,这个:http://www.linux-pam.org/Linux-PAM-html/adg-example.html . 没有关于将 .o 文件放在哪里的指示。
如果应用程序 A 调用 PAM 服务“myapp”,并且 PAM 服务“myapp”被配置为使用 pam 模块 pam_exec.so(auth required pam_exec.so myscri
我是一名优秀的程序员,十分优秀!