ওএসএক্স 10.11.1 এ শেল-এ DYLD_FALLBACK_LIBRARY_PATH সেট করতে অক্ষম


11

টিপিক্যাল @rpath ব্যতীত কোনও ডিরেক্টরিতে ডায়নামিক লাইব্রেরিগুলির সাথে ইউনিট পরীক্ষার জন্য ব্যবহৃত শেল স্ক্রিপ্টগুলিতে আমি এর আগে লাইব্রেরি সম্বলিত ডিরেক্টরি সেট করতে DYLD_FALLBACK_LIBRARY_PATH সেট করতে সক্ষম হয়েছি। 10.11.1 এর অধীনে, বাশ এই পরিবেশের পরিবর্তনশীল সেট করার প্রচেষ্টাটিকে অগ্রাহ্য করবে বলে মনে হচ্ছে:

$ sh -x testscript.sh
+ DYLD_FALLBACK_LIBRARY_PATH=/Users/something/testinglibs
+ export DYLD_FALLBACK_LIBRARY_PATH
+ exec printenv

এবং DYLD_FALLBACK_LIBRARY_PATH প্রিন্টেনভের আউটপুটে উপস্থিত নেই।

এটি কি 10.11 এর শেলের মধ্যে সুরক্ষা-সম্পর্কিত হ্যাক? ম্যান পৃষ্ঠাগুলিতে বা অনলাইনে নথিভুক্ত এই পরিবর্তনটি আমি খুঁজে পাচ্ছি না।


Would install_name_tool সাহায্য করেছিল?
সারু লিন্ডেস্টকে

অবশ্যই, ইনস্টল_নাম_টুল একটি স্থায়ী সমাধান (এবং আমি বাস্তবে এটি বিল্ড এনভায়রনমেন্ট সেটআপ করার জন্য লিপি করেছি)। উন্নয়নের পরিবেশে দ্রুত পরীক্ষার জন্য এবং ডিবাগ করার জন্য, লাইব্রেরির অস্থায়ী অনুলিপিগুলি তৈরি করা, @rpath পরিবর্তনগুলিতে হ্যাক করা এবং তারপরে সম্ভবত ম্যানুয়াল পরিবর্তনের কথা ভুলে যাওয়া কোনও ঝামেলা। DYLD_FALLBACK_LIBRARY_PATH এবং DYLD_LIBRARY_PATH এই মাঝে মাঝে দেব / পরীক্ষার চক্রগুলির জন্য কার্যকর ছিল।
গাই

উত্তর:


8

এটি এল ক্যাপিটেনে চালু করা সিস্টেম ইন্টিগ্রিটি প্রোটেকশন

অ্যাপল থেকে ডকুমেন্টেশন এই হয়

মূলত কোনও অ্যাপল সরবরাহিত ওএস এক্স এক্সিকিউটেবলগুলি সুরক্ষিত। এবং (পূর্ববর্তী দস্তাবেজ থেকে)

সিস্টেম ইন্টিগ্রিটি সুরক্ষা দ্বারা সীমাবদ্ধ প্রক্রিয়াগুলির শিশুদের প্রক্রিয়াগুলি যেমন এনএসটিস্কের সাথে একটি বান্ডলে কোনও সহায়ক প্রক্রিয়া চালু করা বা এক্সিকিউটি (2) কমান্ড কল করা, শিশু প্রক্রিয়াটির মাচ বিশেষ পোর্টগুলি পুনরায় সেট করে। সুরক্ষিত প্রক্রিয়াগুলি চালু করার সময় কোনও গতিশীল লিঙ্কার (ডিল্ড) এনভায়রনমেন্ট ভেরিয়েবলগুলি, যেমন ডিওয়াইএলডি_লিবিআরএআইপিএটিএইচ, মুছে ফেলা হয়।

এই ক্ষেত্রে sh সুরক্ষিত হয়


পয়েন্টারের জন্য ধন্যবাদ! আমি এসআইপি-র কার্নেল এবং অন্যান্য ফাইল-সিস্টেম সুরক্ষাগুলিতে মনোনিবেশ করেছিলাম। এই পরিবর্তনটি লক্ষ্য করেনি।
গাই

2
ঠিক আছে, এটি ঘটনার উত্স ব্যাখ্যা করে, তবে এখন হ্যাকটি কীভাবে আমরা ইনস্টল না করা লাইব্রেরিগুলি পরীক্ষা করার কথা বলছি? আমি বোঝাতে চাইছি, make checkযখন এল লিবিটনে ভাগ করে নেওয়া লিবসের প্রয়োজন হয় তখন আমরা কীভাবে লিখব ?
আকিম

অটোকনফের মাধ্যমে বেশিরভাগ মেকগুলি শেষ করতে হবে / ইউএসআর / লোকাল যা এখনও রচনাযোগ্য - যদি তারা /
ইউএস

ডিল্ড এনভায়রনমেন্ট ওয়ারগুলি কেন অদৃশ্য হয়ে গেছে তা বোঝার চেষ্টা করার পরে যদি কেউ এটির সন্ধান করে তবে ডিল্ড / এসআইপি মিথস্ক্রিয়াকে নথিভুক্ত করতে অ্যাপলের সাথে একটি বাগ ফাইল করার কথা বিবেচনা করুন। আমি ইতিমধ্যে করেছি, এবং বাগটি নম্বর পেয়ে গেছে: // 30755019। (আমি আশা করছি যে তারা তখন এ জাতীয় অন্যান্য ফাঁদগুলি নথিভুক্ত করার কথা ভাববে ...)
হিমাজাইল

1
(আমি হ'ল ডিল্ড ম্যানপেজে এসআইপি ইন্টারঅ্যাকশনটি নথিভুক্ত করেছি, যা এই লেখাটি সম্পর্কে পুরোপুরি
চুপচাপ রয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.