সমস্ত ব্যবহারকারী এবং তাদের গ্রুপ / বিপরীতে দেখান


70

আমি জানি আমার বিদ্যমান গ্রুপ এবং ব্যবহারকারী রয়েছে তবে আমি তাদের সংযোগ সম্পর্কে নিশ্চিত নই। আমি কি একটি শেল কমান্ড ব্যবহার করে সমস্ত ব্যবহারকারী বা সমস্ত গোষ্ঠী এবং একটি নির্দিষ্ট ব্যবহারকারী / গোষ্ঠীর জন্য সমস্ত গোষ্ঠী / ব্যবহারকারীদের তালিকাবদ্ধ করতে একটি কমান্ড ব্যবহার করতে পারি?

সুতরাং এর মতো কিছু showusersসমস্ত ব্যবহারকারীকে তালিকাবদ্ধ showgroups -u thisuserকরবে এবং এতে থাকা সমস্ত গোষ্ঠীগুলি প্রদর্শন thisuserকরবে।


এরকম কোনও আদেশ নেই। আপনার নিজের দ্বারা এটি স্ক্রিপ্ট করা দরকার।
ক্রিস

কেমন হবেcat /etc/passwd
সুদীপ ভান্ডারী

উত্তর:


93

সকল ব্যবহারকারী:

$ getent passwd

সমস্ত গ্রুপ:

$ getent group

একটি নির্দিষ্ট ব্যবহারকারীর সাথে সমস্ত গ্রুপ:

$ getent group | grep username

আমি দেখতে পেলাম যে এমন একটি ব্যবহারকারী নাম speech-dispatcherরয়েছে যা গ্রুপ অডিওতে অন্তর্ভুক্ত রয়েছে (উপর ভিত্তি করে groups speech-dispatcher)। তবে এটি getent groupকমান্ডের অধীনে তালিকাভুক্ত নয় ! সমস্যাটা কি?
পিএইচপি লার্নার

3
@ পিএইচপিএলপিয়ার আপনার যদি অন্য প্রশ্ন থাকে তবে দয়া করে একটি মন্তব্য পোস্ট করুন , কোনও মন্তব্য নয়।
EEAA

+1 যেহেতু এটি প্রচলিত /etc/passwd/etc/groupফাইলগুলিতে পাওয়া না এমন ব্যবহারকারী / গোষ্ঠীগুলির তালিকা তৈরি করবে যেমন কোনও সিস্টেম কেন্দ্রীয় ডিরেক্টরি যেমন এনআইএস এবং এলডিএপি বা অন্য কোনও বিকল্প ব্যবহারকারী / গ্রুপ ডাটাবেস ব্যবহার করার জন্য কনফিগার করা থাকে, যতক্ষণ না ব্যবহারকারী / গোষ্ঠী গণনা সমর্থন করে ।
এইচবিউইজন

যদি গণনা বন্ধ করা থাকে তবে এটি এলডিপ বা এসএসডি কনফিগারেশনে সমস্ত ব্যবহারকারী এবং গোষ্ঠীগুলি ফিরিয়ে দেবে না।
জেনস টিমারম্যান

16

ব্যবহারকারী এবং তাদের গোষ্ঠীগুলির তালিকা দিন:

for user in $(awk -F: '{print $1}' /etc/passwd); do groups $user; done

গ্রুপ এবং তাদের ব্যবহারকারীদের তালিকাবদ্ধ করুন:

cat /etc/group | awk -F: '{print $1, $3, $4}' | while read group gid members; do
    members=$members,$(awk -F: "\$4 == $gid {print \",\" \$1}" /etc/passwd);
    echo "$group: $members" | sed 's/,,*/ /g';
done

1
যদিও এটি সম্ভবত কাজ করবে, এটি কিছুটা অতিরিক্ত জটিল বলে মনে হচ্ছে, তাই না, যখন এটি করার জন্য পুরোপুরি ভাল সরল ওয়ান শট কমান্ড রয়েছে?
EEAA

এটি অবশ্যই কোনও কেন্দ্রীভূত সংগ্রহস্থলে বাস করে না। এবং এটি অবশ্যই তথ্য যা আপনি দেখতে চাইবেন।
ম্যাগেলান

দুর্দান্ত খুব সহায়ক, এটি উল্লেখ করা ভাল যে তারা পৃথক আদেশ রয়েছে।
মিয়া আসবাত আহমদ

5

ব্যবহারকারী এবং তাদের সম্পর্কিত গোষ্ঠীগুলিকে একটি সহজ উপায়ে তালিকাভুক্ত করতে আপনি যদি এলডিএপি বা এনআইএসের মতো দূরবর্তী ব্যবহারকারীদের সম্পর্কে যত্নবান না হন:

