Sudoers মধ্যে একক কমান্ডের জন্য প্রয়োজনীয়টি কীভাবে অক্ষম করবেন?


44

আমি প্রয়োজনেটি অক্ষম করতে চাই যাতে আমি স্ক্রিপ্টগুলির মধ্যে সুডো করতে পারি তবে আমি এটি কেবলমাত্র সমস্ত কিছুর চেয়ে একক কমান্ডের জন্য অক্ষম করব। Sudoers কনফিগারেশনের মধ্যে এটি কি সম্ভব?

উত্তর:


55

আপনি বিকল্পগুলির জন্য যেমন requirettyএকটি নির্দিষ্ট ব্যবহারকারীর জন্য বা নির্দিষ্ট কমান্ডের জন্য (বা কোনও নির্দিষ্ট রান-হিসাবে-ব্যবহারকারী বা হোস্টের জন্য) ডিফল্ট সেটিংটি ওভাররাইড করতে পারেন তবে নির্দিষ্ট ব্যবহারকারী হিসাবে মৃত্যুদন্ড কার্যকর করার সময় কোনও নির্দিষ্ট কমান্ডের জন্য নয়।

উদাহরণস্বরূপ, অনুমান করে যে requirettyএটি সংকলন-ডিফল্ট বিকল্পগুলিতে সেট করা আছে, নিম্নলিখিত sudoersফাইলটি উভয়কে artbristolএবং স্ক্রিপ্ট থেকে মূল হিসাবে চালিত bobকরার অনুমতি দেয় /path/to/programartbristolকোনও পাসওয়ার্ডের প্রয়োজন নেই যেখানে bobঅবশ্যই একটি পাসওয়ার্ড প্রবেশ করতে হবে (সম্ভবত tty_ticketsবন্ধ আছে এবং bobসম্প্রতি কিছু টার্মিনালে তার পাসওয়ার্ড প্রবেশ করেছে)।

artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty

আপনি যদি সুনির্দিষ্ট যুক্তিযুক্ত কমান্ডের জন্য সেটিংস পরিবর্তন করতে চান তবে আপনাকে একটি কমান্ড ওরফে ব্যবহার করতে হবে (এটি একটি সিনট্যাক্স সীমাবদ্ধতা)। উদাহরণস্বরূপ, নিম্নলিখিত খণ্ডটি স্ক্রিপ্টে artbristolচালানোর অনুমতি দেয় /path/to/program --option, তবে /path/to/programঅন্যান্য তর্ক যুক্ত করে না।

Cmnd_Alias MYPROGRAM = /path/to/program --option  
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty

31

এটার মতো কিছু:

myuser    ALL=(ALL)    NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser        !requiretty

এটি এতে কাজ করতে পারে /etc/sudoersতবে কোনও /etc/sudoers.d/ফাইলে কাজ করতে দেখা যাচ্ছে না
8bitjunkie

আমার পক্ষে এটি মূল্যবান, কোনও /etc/sudoers.d/ফাইলের সাথে যুক্ত হওয়ার পরে এই সম্পাদনাটি কাজ করে । CentOS 7.1
জন এর্ক

এটি ব্যবহার করার সময় আমার পক্ষে কাজ করে না /etc/sudoers.d/। CentOS 7.5 :(
স্টেফান লাসিউইস্কি

4

আমি এটি একটি ফাইল ব্যবহার করে আমার জন্য কাজ করে /etc/sudoers.d। এটি যাচাই করা বেশ সহজ।

প্রথমত, আমি /etc/sudoers.d/01buildসামগ্রীগুলি তৈরি করেছি :

build    ALL=(ALL)    NOPASSWD:/bin/date
Defaults:build !requiretty

তারপরে পরীক্ষিত যে এটি কাজ করে:

ssh host sudo -n /bin/date
Mon Nov 16 16:04:27 CST 2015

তারপরে আমি লাইনটি সংশোধন করে /etc/sudoers.d/01buildমুছে ফেললাম Defaults:এবং তার পরে, আমি পেয়ে যাব:

ssh host sudo -n /bin/date
sudo: sorry, you must have a tty to run sudo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.