วิธีแสดงรายการผู้ใช้ใน Linux

How List Users Linux



Linux เป็นระบบปฏิบัติการที่มีผู้ใช้หลายคน เพื่อให้ระบบทำงานได้และมีประสิทธิผล จำเป็นต้องมีการจัดการผู้ใช้ที่เหมาะสม สำหรับผู้ดูแลระบบ การรู้จักผู้ใช้ทั้งหมดเป็นสิ่งจำเป็นในการจัดการผู้ใช้และการอนุญาต

คู่มือนี้สาธิตวิธีการแสดงรายการผู้ใช้ใน Linux







รายชื่อผู้ใช้

ระบบจัดเก็บรายชื่อผู้ใช้ในไฟล์และฐานข้อมูลเฉพาะ เราสามารถเข้าถึงได้โดยใช้เครื่องมือต่างๆ นอกจากนี้เรายังสามารถกรองผลลัพธ์เพื่อรวบรวมข้อมูลเฉพาะ



รายชื่อผู้ใช้จาก /etc/passwd
ไฟล์ /etc/passwd เป็นฐานข้อมูลแบบข้อความธรรมดาที่มีข้อมูลเกี่ยวกับผู้ใช้ทั้งหมดในระบบ ไฟล์นี้เป็นเจ้าของโดย root โดยมีสิทธิ์อนุญาตไฟล์ 644 สำหรับคำอธิบายเชิงลึกเกี่ยวกับการอนุญาตไฟล์ โปรดดูคู่มือนี้เกี่ยวกับการอนุญาตไฟล์ Linux และการเป็นเจ้าของ



เราสามารถตรวจสอบเนื้อหาของไฟล์ /etc/passwd เพื่อให้มีรายชื่อผู้ใช้ทั้งหมดในระบบ





$ cat /etc/passwd | เรียงลำดับ | น้อย

แต่ละบรรทัดในไฟล์แสดงถึงชื่อผู้ใช้ที่ไม่ซ้ำกันและข้อมูลที่เกี่ยวข้อง ข้อมูลถูกแยกออกเป็นเจ็ดฟิลด์ คั่นด้วยเครื่องหมายทวิภาค ต่อไปนี้เป็นข้อมูลสรุปอย่างรวดเร็วของฟิลด์



  • ฟิลด์ 1: ชื่อผู้ใช้ของผู้ใช้
  • ฟิลด์ 2: อธิบายว่ารหัสผ่านของผู้ใช้ถูกเข้ารหัสหรือไม่ หากค่าเป็น x แสดงว่ารหัสผ่านถูกเก็บไว้ที่ไฟล์ข้อความ /etc/shadow เป็นไฟล์ที่มีการป้องกันระบบซึ่งต้องใช้สิทธิ์ sudo ในการเข้าถึง
  • ฟิลด์ 3: UID (ID ผู้ใช้) ของผู้ใช้
  • ฟิลด์ 4: GID (ID กลุ่ม) ของผู้ใช้
  • ฟิลด์ 5: ชื่อผู้ใช้แบบเต็ม (GECOS)
  • ฟิลด์ 6: โฮมไดเร็กทอรีสำหรับผู้ใช้โดยเฉพาะ
  • ฟิลด์ 7: เชลล์การเข้าสู่ระบบของผู้ใช้ โดยค่าเริ่มต้น ค่านี้จะถูกตั้งค่าเป็น /bin/bash

หากไม่ต้องการข้อมูลเพิ่มเติมในขณะนี้ เราสามารถละเว้นได้ในผลลัพธ์

$ cat /etc/passwd | awk -F: '{ พิมพ์ $1}' | เรียงลำดับ

$ cat /etc/passwd | ตัด -d: -f1 | เรียงลำดับ

แสดงรายการผู้ใช้โดยใช้ getent
คำว่า getent เป็นรูปแบบย่อสำหรับรับรายการจากฐานข้อมูลการดูแลระบบ ตามที่แนะนำ getent สามารถทำงานกับฐานข้อมูลการดูแลระบบต่างๆ ตรวจสอบฐานข้อมูลการดูแลระบบที่รองรับทั้งหมด

$ getent --help

เราสนใจฐานข้อมูล passwd เนื่องจากมีข้อมูลเกี่ยวกับผู้ใช้ทั้งหมดในระบบ ตรวจสอบ รหัสผ่าน ฐานข้อมูลพร้อม getent

$ รับรหัสผ่าน | เรียงลำดับ

