- 1 1. บทนำ
- 2 2. วิธีการตรวจสอบรายชื่อผู้ใช้ใน Ubuntu
- 3 3. วิธีการตรวจสอบผู้ใช้ที่เข้าสู่ระบบอยู่ในปัจจุบัน
- 4 4. วิธีการตรวจสอบข้อมูลผู้ใช้โดยละเอียด
- 5 5. การจัดการผู้ใช้ใน Ubuntu (เพิ่ม ลบ แก้ไข)
- 6 6. ตัวอย่างการใช้งานตามสถานการณ์
- 6.1 6.1 การค้นหาผู้ใช้ที่ตรงตามเงื่อนไขเฉพาะ
- 6.2 6.2 วิธีการลบผู้ใช้ที่ไม่ต้องการเป็นประจำ
- 6.3 6.3 การตรวจสอบผู้ใช้ที่เชื่อมต่อผ่าน SSH
- 6.4 6.4 การส่งออกข้อมูลผู้ใช้ทั้งหมดเป็น CSV
- 7 7. FAQ (คำถามที่พบบ่อย)
- 7.1 7.1 สามารถแก้ไข /etc/passwd โดยตรงได้หรือไม่?
- 7.2 7.2 ความแตกต่างระหว่างคำสั่ง who และ users คืออะไร?
- 7.3 7.3 จะตรวจสอบประวัติการเข้าสู่ระบบของผู้ใช้เฉพาะได้อย่างไร?
- 7.4 7.4 จะเปลี่ยนรหัสผ่านของผู้ใช้ได้อย่างไร?
- 7.5 7.5 มีวิธีปิดใช้งานผู้ใช้ชั่วคราวหรือไม่?
- 7.6 7.6 จะเพิ่มผู้ใช้เฉพาะในกลุ่ม sudo ได้อย่างไร?
- 7.7 7.7 จะเปลี่ยนไดเรกทอรีโฮมของผู้ใช้ได้อย่างไร?
- 7.8 7.8 จะลบผู้ใช้และข้อมูลทั้งหมดอย่างสมบูรณ์ได้อย่างไร?
- 7.9 7.9 จะตรวจสอบกิจกรรมโดยละเอียดของผู้ใช้ที่เข้าสู่ระบบอยู่ในปัจจุบันได้อย่างไร?
1. บทนำ
Ubuntu เป็นระบบปฏิบัติการ Linux ยอดนิยมที่ผู้ใช้จำนวนมากเลือกใช้ ตั้งแต่การใช้งานส่วนตัวไปจนถึงสภาพแวดล้อมเซิร์ฟเวอร์ขององค์กร การจัดการบัญชีผู้ใช้เป็นสิ่งจำเป็นในการดูแลระบบ Ubuntu โดยเฉพาะอย่างยิ่ง การตรวจสอบรายชื่อผู้ใช้ที่ลงทะเบียนไว้ในระบบมีประโยชน์อย่างยิ่งต่อการจัดการความปลอดภัยและการจัดระเบียบบัญชี
บทความนี้จะอธิบายวิธีการตรวจสอบรายชื่อผู้ใช้ใน Ubuntu อย่างละเอียด โดยครอบคลุมตั้งแต่คำสั่งพื้นฐานไปจนถึงวิธีการรับข้อมูลเชิงลึก เพื่อให้เป็นประโยชน์สำหรับทั้งผู้เริ่มต้นและผู้ใช้งานขั้นสูง
2. วิธีการตรวจสอบรายชื่อผู้ใช้ใน Ubuntu
ใน Ubuntu คุณสามารถเรียกดูข้อมูลผู้ใช้ได้อย่างง่ายดายโดยใช้ไฟล์หรือคำสั่งเฉพาะ คุณสามารถตรวจสอบรายชื่อผู้ใช้ได้ด้วยวิธีดังต่อไปนี้:
2.1 การแสดงรายชื่อผู้ใช้ด้วย /etc/passwd
ใน Ubuntu ข้อมูลผู้ใช้ทั้งหมดจะถูกเก็บไว้ในไฟล์ /etc/passwd คุณสามารถตรวจสอบผู้ใช้ที่ลงทะเบียนทั้งหมดได้โดยการแสดงเนื้อหาของไฟล์นี้
ตัวอย่างคำสั่ง
cat /etc/passwdเมื่อรันคำสั่งนี้ ข้อมูลจะแสดงในรูปแบบดังต่อไปนี้:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bashแต่ละฟิลด์ในแต่ละบรรทัดจะถูกคั่นด้วยเครื่องหมาย “: (โคลอน)” และมีข้อมูลดังต่อไปนี้:
- ชื่อผู้ใช้ (Username)
- รหัสผ่าน (ปัจจุบันแสดงเป็น x) (Password (currently hidden as x))
- รหัสผู้ใช้ (UID) (User ID (UID))
- รหัสกลุ่ม (GID) (Group ID (GID))
- ข้อมูลผู้ใช้ (คอมเมนต์) (User Information (comment))
- ไดเรกทอรีโฮม (Home Directory)
- เชลล์เริ่มต้น (Default Shell)
ไฟล์นี้ยังรวมถึงผู้ใช้ระบบด้วย ดังนั้นหากคุณต้องการดึงเฉพาะผู้ใช้ที่สามารถเข้าสู่ระบบได้ตามปกติ ให้ใช้วิธีต่อไปนี้:
2.2 การรับเฉพาะชื่อผู้ใช้
หากคุณต้องการแสดงเฉพาะชื่อผู้ใช้ทั้งหมด คุณสามารถใช้คำสั่งต่อไปนี้:
cut -d: -f1 /etc/passwdหรือคุณสามารถใช้คำสั่ง awk ได้เช่นกัน
awk -F':' '{ print $1 }' /etc/passwdตัวอย่างผลลัพธ์:
root
user1
user22.3 การค้นหาผู้ใช้เฉพาะ
หากต้องการตรวจสอบว่ามีผู้ใช้เฉพาะอยู่หรือไม่ ให้ใช้คำสั่ง grep
grep 'user1' /etc/passwdเมื่อรันคำสั่งนี้ ข้อมูลเกี่ยวกับ user1 เท่านั้นที่จะปรากฏขึ้น
2.4 การรับรายชื่อกลุ่มโดยใช้ /etc/group
หากต้องการตรวจสอบกลุ่มที่ผู้ใช้สังกัดอยู่ ให้ดูที่ /etc/group
cat /etc/group | cut -d: -f1นอกจากนี้ หากต้องการตรวจสอบกลุ่มที่ผู้ใช้เฉพาะสังกัดอยู่ ให้ใช้คำสั่งต่อไปนี้:
groups user1ตัวอย่างผลลัพธ์:
user1 : user1 sudoซึ่งแสดงว่า user1 อยู่ในกลุ่ม sudo ด้วย

