2017-04-25 31 views
0

(我的C是有點生疏)如何導出pam_set_data創建的字符串()

我想從身份驗證過程外傳遞一些數據到最終殼(或可能是其他服務)。我發現我可以將數據嵌入到提交的用戶名中,然後在pam堆棧的頂部分隔用戶名和數據,更新用戶名(使用pam_set_item())並保存數據(例如使用pam_set_data())但是如何將數據呈現給正在進行身份驗證的服務?

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

如果我使用pam_set_data()這是否創建一個標識符我可以在pam_env中使用?

回答

0

是的,您可以使用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