Paul Eggert wrote, On 01/22/2013 03:21 PM:
> On 01/22/13 11:22, Assaf Gordon wrote:
>> 3. Running with 'sudo', 'rm' doesn't fail:
>>     $ sudo dtruss $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt
> 
> You need a sudo inside dtruss, to, right?
> Something like this
> 
>    sudo dtruss sudo -u $USER $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt
> 

Sorry, but I can't get sudo+dtruss+sudo to work as expected.
It has some side effects that I do not understand, most likely because dtruss 
isn't following forks.

Simple example of the problem:

1. no sudo/dtruss - works:
    $ $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': 
No such file or directory

2. sudo+dtruss - work (but not good enough to reproduce this bug):
    $ sudo dtruss $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': 
No such file or directory
    lstat64("foo\0", 0x100100280, 0x100100280)           = -1 Err#2
    unlink("foo\0", 0x100800000, 0x100800000)            = -1 Err#2
    write_nocancel(0x2, "cannot remove 'foo'\0", 0x13)           = 19 0

3. sudo+dtruss+sudo - doesn't trace "rm", sometimes shows the error message, 
sometimes doesn't. Using "-f" has no effect:

    $ sudo dtruss sudo -u $USER $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': 
No such file or directory
    $ sudo dtruss sudo -u $USER $D/rm foo 2>&1 | grep foo
    $ sudo dtruss -f sudo -u $USER $D/rm foo 2>&1 | grep foo
    $ sudo dtruss -f sudo -u $USER $D/rm foo 2>&1 | grep foo


Any help is appreciated.

 -gordon




Reply via email to