সুডো প্যাথ পরিবর্তন করে কেন?


281

এই PATHউবুন্টু ছাড়া পরিবর্তনশীল:

$ echo 'echo $PATH' | sh 
/opt/local/ruby/bin:/usr/bin:/bin

এটি PATHসুডোর সাথে পরিবর্তনশীল:

$ echo 'echo $PATH' | sudo sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

যতদুর আমি বলতে পারেন, sudoছেড়ে অনুমিত হয় PATHঅস্পৃষ্ট। কি হচ্ছে? আমি কীভাবে এটি পরিবর্তন করব? (এটি উবুন্টু 8.04 এ রয়েছে)।

আপডেট: যতদূর আমি দেখতে পাচ্ছি, কোনও স্ক্রিপ্টই কোনওভাবেই মূল পরিবর্তন হিসাবে শুরু হয়নি PATH

থেকে man sudo:

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


রুটে কি এমন কিছু রয়েছে যা .Bashrc এ PATH সেট করে? এটি ধরে নেওয়া হচ্ছে যেহেতু আপনি লিনাক্সে রয়েছেন, sh সত্যিই বাশ।
গ্রেগ হিউগিল 0

উত্তর:


241

এই একটি বিরক্তিকর ফাংশন অনেক বিতরণ sudo বৈশিষ্ট্য

উবুন্টুতে এই "সমস্যা "টির আশেপাশে কাজ করার জন্য আমি আমার ~ / .Bashrc এ নিম্নলিখিতগুলি করি

alias sudo='sudo env PATH=$PATH'

