সুডোর মাধ্যমে প্যাথ পাস হচ্ছে


13

সংক্ষেপে : কীভাবে প্রতিবার PATH ফ্লাশ না করতে sudo করবেন?

আমার সার্ভারে কিছু ওয়েবসাইট মোতায়েন আছে (দেবিয়ান টেস্টিং) লিখেছেন রুবেলে রেলগুলিতে। আমি তাদের হোস্ট করার জন্য মংগ্রেল + এনগিনেক্স ব্যবহার করি, তবে মংগ্রেল পুনরায় চালু করার দরকার পরে একটি সমস্যা আসে (যেমন কিছু পরিবর্তন করার পরে)।

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

মোংরেল পরিচালনার জন্য আমি মংগ্রে_ক্লাস্টার রত্ন ব্যবহার করি কারণ এটি কেবল একটি কমান্ড দিয়ে কোনও পরিমাণ মংগল সার্ভার শুরু বা বন্ধ করতে দেয়। তবে এটি PATH এ থাকতে /var/lib/gems/1.8/bin ডিরেক্টরিটি প্রয়োজন: এটি পরম পথ দিয়ে শুরু করার পক্ষে এটি যথেষ্ট নয়

রুটে PATH পরিবর্তন করে .brcrc কিছুই পরিবর্তন করেনি, সুডোর এনভি_সেটকে টুইট করে এনভি_কিপও তা করেনি।

সুতরাং প্রশ্ন: কীভাবে PATH- এ কোনও ডিরেক্টরি যুক্ত করবেন বা ব্যবহারকারীর PATH sudo তে রাখবেন?

আপডেট: কিছু উদাহরণ

$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin
$ sudo cat /etc/sudoers | egrep -v '^$|^#'
Defaults    env_keep = "PATH"
root    ALL=(ALL) ALL
%sudo ALL=NOPASSWD: ALL
$ sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

এছাড়াও আমি বলতে পারি যে এটি ডেবিয়ান স্থিতিশীল (লেনি) তেও ঠিক এইভাবে কাজ করে।


উত্তর:


12

কয়েক ঘন্টা একই সমস্যা নিয়ে লড়াই করা। ডেবিয়ান লেনিতে, আপনি এটি যোগ করে এটি ঠিক করতে পারেন

Defaults        exempt_group=<your group> 

sudoers ফাইল।

সংকলিত - সুরক্ষা-পথের বিকল্পটি ঘুরে দেখার একমাত্র উপায়, (যতদূর আমি জানি)।

উল্লেখযোগ্যভাবে, এটি ব্যবহারকারীদের sudo করার সময় তাদের পাসওয়ার্ড প্রবেশের প্রয়োজন থেকেও ছাড় পাবে ।


3

আপনি যদি secure_pathসেট আপ করে থাকেন তবে আপনি / আপনার পছন্দ মতো /etc/sudoersসমস্তের সাথে খেলতে পারেন এবং এটি কোনওভাবেই কোনও পথ পাবে না। আপনি যদি এরকম কিছু দেখতে পান তবে মন্তব্য করুন।env_resetenv_keep

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

না, অবশ্যই সেট করা হয়নি।
হোয়াইটকিয়ার্ক

0

আমি বলতে চাই যে ম্যান সুডোতে env_reset এবং env_keep বিকল্পগুলি দেখুন । তবে মনে হচ্ছে আপনি ইতিমধ্যে এটি করে ফেলেছেন (আপনি ভুলভাবে env_keep "কেপেনভ" বলে ডাকছেন)। আপনি যদি env_reset বিকল্পটি অক্ষম করেন (ডিফল্ট সক্ষম করা থাকে) তবে আমার মনে হয় এটি কোনও env ভেরিয়েবল মুছবে না । তবে এটি কম সুরক্ষিত।

সুডোর জন্য একটি নিরাপদ_পথ বিকল্প রয়েছে; আমি মনে করি এটি ডিফল্টরূপে সক্ষম আছে। আপনি এটি অক্ষম করার চেষ্টা করতে পারেন।

পূর্ববর্তী বিকল্পগুলি আপনার / ইত্যাদি / sudoers ফাইলে সেট করা আছে। -iসুডোর জন্য কমান্ড-লাইন বিকল্প রয়েছে। এটি সুডোর জন্য /root/.profile বা /root/.login চালিত করবে। আপনি সেখানে আপনার পছন্দসই পথ নির্ধারণ করতে পারেন।


1
না, যখন env_reset বন্ধ করা হয় তখনও এটি PATH পরিবর্তিত হয় (মোছা হয় না)। সম্ভবত এটি / * / এসবিন ডায়ার যুক্ত করার জন্য করা হয়। না, -i বিকল্পটি উপযুক্ত নয় কারণ এটি একটি ইন্টারেক্টিভ শেল শুরু করে এবং আমার কেবল কমান্ড চালানো দরকার।
হোয়াইটকিয়ার্ক

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

-1

ভাল, আপনি কিছু ভুল করছেন। এছাড়াও, আপনি / etc / sudoers ফাইলটি দিয়ে কী করেছেন তা নির্দিষ্ট করে নি। আপনার যা করা উচিত তা এখানে - এটি একটি সেন্টোস সিস্টেম, বিটিডাব্লু:

প্রথমত, এটি সঠিক এনভ_কিপ সেটিং সহ (নোটিশ PATH সেখানে রয়েছে) সহ:

উবুন্টু, grep -5 পাথ জন্য / etc / sudoers ডিফল্টে env_keep = "রং প্রদর্শন HOSTNAME এর HISTSIZE INPUTRC KDEDIR \ LS_COLORS মেল PS1 PS2 QTDIR USERNAME এর \ LANG- তে LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \ LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE ভাষার LINGUAS \ _XKB_CHARSET XAUTHORITY পথ"

Defaults   timestamp_timeout = 15 

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple

-> export PATH=$PATH:hithere
-> sudo sh -c 'echo $PATH'
/sbin:/bin:/usr/sbin:/usr/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/bin:hithere

ভাল লাগছে। এখন এনভি_কিপ সেটিংটি সরান এবং আবার চেষ্টা করুন:

-> sudo visudo
-> sudo grep -5 PATH /etc/sudoers
                    LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
                    LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
                    LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
                    LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
                    _XKB_CHARSET XAUTHORITY"
 #_XKB_CHARSET XAUTHORITY PATH"

কি দু: খজনক পাঠ:

 -> sudo sh -c 'echo $PATH'
 /usr/bin:/bin

1
আমি যে আরও দুটি বার চেক! পোস্টে আপডেট পরীক্ষা করুন।
হোয়াইটকিয়ার্ক

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