Você pode fazer isso de forma rudimentar fazendo strace -e open <cmd> ; existe também a opção -f para seguir processos filhos; o método strace não é muito fácil de usar (você precisa basicamente entender alguns C, syscalls, etc) e não funciona a longo prazo. Existem outras ferramentas como sysdig que podem funcionar (não foram usadas para esse propósito). Você pode executar auditd ou um IDS baseado em arquivo, como o AIDE, e detectá-lo quando determinados arquivos estiverem sendo alterados.
Em sua pergunta, não sei dizer se você está perguntando como descobrir quais arquivos um programa acessa (por exemplo, uma auditoria) ou se está tentando alertar com base em determinados arquivos que estão sendo acessados (um IDS). Se você está tentando descobrir quais arquivos um programa acessa, a melhor maneira de fazer isso é ler a origem; ferramentas como strace são de baixo nível.