নোট করুন উপরেরগুলি কমান্ডগুলির জন্য কাজ করবে যা that PATH নিজেই পুনরায় সেট করে না। তবে `সু 'এটি $ PATH পুনরায় সেট করে যাতে এটি না বলার জন্য আপনাকে অবশ্যই -p ব্যবহার করতে হবে। অর্থাৎ,

sudo su -p

46
এই "বিরক্তিকর ফাংশন" আপনাকে ট্রোজান হতে বাধা দেয়। আমি বলছি একটি নির্দিষ্ট $ PATH জোর করা একটি বৈশিষ্ট্য, কোনও বাগ নয় --- এটি আপনাকে program PATH এর বাইরের কোনও প্রোগ্রামের পুরো পথটি লিখতে বাধ্য করে।
ক্রিস জেস্টার-ইয়াং

29
হ্যাঁ, তবে এটি সম্পূর্ণ বিপরীতমুখী। এটি সম্ভবত খারাপ ছেলেদের চেয়ে ভাল ছেলেদের বোকা বানাবে।
ব্রায়ান আর্মস্ট্রং

31
এটি কেবল বিপরীত নয়, এটি ভুলভাবে নথিভুক্ত করা হয়েছে। সুডোর জন্য ম্যান পেজগুলি পড়া এবং ফেডোরা বাক্সের সাথে কনফিগারেশনের তুলনা করে আমি ভাবলাম যে পথটি সংরক্ষণ করা উচিত। প্রকৃতপক্ষে, "sudo -V" এমনকি "পরিবেশগত পরিবর্তনগুলি সংরক্ষণের জন্য: PATH" বলে।
জেসন আর। কুম্বস

6
এটা বিরক্তিকর. সময়কাল। এটি যদি সুডোর মাধ্যমে 'আপনি ট্রোজান পেতে' পারতেন তবে এটি ছাড়া আপনিও এটি ট্রোজেন করতে পারেন। মঞ্জুরিপ্রাপ্ত, আরও শক্ত, তবে আপনি যদি আপনার নিয়মিত ব্যবহারকারীর সাথেও ভুল জায়গা থেকে কোড চালাচ্ছেন তবে জিনিসগুলি ইতিমধ্যে যথেষ্ট খারাপ।
জিসিবি

7
ওরফে সুডো করবেন না; ডিফল্ট env_reset সম্পর্কে @ জ্যাকব থেকে উত্তর দেখুন।
গ্রেগ_1_অ্যান্ডারসন

121

যদি অন্য কেউ এটিকে ছড়িয়ে দেয় এবং কেবলমাত্র সমস্ত ব্যবহারকারীর জন্য পরিবর্তিত সমস্ত পাথ ভেরিয়েবলটি অক্ষম করতে চায়।
কমান্ড ব্যবহার করে আপনার sudoers ফাইল অ্যাক্সেস করুন: visudo। আপনার কোথাও নীচের লাইনটি দেখতে হবে:

ডিফল্ট env_reset

যা আপনি পরবর্তী লাইনে নিম্নলিখিত যোগ করা উচিত

ডিফল্ট! নিরাপদ_পথ

নিরাপদ_পথটি ডিফল্টরূপে সক্ষম হয়। এই বিকল্পটি sudoing করার সময় $ PATH কী করবেন তা নির্দিষ্ট করে। বিস্মৃত চিহ্নটি বৈশিষ্ট্যটি অক্ষম করে।


6
অন্য উপায়:Defaults env_keep = "PATH"
জিসিবি

1
ডিফল্ট! নিরাপদ_পথ আধুনিক সিস্টেমগুলিতে আমার জন্য দুর্দান্ত কাজ করেছে; একটি পুরানো উবুন্টু 8.04 বাক্সে, ডিফল্ট এনভ_কিপ = "PATH" কৌশলটি করেছে।
গ্রেগ_এন্ডারসন

29
নিরাপদ_পথটি অক্ষম করার পরিবর্তে আপনি এতে যুক্ত করতে পারেন। উদাহরণস্বরূপ, আমার ক্ষেত্রে আমি "ডিফল্ট নিরাপদ_পথ = / এসবিন: / বিন: / ইউএসআর / এসবিন: / ইউএসআর / বিন: / কিছু / কাস্টম / ডিরেক্টরি" যেখানে "কিছু / কাস্টম / ডিরেক্টরি" আমার প্রয়োজনীয় পথটি যুক্ত করেছে sudo উপলব্ধ করা।
হেক্টর Correa

@ হেক্টরকরিয়া সমাধান হ'ল আইএমওর আরও ভাল উপায়।
চকৃত

32

PATH পরিবেশের পরিবর্তনশীল, এবং এটি sudo দ্বারা ডিফল্ট পুনরায় সেট করা।

এটি করার জন্য আপনার বিশেষ অনুমতি প্রয়োজন।

থেকে man sudo

       -E -E (পরিবেশ সংরক্ষণ করুন) বিকল্পটি env_reset ওভাররাইড করবে
           sudoers বিকল্প (5%)। এটি কেবল তখনই উপলব্ধ যখন ম্যাচ-
           আইএনএন কমান্ডের SETENV ট্যাগ রয়েছে বা setenv বিকল্পটি sudo- এ সেট করা আছে
           সমর্থনকারীদের পক্ষে (5)।
       কমান্ডের জন্য নির্ধারিত পরিবেশ পরিবর্তনগুলিও পাস হতে পারেভিআর = মান 
       আকারে কমান্ড লাইন , যেমন
        এলডি_লিবিআরএআইপিএটিএইচ = / ইউএসআর / স্থানীয় / পিকেজি / লিব। ভেরিয়েবলগুলি কমান্ডটি দিয়েছিল
       লাইনটি স্বাভাবিক পরিবেশের পরিবর্তনের মতো একই বিধিনিষেধের সাপেক্ষে
       একটি গুরুত্বপূর্ণ ব্যতিক্রম সঙ্গে সক্ষম। যদি সেটেনভ বিকল্পটি সেট করা থাকে
       sudoers, চালিত কমান্ডের SETENV ট্যাগ সেট বা কমান্ড রয়েছে
       মিলেছে সমস্ত, ব্যবহারকারী ভেরিয়েবল সেট করতে পারে যা উপরের দিকে হবে -
       নিমন্ত্রিত। আরও তথ্যের জন্য sudoers (5) দেখুন।

ব্যবহারের একটি উদাহরণ:

cat >> test.sh
env | grep "MYEXAMPLE" ;
^D
sh test.sh 
MYEXAMPLE=1 sh test.sh
# MYEXAMPLE=1
MYEXAMPLE=1 sudo sh test.sh 
MYEXAMPLE=1 sudo MYEXAMPLE=2 sh test.sh 
# MYEXAMPLE=2

হালনাগাদ

মানুষ 5 sudoers: 

     env_reset সেট করা থাকলে sudo পরিবেশটি কেবলমাত্র ধারণ করে পুনরায় সেট করবে will
                       LOGNAME, শেল, ব্যবহারকারীর, ব্যবহারকারী নাম এবং SUDO_ * পরিবর্তন-
                       ables। কলারের পরিবেশে যে কোনও ভেরিয়েবল
                       env_keep সাথে মেলে এবং env_check তালিকাগুলি পরে যুক্ত করা হয়।
                       Env_keep এবং env_check এর ডিফল্ট সামগ্রী
                       sudo- র দ্বারা রুট দ্বারা চালিত হলে তালিকাগুলি প্রদর্শিত হয়
                       -ভি বিকল্প। যদি সুডো SECURE_PATH দিয়ে সংকলিত হয়
                       বিকল্প, এর মানটি PATH পরিবেশের জন্য ব্যবহৃত হবে
                       পরিবর্তনশীল। এই পতাকাটি ডিফল্টরূপে চালু আছে।

সুতরাং এটি পরীক্ষা করা উচিত / এটি সংকলিত নয়।

এটি জেন্টুতে ডিফল্টরূপে

# ( From the build Script )
....
ROOTPATH=$(cleanpath /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin${ROOTPATH:+:${ROOTPATH}})
....
econf --with-secure-path="${ROOTPATH}" 

17

দেখে মনে হচ্ছে এই বাগটি বেশ কিছুদিন ধরে চলেছে! এখানে কিছু বাগ উল্লেখ রয়েছে যা আপনি সহায়ক পেতে পারেন (এবং সাবস্ক্রাইব / ভোট আপ করতে চান, ইঙ্গিত, ইঙ্গিত ...):


দেবিয়ান বাগ # 85123 ("সুডো: SECURE_PATH এখনও ওভাররাইড করা যায় না") (2001 থেকে!)

দেখে মনে হচ্ছে যে বাগ # 20996 এখনও সুডোর এই সংস্করণে উপস্থিত রয়েছে। চেঞ্জলগটি বলে যে এটি রানটাইমগুলিতে ওভাররাইড করা যেতে পারে তবে কীভাবে তা আমি এখনও আবিষ্কার করতে পারি নি।

তারা আপনার sudoers ফাইলে এই জাতীয় কিছু রাখার উল্লেখ করেছে:

Defaults secure_path="/bin:/usr/bin:/usr/local/bin"

তবে আমি কমপক্ষে 8..১০ উবুন্টুতে যখন এটি করি তখন এটি আমাকে এই ত্রুটি দেয়:

visudo: unknown defaults entry `secure_path' referenced near line 10

