এটি মোটেও কোনও সুরক্ষা ঝুঁকি নয়, কারণ আপনি সর্বদা আপনার বর্তমান পরিবেশের জন্য পরিবেশগত পরিবর্তনশীল (যেমন বর্তমান বাশ সেশন) এবং export
কমান্ডটি ব্যবহার করে , তার শিশু পরিবেশ (আপনি যে স্ক্রিপ্টগুলি চালু করেন, সাবশেলস ইত্যাদি) সেট করতে পারেন। প্যারেন্ট এনভায়রনমেন্টে তৈরি বা পরিবর্তিত পরিবেশের পরিবর্তনশীলটিকে বাড়ানো অসম্ভব esc এর মধ্যে রয়েছে যে নিয়মিত ব্যবহারকারীদের অবশ্যই সিস্টেম-ব্যাপী পরিবর্তন করা অসম্ভব।
সুতরাং যদি আপনি চালান তবে কেবলমাত্র পরিবেশটি প্রভাবিত হবে তা export LD_LIBRARY_PATH=...
হ'ল আপনার বর্তমান শেল এবং এর কোনও সাব-শেল আপনি পরে স্প্যান করতে পারেন। ধরা যাক আপনি শুরুতে সংক্রামিত গ্রন্থাগারগুলি অন্তর্ভুক্ত করতে সন্ধানের পথটি পরিবর্তন করেছেন অর্থাৎ সর্বোচ্চ অগ্রাধিকার সহ। তারপরে আপনি এমন একটি এক্সিকিউটেবল চালাবেন যা কোনও জেনেও সংক্রামিত libs লোড করে। এখন কি ঘটছে?
আপনার নিজের ব্যবহারকারীর অ্যাকাউন্টের অধীনে নিয়মিত প্রশাসনিক সুবিধাসহ দূষিত কোড চলছে (সংক্রামিত গ্রন্থাগার থেকে)। এটি খারাপ লাগতে পারে, তবে আসলে ... তাই কি? এটি নিয়মিত ব্যবহারকারীর সুবিধাগুলি নিয়ে চলে যার অর্থ এটি পুরো সিস্টেমকে প্রভাবিত করতে পারে না। যাইহোক, একই দূষিত কোডের সাথে সরাসরি একটি এক্সিকিউটেবল চালানো লাইব্রেরির অনুসন্ধানের পথটি সংশোধন করা এবং এটি লোড করার জন্য একটি সাধারণ এক্সিকিউটেবলের অপেক্ষা করার চেয়ে অনেক সহজ হত।
উপসংহার: একটি নিয়মিত ব্যবহারকারীর কেবল তাদের নিজস্ব লাইব্রেরি দেখার পথটি পরিবর্তন করতে পারে যার অর্থ তারা কেবলমাত্র নিয়মিত নন-সিস্টেম-প্রশস্ত সুযোগ-সুবিধা সহ তাদের নিয়মিত ব্যবহারকারীর অ্যাকাউন্টের অধীনে সেই লাইব্রেরিগুলি লোড করতে পারে। এটি বলেছিল, তারা কোনও সংক্রামিত লাইব্রেরি লোড করতে বাধ্য করে বা সরাসরি সংক্রামিত এক্সিকিউটেবলকে চালায় কিনা তাতে কোনও পার্থক্য নেই। যদি পরিবেশের পরিবর্তনশীল ব্যবহারকারীরা ওভাররাইড না করতে পারে তবে আপনি একেবারে কিছুই অর্জন করতে পারবেন না।
দ্রষ্টব্য: এছাড়া এক্সেকিউটেবল যা আছে setuid বা setgid পতাকা সেট, যার মানে তারা এক যারা তাদের রান ব্যবহারকারী / গ্রুপ হিসাবে চালনা করা হবে, কিন্তু এক যারা এর মালিক তাদের। উদাহরণস্বরূপ, sudo
এক্সিকিউটেবলটি রুটের মালিকানাধীন এবং সেটুইড পতাকা সেট থাকে যার অর্থ এটি কার্যকর করা হলে এটি সর্বদা রুটের মতো চলে। সুরক্ষার কারণে, নিয়মিত ব্যবহারকারী স্বেচ্ছাসেবী লাইব্রেরি লোড করার জন্য রুট সুবিধাগুলি সহ একটি এক্সিকিউটেবল চলমান করতে না পারে তা নিশ্চিত করার জন্য নির্ধারিত সেটআপড / সেটগিড পতাকাগুলির $LD_LIBRARY_PATH
সাথে এক্সিকিউটেবলগুলি দ্বারা চলকটিকে উপেক্ষা করা হয় ।
(এটি প্রকাশ করার জন্য @ রিনজউইন্ডকে ধন্যবাদ!)