প্রথমত, দয়া করে নোট করুন যে সিপিইউডিটি অবশ্যই কোনও ইনটেল পেন্টিয়াম 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}
তবে, অনুমান অনুসারে, প্রতিটি ইউইএফআই সিস্টেমে একটি বা অন্য উপস্থিত থাকা উচিত। সামান্য প্রচেষ্টা সহ, আপনি নিজের রিবুট ধ্রুবক ভেরিয়েবলগুলি সংজ্ঞায়িত করতে পারেন এবং কার্নেলের ইউআইডি জেনারেটরটি সেভাবে আরও ব্যবহার করতে পারেন। আগ্রহী হলে, এফিটুলগুলিতে সন্ধান করুন ।