ডেবিয়ান এবং উবুন্টু উভয়ই /etc/sudoersএমন একটি ফাইল Defaults env_resetপাঠায় যা পরিবেশ ভেরিয়েবলগুলি পুনরায় সেট করে।
তবে, ব্যবহারকারীর আচরণটি লক্ষ্য ব্যবহারকারীর বাড়িতে এটিকে পুনরায় সেট করতে $ হোম স্পর্শ না করাenv_reset থেকে পরিবর্তিত হয়েছিল ।
sudoপূর্ববর্তী আচরণটি রাখতে উবুন্টু তাদের সংস্করণটি প্যাচ করার সিদ্ধান্ত নিয়েছে :
https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/760140
উবুন্টুতে, টার্গেট ব্যবহারকারীর $ হোম এনভায়রনমেন্ট ভেরিয়েবলটি পুনরায় সেট করতে, তাদের মধ্যে একটি সেট করতে হবে Defaults always_set_homeবা Defaults set_home(যার ক্ষেত্রে কেবল sudo -sহোম আপডেট হবে) /etc/sudoers।
উবুন্টু ট্র্যাকারে এই বাগটির সেট না করার বিষয়ে আরও কিছু যুক্তি রয়েছে $ হোম ইন সুডো:
https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1373495
মন্তব্য # 4 দেখুন:
যদি হোম সরানো হয়, তবে উদাহরণস্বরূপ, ভিম, বাশ ইত্যাদি ব্যবহারকারীর ~ / .vimrc, ~ / .bashrc ইত্যাদির পরিবর্তে /root/.vimrc, /root/.bashrc, ইত্যাদি ব্যবহার করবে যখন এটি একটি খারাপ ধারণা idea সুডোর মাধ্যমে এক্স ক্লায়েন্ট চালানোর জন্য, তারাও সম্ভবত কনফিগারেশন ফাইলগুলির জন্য ভুল লোকেশনগুলি অনুসন্ধান করবে এবং এমন সম্ভাবনা রয়েছে যে এক্স 11 ক্লায়েন্টরা যদি X। সার্ভারের সাথে সংযোগ করতে সক্ষম নাও হতে পারে যদি তারা ভুল .Xauthority ফাইলের উদ্দেশ্যে থাকে।
এটি উবুন্টু বিকাশকারীদের একটি সচেতন সিদ্ধান্ত।
এই উত্তরে sudoers বিকল্প সম্পর্কে আরও বিশদ রয়েছে যেমন always_set_home:
https://unix.stackexchange.com/a/91572/281844
আপনার প্রশ্নে একটি দ্বিতীয় সমস্যা আছে, এটি sudo echo $HOMEএখনও ডিবিয়ান ব্যবহারকারীর বাড়ি প্রদর্শন করে।
এটি ঘটে কারণ কমান্ড চালানোর $HOME আগে শেলটি প্রসারিত হয় sudo।
তাই এটা:
$ sudo echo $HOME
শেল দ্বারা প্রথমে এর মধ্যে প্রসারিত হয়:
$ sudo echo /home/user
এবং তারপরে sudo echo /home/userমূল হিসাবে চালিত ...
এটির পার্থক্যটিও প্রদর্শন করা উচিত:
$ sudo bash -c 'echo $HOME'
/root
বা একটি সম্পূর্ণ রুট শেল পান এবং সেখানে পরিবেশের পরিবর্তনশীল দেখুন:
$ sudo -s
# echo $HOME
/root