आप चलाकर क्यों (यह अलग है) जांच सकते हैं sudo sudo -V।
लिनक्स रन पर उदाहरण के लिए:
$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
नोट: macOS / BSD पर, बस चलाएँ sudo sudo -V:।
कुछ लिनक्स वितरण में डिफ़ॉल्ट सुरक्षा नीति प्लगइन के कारण उपरोक्त सूची प्रतिबंधित है।
यह आगे बताया गया है man sudoers:
यदि secure_pathविकल्प सेट किया गया है, तो इसका मान PATHपर्यावरण चर के लिए उपयोग किया जाएगा ।
secure_path- सुडो से चलने वाले प्रत्येक कमांड के लिए पथ का उपयोग किया जाता है। यदि आप सुडू को चलाने वाले लोगों पर विश्वास नहीं करते हैं तो आपके पास एक सायन PATHपर्यावरण चर है जिसका आप उपयोग करना चाहते हैं।
एक और उपयोग है यदि आप "रूट पथ" को "उपयोगकर्ता पथ" से अलग करना चाहते हैं। exempt_groupविकल्प द्वारा निर्दिष्ट समूह के उपयोगकर्ता इससे प्रभावित नहीं होते हैं secure_path। यह विकल्प डिफ़ॉल्ट रूप से सेट नहीं किया गया है।
यदि ऐसी स्थिति है, तो आप sudo visudoकॉन्फ़िगरेशन फ़ाइल को चलाकर और संपादित करके और अपने को संशोधित करके secure_path(अतिरिक्त पथ को अलग करके :) जोड़ सकते हैं या अपने उपयोगकर्ता को इसमें जोड़ सकते हैं exempt_group(ताकि आप secure_pathविकल्पों से प्रभावित नहीं होंगे )।
या उपयोगकर्ता के PATHअस्थायी पास करने के लिए , आप चला सकते हैं:
sudo env PATH="$PATH" my_command
और आप यह देख सकते हैं कि:
sudo env PATH="$PATH" env | grep ^PATH
इसे भी देखें: कैसे करें sudoबचाव $PATH?
अन्य कारण पर्यावरण के लिए अलग हो सकता है sudo, ऐसा इसलिए है क्योंकि आप env_resetअपनी sudoersफ़ाइल में विकल्प सक्षम कर सकते हैं । यह एक नए, न्यूनतम वातावरण के साथ निष्पादित होने का आदेश देता है।
तो आप अपने उपयोगकर्ता के पर्यावरण चर को संरक्षित करने के env_keepलिए विकल्प ( सुरक्षा कारणों से अनुशंसित नहीं ) का उपयोग कर सकते हैं :
Defaults env_reset
Defaults env_keep += "PATH PYTHONPATH"