উবুন্টু বাগ # 50797 ("- এর সাথে সুরক্ষিত-সুরক্ষিত-পথটি সমস্যাযুক্ত")

সবচেয়ে খারাপ কথা, যতদূর আমি বলতে পারি, sudoers ফাইলে নিরাপদ_পথকে সম্মান দেওয়া অসম্ভব। সুতরাং, উদাহরণস্বরূপ, আপনি যদি আপনার ব্যবহারকারীদের / অপ্টের অধীনে কোনও কিছুতে সহজে অ্যাক্সেসের প্রস্তাব দিতে চান তবে আপনাকে অবশ্যই sudo পুনরায় সংকলন করতে হবে।


হ্যাঁ. সেখানে দরকার কম্পাইল না করেও এই "বৈশিষ্ট্যটি" ওভাররাইড করতে একটি উপায় হতে হবে। আপনার পরিবেশের জন্য সর্বোত্তম কী এবং তারপরে আপনাকে এটি বন্ধ করার কোনও উপায় না দিয়ে সুরক্ষা বিগল্টরা এর চেয়ে খারাপ আর কিছুই নয়।


এটা সত্যিই বিরক্তিকর। সুরক্ষার কারণে ডিফল্টরূপে বর্তমান আচরণ রাখা বুদ্ধিমানের কাজ হতে পারে তবে উত্স কোড থেকে পুনরায় সংশোধন করা ছাড়া এটিকে ওভাররাইড করার কোনও উপায় থাকা উচিত! অনেক লোককে পথের উত্তরাধিকারের প্রয়োজন হয়। আমি ভাবছি কেন কোনও রক্ষণাবেক্ষণকারী এটিতে সন্ধান করেন না, এটি গ্রহণযোগ্য সমাধান নিয়ে আসা সহজ বলে মনে হচ্ছে।


আমি এর চারপাশে এভাবে কাজ করেছি:

mv /usr/bin/sudo /usr/bin/sudo.orig

তারপরে নিম্নোক্ত ফাইল / usr / bin / sudo তৈরি করুন:

#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"

তারপরে আপনার নিয়মিত সুডো নিরাপদ-পথের সুডোর মতোই কাজ করে


উবুন্টু বাগ # 192651 ("সুডো পথ সর্বদা পুনরায় সেট করা হয়")

