sudo নির্দিষ্ট কমান্ডে কাজ করে না


15

আমার sudo8 টির সাথে ডেবিয়ান 8 টির পরিবর্তে একটি অদ্ভুত সমস্যা রয়েছে Users ব্যবহারকারীরা কমান্ডগুলির মধ্যে কিছু সম্পাদন করতে পারে না /etc/sudoers.d। আমি কনফিগারেশন বিতরণ করতে শেফ ব্যবহার করি, সুতরাং সমস্ত ফাইল স্বয়ংক্রিয়ভাবে উত্পন্ন হয়।

উদাহরণ:

এই কনফিগারেশনটি সূক্ষ্মভাবে কাজ করে

root@server:~# cat /etc/sudoers.d/nginx 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/nginx

এবং এটি ব্যর্থ:

root@server:~# cat /etc/sudoers.d/update-rc.d 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/update-rc.d

user@www42:~$ sudo update-rc.d 
[sudo] password for user: 
Sorry, user user is not allowed to execute '/usr/sbin/update-rc.d' as root on server.

কী ভুল হতে পারে?

কারণ নির্ণয়:

Mar  5 12:12:51 server sudo:    user : command not allowed ; TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/sbin/update-rc.d
Mar  5 12:14:25 www42 su[1209]: pam_unix(su:session): session closed for user user

root@server:~# sudo --version
Sudo version 1.8.10p3
Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p:  --disable-root-mailer --with-sendmail=/usr/sbin/sendmail --with-rundir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux --with-linux-audit
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43

উত্তর:


28

সমস্যাটি ডট ইন update-rc.d(ইন /etc/sudoers.d/update-rc.d); থেকে man sudo:

# যুক্ত অন্তর্ভুক্ত নির্দেশিকাটি একটি sudo.d ডিরেক্টরি তৈরি করতে ব্যবহার করা যেতে পারে যা প্যাকেজ ইনস্টলেশনের অংশ হিসাবে সিস্টেম প্যাকেজ ম্যানেজার sudoers বিধিগুলি ফেলে দিতে পারে। উদাহরণস্বরূপ, প্রদত্ত:

#includedir /etc/sudoers.d

sudo প্রতিটি ফাইল /etc/sudoers.d এ পড়বে, ফাইলের নাম বাদ যায় যা শেষ হয় a বা এতে থাকে। প্যাকেজ পরিচালক বা সম্পাদক অস্থায়ী / ব্যাকআপ ফাইলগুলির সাথে সমস্যা সৃষ্টি করতে এড়াতে চরিত্র


3
এটি sudoers মধ্যে 2 সন্দেহজনক নকশা সিদ্ধান্ত। ব্যবহার #একটি মন্তব্য হিসাবে এবং একটি ডিরেক্টিভের অংশ সেইসাথে উপেক্ষা ফাইল হিসেবে। মজার বিষয় (বিরক্তিকরভাবে) visudo -f some.file সতর্কতা দেয় না যে প্রস্থান করার সময় এটিকে উপেক্ষা করার সম্ভাবনা রয়েছে। কোয়েরুলাস অ্যালবাট্রস একটি সাধারণ উত্সাহ দ্বারা শান্ত করা যায়।
ব্যবহারকারী 9517

1
@ প্রথম ইংলিশওয়ে সম্পূর্ণরূপে সম্মত। তবে কোয়ারুলাস অ্যালবাট্রস কোয়েরিয়াল থেকে যায়।
ম্যাডহ্যাটার

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

মন্তব্য হিসাবে এবং নির্দেশাবলী অন্তর্ভুক্ত হ্যাশ সাইন উভয় ব্যবহার করা হচ্ছে, পশ্চাদগম সামঞ্জস্যতা যে এর পিছনে যুক্তি আছে কিনা তা পরীক্ষা করে নেওয়া কেউ?
ইল্কচাচু

5

sudo -llআপনার ব্যবহারকারীর জন্য প্রযোজ্য কমান্ড / কনফিগারারের একটি তালিকা পেতে চেষ্টা করুন এবং চালান ।

যদি (যেমনটি মনে হয়) আপনার আপডেট-আরসি.ডি ক্লজটি না দেখায় তবে আপনি বেশ কয়েকটি ব্যক্তির পরিবর্তে কোনও একক sudoers.d ফাইল ব্যবহারের জন্য আপনার শেফ রেসিপিগুলি সামঞ্জস্য করতে বিবেচনা করতে পারেন।

আপনি কোনও গ্রুপ-সম্পর্কিত sudoers ফাইল warranted হতে পারে বিবেচনা করতে পারে।

এই প্রশ্নের উত্তরগুলি সাহায্য করতে পারে: /ubuntu/246455/how-to-give-nopasswd-access-to-m Multiple-commands-via-sudoers

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