2012-03-08 1 views
0

私はLinuxグループキーリングを使用して、異なる所有者のプロセス間で機密データを共有する必要があるアプリケーションを構築しています。 keyctlコマンドまたは基になるAPIを使用してグループ鍵リング(たとえば "@ g"または "-6")にアクセスしようとすると、エラーが発生します。Linuxカーネルのadd_keyとkeyctl syscallsをグループキーリングで使用する

私は、キーリングを取得するグループを知るために何らかの状態を設定しなければならないと思いますが、このカーネル機能のドキュメントはまばらです。誰もグループのためにそれを働かせる方法を知っていますか?

メソッド呼び出し(現在は、直接共有ライブラリ関数を呼び出しますPythonのctypesのを使用して、他のすべてのキーホルダーのために正常に動作する):

>>> import ctypes 
>>> keyutils = ctypes.CDLL('libkeyutils.so.1') 
>>> key_id = 'foo' 
>>> key_value = 'bar' 
>>> keyutils.add_key('user', key_id, key_value, len(key_value), -5) 
268186515 
>>> keyutils.add_key('user', key_id, key_value, len(key_value), -6) 
-1 
+1

編集中のエラーを投稿できますか? – Alex

答えて

1

keyctlのmanページを見ているに基づいて、それはそれを思わグループベースのキーリングはまだカーネルに実装されていません。

(*) Group specific keyring: @g or -6 

    This is a place holder for a group specific keyring, but is not actually implemented yet in the kernel. 

は、最新の安定版カーネルのソースを見てみると、それはまた、manページが言うバックアップします: http://lxr.linux.no/#linux+v3.2.9/security/keys/process_keys.c#L641

だからあなたのコードが正しいか...しかし、「にISNその機能を使用しようとしていますまだありません。

関連する問題