คำตอบสั้น ๆ: สร้างผู้ใช้ส่วนตัวแทนการใช้ root เพิ่มเข้ากลุ่ม sudo หรือ wheel ตั้ง SSH Key ให้ผู้ใช้ใหม่ ทดสอบสิทธิ์ แล้วปิดการเข้า SSH ด้วย root
คู่มือนี้อธิบาย Linux ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
เซิร์ฟเวอร์ใหม่มักให้เข้าสู่ระบบด้วยบัญชี root ซึ่งมีสิทธิ์ทำได้ทุกอย่าง พิมพ์คำสั่งผิดเพียงครั้งเดียวก็อาจลบข้อมูลทั้งระบบได้ และหาก root ถูกเจาะ ผู้โจมตีก็ได้สิทธิ์สูงสุดทันที แนวปฏิบัติที่ดีคือสร้างผู้ใช้ส่วนตัวสำหรับแต่ละคนที่ดูแลเซิร์ฟเวอร์ และให้ยกสิทธิ์ผ่าน sudo เฉพาะตอนที่จำเป็น ซึ่งยังช่วยให้ย้อนดูได้ว่าใครสั่งอะไรจาก Log
คู่มือนี้ใช้ได้กับ Ubuntu 22.04/24.04 และ AlmaLinux/Rocky Linux 8-9 สองกลุ่มนี้ต่างกันที่ชื่อกลุ่มผู้ใช้ที่ได้สิทธิ์ sudo คือ sudo บน Ubuntu และ wheel บน AlmaLinux/Rocky
สิ่งที่ต้องเตรียม
- เข้าสู่ระบบด้วย
rootหรือผู้ใช้ที่มีสิทธิ์ sudo อยู่แล้ว - ชื่อผู้ใช้ใหม่ ใช้ตัวพิมพ์เล็ก ตัวเลข และ
-หรือ_ไม่มีช่องว่าง ตัวอย่างในคู่มือนี้ใช้somchai - ถ้าจะให้ผู้ใช้ใหม่เข้าด้วย SSH Key ให้เตรียม Public Key ของผู้ใช้คนนั้นไว้ (ดู ตั้งค่า SSH Key)
คำสั่งในคู่มือนี้เขียนแบบมี sudo นำหน้า ถ้าคุณเข้าสู่ระบบเป็น root อยู่แล้ว จะพิมพ์ sudo หรือไม่ก็ได้
ขั้นตอนที่ 1: สร้างผู้ใช้ใหม่
Ubuntu
sudo adduser somchai
คำสั่งนี้สร้างผู้ใช้ สร้างโฮมไดเรกทอรี /home/somchai แล้วถามรหัสผ่านสองครั้ง จากนั้นถามข้อมูลเพิ่มเติม (Full Name, Room Number และอื่น ๆ) กด Enter ข้ามได้ทั้งหมด และตอบ Y เพื่อยืนยัน
AlmaLinux / Rocky Linux
บนระบบกลุ่มนี้ adduser เป็นชื่อเดียวกับ useradd ซึ่งไม่ถามรหัสผ่าน จึงต้องตั้งรหัสผ่านแยก
sudo useradd -m somchai
sudo passwd somchai
เมื่อสำเร็จ passwd จะแสดง passwd: all authentication tokens updated successfully.
ใช้รหัสผ่านที่ยาวและไม่ซ้ำกับที่อื่น แม้จะเข้า SSH ด้วย Key ก็ตาม เพราะ sudo จะถามรหัสผ่านนี้ทุกครั้งที่ยกสิทธิ์
ขั้นตอนที่ 2: เพิ่มผู้ใช้เข้ากลุ่ม sudo หรือ wheel
# Ubuntu
sudo usermod -aG sudo somchai
# AlmaLinux / Rocky Linux
sudo usermod -aG wheel somchai
ตัวเลือก -a สำคัญมาก หมายถึงเพิ่มเข้ากลุ่มโดยไม่ลบกลุ่มเดิม ถ้าลืม -a ผู้ใช้จะถูกถอดออกจากกลุ่มอื่นทั้งหมด ตรวจผลด้วย
groups somchai
ผลลัพธ์บน Ubuntu ควรเป็น somchai : somchai sudo และบน AlmaLinux/Rocky เป็น somchai : somchai wheel
ขั้นตอนที่ 3: ทดสอบสิทธิ์ sudo
สลับไปเป็นผู้ใช้ใหม่แล้วลองคำสั่งที่ต้องใช้สิทธิ์ root
su - somchai
sudo whoami
ระบบจะถาม [sudo] password for somchai: ให้ใส่รหัสผ่านของ somchai (ไม่ใช่ของ root) ผลลัพธ์ต้องเป็น root จากนั้นพิมพ์ exit เพื่อกลับเป็นผู้ใช้เดิม
ขั้นตอนที่ 4: ให้ผู้ใช้ใหม่เข้า SSH ด้วย Key
ถ้าเซิร์ฟเวอร์ปิดการเข้าด้วยรหัสผ่านไว้แล้ว ผู้ใช้ใหม่จะเข้า SSH ไม่ได้จนกว่าจะมี Public Key ของตัวเอง ให้สร้างไฟล์ authorized_keys แล้ววาง Public Key ของผู้ใช้คนนั้นลงไป (หนึ่ง Key ต่อหนึ่งบรรทัด)
sudo mkdir -p /home/somchai/.ssh
sudo nano /home/somchai/.ssh/authorized_keys
sudo chown -R somchai:somchai /home/somchai/.ssh
sudo chmod 700 /home/somchai/.ssh
sudo chmod 600 /home/somchai/.ssh/authorized_keys
ถ้าผู้ใช้ใหม่คือตัวคุณเอง และต้องการใช้ Key เดียวกับที่ใช้กับ root อยู่ ให้คัดลอกไฟล์แทนการวางเอง
sudo mkdir -p /home/somchai/.ssh
sudo cp /root/.ssh/authorized_keys /home/somchai/.ssh/
sudo chown -R somchai:somchai /home/somchai/.ssh
sudo chmod 700 /home/somchai/.ssh
sudo chmod 600 /home/somchai/.ssh/authorized_keys
บน AlmaLinux/Rocky ที่เปิด SELinux ให้รันเพิ่ม sudo restorecon -Rv /home/somchai/.ssh เพื่อให้ Context ของไฟล์ถูกต้อง