How can get dtrace to run the traced command with non-root priviledges ?
Posted
by Gyom
on Stack Overflow
See other posts from Stack Overflow
or by Gyom
Published on 2010-06-09T16:36:26Z
Indexed on
2010/06/10
8:33 UTC
Read the original article
Hit count: 317
OS X lacks linux's strace
, but it has dtrace
which is supposed to be so much better.
However, I miss the ability to do simple tracing on individual commands. For example, on linux I can write strace -f gcc hello.c
to caputre all system calls, which gives me the list of all the filenames needed by the compiler to compile my program (the excellent memoize script is built upon this trick)
I want to port memoize on the mac, so I need some kind of strace
. What I actually need is the list of files gcc
reads and writes into, so what I need is more of a truss
. Sure enough can I say dtruss -f gcc hello.c
and get somewhat the same functionality, but then the compiler is run with root priviledges, which is obviously undesirable (apart from the massive security risk, one issue is that the a.out
file is now owned by root :-)
I then tried dtruss -f sudo -u myusername gcc hello.c
, but this feels a bit wrong, and does not work anyway (I get no a.out
file at all this time, not sure why)
All that long story tries to motivate my original question: how do I get dtrace
to run my command with normal user priviledges, just like strace
does in linux ?
Edit: is seems that I'm not the only one wondering how to do this: question #1204256 is pretty much the same as mine (and has the same suboptimal sudo answer :-)
© Stack Overflow or respective owner