ইউনিক্স / লিনাক্সে, আপনি কীভাবে খুঁজে পাবেন যে কোনও প্রদত্ত ব্যবহারকারী কমান্ড লাইনের মাধ্যমে কোন গ্রুপে রয়েছে?
ইউনিক্স / লিনাক্সে, আপনি কীভাবে খুঁজে পাবেন যে কোনও প্রদত্ত ব্যবহারকারী কমান্ড লাইনের মাধ্যমে কোন গ্রুপে রয়েছে?
উত্তর:
এটির ব্যবহারকারীর ইউআইডি পাশাপাশি সমস্ত গোষ্ঠী (তাদের জিড সহ) তাদের অন্তর্ভুক্ত রয়েছে
id userid
লিনাক্স / ওএস এক্স / ইউনিক্সে আপনি (বা allyচ্ছিকভাবে নির্দিষ্ট ব্যবহারকারী) যে গোষ্ঠীগুলির অন্তর্ভুক্ত সেগুলি প্রদর্শন করতে ব্যবহার করুন:
id -Gn [user]
যা groups [user]
ইউনিক্সের সমান যা ইউনিক্সে অপ্রচলিত।
ওএস এক্স / ইউনিক্সে, কমান্ডটি id -p [user]
স্বাভাবিক ইন্টারেক্টিভের জন্য প্রস্তাবিত।
পরামিতিগুলিতে ব্যাখ্যা:
-G
,--groups
- সমস্ত গ্রুপ আইডি মুদ্রণ করুন
-n
,--name
- এর জন্য একটি সংখ্যার পরিবর্তে একটি নাম মুদ্রণ করুন-ugG
-p
- আউটপুট মানব-পঠনযোগ্য করুন।
বা কেবল অধ্যয়ন / ইত্যাদি / গ্রুপ (ঠিক আছে এটি সম্ভবত এলডিএপ সহ পাম ব্যবহার করে না)
নীচে স্ক্রিপ্ট যা উত্তরযোগ্য এবং সিএসভি ফর্ম্যাটে ড্যাশবোর্ডে জড়িত মধ্যে সংহত করা হয়।
sh collection.sh
#!/bin/bash
HOSTNAME=`hostname -s`
for i in `cat /etc/passwd| grep -vE "nologin|shutd|hal|sync|root|false"|awk -F':' '{print$1}' | sed 's/[[:space:]]/,/g'`; do groups $i; done|sed s/\:/\,/g|tr -d ' '|sed -e "s/^/$HOSTNAME,/"> /tmp/"$HOSTNAME"_inventory.txt
sudo cat /etc/sudoers| grep -v "^#"|awk '{print $1}'|grep -v Defaults|sed '/^$/d;s/[[:blank:]]//g'>/tmp/"$HOSTNAME"_sudo.txt
paste -d , /tmp/"$HOSTNAME"_inventory.txt /tmp/"$HOSTNAME"_sudo.txt|sed 's/,[[:blank:]]*$//g' >/tmp/"$HOSTNAME"_inventory_users.txt
আমার আউটপুটটি নীচের পাঠ্য ফাইলগুলিতে সঞ্চিত।
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
।