如何导出pam_set_data创建的字符串()

问题描述:

(我的C是有点生疏)如何导出pam_set_data创建的字符串()

我想从身份验证过程外传递一些数据到最终壳(或可能是其他服务)。我发现我可以将数据嵌入到提交的用户名中,然后在pam堆栈的顶部分隔用户名和数据,更新用户名(使用pam_set_item())并保存数据(例如使用pam_set_data())但是如何将数据呈现给正在进行身份验证的服务?

如果我只是setenv(* varname,* data,1)是否足以使其出现在子进程环境中?

如果我使用pam_set_data()这是否创建一个标识符我可以在pam_env中使用?

是的,您可以使用pam_set_data(),但要在程序中获得它,您必须使用pam_get_data()。如果您希望您的数据在环境中可用,请查看pam_env.so模块。

+0

当然,我只能在同一个过程中使用pam_get_data()来读取pam_set_data()吗?我只看到在文档中为变量提供了一组固定的预定义名称pam_env – symcbean

+0

是的,您必须在同一个进程中才能使用pam_get_data()。 pam_env允许您将所需的任何环境变量放入文件并加载进程。 – yoones