Question Impossible d'exécuter un script systemtap sur xenial. Problème SSL possible


J'ai un ordinateur portable sous xenial. Je n'ai pas de symboles de debug kerneol installés car je n'arrive pas à les trouver. Je suis dans les groupes stapdev et stapusr uname -a est comme suit:

Linux zippy1981-Inspiron-15-7568 4.4.0-21-generic # 37-Ubuntu SMP Mon Avr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux

Cela semble être un problème de manque de certificats SSL, mais je ne suis pas sûr de savoir comment le corriger. L'exécution d'un simple stap one liner produit les résultats suivants:

zippy1981@zippy1981-Inspiron-15-7568:~$ stap -e 'probe kernel.function("sys_open") {log("hello world") exit()}'
Using a compile server.
Error initializing NSS for dbm:/etc/systemtap/ssl/client
(-8015) Database has the wrong format.
Unable to find a suitable compile server.  [man stap-server]
The following servers are online:
 host=zippy1981-Inspiron-15-7568.local address=fe80::881:e05c:d69d:de29%enx00e08f008e53 port=37512 sysinfo="4.4.0-21-generic x86_64" version=2.9 certinfo="00:a6:b9:e1:85"
 host=zippy1981-Inspiron-15-7568.local address=172.17.0.1 port=37512 sysinfo="4.4.0-21-generic x86_64" version=2.9 certinfo="00:a6:b9:e1:85"
 host=zippy1981-Inspiron-15-7568.local address=192.168.0.211 port=37512 sysinfo="4.4.0-21-generic x86_64" version=2.9 certinfo="00:a6:b9:e1:85"
No servers matched the selection criteria of online,trusted,compatible.
Passes: via server failed.  Try again with another '-v' option.
The kernel on your system requires modules to be signed for loading.
The module created by compiling your script must be signed by a systemtap compile-server.  [man stap-server]
--use-server was automatically selected in order to request compilation by a compile-server.
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
zippy1981@zippy1981-Inspiron-15-7568:~$

Que devrais-je faire?


1
2018-06-21 20:17


origine




Réponses:


Le message d'erreur de cette ancienne version de systemtap n'est pas suffisamment précis sur le problème. La ligne de clé est "Utilisation d'un serveur de compilation". Pourquoi utilise-t-il un tel serveur? Parce que votre compte ne dispose pas des privilèges requis pour créer et exécuter un script systemtap arbitraire. Systemtap espère qu'en utilisant un serveur de compilation autorisé par votre administrateur système local, votre utilisateur non privilégié pourra peut-être exécuter le script. Ensuite, cet effort échoue car aucun des serveurs trouvés n'est autorisé.

Alors que faire? Le plus simple est d’exécuter systemtap comme root: sudo stap ..... La deuxième chose la plus facile à faire est de mettre votre identifiant dans le stapdev et stapusr Groupes UNIX, qui sont à peu près équivalents à la racine. Dans ces deux cas, vous pouvez créer et exécuter localement des scripts stap arbitraires. La troisième chose la plus facile à faire est de configurer la compilation à distance et les privilèges limités; pour ça voir man stap-server.


2
2018-06-22 14:20



La chose est que je suis sûr que je suis dans Stapdev et Stapusr cependant. Groupes produit les éléments suivants adm cdrom sudo dip plugdev lpadmin sambashare docker stapdev stapusr. En outre, même en l'exécutant avec sudo produit les mêmes résultats. Y a-t-il un SELinux ou autre chose qui m'empêche? - Justin Dearing
Une autre possibilité est que SecureBoot soit activé. Dans ce cas, un serveur de compilation stap doit être configuré pour signer des modules avec une clé de propriétaire de machine. Détails à sourceware.org/systemtap/wiki/SecureBoot . - fche
Ah oui c'est probablement ça. J'ai UEFI secureboot activé. Les nouvelles versions donnent-elles une meilleure erreur si UEFI est activé? Si non, dois-je faire une demande de fonctionnalité? - Justin Dearing
Oui, nous devrions vraiment améliorer ces messages. - fche