如何调试Linux PAM模块?
我需要为Linux编写PAM模块。当我需要测试它时,不需要每次重新启动系统就可以调试它,这是一种很好的方式吗?如果装置不能正常运行并泄漏,会发生什么情况?我怎么关掉它?如果模块加载失败(例如,缺少依赖项的原因),会发生什么情况?方法1:您可以尝试修改pam.d中不易受影响的文件来测试模块。例如,更改/etc/pam.d/中“sudo”的pam配置,然后添加模块以执行测试。例如:在以下配置中,“sudo”文件被修改以检查“pam_auth.so”文件的工作情况如何调试Linux PAM模块?,linux,pam,Linux,Pam,我需要为Linux编写PAM模块。当我需要测试它时,不需要每次重新启动系统就可以调试它,这是一种很好的方式吗?如果装置不能正常运行并泄漏,会发生什么情况?我怎么关掉它?如果模块加载失败(例如,缺少依赖项的原因),会发生什么情况?方法1:您可以尝试修改pam.d中不易受影响的文件来测试模块。例如,更改/etc/pam.d/中“sudo”的pam配置,然后添加模块以执行测试。例如:在以下配置中,“sudo”文件被修改以检查“pam_auth.so”文件的工作情况 #%PAM-1.0 auth
#%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模块。许多PAM模块具有使用syslog的
debug
选项。还有更多的登录/var/log/secure。大多数配置都可以使用服务进行测试。例如,如果您在/etc/pam.d/su中有一行:
account required pam\u time.so debug
您可以通过运行
su
来测试它,并检查发生了什么情况。如果您在需要重新启动才能进行测试的服务上有PAM配置(如
登录
),我建议在部署之前使用虚拟机对PAM配置进行全面测试。您还可以重新启动到运行级别1,并将更改还原到/etc/PAM.d文件