测试PAM会话打开模块

问题描述

我正在构建一个新的PAM模块,以在打开新会话时执行一些操作。该模块将不会执行身份验证,只会进行一些日志记录和监视。

我创建了一个简单的测试来开始学习。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <security/pam_appl.h>
#include <security/pam_modules.h>

PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh,int flags,int argc,const char **argv){
  printf("session opened\n");
  return PAM_SUCCESS;
}

我对此进行了编译并链接.so文件。在/etc/pam.d/sshd的末尾,我添加了一行

session optional pamtest.so

我重新启动sshd并通过新终端登录。我收到了测试消息并收到了外壳。一切似乎都正常工作。然后,我尝试通过scp将文件从工作站复制到具有PAM测试模块的服务器。我收到测试消息,但文件未复制。

 ~/dev/monitor  scp test storage:/home/user/dev/monitor/test
session opened

这是为什么?我怀疑我会在实时模块中使用printf,但是我仍然想弄清楚自己在将来的开发中做错了什么。

谢谢!

编辑: 我忘了提一个事实,如果我退出printf行,一切似乎都可以正常运行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)