- 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
user2
2.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 newuser
userdel
เป็นวิธีที่ตรงกว่า 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 user1
5.3.3 การเปลี่ยนกลุ่มที่ผู้ใช้สังกัด
หากต้องการเพิ่มผู้ใช้เฉพาะในกลุ่มอื่น หรือเปลี่ยนกลุ่มที่สังกัด ให้ใช้ usermod -aG
การเพิ่มผู้ใช้ในกลุ่ม sudo
sudo usermod -aG sudo user1
การตรวจสอบกลุ่มปัจจุบัน
groups user1
5.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 in
Never logged in
→ ผู้ใช้ที่ไม่เคยเข้าสู่ระบบเลย
จากข้อมูลนี้ คุณสามารถตัดสินใจได้ว่าจะลบบัญชีที่ไม่ต้องการหรือไม่
คำสั่งลบบัญชี
sudo deluser user2 --remove-home
6.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:30
users
ตัวอย่างผลลัพธ์
user1 user2
who
ให้ข้อมูลโดยละเอียดมากกว่า
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)
ด้วยวิธีนี้ คุณสามารถ ตรวจสอบได้ว่าผู้ใช้รายใดกำลังทำงานอะไรอยู่