Je me demandais quels appels système sont faits par echo
(la commande, pas le shell intégré), j'ai donc décidé de l'espionner via dtrace. Plus précisément, j'ai utilisé dtruss
.Pourquoi ne puis-je pas suivre les appels système effectués par `/ bin/echo`?
Tenir compte que les travaux suivants (traçabilité de tous les syscalls faites par sed
):
sudo dtruss /usr/local/bin/sed 's/a/e/' <<< 'cat'
SYSCALL(args) = return
thread_selfid(0x0, 0x0, 0x0) = 470642 0
# and many more…
Mais si je tente la même chose avec echo
, je reçois les éléments suivants:
sudo dtruss /bin/echo 'cat'
dtrace: failed to execute /bin/echo: unknown error
En fait: il sont nombreuses commandes avec lesquelles j'obtiens cette erreur. Le point commun est que ces commandes étaient toutes dans /bin
ou /usr/bin
.
Brendan's blog suggère qu'il est possible d'utiliser dtruss
sur des commandes telles que ls
(son exemple est sudo dtruss ls -l hfsslower.d
, où hfsslower.d
est un fichier texte normal). Le blog a été écrit en 2011, concernant Mac OS X. Mais je suis conscient que OS X a eu diverses améliorations de sécurité depuis lors.
Se pourrait-il que je me heurte à la sécurité OS X d'une certaine sorte? J'utilise OS X 10.12 Sierra.