keyctl desativa a CPU do VMVware

2

Estou tendo um pouco de dificuldade em entender como o keyctl opera, especificamente a função request2 . Pelo que entendi, request2 tentará procurar a string dada e, se encontrada, a retornará. Se não for encontrado, chame o aplicativo /sbin/request-key , que executará a operação descrita por /etc/request-key.d/* e /etc/request-key.conf (conforme aplicável).

No entanto, ao testar isso, encontrei alguns problemas.

[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 ~]$

Crie um loop de depuração que criará uma chave real, keyctl print gerará a saída correta.

[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 ~]$

Crie outra chave que criará uma entrada de depuração por request-key.conf . keyctl print imprime corretamente a chave.

[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 ~]$

Crie uma chave que não corresponda a nenhuma outra regra, crie uma chave negativa. keyctl print aciona uma CPU desativada no VMWare forçando uma redefinição.

[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

Crie uma chave de depuração negativa, keyctl print aciona o mesmo que acima.

[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

Ao tentar ler (o que deveria ser) a chave negativa, o SO simplesmente é desligado espontaneamente.

Pelo que entendi, uma chave negativa não pode ser lida, no entanto, é um desligamento imediato do SO do resultado esperado?

O erro específico que recebo é o seguinte:

The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.

Eu passei pela documentação de request-key.conf , keyctl(1) e keyctl(2) , mas não consegui encontrar algo. Se eu perdi alguma coisa, sinta-se livre para me apontar para a parte relevante e me RTFM.

Obrigado!

    
por kernel-noob 13.01.2017 / 03:46

0 respostas

Tags