আমি এমন সমস্ত ব্যবহারকারীর তালিকার জন্য একটি কমান্ড চাই যার কাছে মূল অধিকার রয়েছে?
মনে করুন আমি একজন সুডু ইউজার। আমি কীভাবে অন্য সমস্ত suorder ব্যবহারকারীদের জানতে পারি?
আমি এমন সমস্ত ব্যবহারকারীর তালিকার জন্য একটি কমান্ড চাই যার কাছে মূল অধিকার রয়েছে?
মনে করুন আমি একজন সুডু ইউজার। আমি কীভাবে অন্য সমস্ত suorder ব্যবহারকারীদের জানতে পারি?
উত্তর:
আপনি যদি কেবল sudo
গ্রুপে তালিকাভুক্ত sudoers তালিকাবদ্ধ করতে চান , আমি মনে করি এটি করার সবচেয়ে ভাল উপায় হ'ল এই আদেশটি চালানো (যা এই উত্তরের অন্যান্য আদেশের তুলনায় কমপিট্যালি হালকা হওয়া উচিত ):
grep -Po '^sudo.+:\K.*$' /etc/group
মুরু দ্বারা মন্তব্যে যেমন পরামর্শ দেওয়া হয়েছে তেমন প্রবেশের বিন্যাসগুলি /etc/group
সহজেই পরিচালনা করতে পারে cut
:
grep '^sudo:.*$' /etc/group | cut -d: -f4
এছাড়াও আবার মুুরুর মন্তব্যে পরামর্শ অনুসারে, কেউ getent
এর জায়গায় ব্যবহার করতে পারেন grep
:
getent group sudo | cut -d: -f4
এই আদেশগুলির মধ্যে যে sudo
কোনওটি গ্রুপে তালিকাভুক্ত সমস্ত ব্যবহারকারীদের /etc/group
(যদি থাকে) মুদ্রণ করবে ।
কমান্ড # 1 ব্রেকডাউন:
grep
: একটি ফাইলের মধ্যে একটি রেজেক্সের সাথে মেলে সমস্ত লাইন মুদ্রণ করে-P
: grep
পার্ল-শৈলীর রেগেক্সগুলি ম্যাচ তৈরি করেo
: grep
কেবল মেলে স্ট্রিং প্রিন্ট করে'^sudo.+:\K.*$'
: grep
উদ্ধৃতিগুলির মধ্যে রেজেক্সকে ম্যাচ করেরেজেক্স # 1 ব্রেকডাউন:
^
: লাইন শুরু.+
: এক বা একাধিক অক্ষর\K
: আগের ম্যাচটি বাতিল করুন.*
: শূন্য বা আরও বেশি অক্ষর$
: বাক্যের শেষেকমান্ড # 2 ব্রেকডাউন:
grep
: একটি ফাইলের মধ্যে একটি রেজেক্সের সাথে মেলে সমস্ত লাইন মুদ্রণ করে'^sudo.+:\K.*$'
: grep
উদ্ধৃতিগুলির মধ্যে রেজেক্সকে ম্যাচ করেcut
: একটি ফাইলের প্রতিটি লাইন শুধুমাত্র একটি নির্দিষ্ট বিভাগ মুদ্রণ-d:
: ক্ষেত্রের সীমানা হিসাবে cut
ব্যাখ্যা করে:
-f4
: cut
কেবলমাত্র চতুর্থ ক্ষেত্রের মুদ্রণ করেরেজেক্স # 2 ভাঙ্গন:
^
: লাইন শুরু.*
: শূন্য বা আরও বেশি অক্ষর$
: বাক্যের শেষেgetent group sudo | cut -d: -f4
, বা awk ব্যবহার করুন, তবে যে কোনও উপায়ে মনে রাখবেন যে এই দলটি এবং পাসডাব্লুডের সাথে সীমানা নির্ধারণকারীগুলির সাথে স্থির ফর্ম্যাট রয়েছে।
getent group
- আপনার গ্রিপ লাগবে না। getent group foo
মত grep foo /etc/group
, কিন্তু আরও সক্ষম।
getent
কীভাবে তুলনা করা যায় তা grep
নিয়ে কোনও getent
প্রশ্ন করেছিলেন? এটি চালানো হালকা হবে getent
?
sudo
গ্রুপের সদস্য । কিছু ইউনিক্সের যেমন অন্য গ্রুপ রয়েছে wheel
। @ মুরুর জবাবটিতে সমস্ত sudoers অন্তর্ভুক্ত থাকবে তারা কোন গ্রুপে থাকুক না কেন
এখানে যেমন বলা হয়েছে আমি একসাথে -l
ও -U
বিকল্পগুলি একসাথে আবিষ্কারের সহজতম উপায়টি বিবেচনা করি , কেবল এটি টাইপ করুন users
যেমন: John
তবে:
ব্যবহারকারীর sudo
অ্যাক্সেস থাকলে, এটি sudo
নির্দিষ্ট ব্যবহারকারীর জন্য অ্যাক্সেসের স্তরটি মুদ্রণ করবে :
sudo -l -U John
User John may run the following commands on this host:
(ALL : ALL) ALL
যদি ব্যবহারকারীটির সুডো অ্যাক্সেস না থাকে তবে এটি মুদ্রণ করবে যে কোনও লোকালহোস্টে চালানোর অনুমতি নেইsudo
:
sudo -l -U John
User John is not allowed to run sudo on localhost.
"%domain admins@mycompany.intra" ALL=(ALL) ALL
তবে এটি কার্যকর হয়। আপনি আমাকে অনেক সময় সাশ্রয় করেছেন, কারণ আমি অজানা ছিলাম না স্থানীয় লোকদের জন্যও এটি কাজ করে।
যেমন ইতিমধ্যে বলা হয়েছে, উত্তরটি ইউনিক্স এবং লিনাক্স স্ট্যাক এক্সচেঞ্জে পাওয়া যাবে :
এটি দেখায় যে ব্যবহারকারী "সামল" হুইল গ্রুপের সদস্য।
$ getent group wheel wheel:x:10:saml
পার্থক্যটি হ'ল উবুন্টুতে গ্রুপটি নয় wheel
, তবে sudo
(বা admin
উবুন্টুর পুরানো সংস্করণে)। সুতরাং আদেশটি হয়ে যায়:
getent group sudo
geten group
এবং আমি বিভিন্ন সংখ্যা দেখতে পাই। আমার আসল প্রশ্নটি হল, কোনও ব্যবহারকারী কোনও সিস্টেম ব্যবহারকারী কিনা (কীভাবে এটি তৈরি করা হয় useradd -r
) তা খুঁজে বের করবেন
sudo -l -U
পরীক্ষার উপর প্রসারণ করে , কেউ ব্যবহার করতে পারবেন getent passwd
এমন ব্যবহারকারীদের নির্ধারণ করতে ব্যবহার করতে পারেন sudo
। ব্যবহার getent
আমাদের এক্সেস ব্যবহারকারী যারা উপস্থিত নাও হতে পারে করতে পারবেন passwd
, এই ধরনের দ্বারা LDAP ব্যবহারকারী হিসাবে ফাইল:
getent passwd | cut -f1 -d: | sudo xargs -L1 sudo -l -U | grep -v 'not allowed'
sudo -U
এমন কোনও শূন্য-বহির্গমন মানটি আমরা গ্রহণ করতে পারি না, যাতে আমরা আউটপুট গ্রেপিংয়ে কমে যাই।
sudo
।
বেশিরভাগ ইউনিক্স-মতো সিস্টেমে sudo কমান্ড রয়েছে এবং একটি sudo কনফিগারেশন ফাইল রয়েছে; মূল হিসাবে ভিসুডো চলমান:
:~$ sudo bash
অথবা
:~$ su
:~# visudo
প্রশাসককে sudo কমান্ড ব্যবহার করতে পারে এমন গোষ্ঠীগুলির সুবিধাগুলি পরীক্ষা এবং সংশোধন করার অনুমতি দেবে।
উবুন্টুর মতো ডেবিয়ান ভিত্তিক ইউনিক্স-মতো সিস্টেমগুলিতে, 4 এবং 27 টি গোষ্ঠীর সাধারণত সুডোর সুবিধাগুলির অ্যাক্সেসের অধিকার থাকে।
গোষ্ঠী 4 হ'ল প্রশাসক গোষ্ঠী (অ্যাডমিন) এবং গ্রুপ 27 হ'ল সুডো গিড।
ব্যবহারকারীদের বর্তমানে এই গোষ্ঠীগুলিতে কী কী অর্পিত হয়েছে তা দেখতে / ইত্যাদি / গ্রুপ ফাইলটিকে নীচের মত দেখানো হয়েছে:
:~$ cat /etc/group
উবুন্টুতে একটি নমুনা আউটপুট (তবে রেডহাট ভিত্তিক নয়, ওরাকল সোলারিস / সোলারিস ভিত্তিক, বা বিএসডি ভিত্তিক সিস্টেমগুলি) এগুলি পেতে পারে:
adm:x:4:youruser
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:youruser,mybrother
floppy:x:25:
tape:x:26:
sudo:x:27:youruser,mybrother
যেমনটি আমরা বলতে পারি যে আপনার ব্যবহারকারী সিস্টেমটির প্রশাসক এবং গ্রুপ 4 এর সদস্য (অ্যাডমিস)। তবে আপনার ব্যবহারকারী এবং মাইবারথর উভয়ই গ্রুপ 27 এর সদস্য, যা গ্রুপ সুডোর সংখ্যার (গ্রুপ সনাক্তকরণ) সংখ্যা। সুতরাং মাইব্রোথরও মূল অধিকারগুলি (সুপার ব্যবহারকারী) অর্জন করতে পারে।
ফেডোরা এবং স্ল্যাকওয়ারের মতো অনেকগুলি লিনাক্স সিস্টেম, হুইল গ্রুপ জিড = 10 অন্তর্ভুক্ত করে। যা sudo কমান্ড প্রয়োগ করা হলে প্রশাসককে সুযোগ সুবিধা দেয় privile বিএসডি ভিত্তিক সিস্টেমে (যেমন ফ্রিবিএসডি), মূল ব্যবহারকারী হুইল গ্রুপের একটি সদস্য, যা জিড 0 হয়।
এছাড়াও আইডি কমান্ড ব্যবহার করে যে কোনও ব্যবহারকারীর সিস্টেমে অন্য পরিচিত ব্যবহারকারীর গ্রুপ তথ্য খুঁজে পেতে পারে।
উদাহরণ স্বরূপ:
:~$ id mybrother
নমুনা আউটপুট
uid=1001(mybrother) gid=1001(mybrother) groups=1001(mybrother),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)
এই কমান্ডটি সুডো অধিকার সহ ব্যবহারকারীদের একটি তালিকা ফিরিয়ে দেয়:
awk -F ":" '{ system("groups " $1 " | grep -P \"[[:space:]]sudo([[:space:]]|$)\"") }' /etc/passwd
আউটপুট হল (উদাঃ):
<username> : <username> adm cdrom sudo dip plugdev lpadmin sambashare docker
যদি কেবল ব্যবহারকারীর নাম প্রদর্শিত হয়, তবে এই আদেশটি:
awk -F ":" '{ system("groups " $1 " | grep -P \"[[:space:]]sudo([[:space:]]|$)\"") }' | awk -F ":" '{ print $1 }' /etc/passwd
COMMAND:
cat /etc/group | grep sudo
আউটপুট:
sudo:x:27:Tom,Stacy
টম, স্ট্যাসি সুডোর সুবিধাযুক্ত ব্যবহারকারী।
cat
।
উল্লেখ না করায় বা না পাওয়া ছাড়াও vagrant
ব্যবহারকারী কীভাবে ব্যবহার করতে পারেন সে সম্পর্কে আমি স্তব্ধ হয়ে পড়েছিলাম ।sudo
/etc/sudoers
/etc/group
getent
sudo
নীচে সমস্ত ফাইল থেকে এন্ট্রি পড়তে/etc/sudoers.d/
সক্রিয় আউট । সুতরাং আপনি যদি সেই ডিরেক্টরিটি না দেখে থাকেন তবে বুঝতে পারবেন না যে আসলে কতজন ব্যবহারকারীর sudo
অ্যাক্সেস রয়েছে।
এই ধরনের sudo
এক্সেস ব্যবহার জোকার এর উত্তর দ্বারা সনাক্ত করা যাবে sudo -l -U vagrant
কিন্তু অন্য উত্তর এখানে যা সব পারেন উপর নির্ভর কোন দ্বারা সনাক্ত করা হয় না getent
বা /etc/group
।