এই বাগের সদৃশটি 2006 এর জুলাইয়ে মূলত দায়ের করা হয়েছিল, এই বিষয়টি আমি পরিষ্কার করতে পারি না যে কোনও অকার্যকর এনভ_কিপ চালাচ্ছিল কতদিন ধরে। ব্যবহারকারীদের উপরোক্ত তালিকাভুক্ত কৌশলগুলি প্রয়োগ করতে বাধ্য করার যোগ্যতা যা-ই হোক না কেন, অবশ্যই sudo এবং sudoers এর ম্যান পেজগুলিতে এই সত্যটি প্রতিফলিত করা উচিত যে PATH সংশোধন করার বিকল্পগুলি কার্যকরভাবে অপ্রয়োজনীয়।

প্রকৃত সম্পাদন প্রতিফলিত করতে ডকুমেন্টেশন সংশোধন করা অস্থিতিশীল এবং খুব সহায়ক।


উবুন্টু বাগ # 226595 ("PATH ধরে রাখা / নির্দিষ্ট করা অসম্ভব")

PATH- এ অতিরিক্ত নন-স্টেড বাইনারি ফোল্ডারগুলির সাথে সুডো চালাতে সক্ষম হতে হবে। ইতিমধ্যে / ইত্যাদি / পরিবেশে আমার প্রয়োজনীয়তা যুক্ত করে আমি সুডোর অধীনে চালানোর সময় অনুপস্থিত হয়ে পড়েছিলাম যখন আমি অনুপস্থিত কমান্ডগুলি সম্পর্কে ত্রুটি পেয়েছি .....

আমি সফলতা ছাড়াই এটি ঠিক করার জন্য নিম্নলিখিতগুলি চেষ্টা করেছি:

  1. " sudo -E" বিকল্পটি ব্যবহার করে - কাজ করে না। আমার বিদ্যমান পাথ এখনও সুডোর দ্বারা পুনরায় সেট করা হয়েছিল

  2. " /" / Sudoers- এ Defaults env_reset" Defaults !env_reset" " " পরিবর্তন করা - এটিও কাজ করে না (এমনকি sudo -E এর সাথে মিলিত হয়েও)

  3. / ইত্যাদি / sudoers এ Uncommenting env_reset(উদাঃ " #Defaults env_reset") - এছাড়াও কাজ করে না।

  4. Defaults env_keep += "PATH"/ '/ Sudoers- এ ' ' যুক্ত করাও কার্যকর হয়নি।

স্পষ্টত - ম্যান ডকুমেন্টেশন সত্ত্বেও - sudo সম্পূর্ণরূপে PATH সম্পর্কিত হার্ডকোডযুক্ত এবং ব্যবহারকারী PATH রক্ষণ সম্পর্কে কোনও নমনীয়তার অনুমতি দেয় না। অত্যন্ত বিরক্তিকর কারণ আমি sudo ব্যবহার করে রুট অনুমতিতে নন-ডিফল্ট সফ্টওয়্যার চালাতে পারি না।


13

এটা আমার জন্য কাজ বলে মনে হয়েছিল

sudo -i 

যা নন-সুডোকে গ্রহণ করে PATH


'সুডো-আই' উবুন্টুতে সহায়তা করে না (আমি উবুন্টুকে 14.04.3 এলটিএস পরীক্ষা করেছি)। AT পাথ এখনও সুডো দ্বারা পরিবর্তিত।
মার্সিন রেসিজিস্কি

11

আমি মনে করি এটি সত্যই প্যাথএইচটি পুনরায় সেট করা কাম্য is

(অবশ্যই প্যাডএইচএইচটি পুনরায় সেট করা এই ধরণের সমস্যার সম্পূর্ণ সমাধান নয়, তবে এটি সহায়তা করে)

আপনি ব্যবহার করার সময় এটি ঘটবে

Defaults env_reset

ইন / ইত্যাদি / sudoers ব্যবহার না করে exempt_groupবাenv_keep

এটি সুবিধাজনক কারণ আপনি কেবলমাত্র মূল ডিরেক্টরিতে যুক্ত ডিরেক্টরিগুলি যুক্ত করতে পারেন (যেমন /sbinএবং /usr/sbin) সুডো পাথগুলিতে আপনার ব্যবহারকারীর পাথে যুক্ত না করে without Sudo দ্বারা ব্যবহৃত পাথ নির্দিষ্ট করতে:

Defaults secure_path="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin"

