dmidecode pode fornecer esta informação. No entanto, requer privilégios de root para acessar / dev / mem, portanto, devido às suas restrições, isso não pode ser usado diretamente.
Você tem duas opções.
A) Faça o login como root e execute dmidecode -t system > /var/tmp/dmidecode_system
Em seguida, verifique se o arquivo é legível por todos e verifique o conteúdo desse arquivo no script de login do usuário.
O problema é que as informações só serão atualizadas "manualmente". Você pode, no entanto, simplesmente atualizá-lo a partir de um script de inicialização.
B) Uma opção mais "ao vivo" é criar uma pequena ferramenta que forneça as informações necessárias para processos não privilegiados.
Primeiro, crie uma interface, por exemplo, mkfifo /var/tmp/dmidecode_read
Em seguida, crie um processo que irá escrever as informações toda vez que alguém solicitar, por exemplo
while true; do dmidecide -t system > /var/tmp/dmidecode_read; done
Nesse caso, isso funcionará, porque você não pode substituir uma placa-mãe enquanto o sistema estiver em execução. Mas, por completo, mencionei que essa informação ainda poderia teoricamente se tornar obsoleta. Cada vez que um usuário lê a partir do pipe, o buffer atual é esvaziado, o "fornecedor" adormecido existe, ae depois que o leitor receber o buffer existente, um novo "fornecedor" será gerado e colocará novas informações no buffer pronto para o próximo leitor, sempre que for.