cut -d: -f1 /etc/passwd | xargs groups

আউটপুট;

root : root
myuser : root www-data fuse 
anotheruser : anotheruser   cdrom floppy audio dip video plugdev scanner bluetooth netdev

1
এটিতে চ্যাং এর উত্তরের মতো একই সমস্যা রয়েছে যে এটি এলডিএপি, এনআইএস ইত্যাদির ডেটাবেজে উত্পন্ন ব্যবহারকারী / গোষ্ঠীগুলি উপেক্ষা করে
ম্যাডহ্যাটার

এটি তথাকথিত অবিশ্বাস্যভাবে পরিষ্কার ফর্ম্যাটে তথ্যের আউটপুট দেয়, তবে এটি এখনও কার্যকর প্রথম পদক্ষেপ হতে পারে। এটি / ইত্যাদি / গ্রুপ এবং / ইত্যাদি / পাসডাব্লুডির সিনট্যাক্স সম্পর্কিত আমার স্মৃতি জাগাতে সহায়তা করেছে!
ক্রিস উডস

3

সমস্ত ব্যবহারকারীদের তালিকাবদ্ধ করুন

cut -d':' -f 1 /etc/passwd

অথবা

awk -F ':' '{print $1}' /etc/passwd

যখন বিড়াল / ইত্যাদি / পাসডব্লুড সমস্ত ব্যবহারকারীকে (এবং অন্যান্য সামগ্রীর একগুচ্ছ) দেখায়, কাটা -d ':' -f 1 প্রতিটি লাইনকে ':' দিয়ে বিভাজক করার একটি সহজ উপায় এবং 'প্রথম' ক্ষেত্রটি বের করে (ব্যবহারকারীরা) )। চমত্কার সংস্করণ হিসাবে অনেক একই।

সমস্ত গ্রুপ তালিকা

cut -d':' -f 1 /etc/group

অথবা

awk -F ':' '{print $1}' /etc/group

তালিকাবদ্ধ ব্যবহারকারীদের জন্য খুব অনুকরণীয় কি অনুমান করুন। পরিবর্তে কেবল পার্স / ইত্যাদি / গোষ্ঠী

আরেকটি আকর্ষণীয় উপায়, হয়তো কি ওপি চেয়েছিলেন কাছাকাছি, তাই compgen । সামঞ্জস্য সমস্যা সম্পর্কে নিশ্চিত না।

compgen -u
compgen -g

2
হাই ইলিয়ট বেলি, সার্ভার ফল্টে আপনাকে স্বাগতম! দয়া করে মনে রাখবেন যে এই প্রশ্নটি 5 বছরেরও বেশি পুরানো এবং ইতিমধ্যে একটি সঠিক এবং স্বীকৃত উত্তর রয়েছে। এছাড়াও দ্রষ্টব্য যে আপনার সমাধানগুলি কেবল তখনই কাজ করে যদি ব্যবহারকারীরা / ইত্যাদি / পাসডাব্লুডে সঞ্চিত থাকে; গৃহীত উত্তরটি অন্যান্য ব্যবহারকারীর ডাটাবেসের জন্যও কাজ করে (যেমন এনআইএস বা এলডিএপি)। আপনি যদি পুরানো প্রশ্নের উত্তর দিতে চান (যা পুরোপুরি ঠিক আছে!) আপনি উত্তর না দেওয়া প্রশ্নের তালিকাটি দেখতে চান - কিছুটা ভালবাসার সন্ধানে প্রচুর প্রশ্ন!
মার্সেলেম

-1

ডিবিয়ান জন্য

cat /etc/passwd # show all users
cat /etc/group # show all groups
cat /etc/passwd | grep group # show all users with specified group

2
ইতিমধ্যে স্বীকৃত এর বিপরীতে এটি এমন ব্যবহারকারী / গোষ্ঠীগুলির তালিকাভুক্ত করে না যা দূরবর্তী ব্যবহারকারীর ডাটাবেস যেমন এলডিএপি, এনআইএস ইত্যাদি থেকে উদ্ভূত হয় ....
HBruijn

-2

এটার মত:

sudo cat /etc/gshadow |grep group
sudo cat /etc/gshadow |grep username

1
নং /etc/gshadowদলের সদস্যদের (ধারণ করে না /etc/groupকরে) এবং 4.5 বছর পূর্বে থেকে গৃহীত উত্তর অনেক বেশি সাধারণ হিসাবে এটি দূরবর্তী গ্রুপ পরিচালনা করা হয়, যাহাই হউক না কেন।
সোভেন

-2

সমস্ত নির্দিষ্ট গ্রুপ এবং ব্যবহারকারীদের নির্দিষ্ট গ্রুপে পেতে এই কমান্ডটি ব্যবহার করুন।

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