3. วิธีการตรวจสอบผู้ใช้ที่เข้าสู่ระบบอยู่ในปัจจุบัน
ใน Ubuntu มีหลายวิธีในการตรวจสอบผู้ใช้ที่กำลังเข้าสู่ระบบอยู่ในปัจจุบัน คุณสามารถรับรายชื่อผู้ใช้ที่กำลังเปิดเซสชันและข้อมูลการเข้าสู่ระบบโดยละเอียดได้โดยใช้คำสั่งเฉพาะ
3.1 การตรวจสอบผู้ใช้ที่เข้าสู่ระบบโดยใช้คำสั่ง who
คำสั่ง who จะแสดงรายชื่อผู้ใช้ทั้งหมดที่กำลังเข้าสู่ระบบอยู่ในปัจจุบัน
ตัวอย่างคำสั่ง
whoตัวอย่างผลลัพธ์
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30คำอธิบายแต่ละฟิลด์
- ชื่อผู้ใช้ (ผู้ใช้ที่เข้าสู่ระบบ)
- ชื่อเทอร์มินัล (คอนโซลจริง
tty1หรือการเชื่อมต่อระยะไกลpts/0) - เวลาเข้าสู่ระบบ
คำสั่ง who เป็นคำสั่งที่เรียบง่ายและสะดวกเมื่อคุณต้องการตรวจสอบผู้ใช้ที่เข้าสู่ระบบอย่างรวดเร็ว
3.2 การตรวจสอบข้อมูลโดยละเอียดโดยใช้คำสั่ง w
คำสั่ง w จะให้ข้อมูลโดยละเอียดมากกว่าคำสั่ง who
ตัวอย่างคำสั่ง
wตัวอย่างผลลัพธ์
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshdคำอธิบายแต่ละฟิลด์
- เวลาที่ระบบทำงาน (up 2:15)
- จำนวนผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน (2 users)
- โหลด CPU (load average)
- ชื่อผู้ใช้ (USER)
- เทอร์มินัลที่เชื่อมต่อ (TTY)
- แหล่งที่มาของการเชื่อมต่อระยะไกล (FROM)
- เวลาเข้าสู่ระบบ (LOGIN@)
- เวลาที่ไม่ได้ใช้งาน (IDLE)
- สถานะการใช้งาน CPU (JCPU, PCPU)
- กระบวนการที่กำลังทำงาน (WHAT)
โดยเฉพาะอย่างยิ่ง ที่อยู่ IP ระยะไกลของผู้ใช้ที่เข้าสู่ระบบผ่าน SSH จะแสดงในฟิลด์ FROM ซึ่งเป็นประโยชน์สำหรับการจัดการและการตรวจสอบการเข้าถึงระยะไกล
3.3 การตรวจสอบผู้ใช้ที่เข้าสู่ระบบอย่างง่ายดายโดยใช้คำสั่ง users
หากคุณต้องการแสดงเฉพาะชื่อผู้ใช้ที่เข้าสู่ระบบอย่างง่ายดาย คำสั่ง users จะสะดวก
ตัวอย่างคำสั่ง
usersตัวอย่างผลลัพธ์
user1 user2คำสั่งนี้เป็นเวอร์ชันย่อของ who และจะแสดงเฉพาะชื่อผู้ใช้อย่างเรียบง่าย
3.4 การตรวจสอบผู้ใช้ปัจจุบันโดยใช้คำสั่ง whoami
หากคุณต้องการตรวจสอบผู้ใช้ที่กำลังทำงานอยู่ในเซสชันปัจจุบัน ให้ใช้คำสั่ง whoami
ตัวอย่างคำสั่ง
whoamiตัวอย่างผลลัพธ์
user1คำสั่งนี้จะแสดงเฉพาะชื่อผู้ใช้ที่กำลังทำงานอยู่ในเทอร์มินัลปัจจุบัน ซึ่งเป็นประโยชน์สำหรับการตรวจสอบว่าคุณกำลังรันคำสั่งในฐานะผู้ใช้เฉพาะหรือไม่
3.5 การตรวจสอบประวัติการเข้าสู่ระบบล่าสุดโดยใช้คำสั่ง last
คุณสามารถใช้คำสั่ง last เพื่อตรวจสอบประวัติการเข้าสู่ระบบของผู้ใช้ที่เข้าสู่ระบบในอดีตได้
ตัวอย่างคำสั่ง
lastตัวอย่างผลลัพธ์
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user2 tty1 Mon Feb 15 09:30 - 10:00 (00:30)
root tty1 Sun Feb 14 22:15 - 23:45 (01:30)คำอธิบายแต่ละฟิลด์
- ชื่อผู้ใช้ (Username)
- เทอร์มินัลที่เชื่อมต่อ (เช่น tty1, pts/0) (Connected terminal (e.g., tty1, pts/0))
- แหล่งที่มาของการเชื่อมต่อระยะไกล (ที่อยู่ IP) (Remote connection source (IP address))
- เวลาเริ่มต้นการเข้าสู่ระบบ (Login start time)
- เวลาออกจากระบบ (still logged in หมายถึงยังคงเข้าสู่ระบบ) (Logout time (still logged in means currently logged in))
- เวลารวมที่เข้าสู่ระบบ (00:30 = 30 นาที) (Total login duration (00:30 = 30 minutes))
คำสั่งนี้มีประโยชน์สำหรับการตรวจสอบผู้ใช้ที่เข้าสู่ระบบในอดีต หรือเพื่อตรวจจับการเข้าถึงที่ไม่ได้รับอนุญาต
4. วิธีการตรวจสอบข้อมูลผู้ใช้โดยละเอียด
ใน Ubuntu มีคำสั่งหลายคำสั่งสำหรับรับข้อมูลโดยละเอียดของผู้ใช้ที่ลงทะเบียนไว้ การตรวจสอบ UID, กลุ่ม, และเชลล์การเข้าสู่ระบบของผู้ใช้เฉพาะช่วยให้สามารถตั้งค่าและจัดการสิทธิ์ได้อย่างเหมาะสม
ในที่นี้จะอธิบายวิธีการตรวจสอบข้อมูลโดยละเอียดโดยใช้คำสั่งเช่น id, finger, และ chage
4.1 การตรวจสอบ UID, GID, และกลุ่มของผู้ใช้ด้วยคำสั่ง id
คุณสามารถใช้คำสั่ง id เพื่อตรวจสอบ UID (User ID), GID (Group ID), และ กลุ่มที่สังกัด ของผู้ใช้ได้
ตัวอย่างคำสั่ง
id user1ตัวอย่างผลลัพธ์
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)คำอธิบายแต่ละรายการ
uid=1001(user1)→ รหัสผู้ใช้ (หมายเลขระบุผู้ใช้ในระบบ)gid=1001(user1)→ รหัสกลุ่ม (กลุ่มหลัก)groups=1001(user1),27(sudo),1002(docker)→ รายชื่อกลุ่มที่สังกัด
ข้อมูลนี้มีประโยชน์เมื่อคุณต้องการตรวจสอบว่าผู้ใช้เฉพาะอยู่ในกลุ่มใด
หากต้องการตรวจสอบข้อมูลของผู้ใช้ปัจจุบัน
idเมื่อรันคำสั่งนี้ ข้อมูล ID ของผู้ใช้ปัจจุบันจะแสดงขึ้น
4.2 การตรวจสอบกลุ่มที่ผู้ใช้สังกัดด้วยคำสั่ง groups
หากต้องการตรวจสอบว่าผู้ใช้เฉพาะอยู่ในกลุ่มใดอย่างง่ายดาย ให้ใช้คำสั่ง groups
ตัวอย่างคำสั่ง
groups user1ตัวอย่างผลลัพธ์
user1 : user1 sudo dockerแม้ว่าคำสั่ง id จะสามารถรับข้อมูลกลุ่มได้เช่นกัน แต่ หากคุณต้องการตรวจสอบเฉพาะชื่อกลุ่มอย่างกระชับ คำสั่ง groups จะสะดวกกว่า
หากต้องการตรวจสอบกลุ่มของผู้ใช้ปัจจุบัน
groupsเมื่อรันคำสั่งนี้ รายชื่อกลุ่มที่ผู้ใช้ปัจจุบันสังกัดอยู่จะแสดงขึ้น
4.3 การรับข้อมูลผู้ใช้โดยละเอียดด้วยคำสั่ง finger
คุณสามารถใช้คำสั่ง finger เพื่อรับข้อมูลโดยละเอียดมากขึ้น เช่น ชื่อเต็มของผู้ใช้ ข้อมูลการเข้าสู่ระบบ และประเภทของเชลล์
วิธีการติดตั้ง
finger ไม่ได้ถูกติดตั้งมาเป็นค่าเริ่มต้น ดังนั้นขั้นแรกให้ติดตั้งโดยใช้คำสั่งต่อไปนี้:
sudo apt install fingerตัวอย่างคำสั่ง
finger user1ตัวอย่างผลลัพธ์
Login: user1 Name: User One
Directory: /home/user1 Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0คำอธิบายแต่ละรายการ
- Login → ชื่อผู้ใช้
- Name → ชื่อจริงที่ตั้งค่าไว้ (อาจว่างเปล่าได้)
- Directory → ไดเรกทอรีโฮมของผู้ใช้
- Shell → เชลล์ที่ใช้งานอยู่
- Last login → วันที่และเวลาที่เข้าสู่ระบบล่าสุด
ผู้ดูแลระบบสามารถใช้คำสั่ง finger เพื่อตรวจสอบได้อย่างง่ายดายว่าผู้ใช้รายใดใช้เชลล์ใด
4.4 การตรวจสอบวันหมดอายุของรหัสผ่านด้วยคำสั่ง chage
ผู้ดูแลระบบสามารถใช้คำสั่ง chage เพื่อตรวจสอบ วันหมดอายุของรหัสผ่านและวันที่แก้ไขรหัสผ่านล่าสุด ของผู้ใช้เฉพาะได้
ตัวอย่างคำสั่ง
sudo chage -l user1ตัวอย่างผลลัพธ์
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5คำอธิบายแต่ละรายการ
- Last password change → วันที่แก้ไขรหัสผ่านล่าสุด
- Password expires → วันหมดอายุของรหัสผ่าน
- Password inactive → ระยะเวลาจนกว่ารหัสผ่านจะถูกปิดใช้งาน
- Account expires → วันที่บัญชีจะถูกปิดใช้งาน
- Minimum number of days between password change → ระยะเวลาขั้นต่ำระหว่างการเปลี่ยนรหัสผ่าน
- Maximum number of days between password change → ระยะเวลาที่รหัสผ่านมีผล
- Number of days of warning before password expires → จำนวนวันก่อนรหัสผ่านหมดอายุที่จะแสดงคำเตือน
ผู้ดูแลระบบสามารถใช้ข้อมูลนี้เพื่อ ตั้งค่านโยบายการจัดการรหัสผ่านและเสริมสร้างความปลอดภัย
5. การจัดการผู้ใช้ใน Ubuntu (เพิ่ม ลบ แก้ไข)
ใน Ubuntu การจัดการผู้ใช้อย่างเหมาะสมโดยผู้ดูแลระบบเป็นสิ่งสำคัญ การเพิ่มหรือลบผู้ใช้ใหม่ และการแก้ไขข้อมูลผู้ใช้ที่มีอยู่สามารถช่วยปรับปรุงความปลอดภัยและประสิทธิภาพการทำงานของระบบได้ ส่วนนี้จะอธิบายวิธีการจัดการผู้ใช้โดยใช้คำสั่งเช่น adduser, deluser, และ usermod
5.1 การเพิ่มผู้ใช้
หากต้องการสร้างผู้ใช้ใหม่ใน Ubuntu ให้ใช้คำสั่ง adduser หรือ useradd
5.1.1 คำสั่ง adduser (แนะนำ)
adduser เป็นคำสั่งที่สะดวกสำหรับการเพิ่มผู้ใช้ในโหมดโต้ตอบ
ตัวอย่างคำสั่ง
sudo adduser newuserขั้นตอนการโต้ตอบ
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] สิ่งที่ถูกสร้างขึ้น
- บัญชีผู้ใช้
- กลุ่มเฉพาะ
- ไดเรกทอรีโฮม (
/home/newuser) - รหัสผ่านสำหรับเข้าสู่ระบบ
- ข้อมูลผู้ใช้พื้นฐาน
วิธีนี้เป็นวิธีที่นิยมที่สุดและใช้งานง่ายสำหรับผู้เริ่มต้น
5.1.2 คำสั่ง useradd (สำหรับผู้ใช้ขั้นสูง)
คำสั่ง useradd แตกต่างจาก adduser โดยถูกออกแบบมาให้เรียบง่ายและเหมาะสำหรับสคริปต์มากกว่า แต่จะไม่สร้างไดเรกทอรีโฮมโดยอัตโนมัติ
ตัวอย่างคำสั่ง
sudo useradd -m -s /bin/bash newuser
sudo passwd newuserคำอธิบายตัวเลือก
-m→ สร้างไดเรกทอรีโฮม-s /bin/bash→ ตั้งค่าเชลล์การเข้าสู่ระบบเป็น/bin/bash
เมื่อใช้คำสั่งนี้ คุณจะต้องตั้งค่ารหัสผ่านแยกต่างหาก
5.2 การลบผู้ใช้
หากต้องการลบบัญชีผู้ใช้ที่ไม่ต้องการ ให้ใช้คำสั่ง deluser หรือ userdel
5.2.1 คำสั่ง deluser (แนะนำ)
deluser เป็นเวอร์ชันการลบของ adduser ซึ่งสามารถลบผู้ใช้ได้อย่างง่ายดาย
ตัวอย่างคำสั่ง
sudo deluser newuserหากต้องการลบไดเรกทอรีโฮมด้วย
sudo deluser --remove-home newuserเมื่อรันคำสั่งนี้ ไดเรกทอรีโฮมของผู้ใช้ (/home/newuser) ก็จะถูกลบด้วย
5.2.2 คำสั่ง userdel (สำหรับผู้ใช้ขั้นสูง)
คำสั่ง userdel ช่วยให้สามารถควบคุมได้ละเอียดขึ้น
ตัวอย่างคำสั่ง
sudo userdel newuserการลบพร้อมไดเรกทอรีโฮม
sudo userdel -r newuseruserdel เป็นวิธีที่ตรงกว่า deluser แต่ต้องใช้ด้วยความระมัดระวัง
5.3 การแก้ไขผู้ใช้
หากต้องการแก้ไขข้อมูลผู้ใช้ที่มีอยู่ ให้ใช้คำสั่ง usermod
5.3.1 การเปลี่ยนชื่อผู้ใช้
ตัวอย่างคำสั่ง
sudo usermod -l newname oldnameเมื่อรันคำสั่งนี้ oldname จะถูกเปลี่ยนเป็น newname
5.3.2 การเปลี่ยนไดเรกทอรีโฮม
หากต้องการเปลี่ยนไดเรกทอรีโฮมของผู้ใช้ ให้ใช้ตัวเลือก -d
ตัวอย่างคำสั่ง
sudo usermod -d /new/home/path user1การย้ายไดเรกทอรีโฮมปัจจุบันไปยังตำแหน่งใหม่
sudo usermod -d /home/newuser -m user15.3.3 การเปลี่ยนกลุ่มที่ผู้ใช้สังกัด
หากต้องการเพิ่มผู้ใช้เฉพาะในกลุ่มอื่น หรือเปลี่ยนกลุ่มที่สังกัด ให้ใช้ usermod -aG
การเพิ่มผู้ใช้ในกลุ่ม sudo
sudo usermod -aG sudo user1การตรวจสอบกลุ่มปัจจุบัน
groups user15.3.4 การเปลี่ยนรหัสผ่านของผู้ใช้
ผู้ดูแลระบบสามารถใช้คำสั่ง passwd เพื่อเปลี่ยนรหัสผ่านของผู้ใช้เฉพาะได้
ตัวอย่างคำสั่ง
sudo passwd user1ตัวอย่างผลลัพธ์
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfullyด้วยคำสั่งนี้ รหัสผ่านของ user1 จะถูกเปลี่ยน
6. ตัวอย่างการใช้งานตามสถานการณ์
การจัดการผู้ใช้ใน Ubuntu ไม่ใช่แค่การตรวจสอบรายชื่อ หรือการเพิ่มและลบเท่านั้น แต่สิ่งสำคัญคือการรู้ วิธีการจัดการที่เหมาะสมกับสถานการณ์เฉพาะ ในส่วนนี้จะนำเสนอ ตัวอย่างการใช้งานคำสั่งตามสถานการณ์ที่พบบ่อย
6.1 การค้นหาผู้ใช้ที่ตรงตามเงื่อนไขเฉพาะ
6.1.1 การแสดงรายชื่อผู้ดูแลระบบ (ผู้ใช้ที่มีสิทธิ์ sudo)
หากผู้ดูแลระบบต้องการตรวจสอบผู้ใช้ที่มีสิทธิ์ sudo คุณสามารถค้นหาในไฟล์ /etc/group ด้วยคำสั่ง getent ได้
ตัวอย่างคำสั่ง
getent group sudoตัวอย่างผลลัพธ์
sudo:x:27:user1,user2คำอธิบายผลลัพธ์
sudo:x:27:→ ข้อมูลของกลุ่ม sudouser1,user2→ ผู้ใช้ที่สังกัดกลุ่ม sudo
ด้วยวิธีนี้ คุณสามารถ ตรวจสอบผู้ใช้ที่มีสิทธิ์ดูแลระบบได้อย่างรวดเร็ว
6.1.2 การแสดงรายชื่อผู้ใช้ที่สามารถเข้าสู่ระบบได้
โดยปกติ /etc/passwd จะรวมถึงผู้ใช้ระบบด้วย แต่ หากต้องการตรวจสอบผู้ใช้ที่สามารถเข้าสู่ระบบได้จริง จะสะดวกในการค้นหาผู้ใช้ที่มีเชลล์เริ่มต้น
ตัวอย่างคำสั่ง
grep '/bin/bash' /etc/passwdตัวอย่างผลลัพธ์
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bashข้อดีของวิธีนี้
- แสดงเฉพาะผู้ใช้ที่มี
/bin/bashหรือ/bin/sh - ไม่รวมผู้ใช้ที่ตั้งค่า
nologin(เช่น บัญชีระบบ)
6.1.3 การแสดงรายชื่อผู้ใช้ระบบ (ไม่สามารถเข้าสู่ระบบได้)
ผู้ใช้ระบบมักจะถูกตั้งค่าให้ใช้ /usr/sbin/nologin หรือ /bin/false ดังนั้นคุณสามารถตรวจสอบได้ด้วยคำสั่งต่อไปนี้:
ตัวอย่างคำสั่ง
grep -E '/usr/sbin/nologin|/bin/false' /etc/passwdตัวอย่างผลลัพธ์
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/falseการตรวจสอบบัญชีระบบช่วยให้คุณระมัดระวังไม่ให้ลบโดยไม่ตั้งใจ
6.2 วิธีการลบผู้ใช้ที่ไม่ต้องการเป็นประจำ
6.2.1 การแสดงรายชื่อผู้ใช้ที่เข้าสู่ระบบล่าสุด
หากต้องการลบผู้ใช้ที่ไม่ได้เข้าสู่ระบบมาเป็นเวลานาน ให้ใช้คำสั่ง lastlog เพื่อตรวจสอบประวัติการเข้าสู่ระบบ
ตัวอย่างคำสั่ง
lastlogตัวอย่างผลลัพธ์
Username Port From Latest
root tty1 Mon Feb 12 14:02:08 +0000 2025
user1 pts/0 192.168.1.10 Mon Jan 15 10:30:12 +0000 2025
user2 pts/1 192.168.1.20 Never logged inNever logged in→ ผู้ใช้ที่ไม่เคยเข้าสู่ระบบเลย
จากข้อมูลนี้ คุณสามารถตัดสินใจได้ว่าจะลบบัญชีที่ไม่ต้องการหรือไม่
คำสั่งลบบัญชี
sudo deluser user2 --remove-home6.2.2 การตรวจสอบวันที่แก้ไขรหัสผ่านล่าสุด
คุณสามารถใช้คำสั่ง chage เพื่อตรวจสอบ วันที่ผู้ใช้แก้ไขรหัสผ่านล่าสุด ได้
ตัวอย่างคำสั่ง
sudo chage -l user1ตัวอย่างผลลัพธ์
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : neverหากรหัสผ่านไม่ได้ถูกเปลี่ยนมาเป็นเวลานาน คุณสามารถ บังคับให้เปลี่ยน เพื่อความปลอดภัยได้
การบังคับเปลี่ยนรหัสผ่าน
sudo passwd --expire user1ด้วยวิธีนี้ ผู้ใช้จะต้อง ตั้งรหัสผ่านใหม่ ในการเข้าสู่ระบบครั้งถัดไป
6.3 การตรวจสอบผู้ใช้ที่เชื่อมต่อผ่าน SSH
ในการจัดการระยะไกล การตรวจสอบ ผู้ใช้ที่เชื่อมต่อผ่าน SSH อยู่ในปัจจุบัน เป็นสิ่งสำคัญ
ตัวอย่างคำสั่ง
who | grep ptsตัวอย่างผลลัพธ์
user1 pts/0 192.168.1.10 11:30ด้วยวิธีนี้ คุณสามารถตรวจสอบ ผู้ใช้ที่เชื่อมต่อระยะไกลและที่อยู่ IP ของพวกเขา ได้
6.4 การส่งออกข้อมูลผู้ใช้ทั้งหมดเป็น CSV
หากผู้ดูแลระบบต้องการ สร้างรายการข้อมูลผู้ใช้ทั้งหมด และบันทึกไว้ คำสั่ง getent มีประโยชน์มาก
ตัวอย่างคำสั่ง
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csvผลลัพธ์ (เนื้อหาของ users.csv)
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2- ส่งออกชื่อผู้ใช้, UID, GID, และไดเรกทอรีโฮมในรูปแบบ CSV
- สามารถวิเคราะห์ได้ด้วย Excel หรือสเปรดชีต
7. FAQ (คำถามที่พบบ่อย)
รวบรวมคำถามที่พบบ่อยเกี่ยวกับการจัดการผู้ใช้ใน Ubuntu ข้อมูลนี้เป็นประโยชน์สำหรับการแก้ไขปัญหาและการจัดการ
7.1 สามารถแก้ไข /etc/passwd โดยตรงได้หรือไม่?
คำตอบ
การแก้ไขโดยตรง ไม่แนะนำ /etc/passwd เป็นไฟล์ระบบที่สำคัญ และการแก้ไขที่ผิดพลาดอาจทำให้ไม่สามารถเข้าสู่ระบบได้
วิธีที่แนะนำ
คุณสามารถแก้ไขได้อย่างปลอดภัยโดยใช้คำสั่ง usermod หรือ vipw
วิธีการแก้ไขที่ปลอดภัย
sudo vipwด้วยวิธีนี้ คุณสามารถแก้ไข /etc/passwd ในสภาพแวดล้อมที่ปลอดภัยและถูกล็อก
7.2 ความแตกต่างระหว่างคำสั่ง who และ users คืออะไร?
คำตอบ
| คำสั่ง | คำอธิบาย |
|---|---|
who | แสดงผู้ใช้ที่เข้าสู่ระบบในปัจจุบันโดยละเอียด (เวลาเข้าสู่ระบบ, เทอร์มินัล) |
users | แสดงเฉพาะชื่อผู้ใช้ที่เข้าสู่ระบบอย่างเรียบง่าย |
ตัวอย่างการรัน
whoตัวอย่างผลลัพธ์
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30usersตัวอย่างผลลัพธ์
user1 user2who ให้ข้อมูลโดยละเอียดมากกว่า
7.3 จะตรวจสอบประวัติการเข้าสู่ระบบของผู้ใช้เฉพาะได้อย่างไร?
คำตอบ
คุณสามารถใช้คำสั่ง last เพื่อตรวจสอบประวัติการเข้าสู่ระบบของผู้ใช้เฉพาะได้
ตัวอย่างคำสั่ง
last user1ตัวอย่างผลลัพธ์
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user1 tty1 Mon Feb 10 09:30 - 10:00 (00:30)ด้วยวิธีนี้ คุณสามารถตรวจสอบได้ว่า เข้าสู่ระบบจากเทอร์มินัล/ที่อยู่ IP ใด
7.4 จะเปลี่ยนรหัสผ่านของผู้ใช้ได้อย่างไร?
คำตอบ
ผู้ดูแลระบบสามารถใช้คำสั่ง passwd เพื่อเปลี่ยนรหัสผ่านของผู้ใช้เฉพาะได้
ตัวอย่างคำสั่ง
sudo passwd user1ตัวอย่างผลลัพธ์
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfullyผู้ใช้ที่เปลี่ยนรหัสผ่านจะต้องใช้รหัสผ่านใหม่ในการเข้าสู่ระบบครั้งถัดไป
7.5 มีวิธีปิดใช้งานผู้ใช้ชั่วคราวหรือไม่?
คำตอบ
คุณสามารถใช้คำสั่ง usermod เพื่อปิดใช้งานผู้ใช้ชั่วคราวได้
การล็อกบัญชี
sudo usermod -L user1เมื่อรันคำสั่งนี้ บัญชีของ user1 จะถูกล็อกชั่วคราวและไม่สามารถเข้าสู่ระบบได้
การปลดล็อกบัญชี
sudo usermod -U user1ด้วยคำสั่งนี้ คุณสามารถเปิดใช้งานการเข้าสู่ระบบของ user1 ได้อีกครั้ง
7.6 จะเพิ่มผู้ใช้เฉพาะในกลุ่ม sudo ได้อย่างไร?
คำตอบ
คุณสามารถใช้คำสั่ง usermod เพื่อเพิ่มผู้ใช้เฉพาะในกลุ่ม sudo ได้
ตัวอย่างคำสั่ง
sudo usermod -aG sudo user1หลังจากเพิ่มแล้ว ผู้ใช้ user1 จะสามารถใช้คำสั่ง sudo ได้
7.7 จะเปลี่ยนไดเรกทอรีโฮมของผู้ใช้ได้อย่างไร?
คำตอบ
คุณสามารถใช้ usermod -d เพื่อเปลี่ยนไดเรกทอรีโฮมของผู้ใช้ได้
ตัวอย่างคำสั่ง
sudo usermod -d /new/home/path -m user1ตัวอย่างผลลัพธ์
user1 home directory has been moved to /new/home/pathด้วยคำสั่งนี้ ไดเรกทอรีโฮมของ user1 จะถูกเปลี่ยนไปยังพาธใหม่
7.8 จะลบผู้ใช้และข้อมูลทั้งหมดอย่างสมบูรณ์ได้อย่างไร?
คำตอบ
คุณสามารถใช้ deluser หรือ userdel เพื่อลบผู้ใช้และไดเรกทอรีโฮมของพวกเขาได้
ตัวอย่างคำสั่ง
sudo deluser --remove-home user1หรือ
sudo userdel -r user1เมื่อรันคำสั่งนี้ ผู้ใช้ user1 และไดเรกทอรีโฮม /home/user1 จะถูกลบอย่างสมบูรณ์
7.9 จะตรวจสอบกิจกรรมโดยละเอียดของผู้ใช้ที่เข้าสู่ระบบอยู่ในปัจจุบันได้อย่างไร?
คำตอบ
คุณสามารถใช้คำสั่ง w เพื่อตรวจสอบ กิจกรรมโดยละเอียดของผู้ใช้ที่เข้าสู่ระบบ ได้
ตัวอย่างคำสั่ง
wตัวอย่างผลลัพธ์
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshd- ผู้ใช้ที่เข้าสู่ระบบ
- IP การเชื่อมต่อระยะไกล
- กระบวนการปัจจุบัน (คอลัมน์ WHAT)
- สถานะโหลดระบบ (load average)
ด้วยวิธีนี้ คุณสามารถ ตรวจสอบได้ว่าผู้ใช้รายใดกำลังทำงานอะไรอยู่


