.
- 1 1. บทนำ
- 2 2. วิธีตรวจสอบรายการผู้ใช้ใน Ubuntu
- 3 3. วิธีตรวจสอบผู้ใช้ที่กำลังล็อกอินอยู่
- 4 4. วิธีตรวจสอบข้อมูลผู้ใช้โดยละเอียด
- 5 5. การจัดการผู้ใช้ใน Ubuntu (เพิ่ม, ลบ, แก้ไข)
- 6 6. สถานการณ์ปฏิบัติสำหรับการจัดการผู้ใช้
- 7 7. คำถามที่พบบ่อย
- 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
แต่ละบรรทัดประกอบด้วยฟิลด์ที่คั่นด้วยเครื่องหมายโคลอน (:) ซึ่งมีข้อมูลดังต่อไปนี้:
- ชื่อผู้ใช้
- รหัสผ่าน (ปัจจุบันแสดงเป็น x)
- UID (User ID)
- GID (Group ID)
- ข้อมูลผู้ใช้ (ฟิลด์คอมเมนต์)
- ไดเรกทอรีบ้าน
- เชลล์ล็อกอินเริ่มต้น
เนื่องจากไฟล์นี้รวมผู้ใช้ระบบด้วย คุณอาจต้องแยกเฉพาะผู้ใช้ล็อกอินปกติโดยใช้วิธีด้านล่างนี้
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สำหรับ SSH) - เวลาล็อกอิน
คำสั่ง 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
คำอธิบายฟิลด์
- อายุการทำงานของระบบ
- จำนวนผู้ใช้ที่ล็อกอินอยู่
- ค่าเฉลี่ยการโหลด CPU
- ชื่อผู้ใช้
- เทอร์มินัล
- โฮสต์ระยะไกล
- เวลาล็อกอิน
- เวลาว่าง (idle)
- การใช้ CPU
- กระบวนการที่กำลังทำงาน
ที่อยู่ IP ในฟิลด์ FROM ช่วยยืนยันการล็อกอิน SSH จากระยะไกล ทำให้เป็นประโยชน์สำหรับการเฝ้าระวังและการจัดการความปลอดภัย
3.3 แสดงผู้ใช้ที่ล็อกอินอยู่โดยใช้ users
If you want a simplified list showing only the usernames of logged-in users, the users command is useful.
ตัวอย่างคำสั่ง
users
ตัวอย่างผลลัพธ์
user1 user2
This command is a simplified version of who and shows only the logged-in usernames.
3.4 ระบุผู้ใช้ปัจจุบันด้วย whoami
To check which user is executing the current session, use the whoami command.
ตัวอย่างคำสั่ง
whoami
ตัวอย่างผลลัพธ์
user1
This command simply displays the username of the current session’s user, making it helpful for verifying the execution context.
3.5 ตรวจสอบประวัติการเข้าสู่ระบบด้วย last
The last command allows you to review the login history of users.
ตัวอย่างคำสั่ง
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)
- ชื่อผู้ใช้
- เทอร์มินัลที่ใช้
- ที่อยู่ IP ระยะไกล
- เวลาเริ่มต้นการเข้าสู่ระบบ
- เวลาออกจากระบบ (หรือยังคงเข้าสู่ระบบ)
- ระยะเวลาการเซสชันทั้งหมด
This command helps administrators monitor previous access and detect suspicious logins.
4. วิธีตรวจสอบข้อมูลผู้ใช้โดยละเอียด
Ubuntu provides several commands to retrieve detailed information about registered users. Reviewing details such as UID, group membership, and login shell helps administrators manage permissions accurately. This section explains methods using id, groups, finger, and chage.
4.1 ตรวจสอบ UID, GID, และกลุ่มโดยใช้ id
The id command displays the user’s UID (User ID), GID (Group ID), and group membership.
ตัวอย่างคำสั่ง
id user1
ตัวอย่างผลลัพธ์
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
uid→ ตัวระบุผู้ใช้gid→ ตัวระบุกลุ่มหลักgroups→ กลุ่มทั้งหมดที่ผู้ใช้เป็นสมาชิก
ตรวจสอบข้อมูลผู้ใช้ปัจจุบัน
id
4.2 ตรวจสอบการเป็นสมาชิกกลุ่มผ่าน groups
The groups command quickly lists the groups a user belongs to.
ตัวอย่างคำสั่ง
groups user1
ตัวอย่างผลลัพธ์
user1 : user1 sudo docker
groups is useful when you want to see only group names without detailed IDs.
4.3 ดึงรายละเอียดผู้ใช้โดยใช้ finger
The finger command provides detailed user information such as full name, login directory, and shell type.
คำสั่งติดตั้ง
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 → เวลาเข้าสู่ระบบครั้งล่าสุด

