ঠিক আছে আমার ড্যারেনের সাথে একই রকম উপসংহার রয়েছে যদিও কিছুটা আলাদা প্রোফাইলিং মেকানিজম (এনবি ধীর লগইন এখনও ইয়োসেমাইটে ঘটতে পারে)।
ওএস এক্স স্যাম্পল প্রোফাইলার কমান্ডটি ব্যবহার করে আপনি যখন নতুন লগইন উইন্ডো শুরু করবেন তখন আসলে কী চলছে তা বলার একটি উপায় এখানে ।
কোন সাধারণ লগইন সম্পাদন করে তা কমান্ডটি সন্ধান করুন
$ ps -ef | grep login
আপনি কিছু দেখতে পাবেন login -pfl username /bin/bash -c exec -la bash /bin/bash
একটি যুক্ত profile_login.shকরে নিম্নলিখিত বিষয়বস্তুগুলির সাথে একটি স্ক্রিপ্ট ফাইলের নাম তৈরি করুন
-c ""
এই জাতীয় বিষয়বস্তু সহ, বাশকে তাত্ক্ষণিকভাবে ফিরে আসার অনুরোধ করার জন্য আবিষ্কার করা কমান্ডের শেষে:
login -pfl username /bin/bash -c exec -la bash /bin/bash -c "" &
sudo sample $! -mayDie # sample the above command
এটি কার্যকর করা
$ chmod u+x profile_login.sh
এবং এটি sudo ব্যবহার করে চালান ( sampleকমান্ড এটি প্রয়োজন)
$ sudo ./profile_login.sh
ঠিক আছে তাই এগিয়ে যান এবং এটি চালান। উদাহরণস্বরূপ purgeপ্রথমে কমান্ড প্রয়োগ করে । আমার বাক্সে, আমি একটি বড় আউটপুট গ্রাফ পেয়েছি। "বৃহত্তম সংখ্যাযুক্ত শাখা" অনুসন্ধান করা (সাধারণত শীর্ষে) আমি নিম্নলিখিত দুটি বৃহত্তম অপরাধীকে দেখেছি :
এমন কিছু থেকে একটি pam_startযা পাম অথ লিব চিত্রগুলি খোলার জন্য উপস্থিত হয়
+ ! 1068 pam_start (in libpam.2.dylib) + 132 [0x7fff97295ab0]
+ ! : 1066 openpam_dynamic (in libpam.2.dylib) + 120 [0x7fff97293d14]
+ ! : | + ! 1042 coresymbolication_load_image(CSCppDyldSharedMemoryPage*, ImageLoader const*, unsigned long long) (in dyld) + 143 [0x7fff66725411]
+ ! : | + ! : 1042 mach_msg_trap (in dyld) + 10 [0x7fff6674a472]
এবং এটি কখনও কখনও অন্য অপরাধী দ্বারা অনুসরণ করা হয় getlastlogxbyname
+ ! 583 getlastlogxbyname (in libsystem_c.dylib) + 212 [0x7fff92b3ef7a]
+ ! : 566 asl_file_open_read (in libsystem_asl.dylib) + 143 [0x7fff8c27030d]
+ ! : | 566 __open_nocancel (in libsystem_kernel.dylib) + 10 [0x7fff97b39012] + ! : | 566 __open_nocancel (in libsystem_kernel.dylib) + 10 [0x7fff97b39012]
সুতরাং মূলত, সেখানে দু'জন অপরাধী রয়েছে। একটি হ'ল pam(কিছু ধরণের প্রমাণীকরণ সিস্টেম) এবং অন্যটি এটি asl"আপনার সর্বশেষ লগইন সনাক্ত করুন" স্টাফ। সুতরাং দৃশ্যত কেবল আপনার /private/var/log/asl/*.aslফাইলগুলি মুছে ফেলা যথেষ্ট নয়। আমার মেশিনে পাম লোডিং আরও ব্যয়বহুল, যাইহোক [এসএসডি]। উপরের স্ক্রিপ্টটি নির্দ্বিধায় চালনা করুন এবং দেখুন আপনার সিস্টেমটি একই কিনা। মজার বিষয় হল, এই পদ্ধতি কলগুলির উত্স কোডটি অনলাইনে উপলব্ধ বলে মনে হয়, উদাহরণস্বরূপ ওপেনপ্যাম_ডিনামিক
যদি আমি ড্যারেনের উত্তর অনুসরণ করি এবং আমার "শাঁসগুলি খোলে" প্রতিস্থাপন / বিইন / বাশ ব্যতীত অন্য কোনও কিছুর পছন্দকে অনুসরণ করি তবে আমি নতুন টার্মিনাল ট্যাবগুলি শুরু করতে নিম্নলিখিত লাইনগুলি দেখতে পাচ্ছি:
$ ps -ef | grep login
... login -pfql packrd /bin/bash -c exec -la bash /usr/bin/bash
সুতরাং আমি যদি এখন sampleনতুন লগইন কমান্ডে একই কৌশল ব্যবহার করি
login -pfql username /bin/bash -c exec -la bash /usr/bin/bash -c "" &
sudo sample $! -mayDie
একটি বৃহত্তর স্ট্যাকট্র্যাস উত্পন্ন হয়, বৃহত্তম অপরাধী হচ্ছে:
+ 8 pam_end (in libpam.2.dylib) + 190 [0x7fff97294ebb]
+ ! 6 coresymbolication_unload_image(CSCppDyldSharedMemoryPage*, ImageLoader const*) (in dyld) + 143 [0x7fff6e0f634f]
আমি মনে করি এটি হ'ল কারণ "-Q" প্যারামিটারটি এখন ব্যবহার হচ্ছে। দৃশ্যত এই প্যারামিটারটি উভয় পাম মডিউল লোড অগ্রাহ্য এবং গত লগইন করার সময় (উভয় অপরাধীদের) আপ খুঁজছেন। loginকমান্ডের ডক্স অনুসারে , ~/.hushloginফাইলটি স্পর্শ করা একই জিনিস করা উচিত, তবে স্পষ্টতই এটি আর কাজ করে না (অন্তত 10.10 নিয়ে আমার জন্য]]।
সুতরাং, সংক্ষেপে, /private/var/log/asl/*.asl অপসারণ যথেষ্ট নয় (আমার পরীক্ষায়, এটি কেবল আসল মন্দার প্রায় 1/3 অংশ হিসাবে দায়ী, যদিও আপনার যদি সেখানে অতিরিক্ত ফাইল থাকত তবে এটি অ্যাকাউন্ট করতে পারে বৃহত্তর শতাংশের জন্য আমি নিশ্চিত)।
যাইহোক, অনুরূপ স্ক্রিপ্টগুলি ব্যবহার করে, আপনার স্থানীয় মেশিনটি কী কারণে ডগল হচ্ছে তা আপনাকে বলতে সক্ষম হতে হবে এবং উপরের ফিক্সটি আপনার ক্ষেত্রে প্রযোজ্য কিনা তা দেখুন। এখানে নির্দ্বিধায় মন্তব্য করুন।
আপডেট: মনে হচ্ছে এটি coresymbolication_load_imageএখনও প্রচুর পরিমাণে সময় নিতে পারে, এমনকি যখন login -pfqlআহ্বান করা হয় (সম্ভবত কিছু পাম প্রমাণীকরণ মডিউল বা অন্য কোনও কেন্দ্রীয় লগইন সার্ভারে বা "ডায়াল আউট" করতে হয়, তাই তৃতীয় পক্ষের কাছ থেকে প্রতিক্রিয়া অপেক্ষা করতে হবে )। সুতরাং আমি খুঁজে পাওয়া একমাত্র আসল কাজটি হ'ল আইটার্ম 2 ব্যবহার করা এবং তার পছন্দগুলি -> প্রোফাইলগুলি -> সাধারণ -> /bin/bashপরিবর্তে কমান্ডটি পরিবর্তন করা।
.bash_profile(এছাড়াও~/.profileউপায় দ্বারা চেক করুন)। এছাড়াও: নোটটি লোড হওয়ার সময় আপনি টাইপ করা শুরু করতে পারেন এবং সাধারণত আপনি যা টাইপ করেন তা কমান্ড প্রম্পটে প্রস্তুত হয়ে গেলে এটি প্রস্তুত হয়ে যায়।