可以在不使用sudo的情况下提取
Linux序列号吗?
我知道在Windows中可以这样做:wmic bios获取serialnumber和in
MAC OS system_profiler | grep“r(系统)”它们都不需要root权限.
在Linux中可以使用:sudo dmidecode -s system-serial-number但它需要sudo.还有其他方法吗?
谢谢
解决方法
dmidecode使用/ dev / mem从物理内存中读取此信息,这需要root.
Linux内核也通过虚拟目录/ sys / devices / virtual / dmi / id中的sysfs提供相同的信息.
不幸的是,有人认为该虚拟目录中的所有信息都对所有人开放,只读而不是序列号:
$ls -l /sys/devices/virtual/dmi/id -r--r--r-- 1 root root 4096 Nov 25 17:12 bios_date -r--r--r-- 1 root root 4096 Nov 14 14:59 bios_vendor -r--r--r-- 1 root root 4096 Nov 25 17:12 bios_version -r--r--r-- 1 root root 4096 Nov 25 17:12 board_asset_tag -r--r--r-- 1 root root 4096 Nov 25 17:12 board_name -r-------- 1 root root 4096 Nov 25 17:12 board_serial -r--r--r-- 1 root root 4096 Nov 14 14:59 board_vendor -r--r--r-- 1 root root 4096 Nov 25 17:12 board_version -r--r--r-- 1 root root 4096 Nov 25 17:12 chassis_asset_tag -r-------- 1 root root 4096 Nov 25 17:12 chassis_serial -r--r--r-- 1 root root 4096 Nov 25 17:12 chassis_type -r--r--r-- 1 root root 4096 Nov 25 17:12 chassis_vendor -r--r--r-- 1 root root 4096 Nov 25 17:12 chassis_version -r--r--r-- 1 root root 4096 Nov 25 17:12 modalias drwxr-xr-x 2 root root 0 Nov 25 17:12 power -r--r--r-- 1 root root 4096 Nov 14 14:59 product_name -r-------- 1 root root 4096 Nov 25 17:12 product_serial -r-------- 1 root root 4096 Nov 14 14:59 product_uuid -r--r--r-- 1 root root 4096 Nov 14 14:59 product_version lrwxrwxrwx 1 root root 0 Nov 14 14:59 subsystem -> ../../../../class/dmi -r--r--r-- 1 root root 4096 Nov 14 14:59 sys_vendor -rw-r--r-- 1 root root 4096 Nov 14 14:59 uevent
如果您可以安装软件包hal(默认情况下不会在最近的Ubuntu版本上安装),则此命令将作为非root用户使用:
lshal | grep system.hardware.serial system.hardware.serial = '<serial_number>' (string)
这是因为package hal安装了hald守护进程,它以root身份运行并收集这些数据,使得lshal可以将其作为非root用户进行读取.