2011-02-18 427 views
5

如何在没有root权限的Linux(Ubuntu)下获得CPU序列号?如何在没有root权限的Linux下获得CPU序列号

我试过cpuid命令,它没有root权限,但似乎返回全部为零(我相信因为需要在BIOS中进行更改)。

你能否建议我以另一种方式从没有root权限的程序中检索CPU序列,而无需修改BIOS?

回答

0

你查过dmesg?其在/bin

+0

我从来没有使用过它 - 它只是给了我一堆这样的消息s - 你能建议我应该怎样调用它来获得处理器序列:[38988.366706] VFS:已更改媒体上的繁忙信息节点。 [38990.355161] VFS:已更改媒体上的繁忙inode。 [38990.360004] VFS:已更改媒体上的繁忙inode。 [38992.355334] VFS:已更改媒体上的繁忙inode。 [38992.357489] VFS:已更改媒体上的繁忙信息节点。 – Alexey 2011-02-18 22:31:34

+0

dmesg是内核消息的环形缓冲区。启动后,它将拥有所有启动内核消息,但最终会被其他系统事件推出。在/ var/log中应该有一个包含引导消息的文件。 – 2011-02-18 23:02:42

+0

@Marc你需要root才能看到/ var/log/messages *文件,但是dmesg可以从非root用户访问 – 2011-02-19 04:30:16

3

处理器序列号基本上只在奔腾III处理器。由于引发了隐私问题,英特尔将其从后来的模型中删除。因此,除非您使用的是PIII ,否则您的BIOS设置可让您读取序列号,您将获得的都是0。

+0

我忘记了那些...... Xeons并不完全是你在平均WorstBuy中偶然发现的东西。 – 2011-02-18 19:17:08

1

cpuid返回相同的序列号,对我来说,无论我使用的sudo的:

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

除非有您提到一些其他的序列号...?

1

至于建议,当这个问题被问过,如果你想用这个牌(因为你使用的授权标签),你可能想尝试的MAC地址: CPU serial number

1

领带将其牌照它的可执行文件在安装到用户的文件系统中时所获得的inode数字。如果他们搬到其他地方,他们会改变。

缺点是如果程序必须从备份中恢复,则可能无法保留数字。

我以前做过这样的事情。您必须非常慷慨地让真正的用户在更改硬件时激活许可证。

3

需要根权限。答案是dmidecode。
如果需要CPU ID:从输出
如果需要接收计算机ID:

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

这将让CPU ID,删除 'ID':

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

如果你想要获得没有root权限的内核uuid,那么:

dmesg | grep UUID | grep "Kernel" | sed "s/.*UUID=//g" | sed "s/\ ro\ quiet.*//g" 
相关问题