Skip to content

使用自定义pam模块,登录界面无密码输入框 #6244 #346

@int0x7

Description

@int0x7

SUMMARY | 问题概要

UOS20 1060系统上编写自定义的pam模块,代码如下(只是一个样例):

#include <security/pam_modules.h>
#include <security/pam_ext.h>
#include <string.h>

// PAM模块入口函数,实现用户认证功能
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
const char *username = NULL;
const char *password = NULL;
int retval;

// 获取用户名和密码
retval = pam_get_user(pamh, &username, "Username: ");
if (retval != PAM_SUCCESS) {
    return retval;
}

retval = pam_get_authtok(pamh, PAM_AUTHTOK, &password, "Password: ");
if (retval != PAM_SUCCESS || password == NULL) {
    return retval;
}

// 进行身份验证
if (strcmp(username, "test") != 0 || strcmp(password, "123abc") != 0) {
    return PAM_AUTH_ERR;
}

return PAM_SUCCESS;
}

pam配置文件如下(/etc/pam.d/common-auth):
auth [success=done auth_err=die ignore=ignore default=bad] /usr/lib/security/libtest_pam.so

test@uos-PC:~$ ls /usr/lib/security/
libtest_pam.so pam_udcp.so

SOFTWARE/OS VERSIONS | 软件/系统版本信息

OS: UOS20 1060 桌面专业版
dde-session-shell 5.6.21-1
dde-session-ui 5.6.16-1
lightdm 1.26.7.19-1+dde

PRE-REQUIREMENT | 预置条件

No response

STEPS TO REPRODUCE | 复现步骤

  1. 修改pam配置文件使用自定义pam
  2. 注销或重启

OBSERVED RESULT | 观察到的结果

登录界面无密码输入框
image

EXPECTED RESULT | 期望的结果

image

ADDITIONAL INFORMATION | 额外补充

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions