หากคุณมีสิทธิ์เข้าถึงรูทบนเครื่องคุณสามารถทำสิ่งต่อไปนี้:
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
ไม่ได้)
cut
บางทีการใช้งานsort
สำหรับตามตัวอักษรมี หากคุณต้องการชื่อกลุ่มให้เล่นด้วยการเข้าร่วม (ซึ่งจริงๆแล้วสามารถแสดงได้เพียงชุดย่อยของคอลัมน์ btw)