আমি সুডো ব্যবহার করলে কেন change বাড়ির পরিবর্তন হয় না?


15

আমি আশা করেছি যে -H বিকল্পটি আমাকে লক্ষ্যবস্তু ব্যবহারকারীর পরিবেশ দেবে।

nbest @ জিও: ~ $ sudo -H -u তনুম প্রতিধ্বনি $ হোম
/ হোম / nbest
nbest @ জিও: ~ $ সুডো-তনুম প্রতিধ্বনি $ হোম
/ হোম / nbest
এনবেস্ট @ জিও: ~ $ সুডো-আই-তনুম প্রতিধ্বনি $ হোম
/ হোম / nbest
এনবেস্ট @ জিও: ~ do সুডো-এইচ-আই-তনুম প্রতিধ্বনি $ হোম
/ হোম / nbest

এটি আমাকে বলার অনুমতি দেবে:

sudo -u tanum ls ~

এবং লক্ষ্য ব্যবহারকারীর হোম ডিরেক্টরি তালিকা পান। ক্ষেত্র না. এটি কি env_resetডিফল্টর কারণে sudoers?

যদি তাই হয় -H এর কোন প্রভাব আছে? এই আচরণটি ওভাররাইড করার নিরাপদতম উপায় কী?

না হলে -H এর অভিপ্রায়িত প্রভাব কী?

আমাকে সোজা সেট করুন।

উত্তর:


16

$HOMEএবং আপনার শেল ~দ্বারা প্রসারিত হন , তাদের দ্বারা ব্যাখ্যা করা হয় না ।echo

অন্য কথায়, একটি আর্গুমেন্ট হিসাবে echoদেখুন না $HOME। এটি আসলে দেখে /home/nbest। অতএব নিম্নলিখিত কমান্ডগুলি হুবহু একরকম (আপনার ক্ষেত্রে):

nbest@geo:~$ sudo -H -u tanum echo $HOME
nbest@geo:~$ sudo -H -u tanum echo /home/nbest

আপনি যা চেষ্টা করুন ( -H,, -i...) আপনি কখনই পছন্দসই আচরণ পাবেন না। কারণ $HOMEআপনার শেল দ্বারা প্রতিস্থাপন করা হয়েছে এবং আপনার শেলটি আপনার ব্যবহারকারী হিসাবে চলে। sudoকোনওভাবেই আপনার শেলকে প্রভাবিত করে না।


এই 'ইস্যু' (যা আসলে একটি বৈশিষ্ট্য) এর চারপাশে কাজ করার জন্য, আপনি একটি নতুন সাবশেল শুরু করতে পারেন:

nbest@geo:~$ sudo -H -u tanum sh -c 'echo $HOME'

(নোট করুন যে আমি প্রসার এড়াতে একক উদ্ধৃতি ব্যবহার করছি।) এইভাবে, নতুন শেলটি shব্যবহারকারী তনুম হিসাবে চলবে এবং তার হোম ডিরেক্টরি মুদ্রণ করবে ।


আরেকটি বিকল্প হ'ল ব্যবহার করা ~username, যা ব্যবহারকারীর বাড়ীতে sudoবা ব্যবহারের প্রয়োজন ছাড়াই প্রসারিত হয় su। চেষ্টা করুন:

nbest@geo:~$ echo ~tanum

1
অবশ্যই. কি লজ্জাজনক! sudo do what I mean
নীল সেরা

1
এটি আমার পক্ষে কাজ করে না। যেমন sudo -H -u buildbot bash -c "echo $HOME"আমাকে দেয় /home/ubuntuযা কিছু উবুন্টু চিত্রের ডিফল্ট ব্যবহারকারী।
সেরিন

@ ক্রেন সম্প্রসারণ রোধ করতে একক উদ্ধৃতি ব্যবহার করুন:sh -c 'echo $HOME'
আন্দ্রে কার্বেলিনি

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