Ubuntu Linux machine-id

Содержание
Введение
Узнать machine-id
Изменить machine-id
Создать новый machine-id
Сгенерировать с помощью dbus
Статьи про Ubuntu

Введение

Файл /etc/machine-id содержит уникальный идентификатор локальной системы - machine ID.

machine ID устанавливается во время установки или загрузки Ubuntu.

Идентификатор машины представляет собой один шестнадцатеричный идентификатор, заканчивающийся новой строкой , состоящий из 32 символов в нижнем регистре.

При декодировании из шестнадцатеричного числа это соответствует 16-байтовому/128-битному значению.

Этот идентификатор не может содержать только нули.

Идентификатор машины обычно генерируется из случайного источника во время установки системы или первой загрузки и остается постоянным для всех последующих загрузок.

Для систем без состояния (stateless), при необходимости он может быть сгенерирован во время выполнения во время ранней загрузки.

Идентификатор машины может быть задан, например, при загрузке по сети, с помощью параметра командной строки ядра

systemd.machine_id=

Или путем передачи параметра --machine-id= в systemd.

Идентификатор , указанный таким образом, имеет более высокий приоритет и будет использоваться вместо идентификатора, хранящегося в /etc/machine-id .

Идентификатор компьютера не изменяется в зависимости от локальной или сетевой конфигурации или когда оборудование замененный.

Из-за этого свойства, а также его большей длины он является более полезной заменой вызова gethostid(3), указанного в POSIX.

Этот идентификатор машины соответствует тому же формату и логике, что и идентификатор машины D-Bus.

Этот идентификатор однозначно идентифицирует хост. Это должно считаться "конфиденциальным" и не должно подвергаться воздействию в ненадежных средах, в частности в сети.

Если стабильная какому-то приложению необходимм уникальный идентификатор, привязанный к машине, machine ID или любая его часть не должны использоваться напрямую.

Вместо этого идентификатор машины должен быть хэширован с помощью криптографической хэш-функции с ключом, используя фиксированный ключ для конкретного приложения.

Таким образом, идентификатор будет должным образом уникальным и постоянным образом выводится из идентификатора машины, но там не будет возможности получить исходный идентификатор компьютера из конкретного приложения.

API sd_id128_get_machine_app_specific(3) предоставляет реализацию такого алгоритма.

Узнать свой machine-id

cat /etc/machine-id

4ab7d70cacd0d33ca5bc9b2344e5e328

Изменить machine-id

Удалите старый machine-id

sudo rm /etc/machine-id

Сгенерируйте новый machine-id

sudo systemd-machine-id-setup

Проверьте результат

cat /etc/machine-id

Теперь желательно перезагрузиться и проверить всё ли работает правильно

Создать новый machine-id

Если вы удалили machine-id создать новый можно командой

systemd-machine-id-setup

Изменить machine-id

Если генерируется всё время один и тот же id значит скорее всего он берётся откуда-то ещё

Можно сгенерировать его самостоятельно с помощью dbus--uuidgen

rm -f /etc/machine-id
dbus-uuidgen --ensure=/etc/machine-id
dbus-uuidge --ensure
cat /etc/machine-id