আমি প্রয়োজনেটি অক্ষম করতে চাই যাতে আমি স্ক্রিপ্টগুলির মধ্যে সুডো করতে পারি তবে আমি এটি কেবলমাত্র সমস্ত কিছুর চেয়ে একক কমান্ডের জন্য অক্ষম করব। Sudoers কনফিগারেশনের মধ্যে এটি কি সম্ভব?
আমি প্রয়োজনেটি অক্ষম করতে চাই যাতে আমি স্ক্রিপ্টগুলির মধ্যে সুডো করতে পারি তবে আমি এটি কেবলমাত্র সমস্ত কিছুর চেয়ে একক কমান্ডের জন্য অক্ষম করব। Sudoers কনফিগারেশনের মধ্যে এটি কি সম্ভব?
উত্তর:
আপনি বিকল্পগুলির জন্য যেমন requirettyএকটি নির্দিষ্ট ব্যবহারকারীর জন্য বা নির্দিষ্ট কমান্ডের জন্য (বা কোনও নির্দিষ্ট রান-হিসাবে-ব্যবহারকারী বা হোস্টের জন্য) ডিফল্ট সেটিংটি ওভাররাইড করতে পারেন তবে নির্দিষ্ট ব্যবহারকারী হিসাবে মৃত্যুদন্ড কার্যকর করার সময় কোনও নির্দিষ্ট কমান্ডের জন্য নয়।
উদাহরণস্বরূপ, অনুমান করে যে requirettyএটি সংকলন-ডিফল্ট বিকল্পগুলিতে সেট করা আছে, নিম্নলিখিত sudoersফাইলটি উভয়কে artbristolএবং স্ক্রিপ্ট থেকে মূল হিসাবে চালিত bobকরার অনুমতি দেয় /path/to/program। artbristolকোনও পাসওয়ার্ডের প্রয়োজন নেই যেখানে 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
এটার মতো কিছু:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers.d/ফাইলের সাথে যুক্ত হওয়ার পরে এই সম্পাদনাটি কাজ করে । CentOS 7.1
/etc/sudoers.d/। CentOS 7.5 :(
আমি এটি একটি ফাইল ব্যবহার করে আমার জন্য কাজ করে /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
/etc/sudoersতবে কোনও/etc/sudoers.d/ফাইলে কাজ করতে দেখা যাচ্ছে না