Até onde eu sei, existem apenas maneiras limitadas em que release ( uname -r ) e machine ( uname -m ) podem ser personalizados por processo usando o personality() chamada do sistema , todas expostas através do setarch e sysname ( uname -r ) não podem ser personalizados.
$ uname -rsm; setarch i386 --uname-2.6 --32bit uname -rsm
Linux 3.16.0-4-amd64 x86_64
Linux 2.6.56-4-amd64 i686
Se você quiser falsificar o uname de uma maneira diferente e o programa estiver dinamicamente vinculado, você pode usar LD_PRELOAD para sobrescrever a função uname ; consulte Redirecionar um descritor de arquivo antes da execução para um exemplo de sobrecarga de função através de LD_PRELOAD . Se o programa estiver vinculado estaticamente, você pode usar ptrace para falsificar suas chamadas de sistema, mas isso requer uma programação mais sofisticada.