ব্যবহারকারী-বান্ধব কমান্ড উবুন্টু সিস্টেমে সমস্ত ব্যবহারকারীদের তালিকা করতে?


22

উবুন্টু সিস্টেমে কনসোলে ব্যবহারকারীদের তালিকাবদ্ধ করতে আমি ব্যবহারকারীর পক্ষে কমান্ড ব্যবহার করতে পারি?

আমি যখন cat /etc/passwdব্যবহারকারীদের একটি হার্ড-টু-পঠিত তালিকা পাই। বর্ণমালার তালিকাটি কলামে সাজানো এন্ট্রি সহ এবং গ্রুপ আইডির পাশে বন্ধনীতে গ্রুপের নামগুলি দেখতে ভাল লাগবে।


2
ভাল, / etc / passwd হয় কলাম মধ্যে সাজানো ... যদি আপনি মাত্র কয়েক colums দেখতে, সম্ভবত ব্যবহার করতে চান cut। বর্ণমালা জন্য, আছে sort। আপনার যদি গোষ্ঠীর নামগুলির প্রয়োজন হয় তবে যোগদানের সাথে খেলুন (যা প্রকৃতপক্ষে কেবলমাত্র কলামগুলির একটি উপসেট দেখাতে সক্ষম হবে, বিটিডাব্লু)।
এনজেএসজি

উত্তর:


27

/ ইত্যাদি / পাসডাব্লুডি ফাইলের সুন্দর আউটপুট জন্য ভাল উপায়:

$ column -nts: /etc/passwd

এখন আপনি এটি বাছাই করতে পারেন:

$ column -nts: /etc/passwd | sort

সর্বশেষ কলামে গোষ্ঠীর নামগুলি (কোনও বন্ধনী নেই):

$ paste -d: /etc/passwd <(groups $(cut -d: -f1 /etc/passwd) | sed 's/.*: //') | column -nts: | sort

ধন্যবাদ, এই আদেশগুলি আমি যা চাই তা করে do কোনও নবজাতকের কাছে এটি অত্যন্ত দু: খজনক হলেও ... আমি মনে করি তাদের জন্য কীভাবে একটি উপাস তৈরি করতে হয় তা শিখতে হবে।
এম ডুডলি

Centos কলামে nবিকল্পটি পছন্দ হয়নি । column -ts: /etc/passwdভাল কাজ।
ব্যবহারকারী 1014251

9

আপনার যদি মেশিনে রুট অ্যাক্সেস থাকে তবে আপনি নিম্নলিখিতগুলি করতে পারেন:

sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -

কিভাবে এটা কাজ করে

ছায়া ফাইলটি পড়ার জন্য রুট হয়ে উঠুন। আপনার কেবলমাত্র রুট সুবিধার প্রয়োজন যদি আপনি ব্যবহারকারীর পাসওয়ার্ড সেট (মানব ব্যবহারকারী) আছে কিনা তা পরীক্ষা করতে চান, অন্যথায় আপনি কেবল cat /etc/passwdপরিবর্তে এটি করতে পারেন sudo grep ...:

sudo 

কেবলমাত্র এমন ব্যবহারকারীদের দেখান যাদের পাসওয়ার্ড সেট রয়েছে:

grep -vE '^[^*!]+:[*!]:' /etc/shadow

ব্যবহারকারী নাম অনুসারে বাছাই করুন:

sort 

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

cut -d: -f1

ব্যবহারকারীর নামগুলি দিয়ে পরীক্ষা করুন এবং গোষ্ঠীগুলির অনুক্রমের মাধ্যমে এটি সমৃদ্ধ করুন:

while read user; do id $user; done

কলামগুলিতে ইনপুট ফর্ম্যাট করুন:

column -ts' ,'

ফলাফলটি দেখতে vi ব্যবহার করুন:

vi '+set nowrap' - 

আপনার যদি রুট অ্যাক্সেস না থাকে,

এরকম কিছু চেষ্টা করুন:

cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t

এর আউটপুটটি কিছুটা আলাদা, তবে আমি এই উত্তরের দুটি অংশকে এমন কিছুতে মিশ্রিত করার জন্য যা অনুশীলন হিসাবে পুরোপুরি পুরোপুরি ফিট করে তা পাঠকের কাছে অনুশীলন হিসাবে রেখেছি। (আপনি কি শুধু ভালোবাসেন না sed?)


"আমি এটি পাঠকের কাছে অনুশীলন হিসাবে ছেড়ে দিচ্ছি ..." :)
ইমানুয়েল বার্গ

1

উবুন্টুতে এটি নিম্নরূপ হতে পারে:

/ ইত্যাদি / পাসডাব্লু থেকে সাতটি ক্ষেত্র 7 f1, f2 ..., $ f7 এ সঞ্চিত

while IFS=: read -r f1 f2 f3 f4 f5 f6 f7
do
 echo "User $f1 use $f7 shell and stores files in $f6 directory."
done < /etc/passwd

1

আমি করি এবং এটি আমার উদ্দেশ্যে কাজ করে এমন কিছু

ls /home

মঞ্জুর, এটি আপনাকে ব্যবহারকারীর একটি তালিকা দেয় না বরং ব্যবহারকারীর হোম ডিরেক্টরি এবং অতীতের ব্যবহারকারীর ডিরেক্টরিগুলির তালিকা দেয় তবে আপনি যে কমান্ডটি টার্মিনালটির অস্তিত্বহীন নয় সেই ব্যবহারকারীকে করতে চান এবং তা মুছে ফেলার ইঙ্গিত হতে পারে যে হোম ফাইলটিতে কোনও ব্যবহারকারী নেই বা এটি সরান না!


আমি এই পছন্দ। এটি একটি বেসিক স্তরে কাজটি পায়।
aalaap

0

আমি ভেবেছিলাম এটি দিয়ে সহজ হবে join, তবে যোগদানের ক্ষেত্রেjoin ফাইলগুলি বাছাই করা দরকার । সুতরাং এটির জন্য (?) অস্থায়ী ফাইলগুলি সহ একটি workaround প্রয়োজন। আউটপুটটি ব্যবহারকারীকে বাছাই করা হয় এবং ব্যবহারকারী, গোষ্ঠী এবং গোষ্ঠী আইডি প্রদর্শন করে।

uag () {
  TEMP_GROUPS=/var/tmp/sorted_groups
  TEMP_USERS=/var/tmp/sorted_users
  cat /etc/group  | tr ":" " " | sort -k 3 -o $TEMP_GROUPS
  cat /etc/passwd | tr ":" " " | sort -k 4 -o $TEMP_USERS
  join -1 4 -2 3 -o 1.1,2.1,2.3 $TEMP_USERS $TEMP_GROUPS | sort
  rm $TEMP_GROUPS $TEMP_USERS
}

এর সাথে একটি চরিত্র অন্যকে অনুবাদ করুন tr; sortএকটি মূল ক্ষেত্র অনুসারে -k, ফাইল করতে আউটপুট -o; প্রথম ( -1) এবং দ্বিতীয় ( -2) ফাইলের ক্ষেত্রগুলির সাথে যোগ দিন, প্রথম ফাইলটিতে ( -o 1.1) পাশাপাশি দ্বিতীয় ( ,2.1,2.3) তে নির্দিষ্ট ক্ষেত্র আউটপুট করুন ।


নোটটি আরও /tmpভাল হবে, কারণ এফএইচএস বলে যে /var/tmpরিবুটগুলিতে মুছা হবে না, যা আমাদের সত্যই প্রয়োজন হয় না।
strugee
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.