4.4 ตรวจสอบการหมดอายุรหัสผ่านด้วย chage
The chage command allows administrators to review the password expiration period and last password change.
ตัวอย่างคำสั่ง
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 changes
- Maximum number of days between password changes
- Warning days 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]
- User account
- Dedicated group
- Home directory (
/home/newuser) - Password for login
- Basic account information
5.1.2 คำสั่ง useradd (ขั้นสูง)
คำสั่ง useradd เหมาะสำหรับสคริปต์และให้การควบคุมที่ละเอียดยิ่งขึ้น แต่ไม่ตั้งค่าทุกอย่างโดยอัตโนมัติ
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
-m→ สร้างไดเรกทอรีโฮม-s /bin/bash→ ตั้งค่าเชลล์สำหรับล็อกอิน
ต้องตั้งรหัสผ่านแยกต่างหากเมื่อใช้คำสั่งนี้
5.2 การลบผู้ใช้
คุณสามารถลบผู้ใช้โดยใช้ deluser หรือ userdel
5.2.1 คำสั่ง deluser (แนะนำ)
คำสั่ง deluser ลบบัญชีผู้ใช้
sudo deluser newuser
ลบไดเรกทอรีโฮมด้วย
sudo deluser --remove-home newuser
นี่จะลบบัญชีและไดเรกทอรี /home/newuser
5.2.2 คำสั่ง userdel (ขั้นสูง)
คำสั่ง userdel ให้การควบคุมที่มากกว่า
sudo userdel newuser
sudo userdel -r newuser
5.3 การแก้ไขผู้ใช้ที่มีอยู่
ใช้คำสั่ง usermod เพื่อแก้ไขข้อมูลผู้ใช้ที่มีอยู่
5.3.1 เปลี่ยนชื่อผู้ใช้
sudo usermod -l newname oldname
5.3.2 เปลี่ยนไดเรกทอรีโฮม
sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1
5.3.3 แก้ไขการเป็นสมาชิกกลุ่ม
sudo usermod -aG sudo user1
groups user1
5.3.4 เปลี่ยนรหัสผ่าน
sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
6. สถานการณ์ปฏิบัติสำหรับการจัดการผู้ใช้
การจัดการผู้ใช้ใน Ubuntu เกินกว่าการแสดงรายการและแก้ไขบัญชี การเข้าใจวิธีการใช้คำสั่งในสถานการณ์จริงเป็นสิ่งสำคัญสำหรับการรักษาสภาพแวดล้อมที่ปลอดภัยและมีประสิทธิภาพ ส่วนนี้แนะนำกรณีการใช้งานทั่วไปและวิธีการจัดการ
6.1 ค้นหาผู้ใช้ที่ตรงตามเกณฑ์เฉพาะ
6.1.1 แสดงผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบ (sudo)
เพื่อแสดงรายการผู้ใช้ที่มีสิทธิ์ sudo ให้ใช้คำสั่ง getent เพื่อตรวจสอบไฟล์ /etc/group:
getent group sudo
ตัวอย่างผลลัพธ์
sudo:x:27:user1,user2
sudo:x:27:→ ข้อมูลกลุ่มuser1,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
- รวมเฉพาะผู้ใช้ที่มี shell เช่น
/bin/bashหรือ/bin/sh - บัญชีระบบที่ใช้
/usr/sbin/nologinหรือ/bin/falseจะถูกยกเว้น
6.1.3 แสดงผู้ใช้ระบบ (บัญชีที่ไม่สามารถเข้าสู่ระบบได้)
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
ตัวอย่างผลลัพธ์
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
- ไม่เคยเข้าสู่ระบบ → ผู้ใช้ไม่เคยเข้าสู่ระบบ
sudo deluser user2 --remove-home
6.2.2 ตรวจสอบการเปลี่ยนรหัสผ่านครั้งล่าสุด
sudo chage -l user1
sudo passwd --expire user1
ครั้งถัดไปที่ผู้ใช้เข้าสู่ระบบ จะต้องรีเซ็ตรหัสผ่านด้วยเหตุผลด้านความปลอดภัย
6.3 ตรวจสอบผู้ใช้ที่เชื่อมต่อผ่าน SSH
who | grep pts
ตัวอย่างผลลัพธ์
user1 pts/0 192.168.1.10 11:30
ช่วยระบุผู้ใช้ระยะไกลและที่อยู่ IP ของพวกเขา
6.4 ส่งออกข้อมูลผู้ใช้ทั้งหมดเป็น CSV
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, และไดเรกทอรีโฮม
- ข้อมูลสามารถวิเคราะห์ได้โดยใช้ Excel หรือโปรแกรมสเปรดชีต
7. คำถามที่พบบ่อย
7.1 ฉันสามารถแก้ไข /etc/passwd โดยตรงได้หรือไม่?
คำตอบ: การแก้ไขโดยตรง ไม่แนะนำ การแก้ไขที่ไม่ถูกต้องอาจป้องกันการเข้าสู่ระบบหรือทำให้ระบบเสียหาย
วิธีที่ปลอดภัยกว่า:
sudo vipw
7.2 ความแตกต่างระหว่างคำสั่ง who และ users
| Command | Description |
|---|---|
who | Displays detailed login information |
users | Displays only usernames of logged-in users |
7.3 วิธีตรวจสอบประวัติการเข้าสู่ระบบสำหรับผู้ใช้เฉพาะ
last user1
7.4 วิธีเปลี่ยนรหัสผ่านของผู้ใช้
sudo passwd user1
7.5 วิธีปิดใช้งานผู้ใช้ชั่วคราว
sudo usermod -L user1
sudo usermod -U user1
7.6 เพิ่มผู้ใช้ลงในกลุ่ม sudo
sudo usermod -aG sudo user1
7.7 เปลี่ยนไดเรกทอรีโฮมของผู้ใช้
sudo usermod -d /new/home/path -m user1
7.8 ลบผู้ใช้และข้อมูลของพวกเขาออกอย่างสมบูรณ์
sudo deluser --remove-home user1
หรือ
sudo userdel -r user1
7.9 ตรวจสอบกิจกรรมโดยละเอียดของผู้ใช้ที่เข้าสู่ระบบ
w
- ผู้ใช้ที่เข้าสู่ระบบ
- ที่อยู่ IP ระยะไกล
- กระบวนการปัจจุบัน
- โหลดระบบ
ช่วยให้ผู้ดูแลระบบตรวจสอบการใช้งานและตรวจจับการเข้าถึงที่ไม่ได้รับอนุญาต