কোনও আক্রমণকারী যিনি সুডোর অ্যাকাউন্টে প্রবেশ করেন তিনি আরও খারাপ কাজ করতে পারেন।
ব্যবহারকারী 508546

একটি শালীন পরামর্শ। উবুন্টু 12.04 সার্ভারে, অনুরূপ সেটিংস ডিফল্ট।
সুতুতু

7

কার্মিক সংগ্রহস্থলগুলি থেকে sudo ব্যবহার করে এখন কাজ করে। আমার কনফিগারেশন থেকে বিশদ:

root@sphinx:~# cat /etc/sudoers | grep -v -e '^$' -e '^#'
Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/grub-1.96/sbin:/opt/grub-1.96/bin"
root    ALL=(ALL) ALL
%admin ALL=(ALL) ALL
root@sphinx:~# cat /etc/apt/sources.list
deb http://au.archive.ubuntu.com/ubuntu/ jaunty main restricted universe
deb-src http://au.archive.ubuntu.com/ubuntu/ jaunty main restricted universe

deb http://au.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe
deb-src http://au.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe

deb http://security.ubuntu.com/ubuntu jaunty-security main restricted universe
deb-src http://security.ubuntu.com/ubuntu jaunty-security main restricted universe

deb http://au.archive.ubuntu.com/ubuntu/ karmic main restricted universe
deb-src http://au.archive.ubuntu.com/ubuntu/ karmic main restricted universe

deb http://au.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe
deb-src http://au.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe

deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted universe
root@sphinx:~# 

root@sphinx:~# cat /etc/apt/preferences 
Package: sudo
Pin: release a=karmic-security
Pin-Priority: 990

Package: sudo
Pin: release a=karmic-updates
Pin-Priority: 960

Package: sudo
Pin: release a=karmic
Pin-Priority: 930

Package: *
Pin: release a=jaunty-security
Pin-Priority: 900

Package: *
Pin: release a=jaunty-updates
Pin-Priority: 700

Package: *
Pin: release a=jaunty
Pin-Priority: 500

Package: *
Pin: release a=karmic-security
Pin-Priority: 450

Package: *
Pin: release a=karmic-updates
Pin-Priority: 250

Package: *
Pin: release a=karmic
Pin-Priority: 50
root@sphinx:~# apt-cache policy sudo
sudo:
  Installed: 1.7.0-1ubuntu2
  Candidate: 1.7.0-1ubuntu2
  Package pin: 1.7.0-1ubuntu2
  Version table:
 *** 1.7.0-1ubuntu2 930
         50 http://au.archive.ubuntu.com karmic/main Packages
        100 /var/lib/dpkg/status
     1.6.9p17-1ubuntu3 930
        500 http://au.archive.ubuntu.com jaunty/main Packages
root@sphinx:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/grub-1.96/sbin:/opt/grub-1.96/bin
root@sphinx:~# exit
exit
abolte@sphinx:~$ echo $PATH
/home/abolte/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/grub-1.96/sbin:/opt/grub-1.96/bin:/opt/chromium-17593:/opt/grub-1.96/sbin:/opt/grub-1.96/bin:/opt/xpra-0.0.6/bin
abolte@sphinx:~$ 

একটি হ্যাক ব্যবহার না করে অবশেষে এটি সমাধান করা খুব দুর্দান্ত।


4
সম্ভবত আপনি এটিকে পুনরায় লেখার বিষয়টি বিবেচনা করবেন যাতে পরিষ্কার কার্মিক ইনস্টল সহ কেউ এই বিশেষ সমস্যাটি সমাধানের জন্য তাদের কনফিগারেশন আপডেট করতে পারে।
জেসন আর। কুম্বস

4
# cat .bash_profile | grep PATH
PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
export PATH

# cat /etc/sudoers | grep Defaults
Defaults    requiretty
Defaults    env_reset
Defaults    env_keep = "SOME_PARAM1 SOME_PARAM2 ... PATH"

3

/ Etc / sudoers এ কেবল "ডিফল্ট env_reset" মন্তব্য করুন


3

শুধু সম্পাদনা env_keepমধ্যে/etc/sudoers

এটি দেখতে এমন কিছু দেখাচ্ছে:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L ANGUAGE LINGUAS XDG_SESSION_COOKIE"

কেবল শেষের দিকে PATH সংযুক্ত করুন, সুতরাং পরিবর্তনের পরে এটি এর মতো দেখাবে:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L ANGUAGE LINGUAS XDG_SESSION_COOKIE PATH"

