ধারাবাহিক মেশিনের অনন্য আইডি উত্পন্ন করুন


20

আমরা কি প্রতিটি পিসির জন্য ইউইউইডজেনের মতো একটি অনন্য আইডি তৈরি করতে পারি, তবে হার্ডওয়্যার পরিবর্তন না হলে এটি কখনই পরিবর্তিত হবে না? আমি সিপিইউডিএল এবং ম্যাকএডিডিআর মার্জ করার বিষয়ে চিন্তা করছিলাম এবং একটি সামঞ্জস্যপূর্ণ আইডি উত্পন্ন করার জন্য তাদের হ্যাশ করছিলাম, তবে বাশ স্ক্রিপ্ট ব্যবহার করে কীভাবে তাদের পার্স করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই, আমি যা জানি তা কীভাবে আমি সিপিইউডি থেকে পেতে পারি

dmidecode -t 4 | grep ID

এবং

ifconfig | grep ether

তারপরে আমাকে length হেক্স স্ট্রিংগুলি মিশ্রিত করতে হবে এবং নির্দিষ্ট দৈর্ঘ্যের হেক্স স্ট্রিং তৈরি করতে sha1 বা md5 ব্যবহার করে হ্যাশ করতে হবে।
আমি কীভাবে এই আউটপুটটিকে পার্স করতে পারি?


4
আপনি এই পদ্ধতিটি ব্যবহার করে সমাধান করার চেষ্টা করছেন ঠিক কী?
দারখোগ

1
আমি দারখোগের সাথে আছি। এই দিন এবং যুগে এই ধরণের জিনিসগুলি করার চেষ্টা করা সাধারণত একটি খারাপ ধারণা। ভার্চুয়ালাইজেশন শারীরিক হার্ডওয়্যার ধরণের অর্থহীন সফ্টওয়্যার বাঁধাইয়ের অনুশীলন করেছে। আপনার প্রয়োজনীয়তাগুলি ঘনিষ্ঠভাবে পরীক্ষা করে নিলে (দারখোগ যা চালাচ্ছে সেটিতে সাধারণত) এর থেকে আরও ভাল উত্তর পাওয়া যায়।
16:48

4
আমি এটি ব্যবহার মেশিনের সাথে একটি সফটওয়্যার বাঁধে, এটা লিনাক্স খনির তামাশা যে, মেঘ নিয়ন্ত্রণ ও পর্যবেক্ষণ সেবা থেকে নিজেকে চিহ্নিত করার প্রয়োজনীয়তা পরিবর্তে নিজে তামাশা হাজার হাজার নামকরণের, আমি স্বতন্ত্র তাদের হার্ডওয়্যার ID ব্যবহার করে সেগুলি চিহ্নিত প্রয়োজন
uray

1
@ ইউজার 777১০: যদি এটি হয় তবে আপনি কি আসলেই হার্ডওয়ারটির বিষয়ে যত্নশীল হন? যদি কোনও উপস্থিত না থাকে তবে কেবল মেশিনে একটি ইউইউডি কেন তৈরি করবেন না। এটি কোনও ইউইউডির মূল বিষয় - এগুলি সর্বজনীনভাবে অনন্য (তাদের ওভারল্যাপিংয়ের প্রতিক্রিয়াগুলি জ্যোতির্বিজ্ঞানের দ্বারা অসম্ভব)। serverfault.com/questions/103359/how-to-create-a-uuid-in-bash
ক্যালফুল

1
@ জোআরউনসভিলে - আমার অর্থ এই নয় যে সিকিউরবুট নিজেই সমাধান ছিল - যদিও এটি স্ব-স্বাক্ষরিত শংসাপত্রগুলিকে সমর্থন করে - তবে এর পদ্ধতিটি । তবে এটি সিস্টেমের ফার্মওয়্যারের প্রস্তাবিত একটি এপিআই ব্যবহার করে - এবং যে কোনও ইউইএফআই সিস্টেমে প্রতিটি ফার্মওয়্যার ভেরিয়েবলের নামে আপনার ইতিমধ্যে সেটআপের প্রয়োজন হতে পারে - আমার উত্তর দেখুন। এছাড়াও, আপনাকে bashকোনও লিনাক্সের একটি ইউইউডি জেনারেট করার জন্য - বা - আপনার কোনও অ্যাপ্লিকেশন প্রয়োজন নেই । cat /proc/sys/kernel/random/uuid
মাইক্রজারভ

