我鼓励我的学生在他们的计算机上安装 Linux 发行版。为了确保他们完成了任务,我要求他们执行此命令来生成唯一标识符:
echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') $(ifconfig | grep -oP 'HWaddr \K.*' | sed 's/://g') | sha256sum | awk '{print $1}'
...并将获得的十六进制字符串发送给我。
现在,许多学生都提供了相同的字符串。这个字符串可能不是每个安装的唯一字符串吗?(我在每台机器上都获得了不同的字符串),或者他们在作弊?
答案1
实际上这是很有可能的:我家里的两台电脑都没有dmidecode
安装,而且ifconfig
也不适合PATH
普通用户,所以我在两台电脑上都得到了相同的字符串:
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
这是你的学生给你的身份证吗?
您应该考虑sudo
在命令前面添加ifconfig
,也许添加一些与日期相关的内容,例如stat /bin/sh | grep Change
。但是,如果您不信任您的学生,您打算如何验证他们提供的 ID 是否与真实系统相对应?
答案2
您可以通过获取硬盘的序列号来验证它们。
lsblk --nodeps -no serial /dev/sda
示例序列号为6VEHJPW7。