টার্মিনালটি বন্ধ করুন এবং তারপরে আবার খুলুন।


অপেক্ষা করুন পাঠের 2 ** প্রয়োজন? কেন পাঠের প্রয়োজন **?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিগ্রাগনকাই এটিকে গা bold় (মার্কডাউন) হিসাবে ফর্ম্যাট করা হয়েছিল, তবে কেউ (কোডের ওভারফ্লো আমাকে আঙুলগুলি দেখায় না)) কোড হিসাবে চিহ্নিত করার জন্য এটি সম্পাদনা করেছে।
1j01

2

সিকিউর_পথটি আপনার বন্ধু, তবে আপনি যদি নিরাপদ_পথ থেকে নিজেকে ছাড় দিতে চান তবে ঠিক করুন

sudo ভিসুডো

এবং সংযোজন

ডিফল্ট ছাড়_গ্রুপ = আপনার_গৌপ

আপনি যদি একগুচ্ছ ব্যবহারকারীকে একটি গোষ্ঠী তৈরি করতে ছাড় দিতে চান তবে এতে সমস্ত ব্যবহারকারীকে যুক্ত করুন এবং এটি আপনার ছাড়_গ্রুপ হিসাবে ব্যবহার করুন। ম্যান 5 আরো জন্য sudoers।


1

ওপেনসুএস ডিস্ট্রোতে মন্তব্যে প্রস্তাবিত সমাধান পরিবর্তনের পরামর্শ দেয়:

Defaults env_reset

প্রতি:

Defaults !env_reset

এবং তারপরে নিম্নলিখিত লাইনের প্রয়োজন নেই বলে মন্তব্য করার জন্য সম্ভবত:

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASURE    MENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL L    ANGUAGE LINGUAS XDG_SESSION_COOKIE"

1

/ ইত্যাদি / সুডোরস ফাইলটিতে "ডিফল্ট env_reset" এবং "ডিফল্ট নিরাপদ_পাথ ..." উভয়ই মন্তব্য করুন


1

আপনি নিজের ফাইলটি একটি sudoers ব্যবহৃত ডিরেক্টরিতে স্থানান্তর করতে পারেন:

    sudo mv $HOME/bash/script.sh /usr/sbin/ 

0

এর, আপনি যদি নিজের পথে কিছু যোগ না করেন তবে এটি সত্যিই একটি পরীক্ষা নয়:

বিল @ বিল-ডেস্কটপ: ~ s ls -l / opt / pkg / bin
মোট 12
-rwxr-xr-x 1 রুট রুট 28 2009-01-22 18:58 foo
বিল @ বিল-ডেস্কটপ: f $ যা ফু
/ অপ্ট / pkg / বিন / foo বিন্যাস
বিল @ বিল-ডেস্কটপ: do do su su
রুট @ বিল-ডেস্কটপ: / হোম / বিল # যা ফুও
রুট @ বিল-ডেস্কটপে: / হোম / বিল # 

0

ENV_SUPATH এর সংজ্ঞা অনুসারে su বা sudo ব্যবহার করার সময় PATH পুনরায় সেট করা হবে এবং /etc/login.defs এ ENV_PATH সংজ্ঞায়িত করা হবে


0

AT PATH একটি পরিবেশের পরিবর্তনশীল এবং এর অর্থ $ PATH এর মান অন্য ব্যবহারকারীর জন্য পৃথক হতে পারে।

আপনি যখন আপনার সিস্টেমে লগইন করছেন তখন আপনার প্রোফাইল সেটিংটি $ PATH এর মান নির্ধারণ করে ।

এখন, একবার দেখে নেওয়া যাক: -

User       |        Value of $PATH
--------------------------
root                /var/www
user1               /var/www/user1
user2               /var/www/html/private

মনে করুন যে এটি বিভিন্ন ব্যবহারকারীর জন্য $ PATH এর মান। এখন আপনি যখন sudo দিয়ে কোনও কমান্ড চালাচ্ছেন তখন প্রকৃত অর্থে রুট ব্যবহারকারী সেই কমান্ডটি কার্যকর করে।

টার্মিনালে এই আদেশগুলি কার্যকর করে আপনি নিশ্চিত করতে পারবেন: -

user@localhost$ whoami
username
user@localhost$ sudo whoami
root
user@localhost$ 

এই কারন. আমি আপনার কাছে এটি পরিষ্কার মনে করি।

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