সুডোর সাথে আমি কী পরিবেশ পাব?


15

আমি যখন সুডো চালাই, তখন আমার পরিবেশটি ঠিক কী ঘটে?

আমি যখন দৌড়ে যাই তখন sudo commandমনে হয় এটি আমার বা মূলের পরিবেশ দেখে না। উদাহরণস্বরূপ, উভয়ের জন্য আমার পথ অন্তর্ভুক্ত /usr/local/bin, তবে আমি যদি পুরো পথ ছাড়াই প্রোগ্রামটির একটি চালানোর চেষ্টা করি তবে এটি ব্যর্থ হয়।

আমি ভেবেছিলাম সুডো রুট হিসাবে দৌড়েছে, এবং এর ফলে রুটের পরিবেশ পেয়েছে। মূলত বা আমার সাধারণ ব্যবহারকারীর চেয়ে বাশ কি সুডোর অধীনে কার্যকর হয়?

সম্পাদনা করুন:

আমি sudo -iইদানীং ব্যবহার করছি , তবে সম্প্রতি এটি সমস্যা সৃষ্টি করছে কারণ আমার বর্তমান কার্যকরী ডিরেক্টরিটি সেট হয়ে গেছে /root। এটি প্রত্যাশিত হিসাবে (সাজ্ট), তবে আমি এখনও বুঝতে পারি না কেন সুডো আমার এক্সিকিউটেবলগুলিকে স্বীকৃতি দিচ্ছে না /usr/local/bin

সম্পাদনা করুন:

আমি ফেডোরা 15 চালাচ্ছি।


আপনি কোন ওএস ব্যবহার করছেন (যদি লিনাক্স, কোন বিতরণ)? কনফিগার করার অনেকগুলি উপায় রয়েছে ( PATHএবং) কখনও কখনও এটি শেষ পর্যন্ত কে ওভাররাইড করে তা খুঁজে পাওয়া সহজ নয়। এটি কিছু সিস্টেম সেটিং (যেমন পিএএম এ) হতে পারে, সুডো নিজেই বা পরবর্তী প্রোফাইল স্ক্রিপ্ট হতে পারে।
গিলস 'এস-অশুভ হওয়া বন্ধ করুন'

@ গিলস- ভালো কথা। আমি আমার ওএস যুক্ত করেছি। ফেডোরায় আমি কেবল এটি সত্যিই লক্ষ্য করেছি (আমি উবুন্টু ব্যবহার করতাম), তবে আমি ভেবেছিলাম এটি কারণ খুব সহজে তারা কোনও সুবিধাপ্রাপ্ত সেটআপ যোগ করেনি।
বেটগ্যামিট

উত্তর:


6

আমি ফেডোরার ডিফল্টগুলি সম্পর্কে জানি না, তবে ডিবিয়ানের sudoডিফল্ট মানগুলির secure_pathসাথে বিকল্পটি ব্যবহার করতে হবে /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

এর অর্থ প্রতিবার আপনি যখন ব্যবহার করবেন তখন সেই পথে সেই মানটিতে পরিবর্তন করা হবে sudo; তবে আপনি যখন ব্যবহার করবেন তখন sudo -iমূল ব্যবহারকারীর আরসি ফাইলগুলি দিয়ে তারপথটি পরিবর্তন করা হবে।


আমি secure_pathবিকল্প সম্পর্কে জানতাম না । /usr/local/binআমার ইনস্টলটিতে ডিফল্টটি অন্তর্ভুক্ত হয়নি । ধন্যবাদ, এটি সত্যই জিনিসপত্র পরিষ্কার করতে সাহায্য করেছে!
বিটগ্যামিট

4

আপনি পছন্দ মতো জিনিস দিয়ে এটি বেশ সহজ পরীক্ষা করতে পারেন

থেকে আউটপুট তুলনা করুন

sudo env 
env

এবং মত জিনিস

sudo whoami 
whoami

এইভাবে আপনি আপনার সেটআপে কী অনুপস্থিত তা খুঁজে বের করার চেষ্টা করতে পারেন।


শীতল, সে সম্পর্কে জানতাম না। যাইহোক, /usr/local/binআমার সুডো এনভির মধ্যে নেই, তবে এটি আমার মূল এনভ এবং ব্যবহারকারী এনভির মধ্যে রয়েছে। কেন?
বেটগ্যামিট

সুডো হোয়ামি rootপ্রত্যাশিত মত ফিরে আসে । আমার সুডো এনভিকে আমার মূল এনভির থেকে আলাদা হওয়ার কারণ কী হতে পারে?
বীটগ্যামিট

জানেন না, তবে কোথাও অবশ্যই কিছু অনুপস্থিত সেটআপ থাকতে হবে, / usr / স্থানীয় / বিন সাধারণত অন্তর্ভুক্ত থাকে। আপনি কিছু কনফিগারেশনে ভুল করে $ PATH env সাফ করেছেন?
জোহান

সুডো সোর্স / রুট /.বাশার্ক কি? আমি যেখানে /usr/local/binরুটের পথে যুক্ত হলাম (দুর্ভাগ্যক্রমে আমি নিজে এটি করতে হয়েছিল)?
বেটগ্যামিট

আমি মনে করি আপনার শেলগুলি বিশ্বব্যাপী কনফিগারেশনটি সংশোধন করা উচিত এবং দেখুন কী ঘটে। আপনি যদি বাশ চালাচ্ছেন তবে এটি /etc/bash.bashrc এর মতো কিছু হবে
জোহান

2

sudo -iকমান্ড অনুকরণ প্রাথমিক লগইন। আমার ডেবিয়ান সিস্টেমে এটি আরও উল্লেখ করেছে:

এর অর্থ হ'ল। প্রোফাইল, বা লগিনের মতো লগইন-নির্দিষ্ট সংস্থান ফাইলগুলি শেল দ্বারা পঠিত হবে। যদি একটি কমান্ড নির্দিষ্ট করা থাকে, তবে এটি কার্যকর করার জন্য শেলকে দেওয়া হয়। অন্যথায়, একটি ইন্টারেক্টিভ শেল কার্যকর করা হয়। sudo শেল চালানোর আগে সেই ব্যবহারকারীর হোম ডিরেক্টরিতে পরিবর্তন করার চেষ্টা করে। এটি পরিবেশ, আরম্ভ এবং TERM অপরিবর্তিত রেখে হোম, মেল, শেল, ব্যবহারকারী, লগইম এবং প্যাথ এবং সেইসাথে লিনাক্স এবং এআইএক্স সিস্টেমে / ইত্যাদি / পরিবেশের বিষয়বস্তু স্থাপন করে initial অন্যান্য সমস্ত পরিবেশের ভেরিয়েবলগুলি সরানো হয়েছে।


0

আপনি নিয়ন্ত্রন করতে পারেন sudoএর env_keepঅন্তর্ভুক্ত করা প্যারামিটার PATH, যদিও আপনি মনের মধ্যে যে এরকম নিরাপত্তা প্রভাব রাখা উচিত নয়।

visudo

... আপনার চালু করবে $EDITOR, তারপরে আপনি Defaults env_keep =যথাযথ ... তে পরিবর্তন করতে পারবেন ।

এছাড়াও, আপনি ফাইলগুলিতে যুক্ত করে সিস্টেমের পথে / usr / স্থানীয় / বিন যোগ করতে পারেন /etc/profile.d

উদাহরণ:

cat <<EOF > /etc/profile.d/tjameson.sh
export PATH=$PATH:/usr/local/bin
EOF

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