ผลลัพธ์จะคล้ายกับเนื้อหาของ /etc/passwd โปรดทราบว่าคำสั่ง getent นี้จะแสดงผู้ใช้จากทั้งฐานข้อมูล passwd และ LDAP หากระบบได้รับการกำหนดค่าให้ใช้ LDAP สำหรับการพิสูจน์ตัวตนผู้ใช้ สำหรับการใช้งานเชิงลึก โปรดดูคู่มือนี้ใน Linux getent command

เราสามารถลบข้อมูลเพิ่มเติมทั้งหมดออกจากเอาต์พุตได้โดยเก็บชื่อผู้ใช้ไว้เท่านั้น

$ รับรหัสผ่าน | awk -F: '{ พิมพ์ $1}' | เรียงลำดับ

$ รับรหัสผ่าน | ตัด -d: -f1 | เรียงลำดับ

รายชื่อผู้ใช้กลุ่ม
ใน Linux กลุ่มคือหน่วยขององค์กรในการจัดระเบียบและดูแลบัญชีผู้ใช้ ช่วยจัดการระบบต่างๆ และการอนุญาตไฟล์ได้ง่ายขึ้น

ในการแสดงรายการผู้ใช้ทั้งหมดจากกลุ่มผู้ใช้เฉพาะ เราสามารถใช้ getent

$ รับกลุ่ม

การใช้รายชื่อผู้ใช้

ตอนนี้เรารู้วิธีแสดงรายการผู้ใช้ทั้งหมดในระบบแล้ว ต่อไปนี้คือบางสถานการณ์ที่จะใช้ความรู้นี้

การตรวจสอบการมีอยู่ของผู้ใช้
จากรายชื่อผู้ใช้ เราสามารถตรวจสอบว่ามีผู้ใช้อยู่ในระบบ Linux หรือไม่ เครื่องมือ getent สามารถตรวจสอบว่ามีผู้ใช้อยู่ในระบบหรือไม่

$ รับรหัสผ่าน

อีกวิธีหนึ่ง (แม้ว่าจะไม่ค่อยดี) คือการใช้ grep เราสามารถกรองรายชื่อผู้ใช้โดยใช้ grep เนื่องจากผู้ใช้แต่ละคนมีรายการเฉพาะของตัวเอง จึงไม่ก่อให้เกิดการชนกันใดๆ

$ รับรหัสผ่าน | grep

จำนวนบัญชีผู้ใช้
ดังที่เราได้เห็นมาแล้ว วิธีการทั้งหมดรายงานผู้ใช้ที่ไม่ซ้ำในแต่ละบรรทัดของผลลัพธ์ โดยการนับเลขไลน์เราสามารถตรวจสอบจำนวนผู้ใช้ที่อยู่ในระบบได้ในขณะนี้

ในการนับเลขบรรทัด เราจะใช้ ห้องน้ำ เครื่องมือ. ไพพ์เอาต์พุต getent ไปยังคำสั่ง wc

$ รับรหัสผ่าน | wc -l

รายชื่อผู้ใช้ที่เชื่อมต่อ
หากมีผู้ใช้ล็อกอินหลายราย เราสามารถตรวจสอบรายชื่อผู้ใช้ที่เชื่อมต่อโดยใช้ปุ่ม ใคร สั่งการ.

$ ใคร

มีข้อมูลสามคอลัมน์ที่แตกต่างกันในผลลัพธ์

  • คอลัมน์ 1: ชื่อผู้ใช้ที่เชื่อมต่อ
  • คอลัมน์ 2: ประเภทของการเชื่อมต่อกับระบบ
  • คอลัมน์ 3: เวลาเริ่มต้นและวันที่ของเซสชัน

ความคิดสุดท้าย

ในบทช่วยสอนนี้ เราสาธิตวิธีแสดงรายการและกรองผู้ใช้ในระบบ นอกจากนี้ยังแสดงการใช้งานที่เป็นไปได้บางประการของรายชื่อผู้ใช้ วิธีการเหล่านี้ทำงานโดยไม่คำนึงถึงสิ่งที่คุณใช้ Linux distro

การจัดการผู้ใช้เป็นส่วนสำคัญของระบบนิเวศ Linux หากต้องการเรียนรู้เพิ่มเติม โปรดดูคู่มือเชิงลึกเกี่ยวกับ วิธีการแสดงรายการและจัดการผู้ใช้ใน Linux .

มีความสุขในการคำนวณ!