小编Sti*_*y90的帖子

将Python脚本嵌入C中的PAM模块(.so文件)时,ImportError和PyExc_SystemError

我正在尝试用C语言编写一个演示PAM模块,该模块使用在C概念中嵌入Python来运行以python(2.7)编写的脚本,该脚本位于pam_sm_authenticate()函数内部,该函数以C文件(pam_auth.c)编写。

这是python脚本:test.py

import math
import numpy
def test_func():
   a = "test"
   return a 
Run Code Online (Sandbox Code Playgroud)

test.py的路径是/usr/lib/Python2.7/,以便我可以轻松导入它。

这是C文件:

#define PAM_SM_AUTH
#define PAM_SM_ACCOUNT
#define PAM_SM_SESSION

#include <security/pam_modules.h>
#include <security/_pam_macros.h>
#include <security/pam_appl.h>
#include<python2.7/Python.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define NOBODY "nobody"


/*PAM Stuffs*/

PAM_EXTERN int pam_sm_authenticate(
  pam_handle_t* pamh, int flags, int argc, const char** argv)
{
    const char *user;
    int retval;
    user = NULL;
    retval = pam_get_user(pamh, &user, NULL);
    if(retval != PAM_SUCCESS)
    {
        fprintf(stderr, "%s", pam_strerror(pamh, retval));
//      return (retval);
    }
    fprintf(stdout, "retval= %d user=%s\n", retval,user);
    if …
Run Code Online (Sandbox Code Playgroud)

c numpy pam python-embedding python-2.7

3
推荐指数
1
解决办法
1566
查看次数

标签 统计

c ×1

numpy ×1

pam ×1

python-2.7 ×1

python-embedding ×1