【问题标题】:Portable UUID on LinuxLinux 上的可移植 UUID
【发布时间】:2015-03-05 12:48:40
【问题描述】:

在 Windows 和 MacOSX 上,检索每台机器的某种 UUID 很简单:

在 Windows 上(注册表编辑器):

"Software\Microsoft\Cryptography\MachineGuid"

在 MacOSX 上

$ ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID

但是在 Linux 上这是much more complex。到目前为止,我发现了以下内容:

  1. 在基于 dbus 的系统上:

    $ cat /var/lib/dbus/machine-id

  2. 在基于 x86 的系统上(需要 root 权限):

    $ sudo cat /sys/devices/virtual/dmi/id/product_uuid

  3. 在基于 PowerPC 的系统上:

    $ cat /proc/device-tree/序列号

真正奇怪的是,基于 x86 的架构上主板的 UUID 仅限于 root 用户,但可以使用普通用户通过 hal ($ lshal | grep 'system\.hardware\.serial') 访问。同时,可以访问所有磁盘 UUID ($ ls /dev/disk/by-uuid/),并且可以从基于 PowerPC 架构的任何用户访问序列号

那么有没有我可以在 Linux 上使用的便携式 UUID ? dbus 可能安装也可能不安装,我需要从 non- root 用户,并且它需要在重启后保持相同/proc/sys/kernel/random/boot_id 因此不是一个选项)。

【问题讨论】:

标签: linux uuid


【解决方案1】:

看起来systemd 现在已安装在大多数 Linux 发行版上,因此我可以依赖 /etc/machine-id 存在并且普通用户可以读取。

【讨论】:

  • 是的 systemd 自己使用它 - 看看 hostnamectl 的输出。
猜你喜欢
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多