Add user และ ปิด root
การเพิ่ม user และให้สิทธิ admin และปิดการ login root
ขั้นตอนที่ 1: สร้างผู้ใช้ใหม่ (หากยังไม่มี)
ใช้คำสั่ง
adduser(ใน Debian/Ubuntu) หรือuseradd(ใน CentOS/RHEL) เพื่อสร้างบัญชีผู้ใช้ใหม่
sudo adduser [ชื่อผู้ใช้ใหม่]ระบบจะให้คุณตั้งรหัสผ่านสำหรับผู้ใช้ใหม่และกรอกข้อมูลอื่นๆ (สามารถกด Enter ข้ามได้)
ขั้นตอนที่ 2: มอบสิทธิ์ Admin (เพิ่มเข้ากลุ่ม sudo หรือ wheel)
สำหรับ Ubuntu/Debian
sudo usermod -aG sudo [ชื่อผู้ใช้ใหม่]usermod เป็นคำสั่งสำหรับแก้ไขข้อมูลผู้ใช้
-aG หมายถึง เพิ่มผู้ใช้เข้าสู่กลุ่มเสริม (append to supplementary groups) ที่ระบุ โดยไม่ลบกลุ่มเดิมที่มีอยู่
ขั้นตอนที่ 3: ตรวจสอบสิทธิ์
หลังจากเพิ่มผู้ใช้เข้ากลุ่มแล้ว คุณสามารถตรวจสอบว่าผู้ใช้มีสิทธิ์ถูกต้องหรือไม่โดยใช้คำสั่ง groups
groups [ชื่อผู้ใช้ใหม่]ในผลลัพธ์ คุณควรเห็นชื่อกลุ่ม sudo หรือ wheel อยู่ในรายการกลุ่มของผู้ใช้นั้น
ขั้นตอนที่ 4: ทดสอบการใช้งาน
สลับไปใช้บัญชีผู้ใช้ใหม่
ลองรันคำสั่งที่มีสิทธิ์แอดมิน
ระบบจะขอรหัสผ่านของผู้ใช้ใหม่ (ไม่ใช่ root) และถ้าสำเร็จ ควรแสดงผลลัพธ์เป็น root ซึ่งยืนยันว่าผู้ใช้มีสิทธิ์แอดมินแล้ว
การ "ปิด" บัญชี root ใน Linux โดยปกติหมายถึงการป้องกันไม่ให้ผู้ใช้สามารถล็อกอินเข้าสู่ระบบโดยตรงในฐานะ root ได้ เพื่อเพิ่มความปลอดภัยและบังคับให้ใช้ sudo แทน
ล็อครหัสผ่านบัญชี root (วิธีที่แนะนำและใช้บ่อยที่สุด)
วิธีนี้เป็นวิธีมาตรฐานในการปิดการใช้งานล็อกอินโดยตรงของ root ในระบบปฏิบัติการส่วนใหญ่ (เช่น Ubuntu จะใช้วิธีนี้เป็นค่าเริ่มต้น) โดยการตั้งค่าให้รหัสผ่านของ root เป็นค่าที่ไม่สามารถใช้งานได้
sudo passwd -l rootผลลัพธ์: เมื่อรันคำสั่งนี้สำเร็จ บัญชี root จะไม่สามารถใช้รหัสผ่านเพื่อล็อกอินผ่านหน้าจอเข้าสู่ระบบ (GUI) หรือผ่าน SSH ได้
การแก้ไข (ปลดล็อค): หากต้องการปลดล็อคในภายหลัง สามารถใช้คำสั่ง -u (unlock) ได้: sudo passwd -u root
ปิดใช้งานการล็อกอินผ่าน SSH สำหรับ root
เปิดไฟล์ตั้งค่า SSH ด้วยโปรแกรมแก้ไขข้อความ (เช่น nano)
sudo nano /etc/ssh/sshd_configค้นหาบรรทัดที่มี PermitRootLogin: แก้ไขค่าให้เป็น no:
#PermitRootLogin prohibit-password <-- อาจจะเจอแบบนี้
PermitRootLogin no <-- เปลี่ยนเป็น noบันทึกและออกจากโปรแกรมแก้ไข (ใน nano คือ Ctrl+O, Enter, Ctrl+X)
รีสตาร์ทบริการ SSH เพื่อให้การเปลี่ยนแปลง
sudo systemctl restart sshdLast updated