GNU/Linux >> Znalost Linux >  >> Linux

generovat konzistentní jedinečné ID stroje

A co tyhle dva:

04

Poté je můžete kombinovat a hashovat pomocí:

13

Chcete-li odstranit koncovou pomlčku, přidejte další čáru:

21

Jak zdůrazňuje @mikeserv ve své odpovědi, název rozhraní se může mezi booty změnit. To znamená, že to, co je dnes eth0, může být zítra eth1, takže pokud sáhnete po 09 na různých bootech můžete získat jinou MAC adresu. Můj systém se takto nechová, takže nemohu skutečně testovat, ale možná řešení jsou:

  1. Grep pro 10 ve výstupu 25 ale ponechte si všechny, nejen ten, který odpovídá konkrétnímu NIC. Například v mém systému mám:

    35

    Získáním obou MAC adres a jejich předáním přes 33 , měli byste být schopni získat jedinečný a stabilní název, bez ohledu na to, jak se NIC nazývá:

    43

    Všimněte si, že hash se liší od výše uvedených, protože předávám obě MAC adresy vrácené 4251 .

  2. Místo toho vytvořte hash na základě UUID vašeho pevného disku (disků):

    51

Za prvé, mějte na paměti, že CPUID rozhodně není běžně přístupná jednoznačně identifikující značka pro jakýkoli systém pozdější než Intel Pentium III. I když jeho hašování s MAC adresami může vést k jedinečným markerům, je to způsobeno pouze jedinečnými vlastnostmi samotných MAC a CPUID v tomto případě není nic jiného než nepřímé. Navíc výsledný hash pravděpodobně nebude o nic jedinečnější než UUID základní desky, a to je mnohem snazší načíst a proces je mnohem méně náchylný k chybám. Z wikipedia.org/wiki/cpuid:

EAX=3 :Sériové číslo procesoru

Viz také:Pentium III § Kontroverze o otázkách soukromí

Tím se vrátí sériové číslo procesoru. Sériové číslo procesoru bylo zavedeno na Intel Pentium III, ale z důvodu ochrany osobních údajů již tato funkce není u novějších modelů implementována (bit funkce PSN je vždy vymazán). Procesory Efficeon a Crusoe společnosti Transmeta také poskytují tuto funkci. Procesory AMD však tuto funkci neimplementují v žádném modelu CPU.

Analyzovaný cpuid si můžete prohlédnout sami provedením 64 nebo dokonce jen 74 .

Tím získáte všechny MAC adresy pro síťová rozhraní rozpoznaná linuxovým jádrem, myslím:

64

Může být nutné tento seznam filtrovat, pokud může obsahovat virtuální nic s náhodně generovanými MAC. Můžete to udělat pomocí příznaků ve volání 88 přímo. Viz 92 informace o tom, jak to udělat.

Všimněte si také, že tento problém se netýká pouze 107 a musí být také řešen, pokud používáte 118 , ale že to lze spolehlivěji zvládnout pomocí 128 - který je součástí 130 síťová sada a je aktivně udržována – než je tomu u 140 - který je členem 153 balíček a naposledy se dočkalo vydání Linuxu v roce 2001. Kvůli změnám funkcí v jádře od posledního vydání 167 je známo, že chybně hlásí některé příznaky síťových funkcí, a pokud je to možné, je třeba se jeho použití vyvarovat.

Pochopte však, že filtrování s názvy rozhraní jádra jako 178 není spolehlivým prostředkem, jak toho dosáhnout, protože se mohou měnit na základě pořadí paralelní detekce pomocí 189 během procesu spouštění. Další informace naleznete v části Předvídatelné názvy sítí.

Protože 191 není nainstalován v mém systému Nejprve jsem si myslel, že zahašuji seznam seriálů na pevném disku generovaný jako:

76

Proveďte 200 pro nějaké vodítko k upřesnění tohoto seznamu - řekněme podle typu disku. Zvažte také 216 a/nebo 229 možná.

Jejich spojení je snadné:

82

Jak jste mě informovali, zadáváte uživatelské zdroje na vaší straně k jejich jedinečným identifikátorům a na existenci pevných disků se nelze spolehnout. Myslel jsem, že změním své nastavení.

Vzhledem k tomu jsem se znovu podíval do souborového systému a našel 233 složku. Zkontroloval jsem několik souborů:

92

Tento se však zdá být docela dobrý, ale výstup nezveřejním:

100

Očekávám, že tam je 247 stejně získá mnoho informací a ve skutečnosti to tak vypadá. Podle 250 můžete také výrazně zjednodušit používání tohoto nástroje zadáním argumentu:

117

Ještě jednodušší je však soubor číst. Všimněte si, že tento konkrétní soubor konkrétně identifikuje základní desku. Zde je výňatek z opravy jádra z roku 2007, která původně implementovala tyto exporty do 269 virtuální souborový systém:

123

Tato data možná budete moci použít samostatně k identifikaci systému – pokud vám stačí základní deska. Ale můžete tyto informace zkombinovat s MAC systému stejným způsobem, jakým jsem ukázal, že byste to mohli udělat s pevnými disky:

137

Linuxové jádro vám také může vygenerovat UUID:

149

Nebo:

152

Je pravda, že se generuje náhodně a budete muset přehodnotit přiřazení ID, ale je to asi tak snadné, jak je získat alespoň. A měl by být docela solidní, pokud najdete způsob, jak to klíčovat.

A konečně, na systémech UEFI je to mnohem jednodušší – protože každá proměnná prostředí firmwaru EFI obsahuje vlastní UUID. Proměnná prostředí 277 by měl být přítomen na každém systému UEFI, měl by přetrvávat restarty a dokonce většina upgrady a úpravy firmwaru a jakýkoli systém Linux s kódem 283 načtený modul může vypsat jeden nebo oba názvy jednoduše jako:

168

Starší forma - 295 je nyní zřejmě zastaralý a na novějších systémech by měl být 305 ale podle specifikace by jeden nebo druhý měl být přítomen v každém systému UEFI. S trochou úsilí můžete definovat své vlastní trvalé proměnné pro restart a možná tímto způsobem více využívat generátor UUID jádra. Máte-li zájem, podívejte se na efitools.


Mnoho moderních distribucí dodává soubor 315 obsahující s největší pravděpodobností jedinečný hexadecimální řetězec 32 znaků. Pochází ze systemd, kde manuálová stránka obsahuje více informací a může být vhodná pro váš účel.


Linux
  1. 10 způsobů, jak vygenerovat náhodné heslo v Linuxu

  2. Jak vygenerovat jedinečný hardwarový hash?

  3. Jak vypnout nebo restartovat Linux

  1. 8 způsobů, jak vygenerovat náhodné heslo v Linuxu

  2. Příkaz db_load – vygenerování databáze db

  3. Jak vygenerovat seznam jedinečných řádků v textovém souboru pomocí skriptu Linux shell?

  1. Spusťte virtuální počítač Linux v Podman

  2. Získání informací o hardwaru počítače v Linuxu

  3. Linux KVM na Virtualboxu