Я не знаю, можно ли заставить dtruss быть неинвазивным, как strace.
Вариант "sudo [to root] dtruss sudo [back to nonroot] cmd", который, кажется, работает лучшев некоторых быстрых тестах для меня это:
sudo dtruss -f su -l `whoami` cd `pwd` && cmd....
Внешний sudo, конечно, поэтому dtruss работает как root.
Внутренний su возвращается ко мне, и с -l он воссоздаетсреды, и в этот момент нам нужно вернуться к тому, с чего мы начали.
Я думаю, что "su -l user" лучше, чем "sudo -u user", если вы хотите, чтобы среда была тем, чем обычно является этот пользовательполучает.Это будет их среда входа в систему, хотя;Я не знаю, есть ли хороший способ позволить среде наследовать через два пользовательских изменения.
В вашем вопросе есть еще одна жалоба, которую вы получили по поводу обходного пути "sudo dtruss sudo", кроме уродства.было то, что «я не получаю файл .out все это время, не знаю почему».Я тоже не знаю, почему, но в моем небольшом тестовом сценарии вариант «sudo dtruss sudo» также не смог записать в тестовый выходной файл, а вариант «sudo dtruss su», приведенный выше, действительно создал выходной файл.