Linux User Management — useradd, userdel, passwd คำสั่งจัดการ User

การจัดการ User Account เป็นหน้าที่พื้นฐานที่สำคัญที่สุดของ System Administrator บน Linux ทุกการเข้าถึงระบบต้องผ่าน User Account ทำให้การสร้าง แก้ไข และลบ Account อย่างถูกต้องเป็นสิ่งที่ขาดไม่ได้ ทั้งในแง่ความปลอดภัยและการควบคุมสิทธิ์การใช้งาน

บทความนี้อธิบายคำสั่งหลัก 3 ตัวที่ใช้จัดการ User ได้แก่ useradd, userdel และ passwd พร้อมตัวเลือกที่ใช้บ่อยในงาน Production จริง

ความเข้าใจเรื่อง User ใน Linux

User ทุกคนใน Linux มี User ID (UID) ที่เป็นตัวเลข UID 0 สงวนไว้สำหรับ root ซึ่งมีสิทธิ์สูงสุด UID 1–999 ใช้สำหรับ System User (เช่น www-data, mysql, nginx) ที่สร้างโดย Service ต่าง ๆ ส่วน UID 1000 ขึ้นไปเป็น Regular User ที่ Admin สร้างขึ้น ข้อมูล User เก็บไว้ใน /etc/passwd ส่วน Password Hash เก็บใน /etc/shadow

useradd — สร้าง User ใหม่

useradd เป็นคำสั่งพื้นฐานสำหรับสร้าง User รูปแบบพื้นฐานที่สุดคือระบุเพียงชื่อ User แต่ในทางปฏิบัติมักระบุ Option เพิ่มเติมเสมอ

# สร้าง User พร้อม Home Directory และ Shell
useradd -m -s /bin/bash username

# สร้าง User พร้อมระบุ Comment (ชื่อจริง)
useradd -m -s /bin/bash -c "John Doe" john

# สร้าง User พร้อมระบุ Primary Group
useradd -m -s /bin/bash -g developers alice

# สร้าง User พร้อมกำหนด Home Directory เอง
useradd -m -d /opt/deploy -s /bin/bash deploy

Option ที่ใช้บ่อย

  • -m — สร้าง Home Directory ให้อัตโนมัติ (สำคัญมาก อย่าลืม)
  • -s /bin/bash — กำหนด Login Shell (ค่าเริ่มต้นอาจเป็น /bin/sh หรือ /sbin/nologin)
  • -c "Full Name" — Comment/Full Name ของ User
  • -g groupname — Primary Group
  • -G group1,group2 — Supplementary Groups เพิ่มเติม
  • -d /path — กำหนด Home Directory Path เอง
  • -e YYYY-MM-DD — กำหนดวันหมดอายุของ Account
  • -r — สร้างเป็น System User (UID ต่ำกว่า 1000, ไม่มี Home)

adduser — Interactive Alternative

บน Debian/Ubuntu มีคำสั่ง adduser ที่เป็น Wrapper Script ที่ใช้งานง่ายกว่า โดยถาม Password และข้อมูลอื่น ๆ แบบ Interactive เหมาะสำหรับมือใหม่หรือการสร้าง User แบบ Manual ไม่กี่คน แต่สำหรับ Automation ควรใช้ useradd โดยตรง

passwd — กำหนดและเปลี่ยน Password

หลังจากสร้าง Account ด้วย useradd Account นั้นจะยังล็อคอยู่จนกว่าจะตั้ง Password วิธีการใช้งาน passwd มีดังนี้

# ตั้ง password ให้ user อื่น (ต้องใช้สิทธิ์ root)
passwd username

# เปลี่ยน password ของตัวเอง (ไม่ต้องใช้สิทธิ์ root)
passwd

# ล็อค account (ห้าม login)
passwd -l username

# ปลดล็อค account
passwd -u username

# ตั้ง password แบบ non-interactive (สำหรับ Script)
echo "username:newpassword" | chpasswd

userdel — ลบ User

userdel ลบ User Account ออกจากระบบ มีสิ่งสำคัญที่ต้องระวัง คือ การเลือกว่าจะลบ Home Directory ด้วยหรือไม่

# ลบ user แต่เก็บ Home Directory ไว้
userdel username

# ลบ user พร้อม Home Directory และ Mail Spool
userdel -r username

# ตรวจสอบก่อนลบว่า user มี process รันอยู่ไหม
ps -u username

ข้อควรระวัง: ก่อนลบ Account ควรตรวจสอบว่ามี Process ที่รันอยู่ภายใต้ Account นั้นหรือไม่ และ Backup ข้อมูลสำคัญใน Home Directory ก่อนเสมอ หากใช้ -r แล้วข้อมูลจะหายถาวร

usermod — แก้ไข User ที่มีอยู่

usermod ใช้แก้ไข Attribute ของ Account ที่มีอยู่แล้ว เช่น เปลี่ยนชื่อ, เพิ่ม Group, เปลี่ยน Shell

# เพิ่ม user เข้า group เพิ่มเติม (ไม่ลบ group เดิม)
usermod -aG sudo username
usermod -aG docker,www-data username

# เปลี่ยน shell
usermod -s /bin/zsh username

# ล็อค/ปลดล็อค account
usermod -L username   # Lock
usermod -U username   # Unlock

# เปลี่ยนชื่อ user
usermod -l newname oldname

ดูข้อมูล User และ Group

# ดู user ที่ login อยู่ปัจจุบัน
whoami
id

# ดู user ทั้งหมดในระบบ
cat /etc/passwd

# ดู group ของ user
groups username
id username

# ดู user ที่ login อยู่ขณะนี้
who
w

Best Practices สำหรับ User Management

  • ไม่ใช้ root โดยตรง — สร้าง Account ปกติแล้วใช้ sudo แทน เพื่อลดความเสี่ยงจากการพิมพ์คำสั่งผิด
  • ใช้ SSH Key แทน Password — สำหรับ Account ที่ Login ผ่าน SSH ให้ Disable Password Login และใช้ Key Authentication
  • ตั้ง Password Policy — กำหนด Minimum Length และ Complexity ผ่าน /etc/security/pwquality.conf
  • กำหนดวันหมดอายุ — สำหรับ Contractor หรือ Temporary Account ให้ตั้ง -e เสมอ
  • Review สม่ำเสมอ — ตรวจสอบ Account ที่ไม่ได้ใช้งานแล้วและลบออกเพื่อลด Attack Surface

สรุป

useradd, userdel และ passwd เป็น Trio คำสั่งพื้นฐานที่ Admin ทุกคนต้องคุ้นเคย การสร้าง Account ควรระบุ -m และ -s เสมอ การลบควรตรวจสอบ Process ก่อนและ Backup ข้อมูล ส่วน usermod -aG ใช้สำหรับเพิ่ม Permission ผ่าน Group โดยไม่ต้องแก้ไข File Permission โดยตรง

แนะนำบริการ DE

การจัดการ Account บน Server จริงต้องการ Root Access เต็มรูปแบบ Cloud VPS ของ DE มอบสิทธิ์ Root ให้คุณได้ทดลอง User Management, กำหนด SSH Key, และตั้งค่า Security Policy ได้เอง เหมาะสำหรับทั้งการเรียนรู้และ Production Server

หากต้องการโฮสต์เว็บไซต์โดยไม่ต้องจัดการ Account ระดับ System Cloud Hosting ของ DE มีระบบจัดการผู้ใช้งานผ่าน Control Panel ที่ปลอดภัยและใช้งานง่าย