If you know in advance that you want to keep an eye on what a program does a kernel interface such as sysdig or SystemTap could record an audit trail (or possibly strace, but that would be slow and would require a perfect wrapper around the program to be traced and hopefully no sudo is ever run...). You would also need to consider what happens when some other program creates output under the program in question: must what any child process does also be tracked?
perl -e 'qx(echo subshell-io > foo)'
An audit trail of every file touched by every program (plus other metadata, such as the user and group(s), parent pid, etc) would certainly be possible. This could however be expensive to setup, expensive to generate, and expensive to maintain. It would likely need some means of filtering records to exclude (some, but maybe not all) /tmp directory writes, to possibly roll up multiple write passwd.tmp/rename("passwd.tmp","passwd") calls into one logical operation, also how do you handle the case where the program you are interested in modifies say /etc/passwd (among many other possible shared OS files) that you probably then do not want to blindly remove when cleaning up after the program...or how do you deal with delegated I/O where your program uses dbus and then some other process due to some random not-I/O message over dbus does generate I/O elsewhere because of your program...
dnf. It was a long time ago but guess I downloaded it from here, becausednfonly shows 1anacondainstalled which must be thefedora system installerwhich is called anaconda too.