2011-02-18 47 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" 
相關問題