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