Мне нужно создать серийный номер для моего приложения на машине Unix.
Я обнаружил, что в Ubuntu есть информация о жестких дисках в следующей папке:
/dev/disk/by-id
Эти файлы выглядят как серийные номера жестких дисков, подключенных к машине. Я хочу использовать следующую команду для создания уникального отпечатка пальца устройства.
ls /dev/disk/by-id | grep -v 'part'
Это возможно? Соответствует ли эта команда указанным мною выше условиям?
Хороший метод однозначной идентификации машины - значение SMBios UUID. В Linux к нему можно получить доступ с помощью инструмента dmidecode.
# dmidecode -s system-uuid
1E00CBE0-008C-5900-FBCE-C86000B2350B
Другой альтернативой может быть использование UUID корневой файловой системы. Доступ к UUID файловой системы можно получить в "/ dev / disks / by-uuid". Это имеет то преимущество, что не требует привилегий root.
Еще один метод использует blkid:
rootNode="$(mount | grep " / ")"; blkid -s UUID -o value ${rootNode%% *}