GNU/Linux >> Belajar Linux >  >> Linux

menghasilkan ID unik mesin yang konsisten

Bagaimana dengan keduanya:

08

Anda kemudian dapat menggabungkan dan mencirikannya dengan:

17

Untuk menghapus tanda hubung tambahan, tambahkan satu pipa lagi:

25

Seperti yang ditunjukkan @mikeserv dalam jawabannya, nama antarmuka dapat berubah di antara boot. Ini berarti bahwa apa yang eth0 hari ini mungkin menjadi eth1 besok, jadi jika Anda memahami 04 Anda mungkin mendapatkan alamat MAC yang berbeda pada boot yang berbeda. Sistem saya tidak berperilaku seperti ini jadi saya tidak bisa benar-benar menguji tetapi solusi yang mungkin adalah:

  1. Grep untuk 14 dalam keluaran 29 tetapi pertahankan semuanya, bukan hanya yang sesuai dengan NIC tertentu. Misalnya, di sistem saya, saya punya:

    39

    Dengan mengambil kedua alamat MAC dan meneruskannya melalui 37 , Anda harus bisa mendapatkan nama yang unik dan stabil, terlepas dari apa NIC disebut apa:

    47

    Perhatikan bahwa hash berbeda dari yang di atas karena saya meneruskan kedua alamat MAC yang dikembalikan oleh 47 ke 55 .

  2. Buat hash berdasarkan UUID hard drive Anda sebagai gantinya:

    56

Pertama, harap dicatat bahwa CPUID pasti bukan penanda pengenal unik yang dapat diakses secara umum untuk sistem apa pun setelah Intel Pentium III. Meskipun hashing dengan alamat MAC dapat menyebabkan penanda unik, ini hanya karena kualitas unik dari MAC itu sendiri dan CPUID dalam hal ini tidak lebih dari keadaan. Selain itu, hash yang dihasilkan sepertinya tidak akan lebih unik dari UUID motherboard, dan itu jauh lebih mudah untuk diambil kembali dan prosesnya jauh lebih rentan terhadap kesalahan. Dari wikipedia.org/wiki/cpuid:

EAX=3 :Nomor Seri Prosesor

Lihat juga:Pentium III § Kontroversi tentang masalah privasi

Ini mengembalikan nomor seri prosesor. Nomor seri prosesor diperkenalkan pada Intel Pentium III, tetapi karena masalah privasi, fitur ini tidak lagi diterapkan pada model yang lebih baru (bit fitur PSN selalu dihapus). Prosesor Efficeon dan Crusoe Transmeta juga menyediakan fitur ini. Namun CPU AMD, tidak mengimplementasikan fitur ini di model CPU mana pun.

Anda dapat melihat cpuid yang diurai sendiri dengan melakukan 69 atau bahkan hanya 78 .

Ini memberi Anda semua alamat MAC untuk antarmuka jaringan yang dikenali oleh kernel linux, menurut saya:

68

Mungkin perlu memfilter daftar itu jika mungkin menyertakan nic virtual dengan MAC yang dibuat secara acak. Anda dapat melakukannya dengan flag dalam panggilan ke 83 secara langsung. Lihat 97 untuk informasi tentang cara melakukannya.

Perhatikan juga bahwa masalah ini tidak unik untuk 102 dan juga harus ditangani jika Anda menggunakan 113 , tetapi dapat ditangani dengan lebih andal dengan 122 - yang merupakan bagian dari 134 suite jaringan dan dipelihara secara aktif - dibandingkan dengan 145 - yang merupakan anggota dari 158 paket dan terakhir melihat rilis Linux pada tahun 2001. Karena perubahan fitur di kernel sejak rilis terakhirnya, 162 diketahui salah melaporkan beberapa flag fitur jaringan dan penggunaannya harus dihindari jika memungkinkan.

Namun, pahamilah bahwa pemfilteran dengan nama antarmuka kernel seperti 172 bukan cara yang dapat diandalkan untuk melakukannya, karena ini dapat berubah berdasarkan urutan deteksi paralelnya dengan 184 selama proses booting. Silakan lihat Nama Jaringan yang Dapat Diprediksi untuk informasi lebih lanjut tentang itu.