উত্তর:


21

এই দুটি সম্পর্কে কীভাবে:

$ sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g'
52060201FBFBEBBF
$ ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g'
0126c9da2c38

তারপরে আপনি এগুলিকে একত্রিত করতে এবং হ্যাশ করতে পারেন:

$ echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \
       $(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum 
59603d5e9957c23e7099c80bf137db19144cbb24efeeadfbd090f89a5f64041f  -

পেছনের ড্যাশগুলি সরাতে, আরও একটি পাইপ যুক্ত করুন:

$ echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \
       $(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum |
  awk '{print $1}'
59603d5e9957c23e7099c80bf137db19144cbb24efeeadfbd090f89a5f64041f

@ উত্তরদাতা যেমন তার উত্তরে উল্লেখ করেছেন , ইন্টারফেসের নাম বুটের মধ্যে পরিবর্তন করতে পারে । এর অর্থ হ'ল আজ এথ 0 যা হতে পারে তা আগামীকাল এথ 1 হতে পারে, তাই যদি আপনি গ্রেপ eth0করেন তবে বিভিন্ন বুটে আলাদা ম্যাক ঠিকানা পেতে পারেন। আমার সিস্টেমটি এর সাথে আচরণ করে না তাই আমি সত্যিই পরীক্ষা করতে পারি না তবে সম্ভাব্য সমাধানগুলি হ'ল:

  1. HWaddrএর আউটপুট জন্য গ্রেপ ifconfigকিন্তু তাদের সমস্ত রাখুন, একটি নির্দিষ্ট এনআইসির অনুরূপ এক না। উদাহরণস্বরূপ, আমার সিস্টেমে আমার রয়েছে:

    $ ifconfig | grep HWaddr
    eth1      Link encap:Ethernet  HWaddr 00:24:a9:bd:2c:28  
    wlan0     Link encap:Ethernet  HWaddr c4:16:19:4f:ac:g5  

    উভয়ই ম্যাক ঠিকানা দখল করে এবং সেগুলি দিয়ে যাওয়ার মাধ্যমে sha256sum, আপনাকে এনআইসি বলা যায় না কেন: আপনি একটি অনন্য এবং স্থিতিশীল নাম পেতে সক্ষম হবেন:

    $ echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \
         $(ifconfig | grep -oP 'HWaddr \K.*' | sed 's/://g') | sha256sum |
          awk '{print $1}'
    662f0036cba13c2ddcf11acebf087ebe1b5e4044603d534dab60d32813adc1a5    

    লক্ষ্য করুন হ্যাশ উপরে কারণ আমি দ্বারা ফিরে উভয় MAC অ্যাড্রেস ক্ষণস্থায়ী করছি বেশী থেকে ভিন্ন ifconfigকরতে sha256sum

  2. পরিবর্তে আপনার হার্ড ড্রাইভ (গুলি) এর ইউআইডিগুলির উপর ভিত্তি করে একটি হ্যাশ তৈরি করুন:

    $ blkid | grep -oP 'UUID="\K[^"]+' | sha256sum | awk '{print $1}'
    162296a587c45fbf807bb7e43bda08f84c56651737243eb4a1a32ae974d6d7f4

এটি দুর্দান্ত তবে কীভাবে ট্র্যাশিং ড্যাশ '-' থেকে মুক্তি পাবেন?
uray

@ ব্যবহারকারী 77710 আপডেট উত্তর দেখুন।
টেরডন

1
আমি cpuid খারাপ ... wikipedia.org/wiki/cpuid
mikeserv

@ মিকসার্ভ আহ, হ্যাঁ, আমি আপনার বক্তব্যটি দেখছি। ধন্যবাদ, উত্তর সম্পাদিত।
টেরডন

একই হোস্টে সমস্ত অতিথি ওএসের জন্য একই আইডি উত্পন্ন করে।
নিতিনকুমার আম্বেকার

23

প্রথমত, দয়া করে নোট করুন যে সিপিইউডিটি অবশ্যই কোনও ইনটেল পেন্টিয়াম III এর পরে কোনও সিস্টেমের জন্য সাধারণভাবে অ্যাক্সেসযোগ্য অনন্যভাবে চিহ্নিতকারী নয় mar ম্যাকের ঠিকানাগুলি দিয়ে হ্যাশ করার সময় অবশ্যই অনন্য চিহ্নিতকারীগুলির দিকে পরিচালিত হতে পারে, এটি কেবল নিজেরাই ম্যাকের অনন্য গুণাবলীর কারণে এবং সেই ক্ষেত্রে সিপিইউডিটি পরিস্থিতিযুক্ত ছাড়া আর কিছুই নয়। তদুপরি, ফলস্বরূপ হ্যাশটি মাদারবোর্ডের ইউআইডি থেকে আর কোনও অনন্য হওয়ার সম্ভাবনা নেই এবং এটি পুনরুদ্ধার করা আরও সহজ এবং প্রক্রিয়াটি ভুল হওয়ার প্রবণতাও কম। উইকিপিডিয়া.org / উইকি / সিপিউইড থেকে :

EAX = 3 : প্রসেসরের সিরিয়াল নম্বর

আরও দেখুন: পেন্টিয়াম তৃতীয় privacy গোপনীয়তা সংক্রান্ত বিষয়ে বিতর্ক

এটি প্রসেসরের সিরিয়াল নম্বর প্রদান করে। প্রসেসরের সিরিয়াল নম্বরটি ইন্টেল পেন্টিয়াম তৃতীয়তে প্রবর্তিত হয়েছিল, তবে গোপনীয়তার উদ্বেগগুলির কারণে, এই বৈশিষ্ট্যটি পরবর্তী মডেলগুলিতে আর প্রয়োগ করা হয় না (পিএসএন বৈশিষ্ট্য বিটটি সবসময় সাফ করা হয়)। ট্রান্সমিটারের এফিসিওন এবং ক্রুসো প্রসেসরগুলিও এই বৈশিষ্ট্যটি সরবরাহ করে। এএমডি সিপিইউগুলি তবে কোনও সিপিইউ মডেলগুলিতে এই বৈশিষ্ট্যটি প্রয়োগ করে না।

আপনি নিজের দ্বারা পার্সড সিপিউইড নিজেই দেখতে পেয়েছেন cat /proc/cpuinfoবা ঠিক করেই দেখতে পারেন lscpu

এটি আপনাকে লিনাক্স কার্নেল দ্বারা স্বীকৃত নেটওয়ার্ক ইন্টারফেসের জন্য সমস্ত ম্যাক ঠিকানা পেয়েছে, আমি মনে করি:

ip a | sed '\|^ *link[^ ]* |!d;s|||;s| .*||'

যদি এলোমেলোভাবে উত্পাদিত ম্যাকগুলি সহ ভার্চুয়াল নিকগুলি অন্তর্ভুক্ত করতে পারে তবে সেই তালিকাটি ফিল্টার করা প্রয়োজন হতে পারে। আপনি ipসরাসরি কলটিতে পতাকা দিয়ে এটি করতে পারেন । ip a helpকীভাবে এটি করা যায় সে সম্পর্কে তথ্যের জন্য দেখুন ।

এছাড়াও মনে রাখবেন যে এই সমস্যাটি অনন্য নয় ipএবং আপনি যদি ব্যবহার করেন তবে তা অবশ্যই মোকাবেলা করতে হবে ifconfig, তবে এটি আরও নির্ভরযোগ্যভাবে পরিচালনা করা যেতে পারে ip- যা iproute2নেটওয়ার্ক স্যুটটির অংশ এবং সক্রিয়ভাবে রক্ষণাবেক্ষণ করা - এটির তুলনায় ifconfig- যা সদস্য এর net-toolsপ্যাকেজ ও শেষ করাত লিনাক্স 2001 সালে মুক্তি । কার্নেলের শেষ প্রকাশের পর থেকে বৈশিষ্ট্য পরিবর্তন করার কারণে, ifconfigএটি কিছু নেটওয়ার্কিং বৈশিষ্ট্যযুক্ত পতাকাগুলি ভুল তথ্য সরবরাহ করে বলে পরিচিত এবং যদি সম্ভব হয় তবে এর ব্যবহার এড়ানো উচিত।

যদিও বুঝতে হবে যে কার্নেল ইন্টারফেসের মতো ফিল্টারিং করা eth[0-9]নির্ভরযোগ্য উপায় নয় udevকারণ বুট প্রক্রিয়া চলাকালীন এগুলি সমান্তরাল সনাক্তকরণের ক্রমের ভিত্তিতে পরিবর্তন করতে পারে change আরও তথ্যের জন্য অনুমানযোগ্য নেটওয়ার্ক নামগুলি দেখুন।

কারণ dmidecodeআমার সিস্টেমে ইনস্টল করা নেই আমি প্রথমে হার্ড ডিস্ক সিরিয়ালের তালিকা তৈরির মতো হ্যাশ করতে ভেবেছিলাম:

lsblk -nro SERIAL

কি lsblk --helpসেই তালিকাটি পরিমার্জিত কিছু সংকেত সনাক্ত করুন জন্য - ডিস্ক টাইপ দ্বারা বলতে। এছাড়াও বিবেচনা করুন lspciএবং / অথবা lsusbহতে পারে।

তাদের একত্রিত করা সহজ:

{ ip a | sed ... ; lsblk ... ; } | #abbreviated... for brevity...
    tr -dc '[:alnum:]' | #deletes all chars not alphanumeric - including newlines
    sha256sum #gets your hash

আপনি আমাকে অবহিত হিসাবে আপনি ব্যবহারকারীর সংস্থানগুলি আপনার অনন্য আইডির জন্য প্রান্তে রেখেছেন, এবং হার্ড ডিস্কগুলি বিদ্যমান থাকার উপর নির্ভর করা যায় না আমি ভেবেছিলাম আমার ট্যাকটিকে পরিবর্তন করব।

এটি বিবেচনা করা হয়েছে, আমি আবার ফাইল সিস্টেমের দিকে তাকিয়ে /sys/class/dmi/idফোল্ডারটি খুঁজে পেয়েছি । আমি কয়েকটি ফাইল পরীক্ষা করেছি:

cat ./board_serial ./product_serial

###OUTPUT###
To be filled by O.E.M.
To be filled by O.E.M.

তবে এটি বেশ ভাল বলে মনে হচ্ছে তবে আমি আউটপুটটি প্রকাশ করব না:

sudo cat /sys/class/dmi/id/product_uuid

আমি আশা করি এটি যেখানে dmidecodeতার তথ্যের বেশিরভাগ অংশ পায় এবং বাস্তবে এটি এর মতো দেখায় না । আপনি মতে man dmidecodeতর্কটি নির্দিষ্ট করে এই সরঞ্জামটির আপনার ব্যবহারকে একটি দুর্দান্ত ব্যবহারও সহজ করতে পারেন:

dmidecode -s system-uuid

আরও সহজ এখনও, আপনি কেবল ফাইলটি পড়তে পারেন। নোট করুন যে এই বিশেষ ফাইলটি একটি মাদারবোর্ডকে বিশেষভাবে চিহ্নিত করে। 2007 কার্নেল প্যাচ থেকে একটি অংশ এখানে মূলত /sysfsভার্চুয়াল ফাইল সিস্টেমে এই রফতানি বাস্তবায়িত করেছে :

+DEFINE_DMI_ATTR_WITH_SHOW(bios_vendor,      0444, DMI_BIOS_VENDOR);
+DEFINE_DMI_ATTR_WITH_SHOW(bios_version,         0444, DMI_BIOS_VERSION);
+DEFINE_DMI_ATTR_WITH_SHOW(bios_date,        0444, DMI_BIOS_DATE);
+DEFINE_DMI_ATTR_WITH_SHOW(sys_vendor,       0444, DMI_SYS_VENDOR);
+DEFINE_DMI_ATTR_WITH_SHOW(product_name,         0444, DMI_PRODUCT_NAME);
+DEFINE_DMI_ATTR_WITH_SHOW(product_version,   0444, DMI_PRODUCT_VERSION);
+DEFINE_DMI_ATTR_WITH_SHOW(product_serial,    0400, DMI_PRODUCT_SERIAL);
+DEFINE_DMI_ATTR_WITH_SHOW(product_uuid,         0400, DMI_PRODUCT_UUID);
+DEFINE_DMI_ATTR_WITH_SHOW(board_vendor,         0444, DMI_BOARD_VENDOR);
+DEFINE_DMI_ATTR_WITH_SHOW(board_name,       0444, DMI_BOARD_NAME);
+DEFINE_DMI_ATTR_WITH_SHOW(board_version,     0444, DMI_BOARD_VERSION);
+DEFINE_DMI_ATTR_WITH_SHOW(board_serial,         0400, DMI_BOARD_SERIAL);
+DEFINE_DMI_ATTR_WITH_SHOW(board_asset_tag,   0444, DMI_BOARD_ASSET_TAG);
+DEFINE_DMI_ATTR_WITH_SHOW(chassis_vendor,    0444, DMI_CHASSIS_VENDOR);
+DEFINE_DMI_ATTR_WITH_SHOW(chassis_type,         0444, DMI_CHASSIS_TYPE);
+DEFINE_DMI_ATTR_WITH_SHOW(chassis_version,   0444, DMI_CHASSIS_VERSION);
+DEFINE_DMI_ATTR_WITH_SHOW(chassis_serial,    0400, DMI_CHASSIS_SERIAL);
+DEFINE_DMI_ATTR_WITH_SHOW(chassis_asset_tag, 0444, DMI_CHASSIS_ASSET_TAG);

সিস্টেমটি সনাক্ত করতে আপনি একাই সেই ডেটা ব্যবহার করতে সক্ষম হতে পারেন - যদি মাদারবোর্ড যথেষ্ট হয়। তবে আপনি এই তথ্যটি সিস্টেমের ম্যাকগুলির সাথে একইভাবে সংযুক্ত করতে পারেন আমি যেভাবে হার্ড ডিস্কের সাহায্যে করতে পেরেছি:

sudo sh <<\CMD | tr -dc '[:alnum:]' | sha256sum
        ip a | sed '\|^ *link[^ ]* |!d;s|||;s| .*||'
        cat /sys/class/dmi/id/product_uuid 
CMD

লিনাক্স কার্নেল আপনার জন্য ইউআইডিও তৈরি করতে পারে:

cat /proc/sys/kernel/random/uuid #new random uuid each time file is read

বা:

cat /proc/sys/kernel/random/boot_id #randomly generated per boot

মঞ্জুর, এটি এলোমেলোভাবে উত্পাদিত হয়েছে এবং আপনাকে আইডি অ্যাসাইনমেন্টটি পুনর্বিবেচনা করতে হবে তবে এটি কমপক্ষে পাওয়ার জন্য যতটা সহজ । আপনি যদি এটির কোনও উপায় খুঁজে পেতে পারেন তবে এটি বেশ শক্ত হওয়া উচিত।

সর্বশেষে, ইউইএফআই সিস্টেমগুলিতে এটি করা আরও সহজ হয়ে যায় - কারণ প্রতিটি ইএফআই ফার্মওয়্যার এনভায়রনমেন্ট ভেরিয়েবলের নিজস্ব ইউআইডি রয়েছে। এনভায়রনমেন্ট ভেরিয়েবল {Platform,}LangCodes-${UUID}প্রতিটি ইউইএফআই সিস্টেমে উপস্থিত থাকতে হবে, রিবুটগুলি এবং এমনকি বেশিরভাগ ফার্মওয়্যার আপগ্রেড এবং পরিবর্তন থাকতে হবে, এবং মডিউলযুক্ত যে কোনও লিনাক্স সিস্টেম efivarfsদুটি বা উভয় নামকে কেবল তালিকাভুক্ত করতে পারে:

printf '%s\n' /sys/firmware/efi/efivars/*LangCodes-*

পুরানো ফর্ম - LangCodes-${UUID}আপাতদৃষ্টিতে এখন অবহেলিত , এবং নতুন সিস্টেমে হওয়া উচিত PlatformLangCodes-${UUID}তবে, অনুমান অনুসারে, প্রতিটি ইউইএফআই সিস্টেমে একটি বা অন্য উপস্থিত থাকা উচিত। সামান্য প্রচেষ্টা সহ, আপনি নিজের রিবুট ধ্রুবক ভেরিয়েবলগুলি সংজ্ঞায়িত করতে পারেন এবং কার্নেলের ইউআইডি জেনারেটরটি সেভাবে আরও ব্যবহার করতে পারেন। আগ্রহী হলে, এফিটুলগুলিতে সন্ধান করুন ।


এটির হার্ডডিস্ক বা কোনও ডিস্ক চলছে না, এটির খনির ছড়াছড়ি , যদি আপনি জানেন না তবে এটি কী দেখছে এই ডাইটিসিজেড / সাইটস / ডিফল্ট / ফাইলস / আইমেজ / 3988/… ভার্চুয়াল মেশিনটি একক 6 জিপিইউ চালাতে পারে না মাদারবোর্ড
ইউরে

যাইহোক এটি কখনই কোনও এলোমেলো নম্বর ব্যবহার করা উচিত নয় কারণ এটি মেশিনটির নামকরণের উদ্দেশ্যে
দৃ beat়ভাবে

@ ব্যবহারকারী 77710 - ডাং, মানুষ, জিনিসটি দুর্দান্ত। এটা কি একটা যন্ত্র? সম্ভবত আপনি ঠিক বলেছেন তবে এক্সডিএমএক্স এবং ক্রোমিয়ামের কয়েকটি কম্বো - কিছু বিতরণ গ্রাফিক্স স্টাফ দিয়ে এটি সম্ভবত সম্ভব। যাইহোক, এটি কোনও ব্যাপার নয় - আমার এটি পিছনের দিকে ছিল। তাদের অর্থের বাইরে কে মারতে চাইবে? আমি কিছু সফ্টওয়্যার লাইসেন্সিং জিনিস বা কিছু ভেবেছিলাম - আপনি ব্যাংক অ্যাকাউন্টগুলি করছেন।
মাইকজার্ভ

আপনি সেখানে পেয়েছেন তাদের কিছু নিফটি কৌশল, +1।
টেরডন

@ ইটারডন - প্রশংসা অনেক প্রশংসা করা হয়েছে, তবে বেশিরভাগ ক্ষেত্রে, তারা কৌশল নয়। ip2পার্স করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে, এবং এটি হতে পারে যে আমি এটি যথেষ্ট পরিমাণে করছি না - আমার সন্দেহ হয় একই জিনিসটি প্রায় ছাড়াই করা যায় grep/sed। সম্ভবত একই সাথে সহজেই করা যেতে পারে udevadm। এবং প্রতিটি ইএফআই এনভায়রনমেন্ট ভেরিয়েবলের নামটি এই ধরণের পরিস্থিতিতে যথাযথভাবে চিহ্নিত করার জন্য ডিজাইন করা হয়েছে।
মাইকজার্ভ

19

অনেক আধুনিক বিতরণ একটি /etc/machine-idসম্ভবত সম্ভবত অনন্য হেক্সাডেসিমাল 32-অক্ষরের স্ট্রিং সহ একটি ফাইল পাঠায়। এটি সিস্টেমেড থেকে উত্পন্ন, যেখানে কোনও ম্যানপেজে আরও তথ্য রয়েছে এবং এটি আপনার উদ্দেশ্যে উপযুক্ত হতে পারে।


+1, @ এক্সজেডএস, আপনি এখানে ইউআরএল থেকেও সম্পর্কিত তথ্য যুক্ত করতে পারেন।
রমেশ

1
এটি ভাল, এবং আমি অনুরূপ তথ্য পেয়েছি এবং এটি প্রায় ব্যবহার করেছি ... তবে আমি ইতিমধ্যে একটি ভিন্ন রুটে প্রতিশ্রুতিবদ্ধ ছিল। তবুও, এটি লক্ষ্য করা উচিত যে এটি dbusসুনির্দিষ্ট, আমি মনে করি এবং যদি কোনও অপারেটিং সিস্টেম মুছে ফেলা / পুনরায় ইনস্টল করা হয় তবে পরিবর্তন হয়।
মাইকসার্ভ

এটি বেশ সুন্দর ভয়ঙ্কর is
জেনকোড

5

প্রচুর লিনাক্স মেশিনে, ফাইলটিতে /var/lib/dbus/machine-idপ্রতিটি লিনাক্স বিতরণের জন্য একটি অনন্য আইডি থাকে এবং একটি কল করে এটি অ্যাক্সেস করতে পারে dbus_get_local_machine_id()। এটি সম্ভবত /etc/machine-idউপরে উল্লিখিত মত একই । এটি ভার্চুয়াল লিনাক্স ইনস্টলেশনতেও কাজ করে। আমি এটি বর্তমান উবুন্টু, সুএসই এবং সেন্টোস বিতরণে পরীক্ষা করেছি।


1
ফেডোরা 19 + 20 এ সেই ফাইলটির অস্তিত্ব নেই। এখানে দেওয়া হল: /etc/machine-id
slm

সম্ভবত আমি যথেষ্ট পরিষ্কার ছিল না। আমার বক্তব্যটি হ'ল যদি আপনি এটির একটি জায়গা না পান তবে অন্য জায়গায় দেখুন। অথবা ফাংশন কল ব্যবহার করে আপনার নিজের প্রোগ্রামটি লিখুন।
র‌্যাঙ্কেনে

0

হার্ডওয়্যার পরিবর্তন হলে আপনার কি মেশিন আইডি দরকার? মেশিন আইডি কিছু রক্ষা করতে ব্যবহার করা হচ্ছে? "সামঞ্জস্যপূর্ণ" মেশিন আইডিটি বিশ্বাস করার সর্বোত্তম উপায়টি হ'ল সিস্টেমে কোথাও এলোমেলো স্ট্রিং সংরক্ষণ করা এবং সেইভাবে যদি কোনও হার্ডওয়্যার পরিবর্তিত হয়, তবে মেশিন আইডিও পরিবর্তন হবে না। এটি ভার্চুয়ালাইজড সিস্টেমগুলির জন্যও ভাল যেখানে হার্ডওয়্যার অ্যাক্সেস সীমাবদ্ধ এবং ম্যাক আইডি 00: 00: 00: 00

আইডিটি তৈরি করতে এবং পেতে এই শ স্ক্রিপ্টের মতো কিছু চেষ্টা করুন:

#!/bin/sh
FILE="/etc/machine-id"

if [ ! -f $FILE ]; then
    cat /dev/urandom|tr -dc A-Z0-9|head -c32 > $FILE;
fi

cat $FILE;

যেহেতু আপনার /dev/urandomলিনাক্সকে যাইহোক ইঙ্গিত করে, আপনি কেবল তাই করতে পারেন cat /proc/sys/kernel/random/uuid >$FILEযা এলোমেলোভাবে প্রতিটি পঠনের জন্য সঠিকভাবে বিন্যাসিত ইউআইডি উত্পন্ন করে। তবুও, কোনও ডিস্ক- dbusপ্রয়োগিত অধ্যবসায় মুছে ফেলা সাপেক্ষে, এবং যদি তা গ্রহণযোগ্য হয় এবং সরবরাহ করা থাকে তবে আপনার সম্ভবত @ এক্সজেডএসের পরামর্শ অনুযায়ী করা উচিত।
মাইকজার্ভ

0

অন্যান্য উত্তরগুলি হার্ডওয়্যার থেকে আইডিগুলি আহরণের বেশ কয়েকটি উপায় দেয়। আপনি সনাক্তকারী বা অনেক হিসাবে এক টুকরো হার্ডওয়্যার ব্যবহার করার সিদ্ধান্ত নিতে পারেন। আপনার যদি নির্বিচারে হার্ডওয়ারের টুকরোগুলি বদলানো বা প্রতিস্থাপন করতে হয় তবে এটি সমস্যাযুক্ত।

কিছু লোক পরিবর্তে তাদের হার্ডড্রাইভে আইডি উত্পন্ন আইডি সঞ্চয় করতে পারে (বা ইউইউডি ব্যবহার করুন) তবে হার্ডড্রাইডগুলি ক্লোন হতে পারে।

টিপিএম মডিউলগুলি এবং সুরক্ষিত বুট একটি হার্ডড্রাইভের সাথে ইনস্টল সহ মাদারবোর্ড এবং অন্যান্য হার্ডওয়্যারকে বাঁধাইয়ের একটি উপায় সরবরাহ করতে পারে।

আপনি কী অর্জন করতে চান সে সম্পর্কে আরও তথ্য দিলে এই ক্ষেত্রে সবসময় কিছুটা সহজ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.