Alb*_*rto 7 linux serial-number
可以在不使用sudo的情况下提取Linux序列号吗?
我知道在Windows中可以做到这一点:wmic bios get serialnumber在MAC OS system_profiler |grep "r (system)"中它们都不需要root权限.
在Linux中可以使用sudo dmidecode -s system-serial-number它:但它需要sudo.还有其他方法吗?
谢谢
mvp*_*mvp 13
dmidecode使用/dev/mem需要root的物理内存读取此信息.
Linux内核也通过虚拟目录中的sysfs提供相同的信息/sys/devices/virtual/dmi/id.
不幸的是,有人认为该虚拟目录中的所有信息都对所有人开放,只读而不是序列号:
$ 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
Run Code Online (Sandbox Code Playgroud)
如果您可以安装软件包hal(默认安装在最近的Ubuntu版本上),则此命令将作为非root用户使用:
lshal | grep system.hardware.serial
system.hardware.serial = '<serial_number>' (string)
Run Code Online (Sandbox Code Playgroud)
这是因为package hal安装hald守护进程,它以root身份运行并收集此数据,从而可以lshal将其作为非root用户进行读取.