【问题标题】:How to debug Linux PAM module?如何调试 Linux PAM 模块?
【发布时间】:2019-01-02 04:20:24
【问题描述】:

我需要为 Linux 编写 PAM 模块。每次我需要测试它时,它是不是在不重新启动系统的情况下调试它的好方法?如果设备无法正常运行并无法进入,会发生什么情况?我该如何关闭它?如果模块加载失败,例如缺少依赖项,会发生什么?

【问题讨论】:

    标签: linux pam


    【解决方案1】:

    方法 1:您可以尝试修改 pam.d 中不易受影响的文件来测试您的模块。例如 - 更改 /etc/pam.d/ 中“sudo”的 pam 配置,然后添加您的模块以执行测试。例如:在以下配置中,修改了“sudo”文件以检查“pam_auth.so”文件的工作情况。

    #%PAM-1.0
    
    auth       required   pam_env.so readenv=1 user_readenv=0
    auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
    #@include common-auth #this line is commented to make it use my pam module
    auth       required   pam_auth.so
    @include common-account
    @include common-session-noninteractive
    

    在终端使用sudo命令测试如下:

    username@computer:~$ sudo nautilus
    

    请将“.so”文件放在路径 /lib/security/ 中。如果安全目录不存在,请创建一个同名的新目录。

    方法 2:您可以使用专用工具(如 pam-tester 来测试您的 PAM 模块。

    【讨论】:

      【解决方案2】:

      许多 PAM 模块都有使用 syslog 的 debug 选项。 /var/log/secure 中有更多的日志记录。
      您可以使用服务测试大多数配置。例如,如果您在 /etc/pam.d/su 中有以下行:
      account required pam_time.so debug
      您可以通过运行 su 来测试它并检查会发生什么。
      如果您在服务上有 PAM 配置,需要重新启动才能进行测试(例如 login),我建议在部署之前使用虚拟机来全面测试您的 PAM 配置。您还可以重新启动到运行级别 1 并将更改还原到 /etc/pam.d 文件中。

      【讨论】:

        猜你喜欢
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 2011-02-06
        相关资源
        最近更新 更多