Karena 196 tidak terinstal di sistem saya, awalnya saya berpikir untuk mencirikan daftar serial hard disk yang dibuat seperti:

70

Lakukan 205 untuk beberapa petunjuk tentang menyempurnakan daftar itu - menurut jenis disk, katakanlah. Pertimbangkan juga 210 dan/atau 224 mungkin.

Menggabungkannya mudah:

87

Seperti yang telah Anda beri tahukan kepada saya, Anda memasukkan sumber daya pengguna di pihak Anda ke id unik mereka, dan hard disk tidak dapat diandalkan keberadaannya, saya berpikir untuk mengubah taktik saya.

Mengingat itu, saya melihat ke dalam sistem file lagi dan menemukan 237 map. Saya memeriksa beberapa file:

97

Namun, yang ini tampaknya cukup bagus, tetapi saya tidak akan menerbitkan hasilnya:

104

Saya berharap di situlah 241 mendapatkan banyak informasinya dan sebenarnya memang terlihat seperti itu. Menurut 255 Anda juga dapat sangat menyederhanakan penggunaan alat tersebut dengan menentukan argumen:

112

Lebih sederhana lagi, Anda cukup membaca file. Perhatikan bahwa file khusus ini secara khusus mengidentifikasi motherboard. Berikut kutipan dari tambalan kernel 2007 yang awalnya mengimplementasikan ekspor ini ke 264 sistem file virtual:

127

Anda mungkin dapat menggunakan data itu sendiri untuk mengidentifikasi sistem - jika motherboard cukup. Namun Anda dapat menggabungkan informasi ini dengan MAC sistem dengan cara yang sama seperti yang saya tunjukkan yang mungkin Anda lakukan dengan hard disk:

131

Kernel Linux juga dapat menghasilkan UUID untuk Anda:

144

Atau:

156

Memang, ini dibuat secara acak dan Anda harus memikirkan ulang penetapan ID, tetapi ini semudah mendapatkan paling sedikit. Dan itu akan cukup solid jika Anda dapat menemukan cara untuk memasukkannya.

Terakhir, pada sistem UEFI ini menjadi jauh lebih mudah dilakukan - karena setiap variabel lingkungan firmware EFI menyertakan UUID-nya sendiri. Variabel lingkungan 272 harus ada di setiap sistem UEFI, harus tetap melakukan reboot dan bahkan sebagian besar peningkatan dan modifikasi firmware, dan sistem Linux apa pun dengan 288 modul dimuat dapat mencantumkan salah satu atau kedua nama sesederhana:

163

Bentuk lama - 299 tampaknya sekarang sudah tidak digunakan lagi, dan pada sistem yang lebih baru seharusnya 309 tetapi, menurut spesifikasi, satu atau lainnya harus ada di setiap sistem UEFI. Dengan sedikit usaha, Anda dapat menentukan variabel persisten reboot Anda sendiri, dan mungkin lebih banyak menggunakan generator UUID kernel dengan cara itu. Jika tertarik, lihat efitools.


Banyak distribusi modern mengirimkan file 319 berisi string 32 karakter heksadesimal yang paling mungkin unik. Itu berasal dari systemd, di mana halaman manual memiliki lebih banyak informasi, dan mungkin sesuai untuk tujuan Anda.


Linux
  1. Cara mematikan atau me-reboot Linux

  2. Perintah reboot Linux

  3. Bagaimana cara menghasilkan daftar baris unik dalam file teks menggunakan skrip shell Linux?

  1. Mendapatkan informasi tentang perangkat keras mesin di Linux

  2. Total runtime mesin

  3. Enumerasi perangkat Linux yang konsisten

  1. Jalankan mesin virtual Linux di Podman

  2. 10 cara untuk menghasilkan kata sandi acak di Linux

  3. Bagaimana Cara Menghasilkan Catatan Sshfp?