O ID da máquina é um uuid?

4

Eu pesquisei a minha pergunta e nenhum deles me respondeu: O ID da máquina é tão exclusivo quanto o UUID da placa principal (buscado por comando "get csproduct UUID" no windows)? E é confiável o suficiente para vincular uma licença no ID da máquina ao lado do endereço MAC? Ou o que é uuid no sistema * nix que pode ser usado para licenciamento?

    
por Nima 30.09.2017 / 17:56

2 respostas

6

Sim, hoje em dia.

Isso é coberto no manual do systemd. O valor em /etc/machine-id originalmente não era um UUID válido, porque as pessoas do systemd não escreviam originalmente o código correto para gerar um UUID da versão 4. Mas isso já foi corrigido.

Se você vincular uma licença à ID de máquina, esteja ciente de que ela pode mudar…

  • … se alguém excluir o /etc/machine-id e ele for recriado no próximo bootstrap;
  • … se /etc (geralmente no volume raiz na prática) não estiver montado como leitura-gravação no bootstrap, /etc/machine-id é inválido ou ausente e /etc não pode ser montado novamente depois da leitura-gravação permitindo /etc/machine-id a ser escrito;
  • … se o volume do disco contendo /etc for substituído por outro volume de disco diferente enquanto o sistema operacional não estiver em execução ou alguém alterar o ID da máquina no volume do disco com uma ferramenta como systemd-firstboot ;
  • … se o sistema é o que as pessoas do systemd chamam de "sem estado" e (efetivamente, sendo um pouco mais complexo que isso) /etc/machine-id é recriado em todo bootstrap;
  • … dentro de recipientes na máquina.

Mas, intencionalmente, não muda…

  • … se a placa principal, o processador ou a NIC forem substituídos;
  • … se os endereços MAC das NICs forem alterados;
  • … se o volume da raiz (mais especificamente, o volume contendo /etc ) for exibido em um disco de substituição com algo como dd ou pax ;
  • … durante o tempo de execução do sistema (a menos que o administrador do sistema evite deliberadamente usá-lo);
  • … de um bootstrap para o próximo, se /etc/machine-id for válido, não vazio e gravável na primeira vez.

notas de portabilidade

  • Não use /var/lib/dbus/machine-id em preferência a /etc/machine-id .
    • O arquivo original do Desktop Bus que gerou /etc/machine-id infelizmente não está em um local fixo que é portável entre sistemas operacionais. Em alguns sistemas, encontra-se em /var/lib/dbus/machine-id ; em outros em /var/db/dbus/machine-id .
    • Por volta de 2013, o D-Bus foi modificado para usar /etc/machine-id , se existir, substituindo o arquivo em /var , onde quer que seja.
    • Em 2015, o pessoal do Debian / Ubuntu transformou o arquivo D-Bus em /var em padrão sendo um link simbólico para /etc/machine-id , em qualquer caso.
  • /etc/machine-id não está limitado a estar disponível apenas no processo de inicialização depois que /var for montado ou após as interfaces de rede serem ativadas.
  • Embora o FreeBSD vanilla / TrueOS, NetBSD e OpenBSD não forneçam um /etc/machine-id , o conjunto de ferramentas fornece ferramentas portáteis (que também podem ser usadas no Linux) para criá-lo que também conhecem os lugares específicos do BSD que os BSDs espere tais IDs e mantenha o twain consistente.

Leitura adicional

por 01.10.2017 / 15:18
3

De uma pesquisa rápida no Google:

  • / etc / machine-id deve ser único e só será alterado se a máquina for reinstalada , mas é fornecido pelo systemd, que muitos sistemas não têm
  • / var / lib / dbus / machine-id deve ser único, e deve ser muito mais amplamente acessível. Os documentos dizem que ele pode mudar se a configuração do hardware mudar, mas em prática Acho que só muda se a máquina for reinstalada
  • você pode usar system-uuid , mas você precisa ser root, e isso mudará se a placa-mãe mudar

/var/lib/dbus/machine-id parece ser o melhor método para a maioria das situações.

Leitura adicional:

por 30.09.2017 / 18:45

Tags