আমি কীভাবে সমস্ত ব্যবহারকারীকে মূল সহ তালিকাভুক্ত করব?


35

একটি লিনাক্স বাক্সে, আমি কীভাবে সমস্ত ব্যবহারকারীর তালিকাভুক্ত করব যার কাছে রুট প্রাইভেলিজ রয়েছে (এবং আরও ভাল, সাধারণভাবে সমস্ত ব্যবহারকারীদেরও যদি তাদের মূল হয় বা না থাকে)?


1
"রুট সুবিধাগুলি" বলতে কী বোঝায় আপনি কী আরও নির্দিষ্ট করে বলতে পারেন? আপনি ইউআইডি = 0 দিয়ে ব্যবহারকারী বলতে চাচ্ছেন?
ক্রিস এস

ব্যবহারকারীরা কিছু করার ক্ষমতা রাখেন। মূলত - যদি সম্ভব হয় তবে তাদের যে সমস্ত গ্রুপের সদস্য আমি তাদের সাথে ব্যবহারকারীদের তালিকা তৈরি করতে হবে।
এরিক

2
যদি আমি জানতাম আপনার কম্পিউটারটি কোথায় আছে তবে আমি উপরে উঠে বিদ্যুতের কর্ডটি টানতে পারি। এটি "কিছু করতে" হিসাবে যোগ্য হবে যার অর্থ আমি আপনার তালিকায় আছি। রফিক তিনটি সাধারণ বিষয় তালিকাভুক্ত করেছে, তবে আরও অনেক কিছু থাকতে পারে এবং আমরা জানি আপনার সিস্টেম বা এটি কীভাবে সেটআপ করা হয়েছে সে সম্পর্কে লক্ষ্য করা যায়।
ক্রিস এস

উত্তর:


42

রুট পাসওয়ার্ড পরিবর্তন করতে ভুলবেন না যদি কোনও ব্যবহারকারীর রুট ছাড়াও ইউআইডি 0 থাকে তবে সেগুলি করা উচিত নয়। খারাপ ধারণা। যাচাই করতে:

grep 'x:0:' /etc/passwd

আবার, আপনার এটি করা উচিত নয় তবে ব্যবহারকারীটি মূল গোষ্ঠীর সদস্য কিনা তা পরীক্ষা করে দেখার জন্য:

grep root /etc/group

রুট হিসাবে কমান্ড কার্যকর করতে পারে কিনা তা দেখতে, sudoers চেক করুন:

cat /etc/sudoers

SID বিট যাচাই করার জন্য, যা প্রোগ্রামগুলি রুট সুবিধাগুলি সহ কার্যকর করতে দেয়:

find / -perm -04000


কঠোরভাবে, প্রথমটি কেবল তখনই কাজ করে যদি ছায়ার পাসওয়ার্ড ফাইলটি ব্যবহারকারী থাকে। আমি সম্মত হই যে এটি প্রায় সবসময়, এই দিনগুলিতে, তবে ঠিক
সেক্ষেত্রে

4
এই প্রথম এক চেয়ে ভাল প্যাটার্ন হল: grep '[^:]*:[^:]*:0:' /etc/passwd। SID- র জন্য পরীক্ষার জন্য বিশেষত +1।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

33

ইউআইডি কে আছে তা দেখার জন্য:

getent passwd 0

দেখার জন্য দলে দলে কে root, wheel admএবং admin:

getent group root wheel adm admin

সমস্ত ব্যবহারকারী এবং তারা যে গ্রুপের সদস্য সেগুলি তালিকাভুক্ত করতে:

getent passwd | cut -d : -f 1 | xargs groups

9
অন্য সমস্ত উত্তরগুলির মতো নয় যা ভুলভাবে / ইত্যাদি / পাসডাব্লুড ফাইলের উপর নির্ভর করে, getent passwdপরিবর্তে এটি ব্যবহার করে, এটি আসলে সঠিক। শুধু / ইত্যাদি / sudoers চেক করতে ভুলবেন না।
mivk

এর জন্য ধন্যবাদ. অনেক পরিষ্কার। আমার জন্য এটি গৃহীত উত্তর।
ফিডি বক্স

6

খাঁটি রুট ব্যবহারকারী আইডি "0"।

সিস্টেমের সমস্ত ব্যবহারকারী / etc / passwd ফাইলে আছেন:

less /etc/passwd

