版權所有 © 2014 tutorialspoint
#include <keyutils.h> key_serial_t request_key(const char *type, const char *description, const char *callout_info, key_serial_t keyring);
key_serial_t request_key(const char *type, const char *description, const char *callout_info, key_serial_t keyring);
request_key() 首先遞迴搜尋按執行緒特定金鑰環、程序特定金鑰環,然後是會話金鑰環的順序附加到呼叫程序的所有金鑰環,以查詢匹配的金鑰。
如果request_key() 是從由request_key() 代表其他程序生成金鑰呼叫的程式中呼叫,則接下來將搜尋該其他程序的金鑰環,使用該其他程序的 UID、GID、組和安全上下文來控制訪問。
在遞迴搜尋任何子金鑰環之前,將檢查每個金鑰環中是否存在匹配的金鑰。只有對呼叫方可搜尋的金鑰才能被找到,並且只有可搜尋的金鑰環才能被搜尋。
如果找不到金鑰,則如果設定了callout_info,則此函式將嘗試進一步查詢。在這種情況下,callout_info 將傳遞給使用者空間服務(例如/sbin/request-key)以生成金鑰。
如果這也失敗,則將返回錯誤,並在指定的金鑰環中安裝一個臨時的負金鑰。這將在幾秒鐘後過期,但會導致後續對request_key() 的呼叫失敗,直到它過期。
金鑰環序列號可能是呼叫方具有寫入許可權的有效金鑰環的序列號,也可能是特殊的金鑰環 ID。
keyctl (1)
add_key (2)
keyctl (2)
request (8)
廣告