Você pode chroot o software em um bind mount setup onde estes diretórios são montados somente para leitura.
mkdir /foo
mount --bind / /foo
mount --rbind /dev /foo/dev
mount --bind /proc /foo/proc
mount --bind /run /foo/run
mount -t tmpfs tmpfs /foo/tmp
mount --bind /sys /foo/sys
mount --bind /usr/bin /foo/usr/bin
mount -o remount,ro /foo/usr/bin
chroot /foo rpm …
Note que processos hostis executados como root podem escapar de um chroot, então isso não é um confinamento seguro, apenas uma maneira de garantir que um processo não malicioso não esteja sendo escrito onde não deveria.
Uma abordagem alternativa seria configurar as regras SELinux . Estas restrições restringem até mesmo os processos executados como raiz, portanto, se configurado corretamente (o que não é trivial e requer mais do que bloqueio de acesso a arquivos), pode ser um confinamento seguro.
Se o processo não estiver sendo executado como root, apenas certifique-se de que as permissões no diretório não permitem que o usuário escreva lá. Você pode usar uma ACL que exclui um usuário específico, por exemplo
setfacl -m user:alice:0 /some/dir
para tornar /some/dir
inacessível ao usuário alice
ou
setfacl -R -m user:alice:rX /some/dir
para torná-lo e arquivos legíveis, mas não graváveis.