যারা রুট তাদের ব্যবহারকারী আইডি হিসাবে "0" থাকে যা তৃতীয় কলাম। গ্রুপ হিসাবে "০" যাদের (চতুর্থ কলাম) রয়েছে তাদেরও কিছু মূল সুযোগ থাকতে পারে।

এরপরে, আপনি গ্রুপগুলি দেখতে চাইবেন এবং দেখুন যে "মূল" বা "চাকা" বা "প্রশাসক" গোষ্ঠীর অতিরিক্ত সদস্য কে:

less /etc/group

এই গ্রুপগুলিতে তালিকাভুক্ত ব্যবহারকারীদের কিছু মূল অধিকার থাকতে পারে, বিশেষত "sudo" কমান্ডের মাধ্যমে।

আপনি যে চূড়ান্ত জিনিসটি যাচাই করতে চান তা হ'ল "sudo" কনফিগারেশন এবং দেখুন এই কমান্ডটি চালানোর অনুমোদন কার হিসাবে তালিকাবদ্ধ রয়েছে। এই ফাইলটি নিজেই ডকুমেন্টেড তাই আমি এটিকে এখানে পুনরুত্পাদন করব না:

less /etc/sudoers

কে রুট অ্যাক্সেস পেতে পারে তার প্রধান ক্ষেত্রগুলি জুড়ে।


আরও কয়েকটি জায়গাগুলির জন্য যেখানে সার্ভিস-এসক্ল্যাশনের অধিকার মঞ্জুর করা যেতে পারে তার জন্য সার্ভারফল্ট / প্রশ্ন /205598/… দেখুন । (যথা, consolehelperএবং PackageKit।)
ম্যাটডেম

2
সমস্ত ব্যবহারকারী অবশ্যই / ইত্যাদি / পাসডাব্লুডে থাকার গ্যারান্টিযুক্ত নয়। উদাহরণস্বরূপ তারা এলডিএপিতে থাকতে পারে। তবে getent passwdডেটাবেস যেখানে নির্ধারিত তা নির্বিশেষে পাসওয়ার্ড ফরম্যাটে সমস্ত সিস্টেম ব্যবহারকারীকে (মূল সহ) তালিকাভুক্ত করা উচিত।
mivk

3

সমস্ত ব্যবহারকারী মুদ্রণ করতে

perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd

কেবল ইউআইডি 0 থাকা এই ব্যবহারকারীদের মুদ্রণ করতে অন্যরা যেমন বলেছে, অন্তর্ভুক্ত রুট সুবিধাসহ ব্যবহারকারীরা:

perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd

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

2
পার্স / ইত্যাদি / পাসউইডি করবেন না। ব্যবহারকারীদের অন্য কোথাও সংজ্ঞায়িত করা যেতে পারে। getent passwdপরিবর্তে ব্যবহার করুন। আপনার প্রথম "সমস্ত ব্যবহারকারী মুদ্রণ করুন" উদাহরণের জন্য, বরং এটি ব্যবহার করে দেখুন:getent passwd | perl -naF: -e 'print "$F[0]\n"'
mivk

2

সমস্ত ব্যবহারকারীর তাত্ক্ষণিক তালিকার জন্য, passwdস্পেসের পরে কমান্ডটি টাইপ করার পরে দু'বার ট্যাব হিট করার চেষ্টা করুন (স্বয়ংক্রিয়ভাবে সম্পূর্ণ করতে) । এটি suকমান্ডের সাথেও কাজ করে।

একটি রুট-অধিকারযুক্ত ব্যবহারকারী হিসাবে করা আবশ্যক।


এটি কি একটি zsh নির্দিষ্ট বৈশিষ্ট্য? বাশ ওপেনসুসে কেবলমাত্র ফাইলগুলি প্রস্তাব দেয়।
jgillich

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

আপডেট: এটি আর ক্যাপিটেনে কাজ করে না। এটি সম্ভবত সুরক্ষার কারণে স্থির করা হয়েছিল।
পান্না

0

এটি আমাকে বিরক্ত করছিল যে ওয়ান-লাইনারের উত্তর ছিল না ... আপনি যদি সমস্ত ইউআইডি 0 (মূল) অ্যাকাউন্টগুলি তালিকাভুক্ত করতে চান তবে নিম্নলিখিতগুলি ব্যবহার করুন:

cat /etc/passwd | cut -f1,3,4 -d":" | grep"0:0" | cut -f1 -d":" | awk '{print $1}'

সেরা

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