keyctl は VMVware CPU を無効にします。

keyctl は VMVware CPU を無効にします。

keyctlどのように機能するか、特に機能を理解するのに少し問題がありますrequest2。私が理解したところによると、request2与えられた文字列を検索し、見つかった場合に返します。見つからない場合は、/sbin/request-key説明されているタスク(該当する場合)を実行するアプリケーションが呼び出されます。/etc/request-key.d/*/etc/request-key.conf

ところで、テスト中にいくつかの問題が発生しました。

[user@localhost ~]$ cat /etc/request-key.conf
###############################################################################
#
# Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.
...snip... 
###############################################################################

#OP     TYPE    DESCRIPTION     CALLOUT INFO    PROGRAM ARG1 ARG2 ARG3 ...
#====== ======= =============== =============== ===============================
create  dns_resolver *          *               /sbin/key.dns_resolver %k
create  user    debug:*         negate          /bin/keyctl negate %k 30 %S
create  user    debug:*         rejected        /bin/keyctl reject %k 30 %c %S
create  user    debug:*         expired         /bin/keyctl reject %k 30 %c %S
create  user    debug:*         revoked         /bin/keyctl reject %k 30 %c %S
create  user    debug:loop:*    *               |/bin/cat
create  user    debug:*         *               /usr/share/keyutils/request-key-debug.sh %k %d %c %S
negate  *       *               *               /bin/keyctl negate %k 30 %S
[user@localhost ~]$

実際のキーを生成し、keyctl print正しい出力を生成するデバッグループを作成します。

[user@localhost ~]$ keyctl request2 user debug:loop:test "loop test"
181348864
[user@localhost ~]$ keyctl show
Session Keyring
 141395006 --alswrv   1000  1000  keyring: _ses
 521399390 --alswrv   1000 65534   \_ keyring: _uid.1000
 181348864 --alswrv   1000  1000   \_ user: debug:loop:test
 691271691 --alswrv   1000  1000   \_ user: debug:test
[user@localhost ~]$ keyctl print 181348864
loop test
[user@localhost ~]$

別のキーを生成すると、それぞれのデバッグエントリが生成されますrequest-key.confkeyctl printキーを正しく印刷してください。

[user@localhost ~]$ keyctl request2 user debug:se-test "hello hello"
1061018025
[user@localhost ~]$ keyctl show
Session Keyring
 141395006 --alswrv   1000  1000  keyring: _ses
 521399390 --alswrv   1000 65534   \_ keyring: _uid.1000
1061018025 --alswrv   1000  1000   \_ user: debug:se-test
 181348864 --alswrv   1000  1000   \_ user: debug:loop:test
 691271691 --alswrv   1000  1000   \_ user: debug:test
[user@localhost ~]$
[user@localhost ~]$ keyctl print 1061018025
Debug hello hello
[user@localhost ~]$

他のルールと一致しないキーを生成するには、負のキーを生成する必要があります。keyctl printVMWareで無効になっているCPUの強制リセットをトリガーします。

[user@localhost ~]$ keyctl request2 user se:test "blah"
request_key: Required key not available
[user@localhost ~]$ keyctl show
Session Keyring
 141395006 --alswrv   1000  1000  keyring: _ses
 521399390 --alswrv   1000 65534   \_ keyring: _uid.1000
  65104736 --alswrv   1000  1000   \_ user: se:test
1061018025 --alswrv   1000  1000   \_ user: debug:se-test
 181348864 --alswrv   1000  1000   \_ user: debug:loop:test
 691271691 --alswrv   1000  1000   \_ user: debug:test
[user@localhost ~]$ keyctl desc 65104736
 65104736: alswrv-----v------------  1000  1000 user: se:test
[user@localhost ~]$
[user@localhost ~]$ keyctl print 65104736

keyctl print上記と同じ方法でトリガされる負のデバッグキーを作成します。

[user@localhost ~]$ keyctl request2 user debug:negatetest negate
request_key: Required key not available
[user@localhost ~]$ keyctl show
Session Keyring
1018725144 --alswrv   1000  1000  keyring: _ses
 478030378 --alswrv   1000 65534   \_ keyring: _uid.1000
 799585275 --alswrv   1000  1000   \_ user: debug:negatetest
[user@localhost ~]$
[user@localhost ~]$ keyctl desc 799585275
799585275: alswrv-----v------------  1000  1000 user: debug:negatetest
[user@localhost ~]$ keyctl print 799585275

(おそらく)負のキーを読み取ろうとすると、OSは自動的に終了します。

私が理解したところによると、負のキーは読み取れませんが、すぐにOSの電源を切ることが予想される結果ですか?

私が得る具体的なエラーは次のとおりです。

ゲストオペレーティングシステムでCPUを無効にしました。仮想マシンをシャットダウンまたはリセットします。

request-key.confkeyctl(1)のマニュアルを見てみましたが、keyctl(2)何も見つかりません。私が見逃した部分がある場合は、いつでも関連部分を教えてください。RTFMでお知らせください。

ありがとうございます!

関連情報