2011-02-18 5 views
5

¿Cómo puedo obtener el número de serie de la CPU en Linux (Ubuntu) sin permisos de root?Cómo obtener CPU de serie en Linux sin permisos de root

Intenté el comando cpuid, funciona sin permisos de root, pero parece devolver todos los ceros (creo que porque algo debe cambiarse en el BIOS).

¿Puede por favor sugerirme otra forma de recuperar la serie de CPU desde un programa sin permisos de raíz y sin tener que modificar el BIOS?

Respuesta

0

¿Has comprobado dmesg? Está en /bin

+0

Nunca lo he usado antes - simplemente me dio un montón de dicho mensaje s - ¿Puede sugerir cómo debería llamarlo exactamente para obtener la serie del procesador? [38988.366706] VFS: inodos ocupados en medios modificados. [38990.355161] VFS: inodos ocupados en medios modificados. [38990.360004] VFS: inodos ocupados en medios modificados. [38992.355334] VFS: inodos ocupados en medios modificados. [38992.357489] VFS: inodos ocupados en medios modificados. – Alexey

+0

dmesg es un buffer de anillos de mensajes del kernel. después del arranque, tendrá todos los mensajes del kernel de inicio, pero eventualmente serán expulsados ​​por otros eventos del sistema. Debería haber un archivo en/var/log en algún lugar que contenga los mensajes de arranque. –

+0

@Marc debe ser root para ver los archivos/var/log/messages *, pero dmesg es accesible desde usuarios que no son root –

3

Los números de serie del procesador eran básicamente solo en los procesadores Pentium III. Intel lo eliminó de los modelos posteriores debido a las preocupaciones de privacidad que surgieron. Como tal, a menos que esté en un PIII Y su configuración de BIOS le permite leer el número de serie, todo lo que obtendrá son 0.

+0

Me había olvidado de esos ... Xeons no son exactamente algo con lo que se tropieza en su WorstBuy promedio . –

+0

Sí, pero ¿cómo otros sistemas operativos pueden obtenerlos? Por ejemplo, WMI en Windows? Debe haber alguna solución para Linux también – Alexey

1

cpuid devuelve el mismo número de serie para mí a pesar de mi uso de sudo:

% cpuid | grep serial 
Processor serial: 0002-0652-0000-0000-0000-0000 
% sudo cpuid | grep serial 
Processor serial: 0002-0652-0000-0000-0000-0000 

A menos que haya algún otro número de serie que te refieres a ...?

+0

Sí, me refiero a esto exactamente - "0000-0000-0000-0000". El primer byte es una identificación escalonada, pero la serie real debe estar detrás de esos ceros. – Alexey

1

Como sugiere cuando esta pregunta se hizo antes, si usted está tratando de usar esto para la concesión de licencias (ya ha utilizado la etiqueta de licencia) es posible que desee probar la dirección MAC: CPU serial number

+0

Sí, también estoy usando la dirección MAC, pero quiero más :) – Alexey

1

Tie la licencia a la Números de inodo que obtienen sus archivos ejecutables cuando están instalados en el sistema de archivos del usuario. Si se mueven a otro lugar, cambiarán.

El inconveniente es que los números pueden no conservarse si el programa debe restaurarse a partir de una copia de seguridad.

He hecho este tipo de cosas antes. Debe ser muy generoso al permitir que los usuarios genuinos activen la licencia al cambiar el hardware.

3

Se requieren permisos de raíz. La respuesta es dmidecode.
Si necesita CPU ID:

dmidecode | grep -w ID | sed "s/^.ID\: //g" 

Este ID recibirá CPU, retire 'Identificación:' desde la salida
Si necesita recibir un identificador de equipo:

dmidecode | grep -w UUID | sed "s/^.UUID\: //g" 

Si desea para obtener kernel uuid sin permisos de root, entonces:

dmesg | grep UUID | grep "Kernel" | sed "s/.*UUID=//g" | sed "s/\ ro\ quiet.*//g" 
Cuestiones relacionadas